DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_00200_AAD_S_000011_PKG

Source


1 PACKAGE BODY XLA_00200_AAD_S_000011_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_000011_PKG                                        |
10 |                                                                       |
11 | DESCRIPTION                                                           |
12 |     Package generated From Product Accounting Definition              |
13 |      Name    : Cash Basis                                             |
14 |      Code    : CASH                                                   |
15 |      Owner   : PRODUCT                                                |
16 |      Version :                                                        |
17 |      AMB Context Code: DEFAULT                                        |
18 | HISTORY                                                               |
19 |     Generated at 30-03-2009 at 05:03:36 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_000011_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_000011_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_000011_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_000011_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 Number
241  , p_source_2            IN VARCHAR2
242 --Invoice Date
243  , p_source_3            IN DATE
244 --Invoice Document Sequence Category
245  , p_source_4            IN VARCHAR2
246 --Document Sequence Name
247  , p_source_5            IN VARCHAR2
248 --Invoice Voucher Number from Sequential Numbering
249  , p_source_6            IN NUMBER
250 --Invoice Description
251  , p_source_7            IN VARCHAR2
252 )
253 RETURN VARCHAR2
254 IS
255 l_component_type        VARCHAR2(80)   ;
256 l_component_code        VARCHAR2(30)   ;
257 l_component_type_code   VARCHAR2(1)    ;
258 l_component_appl_id     INTEGER        ;
259 l_amb_context_code      VARCHAR2(30)   ;
260 l_ledger_language       VARCHAR2(30)   ;
261 l_source                VARCHAR2(1996) ;
262 l_description           VARCHAR2(2000) ;
263 l_log_module            VARCHAR2(240)  ;
264 BEGIN
265 IF g_log_enabled THEN
266       l_log_module := C_DEFAULT_MODULE||'.Description_1';
267 END IF;
268 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
269       trace
270          (p_msg      => 'BEGIN of Description_1'
271          ,p_level    => C_LEVEL_PROCEDURE
272          ,p_module   => l_log_module);
273 END IF;
274 
275 l_ledger_language       := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
276 l_component_type        := 'AMB_DESCRIPTION';
277 l_component_code        := 'JE_INV_HEADER _DESC';
278 l_component_type_code   := 'S';
279 l_component_appl_id     :=  200;
280 l_amb_context_code      := 'DEFAULT';
281 l_source                := NULL;
282 l_description           := NULL;
283 
284 
285  IF p_source_6 IS NOT NULL 
286  THEN 
287   
288   l_source := SUBSTR(
289 xla_ae_sources_pkg.GetSystemSourceChar(
290    p_source_code           => 'XLA_EVENT_TYPE_NAME'
291  , p_source_type_code      => 'Y'
292  , p_source_application_id =>  602
293 ),1,1996);
294   IF l_source IS NOT NULL THEN
295     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
296     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
297   END IF;  
298  IF 
299 l_ledger_language = 'US' THEN
300     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
301     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
302  END IF;  
303  IF 
304 l_ledger_language = 'US' THEN
305     l_description :=  SUBSTR(CONCAT(l_description,'Invoice Number:'),1,2000);
306     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
307  END IF;   
308   l_source := SUBSTR(p_source_2,1,1996);
309   IF l_source IS NOT NULL THEN
310     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
311     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
312   END IF;  
313  IF 
314 l_ledger_language = 'US' THEN
315     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
316     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
317  END IF;  
318  IF 
319 l_ledger_language = 'US' THEN
320     l_description :=  SUBSTR(CONCAT(l_description,'Date:'),1,2000);
321     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
322  END IF;   
323   l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_3,
324                      xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
325   IF l_source IS NOT NULL THEN
326     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
327     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
328   END IF;  
329  IF 
330 l_ledger_language = 'US' THEN
331     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
332     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
333  END IF;  
334  IF 
335 l_ledger_language = 'US' THEN
339   l_source := SUBSTR(p_source_4,1,1996);
336     l_description :=  SUBSTR(CONCAT(l_description,'Document Sequence Category:'),1,2000);
337     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
338  END IF;   
340   IF l_source IS NOT NULL THEN
341     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
342     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
343   END IF;  
344  IF 
345 l_ledger_language = 'US' THEN
346     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
347     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
348  END IF;  
349  IF 
350 l_ledger_language = 'US' THEN
351     l_description :=  SUBSTR(CONCAT(l_description,'Document Sequence Name:'),1,2000);
352     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
353  END IF;   
354   l_source := SUBSTR(p_source_5,1,1996);
355   IF l_source IS NOT NULL THEN
356     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
357     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
358   END IF;  
359  IF 
360 l_ledger_language = 'US' THEN
361     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
362     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
363  END IF;  
364  IF 
365 l_ledger_language = 'US' THEN
366     l_description :=  SUBSTR(CONCAT(l_description,'Invoice Voucher Number:'),1,2000);
367     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
368  END IF;   
369   l_source := SUBSTR(TO_CHAR(p_source_6),1,1996);
370   IF l_source IS NOT NULL THEN
371     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
372     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
373   END IF;  
374  IF 
375 l_ledger_language = 'US' THEN
376     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
377     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
378  END IF;  
379  IF 
380 l_ledger_language = 'US' THEN
381     l_description :=  SUBSTR(CONCAT(l_description,'Invoice Description:'),1,2000);
382     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
383  END IF;   
384   l_source := SUBSTR(p_source_7,1,1996);
385   IF l_source IS NOT NULL THEN
386     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
387     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
388   END IF; 
389  l_description := SUBSTR(l_description,1,1996);
390   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
391         trace
392            (p_msg      => 'END of Description_1'
393            ,p_level    => C_LEVEL_PROCEDURE
394            ,p_module   => l_log_module);
395 
396   END IF;
397   RETURN l_description;
398 
399  ELSIF p_source_6 IS NULL 
400  THEN 
401   
402   l_source := SUBSTR(
403 xla_ae_sources_pkg.GetSystemSourceChar(
404    p_source_code           => 'XLA_EVENT_TYPE_NAME'
405  , p_source_type_code      => 'Y'
406  , p_source_application_id =>  602
407 ),1,1996);
408   IF l_source IS NOT NULL THEN
409     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
410     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
411   END IF;  
412  IF 
413 l_ledger_language = 'US' THEN
414     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
415     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
416  END IF;  
417  IF 
418 l_ledger_language = 'US' THEN
419     l_description :=  SUBSTR(CONCAT(l_description,'Invoice Number:'),1,2000);
420     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
421  END IF;   
422   l_source := SUBSTR(p_source_2,1,1996);
423   IF l_source IS NOT NULL THEN
424     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
425     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
426   END IF;  
427  IF 
428 l_ledger_language = 'US' THEN
429     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
430     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
431  END IF;  
432  IF 
433 l_ledger_language = 'US' THEN
434     l_description :=  SUBSTR(CONCAT(l_description,'Invoice Date:'),1,2000);
435     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
436  END IF;   
437   l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_3,
438                      xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
439   IF l_source IS NOT NULL THEN
440     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
441     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
442   END IF;  
443  IF 
444 l_ledger_language = 'US' THEN
445     l_description :=  SUBSTR(CONCAT(l_description,','),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,'Invoice Description:'),1,2000);
451     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
452  END IF;   
453   l_source := SUBSTR(p_source_7,1,1996);
454   IF l_source IS NOT NULL THEN
455     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
456     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
457   END IF; 
458  l_description := SUBSTR(l_description,1,1996);
459   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
460         trace
464 
461            (p_msg      => 'END of Description_1'
462            ,p_level    => C_LEVEL_PROCEDURE
463            ,p_module   => l_log_module);
465   END IF;
466   RETURN l_description;
467 
468  END IF;
469 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
470       trace
471          (p_msg      => 'END of Description_1'
472          ,p_level    => C_LEVEL_PROCEDURE
473          ,p_module   => l_log_module);
474 END IF;
475 RETURN NULL;
476 EXCEPTION
477   WHEN VALUE_ERROR THEN
478      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
479             trace
480                (p_msg      => 'ERROR: '||sqlerrm
481                ,p_level    => C_LEVEL_EXCEPTION
482                ,p_module   => l_log_module);
483      END IF;
484      RAISE;
485  WHEN xla_exceptions_pkg.application_exception THEN
486       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
487       trace
488          (p_msg      => 'ERROR: '||sqlerrm
489          ,p_level    => C_LEVEL_EXCEPTION
490          ,p_module   => l_log_module);
491       END IF;
492       RAISE;
493  WHEN OTHERS THEN
494        xla_exceptions_pkg.raise_message
495            (p_location => 'XLA_00200_AAD_S_000011_PKG.Description_1');
496 END Description_1;
497 
498 ---------------------------------------
499 --
500 -- PRIVATE FUNCTION
501 --         Description_2
502 --
503 ---------------------------------------
504 FUNCTION Description_2 (
505   p_application_id      IN NUMBER
506 , p_ae_header_id        IN NUMBER DEFAULT NULL 
507 --Document Sequence Name
508  , p_source_5            IN VARCHAR2
509 --Payment Document Voucher Number
510  , p_source_8            IN NUMBER
511 --Payment Transaction Number
512  , p_source_9            IN NUMBER
513 --Payment Document Date
514  , p_source_10            IN DATE
515 --Bank Account Name
516  , p_source_11            IN VARCHAR2
517 --Payment Currency Code
518  , p_source_12            IN VARCHAR2
519 )
520 RETURN VARCHAR2
521 IS
522 l_component_type        VARCHAR2(80)   ;
523 l_component_code        VARCHAR2(30)   ;
524 l_component_type_code   VARCHAR2(1)    ;
525 l_component_appl_id     INTEGER        ;
526 l_amb_context_code      VARCHAR2(30)   ;
527 l_ledger_language       VARCHAR2(30)   ;
528 l_source                VARCHAR2(1996) ;
529 l_description           VARCHAR2(2000) ;
530 l_log_module            VARCHAR2(240)  ;
531 BEGIN
532 IF g_log_enabled THEN
533       l_log_module := C_DEFAULT_MODULE||'.Description_2';
534 END IF;
535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
536       trace
537          (p_msg      => 'BEGIN of Description_2'
538          ,p_level    => C_LEVEL_PROCEDURE
539          ,p_module   => l_log_module);
540 END IF;
541 
542 l_ledger_language       := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
543 l_component_type        := 'AMB_DESCRIPTION';
544 l_component_code        := 'JE_PAYMENT_HEADER_DESC';
545 l_component_type_code   := 'S';
546 l_component_appl_id     :=  200;
547 l_amb_context_code      := 'DEFAULT';
548 l_source                := NULL;
549 l_description           := NULL;
550 
551 
552  IF p_source_8 IS NOT NULL 
553  THEN 
554   
555   l_source := SUBSTR(
556 xla_ae_sources_pkg.GetSystemSourceChar(
557    p_source_code           => 'XLA_EVENT_TYPE_NAME'
558  , p_source_type_code      => 'Y'
559  , p_source_application_id =>  602
560 ),1,1996);
561   IF l_source IS NOT NULL THEN
562     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
563     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
564   END IF;  
565  IF 
566 l_ledger_language = 'US' THEN
567     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
568     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
569  END IF;  
570  IF 
571 l_ledger_language = 'US' THEN
572     l_description :=  SUBSTR(CONCAT(l_description,'Payment Document Sequence Name:'),1,2000);
573     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
574  END IF;   
575   l_source := SUBSTR(p_source_5,1,1996);
576   IF l_source IS NOT NULL THEN
577     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
578     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
579   END IF;  
580  IF 
581 l_ledger_language = 'US' THEN
582     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
583     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
584  END IF;  
585  IF 
586 l_ledger_language = 'US' THEN
587     l_description :=  SUBSTR(CONCAT(l_description,'Payment Document Sequence Number:'),1,2000);
588     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
589  END IF;   
590   l_source := SUBSTR(TO_CHAR(p_source_8),1,1996);
591   IF l_source IS NOT NULL THEN
592     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
593     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
594   END IF;  
595  IF 
596 l_ledger_language = 'US' THEN
597     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
598     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
599  END IF;  
600  IF 
601 l_ledger_language = 'US' THEN
602     l_description :=  SUBSTR(CONCAT(l_description,'Payment Number:'),1,2000);
606   IF l_source IS NOT NULL THEN
603     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
604  END IF;   
605   l_source := SUBSTR(TO_CHAR(p_source_9),1,1996);
607     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
608     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
609   END IF;  
610  IF 
611 l_ledger_language = 'US' THEN
612     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
613     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
614  END IF;  
615  IF 
616 l_ledger_language = 'US' THEN
617     l_description :=  SUBSTR(CONCAT(l_description,'Payment Date:'),1,2000);
618     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
619  END IF;   
620   l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_10,
621                      xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
622   IF l_source IS NOT NULL THEN
623     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
624     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
625   END IF;  
626  IF 
627 l_ledger_language = 'US' THEN
628     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
629     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
630  END IF;  
631  IF 
632 l_ledger_language = 'US' THEN
633     l_description :=  SUBSTR(CONCAT(l_description,'Bank Name:'),1,2000);
634     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
635  END IF;   
636   l_source := SUBSTR(p_source_11,1,1996);
637   IF l_source IS NOT NULL THEN
638     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
639     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
640   END IF;  
641  IF 
642 l_ledger_language = 'US' THEN
643     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
644     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
645  END IF;  
646  IF 
647 l_ledger_language = 'US' THEN
648     l_description :=  SUBSTR(CONCAT(l_description,'Payment Currency Code'),1,2000);
649     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
650  END IF;   
651   l_source := SUBSTR(p_source_12,1,1996);
652   IF l_source IS NOT NULL THEN
653     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
654     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
655   END IF; 
656  l_description := SUBSTR(l_description,1,1996);
657   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
658         trace
659            (p_msg      => 'END of Description_2'
660            ,p_level    => C_LEVEL_PROCEDURE
661            ,p_module   => l_log_module);
662 
663   END IF;
664   RETURN l_description;
665 
666  ELSIF p_source_8 IS NULL 
667  THEN 
668   
669   l_source := SUBSTR(
670 xla_ae_sources_pkg.GetSystemSourceChar(
671    p_source_code           => 'XLA_EVENT_TYPE_NAME'
672  , p_source_type_code      => 'Y'
673  , p_source_application_id =>  602
674 ),1,1996);
675   IF l_source IS NOT NULL THEN
676     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
677     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
678   END IF;  
679  IF 
680 l_ledger_language = 'US' THEN
681     l_description :=  SUBSTR(CONCAT(l_description,','),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,'Payment Number:'),1,2000);
687     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
688  END IF;   
689   l_source := SUBSTR(TO_CHAR(p_source_9),1,1996);
690   IF l_source IS NOT NULL THEN
691     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
692     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
693   END IF;  
694  IF 
695 l_ledger_language = 'US' THEN
696     l_description :=  SUBSTR(CONCAT(l_description,','),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,'Payment Date:'),1,2000);
702     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
703  END IF;   
704   l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_10,
705                      xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
706   IF l_source IS NOT NULL THEN
707     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
708     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
709   END IF;  
710  IF 
711 l_ledger_language = 'US' THEN
712     l_description :=  SUBSTR(CONCAT(l_description,','),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,'Bank Name:'),1,2000);
718     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
719  END IF;   
720   l_source := SUBSTR(p_source_11,1,1996);
721   IF l_source IS NOT NULL THEN
722     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
723     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
724   END IF;  
725  IF 
726 l_ledger_language = 'US' THEN
727     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
728     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
732     l_description :=  SUBSTR(CONCAT(l_description,'Payment Currency Code'),1,2000);
729  END IF;  
730  IF 
731 l_ledger_language = 'US' THEN
733     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
734  END IF;   
735   l_source := SUBSTR(p_source_12,1,1996);
736   IF l_source IS NOT NULL THEN
737     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
738     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
739   END IF; 
740  l_description := SUBSTR(l_description,1,1996);
741   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
742         trace
743            (p_msg      => 'END of Description_2'
744            ,p_level    => C_LEVEL_PROCEDURE
745            ,p_module   => l_log_module);
746 
747   END IF;
748   RETURN l_description;
749 
750  END IF;
751 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
752       trace
753          (p_msg      => 'END of Description_2'
754          ,p_level    => C_LEVEL_PROCEDURE
755          ,p_module   => l_log_module);
756 END IF;
757 RETURN NULL;
758 EXCEPTION
759   WHEN VALUE_ERROR THEN
760      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
761             trace
762                (p_msg      => 'ERROR: '||sqlerrm
763                ,p_level    => C_LEVEL_EXCEPTION
764                ,p_module   => l_log_module);
765      END IF;
766      RAISE;
767  WHEN xla_exceptions_pkg.application_exception THEN
768       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
769       trace
770          (p_msg      => 'ERROR: '||sqlerrm
771          ,p_level    => C_LEVEL_EXCEPTION
772          ,p_module   => l_log_module);
773       END IF;
774       RAISE;
775  WHEN OTHERS THEN
776        xla_exceptions_pkg.raise_message
777            (p_location => 'XLA_00200_AAD_S_000011_PKG.Description_2');
778 END Description_2;
779 
780 ---------------------------------------
781 --
782 -- PRIVATE FUNCTION
783 --         AcctDerRule_3
784 --
785 ---------------------------------------
786 FUNCTION AcctDerRule_3 (
787   p_application_id             IN NUMBER
788 , p_ae_header_id               IN NUMBER
789 , p_side                       IN VARCHAR2
790 , p_override_seg_flag          IN VARCHAR2 
791 --Bank Cash Account
792  , p_source_13            IN NUMBER
793 , x_transaction_coa_id         OUT NOCOPY NUMBER
794 , x_accounting_coa_id          OUT NOCOPY NUMBER
795 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
796 , x_flex_value_set_id          OUT NOCOPY NUMBER
797 , x_value_type_code            OUT NOCOPY VARCHAR2
798 , x_value_combination_id       OUT NOCOPY NUMBER
799 , x_value_segment_code         OUT NOCOPY VARCHAR2
800 )
801 RETURN VARCHAR2
802 IS
803 l_component_type       VARCHAR2(80)  ;
804 l_component_code       VARCHAR2(30)  ;
805 l_component_type_code  VARCHAR2(1)   ;
806 l_component_appl_id    INTEGER       ;
807 l_amb_context_code     VARCHAR2(30)  ;
808 l_log_module           VARCHAR2(240) ;
809 l_output_value         VARCHAR2(30)  ;
810 BEGIN
811 IF g_log_enabled THEN
812       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_3';
813 END IF;
814 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
815 
816       trace
817          (p_msg      => 'BEGIN of AcctDerRule_3'
818          ,p_level    => C_LEVEL_PROCEDURE
819          ,p_module   => l_log_module);
820 
821 END IF;
822 
823 l_component_type         := 'AMB_ADR';
824 l_component_code         := 'AP_CASH_NATURAL_ACCT_SEG';
825 l_component_type_code    := 'S';
826 l_component_appl_id      :=  200;
827 l_amb_context_code       := 'DEFAULT';
828 x_transaction_coa_id     :=  null;
829 x_accounting_coa_id      :=  null;
830 x_flexfield_segment_code := 'GL_ACCOUNT';
831 x_flex_value_set_id      :=  null ;
832 
833 
834 --
835   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
836 
837       trace
838          (p_msg      => 'END of AcctDerRule_3'
839          ,p_level    => C_LEVEL_PROCEDURE
840          ,p_module   => l_log_module);
841 
842   END IF;
843   x_value_combination_id  := TO_NUMBER(p_source_13) ;
844   x_value_segment_code    := 'GL_ACCOUNT' ;
845   x_value_type_code       := 'S';
846   l_output_value          :=  null;
847   RETURN l_output_value;
848 
849 
850 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
851 
852       trace
853          (p_msg      => 'END of AcctDerRule_3(invalid)'
854          ,p_level    => C_LEVEL_PROCEDURE
855          ,p_module   => l_log_module);
856 
857 END IF;
858 
859 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
860 x_value_combination_id  := null;
861 x_value_segment_code    := null;
862 x_value_type_code       := null;
863 l_output_value          := null;
864 xla_accounting_err_pkg.build_message
865                  (p_appli_s_name            => 'XLA'
866                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
867                  ,p_token_1                 => 'COMPONENT_NAME'
868                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
869                                                             l_component_type
870                                                           , l_component_code
871                                                           , l_component_type_code
875                  ,p_token_2                 => 'OWNER'
872                                                           , l_component_appl_id
873                                                           , l_amb_context_code
874                                                           )
876                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
877                                                         'XLA_OWNER_TYPE'
878                                                         ,l_component_type_code
879                                                         )
880                  ,p_token_3                 => 'PAD_NAME'
881                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
882                  ,p_token_4                 => 'PAD_OWNER'
883                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
884                                                         'XLA_OWNER_TYPE'
885                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
886                                                         )
887                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
888                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
889                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
890                  ,p_ae_header_id            => NULL
891 );
892 RETURN l_output_value;
893 EXCEPTION
894   WHEN xla_exceptions_pkg.application_exception THEN
895       RAISE;
896   WHEN OTHERS THEN
897        xla_exceptions_pkg.raise_message
898            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_3');
899 END AcctDerRule_3;
900 --
901 
902 ---------------------------------------
903 --
904 -- PRIVATE FUNCTION
905 --         AcctDerRule_4
906 --
907 ---------------------------------------
908 FUNCTION AcctDerRule_4 (
909   p_application_id             IN NUMBER
910 , p_ae_header_id               IN NUMBER
911 , p_side                       IN VARCHAR2
912 , p_override_seg_flag          IN VARCHAR2 
913 --System Discount Account
914  , p_source_14            IN NUMBER
915 --Discount Distribution Method
916  , p_source_15            IN VARCHAR2
917  , p_source_15_meaning    IN VARCHAR2
918 --Automatic Offsets Value
919  , p_source_16            IN VARCHAR2
920  , p_source_16_meaning    IN VARCHAR2
921 , x_transaction_coa_id         OUT NOCOPY NUMBER
922 , x_accounting_coa_id          OUT NOCOPY NUMBER
923 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
924 , x_flex_value_set_id          OUT NOCOPY NUMBER
925 , x_value_type_code            OUT NOCOPY VARCHAR2
926 , x_value_combination_id       OUT NOCOPY NUMBER
927 , x_value_segment_code         OUT NOCOPY VARCHAR2
928 )
929 RETURN VARCHAR2
930 IS
931 l_component_type       VARCHAR2(80)  ;
932 l_component_code       VARCHAR2(30)  ;
933 l_component_type_code  VARCHAR2(1)   ;
934 l_component_appl_id    INTEGER       ;
935 l_amb_context_code     VARCHAR2(30)  ;
936 l_log_module           VARCHAR2(240) ;
937 l_output_value         VARCHAR2(30)  ;
938 BEGIN
939 IF g_log_enabled THEN
940       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_4';
941 END IF;
942 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
943 
944       trace
945          (p_msg      => 'BEGIN of AcctDerRule_4'
946          ,p_level    => C_LEVEL_PROCEDURE
947          ,p_module   => l_log_module);
948 
949 END IF;
950 
951 l_component_type         := 'AMB_ADR';
952 l_component_code         := 'AP_DISCOUNT_NAT_ACCT_SEG';
953 l_component_type_code    := 'S';
954 l_component_appl_id      :=  200;
955 l_amb_context_code       := 'DEFAULT';
956 x_transaction_coa_id     :=  null;
957 x_accounting_coa_id      :=  null;
958 x_flexfield_segment_code := 'GL_ACCOUNT';
959 x_flex_value_set_id      :=  null ;
960 
961 
962  IF NVL(p_source_15,'
963 ') =  'SYSTEM' AND 
964 NVL(p_source_16,'
965 ') =  'ACCOUNT_SEGMENT_VALUE'
966  THEN 
967 --
968   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
969 
970       trace
971          (p_msg      => 'END of AcctDerRule_4'
972          ,p_level    => C_LEVEL_PROCEDURE
973          ,p_module   => l_log_module);
974 
975   END IF;
976   x_value_combination_id  := TO_NUMBER(p_source_14) ;
977   x_value_segment_code    := 'GL_ACCOUNT' ;
978   x_value_type_code       := 'S';
979   l_output_value          :=  null;
980   RETURN l_output_value;
981 
982  ELSE 
983     IF p_override_seg_flag = 'Y' THEN 
984        RETURN '#$NO_OVERRIDE#$';
985     END IF;
986  END IF;
987 
988 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
989 
990       trace
991          (p_msg      => 'END of AcctDerRule_4(invalid)'
992          ,p_level    => C_LEVEL_PROCEDURE
993          ,p_module   => l_log_module);
994 
995 END IF;
996 
997 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
998 x_value_combination_id  := null;
999 x_value_segment_code    := null;
1000 x_value_type_code       := null;
1001 l_output_value          := null;
1002 xla_accounting_err_pkg.build_message
1003                  (p_appli_s_name            => 'XLA'
1004                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1008                                                           , l_component_code
1005                  ,p_token_1                 => 'COMPONENT_NAME'
1006                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1007                                                             l_component_type
1009                                                           , l_component_type_code
1010                                                           , l_component_appl_id
1011                                                           , l_amb_context_code
1012                                                           )
1013                  ,p_token_2                 => 'OWNER'
1014                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1015                                                         'XLA_OWNER_TYPE'
1016                                                         ,l_component_type_code
1017                                                         )
1018                  ,p_token_3                 => 'PAD_NAME'
1019                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1020                  ,p_token_4                 => 'PAD_OWNER'
1021                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1022                                                         'XLA_OWNER_TYPE'
1023                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1024                                                         )
1025                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1026                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1027                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1028                  ,p_ae_header_id            => NULL
1029 );
1030 RETURN l_output_value;
1031 EXCEPTION
1032   WHEN xla_exceptions_pkg.application_exception THEN
1033       RAISE;
1034   WHEN OTHERS THEN
1035        xla_exceptions_pkg.raise_message
1036            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_4');
1037 END AcctDerRule_4;
1038 --
1039 
1040 ---------------------------------------
1041 --
1042 -- PRIVATE FUNCTION
1043 --         AcctDerRule_5
1044 --
1045 ---------------------------------------
1046 FUNCTION AcctDerRule_5 (
1047   p_application_id             IN NUMBER
1048 , p_ae_header_id               IN NUMBER
1049 , p_side                       IN VARCHAR2
1050 , p_override_seg_flag          IN VARCHAR2 
1051 --Automatic Offsets Value
1052  , p_source_16            IN VARCHAR2
1053  , p_source_16_meaning    IN VARCHAR2
1054 --Purchase Order Rate Variance Gain Account
1055  , p_source_17            IN NUMBER
1056 --Invoice Distribution Ledger Amount
1057  , p_source_18            IN NUMBER
1058 --Destination Type of the PO Distribution
1059  , p_source_19            IN VARCHAR2
1060  , p_source_19_meaning    IN VARCHAR2
1061 --Purchase Order Rate Variance Loss Account
1062  , p_source_20            IN NUMBER
1063 , x_transaction_coa_id         OUT NOCOPY NUMBER
1064 , x_accounting_coa_id          OUT NOCOPY NUMBER
1065 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1066 , x_flex_value_set_id          OUT NOCOPY NUMBER
1067 , x_value_type_code            OUT NOCOPY VARCHAR2
1068 , x_value_combination_id       OUT NOCOPY NUMBER
1069 , x_value_segment_code         OUT NOCOPY VARCHAR2
1070 )
1071 RETURN VARCHAR2
1072 IS
1073 l_component_type       VARCHAR2(80)  ;
1074 l_component_code       VARCHAR2(30)  ;
1075 l_component_type_code  VARCHAR2(1)   ;
1076 l_component_appl_id    INTEGER       ;
1077 l_amb_context_code     VARCHAR2(30)  ;
1078 l_log_module           VARCHAR2(240) ;
1079 l_output_value         VARCHAR2(30)  ;
1080 BEGIN
1081 IF g_log_enabled THEN
1082       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_5';
1083 END IF;
1084 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1085 
1086       trace
1087          (p_msg      => 'BEGIN of AcctDerRule_5'
1088          ,p_level    => C_LEVEL_PROCEDURE
1089          ,p_module   => l_log_module);
1090 
1091 END IF;
1092 
1093 l_component_type         := 'AMB_ADR';
1094 l_component_code         := 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG';
1095 l_component_type_code    := 'S';
1096 l_component_appl_id      :=  200;
1097 l_amb_context_code       := 'DEFAULT';
1098 x_transaction_coa_id     :=  null;
1099 x_accounting_coa_id      :=  null;
1100 x_flexfield_segment_code := 'GL_ACCOUNT';
1101 x_flex_value_set_id      :=  null ;
1102 
1103 
1104  IF NVL(p_source_16,'
1105 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1106 p_source_18 <  0 AND 
1107 NVL(p_source_19,'
1108 ') =  'INVENTORY'
1109  THEN 
1110 --
1111   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1112 
1113       trace
1114          (p_msg      => 'END of AcctDerRule_5'
1115          ,p_level    => C_LEVEL_PROCEDURE
1116          ,p_module   => l_log_module);
1117 
1118   END IF;
1119   x_value_combination_id  := TO_NUMBER(p_source_17) ;
1120   x_value_segment_code    := 'GL_ACCOUNT' ;
1121   x_value_type_code       := 'S';
1122   l_output_value          :=  null;
1123   RETURN l_output_value;
1124 
1125  ELSIF NVL(p_source_16,'
1126 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1127 p_source_18 >  0 AND 
1128 NVL(p_source_19,'
1129 ') =  'INVENTORY'
1130  THEN 
1131 --
1132   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1133 
1134       trace
1138 
1135          (p_msg      => 'END of AcctDerRule_5'
1136          ,p_level    => C_LEVEL_PROCEDURE
1137          ,p_module   => l_log_module);
1139   END IF;
1140   x_value_combination_id  := TO_NUMBER(p_source_20) ;
1141   x_value_segment_code    := 'GL_ACCOUNT' ;
1142   x_value_type_code       := 'S';
1143   l_output_value          :=  null;
1144   RETURN l_output_value;
1145 
1146  ELSE 
1147     IF p_override_seg_flag = 'Y' THEN 
1148        RETURN '#$NO_OVERRIDE#$';
1149     END IF;
1150  END IF;
1151 
1152 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1153 
1154       trace
1155          (p_msg      => 'END of AcctDerRule_5(invalid)'
1156          ,p_level    => C_LEVEL_PROCEDURE
1157          ,p_module   => l_log_module);
1158 
1159 END IF;
1160 
1161 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1162 x_value_combination_id  := null;
1163 x_value_segment_code    := null;
1164 x_value_type_code       := null;
1165 l_output_value          := null;
1166 xla_accounting_err_pkg.build_message
1167                  (p_appli_s_name            => 'XLA'
1168                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1169                  ,p_token_1                 => 'COMPONENT_NAME'
1170                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1171                                                             l_component_type
1172                                                           , l_component_code
1173                                                           , l_component_type_code
1174                                                           , l_component_appl_id
1175                                                           , l_amb_context_code
1176                                                           )
1177                  ,p_token_2                 => 'OWNER'
1178                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1179                                                         'XLA_OWNER_TYPE'
1180                                                         ,l_component_type_code
1181                                                         )
1182                  ,p_token_3                 => 'PAD_NAME'
1183                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1184                  ,p_token_4                 => 'PAD_OWNER'
1185                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1186                                                         'XLA_OWNER_TYPE'
1187                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1188                                                         )
1189                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1190                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1191                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1192                  ,p_ae_header_id            => NULL
1193 );
1194 RETURN l_output_value;
1195 EXCEPTION
1196   WHEN xla_exceptions_pkg.application_exception THEN
1197       RAISE;
1198   WHEN OTHERS THEN
1199        xla_exceptions_pkg.raise_message
1200            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_5');
1201 END AcctDerRule_5;
1202 --
1203 
1204 ---------------------------------------
1205 --
1206 -- PRIVATE FUNCTION
1207 --         AcctDerRule_6
1208 --
1209 ---------------------------------------
1210 FUNCTION AcctDerRule_6 (
1211   p_application_id             IN NUMBER
1212 , p_ae_header_id               IN NUMBER
1213 , p_side                       IN VARCHAR2
1214 , p_override_seg_flag          IN VARCHAR2 
1215 --Automatic Offsets Value
1216  , p_source_16            IN VARCHAR2
1217  , p_source_16_meaning    IN VARCHAR2
1218 --Purchase Order Rate Variance Gain Account
1219  , p_source_17            IN NUMBER
1220 --Destination Type of the PO Distribution
1221  , p_source_19            IN VARCHAR2
1222  , p_source_19_meaning    IN VARCHAR2
1223 --Purchase Order Rate Variance Loss Account
1224  , p_source_20            IN NUMBER
1225 --Payment Distribution (Payment Rate) Ledger Amount
1226  , p_source_21            IN NUMBER
1227 --Payment Distribution (Cleared Rate) Ledger Amount
1228  , p_source_22            IN NUMBER
1229 , x_transaction_coa_id         OUT NOCOPY NUMBER
1230 , x_accounting_coa_id          OUT NOCOPY NUMBER
1231 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1232 , x_flex_value_set_id          OUT NOCOPY NUMBER
1233 , x_value_type_code            OUT NOCOPY VARCHAR2
1234 , x_value_combination_id       OUT NOCOPY NUMBER
1235 , x_value_segment_code         OUT NOCOPY VARCHAR2
1236 )
1237 RETURN VARCHAR2
1238 IS
1239 l_component_type       VARCHAR2(80)  ;
1240 l_component_code       VARCHAR2(30)  ;
1241 l_component_type_code  VARCHAR2(1)   ;
1242 l_component_appl_id    INTEGER       ;
1243 l_amb_context_code     VARCHAR2(30)  ;
1244 l_log_module           VARCHAR2(240) ;
1245 l_output_value         VARCHAR2(30)  ;
1246 BEGIN
1247 IF g_log_enabled THEN
1248       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_6';
1249 END IF;
1250 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1251 
1252       trace
1253          (p_msg      => 'BEGIN of AcctDerRule_6'
1254          ,p_level    => C_LEVEL_PROCEDURE
1255          ,p_module   => l_log_module);
1256 
1257 END IF;
1258 
1259 l_component_type         := 'AMB_ADR';
1263 l_amb_context_code       := 'DEFAULT';
1260 l_component_code         := 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH';
1261 l_component_type_code    := 'S';
1262 l_component_appl_id      :=  200;
1264 x_transaction_coa_id     :=  null;
1265 x_accounting_coa_id      :=  null;
1266 x_flexfield_segment_code := 'GL_ACCOUNT';
1267 x_flex_value_set_id      :=  null ;
1268 
1269 
1270  IF NVL(p_source_16,'
1271 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1272 NVL(p_source_19,'
1273 ') =  'INVENTORY' AND 
1274 (p_source_21 <  0 OR 
1275 p_source_22 <  0)
1276  THEN 
1277 --
1278   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1279 
1280       trace
1281          (p_msg      => 'END of AcctDerRule_6'
1282          ,p_level    => C_LEVEL_PROCEDURE
1283          ,p_module   => l_log_module);
1284 
1285   END IF;
1286   x_value_combination_id  := TO_NUMBER(p_source_17) ;
1287   x_value_segment_code    := 'GL_ACCOUNT' ;
1288   x_value_type_code       := 'S';
1289   l_output_value          :=  null;
1290   RETURN l_output_value;
1291 
1292  ELSIF NVL(p_source_16,'
1293 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1294 NVL(p_source_19,'
1295 ') =  'INVENTORY' AND 
1296 (p_source_21 >  0 OR 
1297 p_source_22 >  0)
1298  THEN 
1299 --
1300   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1301 
1302       trace
1303          (p_msg      => 'END of AcctDerRule_6'
1304          ,p_level    => C_LEVEL_PROCEDURE
1305          ,p_module   => l_log_module);
1306 
1307   END IF;
1308   x_value_combination_id  := TO_NUMBER(p_source_20) ;
1309   x_value_segment_code    := 'GL_ACCOUNT' ;
1310   x_value_type_code       := 'S';
1311   l_output_value          :=  null;
1312   RETURN l_output_value;
1313 
1314  ELSE 
1315     IF p_override_seg_flag = 'Y' THEN 
1316        RETURN '#$NO_OVERRIDE#$';
1317     END IF;
1318  END IF;
1319 
1320 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1321 
1322       trace
1323          (p_msg      => 'END of AcctDerRule_6(invalid)'
1324          ,p_level    => C_LEVEL_PROCEDURE
1325          ,p_module   => l_log_module);
1326 
1327 END IF;
1328 
1329 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1330 x_value_combination_id  := null;
1331 x_value_segment_code    := null;
1332 x_value_type_code       := null;
1333 l_output_value          := null;
1334 xla_accounting_err_pkg.build_message
1335                  (p_appli_s_name            => 'XLA'
1336                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1337                  ,p_token_1                 => 'COMPONENT_NAME'
1338                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1339                                                             l_component_type
1340                                                           , l_component_code
1341                                                           , l_component_type_code
1342                                                           , l_component_appl_id
1343                                                           , l_amb_context_code
1344                                                           )
1345                  ,p_token_2                 => 'OWNER'
1346                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1347                                                         'XLA_OWNER_TYPE'
1348                                                         ,l_component_type_code
1349                                                         )
1350                  ,p_token_3                 => 'PAD_NAME'
1351                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1352                  ,p_token_4                 => 'PAD_OWNER'
1353                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1354                                                         'XLA_OWNER_TYPE'
1355                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1356                                                         )
1357                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1358                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1359                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1360                  ,p_ae_header_id            => NULL
1361 );
1362 RETURN l_output_value;
1363 EXCEPTION
1364   WHEN xla_exceptions_pkg.application_exception THEN
1365       RAISE;
1366   WHEN OTHERS THEN
1367        xla_exceptions_pkg.raise_message
1368            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_6');
1369 END AcctDerRule_6;
1370 --
1371 
1372 ---------------------------------------
1373 --
1374 -- PRIVATE FUNCTION
1375 --         AcctDerRule_7
1376 --
1377 ---------------------------------------
1378 FUNCTION AcctDerRule_7 (
1379   p_application_id             IN NUMBER
1380 , p_ae_header_id               IN NUMBER
1381 , p_side                       IN VARCHAR2
1382 , p_override_seg_flag          IN VARCHAR2 
1383 --Automatic Offsets Value
1384  , p_source_16            IN VARCHAR2
1385  , p_source_16_meaning    IN VARCHAR2
1386 --Purchase Order Rate Variance Gain Account
1387  , p_source_17            IN NUMBER
1388 --Destination Type of the PO Distribution
1389  , p_source_19            IN VARCHAR2
1390  , p_source_19_meaning    IN VARCHAR2
1391 , x_transaction_coa_id         OUT NOCOPY NUMBER
1395 , x_value_type_code            OUT NOCOPY VARCHAR2
1392 , x_accounting_coa_id          OUT NOCOPY NUMBER
1393 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1394 , x_flex_value_set_id          OUT NOCOPY NUMBER
1396 , x_value_combination_id       OUT NOCOPY NUMBER
1397 , x_value_segment_code         OUT NOCOPY VARCHAR2
1398 )
1399 RETURN VARCHAR2
1400 IS
1401 l_component_type       VARCHAR2(80)  ;
1402 l_component_code       VARCHAR2(30)  ;
1403 l_component_type_code  VARCHAR2(1)   ;
1404 l_component_appl_id    INTEGER       ;
1405 l_amb_context_code     VARCHAR2(30)  ;
1406 l_log_module           VARCHAR2(240) ;
1407 l_output_value         VARCHAR2(30)  ;
1408 BEGIN
1409 IF g_log_enabled THEN
1410       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_7';
1411 END IF;
1412 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1413 
1414       trace
1415          (p_msg      => 'BEGIN of AcctDerRule_7'
1416          ,p_level    => C_LEVEL_PROCEDURE
1417          ,p_module   => l_log_module);
1418 
1419 END IF;
1420 
1421 l_component_type         := 'AMB_ADR';
1422 l_component_code         := 'AP_ERV_GAIN_NAT_ACCT_SEG';
1423 l_component_type_code    := 'S';
1424 l_component_appl_id      :=  200;
1425 l_amb_context_code       := 'DEFAULT';
1426 x_transaction_coa_id     :=  null;
1427 x_accounting_coa_id      :=  null;
1428 x_flexfield_segment_code := 'GL_ACCOUNT';
1429 x_flex_value_set_id      :=  null ;
1430 
1431 
1432  IF NVL(p_source_16,'
1433 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1434 NVL(p_source_19,'
1435 ') =  'INVENTORY'
1436  THEN 
1437 --
1438   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1439 
1440       trace
1441          (p_msg      => 'END of AcctDerRule_7'
1442          ,p_level    => C_LEVEL_PROCEDURE
1443          ,p_module   => l_log_module);
1444 
1445   END IF;
1446   x_value_combination_id  := TO_NUMBER(p_source_17) ;
1447   x_value_segment_code    := 'GL_ACCOUNT' ;
1448   x_value_type_code       := 'S';
1449   l_output_value          :=  null;
1450   RETURN l_output_value;
1451 
1452  ELSE 
1453     IF p_override_seg_flag = 'Y' THEN 
1454        RETURN '#$NO_OVERRIDE#$';
1455     END IF;
1456  END IF;
1457 
1458 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1459 
1460       trace
1461          (p_msg      => 'END of AcctDerRule_7(invalid)'
1462          ,p_level    => C_LEVEL_PROCEDURE
1463          ,p_module   => l_log_module);
1464 
1465 END IF;
1466 
1467 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1468 x_value_combination_id  := null;
1469 x_value_segment_code    := null;
1470 x_value_type_code       := null;
1471 l_output_value          := null;
1472 xla_accounting_err_pkg.build_message
1473                  (p_appli_s_name            => 'XLA'
1474                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1475                  ,p_token_1                 => 'COMPONENT_NAME'
1476                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1477                                                             l_component_type
1478                                                           , l_component_code
1479                                                           , l_component_type_code
1480                                                           , l_component_appl_id
1481                                                           , l_amb_context_code
1482                                                           )
1483                  ,p_token_2                 => 'OWNER'
1484                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1485                                                         'XLA_OWNER_TYPE'
1486                                                         ,l_component_type_code
1487                                                         )
1488                  ,p_token_3                 => 'PAD_NAME'
1489                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1490                  ,p_token_4                 => 'PAD_OWNER'
1491                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1492                                                         'XLA_OWNER_TYPE'
1493                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1494                                                         )
1495                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1496                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1497                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1498                  ,p_ae_header_id            => NULL
1499 );
1500 RETURN l_output_value;
1501 EXCEPTION
1502   WHEN xla_exceptions_pkg.application_exception THEN
1503       RAISE;
1504   WHEN OTHERS THEN
1505        xla_exceptions_pkg.raise_message
1506            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_7');
1507 END AcctDerRule_7;
1508 --
1509 
1510 ---------------------------------------
1511 --
1512 -- PRIVATE FUNCTION
1513 --         AcctDerRule_8
1514 --
1515 ---------------------------------------
1516 FUNCTION AcctDerRule_8 (
1517   p_application_id             IN NUMBER
1518 , p_ae_header_id               IN NUMBER
1519 , p_side                       IN VARCHAR2
1520 , p_override_seg_flag          IN VARCHAR2 
1521 --Automatic Offsets Value
1525  , p_source_19            IN VARCHAR2
1522  , p_source_16            IN VARCHAR2
1523  , p_source_16_meaning    IN VARCHAR2
1524 --Destination Type of the PO Distribution
1526  , p_source_19_meaning    IN VARCHAR2
1527 --Purchase Order Rate Variance Loss Account
1528  , p_source_20            IN NUMBER
1529 , x_transaction_coa_id         OUT NOCOPY NUMBER
1530 , x_accounting_coa_id          OUT NOCOPY NUMBER
1531 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1532 , x_flex_value_set_id          OUT NOCOPY NUMBER
1533 , x_value_type_code            OUT NOCOPY VARCHAR2
1534 , x_value_combination_id       OUT NOCOPY NUMBER
1535 , x_value_segment_code         OUT NOCOPY VARCHAR2
1536 )
1537 RETURN VARCHAR2
1538 IS
1539 l_component_type       VARCHAR2(80)  ;
1540 l_component_code       VARCHAR2(30)  ;
1541 l_component_type_code  VARCHAR2(1)   ;
1542 l_component_appl_id    INTEGER       ;
1543 l_amb_context_code     VARCHAR2(30)  ;
1544 l_log_module           VARCHAR2(240) ;
1545 l_output_value         VARCHAR2(30)  ;
1546 BEGIN
1547 IF g_log_enabled THEN
1548       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_8';
1549 END IF;
1550 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1551 
1552       trace
1553          (p_msg      => 'BEGIN of AcctDerRule_8'
1554          ,p_level    => C_LEVEL_PROCEDURE
1555          ,p_module   => l_log_module);
1556 
1557 END IF;
1558 
1559 l_component_type         := 'AMB_ADR';
1560 l_component_code         := 'AP_ERV_LOSS_NAT_ACCT_SEG';
1561 l_component_type_code    := 'S';
1562 l_component_appl_id      :=  200;
1563 l_amb_context_code       := 'DEFAULT';
1564 x_transaction_coa_id     :=  null;
1565 x_accounting_coa_id      :=  null;
1566 x_flexfield_segment_code := 'GL_ACCOUNT';
1567 x_flex_value_set_id      :=  null ;
1568 
1569 
1570  IF NVL(p_source_16,'
1571 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1572 NVL(p_source_19,'
1573 ') =  'INVENTORY'
1574  THEN 
1575 --
1576   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1577 
1578       trace
1579          (p_msg      => 'END of AcctDerRule_8'
1580          ,p_level    => C_LEVEL_PROCEDURE
1581          ,p_module   => l_log_module);
1582 
1583   END IF;
1584   x_value_combination_id  := TO_NUMBER(p_source_20) ;
1585   x_value_segment_code    := 'GL_ACCOUNT' ;
1586   x_value_type_code       := 'S';
1587   l_output_value          :=  null;
1588   RETURN l_output_value;
1589 
1590  ELSE 
1591     IF p_override_seg_flag = 'Y' THEN 
1592        RETURN '#$NO_OVERRIDE#$';
1593     END IF;
1594  END IF;
1595 
1596 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1597 
1598       trace
1599          (p_msg      => 'END of AcctDerRule_8(invalid)'
1600          ,p_level    => C_LEVEL_PROCEDURE
1601          ,p_module   => l_log_module);
1602 
1603 END IF;
1604 
1605 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1606 x_value_combination_id  := null;
1607 x_value_segment_code    := null;
1608 x_value_type_code       := null;
1609 l_output_value          := null;
1610 xla_accounting_err_pkg.build_message
1611                  (p_appli_s_name            => 'XLA'
1612                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1613                  ,p_token_1                 => 'COMPONENT_NAME'
1614                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1615                                                             l_component_type
1616                                                           , l_component_code
1617                                                           , l_component_type_code
1618                                                           , l_component_appl_id
1619                                                           , l_amb_context_code
1620                                                           )
1621                  ,p_token_2                 => 'OWNER'
1622                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1623                                                         'XLA_OWNER_TYPE'
1624                                                         ,l_component_type_code
1625                                                         )
1626                  ,p_token_3                 => 'PAD_NAME'
1627                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1628                  ,p_token_4                 => 'PAD_OWNER'
1629                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1630                                                         'XLA_OWNER_TYPE'
1631                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1632                                                         )
1633                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1634                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1635                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1636                  ,p_ae_header_id            => NULL
1637 );
1638 RETURN l_output_value;
1639 EXCEPTION
1640   WHEN xla_exceptions_pkg.application_exception THEN
1641       RAISE;
1642   WHEN OTHERS THEN
1643        xla_exceptions_pkg.raise_message
1644            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_8');
1645 END AcctDerRule_8;
1646 --
1647 
1648 ---------------------------------------
1649 --
1653 ---------------------------------------
1650 -- PRIVATE FUNCTION
1651 --         AcctDerRule_9
1652 --
1654 FUNCTION AcctDerRule_9 (
1655   p_application_id             IN NUMBER
1656 , p_ae_header_id               IN NUMBER
1657 , p_side                       IN VARCHAR2
1658 , p_override_seg_flag          IN VARCHAR2 
1659 --Automatic Offsets Value
1660  , p_source_16            IN VARCHAR2
1661  , p_source_16_meaning    IN VARCHAR2
1662 --Bank Future Dated Payment Account
1663  , p_source_23            IN NUMBER
1664 --Future Dated Payment Account Source Option
1665  , p_source_24            IN VARCHAR2
1666  , p_source_24_meaning    IN VARCHAR2
1667 --Financials Options Future Dated Payment Account
1668  , p_source_25            IN NUMBER
1669 --Supplier Site Future Dated Payment Account
1670  , p_source_26            IN NUMBER
1671 , x_transaction_coa_id         OUT NOCOPY NUMBER
1672 , x_accounting_coa_id          OUT NOCOPY NUMBER
1673 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1674 , x_flex_value_set_id          OUT NOCOPY NUMBER
1675 , x_value_type_code            OUT NOCOPY VARCHAR2
1676 , x_value_combination_id       OUT NOCOPY NUMBER
1677 , x_value_segment_code         OUT NOCOPY VARCHAR2
1678 )
1679 RETURN VARCHAR2
1680 IS
1681 l_component_type       VARCHAR2(80)  ;
1682 l_component_code       VARCHAR2(30)  ;
1683 l_component_type_code  VARCHAR2(1)   ;
1684 l_component_appl_id    INTEGER       ;
1685 l_amb_context_code     VARCHAR2(30)  ;
1686 l_log_module           VARCHAR2(240) ;
1687 l_output_value         VARCHAR2(30)  ;
1688 BEGIN
1689 IF g_log_enabled THEN
1690       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_9';
1691 END IF;
1692 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1693 
1694       trace
1695          (p_msg      => 'BEGIN of AcctDerRule_9'
1696          ,p_level    => C_LEVEL_PROCEDURE
1697          ,p_module   => l_log_module);
1698 
1699 END IF;
1700 
1701 l_component_type         := 'AMB_ADR';
1702 l_component_code         := 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG';
1703 l_component_type_code    := 'S';
1704 l_component_appl_id      :=  200;
1705 l_amb_context_code       := 'DEFAULT';
1706 x_transaction_coa_id     :=  null;
1707 x_accounting_coa_id      :=  null;
1708 x_flexfield_segment_code := 'GL_ACCOUNT';
1709 x_flex_value_set_id      :=  null ;
1710 
1711 
1712  IF (NVL(p_source_16,'
1713 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1714 NVL(p_source_24,'
1715 ') =  'BANK ACCOUNT') AND 
1716 TO_NUMBER(p_source_23) IS NOT NULL 
1717  THEN 
1718 --
1719   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1720 
1721       trace
1722          (p_msg      => 'END of AcctDerRule_9'
1723          ,p_level    => C_LEVEL_PROCEDURE
1724          ,p_module   => l_log_module);
1725 
1726   END IF;
1727   x_value_combination_id  := TO_NUMBER(p_source_23) ;
1728   x_value_segment_code    := 'GL_ACCOUNT' ;
1729   x_value_type_code       := 'S';
1730   l_output_value          :=  null;
1731   RETURN l_output_value;
1732 
1733  ELSIF NVL(p_source_16,'
1734 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1735 NVL(p_source_24,'
1736 ') =  'BANK ACCOUNT'
1737  THEN 
1738 --
1739   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1740 
1741       trace
1742          (p_msg      => 'END of AcctDerRule_9'
1743          ,p_level    => C_LEVEL_PROCEDURE
1744          ,p_module   => l_log_module);
1745 
1746   END IF;
1747   x_value_combination_id  := TO_NUMBER(p_source_25) ;
1748   x_value_segment_code    := 'GL_ACCOUNT' ;
1749   x_value_type_code       := 'S';
1750   l_output_value          :=  null;
1751   RETURN l_output_value;
1752 
1753  ELSIF NVL(p_source_16,'
1754 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1755 NVL(p_source_24,'
1756 ') =  'SUPPLIER SITE' AND 
1757 TO_NUMBER(p_source_26) IS NOT NULL 
1758  THEN 
1759 --
1760   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1761 
1762       trace
1763          (p_msg      => 'END of AcctDerRule_9'
1764          ,p_level    => C_LEVEL_PROCEDURE
1765          ,p_module   => l_log_module);
1766 
1767   END IF;
1768   x_value_combination_id  := TO_NUMBER(p_source_26) ;
1769   x_value_segment_code    := 'GL_ACCOUNT' ;
1770   x_value_type_code       := 'S';
1771   l_output_value          :=  null;
1772   RETURN l_output_value;
1773 
1774  ELSIF NVL(p_source_16,'
1775 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1776 NVL(p_source_24,'
1777 ') =  'SUPPLIER SITE'
1778  THEN 
1779 --
1780   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1781 
1782       trace
1783          (p_msg      => 'END of AcctDerRule_9'
1784          ,p_level    => C_LEVEL_PROCEDURE
1785          ,p_module   => l_log_module);
1786 
1787   END IF;
1788   x_value_combination_id  := TO_NUMBER(p_source_25) ;
1789   x_value_segment_code    := 'GL_ACCOUNT' ;
1790   x_value_type_code       := 'S';
1791   l_output_value          :=  null;
1792   RETURN l_output_value;
1793 
1794  ELSE 
1795     IF p_override_seg_flag = 'Y' THEN 
1796        RETURN '#$NO_OVERRIDE#$';
1797     END IF;
1798  END IF;
1799 
1800 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1801 
1802       trace
1803          (p_msg      => 'END of AcctDerRule_9(invalid)'
1804          ,p_level    => C_LEVEL_PROCEDURE
1805          ,p_module   => l_log_module);
1806 
1807 END IF;
1808 
1812 x_value_type_code       := null;
1809 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1810 x_value_combination_id  := null;
1811 x_value_segment_code    := null;
1813 l_output_value          := null;
1814 xla_accounting_err_pkg.build_message
1815                  (p_appli_s_name            => 'XLA'
1816                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1817                  ,p_token_1                 => 'COMPONENT_NAME'
1818                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1819                                                             l_component_type
1820                                                           , l_component_code
1821                                                           , l_component_type_code
1822                                                           , l_component_appl_id
1823                                                           , l_amb_context_code
1824                                                           )
1825                  ,p_token_2                 => 'OWNER'
1826                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1827                                                         'XLA_OWNER_TYPE'
1828                                                         ,l_component_type_code
1829                                                         )
1830                  ,p_token_3                 => 'PAD_NAME'
1831                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1832                  ,p_token_4                 => 'PAD_OWNER'
1833                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1834                                                         'XLA_OWNER_TYPE'
1835                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1836                                                         )
1837                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1838                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1839                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1840                  ,p_ae_header_id            => NULL
1841 );
1842 RETURN l_output_value;
1843 EXCEPTION
1844   WHEN xla_exceptions_pkg.application_exception THEN
1845       RAISE;
1846   WHEN OTHERS THEN
1847        xla_exceptions_pkg.raise_message
1848            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_9');
1849 END AcctDerRule_9;
1850 --
1851 
1852 ---------------------------------------
1853 --
1854 -- PRIVATE FUNCTION
1855 --         AcctDerRule_10
1856 --
1857 ---------------------------------------
1858 FUNCTION AcctDerRule_10 (
1859   p_application_id             IN NUMBER
1860 , p_ae_header_id               IN NUMBER
1861 , p_side                       IN VARCHAR2
1862 , p_override_seg_flag          IN VARCHAR2 
1863 --Interest Account
1864  , p_source_27            IN NUMBER
1865 --Prorate Interest Invoice Across Distributions Option
1866  , p_source_28            IN VARCHAR2
1867 , x_transaction_coa_id         OUT NOCOPY NUMBER
1868 , x_accounting_coa_id          OUT NOCOPY NUMBER
1869 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1870 , x_flex_value_set_id          OUT NOCOPY NUMBER
1871 , x_value_type_code            OUT NOCOPY VARCHAR2
1872 , x_value_combination_id       OUT NOCOPY NUMBER
1873 , x_value_segment_code         OUT NOCOPY VARCHAR2
1874 )
1875 RETURN VARCHAR2
1876 IS
1877 l_component_type       VARCHAR2(80)  ;
1878 l_component_code       VARCHAR2(30)  ;
1879 l_component_type_code  VARCHAR2(1)   ;
1880 l_component_appl_id    INTEGER       ;
1881 l_amb_context_code     VARCHAR2(30)  ;
1882 l_log_module           VARCHAR2(240) ;
1883 l_output_value         VARCHAR2(30)  ;
1884 BEGIN
1885 IF g_log_enabled THEN
1886       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_10';
1887 END IF;
1888 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1889 
1890       trace
1891          (p_msg      => 'BEGIN of AcctDerRule_10'
1892          ,p_level    => C_LEVEL_PROCEDURE
1893          ,p_module   => l_log_module);
1894 
1895 END IF;
1896 
1897 l_component_type         := 'AMB_ADR';
1898 l_component_code         := 'AP_INTEREST_NAT_ACCT_SEG';
1899 l_component_type_code    := 'S';
1900 l_component_appl_id      :=  200;
1901 l_amb_context_code       := 'DEFAULT';
1902 x_transaction_coa_id     :=  null;
1903 x_accounting_coa_id      :=  null;
1904 x_flexfield_segment_code := 'GL_ACCOUNT';
1905 x_flex_value_set_id      :=  null ;
1906 
1907 
1908  IF NVL(p_source_28,'
1909 ') =  'Y'
1910  THEN 
1911 --
1912   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1913 
1914       trace
1915          (p_msg      => 'END of AcctDerRule_10'
1916          ,p_level    => C_LEVEL_PROCEDURE
1917          ,p_module   => l_log_module);
1918 
1919   END IF;
1920   x_value_combination_id  := TO_NUMBER(p_source_27) ;
1921   x_value_segment_code    := 'GL_ACCOUNT' ;
1922   x_value_type_code       := 'S';
1923   l_output_value          :=  null;
1924   RETURN l_output_value;
1925 
1926  ELSE 
1927     IF p_override_seg_flag = 'Y' THEN 
1928        RETURN '#$NO_OVERRIDE#$';
1929     END IF;
1930  END IF;
1931 
1932 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1936          ,p_level    => C_LEVEL_PROCEDURE
1933 
1934       trace
1935          (p_msg      => 'END of AcctDerRule_10(invalid)'
1937          ,p_module   => l_log_module);
1938 
1939 END IF;
1940 
1941 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1942 x_value_combination_id  := null;
1943 x_value_segment_code    := null;
1944 x_value_type_code       := null;
1945 l_output_value          := null;
1946 xla_accounting_err_pkg.build_message
1947                  (p_appli_s_name            => 'XLA'
1948                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1949                  ,p_token_1                 => 'COMPONENT_NAME'
1950                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1951                                                             l_component_type
1952                                                           , l_component_code
1953                                                           , l_component_type_code
1954                                                           , l_component_appl_id
1955                                                           , l_amb_context_code
1956                                                           )
1957                  ,p_token_2                 => 'OWNER'
1958                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1959                                                         'XLA_OWNER_TYPE'
1960                                                         ,l_component_type_code
1961                                                         )
1962                  ,p_token_3                 => 'PAD_NAME'
1963                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1964                  ,p_token_4                 => 'PAD_OWNER'
1965                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1966                                                         'XLA_OWNER_TYPE'
1967                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1968                                                         )
1969                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1970                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1971                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1972                  ,p_ae_header_id            => NULL
1973 );
1974 RETURN l_output_value;
1975 EXCEPTION
1976   WHEN xla_exceptions_pkg.application_exception THEN
1977       RAISE;
1978   WHEN OTHERS THEN
1979        xla_exceptions_pkg.raise_message
1980            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_10');
1981 END AcctDerRule_10;
1982 --
1983 
1984 ---------------------------------------
1985 --
1986 -- PRIVATE FUNCTION
1987 --         AcctDerRule_11
1988 --
1989 ---------------------------------------
1990 FUNCTION AcctDerRule_11 (
1991   p_application_id             IN NUMBER
1992 , p_ae_header_id               IN NUMBER
1993 , p_side                       IN VARCHAR2
1994 , p_override_seg_flag          IN VARCHAR2 
1995 --Invoice Distribution Account
1996  , p_source_29            IN NUMBER
1997 --Prepaid Expense Account Source Option
1998  , p_source_30            IN VARCHAR2
1999  , p_source_30_meaning    IN VARCHAR2
2000 --Purchase Order Number
2001  , p_source_31            IN VARCHAR2
2002 --Invoice Distribution Type
2003  , p_source_32            IN VARCHAR2
2004  , p_source_32_meaning    IN VARCHAR2
2005 , x_transaction_coa_id         OUT NOCOPY NUMBER
2006 , x_accounting_coa_id          OUT NOCOPY NUMBER
2007 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2008 , x_flex_value_set_id          OUT NOCOPY NUMBER
2009 , x_value_type_code            OUT NOCOPY VARCHAR2
2010 , x_value_combination_id       OUT NOCOPY NUMBER
2011 , x_value_segment_code         OUT NOCOPY VARCHAR2
2012 )
2013 RETURN VARCHAR2
2014 IS
2015 l_component_type       VARCHAR2(80)  ;
2016 l_component_code       VARCHAR2(30)  ;
2017 l_component_type_code  VARCHAR2(1)   ;
2018 l_component_appl_id    INTEGER       ;
2019 l_amb_context_code     VARCHAR2(30)  ;
2020 l_log_module           VARCHAR2(240) ;
2021 l_output_value         VARCHAR2(30)  ;
2022 BEGIN
2023 IF g_log_enabled THEN
2024       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_11';
2025 END IF;
2026 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2027 
2028       trace
2029          (p_msg      => 'BEGIN of AcctDerRule_11'
2030          ,p_level    => C_LEVEL_PROCEDURE
2031          ,p_module   => l_log_module);
2032 
2033 END IF;
2034 
2035 l_component_type         := 'AMB_ADR';
2036 l_component_code         := 'AP_INVOICE_DIST_NAT_ACCT_ITEM';
2037 l_component_type_code    := 'S';
2038 l_component_appl_id      :=  200;
2039 l_amb_context_code       := 'DEFAULT';
2040 x_transaction_coa_id     :=  null;
2041 x_accounting_coa_id      :=  null;
2042 x_flexfield_segment_code := 'GL_ACCOUNT';
2043 x_flex_value_set_id      :=  null ;
2044 
2045 
2046  IF NVL(p_source_30,'
2047 ') =  'Y' AND 
2048 p_source_31 IS NOT NULL AND 
2049 NVL(p_source_32,'
2050 ') =  'ITEM'
2051  THEN 
2052 --
2053   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2054 
2055       trace
2056          (p_msg      => 'END of AcctDerRule_11'
2057          ,p_level    => C_LEVEL_PROCEDURE
2058          ,p_module   => l_log_module);
2059 
2060   END IF;
2061   x_value_combination_id  := TO_NUMBER(p_source_29) ;
2065   RETURN l_output_value;
2062   x_value_segment_code    := 'GL_ACCOUNT' ;
2063   x_value_type_code       := 'S';
2064   l_output_value          :=  null;
2066 
2067  ELSE 
2068     IF p_override_seg_flag = 'Y' THEN 
2069        RETURN '#$NO_OVERRIDE#$';
2070     END IF;
2071  END IF;
2072 
2073 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2074 
2075       trace
2076          (p_msg      => 'END of AcctDerRule_11(invalid)'
2077          ,p_level    => C_LEVEL_PROCEDURE
2078          ,p_module   => l_log_module);
2079 
2080 END IF;
2081 
2082 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2083 x_value_combination_id  := null;
2084 x_value_segment_code    := null;
2085 x_value_type_code       := null;
2086 l_output_value          := null;
2087 xla_accounting_err_pkg.build_message
2088                  (p_appli_s_name            => 'XLA'
2089                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2090                  ,p_token_1                 => 'COMPONENT_NAME'
2091                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2092                                                             l_component_type
2093                                                           , l_component_code
2094                                                           , l_component_type_code
2095                                                           , l_component_appl_id
2096                                                           , l_amb_context_code
2097                                                           )
2098                  ,p_token_2                 => 'OWNER'
2099                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2100                                                         'XLA_OWNER_TYPE'
2101                                                         ,l_component_type_code
2102                                                         )
2103                  ,p_token_3                 => 'PAD_NAME'
2104                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2105                  ,p_token_4                 => 'PAD_OWNER'
2106                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2107                                                         'XLA_OWNER_TYPE'
2108                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2109                                                         )
2110                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2111                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2112                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2113                  ,p_ae_header_id            => NULL
2114 );
2115 RETURN l_output_value;
2116 EXCEPTION
2117   WHEN xla_exceptions_pkg.application_exception THEN
2118       RAISE;
2119   WHEN OTHERS THEN
2120        xla_exceptions_pkg.raise_message
2121            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_11');
2122 END AcctDerRule_11;
2123 --
2124 
2125 ---------------------------------------
2126 --
2127 -- PRIVATE FUNCTION
2128 --         AcctDerRule_12
2129 --
2130 ---------------------------------------
2131 FUNCTION AcctDerRule_12 (
2132   p_application_id             IN NUMBER
2133 , p_ae_header_id               IN NUMBER
2134 , p_side                       IN VARCHAR2
2135 , p_override_seg_flag          IN VARCHAR2 
2136 --Automatic Offsets Value
2137  , p_source_16            IN VARCHAR2
2138  , p_source_16_meaning    IN VARCHAR2
2139 --Invoice Distribution Account
2140  , p_source_29            IN NUMBER
2141 , x_transaction_coa_id         OUT NOCOPY NUMBER
2142 , x_accounting_coa_id          OUT NOCOPY NUMBER
2143 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2144 , x_flex_value_set_id          OUT NOCOPY NUMBER
2145 , x_value_type_code            OUT NOCOPY VARCHAR2
2146 , x_value_combination_id       OUT NOCOPY NUMBER
2147 , x_value_segment_code         OUT NOCOPY VARCHAR2
2148 )
2149 RETURN VARCHAR2
2150 IS
2151 l_component_type       VARCHAR2(80)  ;
2152 l_component_code       VARCHAR2(30)  ;
2153 l_component_type_code  VARCHAR2(1)   ;
2154 l_component_appl_id    INTEGER       ;
2155 l_amb_context_code     VARCHAR2(30)  ;
2156 l_log_module           VARCHAR2(240) ;
2157 l_output_value         VARCHAR2(30)  ;
2158 BEGIN
2159 IF g_log_enabled THEN
2160       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_12';
2161 END IF;
2162 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2163 
2164       trace
2165          (p_msg      => 'BEGIN of AcctDerRule_12'
2166          ,p_level    => C_LEVEL_PROCEDURE
2167          ,p_module   => l_log_module);
2168 
2169 END IF;
2170 
2171 l_component_type         := 'AMB_ADR';
2172 l_component_code         := 'AP_INVOICE_DIST_NAT_ACCT_SEG';
2173 l_component_type_code    := 'S';
2174 l_component_appl_id      :=  200;
2175 l_amb_context_code       := 'DEFAULT';
2176 x_transaction_coa_id     :=  null;
2177 x_accounting_coa_id      :=  null;
2178 x_flexfield_segment_code := 'GL_ACCOUNT';
2179 x_flex_value_set_id      :=  null ;
2180 
2181 
2182  IF NVL(p_source_16,'
2183 ') =  'ACCOUNT_SEGMENT_VALUE'
2184  THEN 
2185 --
2186   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2187 
2188       trace
2192 
2189          (p_msg      => 'END of AcctDerRule_12'
2190          ,p_level    => C_LEVEL_PROCEDURE
2191          ,p_module   => l_log_module);
2193   END IF;
2194   x_value_combination_id  := TO_NUMBER(p_source_29) ;
2195   x_value_segment_code    := 'GL_ACCOUNT' ;
2196   x_value_type_code       := 'S';
2197   l_output_value          :=  null;
2198   RETURN l_output_value;
2199 
2200  ELSE 
2201     IF p_override_seg_flag = 'Y' THEN 
2202        RETURN '#$NO_OVERRIDE#$';
2203     END IF;
2204  END IF;
2205 
2206 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2207 
2208       trace
2209          (p_msg      => 'END of AcctDerRule_12(invalid)'
2210          ,p_level    => C_LEVEL_PROCEDURE
2211          ,p_module   => l_log_module);
2212 
2213 END IF;
2214 
2215 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2216 x_value_combination_id  := null;
2217 x_value_segment_code    := null;
2218 x_value_type_code       := null;
2219 l_output_value          := null;
2220 xla_accounting_err_pkg.build_message
2221                  (p_appli_s_name            => 'XLA'
2222                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2223                  ,p_token_1                 => 'COMPONENT_NAME'
2224                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2225                                                             l_component_type
2226                                                           , l_component_code
2227                                                           , l_component_type_code
2228                                                           , l_component_appl_id
2229                                                           , l_amb_context_code
2230                                                           )
2231                  ,p_token_2                 => 'OWNER'
2232                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2233                                                         'XLA_OWNER_TYPE'
2234                                                         ,l_component_type_code
2235                                                         )
2236                  ,p_token_3                 => 'PAD_NAME'
2237                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2238                  ,p_token_4                 => 'PAD_OWNER'
2239                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2240                                                         'XLA_OWNER_TYPE'
2241                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2242                                                         )
2243                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2244                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2245                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2246                  ,p_ae_header_id            => NULL
2247 );
2248 RETURN l_output_value;
2249 EXCEPTION
2250   WHEN xla_exceptions_pkg.application_exception THEN
2251       RAISE;
2252   WHEN OTHERS THEN
2253        xla_exceptions_pkg.raise_message
2254            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_12');
2255 END AcctDerRule_12;
2256 --
2257 
2258 ---------------------------------------
2259 --
2260 -- PRIVATE FUNCTION
2261 --         AcctDerRule_13
2262 --
2263 ---------------------------------------
2264 FUNCTION AcctDerRule_13 (
2265   p_application_id             IN NUMBER
2266 , p_ae_header_id               IN NUMBER
2267 , p_side                       IN VARCHAR2
2268 , p_override_seg_flag          IN VARCHAR2 
2269 --Bank Cash Clearing Account
2270  , p_source_33            IN NUMBER
2271 , x_transaction_coa_id         OUT NOCOPY NUMBER
2272 , x_accounting_coa_id          OUT NOCOPY NUMBER
2273 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2274 , x_flex_value_set_id          OUT NOCOPY NUMBER
2275 , x_value_type_code            OUT NOCOPY VARCHAR2
2276 , x_value_combination_id       OUT NOCOPY NUMBER
2277 , x_value_segment_code         OUT NOCOPY VARCHAR2
2278 )
2279 RETURN VARCHAR2
2280 IS
2281 l_component_type       VARCHAR2(80)  ;
2282 l_component_code       VARCHAR2(30)  ;
2283 l_component_type_code  VARCHAR2(1)   ;
2284 l_component_appl_id    INTEGER       ;
2285 l_amb_context_code     VARCHAR2(30)  ;
2286 l_log_module           VARCHAR2(240) ;
2287 l_output_value         VARCHAR2(30)  ;
2288 BEGIN
2289 IF g_log_enabled THEN
2290       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_13';
2291 END IF;
2292 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2293 
2294       trace
2295          (p_msg      => 'BEGIN of AcctDerRule_13'
2296          ,p_level    => C_LEVEL_PROCEDURE
2297          ,p_module   => l_log_module);
2298 
2299 END IF;
2300 
2301 l_component_type         := 'AMB_ADR';
2302 l_component_code         := 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL';
2303 l_component_type_code    := 'S';
2304 l_component_appl_id      :=  200;
2305 l_amb_context_code       := 'DEFAULT';
2306 x_transaction_coa_id     :=  null;
2307 x_accounting_coa_id      :=  null;
2308 x_flexfield_segment_code := 'GL_ACCOUNT';
2309 x_flex_value_set_id      :=  null ;
2310 
2311 
2312 --
2313   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2317          ,p_level    => C_LEVEL_PROCEDURE
2314 
2315       trace
2316          (p_msg      => 'END of AcctDerRule_13'
2318          ,p_module   => l_log_module);
2319 
2320   END IF;
2321   x_value_combination_id  := TO_NUMBER(p_source_33) ;
2322   x_value_segment_code    := 'GL_ACCOUNT' ;
2323   x_value_type_code       := 'S';
2324   l_output_value          :=  null;
2325   RETURN l_output_value;
2326 
2327 
2328 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2329 
2330       trace
2331          (p_msg      => 'END of AcctDerRule_13(invalid)'
2332          ,p_level    => C_LEVEL_PROCEDURE
2333          ,p_module   => l_log_module);
2334 
2335 END IF;
2336 
2337 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2338 x_value_combination_id  := null;
2339 x_value_segment_code    := null;
2340 x_value_type_code       := null;
2341 l_output_value          := null;
2342 xla_accounting_err_pkg.build_message
2343                  (p_appli_s_name            => 'XLA'
2344                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2345                  ,p_token_1                 => 'COMPONENT_NAME'
2346                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2347                                                             l_component_type
2348                                                           , l_component_code
2349                                                           , l_component_type_code
2350                                                           , l_component_appl_id
2351                                                           , l_amb_context_code
2352                                                           )
2353                  ,p_token_2                 => 'OWNER'
2354                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2355                                                         'XLA_OWNER_TYPE'
2356                                                         ,l_component_type_code
2357                                                         )
2358                  ,p_token_3                 => 'PAD_NAME'
2359                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2360                  ,p_token_4                 => 'PAD_OWNER'
2361                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2362                                                         'XLA_OWNER_TYPE'
2363                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2364                                                         )
2365                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2366                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2367                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2368                  ,p_ae_header_id            => NULL
2369 );
2370 RETURN l_output_value;
2371 EXCEPTION
2372   WHEN xla_exceptions_pkg.application_exception THEN
2373       RAISE;
2374   WHEN OTHERS THEN
2375        xla_exceptions_pkg.raise_message
2376            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_13');
2377 END AcctDerRule_13;
2378 --
2379 
2380 ---------------------------------------
2381 --
2382 -- PRIVATE FUNCTION
2383 --         AcctDerRule_14
2384 --
2385 ---------------------------------------
2386 FUNCTION AcctDerRule_14 (
2387   p_application_id             IN NUMBER
2388 , p_ae_header_id               IN NUMBER
2389 , p_side                       IN VARCHAR2
2390 , p_override_seg_flag          IN VARCHAR2 
2391 --Retainage Account
2392  , p_source_34            IN NUMBER
2393 , x_transaction_coa_id         OUT NOCOPY NUMBER
2394 , x_accounting_coa_id          OUT NOCOPY NUMBER
2395 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2396 , x_flex_value_set_id          OUT NOCOPY NUMBER
2397 , x_value_type_code            OUT NOCOPY VARCHAR2
2398 , x_value_combination_id       OUT NOCOPY NUMBER
2399 , x_value_segment_code         OUT NOCOPY VARCHAR2
2400 )
2401 RETURN VARCHAR2
2402 IS
2403 l_component_type       VARCHAR2(80)  ;
2404 l_component_code       VARCHAR2(30)  ;
2405 l_component_type_code  VARCHAR2(1)   ;
2406 l_component_appl_id    INTEGER       ;
2407 l_amb_context_code     VARCHAR2(30)  ;
2408 l_log_module           VARCHAR2(240) ;
2409 l_output_value         VARCHAR2(30)  ;
2410 BEGIN
2411 IF g_log_enabled THEN
2412       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_14';
2413 END IF;
2414 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2415 
2416       trace
2417          (p_msg      => 'BEGIN of AcctDerRule_14'
2418          ,p_level    => C_LEVEL_PROCEDURE
2419          ,p_module   => l_log_module);
2420 
2421 END IF;
2422 
2423 l_component_type         := 'AMB_ADR';
2424 l_component_code         := 'AP_RETAIN_NAT_ACCT_SEG';
2425 l_component_type_code    := 'S';
2426 l_component_appl_id      :=  200;
2427 l_amb_context_code       := 'DEFAULT';
2428 x_transaction_coa_id     :=  null;
2429 x_accounting_coa_id      :=  null;
2430 x_flexfield_segment_code := 'GL_ACCOUNT';
2431 x_flex_value_set_id      :=  null ;
2432 
2433 
2434 --
2435   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2436 
2437       trace
2438          (p_msg      => 'END of AcctDerRule_14'
2439          ,p_level    => C_LEVEL_PROCEDURE
2443   x_value_combination_id  := TO_NUMBER(p_source_34) ;
2440          ,p_module   => l_log_module);
2441 
2442   END IF;
2444   x_value_segment_code    := 'GL_ACCOUNT' ;
2445   x_value_type_code       := 'S';
2446   l_output_value          :=  null;
2447   RETURN l_output_value;
2448 
2449 
2450 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2451 
2452       trace
2453          (p_msg      => 'END of AcctDerRule_14(invalid)'
2454          ,p_level    => C_LEVEL_PROCEDURE
2455          ,p_module   => l_log_module);
2456 
2457 END IF;
2458 
2459 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2460 x_value_combination_id  := null;
2461 x_value_segment_code    := null;
2462 x_value_type_code       := null;
2463 l_output_value          := null;
2464 xla_accounting_err_pkg.build_message
2465                  (p_appli_s_name            => 'XLA'
2466                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2467                  ,p_token_1                 => 'COMPONENT_NAME'
2468                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2469                                                             l_component_type
2470                                                           , l_component_code
2471                                                           , l_component_type_code
2472                                                           , l_component_appl_id
2473                                                           , l_amb_context_code
2474                                                           )
2475                  ,p_token_2                 => 'OWNER'
2476                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2477                                                         'XLA_OWNER_TYPE'
2478                                                         ,l_component_type_code
2479                                                         )
2480                  ,p_token_3                 => 'PAD_NAME'
2481                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2482                  ,p_token_4                 => 'PAD_OWNER'
2483                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2484                                                         'XLA_OWNER_TYPE'
2485                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2486                                                         )
2487                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2488                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2489                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2490                  ,p_ae_header_id            => NULL
2491 );
2492 RETURN l_output_value;
2493 EXCEPTION
2494   WHEN xla_exceptions_pkg.application_exception THEN
2495       RAISE;
2496   WHEN OTHERS THEN
2497        xla_exceptions_pkg.raise_message
2498            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_14');
2499 END AcctDerRule_14;
2500 --
2501 
2502 ---------------------------------------
2503 --
2504 -- PRIVATE FUNCTION
2505 --         AcctDerRule_15
2506 --
2507 ---------------------------------------
2508 FUNCTION AcctDerRule_15 (
2509   p_application_id             IN NUMBER
2510 , p_ae_header_id               IN NUMBER
2511 , p_side                       IN VARCHAR2
2512 , p_override_seg_flag          IN VARCHAR2 
2513 --Discount Distribution Method
2514  , p_source_15            IN VARCHAR2
2515  , p_source_15_meaning    IN VARCHAR2
2516 --Automatic Offsets Value
2517  , p_source_16            IN VARCHAR2
2518  , p_source_16_meaning    IN VARCHAR2
2519 --Invoice Distribution Account
2520  , p_source_29            IN NUMBER
2521 , x_transaction_coa_id         OUT NOCOPY NUMBER
2522 , x_accounting_coa_id          OUT NOCOPY NUMBER
2523 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2524 , x_flex_value_set_id          OUT NOCOPY NUMBER
2525 , x_value_type_code            OUT NOCOPY VARCHAR2
2526 , x_value_combination_id       OUT NOCOPY NUMBER
2527 , x_value_segment_code         OUT NOCOPY VARCHAR2
2528 )
2529 RETURN VARCHAR2
2530 IS
2531 l_component_type       VARCHAR2(80)  ;
2532 l_component_code       VARCHAR2(30)  ;
2533 l_component_type_code  VARCHAR2(1)   ;
2534 l_component_appl_id    INTEGER       ;
2535 l_amb_context_code     VARCHAR2(30)  ;
2536 l_log_module           VARCHAR2(240) ;
2537 l_output_value         VARCHAR2(30)  ;
2538 BEGIN
2539 IF g_log_enabled THEN
2540       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_15';
2541 END IF;
2542 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2543 
2544       trace
2545          (p_msg      => 'BEGIN of AcctDerRule_15'
2546          ,p_level    => C_LEVEL_PROCEDURE
2547          ,p_module   => l_log_module);
2548 
2549 END IF;
2550 
2551 l_component_type         := 'AMB_ADR';
2552 l_component_code         := 'AP_DISCOUNT_BAL_ACCT_SEG';
2553 l_component_type_code    := 'S';
2554 l_component_appl_id      :=  200;
2555 l_amb_context_code       := 'DEFAULT';
2556 x_transaction_coa_id     :=  null;
2557 x_accounting_coa_id      :=  null;
2558 x_flexfield_segment_code := 'GL_BALANCING';
2559 x_flex_value_set_id      :=  null ;
2560 
2561 
2562  IF NVL(p_source_15,'
2563 ') =  'SYSTEM' AND 
2564 NVL(p_source_16,'
2565 ') =  'BALANCING_SEGMENT'
2566  THEN 
2567 --
2568   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2569 
2570       trace
2574 
2571          (p_msg      => 'END of AcctDerRule_15'
2572          ,p_level    => C_LEVEL_PROCEDURE
2573          ,p_module   => l_log_module);
2575   END IF;
2576   x_value_combination_id  := TO_NUMBER(p_source_29) ;
2577   x_value_segment_code    := 'GL_BALANCING' ;
2578   x_value_type_code       := 'S';
2579   l_output_value          :=  null;
2580   RETURN l_output_value;
2581 
2582  ELSE 
2583     IF p_override_seg_flag = 'Y' THEN 
2584        RETURN '#$NO_OVERRIDE#$';
2585     END IF;
2586  END IF;
2587 
2588 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2589 
2590       trace
2591          (p_msg      => 'END of AcctDerRule_15(invalid)'
2592          ,p_level    => C_LEVEL_PROCEDURE
2593          ,p_module   => l_log_module);
2594 
2595 END IF;
2596 
2597 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2598 x_value_combination_id  := null;
2599 x_value_segment_code    := null;
2600 x_value_type_code       := null;
2601 l_output_value          := null;
2602 xla_accounting_err_pkg.build_message
2603                  (p_appli_s_name            => 'XLA'
2604                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2605                  ,p_token_1                 => 'COMPONENT_NAME'
2606                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2607                                                             l_component_type
2608                                                           , l_component_code
2609                                                           , l_component_type_code
2610                                                           , l_component_appl_id
2611                                                           , l_amb_context_code
2612                                                           )
2613                  ,p_token_2                 => 'OWNER'
2614                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2615                                                         'XLA_OWNER_TYPE'
2616                                                         ,l_component_type_code
2617                                                         )
2618                  ,p_token_3                 => 'PAD_NAME'
2619                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2620                  ,p_token_4                 => 'PAD_OWNER'
2621                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2622                                                         'XLA_OWNER_TYPE'
2623                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2624                                                         )
2625                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2626                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2627                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2628                  ,p_ae_header_id            => NULL
2629 );
2630 RETURN l_output_value;
2631 EXCEPTION
2632   WHEN xla_exceptions_pkg.application_exception THEN
2633       RAISE;
2634   WHEN OTHERS THEN
2635        xla_exceptions_pkg.raise_message
2636            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_15');
2637 END AcctDerRule_15;
2638 --
2639 
2640 ---------------------------------------
2641 --
2642 -- PRIVATE FUNCTION
2643 --         AcctDerRule_16
2644 --
2645 ---------------------------------------
2646 FUNCTION AcctDerRule_16 (
2647   p_application_id             IN NUMBER
2648 , p_ae_header_id               IN NUMBER
2649 , p_side                       IN VARCHAR2
2650 , p_override_seg_flag          IN VARCHAR2 
2651 --Automatic Offsets Value
2652  , p_source_16            IN VARCHAR2
2653  , p_source_16_meaning    IN VARCHAR2
2654 --Invoice Distribution Account
2655  , p_source_29            IN NUMBER
2656 , x_transaction_coa_id         OUT NOCOPY NUMBER
2657 , x_accounting_coa_id          OUT NOCOPY NUMBER
2658 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2659 , x_flex_value_set_id          OUT NOCOPY NUMBER
2660 , x_value_type_code            OUT NOCOPY VARCHAR2
2661 , x_value_combination_id       OUT NOCOPY NUMBER
2662 , x_value_segment_code         OUT NOCOPY VARCHAR2
2663 )
2664 RETURN VARCHAR2
2665 IS
2666 l_component_type       VARCHAR2(80)  ;
2667 l_component_code       VARCHAR2(30)  ;
2668 l_component_type_code  VARCHAR2(1)   ;
2669 l_component_appl_id    INTEGER       ;
2670 l_amb_context_code     VARCHAR2(30)  ;
2671 l_log_module           VARCHAR2(240) ;
2672 l_output_value         VARCHAR2(30)  ;
2673 BEGIN
2674 IF g_log_enabled THEN
2675       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_16';
2676 END IF;
2677 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2678 
2679       trace
2680          (p_msg      => 'BEGIN of AcctDerRule_16'
2681          ,p_level    => C_LEVEL_PROCEDURE
2682          ,p_module   => l_log_module);
2683 
2684 END IF;
2685 
2686 l_component_type         := 'AMB_ADR';
2687 l_component_code         := 'AP_INV_DIST_BAL_SEG';
2688 l_component_type_code    := 'S';
2689 l_component_appl_id      :=  200;
2690 l_amb_context_code       := 'DEFAULT';
2691 x_transaction_coa_id     :=  null;
2692 x_accounting_coa_id      :=  null;
2693 x_flexfield_segment_code := 'GL_BALANCING';
2694 x_flex_value_set_id      :=  null ;
2695 
2696 
2697  IF NVL(p_source_16,'
2698 ') =  'BALANCING_SEGMENT'
2699  THEN 
2700 --
2704          (p_msg      => 'END of AcctDerRule_16'
2701   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2702 
2703       trace
2705          ,p_level    => C_LEVEL_PROCEDURE
2706          ,p_module   => l_log_module);
2707 
2708   END IF;
2709   x_value_combination_id  := TO_NUMBER(p_source_29) ;
2710   x_value_segment_code    := 'GL_BALANCING' ;
2711   x_value_type_code       := 'S';
2712   l_output_value          :=  null;
2713   RETURN l_output_value;
2714 
2715  ELSE 
2716     IF p_override_seg_flag = 'Y' THEN 
2717        RETURN '#$NO_OVERRIDE#$';
2718     END IF;
2719  END IF;
2720 
2721 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2722 
2723       trace
2724          (p_msg      => 'END of AcctDerRule_16(invalid)'
2725          ,p_level    => C_LEVEL_PROCEDURE
2726          ,p_module   => l_log_module);
2727 
2728 END IF;
2729 
2730 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2731 x_value_combination_id  := null;
2732 x_value_segment_code    := null;
2733 x_value_type_code       := null;
2734 l_output_value          := null;
2735 xla_accounting_err_pkg.build_message
2736                  (p_appli_s_name            => 'XLA'
2737                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2738                  ,p_token_1                 => 'COMPONENT_NAME'
2739                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2740                                                             l_component_type
2741                                                           , l_component_code
2742                                                           , l_component_type_code
2743                                                           , l_component_appl_id
2744                                                           , l_amb_context_code
2745                                                           )
2746                  ,p_token_2                 => 'OWNER'
2747                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2748                                                         'XLA_OWNER_TYPE'
2749                                                         ,l_component_type_code
2750                                                         )
2751                  ,p_token_3                 => 'PAD_NAME'
2752                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2753                  ,p_token_4                 => 'PAD_OWNER'
2754                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2755                                                         'XLA_OWNER_TYPE'
2756                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2757                                                         )
2758                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2759                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2760                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2761                  ,p_ae_header_id            => NULL
2762 );
2763 RETURN l_output_value;
2764 EXCEPTION
2765   WHEN xla_exceptions_pkg.application_exception THEN
2766       RAISE;
2767   WHEN OTHERS THEN
2768        xla_exceptions_pkg.raise_message
2769            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_16');
2770 END AcctDerRule_16;
2771 --
2772 
2773 ---------------------------------------
2774 --
2775 -- PRIVATE FUNCTION
2776 --         AcctDerRule_17
2777 --
2778 ---------------------------------------
2779 FUNCTION AcctDerRule_17 (
2780   p_application_id             IN NUMBER
2781 , p_ae_header_id               IN NUMBER
2782 , p_side                       IN VARCHAR2
2783 , p_override_seg_flag          IN VARCHAR2 
2784 --Automatic Offsets Value
2785  , p_source_16            IN VARCHAR2
2786  , p_source_16_meaning    IN VARCHAR2
2787 --Destination Type of the PO Distribution
2788  , p_source_19            IN VARCHAR2
2789  , p_source_19_meaning    IN VARCHAR2
2790 --Invoice Distribution Account
2791  , p_source_29            IN NUMBER
2792 , x_transaction_coa_id         OUT NOCOPY NUMBER
2793 , x_accounting_coa_id          OUT NOCOPY NUMBER
2794 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2795 , x_flex_value_set_id          OUT NOCOPY NUMBER
2796 , x_value_type_code            OUT NOCOPY VARCHAR2
2797 , x_value_combination_id       OUT NOCOPY NUMBER
2798 , x_value_segment_code         OUT NOCOPY VARCHAR2
2799 )
2800 RETURN VARCHAR2
2801 IS
2802 l_component_type       VARCHAR2(80)  ;
2803 l_component_code       VARCHAR2(30)  ;
2804 l_component_type_code  VARCHAR2(1)   ;
2805 l_component_appl_id    INTEGER       ;
2806 l_amb_context_code     VARCHAR2(30)  ;
2807 l_log_module           VARCHAR2(240) ;
2808 l_output_value         VARCHAR2(30)  ;
2809 BEGIN
2810 IF g_log_enabled THEN
2811       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_17';
2812 END IF;
2813 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2814 
2815       trace
2816          (p_msg      => 'BEGIN of AcctDerRule_17'
2817          ,p_level    => C_LEVEL_PROCEDURE
2818          ,p_module   => l_log_module);
2819 
2820 END IF;
2821 
2822 l_component_type         := 'AMB_ADR';
2823 l_component_code         := 'AP_RELATED_DIST_BAL_SEG';
2824 l_component_type_code    := 'S';
2825 l_component_appl_id      :=  200;
2829 x_flexfield_segment_code := 'GL_BALANCING';
2826 l_amb_context_code       := 'DEFAULT';
2827 x_transaction_coa_id     :=  null;
2828 x_accounting_coa_id      :=  null;
2830 x_flex_value_set_id      :=  null ;
2831 
2832 
2833  IF NVL(p_source_16,'
2834 ') =  'BALANCING_SEGMENT' AND 
2835 NVL(p_source_19,'
2836 ') =  'INVENTORY'
2837  THEN 
2838 --
2839   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2840 
2841       trace
2842          (p_msg      => 'END of AcctDerRule_17'
2843          ,p_level    => C_LEVEL_PROCEDURE
2844          ,p_module   => l_log_module);
2845 
2846   END IF;
2847   x_value_combination_id  := TO_NUMBER(p_source_29) ;
2848   x_value_segment_code    := 'GL_BALANCING' ;
2849   x_value_type_code       := 'S';
2850   l_output_value          :=  null;
2851   RETURN l_output_value;
2852 
2853  ELSE 
2854     IF p_override_seg_flag = 'Y' THEN 
2855        RETURN '#$NO_OVERRIDE#$';
2856     END IF;
2857  END IF;
2858 
2859 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2860 
2861       trace
2862          (p_msg      => 'END of AcctDerRule_17(invalid)'
2863          ,p_level    => C_LEVEL_PROCEDURE
2864          ,p_module   => l_log_module);
2865 
2866 END IF;
2867 
2868 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2869 x_value_combination_id  := null;
2870 x_value_segment_code    := null;
2871 x_value_type_code       := null;
2872 l_output_value          := null;
2873 xla_accounting_err_pkg.build_message
2874                  (p_appli_s_name            => 'XLA'
2875                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2876                  ,p_token_1                 => 'COMPONENT_NAME'
2877                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2878                                                             l_component_type
2879                                                           , l_component_code
2880                                                           , l_component_type_code
2881                                                           , l_component_appl_id
2882                                                           , l_amb_context_code
2883                                                           )
2884                  ,p_token_2                 => 'OWNER'
2885                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2886                                                         'XLA_OWNER_TYPE'
2887                                                         ,l_component_type_code
2888                                                         )
2889                  ,p_token_3                 => 'PAD_NAME'
2890                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2891                  ,p_token_4                 => 'PAD_OWNER'
2892                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2893                                                         'XLA_OWNER_TYPE'
2894                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2895                                                         )
2896                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2897                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2898                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2899                  ,p_ae_header_id            => NULL
2900 );
2901 RETURN l_output_value;
2902 EXCEPTION
2903   WHEN xla_exceptions_pkg.application_exception THEN
2904       RAISE;
2905   WHEN OTHERS THEN
2906        xla_exceptions_pkg.raise_message
2907            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_17');
2908 END AcctDerRule_17;
2909 --
2910 
2911 ---------------------------------------
2912 --
2913 -- PRIVATE FUNCTION
2914 --         AcctDerRule_18
2915 --
2916 ---------------------------------------
2917 FUNCTION AcctDerRule_18 (
2918   p_application_id             IN NUMBER
2919 , p_ae_header_id               IN NUMBER
2920 , p_side                       IN VARCHAR2
2921 , p_override_seg_flag          IN VARCHAR2 
2922 --Automatic Offsets Value
2923  , p_source_16            IN VARCHAR2
2924  , p_source_16_meaning    IN VARCHAR2
2925 --Retainage Related Item Distribution Account
2926  , p_source_35            IN NUMBER
2927 , x_transaction_coa_id         OUT NOCOPY NUMBER
2928 , x_accounting_coa_id          OUT NOCOPY NUMBER
2929 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2930 , x_flex_value_set_id          OUT NOCOPY NUMBER
2931 , x_value_type_code            OUT NOCOPY VARCHAR2
2932 , x_value_combination_id       OUT NOCOPY NUMBER
2933 , x_value_segment_code         OUT NOCOPY VARCHAR2
2934 )
2935 RETURN VARCHAR2
2936 IS
2937 l_component_type       VARCHAR2(80)  ;
2938 l_component_code       VARCHAR2(30)  ;
2939 l_component_type_code  VARCHAR2(1)   ;
2940 l_component_appl_id    INTEGER       ;
2941 l_amb_context_code     VARCHAR2(30)  ;
2942 l_log_module           VARCHAR2(240) ;
2943 l_output_value         VARCHAR2(30)  ;
2944 BEGIN
2945 IF g_log_enabled THEN
2946       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_18';
2947 END IF;
2948 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2949 
2950       trace
2951          (p_msg      => 'BEGIN of AcctDerRule_18'
2952          ,p_level    => C_LEVEL_PROCEDURE
2956 
2953          ,p_module   => l_log_module);
2954 
2955 END IF;
2957 l_component_type         := 'AMB_ADR';
2958 l_component_code         := 'AP_RETAIN_RELATED_BAL_SEG';
2959 l_component_type_code    := 'S';
2960 l_component_appl_id      :=  200;
2961 l_amb_context_code       := 'DEFAULT';
2962 x_transaction_coa_id     :=  null;
2963 x_accounting_coa_id      :=  null;
2964 x_flexfield_segment_code := 'GL_BALANCING';
2965 x_flex_value_set_id      :=  null ;
2966 
2967 
2968  IF NVL(p_source_16,'
2969 ') =  'BALANCING_SEGMENT'
2970  THEN 
2971 --
2972   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2973 
2974       trace
2975          (p_msg      => 'END of AcctDerRule_18'
2976          ,p_level    => C_LEVEL_PROCEDURE
2977          ,p_module   => l_log_module);
2978 
2979   END IF;
2980   x_value_combination_id  := TO_NUMBER(p_source_35) ;
2981   x_value_segment_code    := 'GL_BALANCING' ;
2982   x_value_type_code       := 'S';
2983   l_output_value          :=  null;
2984   RETURN l_output_value;
2985 
2986  ELSE 
2987     IF p_override_seg_flag = 'Y' THEN 
2988        RETURN '#$NO_OVERRIDE#$';
2989     END IF;
2990  END IF;
2991 
2992 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2993 
2994       trace
2995          (p_msg      => 'END of AcctDerRule_18(invalid)'
2996          ,p_level    => C_LEVEL_PROCEDURE
2997          ,p_module   => l_log_module);
2998 
2999 END IF;
3000 
3001 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3002 x_value_combination_id  := null;
3003 x_value_segment_code    := null;
3004 x_value_type_code       := null;
3005 l_output_value          := null;
3006 xla_accounting_err_pkg.build_message
3007                  (p_appli_s_name            => 'XLA'
3008                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3009                  ,p_token_1                 => 'COMPONENT_NAME'
3010                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3011                                                             l_component_type
3012                                                           , l_component_code
3013                                                           , l_component_type_code
3014                                                           , l_component_appl_id
3015                                                           , l_amb_context_code
3016                                                           )
3017                  ,p_token_2                 => 'OWNER'
3018                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3019                                                         'XLA_OWNER_TYPE'
3020                                                         ,l_component_type_code
3021                                                         )
3022                  ,p_token_3                 => 'PAD_NAME'
3023                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3024                  ,p_token_4                 => 'PAD_OWNER'
3025                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3026                                                         'XLA_OWNER_TYPE'
3027                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3028                                                         )
3029                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3030                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3031                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3032                  ,p_ae_header_id            => NULL
3033 );
3034 RETURN l_output_value;
3035 EXCEPTION
3036   WHEN xla_exceptions_pkg.application_exception THEN
3037       RAISE;
3038   WHEN OTHERS THEN
3039        xla_exceptions_pkg.raise_message
3040            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_18');
3041 END AcctDerRule_18;
3042 --
3043 
3044 ---------------------------------------
3045 --
3046 -- PRIVATE FUNCTION
3047 --         AcctDerRule_19
3048 --
3049 ---------------------------------------
3050 FUNCTION AcctDerRule_19 (
3051   p_application_id             IN NUMBER
3052 , p_ae_header_id               IN NUMBER
3053 , p_side                       IN VARCHAR2
3054 , p_override_seg_flag          IN VARCHAR2 
3055 --Automatic Offsets Value
3056  , p_source_16            IN VARCHAR2
3057  , p_source_16_meaning    IN VARCHAR2
3058 --Withholding Related Distribution Account
3059  , p_source_36            IN NUMBER
3060 , x_transaction_coa_id         OUT NOCOPY NUMBER
3061 , x_accounting_coa_id          OUT NOCOPY NUMBER
3062 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3063 , x_flex_value_set_id          OUT NOCOPY NUMBER
3064 , x_value_type_code            OUT NOCOPY VARCHAR2
3065 , x_value_combination_id       OUT NOCOPY NUMBER
3066 , x_value_segment_code         OUT NOCOPY VARCHAR2
3067 )
3068 RETURN VARCHAR2
3069 IS
3070 l_component_type       VARCHAR2(80)  ;
3071 l_component_code       VARCHAR2(30)  ;
3072 l_component_type_code  VARCHAR2(1)   ;
3073 l_component_appl_id    INTEGER       ;
3074 l_amb_context_code     VARCHAR2(30)  ;
3075 l_log_module           VARCHAR2(240) ;
3076 l_output_value         VARCHAR2(30)  ;
3077 BEGIN
3078 IF g_log_enabled THEN
3082 
3079       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_19';
3080 END IF;
3081 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3083       trace
3084          (p_msg      => 'BEGIN of AcctDerRule_19'
3085          ,p_level    => C_LEVEL_PROCEDURE
3086          ,p_module   => l_log_module);
3087 
3088 END IF;
3089 
3090 l_component_type         := 'AMB_ADR';
3091 l_component_code         := 'AP_WH_RELATED_DIST_BAL_SEG';
3092 l_component_type_code    := 'S';
3093 l_component_appl_id      :=  200;
3094 l_amb_context_code       := 'DEFAULT';
3095 x_transaction_coa_id     :=  null;
3096 x_accounting_coa_id      :=  null;
3097 x_flexfield_segment_code := 'GL_BALANCING';
3098 x_flex_value_set_id      :=  null ;
3099 
3100 
3101  IF NVL(p_source_16,'
3102 ') =  'BALANCING_SEGMENT'
3103  THEN 
3104 --
3105   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3106 
3107       trace
3108          (p_msg      => 'END of AcctDerRule_19'
3109          ,p_level    => C_LEVEL_PROCEDURE
3110          ,p_module   => l_log_module);
3111 
3112   END IF;
3113   x_value_combination_id  := TO_NUMBER(p_source_36) ;
3114   x_value_segment_code    := 'GL_BALANCING' ;
3115   x_value_type_code       := 'S';
3116   l_output_value          :=  null;
3117   RETURN l_output_value;
3118 
3119  ELSE 
3120     IF p_override_seg_flag = 'Y' THEN 
3121        RETURN '#$NO_OVERRIDE#$';
3122     END IF;
3123  END IF;
3124 
3125 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3126 
3127       trace
3128          (p_msg      => 'END of AcctDerRule_19(invalid)'
3129          ,p_level    => C_LEVEL_PROCEDURE
3130          ,p_module   => l_log_module);
3131 
3132 END IF;
3133 
3134 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3135 x_value_combination_id  := null;
3136 x_value_segment_code    := null;
3137 x_value_type_code       := null;
3138 l_output_value          := null;
3139 xla_accounting_err_pkg.build_message
3140                  (p_appli_s_name            => 'XLA'
3141                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3142                  ,p_token_1                 => 'COMPONENT_NAME'
3143                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3144                                                             l_component_type
3145                                                           , l_component_code
3146                                                           , l_component_type_code
3147                                                           , l_component_appl_id
3148                                                           , l_amb_context_code
3149                                                           )
3150                  ,p_token_2                 => 'OWNER'
3151                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3152                                                         'XLA_OWNER_TYPE'
3153                                                         ,l_component_type_code
3154                                                         )
3155                  ,p_token_3                 => 'PAD_NAME'
3156                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3157                  ,p_token_4                 => 'PAD_OWNER'
3158                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3159                                                         'XLA_OWNER_TYPE'
3160                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3161                                                         )
3162                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3163                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3164                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3165                  ,p_ae_header_id            => NULL
3166 );
3167 RETURN l_output_value;
3168 EXCEPTION
3169   WHEN xla_exceptions_pkg.application_exception THEN
3170       RAISE;
3171   WHEN OTHERS THEN
3172        xla_exceptions_pkg.raise_message
3173            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_19');
3174 END AcctDerRule_19;
3175 --
3176 
3177 ---------------------------------------
3178 --
3179 -- PRIVATE FUNCTION
3180 --         AcctDerRule_20
3181 --
3182 ---------------------------------------
3183 FUNCTION AcctDerRule_20 (
3184   p_application_id              IN NUMBER
3185 , p_ae_header_id                IN NUMBER
3186 , p_side                        IN VARCHAR2 
3187 --Automatic Offsets Value
3188  , p_source_16            IN VARCHAR2
3189  , p_source_16_meaning    IN VARCHAR2
3190 --Invoice Distribution Account
3191  , p_source_29            IN NUMBER
3192 --Bank Charges Account
3193  , p_source_37            IN NUMBER
3194 , x_transaction_coa_id         OUT NOCOPY NUMBER
3195 , x_accounting_coa_id          OUT NOCOPY NUMBER
3196 , x_value_type_code            OUT NOCOPY VARCHAR2
3197 )
3198 RETURN NUMBER
3199 IS
3200 l_component_type       VARCHAR2(80)  ;
3201 l_component_code       VARCHAR2(30)  ;
3202 l_component_type_code  VARCHAR2(1)   ;
3203 l_component_appl_id    INTEGER       ;
3204 l_amb_context_code     VARCHAR2(30)  ;
3205 l_log_module           VARCHAR2(240) ;
3206 l_output_value         NUMBER        ;
3207 BEGIN
3208 IF g_log_enabled THEN
3212       trace
3209       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_20';
3210 END IF;
3211 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3213          (p_msg      => 'BEGIN of AcctDerRule_20'
3214          ,p_level    => C_LEVEL_PROCEDURE
3215          ,p_module   => l_log_module);
3216 END IF;
3217 --
3218 l_component_type         := 'AMB_ADR';
3219 l_component_code         := 'AP_BANK_CHARGES';
3220 l_component_type_code    := 'S';
3221 l_component_appl_id      :=  200;
3222 l_amb_context_code       := 'DEFAULT';
3223 x_transaction_coa_id     :=  null;
3224 x_accounting_coa_id      :=  null;
3225 --
3226 
3227  IF NVL(p_source_16,'
3228 ') <>  'ACCOUNT_SEGMENT_VALUE'
3229  THEN 
3230  --
3231   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3232       trace
3233          (p_msg      => 'END of AcctDerRule_20'
3234          ,p_level    => C_LEVEL_PROCEDURE
3235          ,p_module   => l_log_module);
3236   END IF;
3237   x_value_type_code := 'S';
3238   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_37));
3239   RETURN l_output_value;
3240 
3241  ELSIF NVL(p_source_16,'
3242 ') =  'ACCOUNT_SEGMENT_VALUE'
3243  THEN 
3244  --
3245   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3246       trace
3247          (p_msg      => 'END of AcctDerRule_20'
3248          ,p_level    => C_LEVEL_PROCEDURE
3249          ,p_module   => l_log_module);
3250   END IF;
3251   x_value_type_code := 'S';
3252   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
3253   RETURN l_output_value;
3254 
3255  END IF;
3256 --
3257 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3258       trace
3259          (p_msg      => 'END of AcctDerRule_20(invalid)'
3260          ,p_level    => C_LEVEL_PROCEDURE
3261          ,p_module   => l_log_module);
3262 END IF;
3263 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3264 x_value_type_code := null;
3265 l_output_value    := null;
3266 xla_accounting_err_pkg.build_message
3267                  (p_appli_s_name            => 'XLA'
3268                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3269                  ,p_token_1                 => 'COMPONENT_NAME'
3270                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3271                                                             l_component_type
3272                                                           , l_component_code
3273                                                           , l_component_type_code
3274                                                           , l_component_appl_id
3275                                                           , l_amb_context_code
3276                                                           )
3277                  ,p_token_2                 => 'OWNER'
3278                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3279                                                         'XLA_OWNER_TYPE'
3280                                                         ,l_component_type_code
3281                                                         )
3282                  ,p_token_3                 => 'PAD_NAME'
3283                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3284                  ,p_token_4                 => 'PAD_OWNER'
3285                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3286                                                         'XLA_OWNER_TYPE'
3287                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3288                                                         )
3289                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3290                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3291                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3292                  ,p_ae_header_id            => NULL
3293 );
3294 RETURN l_output_value;
3295 EXCEPTION
3296   WHEN xla_exceptions_pkg.application_exception THEN
3297       RAISE;
3298   WHEN OTHERS THEN
3299        xla_exceptions_pkg.raise_message
3300            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_20');
3301 END AcctDerRule_20;
3302 --
3303 
3304 ---------------------------------------
3305 --
3306 -- PRIVATE FUNCTION
3307 --         AcctDerRule_21
3308 --
3309 ---------------------------------------
3310 FUNCTION AcctDerRule_21 (
3311   p_application_id              IN NUMBER
3312 , p_ae_header_id                IN NUMBER
3313 , p_side                        IN VARCHAR2 
3314 --Automatic Offsets Value
3315  , p_source_16            IN VARCHAR2
3316  , p_source_16_meaning    IN VARCHAR2
3317 --Invoice Distribution Account
3318  , p_source_29            IN NUMBER
3319 --Bank Errors Account
3320  , p_source_38            IN NUMBER
3321 , x_transaction_coa_id         OUT NOCOPY NUMBER
3322 , x_accounting_coa_id          OUT NOCOPY NUMBER
3323 , x_value_type_code            OUT NOCOPY VARCHAR2
3324 )
3325 RETURN NUMBER
3326 IS
3327 l_component_type       VARCHAR2(80)  ;
3328 l_component_code       VARCHAR2(30)  ;
3329 l_component_type_code  VARCHAR2(1)   ;
3330 l_component_appl_id    INTEGER       ;
3331 l_amb_context_code     VARCHAR2(30)  ;
3332 l_log_module           VARCHAR2(240) ;
3336       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_21';
3333 l_output_value         NUMBER        ;
3334 BEGIN
3335 IF g_log_enabled THEN
3337 END IF;
3338 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3339       trace
3340          (p_msg      => 'BEGIN of AcctDerRule_21'
3341          ,p_level    => C_LEVEL_PROCEDURE
3342          ,p_module   => l_log_module);
3343 END IF;
3344 --
3345 l_component_type         := 'AMB_ADR';
3346 l_component_code         := 'AP_BANK_ERRORS';
3347 l_component_type_code    := 'S';
3348 l_component_appl_id      :=  200;
3349 l_amb_context_code       := 'DEFAULT';
3350 x_transaction_coa_id     :=  null;
3351 x_accounting_coa_id      :=  null;
3352 --
3353 
3354  IF NVL(p_source_16,'
3355 ') <>  'ACCOUNT_SEGMENT_VALUE'
3356  THEN 
3357  --
3358   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3359       trace
3360          (p_msg      => 'END of AcctDerRule_21'
3361          ,p_level    => C_LEVEL_PROCEDURE
3362          ,p_module   => l_log_module);
3363   END IF;
3364   x_value_type_code := 'S';
3365   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_38));
3366   RETURN l_output_value;
3367 
3368  ELSIF NVL(p_source_16,'
3369 ') =  'ACCOUNT_SEGMENT_VALUE'
3370  THEN 
3371  --
3372   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3373       trace
3374          (p_msg      => 'END of AcctDerRule_21'
3375          ,p_level    => C_LEVEL_PROCEDURE
3376          ,p_module   => l_log_module);
3377   END IF;
3378   x_value_type_code := 'S';
3379   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
3380   RETURN l_output_value;
3381 
3382  END IF;
3383 --
3384 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3385       trace
3386          (p_msg      => 'END of AcctDerRule_21(invalid)'
3387          ,p_level    => C_LEVEL_PROCEDURE
3388          ,p_module   => l_log_module);
3389 END IF;
3390 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3391 x_value_type_code := null;
3392 l_output_value    := null;
3393 xla_accounting_err_pkg.build_message
3394                  (p_appli_s_name            => 'XLA'
3395                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3396                  ,p_token_1                 => 'COMPONENT_NAME'
3397                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3398                                                             l_component_type
3399                                                           , l_component_code
3400                                                           , l_component_type_code
3401                                                           , l_component_appl_id
3402                                                           , l_amb_context_code
3403                                                           )
3404                  ,p_token_2                 => 'OWNER'
3405                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3406                                                         'XLA_OWNER_TYPE'
3407                                                         ,l_component_type_code
3408                                                         )
3409                  ,p_token_3                 => 'PAD_NAME'
3410                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3411                  ,p_token_4                 => 'PAD_OWNER'
3412                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3413                                                         'XLA_OWNER_TYPE'
3414                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3415                                                         )
3416                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3417                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3418                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3419                  ,p_ae_header_id            => NULL
3420 );
3421 RETURN l_output_value;
3422 EXCEPTION
3423   WHEN xla_exceptions_pkg.application_exception THEN
3424       RAISE;
3425   WHEN OTHERS THEN
3426        xla_exceptions_pkg.raise_message
3427            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_21');
3428 END AcctDerRule_21;
3429 --
3430 
3431 ---------------------------------------
3432 --
3433 -- PRIVATE FUNCTION
3434 --         AcctDerRule_22
3435 --
3436 ---------------------------------------
3437 FUNCTION AcctDerRule_22 (
3438   p_application_id              IN NUMBER
3439 , p_ae_header_id                IN NUMBER
3440 , p_side                        IN VARCHAR2 
3441 --Bank Cash Account
3442  , p_source_13            IN NUMBER
3443 , x_transaction_coa_id         OUT NOCOPY NUMBER
3444 , x_accounting_coa_id          OUT NOCOPY NUMBER
3445 , x_value_type_code            OUT NOCOPY VARCHAR2
3446 )
3447 RETURN NUMBER
3448 IS
3449 l_component_type       VARCHAR2(80)  ;
3450 l_component_code       VARCHAR2(30)  ;
3451 l_component_type_code  VARCHAR2(1)   ;
3452 l_component_appl_id    INTEGER       ;
3453 l_amb_context_code     VARCHAR2(30)  ;
3454 l_log_module           VARCHAR2(240) ;
3455 l_output_value         NUMBER        ;
3456 BEGIN
3457 IF g_log_enabled THEN
3458       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_22';
3459 END IF;
3463          ,p_level    => C_LEVEL_PROCEDURE
3460 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3461       trace
3462          (p_msg      => 'BEGIN of AcctDerRule_22'
3464          ,p_module   => l_log_module);
3465 END IF;
3466 --
3467 l_component_type         := 'AMB_ADR';
3468 l_component_code         := 'AP_CASH';
3469 l_component_type_code    := 'S';
3470 l_component_appl_id      :=  200;
3471 l_amb_context_code       := 'DEFAULT';
3472 x_transaction_coa_id     :=  null;
3473 x_accounting_coa_id      :=  null;
3474 --
3475 
3476  --
3477   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3478       trace
3479          (p_msg      => 'END of AcctDerRule_22'
3480          ,p_level    => C_LEVEL_PROCEDURE
3481          ,p_module   => l_log_module);
3482   END IF;
3483   x_value_type_code := 'S';
3484   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_13));
3485   RETURN l_output_value;
3486 
3487 --
3488 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3489       trace
3490          (p_msg      => 'END of AcctDerRule_22(invalid)'
3491          ,p_level    => C_LEVEL_PROCEDURE
3492          ,p_module   => l_log_module);
3493 END IF;
3494 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3495 x_value_type_code := null;
3496 l_output_value    := null;
3497 xla_accounting_err_pkg.build_message
3498                  (p_appli_s_name            => 'XLA'
3499                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3500                  ,p_token_1                 => 'COMPONENT_NAME'
3501                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3502                                                             l_component_type
3503                                                           , l_component_code
3504                                                           , l_component_type_code
3505                                                           , l_component_appl_id
3506                                                           , l_amb_context_code
3507                                                           )
3508                  ,p_token_2                 => 'OWNER'
3509                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3510                                                         'XLA_OWNER_TYPE'
3511                                                         ,l_component_type_code
3512                                                         )
3513                  ,p_token_3                 => 'PAD_NAME'
3514                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3515                  ,p_token_4                 => 'PAD_OWNER'
3516                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3517                                                         'XLA_OWNER_TYPE'
3518                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3519                                                         )
3520                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3521                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3522                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3523                  ,p_ae_header_id            => NULL
3524 );
3525 RETURN l_output_value;
3526 EXCEPTION
3527   WHEN xla_exceptions_pkg.application_exception THEN
3528       RAISE;
3529   WHEN OTHERS THEN
3530        xla_exceptions_pkg.raise_message
3531            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_22');
3532 END AcctDerRule_22;
3533 --
3534 
3535 ---------------------------------------
3536 --
3537 -- PRIVATE FUNCTION
3538 --         AcctDerRule_23
3539 --
3540 ---------------------------------------
3541 FUNCTION AcctDerRule_23 (
3542   p_application_id              IN NUMBER
3543 , p_ae_header_id                IN NUMBER
3544 , p_side                        IN VARCHAR2 
3545 --System Discount Account
3546  , p_source_14            IN NUMBER
3547 --Discount Distribution Method
3548  , p_source_15            IN VARCHAR2
3549  , p_source_15_meaning    IN VARCHAR2
3550 --Automatic Offsets Value
3551  , p_source_16            IN VARCHAR2
3552  , p_source_16_meaning    IN VARCHAR2
3553 --Invoice Distribution Account
3554  , p_source_29            IN NUMBER
3555 --Invoice Distribution Type
3556  , p_source_32            IN VARCHAR2
3557  , p_source_32_meaning    IN VARCHAR2
3558 --Discount Account
3559  , p_source_39            IN NUMBER
3560 --Purchase Order Charge Account
3561  , p_source_40            IN NUMBER
3562 --Purchase Order Variance Account
3563  , p_source_41            IN NUMBER
3564 , x_transaction_coa_id         OUT NOCOPY NUMBER
3565 , x_accounting_coa_id          OUT NOCOPY NUMBER
3566 , x_value_type_code            OUT NOCOPY VARCHAR2
3567 )
3568 RETURN NUMBER
3569 IS
3570 l_component_type       VARCHAR2(80)  ;
3571 l_component_code       VARCHAR2(30)  ;
3572 l_component_type_code  VARCHAR2(1)   ;
3573 l_component_appl_id    INTEGER       ;
3574 l_amb_context_code     VARCHAR2(30)  ;
3575 l_log_module           VARCHAR2(240) ;
3576 l_output_value         NUMBER        ;
3577 BEGIN
3578 IF g_log_enabled THEN
3579       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_23';
3580 END IF;
3581 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3582       trace
3583          (p_msg      => 'BEGIN of AcctDerRule_23'
3587 --
3584          ,p_level    => C_LEVEL_PROCEDURE
3585          ,p_module   => l_log_module);
3586 END IF;
3588 l_component_type         := 'AMB_ADR';
3589 l_component_code         := 'AP_DISCOUNT';
3590 l_component_type_code    := 'S';
3591 l_component_appl_id      :=  200;
3592 l_amb_context_code       := 'DEFAULT';
3593 x_transaction_coa_id     :=  null;
3594 x_accounting_coa_id      :=  null;
3595 --
3596 
3597  IF NVL(p_source_15,'
3598 ') =  'SYSTEM' AND 
3599 NVL(p_source_16,'
3600 ') <>  'ACCOUNT_SEGMENT_VALUE'
3601  THEN 
3602  --
3603   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3604       trace
3605          (p_msg      => 'END of AcctDerRule_23'
3606          ,p_level    => C_LEVEL_PROCEDURE
3607          ,p_module   => l_log_module);
3608   END IF;
3609   x_value_type_code := 'S';
3610   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_39));
3611   RETURN l_output_value;
3612 
3613  ELSIF NVL(p_source_15,'
3614 ') =  'SYSTEM' AND 
3615 NVL(p_source_16,'
3616 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
3617 NVL(p_source_32,'
3618 ') <>  'ACCRUAL'
3619  THEN 
3620  --
3621   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3622       trace
3623          (p_msg      => 'END of AcctDerRule_23'
3624          ,p_level    => C_LEVEL_PROCEDURE
3625          ,p_module   => l_log_module);
3626   END IF;
3627   x_value_type_code := 'S';
3628   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
3629   RETURN l_output_value;
3630 
3631  ELSIF NVL(p_source_15,'
3632 ') =  'SYSTEM' AND 
3633 NVL(p_source_16,'
3634 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
3635 NVL(p_source_32,'
3636 ') =  'ACCRUAL'
3637  THEN 
3638  --
3639   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3640       trace
3641          (p_msg      => 'END of AcctDerRule_23'
3642          ,p_level    => C_LEVEL_PROCEDURE
3643          ,p_module   => l_log_module);
3644   END IF;
3645   x_value_type_code := 'S';
3646   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_40));
3647   RETURN l_output_value;
3648 
3649  ELSIF NVL(p_source_15,'
3650 ') =  'EXPENSE' AND 
3651 NVL(p_source_32,'
3652 ') <>  'ACCRUAL'
3653  THEN 
3654  --
3655   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3656       trace
3657          (p_msg      => 'END of AcctDerRule_23'
3658          ,p_level    => C_LEVEL_PROCEDURE
3659          ,p_module   => l_log_module);
3660   END IF;
3661   x_value_type_code := 'S';
3662   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
3663   RETURN l_output_value;
3664 
3665  ELSIF NVL(p_source_15,'
3666 ') =  'EXPENSE' AND 
3667 NVL(p_source_32,'
3668 ') =  'ACCRUAL'
3669  THEN 
3670  --
3671   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3672       trace
3673          (p_msg      => 'END of AcctDerRule_23'
3674          ,p_level    => C_LEVEL_PROCEDURE
3675          ,p_module   => l_log_module);
3676   END IF;
3677   x_value_type_code := 'S';
3678   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_41));
3679   RETURN l_output_value;
3680 
3681  ELSIF NVL(p_source_15,'
3682 ') =  'TAX' AND 
3683 NVL(p_source_16,'
3684 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
3685 (NVL(p_source_32,'
3686 ') =  'REC_TAX' OR 
3687 NVL(p_source_32,'
3688 ') =  'NONREC_TAX' OR 
3689 NVL(p_source_32,'
3690 ') =  'TIPV' OR 
3691 NVL(p_source_32,'
3692 ') =  'TRV')
3693  THEN 
3694  --
3695   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3696       trace
3697          (p_msg      => 'END of AcctDerRule_23'
3698          ,p_level    => C_LEVEL_PROCEDURE
3699          ,p_module   => l_log_module);
3700   END IF;
3701   x_value_type_code := 'S';
3702   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
3703   RETURN l_output_value;
3704 
3705  ELSIF NVL(p_source_15,'
3706 ') =  'TAX' AND 
3707 NVL(p_source_16,'
3708 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
3709 (NVL(p_source_32,'
3710 ') <>  'REC_TAX' OR 
3711 NVL(p_source_32,'
3712 ') <>  'NONREC_TAX' OR 
3713 NVL(p_source_32,'
3714 ') <>  'TIPV' OR 
3715 NVL(p_source_32,'
3716 ') <>  'TRV')
3717  THEN 
3718  --
3719   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3720       trace
3721          (p_msg      => 'END of AcctDerRule_23'
3722          ,p_level    => C_LEVEL_PROCEDURE
3723          ,p_module   => l_log_module);
3724   END IF;
3725   x_value_type_code := 'S';
3726   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_14));
3727   RETURN l_output_value;
3728 
3729  ELSIF NVL(p_source_15,'
3730 ') =  'TAX' AND 
3731 NVL(p_source_16,'
3732 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
3733 NVL(p_source_32,'
3734 ') <>  'ACCRUAL'
3735  THEN 
3736  --
3737   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3738       trace
3739          (p_msg      => 'END of AcctDerRule_23'
3740          ,p_level    => C_LEVEL_PROCEDURE
3741          ,p_module   => l_log_module);
3742   END IF;
3743   x_value_type_code := 'S';
3744   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
3745   RETURN l_output_value;
3746 
3747  ELSIF NVL(p_source_15,'
3748 ') =  'TAX' AND 
3749 NVL(p_source_16,'
3750 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
3751 NVL(p_source_32,'
3752 ') =  'ACCRUAL'
3753  THEN 
3754  --
3758          ,p_level    => C_LEVEL_PROCEDURE
3755   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3756       trace
3757          (p_msg      => 'END of AcctDerRule_23'
3759          ,p_module   => l_log_module);
3760   END IF;
3761   x_value_type_code := 'S';
3762   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_40));
3763   RETURN l_output_value;
3764 
3765  END IF;
3766 --
3767 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3768       trace
3769          (p_msg      => 'END of AcctDerRule_23(invalid)'
3770          ,p_level    => C_LEVEL_PROCEDURE
3771          ,p_module   => l_log_module);
3772 END IF;
3773 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3774 x_value_type_code := null;
3775 l_output_value    := null;
3776 xla_accounting_err_pkg.build_message
3777                  (p_appli_s_name            => 'XLA'
3778                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3779                  ,p_token_1                 => 'COMPONENT_NAME'
3780                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3781                                                             l_component_type
3782                                                           , l_component_code
3783                                                           , l_component_type_code
3784                                                           , l_component_appl_id
3785                                                           , l_amb_context_code
3786                                                           )
3787                  ,p_token_2                 => 'OWNER'
3788                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3789                                                         'XLA_OWNER_TYPE'
3790                                                         ,l_component_type_code
3791                                                         )
3792                  ,p_token_3                 => 'PAD_NAME'
3793                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3794                  ,p_token_4                 => 'PAD_OWNER'
3795                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3796                                                         'XLA_OWNER_TYPE'
3797                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3798                                                         )
3799                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3800                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3801                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3802                  ,p_ae_header_id            => NULL
3803 );
3804 RETURN l_output_value;
3805 EXCEPTION
3806   WHEN xla_exceptions_pkg.application_exception THEN
3807       RAISE;
3808   WHEN OTHERS THEN
3809        xla_exceptions_pkg.raise_message
3810            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_23');
3811 END AcctDerRule_23;
3812 --
3813 
3814 ---------------------------------------
3815 --
3816 -- PRIVATE FUNCTION
3817 --         AcctDerRule_24
3818 --
3819 ---------------------------------------
3820 FUNCTION AcctDerRule_24 (
3821   p_application_id              IN NUMBER
3822 , p_ae_header_id                IN NUMBER
3823 , p_side                        IN VARCHAR2 
3824 --Automatic Offsets Value
3825  , p_source_16            IN VARCHAR2
3826  , p_source_16_meaning    IN VARCHAR2
3827 --Purchase Order Rate Variance Gain Account
3828  , p_source_17            IN NUMBER
3829 --Destination Type of the PO Distribution
3830  , p_source_19            IN VARCHAR2
3831  , p_source_19_meaning    IN VARCHAR2
3832 --Purchase Order Rate Variance Loss Account
3833  , p_source_20            IN NUMBER
3834 --Payment Distribution (Payment Rate) Ledger Amount
3835  , p_source_21            IN NUMBER
3836 --Payment Distribution (Cleared Rate) Ledger Amount
3837  , p_source_22            IN NUMBER
3838 --Invoice Distribution Account
3839  , p_source_29            IN NUMBER
3840 --Automatic Offsets Flag
3841  , p_source_42            IN VARCHAR2
3842  , p_source_42_meaning    IN VARCHAR2
3843 , x_transaction_coa_id         OUT NOCOPY NUMBER
3844 , x_accounting_coa_id          OUT NOCOPY NUMBER
3845 , x_value_type_code            OUT NOCOPY VARCHAR2
3846 )
3847 RETURN NUMBER
3848 IS
3849 l_component_type       VARCHAR2(80)  ;
3850 l_component_code       VARCHAR2(30)  ;
3851 l_component_type_code  VARCHAR2(1)   ;
3852 l_component_appl_id    INTEGER       ;
3853 l_amb_context_code     VARCHAR2(30)  ;
3854 l_log_module           VARCHAR2(240) ;
3855 l_output_value         NUMBER        ;
3856 BEGIN
3857 IF g_log_enabled THEN
3858       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_24';
3859 END IF;
3860 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3861       trace
3862          (p_msg      => 'BEGIN of AcctDerRule_24'
3863          ,p_level    => C_LEVEL_PROCEDURE
3864          ,p_module   => l_log_module);
3865 END IF;
3866 --
3867 l_component_type         := 'AMB_ADR';
3868 l_component_code         := 'AP_ERV_TAXERV_CASH';
3869 l_component_type_code    := 'S';
3870 l_component_appl_id      :=  200;
3871 l_amb_context_code       := 'DEFAULT';
3872 x_transaction_coa_id     :=  null;
3873 x_accounting_coa_id      :=  null;
3874 --
3875 
3876  IF NVL(p_source_19,'
3880 NVL(p_source_16,'
3877 ') =  'EXPENSE' OR 
3878 (NVL(p_source_19,'
3879 ') =  'INVENTORY' AND 
3881 ') =  'ACCOUNT_SEGMENT_VALUE')
3882  THEN 
3883  --
3884   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3885       trace
3886          (p_msg      => 'END of AcctDerRule_24'
3887          ,p_level    => C_LEVEL_PROCEDURE
3888          ,p_module   => l_log_module);
3889   END IF;
3890   x_value_type_code := 'S';
3891   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
3892   RETURN l_output_value;
3893 
3894  ELSIF NVL(p_source_19,'
3895 ') <>  'EXPENSE' AND 
3896 (p_source_21 <  0 OR 
3897 p_source_22 <  0) AND 
3898 (NVL(p_source_42,'
3899 ') =  'N' OR 
3900 NVL(p_source_16,'
3901 ') =  'BALANCING_SEGMENT')
3902  THEN 
3903  --
3904   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3905       trace
3906          (p_msg      => 'END of AcctDerRule_24'
3907          ,p_level    => C_LEVEL_PROCEDURE
3908          ,p_module   => l_log_module);
3909   END IF;
3910   x_value_type_code := 'S';
3911   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
3912   RETURN l_output_value;
3913 
3914  ELSIF NVL(p_source_19,'
3915 ') <>  'EXPENSE' AND 
3916 (p_source_21 >  0 OR 
3917 p_source_22 >  0) AND 
3918 (NVL(p_source_42,'
3919 ') =  'N' OR 
3920 NVL(p_source_16,'
3921 ') =  'BALANCING_SEGMENT')
3922  THEN 
3923  --
3924   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3925       trace
3926          (p_msg      => 'END of AcctDerRule_24'
3927          ,p_level    => C_LEVEL_PROCEDURE
3928          ,p_module   => l_log_module);
3929   END IF;
3930   x_value_type_code := 'S';
3931   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_20));
3932   RETURN l_output_value;
3933 
3934  END IF;
3935 --
3936 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3937       trace
3938          (p_msg      => 'END of AcctDerRule_24(invalid)'
3939          ,p_level    => C_LEVEL_PROCEDURE
3940          ,p_module   => l_log_module);
3941 END IF;
3942 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3943 x_value_type_code := null;
3944 l_output_value    := null;
3945 xla_accounting_err_pkg.build_message
3946                  (p_appli_s_name            => 'XLA'
3947                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3948                  ,p_token_1                 => 'COMPONENT_NAME'
3949                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3950                                                             l_component_type
3951                                                           , l_component_code
3952                                                           , l_component_type_code
3953                                                           , l_component_appl_id
3954                                                           , l_amb_context_code
3955                                                           )
3956                  ,p_token_2                 => 'OWNER'
3957                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3958                                                         'XLA_OWNER_TYPE'
3959                                                         ,l_component_type_code
3960                                                         )
3961                  ,p_token_3                 => 'PAD_NAME'
3962                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3963                  ,p_token_4                 => 'PAD_OWNER'
3964                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3965                                                         'XLA_OWNER_TYPE'
3966                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3967                                                         )
3968                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3969                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3970                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3971                  ,p_ae_header_id            => NULL
3972 );
3973 RETURN l_output_value;
3974 EXCEPTION
3975   WHEN xla_exceptions_pkg.application_exception THEN
3976       RAISE;
3977   WHEN OTHERS THEN
3978        xla_exceptions_pkg.raise_message
3979            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_24');
3980 END AcctDerRule_24;
3981 --
3982 
3983 ---------------------------------------
3984 --
3985 -- PRIVATE FUNCTION
3986 --         AcctDerRule_25
3987 --
3988 ---------------------------------------
3989 FUNCTION AcctDerRule_25 (
3990   p_application_id              IN NUMBER
3991 , p_ae_header_id                IN NUMBER
3992 , p_side                        IN VARCHAR2 
3993 --Automatic Offsets Value
3994  , p_source_16            IN VARCHAR2
3995  , p_source_16_meaning    IN VARCHAR2
3996 --Purchase Order Rate Variance Gain Account
3997  , p_source_17            IN NUMBER
3998 --Invoice Distribution Ledger Amount
3999  , p_source_18            IN NUMBER
4000 --Destination Type of the PO Distribution
4001  , p_source_19            IN VARCHAR2
4002  , p_source_19_meaning    IN VARCHAR2
4003 --Purchase Order Rate Variance Loss Account
4004  , p_source_20            IN NUMBER
4005 --Invoice Distribution Account
4006  , p_source_29            IN NUMBER
4010 , x_transaction_coa_id         OUT NOCOPY NUMBER
4007 --Automatic Offsets Flag
4008  , p_source_42            IN VARCHAR2
4009  , p_source_42_meaning    IN VARCHAR2
4011 , x_accounting_coa_id          OUT NOCOPY NUMBER
4012 , x_value_type_code            OUT NOCOPY VARCHAR2
4013 )
4014 RETURN NUMBER
4015 IS
4016 l_component_type       VARCHAR2(80)  ;
4017 l_component_code       VARCHAR2(30)  ;
4018 l_component_type_code  VARCHAR2(1)   ;
4019 l_component_appl_id    INTEGER       ;
4020 l_amb_context_code     VARCHAR2(30)  ;
4021 l_log_module           VARCHAR2(240) ;
4022 l_output_value         NUMBER        ;
4023 BEGIN
4024 IF g_log_enabled THEN
4025       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_25';
4026 END IF;
4027 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4028       trace
4029          (p_msg      => 'BEGIN of AcctDerRule_25'
4030          ,p_level    => C_LEVEL_PROCEDURE
4031          ,p_module   => l_log_module);
4032 END IF;
4033 --
4034 l_component_type         := 'AMB_ADR';
4035 l_component_code         := 'AP_EXCHG_TAXEXCHG_RATE_VAR';
4036 l_component_type_code    := 'S';
4037 l_component_appl_id      :=  200;
4038 l_amb_context_code       := 'DEFAULT';
4039 x_transaction_coa_id     :=  null;
4040 x_accounting_coa_id      :=  null;
4041 --
4042 
4043  IF NVL(p_source_19,'
4044 ') =  'EXPENSE' OR 
4045 (NVL(p_source_19,'
4046 ') =  'INVENTORY' AND 
4047 NVL(p_source_16,'
4048 ') =  'ACCOUNT_SEGMENT_VALUE')
4049  THEN 
4050  --
4051   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4052       trace
4053          (p_msg      => 'END of AcctDerRule_25'
4054          ,p_level    => C_LEVEL_PROCEDURE
4055          ,p_module   => l_log_module);
4056   END IF;
4057   x_value_type_code := 'S';
4058   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
4059   RETURN l_output_value;
4060 
4061  ELSIF NVL(p_source_19,'
4062 ') <>  'EXPENSE' AND 
4063 p_source_18 <=  0 AND 
4064 (NVL(p_source_42,'
4065 ') =  'N' OR 
4066 NVL(p_source_16,'
4067 ') =  'BALANCING_SEGMENT')
4068  THEN 
4069  --
4070   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4071       trace
4072          (p_msg      => 'END of AcctDerRule_25'
4073          ,p_level    => C_LEVEL_PROCEDURE
4074          ,p_module   => l_log_module);
4075   END IF;
4076   x_value_type_code := 'S';
4077   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
4078   RETURN l_output_value;
4079 
4080  ELSIF NVL(p_source_19,'
4081 ') <>  'EXPENSE' AND 
4082 p_source_18 >  0 AND 
4083 (NVL(p_source_42,'
4084 ') =  'N' OR 
4085 NVL(p_source_16,'
4086 ') =  'BALANCING_SEGMENT')
4087  THEN 
4088  --
4089   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4090       trace
4091          (p_msg      => 'END of AcctDerRule_25'
4092          ,p_level    => C_LEVEL_PROCEDURE
4093          ,p_module   => l_log_module);
4094   END IF;
4095   x_value_type_code := 'S';
4096   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_20));
4097   RETURN l_output_value;
4098 
4099  END IF;
4100 --
4101 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4102       trace
4103          (p_msg      => 'END of AcctDerRule_25(invalid)'
4104          ,p_level    => C_LEVEL_PROCEDURE
4105          ,p_module   => l_log_module);
4106 END IF;
4107 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4108 x_value_type_code := null;
4109 l_output_value    := null;
4110 xla_accounting_err_pkg.build_message
4111                  (p_appli_s_name            => 'XLA'
4112                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4113                  ,p_token_1                 => 'COMPONENT_NAME'
4114                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4115                                                             l_component_type
4116                                                           , l_component_code
4117                                                           , l_component_type_code
4118                                                           , l_component_appl_id
4119                                                           , l_amb_context_code
4120                                                           )
4121                  ,p_token_2                 => 'OWNER'
4122                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4123                                                         'XLA_OWNER_TYPE'
4124                                                         ,l_component_type_code
4125                                                         )
4126                  ,p_token_3                 => 'PAD_NAME'
4127                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4128                  ,p_token_4                 => 'PAD_OWNER'
4129                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4130                                                         'XLA_OWNER_TYPE'
4131                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4132                                                         )
4133                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4134                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4135                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4139 EXCEPTION
4136                  ,p_ae_header_id            => NULL
4137 );
4138 RETURN l_output_value;
4140   WHEN xla_exceptions_pkg.application_exception THEN
4141       RAISE;
4142   WHEN OTHERS THEN
4143        xla_exceptions_pkg.raise_message
4144            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_25');
4145 END AcctDerRule_25;
4146 --
4147 
4148 ---------------------------------------
4149 --
4150 -- PRIVATE FUNCTION
4151 --         AcctDerRule_26
4152 --
4153 ---------------------------------------
4154 FUNCTION AcctDerRule_26 (
4155   p_application_id              IN NUMBER
4156 , p_ae_header_id                IN NUMBER
4157 , p_side                        IN VARCHAR2 
4158 --Automatic Offsets Value
4159  , p_source_16            IN VARCHAR2
4160  , p_source_16_meaning    IN VARCHAR2
4161 --Bank Future Dated Payment Account
4162  , p_source_23            IN NUMBER
4163 --Future Dated Payment Account Source Option
4164  , p_source_24            IN VARCHAR2
4165  , p_source_24_meaning    IN VARCHAR2
4166 --Financials Options Future Dated Payment Account
4167  , p_source_25            IN NUMBER
4168 --Supplier Site Future Dated Payment Account
4169  , p_source_26            IN NUMBER
4170 --Invoice Distribution Account
4171  , p_source_29            IN NUMBER
4172 , x_transaction_coa_id         OUT NOCOPY NUMBER
4173 , x_accounting_coa_id          OUT NOCOPY NUMBER
4174 , x_value_type_code            OUT NOCOPY VARCHAR2
4175 )
4176 RETURN NUMBER
4177 IS
4178 l_component_type       VARCHAR2(80)  ;
4179 l_component_code       VARCHAR2(30)  ;
4180 l_component_type_code  VARCHAR2(1)   ;
4181 l_component_appl_id    INTEGER       ;
4182 l_amb_context_code     VARCHAR2(30)  ;
4183 l_log_module           VARCHAR2(240) ;
4184 l_output_value         NUMBER        ;
4185 BEGIN
4186 IF g_log_enabled THEN
4187       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_26';
4188 END IF;
4189 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4190       trace
4191          (p_msg      => 'BEGIN of AcctDerRule_26'
4192          ,p_level    => C_LEVEL_PROCEDURE
4193          ,p_module   => l_log_module);
4194 END IF;
4195 --
4196 l_component_type         := 'AMB_ADR';
4197 l_component_code         := 'AP_FUTURE_DATED_PMT';
4198 l_component_type_code    := 'S';
4199 l_component_appl_id      :=  200;
4200 l_amb_context_code       := 'DEFAULT';
4201 x_transaction_coa_id     :=  null;
4202 x_accounting_coa_id      :=  null;
4203 --
4204 
4205  IF NVL(p_source_16,'
4206 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4207 NVL(p_source_24,'
4208 ') =  'BANK ACCOUNT' AND 
4209 TO_NUMBER(p_source_23) IS NOT NULL 
4210  THEN 
4211  --
4212   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4213       trace
4214          (p_msg      => 'END of AcctDerRule_26'
4215          ,p_level    => C_LEVEL_PROCEDURE
4216          ,p_module   => l_log_module);
4217   END IF;
4218   x_value_type_code := 'S';
4219   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_23));
4220   RETURN l_output_value;
4221 
4222  ELSIF NVL(p_source_16,'
4223 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4224 NVL(p_source_24,'
4225 ') =  'BANK ACCOUNT'
4226  THEN 
4227  --
4228   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4229       trace
4230          (p_msg      => 'END of AcctDerRule_26'
4231          ,p_level    => C_LEVEL_PROCEDURE
4232          ,p_module   => l_log_module);
4233   END IF;
4234   x_value_type_code := 'S';
4235   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
4236   RETURN l_output_value;
4237 
4238  ELSIF NVL(p_source_16,'
4239 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4240 NVL(p_source_24,'
4241 ') =  'SUPPLIER SITE' AND 
4242 TO_NUMBER(p_source_26) IS NOT NULL 
4243  THEN 
4244  --
4245   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4246       trace
4247          (p_msg      => 'END of AcctDerRule_26'
4248          ,p_level    => C_LEVEL_PROCEDURE
4249          ,p_module   => l_log_module);
4250   END IF;
4251   x_value_type_code := 'S';
4252   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_26));
4253   RETURN l_output_value;
4254 
4255  ELSIF NVL(p_source_16,'
4256 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4257 NVL(p_source_24,'
4258 ') =  'SUPPLIER SITE'
4259  THEN 
4260  --
4261   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4262       trace
4263          (p_msg      => 'END of AcctDerRule_26'
4264          ,p_level    => C_LEVEL_PROCEDURE
4265          ,p_module   => l_log_module);
4266   END IF;
4267   x_value_type_code := 'S';
4268   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
4269   RETURN l_output_value;
4270 
4271  ELSIF NVL(p_source_16,'
4272 ') =  'ACCOUNT_SEGMENT_VALUE'
4273  THEN 
4274  --
4275   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4276       trace
4277          (p_msg      => 'END of AcctDerRule_26'
4278          ,p_level    => C_LEVEL_PROCEDURE
4279          ,p_module   => l_log_module);
4280   END IF;
4281   x_value_type_code := 'S';
4282   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
4283   RETURN l_output_value;
4284 
4285  END IF;
4286 --
4287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4288       trace
4289          (p_msg      => 'END of AcctDerRule_26(invalid)'
4290          ,p_level    => C_LEVEL_PROCEDURE
4291          ,p_module   => l_log_module);
4295 l_output_value    := null;
4292 END IF;
4293 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4294 x_value_type_code := null;
4296 xla_accounting_err_pkg.build_message
4297                  (p_appli_s_name            => 'XLA'
4298                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4299                  ,p_token_1                 => 'COMPONENT_NAME'
4300                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4301                                                             l_component_type
4302                                                           , l_component_code
4303                                                           , l_component_type_code
4304                                                           , l_component_appl_id
4305                                                           , l_amb_context_code
4306                                                           )
4307                  ,p_token_2                 => 'OWNER'
4308                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4309                                                         'XLA_OWNER_TYPE'
4310                                                         ,l_component_type_code
4311                                                         )
4312                  ,p_token_3                 => 'PAD_NAME'
4313                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4314                  ,p_token_4                 => 'PAD_OWNER'
4315                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4316                                                         'XLA_OWNER_TYPE'
4317                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4318                                                         )
4319                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4320                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4321                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4322                  ,p_ae_header_id            => NULL
4323 );
4324 RETURN l_output_value;
4325 EXCEPTION
4326   WHEN xla_exceptions_pkg.application_exception THEN
4327       RAISE;
4328   WHEN OTHERS THEN
4329        xla_exceptions_pkg.raise_message
4330            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_26');
4331 END AcctDerRule_26;
4332 --
4333 
4334 ---------------------------------------
4335 --
4336 -- PRIVATE FUNCTION
4337 --         AcctDerRule_27
4338 --
4339 ---------------------------------------
4340 FUNCTION AcctDerRule_27 (
4341   p_application_id              IN NUMBER
4342 , p_ae_header_id                IN NUMBER
4343 , p_side                        IN VARCHAR2 
4344 --Interest Account
4345  , p_source_27            IN NUMBER
4346 --Prorate Interest Invoice Across Distributions Option
4347  , p_source_28            IN VARCHAR2
4348 --Invoice Distribution Account
4349  , p_source_29            IN NUMBER
4350 , x_transaction_coa_id         OUT NOCOPY NUMBER
4351 , x_accounting_coa_id          OUT NOCOPY NUMBER
4352 , x_value_type_code            OUT NOCOPY VARCHAR2
4353 )
4354 RETURN NUMBER
4355 IS
4356 l_component_type       VARCHAR2(80)  ;
4357 l_component_code       VARCHAR2(30)  ;
4358 l_component_type_code  VARCHAR2(1)   ;
4359 l_component_appl_id    INTEGER       ;
4360 l_amb_context_code     VARCHAR2(30)  ;
4361 l_log_module           VARCHAR2(240) ;
4362 l_output_value         NUMBER        ;
4363 BEGIN
4364 IF g_log_enabled THEN
4365       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_27';
4366 END IF;
4367 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4368       trace
4369          (p_msg      => 'BEGIN of AcctDerRule_27'
4370          ,p_level    => C_LEVEL_PROCEDURE
4371          ,p_module   => l_log_module);
4372 END IF;
4373 --
4374 l_component_type         := 'AMB_ADR';
4375 l_component_code         := 'AP_INTEREST';
4376 l_component_type_code    := 'S';
4377 l_component_appl_id      :=  200;
4378 l_amb_context_code       := 'DEFAULT';
4379 x_transaction_coa_id     :=  null;
4380 x_accounting_coa_id      :=  null;
4381 --
4382 
4383  IF NVL(p_source_28,'
4384 ') =  'N'
4385  THEN 
4386  --
4387   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4388       trace
4389          (p_msg      => 'END of AcctDerRule_27'
4390          ,p_level    => C_LEVEL_PROCEDURE
4391          ,p_module   => l_log_module);
4392   END IF;
4393   x_value_type_code := 'S';
4394   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_27));
4395   RETURN l_output_value;
4396 
4397  ELSIF NVL(p_source_28,'
4398 ') =  'Y'
4399  THEN 
4400  --
4401   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4402       trace
4403          (p_msg      => 'END of AcctDerRule_27'
4404          ,p_level    => C_LEVEL_PROCEDURE
4405          ,p_module   => l_log_module);
4406   END IF;
4407   x_value_type_code := 'S';
4408   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
4409   RETURN l_output_value;
4410 
4411  END IF;
4412 --
4413 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4414       trace
4415          (p_msg      => 'END of AcctDerRule_27(invalid)'
4416          ,p_level    => C_LEVEL_PROCEDURE
4417          ,p_module   => l_log_module);
4418 END IF;
4422 xla_accounting_err_pkg.build_message
4419 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4420 x_value_type_code := null;
4421 l_output_value    := null;
4423                  (p_appli_s_name            => 'XLA'
4424                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4425                  ,p_token_1                 => 'COMPONENT_NAME'
4426                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4427                                                             l_component_type
4428                                                           , l_component_code
4429                                                           , l_component_type_code
4430                                                           , l_component_appl_id
4431                                                           , l_amb_context_code
4432                                                           )
4433                  ,p_token_2                 => 'OWNER'
4434                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4435                                                         'XLA_OWNER_TYPE'
4436                                                         ,l_component_type_code
4437                                                         )
4438                  ,p_token_3                 => 'PAD_NAME'
4439                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4440                  ,p_token_4                 => 'PAD_OWNER'
4441                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4442                                                         'XLA_OWNER_TYPE'
4443                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4444                                                         )
4445                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4446                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4447                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4448                  ,p_ae_header_id            => NULL
4449 );
4450 RETURN l_output_value;
4451 EXCEPTION
4452   WHEN xla_exceptions_pkg.application_exception THEN
4453       RAISE;
4454   WHEN OTHERS THEN
4455        xla_exceptions_pkg.raise_message
4456            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_27');
4457 END AcctDerRule_27;
4458 --
4459 
4460 ---------------------------------------
4461 --
4462 -- PRIVATE FUNCTION
4463 --         AcctDerRule_28
4464 --
4465 ---------------------------------------
4466 FUNCTION AcctDerRule_28 (
4467   p_application_id              IN NUMBER
4468 , p_ae_header_id                IN NUMBER
4469 , p_side                        IN VARCHAR2 
4470 --Invoice Distribution Account
4471  , p_source_29            IN NUMBER
4472 , x_transaction_coa_id         OUT NOCOPY NUMBER
4473 , x_accounting_coa_id          OUT NOCOPY NUMBER
4474 , x_value_type_code            OUT NOCOPY VARCHAR2
4475 )
4476 RETURN NUMBER
4477 IS
4478 l_component_type       VARCHAR2(80)  ;
4479 l_component_code       VARCHAR2(30)  ;
4480 l_component_type_code  VARCHAR2(1)   ;
4481 l_component_appl_id    INTEGER       ;
4482 l_amb_context_code     VARCHAR2(30)  ;
4483 l_log_module           VARCHAR2(240) ;
4484 l_output_value         NUMBER        ;
4485 BEGIN
4486 IF g_log_enabled THEN
4487       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_28';
4488 END IF;
4489 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4490       trace
4491          (p_msg      => 'BEGIN of AcctDerRule_28'
4492          ,p_level    => C_LEVEL_PROCEDURE
4493          ,p_module   => l_log_module);
4494 END IF;
4495 --
4496 l_component_type         := 'AMB_ADR';
4497 l_component_code         := 'AP_INVOICE_DIST';
4498 l_component_type_code    := 'S';
4499 l_component_appl_id      :=  200;
4500 l_amb_context_code       := 'DEFAULT';
4501 x_transaction_coa_id     :=  null;
4502 x_accounting_coa_id      :=  null;
4503 --
4504 
4505  --
4506   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4507       trace
4508          (p_msg      => 'END of AcctDerRule_28'
4509          ,p_level    => C_LEVEL_PROCEDURE
4510          ,p_module   => l_log_module);
4511   END IF;
4512   x_value_type_code := 'S';
4513   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
4514   RETURN l_output_value;
4515 
4516 --
4517 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4518       trace
4519          (p_msg      => 'END of AcctDerRule_28(invalid)'
4520          ,p_level    => C_LEVEL_PROCEDURE
4521          ,p_module   => l_log_module);
4522 END IF;
4523 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4524 x_value_type_code := null;
4525 l_output_value    := null;
4526 xla_accounting_err_pkg.build_message
4527                  (p_appli_s_name            => 'XLA'
4528                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4529                  ,p_token_1                 => 'COMPONENT_NAME'
4530                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4531                                                             l_component_type
4532                                                           , l_component_code
4533                                                           , l_component_type_code
4534                                                           , l_component_appl_id
4538                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4535                                                           , l_amb_context_code
4536                                                           )
4537                  ,p_token_2                 => 'OWNER'
4539                                                         'XLA_OWNER_TYPE'
4540                                                         ,l_component_type_code
4541                                                         )
4542                  ,p_token_3                 => 'PAD_NAME'
4543                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4544                  ,p_token_4                 => 'PAD_OWNER'
4545                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4546                                                         'XLA_OWNER_TYPE'
4547                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4548                                                         )
4549                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4550                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4551                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4552                  ,p_ae_header_id            => NULL
4553 );
4554 RETURN l_output_value;
4555 EXCEPTION
4556   WHEN xla_exceptions_pkg.application_exception THEN
4557       RAISE;
4558   WHEN OTHERS THEN
4559        xla_exceptions_pkg.raise_message
4560            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_28');
4561 END AcctDerRule_28;
4562 --
4563 
4564 ---------------------------------------
4565 --
4566 -- PRIVATE FUNCTION
4567 --         AcctDerRule_29
4568 --
4569 ---------------------------------------
4570 FUNCTION AcctDerRule_29 (
4571   p_application_id              IN NUMBER
4572 , p_ae_header_id                IN NUMBER
4573 , p_side                        IN VARCHAR2 
4574 --Payment Card Accrued Account
4575  , p_source_43            IN NUMBER
4576 , x_transaction_coa_id         OUT NOCOPY NUMBER
4577 , x_accounting_coa_id          OUT NOCOPY NUMBER
4578 , x_value_type_code            OUT NOCOPY VARCHAR2
4579 )
4580 RETURN NUMBER
4581 IS
4582 l_component_type       VARCHAR2(80)  ;
4583 l_component_code       VARCHAR2(30)  ;
4584 l_component_type_code  VARCHAR2(1)   ;
4585 l_component_appl_id    INTEGER       ;
4586 l_amb_context_code     VARCHAR2(30)  ;
4587 l_log_module           VARCHAR2(240) ;
4588 l_output_value         NUMBER        ;
4589 BEGIN
4590 IF g_log_enabled THEN
4591       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_29';
4592 END IF;
4593 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4594       trace
4595          (p_msg      => 'BEGIN of AcctDerRule_29'
4596          ,p_level    => C_LEVEL_PROCEDURE
4597          ,p_module   => l_log_module);
4598 END IF;
4599 --
4600 l_component_type         := 'AMB_ADR';
4601 l_component_code         := 'AP_PAYCARD_ACCRUED_ADR';
4602 l_component_type_code    := 'S';
4603 l_component_appl_id      :=  200;
4604 l_amb_context_code       := 'DEFAULT';
4605 x_transaction_coa_id     :=  null;
4606 x_accounting_coa_id      :=  null;
4607 --
4608 
4609  --
4610   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4611       trace
4612          (p_msg      => 'END of AcctDerRule_29'
4613          ,p_level    => C_LEVEL_PROCEDURE
4614          ,p_module   => l_log_module);
4615   END IF;
4616   x_value_type_code := 'S';
4617   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_43));
4618   RETURN l_output_value;
4619 
4620 --
4621 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4622       trace
4623          (p_msg      => 'END of AcctDerRule_29(invalid)'
4624          ,p_level    => C_LEVEL_PROCEDURE
4625          ,p_module   => l_log_module);
4626 END IF;
4627 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4628 x_value_type_code := null;
4629 l_output_value    := null;
4630 xla_accounting_err_pkg.build_message
4631                  (p_appli_s_name            => 'XLA'
4632                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4633                  ,p_token_1                 => 'COMPONENT_NAME'
4634                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4635                                                             l_component_type
4636                                                           , l_component_code
4637                                                           , l_component_type_code
4638                                                           , l_component_appl_id
4639                                                           , l_amb_context_code
4640                                                           )
4641                  ,p_token_2                 => 'OWNER'
4642                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4643                                                         'XLA_OWNER_TYPE'
4644                                                         ,l_component_type_code
4645                                                         )
4646                  ,p_token_3                 => 'PAD_NAME'
4647                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4648                  ,p_token_4                 => 'PAD_OWNER'
4649                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4653                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4650                                                         'XLA_OWNER_TYPE'
4651                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4652                                                         )
4654                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4655                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4656                  ,p_ae_header_id            => NULL
4657 );
4658 RETURN l_output_value;
4659 EXCEPTION
4660   WHEN xla_exceptions_pkg.application_exception THEN
4661       RAISE;
4662   WHEN OTHERS THEN
4663        xla_exceptions_pkg.raise_message
4664            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_29');
4665 END AcctDerRule_29;
4666 --
4667 
4668 ---------------------------------------
4669 --
4670 -- PRIVATE FUNCTION
4671 --         AcctDerRule_30
4672 --
4673 ---------------------------------------
4674 FUNCTION AcctDerRule_30 (
4675   p_application_id              IN NUMBER
4676 , p_ae_header_id                IN NUMBER
4677 , p_side                        IN VARCHAR2 
4678 --Bank Cash Clearing Account
4679  , p_source_33            IN NUMBER
4680 , x_transaction_coa_id         OUT NOCOPY NUMBER
4681 , x_accounting_coa_id          OUT NOCOPY NUMBER
4682 , x_value_type_code            OUT NOCOPY VARCHAR2
4683 )
4684 RETURN NUMBER
4685 IS
4686 l_component_type       VARCHAR2(80)  ;
4687 l_component_code       VARCHAR2(30)  ;
4688 l_component_type_code  VARCHAR2(1)   ;
4689 l_component_appl_id    INTEGER       ;
4690 l_amb_context_code     VARCHAR2(30)  ;
4691 l_log_module           VARCHAR2(240) ;
4692 l_output_value         NUMBER        ;
4693 BEGIN
4694 IF g_log_enabled THEN
4695       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_30';
4696 END IF;
4697 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4698       trace
4699          (p_msg      => 'BEGIN of AcctDerRule_30'
4700          ,p_level    => C_LEVEL_PROCEDURE
4701          ,p_module   => l_log_module);
4702 END IF;
4703 --
4704 l_component_type         := 'AMB_ADR';
4705 l_component_code         := 'AP_PMT_CASH_CLEAR';
4706 l_component_type_code    := 'S';
4707 l_component_appl_id      :=  200;
4708 l_amb_context_code       := 'DEFAULT';
4709 x_transaction_coa_id     :=  null;
4710 x_accounting_coa_id      :=  null;
4711 --
4712 
4713  --
4714   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4715       trace
4716          (p_msg      => 'END of AcctDerRule_30'
4717          ,p_level    => C_LEVEL_PROCEDURE
4718          ,p_module   => l_log_module);
4719   END IF;
4720   x_value_type_code := 'S';
4721   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_33));
4722   RETURN l_output_value;
4723 
4724 --
4725 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4726       trace
4727          (p_msg      => 'END of AcctDerRule_30(invalid)'
4728          ,p_level    => C_LEVEL_PROCEDURE
4729          ,p_module   => l_log_module);
4730 END IF;
4731 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4732 x_value_type_code := null;
4733 l_output_value    := null;
4734 xla_accounting_err_pkg.build_message
4735                  (p_appli_s_name            => 'XLA'
4736                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4737                  ,p_token_1                 => 'COMPONENT_NAME'
4738                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4739                                                             l_component_type
4740                                                           , l_component_code
4741                                                           , l_component_type_code
4742                                                           , l_component_appl_id
4743                                                           , l_amb_context_code
4744                                                           )
4745                  ,p_token_2                 => 'OWNER'
4746                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4747                                                         'XLA_OWNER_TYPE'
4748                                                         ,l_component_type_code
4749                                                         )
4750                  ,p_token_3                 => 'PAD_NAME'
4751                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4752                  ,p_token_4                 => 'PAD_OWNER'
4753                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4754                                                         'XLA_OWNER_TYPE'
4755                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4756                                                         )
4757                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4758                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4759                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4760                  ,p_ae_header_id            => NULL
4761 );
4762 RETURN l_output_value;
4763 EXCEPTION
4764   WHEN xla_exceptions_pkg.application_exception THEN
4765       RAISE;
4766   WHEN OTHERS THEN
4767        xla_exceptions_pkg.raise_message
4771 
4768            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_30');
4769 END AcctDerRule_30;
4770 --
4772 ---------------------------------------
4773 --
4774 -- PRIVATE FUNCTION
4775 --         AcctDerRule_31
4776 --
4777 ---------------------------------------
4778 FUNCTION AcctDerRule_31 (
4779   p_application_id              IN NUMBER
4780 , p_ae_header_id                IN NUMBER
4781 , p_side                        IN VARCHAR2 
4782 --Purchase Order Charge Account
4783  , p_source_40            IN NUMBER
4784 , x_transaction_coa_id         OUT NOCOPY NUMBER
4785 , x_accounting_coa_id          OUT NOCOPY NUMBER
4786 , x_value_type_code            OUT NOCOPY VARCHAR2
4787 )
4788 RETURN NUMBER
4789 IS
4790 l_component_type       VARCHAR2(80)  ;
4791 l_component_code       VARCHAR2(30)  ;
4792 l_component_type_code  VARCHAR2(1)   ;
4793 l_component_appl_id    INTEGER       ;
4794 l_amb_context_code     VARCHAR2(30)  ;
4795 l_log_module           VARCHAR2(240) ;
4796 l_output_value         NUMBER        ;
4797 BEGIN
4798 IF g_log_enabled THEN
4799       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_31';
4800 END IF;
4801 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4802       trace
4803          (p_msg      => 'BEGIN of AcctDerRule_31'
4804          ,p_level    => C_LEVEL_PROCEDURE
4805          ,p_module   => l_log_module);
4806 END IF;
4807 --
4808 l_component_type         := 'AMB_ADR';
4809 l_component_code         := 'AP_PO_CHARGE_ACCT';
4810 l_component_type_code    := 'S';
4811 l_component_appl_id      :=  200;
4812 l_amb_context_code       := 'DEFAULT';
4813 x_transaction_coa_id     :=  null;
4814 x_accounting_coa_id      :=  null;
4815 --
4816 
4817  --
4818   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4819       trace
4820          (p_msg      => 'END of AcctDerRule_31'
4821          ,p_level    => C_LEVEL_PROCEDURE
4822          ,p_module   => l_log_module);
4823   END IF;
4824   x_value_type_code := 'S';
4825   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_40));
4826   RETURN l_output_value;
4827 
4828 --
4829 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4830       trace
4831          (p_msg      => 'END of AcctDerRule_31(invalid)'
4832          ,p_level    => C_LEVEL_PROCEDURE
4833          ,p_module   => l_log_module);
4834 END IF;
4835 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4836 x_value_type_code := null;
4837 l_output_value    := null;
4838 xla_accounting_err_pkg.build_message
4839                  (p_appli_s_name            => 'XLA'
4840                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4841                  ,p_token_1                 => 'COMPONENT_NAME'
4842                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4843                                                             l_component_type
4844                                                           , l_component_code
4845                                                           , l_component_type_code
4846                                                           , l_component_appl_id
4847                                                           , l_amb_context_code
4848                                                           )
4849                  ,p_token_2                 => 'OWNER'
4850                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4851                                                         'XLA_OWNER_TYPE'
4852                                                         ,l_component_type_code
4853                                                         )
4854                  ,p_token_3                 => 'PAD_NAME'
4855                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4856                  ,p_token_4                 => 'PAD_OWNER'
4857                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4858                                                         'XLA_OWNER_TYPE'
4859                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4860                                                         )
4861                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4862                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4863                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4864                  ,p_ae_header_id            => NULL
4865 );
4866 RETURN l_output_value;
4867 EXCEPTION
4868   WHEN xla_exceptions_pkg.application_exception THEN
4869       RAISE;
4870   WHEN OTHERS THEN
4871        xla_exceptions_pkg.raise_message
4872            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_31');
4873 END AcctDerRule_31;
4874 --
4875 
4876 ---------------------------------------
4877 --
4878 -- PRIVATE FUNCTION
4879 --         AcctDerRule_32
4880 --
4881 ---------------------------------------
4882 FUNCTION AcctDerRule_32 (
4883   p_application_id              IN NUMBER
4884 , p_ae_header_id                IN NUMBER
4885 , p_side                        IN VARCHAR2 
4886 --Invoice Distribution Account
4887  , p_source_29            IN NUMBER
4888 --Prepaid Expense Account Source Option
4889  , p_source_30            IN VARCHAR2
4890  , p_source_30_meaning    IN VARCHAR2
4891 --Purchase Order Number
4892  , p_source_31            IN VARCHAR2
4896 --Purchase Order Charge Account
4893 --Invoice Distribution Type
4894  , p_source_32            IN VARCHAR2
4895  , p_source_32_meaning    IN VARCHAR2
4897  , p_source_40            IN NUMBER
4898 , x_transaction_coa_id         OUT NOCOPY NUMBER
4899 , x_accounting_coa_id          OUT NOCOPY NUMBER
4900 , x_value_type_code            OUT NOCOPY VARCHAR2
4901 )
4902 RETURN NUMBER
4903 IS
4904 l_component_type       VARCHAR2(80)  ;
4905 l_component_code       VARCHAR2(30)  ;
4906 l_component_type_code  VARCHAR2(1)   ;
4907 l_component_appl_id    INTEGER       ;
4908 l_amb_context_code     VARCHAR2(30)  ;
4909 l_log_module           VARCHAR2(240) ;
4910 l_output_value         NUMBER        ;
4911 BEGIN
4912 IF g_log_enabled THEN
4913       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_32';
4914 END IF;
4915 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4916       trace
4917          (p_msg      => 'BEGIN of AcctDerRule_32'
4918          ,p_level    => C_LEVEL_PROCEDURE
4919          ,p_module   => l_log_module);
4920 END IF;
4921 --
4922 l_component_type         := 'AMB_ADR';
4923 l_component_code         := 'AP_PREPAY_INVOICE_DIST';
4924 l_component_type_code    := 'S';
4925 l_component_appl_id      :=  200;
4926 l_amb_context_code       := 'DEFAULT';
4927 x_transaction_coa_id     :=  null;
4928 x_accounting_coa_id      :=  null;
4929 --
4930 
4931  IF NVL(p_source_30,'
4932 ') <>  'Y' OR 
4933 (NVL(p_source_30,'
4934 ') =  'Y' AND 
4935 p_source_31 IS NULL )
4936  THEN 
4937  --
4938   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4939       trace
4940          (p_msg      => 'END of AcctDerRule_32'
4941          ,p_level    => C_LEVEL_PROCEDURE
4942          ,p_module   => l_log_module);
4943   END IF;
4944   x_value_type_code := 'S';
4945   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
4946   RETURN l_output_value;
4947 
4948  ELSIF NVL(p_source_30,'
4949 ') =  'Y' AND 
4950 p_source_31 IS NOT NULL AND 
4951 NVL(p_source_32,'
4952 ') =  'ITEM'
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_40));
4963   RETURN l_output_value;
4964 
4965  END IF;
4966 --
4967 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4968       trace
4969          (p_msg      => 'END of AcctDerRule_32(invalid)'
4970          ,p_level    => C_LEVEL_PROCEDURE
4971          ,p_module   => l_log_module);
4972 END IF;
4973 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4974 x_value_type_code := null;
4975 l_output_value    := null;
4976 xla_accounting_err_pkg.build_message
4977                  (p_appli_s_name            => 'XLA'
4978                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4979                  ,p_token_1                 => 'COMPONENT_NAME'
4980                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4981                                                             l_component_type
4982                                                           , l_component_code
4983                                                           , l_component_type_code
4984                                                           , l_component_appl_id
4985                                                           , l_amb_context_code
4986                                                           )
4987                  ,p_token_2                 => 'OWNER'
4988                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4989                                                         'XLA_OWNER_TYPE'
4990                                                         ,l_component_type_code
4991                                                         )
4992                  ,p_token_3                 => 'PAD_NAME'
4993                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4994                  ,p_token_4                 => 'PAD_OWNER'
4995                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4996                                                         'XLA_OWNER_TYPE'
4997                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4998                                                         )
4999                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5000                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5001                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5002                  ,p_ae_header_id            => NULL
5003 );
5004 RETURN l_output_value;
5005 EXCEPTION
5006   WHEN xla_exceptions_pkg.application_exception THEN
5007       RAISE;
5008   WHEN OTHERS THEN
5009        xla_exceptions_pkg.raise_message
5010            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_32');
5011 END AcctDerRule_32;
5012 --
5013 
5014 ---------------------------------------
5015 --
5016 -- PRIVATE FUNCTION
5017 --         AcctDerRule_33
5018 --
5019 ---------------------------------------
5020 FUNCTION AcctDerRule_33 (
5021   p_application_id              IN NUMBER
5022 , p_ae_header_id                IN NUMBER
5026  , p_source_16_meaning    IN VARCHAR2
5023 , p_side                        IN VARCHAR2 
5024 --Automatic Offsets Value
5025  , p_source_16            IN VARCHAR2
5027 --Invoice Distribution Account
5028  , p_source_29            IN NUMBER
5029 --Internal Realized Gain Account
5030  , p_source_44            IN NUMBER
5031 --Bank Gain Account
5032  , p_source_45            IN NUMBER
5033 , x_transaction_coa_id         OUT NOCOPY NUMBER
5034 , x_accounting_coa_id          OUT NOCOPY NUMBER
5035 , x_value_type_code            OUT NOCOPY VARCHAR2
5036 )
5037 RETURN NUMBER
5038 IS
5039 l_component_type       VARCHAR2(80)  ;
5040 l_component_code       VARCHAR2(30)  ;
5041 l_component_type_code  VARCHAR2(1)   ;
5042 l_component_appl_id    INTEGER       ;
5043 l_amb_context_code     VARCHAR2(30)  ;
5044 l_log_module           VARCHAR2(240) ;
5045 l_output_value         NUMBER        ;
5046 BEGIN
5047 IF g_log_enabled THEN
5048       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_33';
5049 END IF;
5050 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5051       trace
5052          (p_msg      => 'BEGIN of AcctDerRule_33'
5053          ,p_level    => C_LEVEL_PROCEDURE
5054          ,p_module   => l_log_module);
5055 END IF;
5056 --
5057 l_component_type         := 'AMB_ADR';
5058 l_component_code         := 'AP_REAL_GAIN';
5059 l_component_type_code    := 'S';
5060 l_component_appl_id      :=  200;
5061 l_amb_context_code       := 'DEFAULT';
5062 x_transaction_coa_id     :=  null;
5063 x_accounting_coa_id      :=  null;
5064 --
5065 
5066  IF NVL(p_source_16,'
5067 ') <>  'ACCOUNT_SEGMENT_VALUE'
5068  THEN 
5069  --
5070   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5071       trace
5072          (p_msg      => 'END of AcctDerRule_33'
5073          ,p_level    => C_LEVEL_PROCEDURE
5074          ,p_module   => l_log_module);
5075   END IF;
5076   x_value_type_code := 'S';
5077   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_44));
5078   RETURN l_output_value;
5079 
5080  ELSIF NVL(p_source_16,'
5081 ') <>  'ACCOUNT_SEGMENT_VALUE'
5082  THEN 
5083  --
5084   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5085       trace
5086          (p_msg      => 'END of AcctDerRule_33'
5087          ,p_level    => C_LEVEL_PROCEDURE
5088          ,p_module   => l_log_module);
5089   END IF;
5090   x_value_type_code := 'S';
5091   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_45));
5092   RETURN l_output_value;
5093 
5094  ELSIF NVL(p_source_16,'
5095 ') =  'ACCOUNT_SEGMENT_VALUE'
5096  THEN 
5097  --
5098   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5099       trace
5100          (p_msg      => 'END of AcctDerRule_33'
5101          ,p_level    => C_LEVEL_PROCEDURE
5102          ,p_module   => l_log_module);
5103   END IF;
5104   x_value_type_code := 'S';
5105   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
5106   RETURN l_output_value;
5107 
5108  END IF;
5109 --
5110 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5111       trace
5112          (p_msg      => 'END of AcctDerRule_33(invalid)'
5113          ,p_level    => C_LEVEL_PROCEDURE
5114          ,p_module   => l_log_module);
5115 END IF;
5116 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5117 x_value_type_code := null;
5118 l_output_value    := null;
5119 xla_accounting_err_pkg.build_message
5120                  (p_appli_s_name            => 'XLA'
5121                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5122                  ,p_token_1                 => 'COMPONENT_NAME'
5123                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5124                                                             l_component_type
5125                                                           , l_component_code
5126                                                           , l_component_type_code
5127                                                           , l_component_appl_id
5128                                                           , l_amb_context_code
5129                                                           )
5130                  ,p_token_2                 => 'OWNER'
5131                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5132                                                         'XLA_OWNER_TYPE'
5133                                                         ,l_component_type_code
5134                                                         )
5135                  ,p_token_3                 => 'PAD_NAME'
5136                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5137                  ,p_token_4                 => 'PAD_OWNER'
5138                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5139                                                         'XLA_OWNER_TYPE'
5140                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5141                                                         )
5142                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5143                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5144                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5145                  ,p_ae_header_id            => NULL
5146 );
5147 RETURN l_output_value;
5148 EXCEPTION
5149   WHEN xla_exceptions_pkg.application_exception THEN
5153            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_33');
5150       RAISE;
5151   WHEN OTHERS THEN
5152        xla_exceptions_pkg.raise_message
5154 END AcctDerRule_33;
5155 --
5156 
5157 ---------------------------------------
5158 --
5159 -- PRIVATE FUNCTION
5160 --         AcctDerRule_34
5161 --
5162 ---------------------------------------
5163 FUNCTION AcctDerRule_34 (
5164   p_application_id              IN NUMBER
5165 , p_ae_header_id                IN NUMBER
5166 , p_side                        IN VARCHAR2 
5167 --Automatic Offsets Value
5168  , p_source_16            IN VARCHAR2
5169  , p_source_16_meaning    IN VARCHAR2
5170 --Invoice Distribution Account
5171  , p_source_29            IN NUMBER
5172 --Internal Realized Loss Account
5173  , p_source_46            IN NUMBER
5174 --Bank Loss Account
5175  , p_source_47            IN NUMBER
5176 , x_transaction_coa_id         OUT NOCOPY NUMBER
5177 , x_accounting_coa_id          OUT NOCOPY NUMBER
5178 , x_value_type_code            OUT NOCOPY VARCHAR2
5179 )
5180 RETURN NUMBER
5181 IS
5182 l_component_type       VARCHAR2(80)  ;
5183 l_component_code       VARCHAR2(30)  ;
5184 l_component_type_code  VARCHAR2(1)   ;
5185 l_component_appl_id    INTEGER       ;
5186 l_amb_context_code     VARCHAR2(30)  ;
5187 l_log_module           VARCHAR2(240) ;
5188 l_output_value         NUMBER        ;
5189 BEGIN
5190 IF g_log_enabled THEN
5191       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_34';
5192 END IF;
5193 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5194       trace
5195          (p_msg      => 'BEGIN of AcctDerRule_34'
5196          ,p_level    => C_LEVEL_PROCEDURE
5197          ,p_module   => l_log_module);
5198 END IF;
5199 --
5200 l_component_type         := 'AMB_ADR';
5201 l_component_code         := 'AP_REAL_LOSS';
5202 l_component_type_code    := 'S';
5203 l_component_appl_id      :=  200;
5204 l_amb_context_code       := 'DEFAULT';
5205 x_transaction_coa_id     :=  null;
5206 x_accounting_coa_id      :=  null;
5207 --
5208 
5209  IF NVL(p_source_16,'
5210 ') <>  'ACCOUNT_SEGMENT_VALUE'
5211  THEN 
5212  --
5213   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5214       trace
5215          (p_msg      => 'END of AcctDerRule_34'
5216          ,p_level    => C_LEVEL_PROCEDURE
5217          ,p_module   => l_log_module);
5218   END IF;
5219   x_value_type_code := 'S';
5220   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_46));
5221   RETURN l_output_value;
5222 
5223  ELSIF NVL(p_source_16,'
5224 ') <>  'ACCOUNT_SEGMENT_VALUE'
5225  THEN 
5226  --
5227   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5228       trace
5229          (p_msg      => 'END of AcctDerRule_34'
5230          ,p_level    => C_LEVEL_PROCEDURE
5231          ,p_module   => l_log_module);
5232   END IF;
5233   x_value_type_code := 'S';
5234   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_47));
5235   RETURN l_output_value;
5236 
5237  ELSIF NVL(p_source_16,'
5238 ') =  'ACCOUNT_SEGMENT_VALUE'
5239  THEN 
5240  --
5241   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5242       trace
5243          (p_msg      => 'END of AcctDerRule_34'
5244          ,p_level    => C_LEVEL_PROCEDURE
5245          ,p_module   => l_log_module);
5246   END IF;
5247   x_value_type_code := 'S';
5248   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
5249   RETURN l_output_value;
5250 
5251  END IF;
5252 --
5253 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5254       trace
5255          (p_msg      => 'END of AcctDerRule_34(invalid)'
5256          ,p_level    => C_LEVEL_PROCEDURE
5257          ,p_module   => l_log_module);
5258 END IF;
5259 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5260 x_value_type_code := null;
5261 l_output_value    := null;
5262 xla_accounting_err_pkg.build_message
5263                  (p_appli_s_name            => 'XLA'
5264                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5265                  ,p_token_1                 => 'COMPONENT_NAME'
5266                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5267                                                             l_component_type
5268                                                           , l_component_code
5269                                                           , l_component_type_code
5270                                                           , l_component_appl_id
5271                                                           , l_amb_context_code
5272                                                           )
5273                  ,p_token_2                 => 'OWNER'
5274                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5275                                                         'XLA_OWNER_TYPE'
5276                                                         ,l_component_type_code
5277                                                         )
5278                  ,p_token_3                 => 'PAD_NAME'
5279                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5280                  ,p_token_4                 => 'PAD_OWNER'
5281                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5282                                                         'XLA_OWNER_TYPE'
5286                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5283                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5284                                                         )
5285                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5287                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5288                  ,p_ae_header_id            => NULL
5289 );
5290 RETURN l_output_value;
5291 EXCEPTION
5292   WHEN xla_exceptions_pkg.application_exception THEN
5293       RAISE;
5294   WHEN OTHERS THEN
5295        xla_exceptions_pkg.raise_message
5296            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_34');
5297 END AcctDerRule_34;
5298 --
5299 
5300 ---------------------------------------
5301 --
5302 -- PRIVATE FUNCTION
5303 --         AcctDerRule_35
5304 --
5305 ---------------------------------------
5306 FUNCTION AcctDerRule_35 (
5307   p_application_id              IN NUMBER
5308 , p_ae_header_id                IN NUMBER
5309 , p_side                        IN VARCHAR2 
5310 --Recipient Invoice Distribution Account
5311  , p_source_48            IN NUMBER
5312 , x_transaction_coa_id         OUT NOCOPY NUMBER
5313 , x_accounting_coa_id          OUT NOCOPY NUMBER
5314 , x_value_type_code            OUT NOCOPY VARCHAR2
5315 )
5316 RETURN NUMBER
5317 IS
5318 l_component_type       VARCHAR2(80)  ;
5319 l_component_code       VARCHAR2(30)  ;
5320 l_component_type_code  VARCHAR2(1)   ;
5321 l_component_appl_id    INTEGER       ;
5322 l_amb_context_code     VARCHAR2(30)  ;
5323 l_log_module           VARCHAR2(240) ;
5324 l_output_value         NUMBER        ;
5325 BEGIN
5326 IF g_log_enabled THEN
5327       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_35';
5328 END IF;
5329 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5330       trace
5331          (p_msg      => 'BEGIN of AcctDerRule_35'
5332          ,p_level    => C_LEVEL_PROCEDURE
5333          ,p_module   => l_log_module);
5334 END IF;
5335 --
5336 l_component_type         := 'AMB_ADR';
5337 l_component_code         := 'AP_RECP_INV_DIST';
5338 l_component_type_code    := 'S';
5339 l_component_appl_id      :=  200;
5340 l_amb_context_code       := 'DEFAULT';
5341 x_transaction_coa_id     :=  null;
5342 x_accounting_coa_id      :=  null;
5343 --
5344 
5345  --
5346   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5347       trace
5348          (p_msg      => 'END of AcctDerRule_35'
5349          ,p_level    => C_LEVEL_PROCEDURE
5350          ,p_module   => l_log_module);
5351   END IF;
5352   x_value_type_code := 'S';
5353   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_48));
5354   RETURN l_output_value;
5355 
5356 --
5357 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5358       trace
5359          (p_msg      => 'END of AcctDerRule_35(invalid)'
5360          ,p_level    => C_LEVEL_PROCEDURE
5361          ,p_module   => l_log_module);
5362 END IF;
5363 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5364 x_value_type_code := null;
5365 l_output_value    := null;
5366 xla_accounting_err_pkg.build_message
5367                  (p_appli_s_name            => 'XLA'
5368                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5369                  ,p_token_1                 => 'COMPONENT_NAME'
5370                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5371                                                             l_component_type
5372                                                           , l_component_code
5373                                                           , l_component_type_code
5374                                                           , l_component_appl_id
5375                                                           , l_amb_context_code
5376                                                           )
5377                  ,p_token_2                 => 'OWNER'
5378                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5379                                                         'XLA_OWNER_TYPE'
5380                                                         ,l_component_type_code
5381                                                         )
5382                  ,p_token_3                 => 'PAD_NAME'
5383                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5384                  ,p_token_4                 => 'PAD_OWNER'
5385                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5386                                                         'XLA_OWNER_TYPE'
5387                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5388                                                         )
5389                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5390                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5391                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5392                  ,p_ae_header_id            => NULL
5393 );
5394 RETURN l_output_value;
5395 EXCEPTION
5396   WHEN xla_exceptions_pkg.application_exception THEN
5397       RAISE;
5398   WHEN OTHERS THEN
5399        xla_exceptions_pkg.raise_message
5403 
5400            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_35');
5401 END AcctDerRule_35;
5402 --
5404 ---------------------------------------
5405 --
5406 -- PRIVATE FUNCTION
5407 --         AcctDerRule_36
5408 --
5409 ---------------------------------------
5410 FUNCTION AcctDerRule_36 (
5411   p_application_id              IN NUMBER
5412 , p_ae_header_id                IN NUMBER
5413 , p_side                        IN VARCHAR2 
5414 --Automatic Offsets Value
5415  , p_source_16            IN VARCHAR2
5416  , p_source_16_meaning    IN VARCHAR2
5417 --Invoice Distribution Account
5418  , p_source_29            IN NUMBER
5419 --Retainage Related Item Distribution Account
5420  , p_source_35            IN NUMBER
5421 , x_transaction_coa_id         OUT NOCOPY NUMBER
5422 , x_accounting_coa_id          OUT NOCOPY NUMBER
5423 , x_value_type_code            OUT NOCOPY VARCHAR2
5424 )
5425 RETURN NUMBER
5426 IS
5427 l_component_type       VARCHAR2(80)  ;
5428 l_component_code       VARCHAR2(30)  ;
5429 l_component_type_code  VARCHAR2(1)   ;
5430 l_component_appl_id    INTEGER       ;
5431 l_amb_context_code     VARCHAR2(30)  ;
5432 l_log_module           VARCHAR2(240) ;
5433 l_output_value         NUMBER        ;
5434 BEGIN
5435 IF g_log_enabled THEN
5436       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_36';
5437 END IF;
5438 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5439       trace
5440          (p_msg      => 'BEGIN of AcctDerRule_36'
5441          ,p_level    => C_LEVEL_PROCEDURE
5442          ,p_module   => l_log_module);
5443 END IF;
5444 --
5445 l_component_type         := 'AMB_ADR';
5446 l_component_code         := 'AP_RETAINAGE';
5447 l_component_type_code    := 'S';
5448 l_component_appl_id      :=  200;
5449 l_amb_context_code       := 'DEFAULT';
5450 x_transaction_coa_id     :=  null;
5451 x_accounting_coa_id      :=  null;
5452 --
5453 
5454  IF NVL(p_source_16,'
5455 ') <>  'ACCOUNT_SEGMENT_VALUE'
5456  THEN 
5457  --
5458   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5459       trace
5460          (p_msg      => 'END of AcctDerRule_36'
5461          ,p_level    => C_LEVEL_PROCEDURE
5462          ,p_module   => l_log_module);
5463   END IF;
5464   x_value_type_code := 'S';
5465   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
5466   RETURN l_output_value;
5467 
5468  ELSIF NVL(p_source_16,'
5469 ') =  'ACCOUNT_SEGMENT_VALUE'
5470  THEN 
5471  --
5472   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5473       trace
5474          (p_msg      => 'END of AcctDerRule_36'
5475          ,p_level    => C_LEVEL_PROCEDURE
5476          ,p_module   => l_log_module);
5477   END IF;
5478   x_value_type_code := 'S';
5479   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_35));
5480   RETURN l_output_value;
5481 
5482  END IF;
5483 --
5484 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5485       trace
5486          (p_msg      => 'END of AcctDerRule_36(invalid)'
5487          ,p_level    => C_LEVEL_PROCEDURE
5488          ,p_module   => l_log_module);
5489 END IF;
5490 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5491 x_value_type_code := null;
5492 l_output_value    := null;
5493 xla_accounting_err_pkg.build_message
5494                  (p_appli_s_name            => 'XLA'
5495                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5496                  ,p_token_1                 => 'COMPONENT_NAME'
5497                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5498                                                             l_component_type
5499                                                           , l_component_code
5500                                                           , l_component_type_code
5501                                                           , l_component_appl_id
5502                                                           , l_amb_context_code
5503                                                           )
5504                  ,p_token_2                 => 'OWNER'
5505                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5506                                                         'XLA_OWNER_TYPE'
5507                                                         ,l_component_type_code
5508                                                         )
5509                  ,p_token_3                 => 'PAD_NAME'
5510                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5511                  ,p_token_4                 => 'PAD_OWNER'
5512                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5513                                                         'XLA_OWNER_TYPE'
5514                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5515                                                         )
5516                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5517                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5518                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5519                  ,p_ae_header_id            => NULL
5520 );
5521 RETURN l_output_value;
5522 EXCEPTION
5523   WHEN xla_exceptions_pkg.application_exception THEN
5524       RAISE;
5525   WHEN OTHERS THEN
5526        xla_exceptions_pkg.raise_message
5527            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_36');
5528 END AcctDerRule_36;
5529 --
5533 -- PRIVATE FUNCTION
5530 
5531 ---------------------------------------
5532 --
5534 --         AcctDerRule_37
5535 --
5536 ---------------------------------------
5537 FUNCTION AcctDerRule_37 (
5538   p_application_id              IN NUMBER
5539 , p_ae_header_id                IN NUMBER
5540 , p_side                        IN VARCHAR2 
5541 --Automatic Offsets Value
5542  , p_source_16            IN VARCHAR2
5543  , p_source_16_meaning    IN VARCHAR2
5544 --Invoice Distribution Account
5545  , p_source_29            IN NUMBER
5546 --Payables Options Rounding Account
5547  , p_source_49            IN NUMBER
5548 , x_transaction_coa_id         OUT NOCOPY NUMBER
5549 , x_accounting_coa_id          OUT NOCOPY NUMBER
5550 , x_value_type_code            OUT NOCOPY VARCHAR2
5551 )
5552 RETURN NUMBER
5553 IS
5554 l_component_type       VARCHAR2(80)  ;
5555 l_component_code       VARCHAR2(30)  ;
5556 l_component_type_code  VARCHAR2(1)   ;
5557 l_component_appl_id    INTEGER       ;
5558 l_amb_context_code     VARCHAR2(30)  ;
5559 l_log_module           VARCHAR2(240) ;
5560 l_output_value         NUMBER        ;
5561 BEGIN
5562 IF g_log_enabled THEN
5563       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_37';
5564 END IF;
5565 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5566       trace
5567          (p_msg      => 'BEGIN of AcctDerRule_37'
5568          ,p_level    => C_LEVEL_PROCEDURE
5569          ,p_module   => l_log_module);
5570 END IF;
5571 --
5572 l_component_type         := 'AMB_ADR';
5573 l_component_code         := 'AP_ROUNDING';
5574 l_component_type_code    := 'S';
5575 l_component_appl_id      :=  200;
5576 l_amb_context_code       := 'DEFAULT';
5577 x_transaction_coa_id     :=  null;
5578 x_accounting_coa_id      :=  null;
5579 --
5580 
5581  IF NVL(p_source_16,'
5582 ') <>  'ACCOUNT_SEGMENT_VALUE'
5583  THEN 
5584  --
5585   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5586       trace
5587          (p_msg      => 'END of AcctDerRule_37'
5588          ,p_level    => C_LEVEL_PROCEDURE
5589          ,p_module   => l_log_module);
5590   END IF;
5591   x_value_type_code := 'S';
5592   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_49));
5593   RETURN l_output_value;
5594 
5595  ELSIF NVL(p_source_16,'
5596 ') =  'ACCOUNT_SEGMENT_VALUE'
5597  THEN 
5598  --
5599   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5600       trace
5601          (p_msg      => 'END of AcctDerRule_37'
5602          ,p_level    => C_LEVEL_PROCEDURE
5603          ,p_module   => l_log_module);
5604   END IF;
5605   x_value_type_code := 'S';
5606   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
5607   RETURN l_output_value;
5608 
5609  END IF;
5610 --
5611 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5612       trace
5613          (p_msg      => 'END of AcctDerRule_37(invalid)'
5614          ,p_level    => C_LEVEL_PROCEDURE
5615          ,p_module   => l_log_module);
5616 END IF;
5617 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5618 x_value_type_code := null;
5619 l_output_value    := null;
5620 xla_accounting_err_pkg.build_message
5621                  (p_appli_s_name            => 'XLA'
5622                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5623                  ,p_token_1                 => 'COMPONENT_NAME'
5624                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5625                                                             l_component_type
5626                                                           , l_component_code
5627                                                           , l_component_type_code
5628                                                           , l_component_appl_id
5629                                                           , l_amb_context_code
5630                                                           )
5631                  ,p_token_2                 => 'OWNER'
5632                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5633                                                         'XLA_OWNER_TYPE'
5634                                                         ,l_component_type_code
5635                                                         )
5636                  ,p_token_3                 => 'PAD_NAME'
5637                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5638                  ,p_token_4                 => 'PAD_OWNER'
5639                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5640                                                         'XLA_OWNER_TYPE'
5641                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5642                                                         )
5643                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5644                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5645                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5646                  ,p_ae_header_id            => NULL
5647 );
5648 RETURN l_output_value;
5649 EXCEPTION
5650   WHEN xla_exceptions_pkg.application_exception THEN
5651       RAISE;
5652   WHEN OTHERS THEN
5653        xla_exceptions_pkg.raise_message
5657 
5654            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_37');
5655 END AcctDerRule_37;
5656 --
5658 ---------------------------------------
5659 --
5660 -- PRIVATE FUNCTION
5661 --         AcctDerRule_38
5662 --
5663 ---------------------------------------
5664 FUNCTION AcctDerRule_38 (
5665   p_application_id              IN NUMBER
5666 , p_ae_header_id                IN NUMBER
5667 , p_side                        IN VARCHAR2 
5668 --Automatic Offsets Value
5669  , p_source_16            IN VARCHAR2
5670  , p_source_16_meaning    IN VARCHAR2
5671 --Invoice Distribution Account
5672  , p_source_29            IN NUMBER
5673 --Withholding Related Distribution Account
5674  , p_source_36            IN NUMBER
5675 , x_transaction_coa_id         OUT NOCOPY NUMBER
5676 , x_accounting_coa_id          OUT NOCOPY NUMBER
5677 , x_value_type_code            OUT NOCOPY VARCHAR2
5678 )
5679 RETURN NUMBER
5680 IS
5681 l_component_type       VARCHAR2(80)  ;
5682 l_component_code       VARCHAR2(30)  ;
5683 l_component_type_code  VARCHAR2(1)   ;
5684 l_component_appl_id    INTEGER       ;
5685 l_amb_context_code     VARCHAR2(30)  ;
5686 l_log_module           VARCHAR2(240) ;
5687 l_output_value         NUMBER        ;
5688 BEGIN
5689 IF g_log_enabled THEN
5690       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_38';
5691 END IF;
5692 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5693       trace
5694          (p_msg      => 'BEGIN of AcctDerRule_38'
5695          ,p_level    => C_LEVEL_PROCEDURE
5696          ,p_module   => l_log_module);
5697 END IF;
5698 --
5699 l_component_type         := 'AMB_ADR';
5700 l_component_code         := 'AP_WH_DIST_ACCT';
5701 l_component_type_code    := 'S';
5702 l_component_appl_id      :=  200;
5703 l_amb_context_code       := 'DEFAULT';
5704 x_transaction_coa_id     :=  null;
5705 x_accounting_coa_id      :=  null;
5706 --
5707 
5708  IF NVL(p_source_16,'
5709 ') <>  'ACCOUNT_SEGMENT_VALUE'
5710  THEN 
5711  --
5712   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5713       trace
5714          (p_msg      => 'END of AcctDerRule_38'
5715          ,p_level    => C_LEVEL_PROCEDURE
5716          ,p_module   => l_log_module);
5717   END IF;
5718   x_value_type_code := 'S';
5719   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
5720   RETURN l_output_value;
5721 
5722  ELSIF NVL(p_source_16,'
5723 ') =  'ACCOUNT_SEGMENT_VALUE'
5724  THEN 
5725  --
5726   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5727       trace
5728          (p_msg      => 'END of AcctDerRule_38'
5729          ,p_level    => C_LEVEL_PROCEDURE
5730          ,p_module   => l_log_module);
5731   END IF;
5732   x_value_type_code := 'S';
5733   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_36));
5734   RETURN l_output_value;
5735 
5736  END IF;
5737 --
5738 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5739       trace
5740          (p_msg      => 'END of AcctDerRule_38(invalid)'
5741          ,p_level    => C_LEVEL_PROCEDURE
5742          ,p_module   => l_log_module);
5743 END IF;
5744 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5745 x_value_type_code := null;
5746 l_output_value    := null;
5747 xla_accounting_err_pkg.build_message
5748                  (p_appli_s_name            => 'XLA'
5749                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5750                  ,p_token_1                 => 'COMPONENT_NAME'
5751                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5752                                                             l_component_type
5753                                                           , l_component_code
5754                                                           , l_component_type_code
5755                                                           , l_component_appl_id
5756                                                           , l_amb_context_code
5757                                                           )
5758                  ,p_token_2                 => 'OWNER'
5759                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5760                                                         'XLA_OWNER_TYPE'
5761                                                         ,l_component_type_code
5762                                                         )
5763                  ,p_token_3                 => 'PAD_NAME'
5764                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5765                  ,p_token_4                 => 'PAD_OWNER'
5766                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5767                                                         'XLA_OWNER_TYPE'
5768                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5769                                                         )
5770                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5771                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5772                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5773                  ,p_ae_header_id            => NULL
5774 );
5775 RETURN l_output_value;
5776 EXCEPTION
5777   WHEN xla_exceptions_pkg.application_exception THEN
5778       RAISE;
5779   WHEN OTHERS THEN
5783 --
5780        xla_exceptions_pkg.raise_message
5781            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_38');
5782 END AcctDerRule_38;
5784 
5785 ---------------------------------------
5786 --
5787 -- PRIVATE FUNCTION
5788 --         AcctLineType_39
5789 --
5790 ---------------------------------------
5791 PROCEDURE AcctLineType_39 (
5792   p_application_id        IN NUMBER
5793  ,p_event_id              IN NUMBER
5794  ,p_calculate_acctd_flag  IN VARCHAR2
5795  ,p_calculate_g_l_flag    IN VARCHAR2
5796  ,p_actual_flag           IN OUT VARCHAR2
5797  ,p_balance_type_code     OUT VARCHAR2
5798  ,p_gain_or_loss_ref      OUT VARCHAR2
5799  
5800 --Payment Currency Code
5801  , p_source_12            IN VARCHAR2
5802 --Payment Distribution (Cleared Rate) Ledger Amount
5803  , p_source_22            IN NUMBER
5804 --Invoice Distribution Type
5805  , p_source_32            IN VARCHAR2
5806  , p_source_32_meaning    IN VARCHAR2
5807 --Purchase Order Charge Account
5808  , p_source_40            IN NUMBER
5809 --When to Account for Payment Option
5810  , p_source_50            IN VARCHAR2
5811 --Payment Distribution Type
5812  , p_source_51            IN VARCHAR2
5813  , p_source_51_meaning    IN VARCHAR2
5814 --Accounting Reversal Indicator
5815  , p_source_52            IN VARCHAR2
5816 --Payment Distribution Amount
5817  , p_source_53            IN NUMBER
5818 --Business Flow Accounts Payable Application Identifier
5819  , p_source_54            IN NUMBER
5820 --Business Flow Payment Distribution Type
5821  , p_source_55            IN VARCHAR2
5822 --Business Flow Payment Entity Code
5823  , p_source_56            IN VARCHAR2
5824 --Business Flow Payment Distribution Identifier
5825  , p_source_57            IN NUMBER
5826 --Business Flow Payment Identifier
5827  , p_source_58            IN NUMBER
5828 --Payment Distribution Identifier
5829  , p_source_59            IN NUMBER
5830 --Distribution Link Type
5831  , p_source_60            IN VARCHAR2
5832 --Purchase Order Exchange Rate Date
5833  , p_source_61            IN DATE
5834 --Purchase Order Exchange Rate
5835  , p_source_62            IN NUMBER
5836 --Purchase Order Exchange Rate Type
5837  , p_source_63            IN VARCHAR2
5838 --Override Accounted Amount Indicator
5839  , p_source_64            IN VARCHAR2
5840  , p_source_64_meaning    IN VARCHAR2
5841 --Payment Supplier Identifier
5842  , p_source_65            IN NUMBER
5843 --Payment Supplier Site Identifier
5844  , p_source_66            IN NUMBER
5845 --Third Party Type
5846  , p_source_67            IN VARCHAR2
5847 --Payment Distribution Reversed Identifier
5848  , p_source_68            IN NUMBER
5849 --Invoice Distribution Tax Line Identifier
5850  , p_source_69            IN NUMBER
5851 --Invoice Distribution Summary Tax Line Identifier
5852  , p_source_70            IN NUMBER
5853 )
5854 IS
5855 
5856 l_component_type              VARCHAR2(80);
5857 l_component_code              VARCHAR2(30);
5858 l_component_type_code         VARCHAR2(1);
5859 l_component_appl_id           INTEGER;
5860 l_amb_context_code            VARCHAR2(30);
5861 l_entity_code                 VARCHAR2(30);
5862 l_event_class_code            VARCHAR2(30);
5863 l_ae_header_id                NUMBER;
5864 l_event_type_code             VARCHAR2(30);
5865 l_line_definition_code        VARCHAR2(30);
5866 l_line_definition_owner_code  VARCHAR2(1);
5867 --
5868 -- adr variables
5869 l_segment                     VARCHAR2(30);
5870 l_ccid                        NUMBER;
5871 l_adr_transaction_coa_id      NUMBER;
5872 l_adr_accounting_coa_id       NUMBER;
5873 l_adr_flexfield_segment_code  VARCHAR2(30);
5874 l_adr_flex_value_set_id       NUMBER;
5875 l_adr_value_type_code         VARCHAR2(30);
5876 l_adr_value_combination_id    NUMBER;
5877 l_adr_value_segment_code      VARCHAR2(30);
5878 
5879 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
5880 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
5881 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
5882 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
5883 
5884 -- 4262811 Variables ------------------------------------------------------------------------------------------
5885 l_entered_amt_idx             NUMBER;
5886 l_accted_amt_idx              NUMBER;
5887 l_acc_rev_flag                VARCHAR2(1);
5888 l_accrual_line_num            NUMBER;
5889 l_tmp_amt                     NUMBER;
5890 l_acc_rev_natural_side_code   VARCHAR2(1);
5891 
5892 l_num_entries                 NUMBER;
5893 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
5894 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
5895 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
5896 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
5897 l_recog_line_1                NUMBER;
5898 l_recog_line_2                NUMBER;
5899 
5900 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
5901 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
5902 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
5903 
5904 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5905 
5906 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
5910 
5907 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
5908 
5909 ---------------------------------------------------------------------------------------------------------------
5911 
5912 --
5913 -- bulk performance
5914 --
5915 l_balance_type_code           VARCHAR2(1);
5916 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
5917 l_log_module                  VARCHAR2(240);
5918 
5919 --
5920 -- Upgrade strategy
5921 --
5922 l_actual_upg_option           VARCHAR2(1);
5923 l_enc_upg_option           VARCHAR2(1);
5924 
5925 --
5926 BEGIN
5927 --
5928 IF g_log_enabled THEN
5929       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_39';
5930 END IF;
5931 --
5932 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5933 
5934       trace
5935          (p_msg      => 'BEGIN of AcctLineType_39'
5936          ,p_level    => C_LEVEL_PROCEDURE
5937          ,p_module   => l_log_module);
5938 
5939 END IF;
5940 --
5941 l_component_type             := 'AMB_JLT';
5942 l_component_code             := 'AP_ACCRUAL_CLEAR';
5943 l_component_type_code        := 'S';
5944 l_component_appl_id          :=  200;
5945 l_amb_context_code           := 'DEFAULT';
5946 l_entity_code                := 'AP_PAYMENTS';
5947 l_event_class_code           := 'RECONCILED PAYMENTS';
5948 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
5949 l_line_definition_owner_code := 'S';
5950 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
5951 --
5952 l_balance_type_code          := 'A';
5953 l_segment                     := NULL;
5954 l_ccid                        := NULL;
5955 l_adr_transaction_coa_id      := NULL;
5956 l_adr_accounting_coa_id       := NULL;
5957 l_adr_flexfield_segment_code  := NULL;
5958 l_adr_flex_value_set_id       := NULL;
5959 l_adr_value_type_code         := NULL;
5960 l_adr_value_combination_id    := NULL;
5961 l_adr_value_segment_code      := NULL;
5962 
5963 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
5964 l_bflow_class_code           := '';    -- 4219869 Business Flow
5965 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
5966 l_budgetary_control_flag     := 'N';
5967 
5968 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
5969 l_bflow_applied_to_amt       := NULL; -- 5132302
5970 l_entered_amt_idx            := NULL;          -- 4262811
5971 l_accted_amt_idx             := NULL;          -- 4262811
5972 l_acc_rev_flag               := NULL;          -- 4262811
5973 l_accrual_line_num           := NULL;          -- 4262811
5974 l_tmp_amt                    := NULL;          -- 4262811
5975 --
5976  
5977 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5978     l_balance_type_code <> 'B' THEN
5979 IF NVL(p_source_50,'
5980 ') =  'CLEAR_CLEAR' AND 
5981 (NVL(p_source_32,'
5982 ') =  'ACCRUAL' OR 
5983 NVL(p_source_32,'
5984 ') =  'RETROACCRUAL') AND 
5985 (NVL(p_source_51,'
5986 ') =  'CASH' OR 
5987 NVL(p_source_51,'
5988 ') =  'AWT' OR 
5989 NVL(p_source_51,'
5990 ') =  'DISCOUNT')
5991  THEN 
5992 
5993    --
5994    XLA_AE_LINES_PKG.SetNewLine;
5995 
5996    p_balance_type_code          := l_balance_type_code;
5997    -- set the flag so later we will know whether the gain loss line needs to be created
5998    
5999    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6000      p_actual_flag :='A';
6001    END IF;
6002 
6003    --
6004    -- bulk performance
6005    --
6006    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6007                                       p_header_num   => 0); -- 4262811
6008    --
6009    -- set accounting line options
6010    --
6011    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6012            p_natural_side_code          => 'D'
6013          , p_gain_or_loss_flag          => 'N'
6014          , p_gl_transfer_mode_code      => 'S'
6015          , p_acct_entry_type_code       => 'A'
6016          , p_switch_side_flag           => 'Y'
6017          , p_merge_duplicate_code       => 'A'
6018          );
6019    --
6020    l_acc_rev_natural_side_code := 'C';  -- 4262811
6021    -- 
6022    --
6023    -- set accounting line type info
6024    --
6025    xla_ae_lines_pkg.SetAcctLineType
6026       (p_component_type             => l_component_type
6027       ,p_event_type_code            => l_event_type_code
6028       ,p_line_definition_owner_code => l_line_definition_owner_code
6029       ,p_line_definition_code       => l_line_definition_code
6030       ,p_accounting_line_code       => l_component_code
6031       ,p_accounting_line_type_code  => l_component_type_code
6032       ,p_accounting_line_appl_id    => l_component_appl_id
6033       ,p_amb_context_code           => l_amb_context_code
6034       ,p_entity_code                => l_entity_code
6035       ,p_event_class_code           => l_event_class_code);
6036    --
6037    -- set accounting class
6038    --
6039    xla_ae_lines_pkg.SetAcctClass(
6040            p_accounting_class_code  => 'ACCRUAL'
6041          , p_ae_header_id           => l_ae_header_id
6042          );
6043 
6044    --
6045    -- set rounding class
6046    --
6047    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6048                       'ACCRUAL';
6049 
6050    --
6051    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6055    --
6052    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6053    --
6054    -- bulk performance
6056    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6057 
6058    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6059       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6060 
6061    -- 4955764
6062    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6063       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6064 
6065    -- 4458381 Public Sector Enh
6066    
6067    --
6068    -- set accounting attributes for the line type
6069    --
6070    l_entered_amt_idx := 10;
6071    l_accted_amt_idx  := 15;
6072    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
6073    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6074    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
6075    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
6076    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
6077    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
6078    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
6079    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6080    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
6081    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
6082    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
6083    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
6084    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
6085    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6086    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
6087    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
6088    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
6089    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
6090    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
6091    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
6092    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
6093    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
6094    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
6095    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
6096    l_rec_acct_attrs.array_date_value(12)  := p_source_61;
6097    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
6098    l_rec_acct_attrs.array_num_value(13)  := p_source_62;
6099    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
6100    l_rec_acct_attrs.array_char_value(14)  := p_source_63;
6101    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
6102    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
6103    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
6104    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
6105    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
6106    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
6107    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
6108    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
6109    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
6110    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
6111    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
6112    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
6113    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
6114    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
6115    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
6116    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
6117    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
6118    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
6119    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
6120    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
6121 
6122    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6123    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6124 
6125    ---------------------------------------------------------------------------------------------------------------
6126    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6127    ---------------------------------------------------------------------------------------------------------------
6128    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6129 
6130    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6131    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6132 
6133    IF xla_accounting_cache_pkg.GetValueChar
6134          (p_source_code         => 'LEDGER_CATEGORY_CODE'
6135          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6136    AND l_bflow_method_code = 'PRIOR_ENTRY'
6137 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6138    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6139          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6140        )
6141    THEN
6142          xla_ae_lines_pkg.BflowUpgEntry
6143            (p_business_method_code    => l_bflow_method_code
6144            ,p_business_class_code     => l_bflow_class_code
6145            ,p_balance_type            => l_balance_type_code);
6146    ELSE
6147       NULL;
6148 -- No business flow processing for business flow method of NONE.
6149    END IF;
6153    --
6150 
6151    --
6152    -- call analytical criteria
6154    
6155    --
6156    -- call description
6157    --
6158    -- No description or it is inherited.
6159    --
6160    -- call ADRs
6161    -- Bug 4922099
6162    --
6163    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6164         (NVL(l_actual_upg_option, 'N') = 'O') OR
6165         (NVL(l_enc_upg_option, 'N') = 'O')
6166       )
6167    THEN
6168    NULL;
6169    --
6170    --
6171    
6172   l_ccid := AcctDerRule_31(
6173            p_application_id           => p_application_id
6174          , p_ae_header_id             => l_ae_header_id 
6175 , p_source_40 => p_source_40
6176          , x_transaction_coa_id       => l_adr_transaction_coa_id
6177          , x_accounting_coa_id        => l_adr_accounting_coa_id
6178          , x_value_type_code          => l_adr_value_type_code
6179          , p_side                     => 'NA'
6180    );
6181 
6182    xla_ae_lines_pkg.set_ccid(
6183     p_code_combination_id          => l_ccid
6184   , p_value_type_code              => l_adr_value_type_code
6185   , p_transaction_coa_id           => l_adr_transaction_coa_id
6186   , p_accounting_coa_id            => l_adr_accounting_coa_id
6187   , p_adr_code                     => 'AP_PO_CHARGE_ACCT'
6188   , p_adr_type_code                => 'S'
6189   , p_component_type               => l_component_type
6190   , p_component_code               => l_component_code
6191   , p_component_type_code          => l_component_type_code
6192   , p_component_appl_id            => l_component_appl_id
6193   , p_amb_context_code             => l_amb_context_code
6194   , p_side                         => 'NA'
6195   );
6196 
6197 
6198    --
6199    --
6200    END IF;
6201    --
6202    -- Bug 4922099
6203    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6204           (NVL(l_enc_upg_option, 'N') = 'O')
6205         ) AND
6206         (l_bflow_method_code = 'PRIOR_ENTRY')
6207       )
6208    THEN
6209       IF
6210       --
6211       1 = 2
6212       --
6213       THEN
6214       xla_accounting_err_pkg.build_message
6215                                     (p_appli_s_name            => 'XLA'
6216                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6217                                     ,p_token_1                 => 'LINE_NUMBER'
6218                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
6219                                     ,p_token_2                 => 'LINE_TYPE_NAME'
6220                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
6221                                                                              l_component_type
6222                                                                             ,l_component_code
6223                                                                             ,l_component_type_code
6224                                                                             ,l_component_appl_id
6225                                                                             ,l_amb_context_code
6226                                                                             ,l_entity_code
6227                                                                             ,l_event_class_code
6228                                                                            )
6229                                     ,p_token_3                 => 'OWNER'
6230                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
6231                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
6232                                                                           ,p_lookup_code    => l_component_type_code
6233                                                                          )
6234                                     ,p_token_4                 => 'PRODUCT_NAME'
6235                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6236                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6237                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6238                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6239                                     ,p_ae_header_id            =>  NULL
6240                                        );
6241 
6242         IF (C_LEVEL_ERROR>= g_log_level) THEN
6243                  trace
6244                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6245                       ,p_level    => C_LEVEL_ERROR
6246                       ,p_module   => l_log_module);
6247         END IF;
6248       END IF;
6249    END IF;
6250    --
6251    --
6252    ------------------------------------------------------------------------------------------------
6253    -- 4219869 Business Flow
6254    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6255    -- Prior Entry.  Currently, the following code is always generated.
6256    ------------------------------------------------------------------------------------------------
6257    XLA_AE_LINES_PKG.ValidateCurrentLine;
6258 
6259    ------------------------------------------------------------------------------------
6260    -- 4219869 Business Flow
6264 
6261    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6262    ------------------------------------------------------------------------------------
6263    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6265    ----------------------------------------------------------------------------------
6266    -- 4219869 Business Flow
6267    -- Update journal entry status -- Need to generate this within IF <condition>
6268    ----------------------------------------------------------------------------------
6269    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6270          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6271          ,p_balance_type_code => l_balance_type_code
6272          );
6273 
6274    -------------------------------------------------------------------------------------------
6275    -- 4262811 - Generate the Accrual Reversal lines
6276    -------------------------------------------------------------------------------------------
6277    BEGIN
6278       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6279                               (g_array_event(p_event_id).array_value_num('header_index'));
6280       IF l_acc_rev_flag IS NULL THEN
6281          l_acc_rev_flag := 'N';
6282       END IF;
6283    EXCEPTION
6284       WHEN OTHERS THEN
6285          l_acc_rev_flag := 'N';
6286    END;
6287    --
6288    IF (l_acc_rev_flag = 'Y') THEN
6289 
6290        -- 4645092  ------------------------------------------------------------------------------
6291        -- To allow MPA report to determine if it should generate report process
6292        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6293        ------------------------------------------------------------------------------------------
6294 
6295        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6296        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6297    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
6298    -- call ADRs
6299    -- Bug 4922099
6300    --
6301    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6302         (NVL(l_actual_upg_option, 'N') = 'O') OR
6303         (NVL(l_enc_upg_option, 'N') = 'O')
6304       )
6305    THEN
6306    NULL;
6307    --
6308    --
6309    
6310   l_ccid := AcctDerRule_31(
6311            p_application_id           => p_application_id
6312          , p_ae_header_id             => l_ae_header_id 
6313 , p_source_40 => p_source_40
6314          , x_transaction_coa_id       => l_adr_transaction_coa_id
6315          , x_accounting_coa_id        => l_adr_accounting_coa_id
6316          , x_value_type_code          => l_adr_value_type_code
6317          , p_side                     => 'NA'
6318    );
6319 
6320    xla_ae_lines_pkg.set_ccid(
6321     p_code_combination_id          => l_ccid
6322   , p_value_type_code              => l_adr_value_type_code
6323   , p_transaction_coa_id           => l_adr_transaction_coa_id
6324   , p_accounting_coa_id            => l_adr_accounting_coa_id
6325   , p_adr_code                     => 'AP_PO_CHARGE_ACCT'
6326   , p_adr_type_code                => 'S'
6327   , p_component_type               => l_component_type
6328   , p_component_code               => l_component_code
6329   , p_component_type_code          => l_component_type_code
6330   , p_component_appl_id            => l_component_appl_id
6331   , p_amb_context_code             => l_amb_context_code
6332   , p_side                         => 'NA'
6333   );
6334 
6335 
6336    --
6337    --
6338    END IF;
6339 
6340        --
6341        -- Update the line information that should be overwritten
6342        --
6343        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6344                                          p_header_num   => 1);
6345        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
6346 
6347        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6348 
6349        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
6350           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6351        END IF;
6352 
6353       --
6354       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6355       --
6356       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6357           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
6358       ELSE
6359           ---------------------------------------------------------------------------------------------------
6360           -- 4262811a Switch Sign
6361           ---------------------------------------------------------------------------------------------------
6362           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
6363           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6364                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6365           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6366                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6367           -- 5132302
6368           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6369                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6373       -- 4955764
6370 
6371       END IF;
6372 
6374       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6375       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6376 
6377 
6378       XLA_AE_LINES_PKG.ValidateCurrentLine;
6379       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6380 
6381       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6382                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6383                ,p_balance_type_code => l_balance_type_code);
6384 
6385    END IF;
6386 
6387    -----------------------------------------------------------------------------------------
6388    -- 4262811 Multiperiod Accounting
6389    -----------------------------------------------------------------------------------------
6390      -- No MPA option is assigned.
6391 
6392 
6393 END IF;
6394 END IF;
6395 --
6396 
6397 --
6398 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6399    trace
6400       (p_msg      => 'END of AcctLineType_39'
6401       ,p_level    => C_LEVEL_PROCEDURE
6402       ,p_module   => l_log_module);
6403 END IF;
6404 --
6405 EXCEPTION
6406   WHEN xla_exceptions_pkg.application_exception THEN
6407       RAISE;
6408   WHEN OTHERS THEN
6409        xla_exceptions_pkg.raise_message
6410            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_39');
6411 END AcctLineType_39;
6412 --
6413 
6414 ---------------------------------------
6415 --
6416 -- PRIVATE FUNCTION
6417 --         AcctLineType_40
6418 --
6419 ---------------------------------------
6420 PROCEDURE AcctLineType_40 (
6421   p_application_id        IN NUMBER
6422  ,p_event_id              IN NUMBER
6423  ,p_calculate_acctd_flag  IN VARCHAR2
6424  ,p_calculate_g_l_flag    IN VARCHAR2
6425  ,p_actual_flag           IN OUT VARCHAR2
6426  ,p_balance_type_code     OUT VARCHAR2
6427  ,p_gain_or_loss_ref      OUT VARCHAR2
6428  
6429 --Payment Currency Code
6430  , p_source_12            IN VARCHAR2
6431 --Payment Distribution (Payment Rate) Ledger Amount
6432  , p_source_21            IN NUMBER
6433 --Invoice Distribution Type
6434  , p_source_32            IN VARCHAR2
6435  , p_source_32_meaning    IN VARCHAR2
6436 --Purchase Order Charge Account
6437  , p_source_40            IN NUMBER
6438 --When to Account for Payment Option
6439  , p_source_50            IN VARCHAR2
6440 --Payment Distribution Type
6441  , p_source_51            IN VARCHAR2
6442  , p_source_51_meaning    IN VARCHAR2
6443 --Accounting Reversal Indicator
6444  , p_source_52            IN VARCHAR2
6445 --Payment Distribution Amount
6446  , p_source_53            IN NUMBER
6447 --Business Flow Accounts Payable Application Identifier
6448  , p_source_54            IN NUMBER
6449 --Payment Distribution Identifier
6450  , p_source_59            IN NUMBER
6451 --Distribution Link Type
6452  , p_source_60            IN VARCHAR2
6453 --Purchase Order Exchange Rate Date
6454  , p_source_61            IN DATE
6455 --Purchase Order Exchange Rate
6456  , p_source_62            IN NUMBER
6457 --Purchase Order Exchange Rate Type
6458  , p_source_63            IN VARCHAR2
6459 --Override Accounted Amount Indicator
6460  , p_source_64            IN VARCHAR2
6461  , p_source_64_meaning    IN VARCHAR2
6462 --Payment Supplier Identifier
6463  , p_source_65            IN NUMBER
6464 --Payment Supplier Site Identifier
6465  , p_source_66            IN NUMBER
6466 --Third Party Type
6467  , p_source_67            IN VARCHAR2
6468 --Payment Distribution Reversed Identifier
6469  , p_source_68            IN NUMBER
6470 --Invoice Distribution Tax Line Identifier
6471  , p_source_69            IN NUMBER
6472 --Invoice Distribution Summary Tax Line Identifier
6473  , p_source_70            IN NUMBER
6474 --Payment Type
6475  , p_source_71            IN VARCHAR2
6476  , p_source_71_meaning    IN VARCHAR2
6477 --Invoice Distribution Amount of the Payment Distribution
6478  , p_source_72            IN NUMBER
6479 --Business Flow Invoice Distribution Type
6480  , p_source_73            IN VARCHAR2
6481 --Business Flow Invoice Entity Code
6482  , p_source_74            IN VARCHAR2
6483 --Business Flow Invoice Distribution Identifier
6484  , p_source_75            IN NUMBER
6485 --Business Flow Invoice Identifier
6486  , p_source_76            IN NUMBER
6487 --Invoice Distribution Tax Distribution Identifier from Tax
6488  , p_source_77            IN NUMBER
6489 )
6490 IS
6491 
6492 l_component_type              VARCHAR2(80);
6493 l_component_code              VARCHAR2(30);
6494 l_component_type_code         VARCHAR2(1);
6495 l_component_appl_id           INTEGER;
6496 l_amb_context_code            VARCHAR2(30);
6497 l_entity_code                 VARCHAR2(30);
6498 l_event_class_code            VARCHAR2(30);
6499 l_ae_header_id                NUMBER;
6500 l_event_type_code             VARCHAR2(30);
6501 l_line_definition_code        VARCHAR2(30);
6502 l_line_definition_owner_code  VARCHAR2(1);
6503 --
6504 -- adr variables
6505 l_segment                     VARCHAR2(30);
6506 l_ccid                        NUMBER;
6507 l_adr_transaction_coa_id      NUMBER;
6508 l_adr_accounting_coa_id       NUMBER;
6509 l_adr_flexfield_segment_code  VARCHAR2(30);
6510 l_adr_flex_value_set_id       NUMBER;
6514 
6511 l_adr_value_type_code         VARCHAR2(30);
6512 l_adr_value_combination_id    NUMBER;
6513 l_adr_value_segment_code      VARCHAR2(30);
6515 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
6516 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
6517 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
6518 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
6519 
6520 -- 4262811 Variables ------------------------------------------------------------------------------------------
6521 l_entered_amt_idx             NUMBER;
6522 l_accted_amt_idx              NUMBER;
6523 l_acc_rev_flag                VARCHAR2(1);
6524 l_accrual_line_num            NUMBER;
6525 l_tmp_amt                     NUMBER;
6526 l_acc_rev_natural_side_code   VARCHAR2(1);
6527 
6528 l_num_entries                 NUMBER;
6529 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
6530 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
6531 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
6532 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
6533 l_recog_line_1                NUMBER;
6534 l_recog_line_2                NUMBER;
6535 
6536 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
6537 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
6538 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
6539 
6540 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6541 
6542 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
6543 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
6544 
6545 ---------------------------------------------------------------------------------------------------------------
6546 
6547 
6548 --
6549 -- bulk performance
6550 --
6551 l_balance_type_code           VARCHAR2(1);
6552 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
6553 l_log_module                  VARCHAR2(240);
6554 
6555 --
6556 -- Upgrade strategy
6557 --
6558 l_actual_upg_option           VARCHAR2(1);
6559 l_enc_upg_option           VARCHAR2(1);
6560 
6561 --
6562 BEGIN
6563 --
6564 IF g_log_enabled THEN
6565       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_40';
6566 END IF;
6567 --
6568 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6569 
6570       trace
6571          (p_msg      => 'BEGIN of AcctLineType_40'
6572          ,p_level    => C_LEVEL_PROCEDURE
6573          ,p_module   => l_log_module);
6574 
6575 END IF;
6576 --
6577 l_component_type             := 'AMB_JLT';
6578 l_component_code             := 'AP_ACCRUAL_PMT';
6579 l_component_type_code        := 'S';
6580 l_component_appl_id          :=  200;
6581 l_amb_context_code           := 'DEFAULT';
6582 l_entity_code                := 'AP_PAYMENTS';
6583 l_event_class_code           := 'PAYMENTS';
6584 l_event_type_code            := 'PAYMENTS_ALL';
6585 l_line_definition_owner_code := 'S';
6586 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
6587 --
6588 l_balance_type_code          := 'A';
6589 l_segment                     := NULL;
6590 l_ccid                        := NULL;
6591 l_adr_transaction_coa_id      := NULL;
6592 l_adr_accounting_coa_id       := NULL;
6593 l_adr_flexfield_segment_code  := NULL;
6594 l_adr_flex_value_set_id       := NULL;
6595 l_adr_value_type_code         := NULL;
6596 l_adr_value_combination_id    := NULL;
6597 l_adr_value_segment_code      := NULL;
6598 
6599 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
6600 l_bflow_class_code           := '';    -- 4219869 Business Flow
6601 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
6602 l_budgetary_control_flag     := 'N';
6603 
6604 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
6605 l_bflow_applied_to_amt       := NULL; -- 5132302
6606 l_entered_amt_idx            := NULL;          -- 4262811
6607 l_accted_amt_idx             := NULL;          -- 4262811
6608 l_acc_rev_flag               := NULL;          -- 4262811
6609 l_accrual_line_num           := NULL;          -- 4262811
6610 l_tmp_amt                    := NULL;          -- 4262811
6611 --
6612  
6613 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6614     l_balance_type_code <> 'B' THEN
6615 IF NVL(p_source_50,'
6616 ') <>  'CLEAR_CLEAR' AND 
6617 (NVL(p_source_32,'
6618 ') =  'ACCRUAL' OR 
6619 NVL(p_source_32,'
6620 ') =  'RETROACCRUAL') AND 
6621 (NVL(p_source_51,'
6622 ') =  'CASH' OR 
6623 NVL(p_source_51,'
6624 ') =  'AWT' OR 
6625 NVL(p_source_51,'
6626 ') =  'DISCOUNT') AND 
6627 NVL(p_source_71,'
6628 ') <>  'R'
6629  THEN 
6630 
6631    --
6632    XLA_AE_LINES_PKG.SetNewLine;
6633 
6634    p_balance_type_code          := l_balance_type_code;
6635    -- set the flag so later we will know whether the gain loss line needs to be created
6636    
6637    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6638      p_actual_flag :='A';
6639    END IF;
6640 
6641    --
6642    -- bulk performance
6643    --
6644    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6648    --
6645                                       p_header_num   => 0); -- 4262811
6646    --
6647    -- set accounting line options
6649    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6650            p_natural_side_code          => 'D'
6651          , p_gain_or_loss_flag          => 'N'
6652          , p_gl_transfer_mode_code      => 'S'
6653          , p_acct_entry_type_code       => 'A'
6654          , p_switch_side_flag           => 'Y'
6655          , p_merge_duplicate_code       => 'A'
6656          );
6657    --
6658    l_acc_rev_natural_side_code := 'C';  -- 4262811
6659    -- 
6660    --
6661    -- set accounting line type info
6662    --
6663    xla_ae_lines_pkg.SetAcctLineType
6664       (p_component_type             => l_component_type
6665       ,p_event_type_code            => l_event_type_code
6666       ,p_line_definition_owner_code => l_line_definition_owner_code
6667       ,p_line_definition_code       => l_line_definition_code
6668       ,p_accounting_line_code       => l_component_code
6669       ,p_accounting_line_type_code  => l_component_type_code
6670       ,p_accounting_line_appl_id    => l_component_appl_id
6671       ,p_amb_context_code           => l_amb_context_code
6672       ,p_entity_code                => l_entity_code
6673       ,p_event_class_code           => l_event_class_code);
6674    --
6675    -- set accounting class
6676    --
6677    xla_ae_lines_pkg.SetAcctClass(
6678            p_accounting_class_code  => 'ACCRUAL'
6679          , p_ae_header_id           => l_ae_header_id
6680          );
6681 
6682    --
6683    -- set rounding class
6684    --
6685    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6686                       'ACCRUAL';
6687 
6688    --
6689    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6690    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6691    --
6692    -- bulk performance
6693    --
6694    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6695 
6696    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6697       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6698 
6699    -- 4955764
6700    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6701       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6702 
6703    -- 4458381 Public Sector Enh
6704    
6705    --
6706    -- set accounting attributes for the line type
6707    --
6708    l_entered_amt_idx := 10;
6709    l_accted_amt_idx  := 15;
6710    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
6711    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6712    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
6713    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
6714    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
6715    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
6716    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
6717    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6718    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
6719    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
6720    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
6721    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
6722    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
6723    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6724    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
6725    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
6726    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
6727    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
6728    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
6729    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
6730    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
6731    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
6732    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
6733    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
6734    l_rec_acct_attrs.array_date_value(12)  := p_source_61;
6735    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
6736    l_rec_acct_attrs.array_num_value(13)  := p_source_62;
6737    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
6738    l_rec_acct_attrs.array_char_value(14)  := p_source_63;
6739    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
6740    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
6741    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
6742    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
6743    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
6744    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
6745    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
6746    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
6747    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
6748    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
6749    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
6750    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
6751    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
6755    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
6752    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
6753    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
6754    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
6756    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
6757    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
6758    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
6759 
6760    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6761    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6762 
6763    ---------------------------------------------------------------------------------------------------------------
6764    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6765    ---------------------------------------------------------------------------------------------------------------
6766    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6767 
6768    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6769    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6770 
6771    IF xla_accounting_cache_pkg.GetValueChar
6772          (p_source_code         => 'LEDGER_CATEGORY_CODE'
6773          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6774    AND l_bflow_method_code = 'PRIOR_ENTRY'
6775 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6776    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6777          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6778        )
6779    THEN
6780          xla_ae_lines_pkg.BflowUpgEntry
6781            (p_business_method_code    => l_bflow_method_code
6782            ,p_business_class_code     => l_bflow_class_code
6783            ,p_balance_type            => l_balance_type_code);
6784    ELSE
6785       NULL;
6786 -- No business flow processing for business flow method of NONE.
6787    END IF;
6788 
6789    --
6790    -- call analytical criteria
6791    --
6792    
6793    --
6794    -- call description
6795    --
6796    -- No description or it is inherited.
6797    --
6798    -- call ADRs
6799    -- Bug 4922099
6800    --
6801    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6802         (NVL(l_actual_upg_option, 'N') = 'O') OR
6803         (NVL(l_enc_upg_option, 'N') = 'O')
6804       )
6805    THEN
6806    NULL;
6807    --
6808    --
6809    
6810   l_ccid := AcctDerRule_31(
6811            p_application_id           => p_application_id
6812          , p_ae_header_id             => l_ae_header_id 
6813 , p_source_40 => p_source_40
6814          , x_transaction_coa_id       => l_adr_transaction_coa_id
6815          , x_accounting_coa_id        => l_adr_accounting_coa_id
6816          , x_value_type_code          => l_adr_value_type_code
6817          , p_side                     => 'NA'
6818    );
6819 
6820    xla_ae_lines_pkg.set_ccid(
6821     p_code_combination_id          => l_ccid
6822   , p_value_type_code              => l_adr_value_type_code
6823   , p_transaction_coa_id           => l_adr_transaction_coa_id
6824   , p_accounting_coa_id            => l_adr_accounting_coa_id
6825   , p_adr_code                     => 'AP_PO_CHARGE_ACCT'
6826   , p_adr_type_code                => 'S'
6827   , p_component_type               => l_component_type
6828   , p_component_code               => l_component_code
6829   , p_component_type_code          => l_component_type_code
6830   , p_component_appl_id            => l_component_appl_id
6831   , p_amb_context_code             => l_amb_context_code
6832   , p_side                         => 'NA'
6833   );
6834 
6835 
6836    --
6837    --
6838    END IF;
6839    --
6840    -- Bug 4922099
6841    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6842           (NVL(l_enc_upg_option, 'N') = 'O')
6843         ) AND
6844         (l_bflow_method_code = 'PRIOR_ENTRY')
6845       )
6846    THEN
6847       IF
6848       --
6849       1 = 2
6850       --
6851       THEN
6852       xla_accounting_err_pkg.build_message
6853                                     (p_appli_s_name            => 'XLA'
6854                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6855                                     ,p_token_1                 => 'LINE_NUMBER'
6856                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
6857                                     ,p_token_2                 => 'LINE_TYPE_NAME'
6858                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
6859                                                                              l_component_type
6860                                                                             ,l_component_code
6861                                                                             ,l_component_type_code
6862                                                                             ,l_component_appl_id
6863                                                                             ,l_amb_context_code
6864                                                                             ,l_entity_code
6865                                                                             ,l_event_class_code
6869                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
6866                                                                            )
6867                                     ,p_token_3                 => 'OWNER'
6868                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
6870                                                                           ,p_lookup_code    => l_component_type_code
6871                                                                          )
6872                                     ,p_token_4                 => 'PRODUCT_NAME'
6873                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6874                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6875                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6876                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6877                                     ,p_ae_header_id            =>  NULL
6878                                        );
6879 
6880         IF (C_LEVEL_ERROR>= g_log_level) THEN
6881                  trace
6882                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6883                       ,p_level    => C_LEVEL_ERROR
6884                       ,p_module   => l_log_module);
6885         END IF;
6886       END IF;
6887    END IF;
6888    --
6889    --
6890    ------------------------------------------------------------------------------------------------
6891    -- 4219869 Business Flow
6892    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6893    -- Prior Entry.  Currently, the following code is always generated.
6894    ------------------------------------------------------------------------------------------------
6895    XLA_AE_LINES_PKG.ValidateCurrentLine;
6896 
6897    ------------------------------------------------------------------------------------
6898    -- 4219869 Business Flow
6899    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6900    ------------------------------------------------------------------------------------
6901    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6902 
6903    ----------------------------------------------------------------------------------
6904    -- 4219869 Business Flow
6905    -- Update journal entry status -- Need to generate this within IF <condition>
6906    ----------------------------------------------------------------------------------
6907    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6908          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6909          ,p_balance_type_code => l_balance_type_code
6910          );
6911 
6912    -------------------------------------------------------------------------------------------
6913    -- 4262811 - Generate the Accrual Reversal lines
6914    -------------------------------------------------------------------------------------------
6915    BEGIN
6916       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6917                               (g_array_event(p_event_id).array_value_num('header_index'));
6918       IF l_acc_rev_flag IS NULL THEN
6919          l_acc_rev_flag := 'N';
6920       END IF;
6921    EXCEPTION
6922       WHEN OTHERS THEN
6923          l_acc_rev_flag := 'N';
6924    END;
6925    --
6926    IF (l_acc_rev_flag = 'Y') THEN
6927 
6928        -- 4645092  ------------------------------------------------------------------------------
6929        -- To allow MPA report to determine if it should generate report process
6930        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6931        ------------------------------------------------------------------------------------------
6932 
6933        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6934        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6935    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
6936    -- call ADRs
6937    -- Bug 4922099
6938    --
6939    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6940         (NVL(l_actual_upg_option, 'N') = 'O') OR
6941         (NVL(l_enc_upg_option, 'N') = 'O')
6942       )
6943    THEN
6944    NULL;
6945    --
6946    --
6947    
6948   l_ccid := AcctDerRule_31(
6949            p_application_id           => p_application_id
6950          , p_ae_header_id             => l_ae_header_id 
6951 , p_source_40 => p_source_40
6952          , x_transaction_coa_id       => l_adr_transaction_coa_id
6953          , x_accounting_coa_id        => l_adr_accounting_coa_id
6954          , x_value_type_code          => l_adr_value_type_code
6955          , p_side                     => 'NA'
6956    );
6957 
6958    xla_ae_lines_pkg.set_ccid(
6959     p_code_combination_id          => l_ccid
6960   , p_value_type_code              => l_adr_value_type_code
6961   , p_transaction_coa_id           => l_adr_transaction_coa_id
6962   , p_accounting_coa_id            => l_adr_accounting_coa_id
6963   , p_adr_code                     => 'AP_PO_CHARGE_ACCT'
6964   , p_adr_type_code                => 'S'
6965   , p_component_type               => l_component_type
6966   , p_component_code               => l_component_code
6967   , p_component_type_code          => l_component_type_code
6971   );
6968   , p_component_appl_id            => l_component_appl_id
6969   , p_amb_context_code             => l_amb_context_code
6970   , p_side                         => 'NA'
6972 
6973 
6974    --
6975    --
6976    END IF;
6977 
6978        --
6979        -- Update the line information that should be overwritten
6980        --
6981        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6982                                          p_header_num   => 1);
6983        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
6984 
6985        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6986 
6987        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
6988           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6989        END IF;
6990 
6991       --
6992       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6993       --
6994       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6995           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
6996       ELSE
6997           ---------------------------------------------------------------------------------------------------
6998           -- 4262811a Switch Sign
6999           ---------------------------------------------------------------------------------------------------
7000           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
7001           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7002                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7003           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7004                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7005           -- 5132302
7006           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7007                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7008 
7009       END IF;
7010 
7011       -- 4955764
7012       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7013       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7014 
7015 
7016       XLA_AE_LINES_PKG.ValidateCurrentLine;
7017       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7018 
7019       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7020                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7021                ,p_balance_type_code => l_balance_type_code);
7022 
7023    END IF;
7024 
7025    -----------------------------------------------------------------------------------------
7026    -- 4262811 Multiperiod Accounting
7027    -----------------------------------------------------------------------------------------
7028      -- No MPA option is assigned.
7029 
7030 
7031 END IF;
7032 END IF;
7033 --
7034 
7035 --
7036 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7037    trace
7038       (p_msg      => 'END of AcctLineType_40'
7039       ,p_level    => C_LEVEL_PROCEDURE
7040       ,p_module   => l_log_module);
7041 END IF;
7042 --
7043 EXCEPTION
7044   WHEN xla_exceptions_pkg.application_exception THEN
7045       RAISE;
7046   WHEN OTHERS THEN
7047        xla_exceptions_pkg.raise_message
7048            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_40');
7049 END AcctLineType_40;
7050 --
7051 
7052 ---------------------------------------
7053 --
7054 -- PRIVATE FUNCTION
7055 --         AcctLineType_41
7056 --
7057 ---------------------------------------
7058 PROCEDURE AcctLineType_41 (
7059   p_application_id        IN NUMBER
7060  ,p_event_id              IN NUMBER
7061  ,p_calculate_acctd_flag  IN VARCHAR2
7062  ,p_calculate_g_l_flag    IN VARCHAR2
7063  ,p_actual_flag           IN OUT VARCHAR2
7064  ,p_balance_type_code     OUT VARCHAR2
7065  ,p_gain_or_loss_ref      OUT VARCHAR2
7066  
7067 --Payment Currency Code
7068  , p_source_12            IN VARCHAR2
7069 --Payment Distribution (Payment Rate) Ledger Amount
7070  , p_source_21            IN NUMBER
7071 --Invoice Distribution Type
7072  , p_source_32            IN VARCHAR2
7073  , p_source_32_meaning    IN VARCHAR2
7074 --Purchase Order Charge Account
7075  , p_source_40            IN NUMBER
7076 --When to Account for Payment Option
7077  , p_source_50            IN VARCHAR2
7078 --Payment Distribution Type
7079  , p_source_51            IN VARCHAR2
7080  , p_source_51_meaning    IN VARCHAR2
7081 --Accounting Reversal Indicator
7082  , p_source_52            IN VARCHAR2
7083 --Payment Distribution Amount
7084  , p_source_53            IN NUMBER
7085 --Business Flow Accounts Payable Application Identifier
7086  , p_source_54            IN NUMBER
7087 --Payment Distribution Identifier
7088  , p_source_59            IN NUMBER
7089 --Distribution Link Type
7090  , p_source_60            IN VARCHAR2
7091 --Purchase Order Exchange Rate Date
7092  , p_source_61            IN DATE
7093 --Purchase Order Exchange Rate
7097 --Override Accounted Amount Indicator
7094  , p_source_62            IN NUMBER
7095 --Purchase Order Exchange Rate Type
7096  , p_source_63            IN VARCHAR2
7098  , p_source_64            IN VARCHAR2
7099  , p_source_64_meaning    IN VARCHAR2
7100 --Payment Supplier Identifier
7101  , p_source_65            IN NUMBER
7102 --Payment Supplier Site Identifier
7103  , p_source_66            IN NUMBER
7104 --Third Party Type
7105  , p_source_67            IN VARCHAR2
7106 --Payment Distribution Reversed Identifier
7107  , p_source_68            IN NUMBER
7108 --Invoice Distribution Tax Line Identifier
7109  , p_source_69            IN NUMBER
7110 --Invoice Distribution Summary Tax Line Identifier
7111  , p_source_70            IN NUMBER
7112 --Payment Type
7113  , p_source_71            IN VARCHAR2
7114  , p_source_71_meaning    IN VARCHAR2
7115 --Business Flow Invoice Distribution Type
7116  , p_source_73            IN VARCHAR2
7117 --Business Flow Invoice Entity Code
7118  , p_source_74            IN VARCHAR2
7119 --Business Flow Invoice Distribution Identifier
7120  , p_source_75            IN NUMBER
7121 --Business Flow Invoice Identifier
7122  , p_source_76            IN NUMBER
7123 --Invoice Distribution Tax Distribution Identifier from Tax
7124  , p_source_77            IN NUMBER
7125 )
7126 IS
7127 
7128 l_component_type              VARCHAR2(80);
7129 l_component_code              VARCHAR2(30);
7130 l_component_type_code         VARCHAR2(1);
7131 l_component_appl_id           INTEGER;
7132 l_amb_context_code            VARCHAR2(30);
7133 l_entity_code                 VARCHAR2(30);
7134 l_event_class_code            VARCHAR2(30);
7135 l_ae_header_id                NUMBER;
7136 l_event_type_code             VARCHAR2(30);
7137 l_line_definition_code        VARCHAR2(30);
7138 l_line_definition_owner_code  VARCHAR2(1);
7139 --
7140 -- adr variables
7141 l_segment                     VARCHAR2(30);
7142 l_ccid                        NUMBER;
7143 l_adr_transaction_coa_id      NUMBER;
7144 l_adr_accounting_coa_id       NUMBER;
7145 l_adr_flexfield_segment_code  VARCHAR2(30);
7146 l_adr_flex_value_set_id       NUMBER;
7147 l_adr_value_type_code         VARCHAR2(30);
7148 l_adr_value_combination_id    NUMBER;
7149 l_adr_value_segment_code      VARCHAR2(30);
7150 
7151 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
7152 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
7153 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
7154 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
7155 
7156 -- 4262811 Variables ------------------------------------------------------------------------------------------
7157 l_entered_amt_idx             NUMBER;
7158 l_accted_amt_idx              NUMBER;
7159 l_acc_rev_flag                VARCHAR2(1);
7160 l_accrual_line_num            NUMBER;
7161 l_tmp_amt                     NUMBER;
7162 l_acc_rev_natural_side_code   VARCHAR2(1);
7163 
7164 l_num_entries                 NUMBER;
7165 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
7166 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
7167 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
7168 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
7169 l_recog_line_1                NUMBER;
7170 l_recog_line_2                NUMBER;
7171 
7172 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
7173 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
7174 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
7175 
7176 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7177 
7178 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
7179 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
7180 
7181 ---------------------------------------------------------------------------------------------------------------
7182 
7183 
7184 --
7185 -- bulk performance
7186 --
7187 l_balance_type_code           VARCHAR2(1);
7188 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
7189 l_log_module                  VARCHAR2(240);
7190 
7191 --
7192 -- Upgrade strategy
7193 --
7194 l_actual_upg_option           VARCHAR2(1);
7195 l_enc_upg_option           VARCHAR2(1);
7196 
7197 --
7198 BEGIN
7199 --
7200 IF g_log_enabled THEN
7201       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_41';
7202 END IF;
7203 --
7204 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7205 
7206       trace
7207          (p_msg      => 'BEGIN of AcctLineType_41'
7208          ,p_level    => C_LEVEL_PROCEDURE
7209          ,p_module   => l_log_module);
7210 
7211 END IF;
7212 --
7213 l_component_type             := 'AMB_JLT';
7214 l_component_code             := 'AP_ACCRUAL_REF';
7215 l_component_type_code        := 'S';
7216 l_component_appl_id          :=  200;
7217 l_amb_context_code           := 'DEFAULT';
7218 l_entity_code                := 'AP_PAYMENTS';
7219 l_event_class_code           := 'REFUNDS';
7220 l_event_type_code            := 'REFUNDS_ALL';
7221 l_line_definition_owner_code := 'S';
7222 l_line_definition_code       := 'CASH_REFUNDS_ALL';
7223 --
7224 l_balance_type_code          := 'A';
7225 l_segment                     := NULL;
7229 l_adr_flexfield_segment_code  := NULL;
7226 l_ccid                        := NULL;
7227 l_adr_transaction_coa_id      := NULL;
7228 l_adr_accounting_coa_id       := NULL;
7230 l_adr_flex_value_set_id       := NULL;
7231 l_adr_value_type_code         := NULL;
7232 l_adr_value_combination_id    := NULL;
7233 l_adr_value_segment_code      := NULL;
7234 
7235 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
7236 l_bflow_class_code           := '';    -- 4219869 Business Flow
7237 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
7238 l_budgetary_control_flag     := 'N';
7239 
7240 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
7241 l_bflow_applied_to_amt       := NULL; -- 5132302
7242 l_entered_amt_idx            := NULL;          -- 4262811
7243 l_accted_amt_idx             := NULL;          -- 4262811
7244 l_acc_rev_flag               := NULL;          -- 4262811
7245 l_accrual_line_num           := NULL;          -- 4262811
7246 l_tmp_amt                    := NULL;          -- 4262811
7247 --
7248  
7249 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7250     l_balance_type_code <> 'B' THEN
7251 IF NVL(p_source_50,'
7252 ') <>  'CLEAR_CLEAR' AND 
7253 (NVL(p_source_32,'
7254 ') =  'ACCRUAL' OR 
7255 NVL(p_source_32,'
7256 ') =  'RETROACCRUAL') AND 
7257 (NVL(p_source_51,'
7258 ') =  'CASH' OR 
7259 NVL(p_source_51,'
7260 ') =  'DISCOUNT') AND 
7261 NVL(p_source_71,'
7262 ') =  'R'
7263  THEN 
7264 
7265    --
7266    XLA_AE_LINES_PKG.SetNewLine;
7267 
7268    p_balance_type_code          := l_balance_type_code;
7269    -- set the flag so later we will know whether the gain loss line needs to be created
7270    
7271    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7272      p_actual_flag :='A';
7273    END IF;
7274 
7275    --
7276    -- bulk performance
7277    --
7278    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7279                                       p_header_num   => 0); -- 4262811
7280    --
7281    -- set accounting line options
7282    --
7283    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7284            p_natural_side_code          => 'D'
7285          , p_gain_or_loss_flag          => 'N'
7286          , p_gl_transfer_mode_code      => 'S'
7287          , p_acct_entry_type_code       => 'A'
7288          , p_switch_side_flag           => 'Y'
7289          , p_merge_duplicate_code       => 'A'
7290          );
7291    --
7292    l_acc_rev_natural_side_code := 'C';  -- 4262811
7293    -- 
7294    --
7295    -- set accounting line type info
7296    --
7297    xla_ae_lines_pkg.SetAcctLineType
7298       (p_component_type             => l_component_type
7299       ,p_event_type_code            => l_event_type_code
7300       ,p_line_definition_owner_code => l_line_definition_owner_code
7301       ,p_line_definition_code       => l_line_definition_code
7302       ,p_accounting_line_code       => l_component_code
7303       ,p_accounting_line_type_code  => l_component_type_code
7304       ,p_accounting_line_appl_id    => l_component_appl_id
7305       ,p_amb_context_code           => l_amb_context_code
7306       ,p_entity_code                => l_entity_code
7307       ,p_event_class_code           => l_event_class_code);
7308    --
7309    -- set accounting class
7310    --
7311    xla_ae_lines_pkg.SetAcctClass(
7312            p_accounting_class_code  => 'ACCRUAL'
7313          , p_ae_header_id           => l_ae_header_id
7314          );
7315 
7316    --
7317    -- set rounding class
7318    --
7319    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7320                       'ACCRUAL';
7321 
7322    --
7323    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7324    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7325    --
7326    -- bulk performance
7327    --
7328    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7329 
7330    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7331       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7332 
7333    -- 4955764
7334    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7335       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7336 
7337    -- 4458381 Public Sector Enh
7338    
7339    --
7340    -- set accounting attributes for the line type
7341    --
7342    l_entered_amt_idx := 9;
7343    l_accted_amt_idx  := 14;
7344    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
7345    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7346    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
7347    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
7348    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
7349    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7350    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
7351    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
7352    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
7353    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
7357    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
7354    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
7355    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7356    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
7358    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
7359    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
7360    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
7361    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
7362    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
7363    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
7364    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
7365    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
7366    l_rec_acct_attrs.array_date_value(11)  := p_source_61;
7367    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
7368    l_rec_acct_attrs.array_num_value(12)  := p_source_62;
7369    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
7370    l_rec_acct_attrs.array_char_value(13)  := p_source_63;
7371    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
7372    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
7373    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
7374    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
7375    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
7376    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
7377    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
7378    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
7379    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
7380    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
7381    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
7382    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
7383    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
7384    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
7385    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
7386    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
7387    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
7388    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
7389    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
7390    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
7391 
7392    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7393    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7394 
7395    ---------------------------------------------------------------------------------------------------------------
7396    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7397    ---------------------------------------------------------------------------------------------------------------
7398    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7399 
7400    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7401    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7402 
7403    IF xla_accounting_cache_pkg.GetValueChar
7404          (p_source_code         => 'LEDGER_CATEGORY_CODE'
7405          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7406    AND l_bflow_method_code = 'PRIOR_ENTRY'
7407 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7408    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7409          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7410        )
7411    THEN
7412          xla_ae_lines_pkg.BflowUpgEntry
7413            (p_business_method_code    => l_bflow_method_code
7414            ,p_business_class_code     => l_bflow_class_code
7415            ,p_balance_type            => l_balance_type_code);
7416    ELSE
7417       NULL;
7418 -- No business flow processing for business flow method of NONE.
7419    END IF;
7420 
7421    --
7422    -- call analytical criteria
7423    --
7424    
7425    --
7426    -- call description
7427    --
7428    -- No description or it is inherited.
7429    --
7430    -- call ADRs
7431    -- Bug 4922099
7432    --
7433    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7434         (NVL(l_actual_upg_option, 'N') = 'O') OR
7435         (NVL(l_enc_upg_option, 'N') = 'O')
7436       )
7437    THEN
7438    NULL;
7439    --
7440    --
7441    
7442   l_ccid := AcctDerRule_31(
7443            p_application_id           => p_application_id
7444          , p_ae_header_id             => l_ae_header_id 
7445 , p_source_40 => p_source_40
7446          , x_transaction_coa_id       => l_adr_transaction_coa_id
7447          , x_accounting_coa_id        => l_adr_accounting_coa_id
7448          , x_value_type_code          => l_adr_value_type_code
7449          , p_side                     => 'NA'
7450    );
7451 
7452    xla_ae_lines_pkg.set_ccid(
7453     p_code_combination_id          => l_ccid
7454   , p_value_type_code              => l_adr_value_type_code
7455   , p_transaction_coa_id           => l_adr_transaction_coa_id
7456   , p_accounting_coa_id            => l_adr_accounting_coa_id
7457   , p_adr_code                     => 'AP_PO_CHARGE_ACCT'
7458   , p_adr_type_code                => 'S'
7462   , p_component_appl_id            => l_component_appl_id
7459   , p_component_type               => l_component_type
7460   , p_component_code               => l_component_code
7461   , p_component_type_code          => l_component_type_code
7463   , p_amb_context_code             => l_amb_context_code
7464   , p_side                         => 'NA'
7465   );
7466 
7467 
7468    --
7469    --
7470    END IF;
7471    --
7472    -- Bug 4922099
7473    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7474           (NVL(l_enc_upg_option, 'N') = 'O')
7475         ) AND
7476         (l_bflow_method_code = 'PRIOR_ENTRY')
7477       )
7478    THEN
7479       IF
7480       --
7481       1 = 2
7482       --
7483       THEN
7484       xla_accounting_err_pkg.build_message
7485                                     (p_appli_s_name            => 'XLA'
7486                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7487                                     ,p_token_1                 => 'LINE_NUMBER'
7488                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
7489                                     ,p_token_2                 => 'LINE_TYPE_NAME'
7490                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
7491                                                                              l_component_type
7492                                                                             ,l_component_code
7493                                                                             ,l_component_type_code
7494                                                                             ,l_component_appl_id
7495                                                                             ,l_amb_context_code
7496                                                                             ,l_entity_code
7497                                                                             ,l_event_class_code
7498                                                                            )
7499                                     ,p_token_3                 => 'OWNER'
7500                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
7501                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
7502                                                                           ,p_lookup_code    => l_component_type_code
7503                                                                          )
7504                                     ,p_token_4                 => 'PRODUCT_NAME'
7505                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7506                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7507                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7508                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7509                                     ,p_ae_header_id            =>  NULL
7510                                        );
7511 
7512         IF (C_LEVEL_ERROR>= g_log_level) THEN
7513                  trace
7514                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7515                       ,p_level    => C_LEVEL_ERROR
7516                       ,p_module   => l_log_module);
7517         END IF;
7518       END IF;
7519    END IF;
7520    --
7521    --
7522    ------------------------------------------------------------------------------------------------
7523    -- 4219869 Business Flow
7524    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7525    -- Prior Entry.  Currently, the following code is always generated.
7526    ------------------------------------------------------------------------------------------------
7527    XLA_AE_LINES_PKG.ValidateCurrentLine;
7528 
7529    ------------------------------------------------------------------------------------
7530    -- 4219869 Business Flow
7531    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7532    ------------------------------------------------------------------------------------
7533    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7534 
7535    ----------------------------------------------------------------------------------
7536    -- 4219869 Business Flow
7537    -- Update journal entry status -- Need to generate this within IF <condition>
7538    ----------------------------------------------------------------------------------
7539    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7540          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7541          ,p_balance_type_code => l_balance_type_code
7542          );
7543 
7544    -------------------------------------------------------------------------------------------
7545    -- 4262811 - Generate the Accrual Reversal lines
7546    -------------------------------------------------------------------------------------------
7547    BEGIN
7548       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7549                               (g_array_event(p_event_id).array_value_num('header_index'));
7550       IF l_acc_rev_flag IS NULL THEN
7551          l_acc_rev_flag := 'N';
7552       END IF;
7553    EXCEPTION
7554       WHEN OTHERS THEN
7555          l_acc_rev_flag := 'N';
7556    END;
7557    --
7558    IF (l_acc_rev_flag = 'Y') THEN
7559 
7563        ------------------------------------------------------------------------------------------
7560        -- 4645092  ------------------------------------------------------------------------------
7561        -- To allow MPA report to determine if it should generate report process
7562        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7564 
7565        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7566        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7567    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
7568    -- call ADRs
7569    -- Bug 4922099
7570    --
7571    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7572         (NVL(l_actual_upg_option, 'N') = 'O') OR
7573         (NVL(l_enc_upg_option, 'N') = 'O')
7574       )
7575    THEN
7576    NULL;
7577    --
7578    --
7579    
7580   l_ccid := AcctDerRule_31(
7581            p_application_id           => p_application_id
7582          , p_ae_header_id             => l_ae_header_id 
7583 , p_source_40 => p_source_40
7584          , x_transaction_coa_id       => l_adr_transaction_coa_id
7585          , x_accounting_coa_id        => l_adr_accounting_coa_id
7586          , x_value_type_code          => l_adr_value_type_code
7587          , p_side                     => 'NA'
7588    );
7589 
7590    xla_ae_lines_pkg.set_ccid(
7591     p_code_combination_id          => l_ccid
7592   , p_value_type_code              => l_adr_value_type_code
7593   , p_transaction_coa_id           => l_adr_transaction_coa_id
7594   , p_accounting_coa_id            => l_adr_accounting_coa_id
7595   , p_adr_code                     => 'AP_PO_CHARGE_ACCT'
7596   , p_adr_type_code                => 'S'
7597   , p_component_type               => l_component_type
7598   , p_component_code               => l_component_code
7599   , p_component_type_code          => l_component_type_code
7600   , p_component_appl_id            => l_component_appl_id
7601   , p_amb_context_code             => l_amb_context_code
7602   , p_side                         => 'NA'
7603   );
7604 
7605 
7606    --
7607    --
7608    END IF;
7609 
7610        --
7611        -- Update the line information that should be overwritten
7612        --
7613        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7614                                          p_header_num   => 1);
7615        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
7616 
7617        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7618 
7619        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
7620           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7621        END IF;
7622 
7623       --
7624       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7625       --
7626       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7627           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
7628       ELSE
7629           ---------------------------------------------------------------------------------------------------
7630           -- 4262811a Switch Sign
7631           ---------------------------------------------------------------------------------------------------
7632           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
7633           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7634                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7635           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7636                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7637           -- 5132302
7638           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7639                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7640 
7641       END IF;
7642 
7643       -- 4955764
7644       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7645       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7646 
7647 
7648       XLA_AE_LINES_PKG.ValidateCurrentLine;
7649       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7650 
7651       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7652                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7653                ,p_balance_type_code => l_balance_type_code);
7654 
7655    END IF;
7656 
7657    -----------------------------------------------------------------------------------------
7658    -- 4262811 Multiperiod Accounting
7659    -----------------------------------------------------------------------------------------
7660      -- No MPA option is assigned.
7661 
7662 
7663 END IF;
7664 END IF;
7665 --
7666 
7667 --
7668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7669    trace
7670       (p_msg      => 'END of AcctLineType_41'
7671       ,p_level    => C_LEVEL_PROCEDURE
7672       ,p_module   => l_log_module);
7673 END IF;
7674 --
7675 EXCEPTION
7676   WHEN xla_exceptions_pkg.application_exception THEN
7680            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_41');
7677       RAISE;
7678   WHEN OTHERS THEN
7679        xla_exceptions_pkg.raise_message
7681 END AcctLineType_41;
7682 --
7683 
7684 ---------------------------------------
7685 --
7686 -- PRIVATE FUNCTION
7687 --         AcctLineType_42
7688 --
7689 ---------------------------------------
7690 PROCEDURE AcctLineType_42 (
7691   p_application_id        IN NUMBER
7692  ,p_event_id              IN NUMBER
7693  ,p_calculate_acctd_flag  IN VARCHAR2
7694  ,p_calculate_g_l_flag    IN VARCHAR2
7695  ,p_actual_flag           IN OUT VARCHAR2
7696  ,p_balance_type_code     OUT VARCHAR2
7697  ,p_gain_or_loss_ref      OUT VARCHAR2
7698  
7699 --Invoice Distribution Account
7700  , p_source_29            IN NUMBER
7701 --When to Account for Payment Option
7702  , p_source_50            IN VARCHAR2
7703 --Accounting Reversal Indicator
7704  , p_source_52            IN VARCHAR2
7705 --Business Flow Accounts Payable Application Identifier
7706  , p_source_54            IN NUMBER
7707 --Distribution Link Type
7708  , p_source_60            IN VARCHAR2
7709 --Purchase Order Exchange Rate Date
7710  , p_source_61            IN DATE
7711 --Purchase Order Exchange Rate
7712  , p_source_62            IN NUMBER
7713 --Purchase Order Exchange Rate Type
7714  , p_source_63            IN VARCHAR2
7715 --Override Accounted Amount Indicator
7716  , p_source_64            IN VARCHAR2
7717  , p_source_64_meaning    IN VARCHAR2
7718 --Third Party Type
7719  , p_source_67            IN VARCHAR2
7720 --Invoice Distribution Tax Line Identifier
7721  , p_source_69            IN NUMBER
7722 --Invoice Distribution Summary Tax Line Identifier
7723  , p_source_70            IN NUMBER
7724 --Invoice Distribution Tax Distribution Identifier from Tax
7725  , p_source_77            IN NUMBER
7726 --Prepayment Distribution Type
7727  , p_source_78            IN VARCHAR2
7728 --Recipient Invoice Distribution Type
7729  , p_source_79            IN VARCHAR2
7730  , p_source_79_meaning    IN VARCHAR2
7731 --Prepayment Application Distribution Identifier
7732  , p_source_82            IN NUMBER
7733 --Invoice Identifier
7734  , p_source_83            IN NUMBER
7735 --Business Flow Prepayment Invoice Distribution Type
7736  , p_source_84            IN VARCHAR2
7737 --Business Flow Prepayment Invoice Entity Code
7738  , p_source_85            IN VARCHAR2
7739 --Business Flow Prepayment Invoice Distribution Identifier
7740  , p_source_86            IN NUMBER
7741 --Business Flow Prepayment Invoice Identifier
7742  , p_source_87            IN NUMBER
7743 --Upgrade Encumbrance Credit Account Class
7744  , p_source_88            IN VARCHAR2
7745 --Payables Encumbrance Upgrade Credit Account
7746  , p_source_89            IN NUMBER
7747 --Payables Encumbrance Upgrade Credit Amount
7748  , p_source_90            IN NUMBER
7749 --Invoice Currency Code
7750  , p_source_91            IN VARCHAR2
7751 --Payables Encumbrance Upgrade Credit Base Amount
7752  , p_source_92            IN NUMBER
7753 --Upgrade Encumbrance Debit Account Class
7754  , p_source_93            IN VARCHAR2
7755 --Payables Encumbrance Upgrade Debit Account
7756  , p_source_94            IN NUMBER
7757 --Payables Encumbrance Upgrade Debit Amount
7758  , p_source_95            IN NUMBER
7759 --Payables Encumbrance Upgrade Debit Base Amount
7760  , p_source_96            IN NUMBER
7761 --Payables Encumbrance Upgrade Option
7762  , p_source_97            IN VARCHAR2
7763 --Prepayment Distribution Amount
7764  , p_source_98            IN NUMBER
7765 --Prepayment Clearing Currency Code
7766  , p_source_99            IN VARCHAR2
7767 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
7768  , p_source_100            IN NUMBER
7769 --Deferred Accounting End Date
7770  , p_source_101            IN DATE
7771 --Deferred Accounting Option
7772  , p_source_102            IN VARCHAR2
7773 --Deferred Accounting Start Date
7774  , p_source_103            IN DATE
7775 --Invoice Supplier Identifier
7776  , p_source_104            IN NUMBER
7777 --Invoice Supplier Site Identifier
7778  , p_source_105            IN NUMBER
7779 --Identifier of the Prepayment Application Reversed
7780  , p_source_106            IN NUMBER
7781 --Payables Upgrade Credit Encumbrance Type Identifier
7782  , p_source_107            IN NUMBER
7783 --Payables Upgrade Debit Encumbrance Type Identifier
7784  , p_source_108            IN NUMBER
7785 )
7786 IS
7787 
7788 l_component_type              VARCHAR2(80);
7789 l_component_code              VARCHAR2(30);
7790 l_component_type_code         VARCHAR2(1);
7791 l_component_appl_id           INTEGER;
7792 l_amb_context_code            VARCHAR2(30);
7793 l_entity_code                 VARCHAR2(30);
7794 l_event_class_code            VARCHAR2(30);
7795 l_ae_header_id                NUMBER;
7796 l_event_type_code             VARCHAR2(30);
7797 l_line_definition_code        VARCHAR2(30);
7798 l_line_definition_owner_code  VARCHAR2(1);
7799 --
7800 -- adr variables
7801 l_segment                     VARCHAR2(30);
7802 l_ccid                        NUMBER;
7803 l_adr_transaction_coa_id      NUMBER;
7804 l_adr_accounting_coa_id       NUMBER;
7805 l_adr_flexfield_segment_code  VARCHAR2(30);
7806 l_adr_flex_value_set_id       NUMBER;
7807 l_adr_value_type_code         VARCHAR2(30);
7808 l_adr_value_combination_id    NUMBER;
7812 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
7809 l_adr_value_segment_code      VARCHAR2(30);
7810 
7811 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
7813 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
7814 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
7815 
7816 -- 4262811 Variables ------------------------------------------------------------------------------------------
7817 l_entered_amt_idx             NUMBER;
7818 l_accted_amt_idx              NUMBER;
7819 l_acc_rev_flag                VARCHAR2(1);
7820 l_accrual_line_num            NUMBER;
7821 l_tmp_amt                     NUMBER;
7822 l_acc_rev_natural_side_code   VARCHAR2(1);
7823 
7824 l_num_entries                 NUMBER;
7825 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
7826 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
7827 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
7828 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
7829 l_recog_line_1                NUMBER;
7830 l_recog_line_2                NUMBER;
7831 
7832 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
7833 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
7834 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
7835 
7836 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7837 
7838 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
7839 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
7840 
7841 ---------------------------------------------------------------------------------------------------------------
7842 
7843 
7844 --
7845 -- bulk performance
7846 --
7847 l_balance_type_code           VARCHAR2(1);
7848 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
7849 l_log_module                  VARCHAR2(240);
7850 
7851 --
7852 -- Upgrade strategy
7853 --
7854 l_actual_upg_option           VARCHAR2(1);
7855 l_enc_upg_option           VARCHAR2(1);
7856 
7857 --
7858 BEGIN
7859 --
7860 IF g_log_enabled THEN
7861       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_42';
7862 END IF;
7863 --
7864 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7865 
7866       trace
7867          (p_msg      => 'BEGIN of AcctLineType_42'
7868          ,p_level    => C_LEVEL_PROCEDURE
7869          ,p_module   => l_log_module);
7870 
7871 END IF;
7872 --
7873 l_component_type             := 'AMB_JLT';
7874 l_component_code             := 'AP_ACCR_PREPAY_CLR_RATE_APP';
7875 l_component_type_code        := 'S';
7876 l_component_appl_id          :=  200;
7877 l_amb_context_code           := 'DEFAULT';
7878 l_entity_code                := 'AP_INVOICES';
7879 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
7880 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
7881 l_line_definition_owner_code := 'S';
7882 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
7883 --
7884 l_balance_type_code          := 'A';
7885 l_segment                     := NULL;
7886 l_ccid                        := NULL;
7887 l_adr_transaction_coa_id      := NULL;
7888 l_adr_accounting_coa_id       := NULL;
7889 l_adr_flexfield_segment_code  := NULL;
7890 l_adr_flex_value_set_id       := NULL;
7891 l_adr_value_type_code         := NULL;
7892 l_adr_value_combination_id    := NULL;
7893 l_adr_value_segment_code      := NULL;
7894 
7895 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
7896 l_bflow_class_code           := '';    -- 4219869 Business Flow
7897 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
7898 l_budgetary_control_flag     := 'N';
7899 
7900 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
7901 l_bflow_applied_to_amt       := NULL; -- 5132302
7902 l_entered_amt_idx            := NULL;          -- 4262811
7903 l_accted_amt_idx             := NULL;          -- 4262811
7904 l_acc_rev_flag               := NULL;          -- 4262811
7905 l_accrual_line_num           := NULL;          -- 4262811
7906 l_tmp_amt                    := NULL;          -- 4262811
7907 --
7908  
7909 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7910     l_balance_type_code <> 'B' THEN
7911 IF NVL(p_source_50,'
7912 ') =  'CLEAR_CLEAR' AND 
7913 (NVL(p_source_78,'
7914 ') =  'PREPAY APPL' OR 
7915 NVL(p_source_78,'
7916 ') =  'PREPAY APPL NONREC TAX' OR 
7917 NVL(p_source_78,'
7918 ') =  'PREPAY APPL REC TAX') AND 
7919 (NVL(p_source_79,'
7920 ') =  'ACCRUAL' OR 
7921 NVL(p_source_79,'
7922 ') =  'RETROACCRUAL')
7923  THEN 
7924 
7925    --
7926    XLA_AE_LINES_PKG.SetNewLine;
7927 
7928    p_balance_type_code          := l_balance_type_code;
7929    -- set the flag so later we will know whether the gain loss line needs to be created
7930    
7931    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7932      p_actual_flag :='A';
7933    END IF;
7934 
7935    --
7936    -- bulk performance
7937    --
7938    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7939                                       p_header_num   => 0); -- 4262811
7940    --
7941    -- set accounting line options
7942    --
7946          , p_gl_transfer_mode_code      => 'S'
7943    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7944            p_natural_side_code          => 'C'
7945          , p_gain_or_loss_flag          => 'N'
7947          , p_acct_entry_type_code       => 'A'
7948          , p_switch_side_flag           => 'Y'
7949          , p_merge_duplicate_code       => 'A'
7950          );
7951    --
7952    l_acc_rev_natural_side_code := 'D';  -- 4262811
7953    -- 
7954    --
7955    -- set accounting line type info
7956    --
7957    xla_ae_lines_pkg.SetAcctLineType
7958       (p_component_type             => l_component_type
7959       ,p_event_type_code            => l_event_type_code
7960       ,p_line_definition_owner_code => l_line_definition_owner_code
7961       ,p_line_definition_code       => l_line_definition_code
7962       ,p_accounting_line_code       => l_component_code
7963       ,p_accounting_line_type_code  => l_component_type_code
7964       ,p_accounting_line_appl_id    => l_component_appl_id
7965       ,p_amb_context_code           => l_amb_context_code
7966       ,p_entity_code                => l_entity_code
7967       ,p_event_class_code           => l_event_class_code);
7968    --
7969    -- set accounting class
7970    --
7971    xla_ae_lines_pkg.SetAcctClass(
7972            p_accounting_class_code  => 'ACCRUAL'
7973          , p_ae_header_id           => l_ae_header_id
7974          );
7975 
7976    --
7977    -- set rounding class
7978    --
7979    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7980                       'ACCRUAL';
7981 
7982    --
7983    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7984    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7985    --
7986    -- bulk performance
7987    --
7988    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7989 
7990    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7991       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7992 
7993    -- 4955764
7994    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7995       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7996 
7997    -- 4458381 Public Sector Enh
7998    
7999    --
8000    -- set accounting attributes for the line type
8001    --
8002    l_entered_amt_idx := 25;
8003    l_accted_amt_idx  := 30;
8004    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
8005    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8006    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
8007    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8008    l_rec_acct_attrs.array_num_value(2)  := 
8009 xla_ae_sources_pkg.GetSystemSourceNum(
8010    p_source_code           => 'XLA_EVENT_APPL_ID'
8011  , p_source_type_code      => 'Y'
8012  , p_source_application_id =>  602
8013 );
8014    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8015    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
8016    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8017    l_rec_acct_attrs.array_char_value(4)  := 
8018 xla_ae_sources_pkg.GetSystemSourceChar(
8019    p_source_code           => 'XLA_ENTITY_CODE'
8020  , p_source_type_code      => 'Y'
8021  , p_source_application_id =>  602
8022 );
8023    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8024    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
8025    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8026    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
8027    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8028    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
8029    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8030    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
8031    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8032    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
8033    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8034    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
8035    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8036    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
8037    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8038    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
8039    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8040    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
8041    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
8042    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
8043    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
8044    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
8045    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
8046    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
8047    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
8048    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
8049    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
8050    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
8054    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
8051    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
8052    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
8053    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
8055    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
8056    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
8057    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
8058    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
8059    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
8060    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
8061    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
8062    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
8063    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
8064    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
8065    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
8066    l_rec_acct_attrs.array_char_value(26)  := p_source_99;
8067    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
8068    l_rec_acct_attrs.array_date_value(27)  := p_source_61;
8069    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
8070    l_rec_acct_attrs.array_num_value(28)  := p_source_62;
8071    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
8072    l_rec_acct_attrs.array_char_value(29)  := p_source_63;
8073    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
8074    l_rec_acct_attrs.array_num_value(30)  := p_source_100;
8075    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
8076    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
8077    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
8078    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
8079    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
8080    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
8081    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
8082    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
8083    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
8084    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
8085    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
8086    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
8087    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
8088    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
8089    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
8090    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
8091    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
8092    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
8093    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
8094    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
8095    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
8096    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
8097    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
8098    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
8099    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
8100    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
8101    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
8102    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
8103 
8104    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8105    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8106 
8107    ---------------------------------------------------------------------------------------------------------------
8108    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8109    ---------------------------------------------------------------------------------------------------------------
8110    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8111 
8112    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8113    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8114 
8115    IF xla_accounting_cache_pkg.GetValueChar
8116          (p_source_code         => 'LEDGER_CATEGORY_CODE'
8117          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8118    AND l_bflow_method_code = 'PRIOR_ENTRY'
8119 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8120    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8121          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8122        )
8123    THEN
8124          xla_ae_lines_pkg.BflowUpgEntry
8125            (p_business_method_code    => l_bflow_method_code
8126            ,p_business_class_code     => l_bflow_class_code
8127            ,p_balance_type            => l_balance_type_code);
8128    ELSE
8129       NULL;
8130 -- No business flow processing for business flow method of NONE.
8131    END IF;
8132 
8133    --
8134    -- call analytical criteria
8135    --
8136    
8137    --
8138    -- call description
8139    --
8140    -- No description or it is inherited.
8141    --
8142    -- call ADRs
8143    -- Bug 4922099
8144    --
8145    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8146         (NVL(l_actual_upg_option, 'N') = 'O') OR
8147         (NVL(l_enc_upg_option, 'N') = 'O')
8148       )
8152    --
8149    THEN
8150    NULL;
8151    --
8153    
8154   l_ccid := AcctDerRule_28(
8155            p_application_id           => p_application_id
8156          , p_ae_header_id             => l_ae_header_id 
8157 , p_source_29 => p_source_29
8158          , x_transaction_coa_id       => l_adr_transaction_coa_id
8159          , x_accounting_coa_id        => l_adr_accounting_coa_id
8160          , x_value_type_code          => l_adr_value_type_code
8161          , p_side                     => 'NA'
8162    );
8163 
8164    xla_ae_lines_pkg.set_ccid(
8165     p_code_combination_id          => l_ccid
8166   , p_value_type_code              => l_adr_value_type_code
8167   , p_transaction_coa_id           => l_adr_transaction_coa_id
8168   , p_accounting_coa_id            => l_adr_accounting_coa_id
8169   , p_adr_code                     => 'AP_INVOICE_DIST'
8170   , p_adr_type_code                => 'S'
8171   , p_component_type               => l_component_type
8172   , p_component_code               => l_component_code
8173   , p_component_type_code          => l_component_type_code
8174   , p_component_appl_id            => l_component_appl_id
8175   , p_amb_context_code             => l_amb_context_code
8176   , p_side                         => 'NA'
8177   );
8178 
8179 
8180    --
8181    --
8182    END IF;
8183    --
8184    -- Bug 4922099
8185    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8186           (NVL(l_enc_upg_option, 'N') = 'O')
8187         ) AND
8188         (l_bflow_method_code = 'PRIOR_ENTRY')
8189       )
8190    THEN
8191       IF
8192       --
8193       1 = 2
8194       --
8195       THEN
8196       xla_accounting_err_pkg.build_message
8197                                     (p_appli_s_name            => 'XLA'
8198                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8199                                     ,p_token_1                 => 'LINE_NUMBER'
8200                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
8201                                     ,p_token_2                 => 'LINE_TYPE_NAME'
8202                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
8203                                                                              l_component_type
8204                                                                             ,l_component_code
8205                                                                             ,l_component_type_code
8206                                                                             ,l_component_appl_id
8207                                                                             ,l_amb_context_code
8208                                                                             ,l_entity_code
8209                                                                             ,l_event_class_code
8210                                                                            )
8211                                     ,p_token_3                 => 'OWNER'
8212                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
8213                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
8214                                                                           ,p_lookup_code    => l_component_type_code
8215                                                                          )
8216                                     ,p_token_4                 => 'PRODUCT_NAME'
8217                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8218                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8219                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8220                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8221                                     ,p_ae_header_id            =>  NULL
8222                                        );
8223 
8224         IF (C_LEVEL_ERROR>= g_log_level) THEN
8225                  trace
8226                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8227                       ,p_level    => C_LEVEL_ERROR
8228                       ,p_module   => l_log_module);
8229         END IF;
8230       END IF;
8231    END IF;
8232    --
8233    --
8234    ------------------------------------------------------------------------------------------------
8235    -- 4219869 Business Flow
8236    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8237    -- Prior Entry.  Currently, the following code is always generated.
8238    ------------------------------------------------------------------------------------------------
8239    XLA_AE_LINES_PKG.ValidateCurrentLine;
8240 
8241    ------------------------------------------------------------------------------------
8242    -- 4219869 Business Flow
8243    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8244    ------------------------------------------------------------------------------------
8245    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8246 
8247    ----------------------------------------------------------------------------------
8248    -- 4219869 Business Flow
8249    -- Update journal entry status -- Need to generate this within IF <condition>
8250    ----------------------------------------------------------------------------------
8254          );
8251    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8252          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8253          ,p_balance_type_code => l_balance_type_code
8255 
8256    -------------------------------------------------------------------------------------------
8257    -- 4262811 - Generate the Accrual Reversal lines
8258    -------------------------------------------------------------------------------------------
8259    BEGIN
8260       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8261                               (g_array_event(p_event_id).array_value_num('header_index'));
8262       IF l_acc_rev_flag IS NULL THEN
8263          l_acc_rev_flag := 'N';
8264       END IF;
8265    EXCEPTION
8266       WHEN OTHERS THEN
8267          l_acc_rev_flag := 'N';
8268    END;
8269    --
8270    IF (l_acc_rev_flag = 'Y') THEN
8271 
8272        -- 4645092  ------------------------------------------------------------------------------
8273        -- To allow MPA report to determine if it should generate report process
8274        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8275        ------------------------------------------------------------------------------------------
8276 
8277        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8278        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8279    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
8280    -- call ADRs
8281    -- Bug 4922099
8282    --
8283    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8284         (NVL(l_actual_upg_option, 'N') = 'O') OR
8285         (NVL(l_enc_upg_option, 'N') = 'O')
8286       )
8287    THEN
8288    NULL;
8289    --
8290    --
8291    
8292   l_ccid := AcctDerRule_28(
8293            p_application_id           => p_application_id
8294          , p_ae_header_id             => l_ae_header_id 
8295 , p_source_29 => p_source_29
8296          , x_transaction_coa_id       => l_adr_transaction_coa_id
8297          , x_accounting_coa_id        => l_adr_accounting_coa_id
8298          , x_value_type_code          => l_adr_value_type_code
8299          , p_side                     => 'NA'
8300    );
8301 
8302    xla_ae_lines_pkg.set_ccid(
8303     p_code_combination_id          => l_ccid
8304   , p_value_type_code              => l_adr_value_type_code
8305   , p_transaction_coa_id           => l_adr_transaction_coa_id
8306   , p_accounting_coa_id            => l_adr_accounting_coa_id
8307   , p_adr_code                     => 'AP_INVOICE_DIST'
8308   , p_adr_type_code                => 'S'
8309   , p_component_type               => l_component_type
8310   , p_component_code               => l_component_code
8311   , p_component_type_code          => l_component_type_code
8312   , p_component_appl_id            => l_component_appl_id
8313   , p_amb_context_code             => l_amb_context_code
8314   , p_side                         => 'NA'
8315   );
8316 
8317 
8318    --
8319    --
8320    END IF;
8321 
8322        --
8323        -- Update the line information that should be overwritten
8324        --
8325        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8326                                          p_header_num   => 1);
8327        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
8328 
8329        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8330 
8331        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
8332           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8333        END IF;
8334 
8335       --
8336       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8337       --
8338       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8339           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
8340       ELSE
8341           ---------------------------------------------------------------------------------------------------
8342           -- 4262811a Switch Sign
8343           ---------------------------------------------------------------------------------------------------
8344           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
8345           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8346                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8347           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8348                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8349           -- 5132302
8350           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8351                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8352 
8353       END IF;
8354 
8355       -- 4955764
8356       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8357       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8358 
8359 
8360       XLA_AE_LINES_PKG.ValidateCurrentLine;
8361       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8362 
8366 
8363       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8364                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8365                ,p_balance_type_code => l_balance_type_code);
8367    END IF;
8368 
8369    -----------------------------------------------------------------------------------------
8370    -- 4262811 Multiperiod Accounting
8371    -----------------------------------------------------------------------------------------
8372      -- No MPA option is assigned.
8373 
8374 
8375 END IF;
8376 END IF;
8377 --
8378 
8379 --
8380 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8381    trace
8382       (p_msg      => 'END of AcctLineType_42'
8383       ,p_level    => C_LEVEL_PROCEDURE
8384       ,p_module   => l_log_module);
8385 END IF;
8386 --
8387 EXCEPTION
8388   WHEN xla_exceptions_pkg.application_exception THEN
8389       RAISE;
8390   WHEN OTHERS THEN
8391        xla_exceptions_pkg.raise_message
8392            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_42');
8393 END AcctLineType_42;
8394 --
8395 
8396 ---------------------------------------
8397 --
8398 -- PRIVATE FUNCTION
8399 --         AcctLineType_43
8400 --
8401 ---------------------------------------
8402 PROCEDURE AcctLineType_43 (
8403   p_application_id        IN NUMBER
8404  ,p_event_id              IN NUMBER
8405  ,p_calculate_acctd_flag  IN VARCHAR2
8406  ,p_calculate_g_l_flag    IN VARCHAR2
8407  ,p_actual_flag           IN OUT VARCHAR2
8408  ,p_balance_type_code     OUT VARCHAR2
8409  ,p_gain_or_loss_ref      OUT VARCHAR2
8410  
8411 --Invoice Distribution Account
8412  , p_source_29            IN NUMBER
8413 --When to Account for Payment Option
8414  , p_source_50            IN VARCHAR2
8415 --Accounting Reversal Indicator
8416  , p_source_52            IN VARCHAR2
8417 --Business Flow Accounts Payable Application Identifier
8418  , p_source_54            IN NUMBER
8419 --Distribution Link Type
8420  , p_source_60            IN VARCHAR2
8421 --Purchase Order Exchange Rate Date
8422  , p_source_61            IN DATE
8423 --Purchase Order Exchange Rate
8424  , p_source_62            IN NUMBER
8425 --Purchase Order Exchange Rate Type
8426  , p_source_63            IN VARCHAR2
8427 --Override Accounted Amount Indicator
8428  , p_source_64            IN VARCHAR2
8429  , p_source_64_meaning    IN VARCHAR2
8430 --Third Party Type
8431  , p_source_67            IN VARCHAR2
8432 --Invoice Distribution Tax Line Identifier
8433  , p_source_69            IN NUMBER
8434 --Invoice Distribution Summary Tax Line Identifier
8435  , p_source_70            IN NUMBER
8436 --Invoice Distribution Tax Distribution Identifier from Tax
8437  , p_source_77            IN NUMBER
8438 --Prepayment Distribution Type
8439  , p_source_78            IN VARCHAR2
8440 --Recipient Invoice Distribution Type
8441  , p_source_79            IN VARCHAR2
8442  , p_source_79_meaning    IN VARCHAR2
8443 --Prepayment Application Distribution Identifier
8444  , p_source_82            IN NUMBER
8445 --Invoice Identifier
8446  , p_source_83            IN NUMBER
8447 --Business Flow Prepayment Invoice Distribution Type
8448  , p_source_84            IN VARCHAR2
8449 --Business Flow Prepayment Invoice Entity Code
8450  , p_source_85            IN VARCHAR2
8451 --Business Flow Prepayment Invoice Distribution Identifier
8452  , p_source_86            IN NUMBER
8453 --Business Flow Prepayment Invoice Identifier
8454  , p_source_87            IN NUMBER
8455 --Upgrade Encumbrance Credit Account Class
8456  , p_source_88            IN VARCHAR2
8457 --Payables Encumbrance Upgrade Credit Account
8458  , p_source_89            IN NUMBER
8459 --Payables Encumbrance Upgrade Credit Amount
8460  , p_source_90            IN NUMBER
8461 --Invoice Currency Code
8462  , p_source_91            IN VARCHAR2
8463 --Payables Encumbrance Upgrade Credit Base Amount
8464  , p_source_92            IN NUMBER
8465 --Upgrade Encumbrance Debit Account Class
8466  , p_source_93            IN VARCHAR2
8467 --Payables Encumbrance Upgrade Debit Account
8468  , p_source_94            IN NUMBER
8469 --Payables Encumbrance Upgrade Debit Amount
8470  , p_source_95            IN NUMBER
8471 --Payables Encumbrance Upgrade Debit Base Amount
8472  , p_source_96            IN NUMBER
8473 --Payables Encumbrance Upgrade Option
8474  , p_source_97            IN VARCHAR2
8475 --Prepayment Distribution Amount
8476  , p_source_98            IN NUMBER
8477 --Deferred Accounting End Date
8478  , p_source_101            IN DATE
8479 --Deferred Accounting Option
8480  , p_source_102            IN VARCHAR2
8481 --Deferred Accounting Start Date
8482  , p_source_103            IN DATE
8483 --Invoice Supplier Identifier
8484  , p_source_104            IN NUMBER
8485 --Invoice Supplier Site Identifier
8486  , p_source_105            IN NUMBER
8487 --Identifier of the Prepayment Application Reversed
8488  , p_source_106            IN NUMBER
8489 --Payables Upgrade Credit Encumbrance Type Identifier
8490  , p_source_107            IN NUMBER
8491 --Payables Upgrade Debit Encumbrance Type Identifier
8492  , p_source_108            IN NUMBER
8493 --Prepayment Payment Currency Code
8494  , p_source_109            IN VARCHAR2
8495 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
8496  , p_source_110            IN NUMBER
8497 )
8498 IS
8499 
8503 l_component_appl_id           INTEGER;
8500 l_component_type              VARCHAR2(80);
8501 l_component_code              VARCHAR2(30);
8502 l_component_type_code         VARCHAR2(1);
8504 l_amb_context_code            VARCHAR2(30);
8505 l_entity_code                 VARCHAR2(30);
8506 l_event_class_code            VARCHAR2(30);
8507 l_ae_header_id                NUMBER;
8508 l_event_type_code             VARCHAR2(30);
8509 l_line_definition_code        VARCHAR2(30);
8510 l_line_definition_owner_code  VARCHAR2(1);
8511 --
8512 -- adr variables
8513 l_segment                     VARCHAR2(30);
8514 l_ccid                        NUMBER;
8515 l_adr_transaction_coa_id      NUMBER;
8516 l_adr_accounting_coa_id       NUMBER;
8517 l_adr_flexfield_segment_code  VARCHAR2(30);
8518 l_adr_flex_value_set_id       NUMBER;
8519 l_adr_value_type_code         VARCHAR2(30);
8520 l_adr_value_combination_id    NUMBER;
8521 l_adr_value_segment_code      VARCHAR2(30);
8522 
8523 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
8524 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
8525 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
8526 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
8527 
8528 -- 4262811 Variables ------------------------------------------------------------------------------------------
8529 l_entered_amt_idx             NUMBER;
8530 l_accted_amt_idx              NUMBER;
8531 l_acc_rev_flag                VARCHAR2(1);
8532 l_accrual_line_num            NUMBER;
8533 l_tmp_amt                     NUMBER;
8534 l_acc_rev_natural_side_code   VARCHAR2(1);
8535 
8536 l_num_entries                 NUMBER;
8537 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
8538 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
8539 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
8540 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
8541 l_recog_line_1                NUMBER;
8542 l_recog_line_2                NUMBER;
8543 
8544 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
8545 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
8546 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
8547 
8548 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8549 
8550 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
8551 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
8552 
8553 ---------------------------------------------------------------------------------------------------------------
8554 
8555 
8556 --
8557 -- bulk performance
8558 --
8559 l_balance_type_code           VARCHAR2(1);
8560 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
8561 l_log_module                  VARCHAR2(240);
8562 
8563 --
8564 -- Upgrade strategy
8565 --
8566 l_actual_upg_option           VARCHAR2(1);
8567 l_enc_upg_option           VARCHAR2(1);
8568 
8569 --
8570 BEGIN
8571 --
8572 IF g_log_enabled THEN
8573       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_43';
8574 END IF;
8575 --
8576 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8577 
8578       trace
8579          (p_msg      => 'BEGIN of AcctLineType_43'
8580          ,p_level    => C_LEVEL_PROCEDURE
8581          ,p_module   => l_log_module);
8582 
8583 END IF;
8584 --
8585 l_component_type             := 'AMB_JLT';
8586 l_component_code             := 'AP_ACCR_PREPAY_PAY_RATE_APP';
8587 l_component_type_code        := 'S';
8588 l_component_appl_id          :=  200;
8589 l_amb_context_code           := 'DEFAULT';
8590 l_entity_code                := 'AP_INVOICES';
8591 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
8592 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
8593 l_line_definition_owner_code := 'S';
8594 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
8595 --
8596 l_balance_type_code          := 'A';
8597 l_segment                     := NULL;
8598 l_ccid                        := NULL;
8599 l_adr_transaction_coa_id      := NULL;
8600 l_adr_accounting_coa_id       := NULL;
8601 l_adr_flexfield_segment_code  := NULL;
8602 l_adr_flex_value_set_id       := NULL;
8603 l_adr_value_type_code         := NULL;
8604 l_adr_value_combination_id    := NULL;
8605 l_adr_value_segment_code      := NULL;
8606 
8607 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
8608 l_bflow_class_code           := '';    -- 4219869 Business Flow
8609 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
8610 l_budgetary_control_flag     := 'N';
8611 
8612 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
8613 l_bflow_applied_to_amt       := NULL; -- 5132302
8614 l_entered_amt_idx            := NULL;          -- 4262811
8615 l_accted_amt_idx             := NULL;          -- 4262811
8616 l_acc_rev_flag               := NULL;          -- 4262811
8617 l_accrual_line_num           := NULL;          -- 4262811
8618 l_tmp_amt                    := NULL;          -- 4262811
8619 --
8620  
8621 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8622     l_balance_type_code <> 'B' THEN
8623 IF NVL(p_source_50,'
8624 ') <>  'CLEAR_CLEAR' AND 
8625 (NVL(p_source_78,'
8626 ') =  'PREPAY APPL' OR 
8630 ') =  'PREPAY APPL REC TAX') AND 
8627 NVL(p_source_78,'
8628 ') =  'PREPAY APPL NONREC TAX' OR 
8629 NVL(p_source_78,'
8631 (NVL(p_source_79,'
8632 ') =  'ACCRUAL' OR 
8633 NVL(p_source_79,'
8634 ') =  'RETROACCRUAL')
8635  THEN 
8636 
8637    --
8638    XLA_AE_LINES_PKG.SetNewLine;
8639 
8640    p_balance_type_code          := l_balance_type_code;
8641    -- set the flag so later we will know whether the gain loss line needs to be created
8642    
8643    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8644      p_actual_flag :='A';
8645    END IF;
8646 
8647    --
8648    -- bulk performance
8649    --
8650    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8651                                       p_header_num   => 0); -- 4262811
8652    --
8653    -- set accounting line options
8654    --
8655    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8656            p_natural_side_code          => 'C'
8657          , p_gain_or_loss_flag          => 'N'
8658          , p_gl_transfer_mode_code      => 'S'
8659          , p_acct_entry_type_code       => 'A'
8660          , p_switch_side_flag           => 'Y'
8661          , p_merge_duplicate_code       => 'A'
8662          );
8663    --
8664    l_acc_rev_natural_side_code := 'D';  -- 4262811
8665    -- 
8666    --
8667    -- set accounting line type info
8668    --
8669    xla_ae_lines_pkg.SetAcctLineType
8670       (p_component_type             => l_component_type
8671       ,p_event_type_code            => l_event_type_code
8672       ,p_line_definition_owner_code => l_line_definition_owner_code
8673       ,p_line_definition_code       => l_line_definition_code
8674       ,p_accounting_line_code       => l_component_code
8675       ,p_accounting_line_type_code  => l_component_type_code
8676       ,p_accounting_line_appl_id    => l_component_appl_id
8677       ,p_amb_context_code           => l_amb_context_code
8678       ,p_entity_code                => l_entity_code
8679       ,p_event_class_code           => l_event_class_code);
8680    --
8681    -- set accounting class
8682    --
8683    xla_ae_lines_pkg.SetAcctClass(
8684            p_accounting_class_code  => 'ACCRUAL'
8685          , p_ae_header_id           => l_ae_header_id
8686          );
8687 
8688    --
8689    -- set rounding class
8690    --
8691    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8692                       'ACCRUAL';
8693 
8694    --
8695    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8696    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8697    --
8698    -- bulk performance
8699    --
8700    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8701 
8702    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8703       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8704 
8705    -- 4955764
8706    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8707       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8708 
8709    -- 4458381 Public Sector Enh
8710    
8711    --
8712    -- set accounting attributes for the line type
8713    --
8714    l_entered_amt_idx := 25;
8715    l_accted_amt_idx  := 30;
8716    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
8717    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8718    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
8719    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8720    l_rec_acct_attrs.array_num_value(2)  := 
8721 xla_ae_sources_pkg.GetSystemSourceNum(
8722    p_source_code           => 'XLA_EVENT_APPL_ID'
8723  , p_source_type_code      => 'Y'
8724  , p_source_application_id =>  602
8725 );
8726    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8727    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
8728    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8729    l_rec_acct_attrs.array_char_value(4)  := 
8730 xla_ae_sources_pkg.GetSystemSourceChar(
8731    p_source_code           => 'XLA_ENTITY_CODE'
8732  , p_source_type_code      => 'Y'
8733  , p_source_application_id =>  602
8734 );
8735    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8736    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
8737    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8738    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
8739    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8740    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
8741    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8742    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
8743    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8744    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
8745    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8746    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
8747    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8748    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
8749    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8753    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
8750    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
8751    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8752    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
8754    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
8755    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
8756    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
8757    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
8758    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
8759    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
8760    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
8761    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
8762    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
8763    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
8764    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
8765    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
8766    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
8767    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
8768    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
8769    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
8770    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
8771    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
8772    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
8773    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
8774    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
8775    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
8776    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
8777    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
8778    l_rec_acct_attrs.array_char_value(26)  := p_source_109;
8779    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
8780    l_rec_acct_attrs.array_date_value(27)  := p_source_61;
8781    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
8782    l_rec_acct_attrs.array_num_value(28)  := p_source_62;
8783    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
8784    l_rec_acct_attrs.array_char_value(29)  := p_source_63;
8785    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
8786    l_rec_acct_attrs.array_num_value(30)  := p_source_110;
8787    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
8788    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
8789    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
8790    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
8791    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
8792    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
8793    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
8794    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
8795    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
8796    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
8797    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
8798    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
8799    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
8800    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
8801    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
8802    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
8803    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
8804    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
8805    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
8806    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
8807    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
8808    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
8809    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
8810    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
8811    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
8812    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
8813    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
8814    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
8815 
8816    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8817    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8818 
8819    ---------------------------------------------------------------------------------------------------------------
8820    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8821    ---------------------------------------------------------------------------------------------------------------
8822    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8823 
8824    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8825    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8826 
8827    IF xla_accounting_cache_pkg.GetValueChar
8828          (p_source_code         => 'LEDGER_CATEGORY_CODE'
8829          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8830    AND l_bflow_method_code = 'PRIOR_ENTRY'
8831 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8832    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8833          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8834        )
8838            ,p_business_class_code     => l_bflow_class_code
8835    THEN
8836          xla_ae_lines_pkg.BflowUpgEntry
8837            (p_business_method_code    => l_bflow_method_code
8839            ,p_balance_type            => l_balance_type_code);
8840    ELSE
8841       NULL;
8842 -- No business flow processing for business flow method of NONE.
8843    END IF;
8844 
8845    --
8846    -- call analytical criteria
8847    --
8848    
8849    --
8850    -- call description
8851    --
8852    -- No description or it is inherited.
8853    --
8854    -- call ADRs
8855    -- Bug 4922099
8856    --
8857    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8858         (NVL(l_actual_upg_option, 'N') = 'O') OR
8859         (NVL(l_enc_upg_option, 'N') = 'O')
8860       )
8861    THEN
8862    NULL;
8863    --
8864    --
8865    
8866   l_ccid := AcctDerRule_28(
8867            p_application_id           => p_application_id
8868          , p_ae_header_id             => l_ae_header_id 
8869 , p_source_29 => p_source_29
8870          , x_transaction_coa_id       => l_adr_transaction_coa_id
8871          , x_accounting_coa_id        => l_adr_accounting_coa_id
8872          , x_value_type_code          => l_adr_value_type_code
8873          , p_side                     => 'NA'
8874    );
8875 
8876    xla_ae_lines_pkg.set_ccid(
8877     p_code_combination_id          => l_ccid
8878   , p_value_type_code              => l_adr_value_type_code
8879   , p_transaction_coa_id           => l_adr_transaction_coa_id
8880   , p_accounting_coa_id            => l_adr_accounting_coa_id
8881   , p_adr_code                     => 'AP_INVOICE_DIST'
8882   , p_adr_type_code                => 'S'
8883   , p_component_type               => l_component_type
8884   , p_component_code               => l_component_code
8885   , p_component_type_code          => l_component_type_code
8886   , p_component_appl_id            => l_component_appl_id
8887   , p_amb_context_code             => l_amb_context_code
8888   , p_side                         => 'NA'
8889   );
8890 
8891 
8892    --
8893    --
8894    END IF;
8895    --
8896    -- Bug 4922099
8897    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8898           (NVL(l_enc_upg_option, 'N') = 'O')
8899         ) AND
8900         (l_bflow_method_code = 'PRIOR_ENTRY')
8901       )
8902    THEN
8903       IF
8904       --
8905       1 = 2
8906       --
8907       THEN
8908       xla_accounting_err_pkg.build_message
8909                                     (p_appli_s_name            => 'XLA'
8910                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8911                                     ,p_token_1                 => 'LINE_NUMBER'
8912                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
8913                                     ,p_token_2                 => 'LINE_TYPE_NAME'
8914                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
8915                                                                              l_component_type
8916                                                                             ,l_component_code
8917                                                                             ,l_component_type_code
8918                                                                             ,l_component_appl_id
8919                                                                             ,l_amb_context_code
8920                                                                             ,l_entity_code
8921                                                                             ,l_event_class_code
8922                                                                            )
8923                                     ,p_token_3                 => 'OWNER'
8924                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
8925                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
8926                                                                           ,p_lookup_code    => l_component_type_code
8927                                                                          )
8928                                     ,p_token_4                 => 'PRODUCT_NAME'
8929                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8930                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8931                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8932                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8933                                     ,p_ae_header_id            =>  NULL
8934                                        );
8935 
8936         IF (C_LEVEL_ERROR>= g_log_level) THEN
8937                  trace
8938                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8939                       ,p_level    => C_LEVEL_ERROR
8940                       ,p_module   => l_log_module);
8941         END IF;
8942       END IF;
8943    END IF;
8944    --
8945    --
8946    ------------------------------------------------------------------------------------------------
8947    -- 4219869 Business Flow
8948    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8949    -- Prior Entry.  Currently, the following code is always generated.
8953    ------------------------------------------------------------------------------------
8950    ------------------------------------------------------------------------------------------------
8951    XLA_AE_LINES_PKG.ValidateCurrentLine;
8952 
8954    -- 4219869 Business Flow
8955    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8956    ------------------------------------------------------------------------------------
8957    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8958 
8959    ----------------------------------------------------------------------------------
8960    -- 4219869 Business Flow
8961    -- Update journal entry status -- Need to generate this within IF <condition>
8962    ----------------------------------------------------------------------------------
8963    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8964          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8965          ,p_balance_type_code => l_balance_type_code
8966          );
8967 
8968    -------------------------------------------------------------------------------------------
8969    -- 4262811 - Generate the Accrual Reversal lines
8970    -------------------------------------------------------------------------------------------
8971    BEGIN
8972       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8973                               (g_array_event(p_event_id).array_value_num('header_index'));
8974       IF l_acc_rev_flag IS NULL THEN
8975          l_acc_rev_flag := 'N';
8976       END IF;
8977    EXCEPTION
8978       WHEN OTHERS THEN
8979          l_acc_rev_flag := 'N';
8980    END;
8981    --
8982    IF (l_acc_rev_flag = 'Y') THEN
8983 
8984        -- 4645092  ------------------------------------------------------------------------------
8985        -- To allow MPA report to determine if it should generate report process
8986        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8987        ------------------------------------------------------------------------------------------
8988 
8989        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8990        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8991    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
8992    -- call ADRs
8993    -- Bug 4922099
8994    --
8995    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8996         (NVL(l_actual_upg_option, 'N') = 'O') OR
8997         (NVL(l_enc_upg_option, 'N') = 'O')
8998       )
8999    THEN
9000    NULL;
9001    --
9002    --
9003    
9004   l_ccid := AcctDerRule_28(
9005            p_application_id           => p_application_id
9006          , p_ae_header_id             => l_ae_header_id 
9007 , p_source_29 => p_source_29
9008          , x_transaction_coa_id       => l_adr_transaction_coa_id
9009          , x_accounting_coa_id        => l_adr_accounting_coa_id
9010          , x_value_type_code          => l_adr_value_type_code
9011          , p_side                     => 'NA'
9012    );
9013 
9014    xla_ae_lines_pkg.set_ccid(
9015     p_code_combination_id          => l_ccid
9016   , p_value_type_code              => l_adr_value_type_code
9017   , p_transaction_coa_id           => l_adr_transaction_coa_id
9018   , p_accounting_coa_id            => l_adr_accounting_coa_id
9019   , p_adr_code                     => 'AP_INVOICE_DIST'
9020   , p_adr_type_code                => 'S'
9021   , p_component_type               => l_component_type
9022   , p_component_code               => l_component_code
9023   , p_component_type_code          => l_component_type_code
9024   , p_component_appl_id            => l_component_appl_id
9025   , p_amb_context_code             => l_amb_context_code
9026   , p_side                         => 'NA'
9027   );
9028 
9029 
9030    --
9031    --
9032    END IF;
9033 
9034        --
9035        -- Update the line information that should be overwritten
9036        --
9037        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9038                                          p_header_num   => 1);
9039        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
9040 
9041        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9042 
9043        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
9044           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9045        END IF;
9046 
9047       --
9048       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9049       --
9050       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9051           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
9052       ELSE
9053           ---------------------------------------------------------------------------------------------------
9054           -- 4262811a Switch Sign
9055           ---------------------------------------------------------------------------------------------------
9056           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
9057           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9058                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9062           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9059           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9060                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9061           -- 5132302
9063                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9064 
9065       END IF;
9066 
9067       -- 4955764
9068       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9069       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9070 
9071 
9072       XLA_AE_LINES_PKG.ValidateCurrentLine;
9073       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9074 
9075       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9076                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9077                ,p_balance_type_code => l_balance_type_code);
9078 
9079    END IF;
9080 
9081    -----------------------------------------------------------------------------------------
9082    -- 4262811 Multiperiod Accounting
9083    -----------------------------------------------------------------------------------------
9084      -- No MPA option is assigned.
9085 
9086 
9087 END IF;
9088 END IF;
9089 --
9090 
9091 --
9092 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9093    trace
9094       (p_msg      => 'END of AcctLineType_43'
9095       ,p_level    => C_LEVEL_PROCEDURE
9096       ,p_module   => l_log_module);
9097 END IF;
9098 --
9099 EXCEPTION
9100   WHEN xla_exceptions_pkg.application_exception THEN
9101       RAISE;
9102   WHEN OTHERS THEN
9103        xla_exceptions_pkg.raise_message
9104            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_43');
9105 END AcctLineType_43;
9106 --
9107 
9108 ---------------------------------------
9109 --
9110 -- PRIVATE FUNCTION
9111 --         AcctLineType_44
9112 --
9113 ---------------------------------------
9114 PROCEDURE AcctLineType_44 (
9115   p_application_id        IN NUMBER
9116  ,p_event_id              IN NUMBER
9117  ,p_calculate_acctd_flag  IN VARCHAR2
9118  ,p_calculate_g_l_flag    IN VARCHAR2
9119  ,p_actual_flag           IN OUT VARCHAR2
9120  ,p_balance_type_code     OUT VARCHAR2
9121  ,p_gain_or_loss_ref      OUT VARCHAR2
9122  
9123 --Automatic Offsets Value
9124  , p_source_16            IN VARCHAR2
9125  , p_source_16_meaning    IN VARCHAR2
9126 --Purchase Order Rate Variance Gain Account
9127  , p_source_17            IN NUMBER
9128 --Destination Type of the PO Distribution
9129  , p_source_19            IN VARCHAR2
9130  , p_source_19_meaning    IN VARCHAR2
9131 --Purchase Order Rate Variance Loss Account
9132  , p_source_20            IN NUMBER
9133 --Payment Distribution (Payment Rate) Ledger Amount
9134  , p_source_21            IN NUMBER
9135 --Payment Distribution (Cleared Rate) Ledger Amount
9136  , p_source_22            IN NUMBER
9137 --Invoice Distribution Account
9138  , p_source_29            IN NUMBER
9139 --Invoice Distribution Type
9140  , p_source_32            IN VARCHAR2
9141  , p_source_32_meaning    IN VARCHAR2
9142 --Automatic Offsets Flag
9143  , p_source_42            IN VARCHAR2
9144  , p_source_42_meaning    IN VARCHAR2
9145 --When to Account for Payment Option
9146  , p_source_50            IN VARCHAR2
9147 --Payment Distribution Type
9148  , p_source_51            IN VARCHAR2
9149  , p_source_51_meaning    IN VARCHAR2
9150 --Accounting Reversal Indicator
9151  , p_source_52            IN VARCHAR2
9152 --Payment Distribution Amount
9153  , p_source_53            IN NUMBER
9154 --Business Flow Accounts Payable Application Identifier
9155  , p_source_54            IN NUMBER
9156 --Business Flow Payment Distribution Type
9157  , p_source_55            IN VARCHAR2
9158 --Business Flow Payment Entity Code
9159  , p_source_56            IN VARCHAR2
9160 --Business Flow Payment Distribution Identifier
9161  , p_source_57            IN NUMBER
9162 --Business Flow Payment Identifier
9163  , p_source_58            IN NUMBER
9164 --Payment Distribution Identifier
9165  , p_source_59            IN NUMBER
9166 --Distribution Link Type
9167  , p_source_60            IN VARCHAR2
9168 --Override Accounted Amount Indicator
9169  , p_source_64            IN VARCHAR2
9170  , p_source_64_meaning    IN VARCHAR2
9171 --Payment Supplier Identifier
9172  , p_source_65            IN NUMBER
9173 --Payment Supplier Site Identifier
9174  , p_source_66            IN NUMBER
9175 --Third Party Type
9176  , p_source_67            IN VARCHAR2
9177 --Payment Distribution Reversed Identifier
9178  , p_source_68            IN NUMBER
9179 --Invoice Distribution Tax Line Identifier
9180  , p_source_69            IN NUMBER
9181 --Invoice Distribution Summary Tax Line Identifier
9182  , p_source_70            IN NUMBER
9183 )
9184 IS
9185 
9186 l_component_type              VARCHAR2(80);
9187 l_component_code              VARCHAR2(30);
9188 l_component_type_code         VARCHAR2(1);
9189 l_component_appl_id           INTEGER;
9190 l_amb_context_code            VARCHAR2(30);
9191 l_entity_code                 VARCHAR2(30);
9195 l_line_definition_code        VARCHAR2(30);
9192 l_event_class_code            VARCHAR2(30);
9193 l_ae_header_id                NUMBER;
9194 l_event_type_code             VARCHAR2(30);
9196 l_line_definition_owner_code  VARCHAR2(1);
9197 --
9198 -- adr variables
9199 l_segment                     VARCHAR2(30);
9200 l_ccid                        NUMBER;
9201 l_adr_transaction_coa_id      NUMBER;
9202 l_adr_accounting_coa_id       NUMBER;
9203 l_adr_flexfield_segment_code  VARCHAR2(30);
9204 l_adr_flex_value_set_id       NUMBER;
9205 l_adr_value_type_code         VARCHAR2(30);
9206 l_adr_value_combination_id    NUMBER;
9207 l_adr_value_segment_code      VARCHAR2(30);
9208 
9209 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
9210 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
9211 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
9212 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
9213 
9214 -- 4262811 Variables ------------------------------------------------------------------------------------------
9215 l_entered_amt_idx             NUMBER;
9216 l_accted_amt_idx              NUMBER;
9217 l_acc_rev_flag                VARCHAR2(1);
9218 l_accrual_line_num            NUMBER;
9219 l_tmp_amt                     NUMBER;
9220 l_acc_rev_natural_side_code   VARCHAR2(1);
9221 
9222 l_num_entries                 NUMBER;
9223 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
9224 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
9225 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
9226 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
9227 l_recog_line_1                NUMBER;
9228 l_recog_line_2                NUMBER;
9229 
9230 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
9231 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
9232 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
9233 
9234 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9235 
9236 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
9237 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
9238 
9239 ---------------------------------------------------------------------------------------------------------------
9240 
9241 
9242 --
9243 -- bulk performance
9244 --
9245 l_balance_type_code           VARCHAR2(1);
9246 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
9247 l_log_module                  VARCHAR2(240);
9248 
9249 --
9250 -- Upgrade strategy
9251 --
9252 l_actual_upg_option           VARCHAR2(1);
9253 l_enc_upg_option           VARCHAR2(1);
9254 
9255 --
9256 BEGIN
9257 --
9258 IF g_log_enabled THEN
9259       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_44';
9260 END IF;
9261 --
9262 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9263 
9264       trace
9265          (p_msg      => 'BEGIN of AcctLineType_44'
9266          ,p_level    => C_LEVEL_PROCEDURE
9267          ,p_module   => l_log_module);
9268 
9269 END IF;
9270 --
9271 l_component_type             := 'AMB_JLT';
9272 l_component_code             := 'AP_ALC_EX_RATE_VAR_CLEAR';
9273 l_component_type_code        := 'S';
9274 l_component_appl_id          :=  200;
9275 l_amb_context_code           := 'DEFAULT';
9276 l_entity_code                := 'AP_PAYMENTS';
9277 l_event_class_code           := 'RECONCILED PAYMENTS';
9278 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
9279 l_line_definition_owner_code := 'S';
9280 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
9281 --
9282 l_balance_type_code          := 'A';
9283 l_segment                     := NULL;
9284 l_ccid                        := NULL;
9285 l_adr_transaction_coa_id      := NULL;
9286 l_adr_accounting_coa_id       := NULL;
9287 l_adr_flexfield_segment_code  := NULL;
9288 l_adr_flex_value_set_id       := NULL;
9289 l_adr_value_type_code         := NULL;
9290 l_adr_value_combination_id    := NULL;
9291 l_adr_value_segment_code      := NULL;
9292 
9293 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
9294 l_bflow_class_code           := '';    -- 4219869 Business Flow
9295 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
9296 l_budgetary_control_flag     := 'N';
9297 
9298 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
9299 l_bflow_applied_to_amt       := NULL; -- 5132302
9300 l_entered_amt_idx            := NULL;          -- 4262811
9301 l_accted_amt_idx             := NULL;          -- 4262811
9302 l_acc_rev_flag               := NULL;          -- 4262811
9303 l_accrual_line_num           := NULL;          -- 4262811
9304 l_tmp_amt                    := NULL;          -- 4262811
9305 --
9306 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
9307             (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
9308                return;
9309   END IF;
9310   
9311 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9312     l_balance_type_code <> 'B' THEN
9313 IF NVL(p_source_50,'
9314 ') =  'CLEAR_CLEAR' AND 
9315 NVL(p_source_32,'
9316 ') =  'ACCRUAL' AND 
9317 (NVL(p_source_51,'
9318 ') =  'CASH' OR 
9322 
9319 NVL(p_source_51,'
9320 ') =  'DISCOUNT')
9321  THEN 
9323    --
9324    XLA_AE_LINES_PKG.SetNewLine;
9325 
9326    p_balance_type_code          := l_balance_type_code;
9327    -- set the flag so later we will know whether the gain loss line needs to be created
9328    
9329    IF(l_balance_type_code = 'A' ) THEN
9330      p_actual_flag :='G';
9331    END IF;
9332 
9333    --
9334    -- bulk performance
9335    --
9336    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9337                                       p_header_num   => 0); -- 4262811
9338    --
9339    -- set accounting line options
9340    --
9341    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9342            p_natural_side_code          => 'G'
9343          , p_gain_or_loss_flag          => 'N'
9344          , p_gl_transfer_mode_code      => 'S'
9345          , p_acct_entry_type_code       => 'A'
9346          , p_switch_side_flag           => ''
9347          , p_merge_duplicate_code       => 'A'
9348          );
9349    --
9350    l_acc_rev_natural_side_code := 'C';  -- 4262811
9351    -- 
9352    --
9353    -- set accounting line type info
9354    --
9355    xla_ae_lines_pkg.SetAcctLineType
9356       (p_component_type             => l_component_type
9357       ,p_event_type_code            => l_event_type_code
9358       ,p_line_definition_owner_code => l_line_definition_owner_code
9359       ,p_line_definition_code       => l_line_definition_code
9360       ,p_accounting_line_code       => l_component_code
9361       ,p_accounting_line_type_code  => l_component_type_code
9362       ,p_accounting_line_appl_id    => l_component_appl_id
9363       ,p_amb_context_code           => l_amb_context_code
9364       ,p_entity_code                => l_entity_code
9365       ,p_event_class_code           => l_event_class_code);
9366    --
9367    -- set accounting class
9368    --
9369    xla_ae_lines_pkg.SetAcctClass(
9370            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
9371          , p_ae_header_id           => l_ae_header_id
9372          );
9373 
9374    --
9375    -- set rounding class
9376    --
9377    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9378                       'EXCHANGE_RATE_VARIANCE';
9379 
9380    --
9381    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9382    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9383    --
9384    -- bulk performance
9385    --
9386    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9387 
9388    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9389       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9390 
9391    -- 4955764
9392    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9393       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9394 
9395    -- 4458381 Public Sector Enh
9396    
9397    --
9398    -- set accounting attributes for the line type
9399    --
9400    l_entered_amt_idx := NULL;
9401    l_accted_amt_idx  := 10;
9402    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
9403    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9404    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
9405    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
9406    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
9407    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
9408    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
9409    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9410    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
9411    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
9412    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
9413    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
9414    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
9415    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9416    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
9417    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
9418    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
9419    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
9420    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
9421    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
9422    l_rec_acct_attrs.array_num_value(10)  := p_source_22;
9423    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
9424    l_rec_acct_attrs.array_char_value(11)  := p_source_64;
9425    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
9426    l_rec_acct_attrs.array_num_value(12)  := p_source_65;
9427    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
9428    l_rec_acct_attrs.array_num_value(13)  := p_source_66;
9429    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
9430    l_rec_acct_attrs.array_char_value(14)  := p_source_67;
9431    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
9432    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_68);
9436    l_rec_acct_attrs.array_num_value(17)  := p_source_69;
9433    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
9434    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
9435    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
9437    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
9438    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
9439    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
9440    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
9441 
9442    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9443    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9444 
9445    ---------------------------------------------------------------------------------------------------------------
9446    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9447    ---------------------------------------------------------------------------------------------------------------
9448    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9449 
9450    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9451    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9452 
9453    IF xla_accounting_cache_pkg.GetValueChar
9454          (p_source_code         => 'LEDGER_CATEGORY_CODE'
9455          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9456    AND l_bflow_method_code = 'PRIOR_ENTRY'
9457 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9458    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9459          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9460        )
9461    THEN
9462          xla_ae_lines_pkg.BflowUpgEntry
9463            (p_business_method_code    => l_bflow_method_code
9464            ,p_business_class_code     => l_bflow_class_code
9465            ,p_balance_type            => l_balance_type_code);
9466    ELSE
9467       NULL;
9468 -- No business flow processing for business flow method of NONE.
9469    END IF;
9470 
9471    --
9472    -- call analytical criteria
9473    --
9474    
9475    --
9476    -- call description
9477    --
9478    -- No description or it is inherited.
9479    --
9480    -- call ADRs
9481    -- Bug 4922099
9482    --
9483    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9484         (NVL(l_actual_upg_option, 'N') = 'O') OR
9485         (NVL(l_enc_upg_option, 'N') = 'O')
9486       )
9487    THEN
9488    NULL;
9489    --
9490    --
9491    
9492   l_ccid := AcctDerRule_24(
9493            p_application_id           => p_application_id
9494          , p_ae_header_id             => l_ae_header_id 
9495 , p_source_16 => p_source_16
9496 , p_source_16_meaning => p_source_16_meaning
9497 , p_source_17 => p_source_17
9498 , p_source_19 => p_source_19
9499 , p_source_19_meaning => p_source_19_meaning
9500 , p_source_20 => p_source_20
9501 , p_source_21 => p_source_21
9502 , p_source_22 => p_source_22
9503 , p_source_29 => p_source_29
9504 , p_source_42 => p_source_42
9505 , p_source_42_meaning => p_source_42_meaning
9506          , x_transaction_coa_id       => l_adr_transaction_coa_id
9507          , x_accounting_coa_id        => l_adr_accounting_coa_id
9508          , x_value_type_code          => l_adr_value_type_code
9509          , p_side                     => 'ALL'
9510    );
9511 
9512    xla_ae_lines_pkg.set_ccid(
9513     p_code_combination_id          => l_ccid
9514   , p_value_type_code              => l_adr_value_type_code
9515   , p_transaction_coa_id           => l_adr_transaction_coa_id
9516   , p_accounting_coa_id            => l_adr_accounting_coa_id
9517   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
9518   , p_adr_type_code                => 'S'
9519   , p_component_type               => l_component_type
9520   , p_component_code               => l_component_code
9521   , p_component_type_code          => l_component_type_code
9522   , p_component_appl_id            => l_component_appl_id
9523   , p_amb_context_code             => l_amb_context_code
9524   , p_side                         => 'ALL'
9525   );
9526 
9527 
9528    l_segment := AcctDerRule_7(
9529            p_application_id           => p_application_id
9530          , p_ae_header_id             => l_ae_header_id 
9531 , p_source_16 => p_source_16
9532 , p_source_16_meaning => p_source_16_meaning
9533 , p_source_17 => p_source_17
9534 , p_source_19 => p_source_19
9535 , p_source_19_meaning => p_source_19_meaning
9536          , x_transaction_coa_id       => l_adr_transaction_coa_id
9537          , x_accounting_coa_id        => l_adr_accounting_coa_id
9538          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9539          , x_flex_value_set_id        => l_adr_flex_value_set_id
9540          , x_value_type_code          => l_adr_value_type_code
9541          , x_value_combination_id     => l_adr_value_combination_id
9542          , x_value_segment_code       => l_adr_value_segment_code
9543          , p_side                     => 'CREDIT'
9544          , p_override_seg_flag        => 'Y'
9545    );
9546 
9547    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9548 
9549       xla_ae_lines_pkg.set_segment(
9550           p_to_segment_code         => 'GL_ACCOUNT'
9554         , p_value_type_code         => l_adr_value_type_code
9551         , p_segment_value           => l_segment
9552         , p_from_segment_code       => l_adr_value_segment_code
9553         , p_from_combination_id     => l_adr_value_combination_id
9555         , p_transaction_coa_id      => l_adr_transaction_coa_id
9556         , p_accounting_coa_id       => l_adr_accounting_coa_id
9557         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9558         , p_flex_value_set_id       => l_adr_flex_value_set_id
9559         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
9560         , p_adr_type_code           => 'S'
9561         , p_component_type          => l_component_type
9562         , p_component_code          => l_component_code
9563         , p_component_type_code     => l_component_type_code
9564         , p_component_appl_id       => l_component_appl_id
9565         , p_amb_context_code        => l_amb_context_code
9566         , p_entity_code             => 'AP_PAYMENTS'
9567         , p_event_class_code        => 'RECONCILED PAYMENTS'
9568         , p_side                    => 'CREDIT'
9569         );
9570 
9571   END IF;
9572 
9573    l_segment := AcctDerRule_8(
9574            p_application_id           => p_application_id
9575          , p_ae_header_id             => l_ae_header_id 
9576 , p_source_16 => p_source_16
9577 , p_source_16_meaning => p_source_16_meaning
9578 , p_source_19 => p_source_19
9579 , p_source_19_meaning => p_source_19_meaning
9580 , p_source_20 => p_source_20
9581          , x_transaction_coa_id       => l_adr_transaction_coa_id
9582          , x_accounting_coa_id        => l_adr_accounting_coa_id
9583          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9584          , x_flex_value_set_id        => l_adr_flex_value_set_id
9585          , x_value_type_code          => l_adr_value_type_code
9586          , x_value_combination_id     => l_adr_value_combination_id
9587          , x_value_segment_code       => l_adr_value_segment_code
9588          , p_side                     => 'DEBIT'
9589          , p_override_seg_flag        => 'Y'
9590    );
9591 
9592    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9593 
9594       xla_ae_lines_pkg.set_segment(
9595           p_to_segment_code         => 'GL_ACCOUNT'
9596         , p_segment_value           => l_segment
9597         , p_from_segment_code       => l_adr_value_segment_code
9598         , p_from_combination_id     => l_adr_value_combination_id
9599         , p_value_type_code         => l_adr_value_type_code
9600         , p_transaction_coa_id      => l_adr_transaction_coa_id
9601         , p_accounting_coa_id       => l_adr_accounting_coa_id
9602         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9603         , p_flex_value_set_id       => l_adr_flex_value_set_id
9604         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
9605         , p_adr_type_code           => 'S'
9606         , p_component_type          => l_component_type
9607         , p_component_code          => l_component_code
9608         , p_component_type_code     => l_component_type_code
9609         , p_component_appl_id       => l_component_appl_id
9610         , p_amb_context_code        => l_amb_context_code
9611         , p_entity_code             => 'AP_PAYMENTS'
9612         , p_event_class_code        => 'RECONCILED PAYMENTS'
9613         , p_side                    => 'DEBIT'
9614         );
9615 
9616   END IF;
9617 
9618    l_segment := AcctDerRule_17(
9619            p_application_id           => p_application_id
9620          , p_ae_header_id             => l_ae_header_id 
9621 , p_source_16 => p_source_16
9622 , p_source_16_meaning => p_source_16_meaning
9623 , p_source_19 => p_source_19
9624 , p_source_19_meaning => p_source_19_meaning
9625 , p_source_29 => p_source_29
9626          , x_transaction_coa_id       => l_adr_transaction_coa_id
9627          , x_accounting_coa_id        => l_adr_accounting_coa_id
9628          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9629          , x_flex_value_set_id        => l_adr_flex_value_set_id
9630          , x_value_type_code          => l_adr_value_type_code
9631          , x_value_combination_id     => l_adr_value_combination_id
9632          , x_value_segment_code       => l_adr_value_segment_code
9633          , p_side                     => 'ALL'
9634          , p_override_seg_flag        => 'Y'
9635    );
9636 
9637    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9638 
9639       xla_ae_lines_pkg.set_segment(
9640           p_to_segment_code         => 'GL_BALANCING'
9641         , p_segment_value           => l_segment
9642         , p_from_segment_code       => l_adr_value_segment_code
9643         , p_from_combination_id     => l_adr_value_combination_id
9644         , p_value_type_code         => l_adr_value_type_code
9645         , p_transaction_coa_id      => l_adr_transaction_coa_id
9646         , p_accounting_coa_id       => l_adr_accounting_coa_id
9647         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9648         , p_flex_value_set_id       => l_adr_flex_value_set_id
9649         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
9650         , p_adr_type_code           => 'S'
9651         , p_component_type          => l_component_type
9652         , p_component_code          => l_component_code
9653         , p_component_type_code     => l_component_type_code
9654         , p_component_appl_id       => l_component_appl_id
9655         , p_amb_context_code        => l_amb_context_code
9659         );
9656         , p_entity_code             => 'AP_PAYMENTS'
9657         , p_event_class_code        => 'RECONCILED PAYMENTS'
9658         , p_side                    => 'ALL'
9660 
9661   END IF;
9662 
9663    --
9664    --
9665    END IF;
9666    --
9667    -- Bug 4922099
9668    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9669           (NVL(l_enc_upg_option, 'N') = 'O')
9670         ) AND
9671         (l_bflow_method_code = 'PRIOR_ENTRY')
9672       )
9673    THEN
9674       IF
9675       --
9676       1 = 2
9677       --
9678       THEN
9679       xla_accounting_err_pkg.build_message
9680                                     (p_appli_s_name            => 'XLA'
9681                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9682                                     ,p_token_1                 => 'LINE_NUMBER'
9683                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
9684                                     ,p_token_2                 => 'LINE_TYPE_NAME'
9685                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
9686                                                                              l_component_type
9687                                                                             ,l_component_code
9688                                                                             ,l_component_type_code
9689                                                                             ,l_component_appl_id
9690                                                                             ,l_amb_context_code
9691                                                                             ,l_entity_code
9692                                                                             ,l_event_class_code
9693                                                                            )
9694                                     ,p_token_3                 => 'OWNER'
9695                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
9696                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
9697                                                                           ,p_lookup_code    => l_component_type_code
9698                                                                          )
9699                                     ,p_token_4                 => 'PRODUCT_NAME'
9700                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9701                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9702                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9703                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9704                                     ,p_ae_header_id            =>  NULL
9705                                        );
9706 
9707         IF (C_LEVEL_ERROR>= g_log_level) THEN
9708                  trace
9709                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9710                       ,p_level    => C_LEVEL_ERROR
9711                       ,p_module   => l_log_module);
9712         END IF;
9713       END IF;
9714    END IF;
9715    --
9716    --
9717    ------------------------------------------------------------------------------------------------
9718    -- 4219869 Business Flow
9719    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9720    -- Prior Entry.  Currently, the following code is always generated.
9721    ------------------------------------------------------------------------------------------------
9722    XLA_AE_LINES_PKG.ValidateCurrentLine;
9723 
9724    ------------------------------------------------------------------------------------
9725    -- 4219869 Business Flow
9726    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9727    ------------------------------------------------------------------------------------
9728    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9729 
9730    ----------------------------------------------------------------------------------
9731    -- 4219869 Business Flow
9732    -- Update journal entry status -- Need to generate this within IF <condition>
9733    ----------------------------------------------------------------------------------
9734    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9735          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9736          ,p_balance_type_code => l_balance_type_code
9737          );
9738 
9739    -------------------------------------------------------------------------------------------
9740    -- 4262811 - Generate the Accrual Reversal lines
9741    -------------------------------------------------------------------------------------------
9742    BEGIN
9743       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9744                               (g_array_event(p_event_id).array_value_num('header_index'));
9745       IF l_acc_rev_flag IS NULL THEN
9746          l_acc_rev_flag := 'N';
9747       END IF;
9748    EXCEPTION
9749       WHEN OTHERS THEN
9750          l_acc_rev_flag := 'N';
9751    END;
9752    --
9753    IF (l_acc_rev_flag = 'Y') THEN
9754 
9755        -- 4645092  ------------------------------------------------------------------------------
9756        -- To allow MPA report to determine if it should generate report process
9757        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9761        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9758        ------------------------------------------------------------------------------------------
9759 
9760        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9762    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
9763    -- call ADRs
9764    -- Bug 4922099
9765    --
9766    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9767         (NVL(l_actual_upg_option, 'N') = 'O') OR
9768         (NVL(l_enc_upg_option, 'N') = 'O')
9769       )
9770    THEN
9771    NULL;
9772    --
9773    --
9774    
9775   l_ccid := AcctDerRule_24(
9776            p_application_id           => p_application_id
9777          , p_ae_header_id             => l_ae_header_id 
9778 , p_source_16 => p_source_16
9779 , p_source_16_meaning => p_source_16_meaning
9780 , p_source_17 => p_source_17
9781 , p_source_19 => p_source_19
9782 , p_source_19_meaning => p_source_19_meaning
9783 , p_source_20 => p_source_20
9784 , p_source_21 => p_source_21
9785 , p_source_22 => p_source_22
9786 , p_source_29 => p_source_29
9787 , p_source_42 => p_source_42
9788 , p_source_42_meaning => p_source_42_meaning
9789          , x_transaction_coa_id       => l_adr_transaction_coa_id
9790          , x_accounting_coa_id        => l_adr_accounting_coa_id
9791          , x_value_type_code          => l_adr_value_type_code
9792          , p_side                     => 'ALL'
9793    );
9794 
9795    xla_ae_lines_pkg.set_ccid(
9796     p_code_combination_id          => l_ccid
9797   , p_value_type_code              => l_adr_value_type_code
9798   , p_transaction_coa_id           => l_adr_transaction_coa_id
9799   , p_accounting_coa_id            => l_adr_accounting_coa_id
9800   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
9801   , p_adr_type_code                => 'S'
9802   , p_component_type               => l_component_type
9803   , p_component_code               => l_component_code
9804   , p_component_type_code          => l_component_type_code
9805   , p_component_appl_id            => l_component_appl_id
9806   , p_amb_context_code             => l_amb_context_code
9807   , p_side                         => 'ALL'
9808   );
9809 
9810 
9811    l_segment := AcctDerRule_7(
9812            p_application_id           => p_application_id
9813          , p_ae_header_id             => l_ae_header_id 
9814 , p_source_16 => p_source_16
9815 , p_source_16_meaning => p_source_16_meaning
9816 , p_source_17 => p_source_17
9817 , p_source_19 => p_source_19
9818 , p_source_19_meaning => p_source_19_meaning
9819          , x_transaction_coa_id       => l_adr_transaction_coa_id
9820          , x_accounting_coa_id        => l_adr_accounting_coa_id
9821          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9822          , x_flex_value_set_id        => l_adr_flex_value_set_id
9823          , x_value_type_code          => l_adr_value_type_code
9824          , x_value_combination_id     => l_adr_value_combination_id
9825          , x_value_segment_code       => l_adr_value_segment_code
9826          , p_side                     => 'CREDIT'
9827          , p_override_seg_flag        => 'Y'
9828    );
9829 
9830    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9831 
9832       xla_ae_lines_pkg.set_segment(
9833           p_to_segment_code         => 'GL_ACCOUNT'
9834         , p_segment_value           => l_segment
9835         , p_from_segment_code       => l_adr_value_segment_code
9836         , p_from_combination_id     => l_adr_value_combination_id
9837         , p_value_type_code         => l_adr_value_type_code
9838         , p_transaction_coa_id      => l_adr_transaction_coa_id
9839         , p_accounting_coa_id       => l_adr_accounting_coa_id
9840         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9841         , p_flex_value_set_id       => l_adr_flex_value_set_id
9842         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
9843         , p_adr_type_code           => 'S'
9844         , p_component_type          => l_component_type
9845         , p_component_code          => l_component_code
9846         , p_component_type_code     => l_component_type_code
9847         , p_component_appl_id       => l_component_appl_id
9848         , p_amb_context_code        => l_amb_context_code
9849         , p_entity_code             => 'AP_PAYMENTS'
9850         , p_event_class_code        => 'RECONCILED PAYMENTS'
9851         , p_side                    => 'CREDIT'
9852         );
9853 
9854   END IF;
9855 
9856    l_segment := AcctDerRule_8(
9857            p_application_id           => p_application_id
9858          , p_ae_header_id             => l_ae_header_id 
9859 , p_source_16 => p_source_16
9860 , p_source_16_meaning => p_source_16_meaning
9861 , p_source_19 => p_source_19
9862 , p_source_19_meaning => p_source_19_meaning
9863 , p_source_20 => p_source_20
9864          , x_transaction_coa_id       => l_adr_transaction_coa_id
9865          , x_accounting_coa_id        => l_adr_accounting_coa_id
9866          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9867          , x_flex_value_set_id        => l_adr_flex_value_set_id
9868          , x_value_type_code          => l_adr_value_type_code
9869          , x_value_combination_id     => l_adr_value_combination_id
9870          , x_value_segment_code       => l_adr_value_segment_code
9871          , p_side                     => 'DEBIT'
9872          , p_override_seg_flag        => 'Y'
9873    );
9874 
9875    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9876 
9877       xla_ae_lines_pkg.set_segment(
9878           p_to_segment_code         => 'GL_ACCOUNT'
9879         , p_segment_value           => l_segment
9883         , p_transaction_coa_id      => l_adr_transaction_coa_id
9880         , p_from_segment_code       => l_adr_value_segment_code
9881         , p_from_combination_id     => l_adr_value_combination_id
9882         , p_value_type_code         => l_adr_value_type_code
9884         , p_accounting_coa_id       => l_adr_accounting_coa_id
9885         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9886         , p_flex_value_set_id       => l_adr_flex_value_set_id
9887         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
9888         , p_adr_type_code           => 'S'
9889         , p_component_type          => l_component_type
9890         , p_component_code          => l_component_code
9891         , p_component_type_code     => l_component_type_code
9892         , p_component_appl_id       => l_component_appl_id
9893         , p_amb_context_code        => l_amb_context_code
9894         , p_entity_code             => 'AP_PAYMENTS'
9895         , p_event_class_code        => 'RECONCILED PAYMENTS'
9896         , p_side                    => 'DEBIT'
9897         );
9898 
9899   END IF;
9900 
9901    l_segment := AcctDerRule_17(
9902            p_application_id           => p_application_id
9903          , p_ae_header_id             => l_ae_header_id 
9904 , p_source_16 => p_source_16
9905 , p_source_16_meaning => p_source_16_meaning
9906 , p_source_19 => p_source_19
9907 , p_source_19_meaning => p_source_19_meaning
9908 , p_source_29 => p_source_29
9909          , x_transaction_coa_id       => l_adr_transaction_coa_id
9910          , x_accounting_coa_id        => l_adr_accounting_coa_id
9911          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9912          , x_flex_value_set_id        => l_adr_flex_value_set_id
9913          , x_value_type_code          => l_adr_value_type_code
9914          , x_value_combination_id     => l_adr_value_combination_id
9915          , x_value_segment_code       => l_adr_value_segment_code
9916          , p_side                     => 'ALL'
9917          , p_override_seg_flag        => 'Y'
9918    );
9919 
9920    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9921 
9922       xla_ae_lines_pkg.set_segment(
9923           p_to_segment_code         => 'GL_BALANCING'
9924         , p_segment_value           => l_segment
9925         , p_from_segment_code       => l_adr_value_segment_code
9926         , p_from_combination_id     => l_adr_value_combination_id
9927         , p_value_type_code         => l_adr_value_type_code
9928         , p_transaction_coa_id      => l_adr_transaction_coa_id
9929         , p_accounting_coa_id       => l_adr_accounting_coa_id
9930         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9931         , p_flex_value_set_id       => l_adr_flex_value_set_id
9932         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
9933         , p_adr_type_code           => 'S'
9934         , p_component_type          => l_component_type
9935         , p_component_code          => l_component_code
9936         , p_component_type_code     => l_component_type_code
9937         , p_component_appl_id       => l_component_appl_id
9938         , p_amb_context_code        => l_amb_context_code
9939         , p_entity_code             => 'AP_PAYMENTS'
9940         , p_event_class_code        => 'RECONCILED PAYMENTS'
9941         , p_side                    => 'ALL'
9942         );
9943 
9944   END IF;
9945 
9946    --
9947    --
9948    END IF;
9949 
9950        --
9951        -- Update the line information that should be overwritten
9952        --
9953        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9954                                          p_header_num   => 1);
9955        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
9956 
9957        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9958 
9959        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
9960           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9961        END IF;
9962 
9963       --
9964       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9965       --
9966       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9967           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
9968       ELSE
9969           ---------------------------------------------------------------------------------------------------
9970           -- 4262811a Switch Sign
9971           ---------------------------------------------------------------------------------------------------
9972           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
9973           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9974                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9975           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9976                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9977           -- 5132302
9978           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9979                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9980 
9981       END IF;
9982 
9983       -- 4955764
9987 
9984       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9985       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9986 
9988       XLA_AE_LINES_PKG.ValidateCurrentLine;
9989       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9990 
9991       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9992                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9993                ,p_balance_type_code => l_balance_type_code);
9994 
9995    END IF;
9996 
9997    -----------------------------------------------------------------------------------------
9998    -- 4262811 Multiperiod Accounting
9999    -----------------------------------------------------------------------------------------
10000      -- No MPA option is assigned.
10001 
10002 
10003 END IF;
10004 END IF;
10005 --
10006 
10007 --
10008 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10009    trace
10010       (p_msg      => 'END of AcctLineType_44'
10011       ,p_level    => C_LEVEL_PROCEDURE
10012       ,p_module   => l_log_module);
10013 END IF;
10014 --
10015 EXCEPTION
10016   WHEN xla_exceptions_pkg.application_exception THEN
10017       RAISE;
10018   WHEN OTHERS THEN
10019        xla_exceptions_pkg.raise_message
10020            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_44');
10021 END AcctLineType_44;
10022 --
10023 
10024 ---------------------------------------
10025 --
10026 -- PRIVATE FUNCTION
10027 --         AcctLineType_45
10028 --
10029 ---------------------------------------
10030 PROCEDURE AcctLineType_45 (
10031   p_application_id        IN NUMBER
10032  ,p_event_id              IN NUMBER
10033  ,p_calculate_acctd_flag  IN VARCHAR2
10034  ,p_calculate_g_l_flag    IN VARCHAR2
10035  ,p_actual_flag           IN OUT VARCHAR2
10036  ,p_balance_type_code     OUT VARCHAR2
10037  ,p_gain_or_loss_ref      OUT VARCHAR2
10038  
10039 --Automatic Offsets Value
10040  , p_source_16            IN VARCHAR2
10041  , p_source_16_meaning    IN VARCHAR2
10042 --Purchase Order Rate Variance Gain Account
10043  , p_source_17            IN NUMBER
10044 --Destination Type of the PO Distribution
10045  , p_source_19            IN VARCHAR2
10046  , p_source_19_meaning    IN VARCHAR2
10047 --Purchase Order Rate Variance Loss Account
10048  , p_source_20            IN NUMBER
10049 --Payment Distribution (Payment Rate) Ledger Amount
10050  , p_source_21            IN NUMBER
10051 --Payment Distribution (Cleared Rate) Ledger Amount
10052  , p_source_22            IN NUMBER
10053 --Invoice Distribution Account
10054  , p_source_29            IN NUMBER
10055 --Invoice Distribution Type
10056  , p_source_32            IN VARCHAR2
10057  , p_source_32_meaning    IN VARCHAR2
10058 --Automatic Offsets Flag
10059  , p_source_42            IN VARCHAR2
10060  , p_source_42_meaning    IN VARCHAR2
10061 --When to Account for Payment Option
10062  , p_source_50            IN VARCHAR2
10063 --Accounting Reversal Indicator
10064  , p_source_52            IN VARCHAR2
10065 --Business Flow Accounts Payable Application Identifier
10066  , p_source_54            IN NUMBER
10067 --Payment Distribution Identifier
10068  , p_source_59            IN NUMBER
10069 --Distribution Link Type
10070  , p_source_60            IN VARCHAR2
10071 --Override Accounted Amount Indicator
10072  , p_source_64            IN VARCHAR2
10073  , p_source_64_meaning    IN VARCHAR2
10074 --Payment Supplier Identifier
10075  , p_source_65            IN NUMBER
10076 --Payment Supplier Site Identifier
10077  , p_source_66            IN NUMBER
10078 --Third Party Type
10079  , p_source_67            IN VARCHAR2
10080 --Payment Distribution Reversed Identifier
10081  , p_source_68            IN NUMBER
10082 --Invoice Distribution Tax Line Identifier
10083  , p_source_69            IN NUMBER
10084 --Invoice Distribution Summary Tax Line Identifier
10085  , p_source_70            IN NUMBER
10086 --Payment Type
10087  , p_source_71            IN VARCHAR2
10088  , p_source_71_meaning    IN VARCHAR2
10089 --Invoice Distribution Amount of the Payment Distribution
10090  , p_source_72            IN NUMBER
10091 --Business Flow Invoice Distribution Type
10092  , p_source_73            IN VARCHAR2
10093 --Business Flow Invoice Entity Code
10094  , p_source_74            IN VARCHAR2
10095 --Business Flow Invoice Distribution Identifier
10096  , p_source_75            IN NUMBER
10097 --Business Flow Invoice Identifier
10098  , p_source_76            IN NUMBER
10099 --Invoice Distribution Tax Distribution Identifier from Tax
10100  , p_source_77            IN NUMBER
10101 )
10102 IS
10103 
10104 l_component_type              VARCHAR2(80);
10105 l_component_code              VARCHAR2(30);
10106 l_component_type_code         VARCHAR2(1);
10107 l_component_appl_id           INTEGER;
10108 l_amb_context_code            VARCHAR2(30);
10109 l_entity_code                 VARCHAR2(30);
10110 l_event_class_code            VARCHAR2(30);
10111 l_ae_header_id                NUMBER;
10112 l_event_type_code             VARCHAR2(30);
10113 l_line_definition_code        VARCHAR2(30);
10114 l_line_definition_owner_code  VARCHAR2(1);
10115 --
10116 -- adr variables
10117 l_segment                     VARCHAR2(30);
10118 l_ccid                        NUMBER;
10119 l_adr_transaction_coa_id      NUMBER;
10120 l_adr_accounting_coa_id       NUMBER;
10121 l_adr_flexfield_segment_code  VARCHAR2(30);
10125 l_adr_value_segment_code      VARCHAR2(30);
10122 l_adr_flex_value_set_id       NUMBER;
10123 l_adr_value_type_code         VARCHAR2(30);
10124 l_adr_value_combination_id    NUMBER;
10126 
10127 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
10128 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
10129 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
10130 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
10131 
10132 -- 4262811 Variables ------------------------------------------------------------------------------------------
10133 l_entered_amt_idx             NUMBER;
10134 l_accted_amt_idx              NUMBER;
10135 l_acc_rev_flag                VARCHAR2(1);
10136 l_accrual_line_num            NUMBER;
10137 l_tmp_amt                     NUMBER;
10138 l_acc_rev_natural_side_code   VARCHAR2(1);
10139 
10140 l_num_entries                 NUMBER;
10141 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
10142 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
10143 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
10144 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
10145 l_recog_line_1                NUMBER;
10146 l_recog_line_2                NUMBER;
10147 
10148 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
10149 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
10150 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
10151 
10152 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10153 
10154 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
10155 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
10156 
10157 ---------------------------------------------------------------------------------------------------------------
10158 
10159 
10160 --
10161 -- bulk performance
10162 --
10163 l_balance_type_code           VARCHAR2(1);
10164 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
10165 l_log_module                  VARCHAR2(240);
10166 
10167 --
10168 -- Upgrade strategy
10169 --
10170 l_actual_upg_option           VARCHAR2(1);
10171 l_enc_upg_option           VARCHAR2(1);
10172 
10173 --
10174 BEGIN
10175 --
10176 IF g_log_enabled THEN
10177       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_45';
10178 END IF;
10179 --
10180 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10181 
10182       trace
10183          (p_msg      => 'BEGIN of AcctLineType_45'
10184          ,p_level    => C_LEVEL_PROCEDURE
10185          ,p_module   => l_log_module);
10186 
10187 END IF;
10188 --
10189 l_component_type             := 'AMB_JLT';
10190 l_component_code             := 'AP_ALC_EX_RATE_VAR_PMT';
10191 l_component_type_code        := 'S';
10192 l_component_appl_id          :=  200;
10193 l_amb_context_code           := 'DEFAULT';
10194 l_entity_code                := 'AP_PAYMENTS';
10195 l_event_class_code           := 'PAYMENTS';
10196 l_event_type_code            := 'PAYMENTS_ALL';
10197 l_line_definition_owner_code := 'S';
10198 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
10199 --
10200 l_balance_type_code          := 'A';
10201 l_segment                     := NULL;
10202 l_ccid                        := NULL;
10203 l_adr_transaction_coa_id      := NULL;
10204 l_adr_accounting_coa_id       := NULL;
10205 l_adr_flexfield_segment_code  := NULL;
10206 l_adr_flex_value_set_id       := NULL;
10207 l_adr_value_type_code         := NULL;
10208 l_adr_value_combination_id    := NULL;
10209 l_adr_value_segment_code      := NULL;
10210 
10211 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
10212 l_bflow_class_code           := '';    -- 4219869 Business Flow
10213 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
10214 l_budgetary_control_flag     := 'N';
10215 
10216 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
10217 l_bflow_applied_to_amt       := NULL; -- 5132302
10218 l_entered_amt_idx            := NULL;          -- 4262811
10219 l_accted_amt_idx             := NULL;          -- 4262811
10220 l_acc_rev_flag               := NULL;          -- 4262811
10221 l_accrual_line_num           := NULL;          -- 4262811
10222 l_tmp_amt                    := NULL;          -- 4262811
10223 --
10224 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
10225             (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
10226                return;
10227   END IF;
10228   
10229 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10230     l_balance_type_code <> 'B' THEN
10231 IF NVL(p_source_50,'
10232 ') <>  'CLEAR_CLEAR' AND 
10233 NVL(p_source_32,'
10234 ') =  'ACCRUAL' AND 
10235 NVL(p_source_71,'
10236 ') <>  'R'
10237  THEN 
10238 
10239    --
10240    XLA_AE_LINES_PKG.SetNewLine;
10241 
10242    p_balance_type_code          := l_balance_type_code;
10243    -- set the flag so later we will know whether the gain loss line needs to be created
10244    
10245    IF(l_balance_type_code = 'A' ) THEN
10246      p_actual_flag :='G';
10247    END IF;
10248 
10249    --
10253                                       p_header_num   => 0); -- 4262811
10250    -- bulk performance
10251    --
10252    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10254    --
10255    -- set accounting line options
10256    --
10257    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10258            p_natural_side_code          => 'G'
10259          , p_gain_or_loss_flag          => 'N'
10260          , p_gl_transfer_mode_code      => 'S'
10261          , p_acct_entry_type_code       => 'A'
10262          , p_switch_side_flag           => ''
10263          , p_merge_duplicate_code       => 'A'
10264          );
10265    --
10266    l_acc_rev_natural_side_code := 'C';  -- 4262811
10267    -- 
10268    --
10269    -- set accounting line type info
10270    --
10271    xla_ae_lines_pkg.SetAcctLineType
10272       (p_component_type             => l_component_type
10273       ,p_event_type_code            => l_event_type_code
10274       ,p_line_definition_owner_code => l_line_definition_owner_code
10275       ,p_line_definition_code       => l_line_definition_code
10276       ,p_accounting_line_code       => l_component_code
10277       ,p_accounting_line_type_code  => l_component_type_code
10278       ,p_accounting_line_appl_id    => l_component_appl_id
10279       ,p_amb_context_code           => l_amb_context_code
10280       ,p_entity_code                => l_entity_code
10281       ,p_event_class_code           => l_event_class_code);
10282    --
10283    -- set accounting class
10284    --
10285    xla_ae_lines_pkg.SetAcctClass(
10286            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
10287          , p_ae_header_id           => l_ae_header_id
10288          );
10289 
10290    --
10291    -- set rounding class
10292    --
10293    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10294                       'EXCHANGE_RATE_VARIANCE';
10295 
10296    --
10297    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10298    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10299    --
10300    -- bulk performance
10301    --
10302    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10303 
10304    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10305       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10306 
10307    -- 4955764
10308    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10309       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10310 
10311    -- 4458381 Public Sector Enh
10312    
10313    --
10314    -- set accounting attributes for the line type
10315    --
10316    l_entered_amt_idx := NULL;
10317    l_accted_amt_idx  := 10;
10318    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
10319    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10320    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
10321    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
10322    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
10323    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
10324    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
10325    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10326    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
10327    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
10328    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
10329    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
10330    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
10331    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10332    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
10333    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
10334    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
10335    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
10336    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
10337    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
10338    l_rec_acct_attrs.array_num_value(10)  := p_source_21;
10339    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
10340    l_rec_acct_attrs.array_char_value(11)  := p_source_64;
10341    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
10342    l_rec_acct_attrs.array_num_value(12)  := p_source_65;
10343    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
10344    l_rec_acct_attrs.array_num_value(13)  := p_source_66;
10345    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
10346    l_rec_acct_attrs.array_char_value(14)  := p_source_67;
10347    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
10348    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_68);
10349    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
10350    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
10351    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
10352    l_rec_acct_attrs.array_num_value(17)  := p_source_69;
10353    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
10354    l_rec_acct_attrs.array_num_value(18)  := p_source_77;
10355    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
10359    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10356    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
10357 
10358    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10360 
10361    ---------------------------------------------------------------------------------------------------------------
10362    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10363    ---------------------------------------------------------------------------------------------------------------
10364    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10365 
10366    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10367    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10368 
10369    IF xla_accounting_cache_pkg.GetValueChar
10370          (p_source_code         => 'LEDGER_CATEGORY_CODE'
10371          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10372    AND l_bflow_method_code = 'PRIOR_ENTRY'
10373 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10374    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10375          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10376        )
10377    THEN
10378          xla_ae_lines_pkg.BflowUpgEntry
10379            (p_business_method_code    => l_bflow_method_code
10380            ,p_business_class_code     => l_bflow_class_code
10381            ,p_balance_type            => l_balance_type_code);
10382    ELSE
10383       NULL;
10384 -- No business flow processing for business flow method of NONE.
10385    END IF;
10386 
10387    --
10388    -- call analytical criteria
10389    --
10390    
10391    --
10392    -- call description
10393    --
10394    -- No description or it is inherited.
10395    --
10396    -- call ADRs
10397    -- Bug 4922099
10398    --
10399    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10400         (NVL(l_actual_upg_option, 'N') = 'O') OR
10401         (NVL(l_enc_upg_option, 'N') = 'O')
10402       )
10403    THEN
10404    NULL;
10405    --
10406    --
10407    
10408   l_ccid := AcctDerRule_24(
10409            p_application_id           => p_application_id
10410          , p_ae_header_id             => l_ae_header_id 
10411 , p_source_16 => p_source_16
10412 , p_source_16_meaning => p_source_16_meaning
10413 , p_source_17 => p_source_17
10414 , p_source_19 => p_source_19
10415 , p_source_19_meaning => p_source_19_meaning
10416 , p_source_20 => p_source_20
10417 , p_source_21 => p_source_21
10418 , p_source_22 => p_source_22
10419 , p_source_29 => p_source_29
10420 , p_source_42 => p_source_42
10421 , p_source_42_meaning => p_source_42_meaning
10422          , x_transaction_coa_id       => l_adr_transaction_coa_id
10423          , x_accounting_coa_id        => l_adr_accounting_coa_id
10424          , x_value_type_code          => l_adr_value_type_code
10425          , p_side                     => 'ALL'
10426    );
10427 
10428    xla_ae_lines_pkg.set_ccid(
10429     p_code_combination_id          => l_ccid
10430   , p_value_type_code              => l_adr_value_type_code
10431   , p_transaction_coa_id           => l_adr_transaction_coa_id
10432   , p_accounting_coa_id            => l_adr_accounting_coa_id
10433   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
10434   , p_adr_type_code                => 'S'
10435   , p_component_type               => l_component_type
10436   , p_component_code               => l_component_code
10437   , p_component_type_code          => l_component_type_code
10438   , p_component_appl_id            => l_component_appl_id
10439   , p_amb_context_code             => l_amb_context_code
10440   , p_side                         => 'ALL'
10441   );
10442 
10443 
10444    l_segment := AcctDerRule_7(
10445            p_application_id           => p_application_id
10446          , p_ae_header_id             => l_ae_header_id 
10447 , p_source_16 => p_source_16
10448 , p_source_16_meaning => p_source_16_meaning
10449 , p_source_17 => p_source_17
10450 , p_source_19 => p_source_19
10451 , p_source_19_meaning => p_source_19_meaning
10452          , x_transaction_coa_id       => l_adr_transaction_coa_id
10453          , x_accounting_coa_id        => l_adr_accounting_coa_id
10454          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10455          , x_flex_value_set_id        => l_adr_flex_value_set_id
10456          , x_value_type_code          => l_adr_value_type_code
10457          , x_value_combination_id     => l_adr_value_combination_id
10458          , x_value_segment_code       => l_adr_value_segment_code
10459          , p_side                     => 'CREDIT'
10460          , p_override_seg_flag        => 'Y'
10461    );
10462 
10463    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10464 
10465       xla_ae_lines_pkg.set_segment(
10466           p_to_segment_code         => 'GL_ACCOUNT'
10467         , p_segment_value           => l_segment
10468         , p_from_segment_code       => l_adr_value_segment_code
10469         , p_from_combination_id     => l_adr_value_combination_id
10470         , p_value_type_code         => l_adr_value_type_code
10471         , p_transaction_coa_id      => l_adr_transaction_coa_id
10472         , p_accounting_coa_id       => l_adr_accounting_coa_id
10476         , p_adr_type_code           => 'S'
10473         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10474         , p_flex_value_set_id       => l_adr_flex_value_set_id
10475         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
10477         , p_component_type          => l_component_type
10478         , p_component_code          => l_component_code
10479         , p_component_type_code     => l_component_type_code
10480         , p_component_appl_id       => l_component_appl_id
10481         , p_amb_context_code        => l_amb_context_code
10482         , p_entity_code             => 'AP_PAYMENTS'
10483         , p_event_class_code        => 'PAYMENTS'
10484         , p_side                    => 'CREDIT'
10485         );
10486 
10487   END IF;
10488 
10489    l_segment := AcctDerRule_8(
10490            p_application_id           => p_application_id
10491          , p_ae_header_id             => l_ae_header_id 
10492 , p_source_16 => p_source_16
10493 , p_source_16_meaning => p_source_16_meaning
10494 , p_source_19 => p_source_19
10495 , p_source_19_meaning => p_source_19_meaning
10496 , p_source_20 => p_source_20
10497          , x_transaction_coa_id       => l_adr_transaction_coa_id
10498          , x_accounting_coa_id        => l_adr_accounting_coa_id
10499          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10500          , x_flex_value_set_id        => l_adr_flex_value_set_id
10501          , x_value_type_code          => l_adr_value_type_code
10502          , x_value_combination_id     => l_adr_value_combination_id
10503          , x_value_segment_code       => l_adr_value_segment_code
10504          , p_side                     => 'DEBIT'
10505          , p_override_seg_flag        => 'Y'
10506    );
10507 
10508    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10509 
10510       xla_ae_lines_pkg.set_segment(
10511           p_to_segment_code         => 'GL_ACCOUNT'
10512         , p_segment_value           => l_segment
10513         , p_from_segment_code       => l_adr_value_segment_code
10514         , p_from_combination_id     => l_adr_value_combination_id
10515         , p_value_type_code         => l_adr_value_type_code
10516         , p_transaction_coa_id      => l_adr_transaction_coa_id
10517         , p_accounting_coa_id       => l_adr_accounting_coa_id
10518         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10519         , p_flex_value_set_id       => l_adr_flex_value_set_id
10520         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
10521         , p_adr_type_code           => 'S'
10522         , p_component_type          => l_component_type
10523         , p_component_code          => l_component_code
10524         , p_component_type_code     => l_component_type_code
10525         , p_component_appl_id       => l_component_appl_id
10526         , p_amb_context_code        => l_amb_context_code
10527         , p_entity_code             => 'AP_PAYMENTS'
10528         , p_event_class_code        => 'PAYMENTS'
10529         , p_side                    => 'DEBIT'
10530         );
10531 
10532   END IF;
10533 
10534    l_segment := AcctDerRule_17(
10535            p_application_id           => p_application_id
10536          , p_ae_header_id             => l_ae_header_id 
10537 , p_source_16 => p_source_16
10538 , p_source_16_meaning => p_source_16_meaning
10539 , p_source_19 => p_source_19
10540 , p_source_19_meaning => p_source_19_meaning
10541 , p_source_29 => p_source_29
10542          , x_transaction_coa_id       => l_adr_transaction_coa_id
10543          , x_accounting_coa_id        => l_adr_accounting_coa_id
10544          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10545          , x_flex_value_set_id        => l_adr_flex_value_set_id
10546          , x_value_type_code          => l_adr_value_type_code
10547          , x_value_combination_id     => l_adr_value_combination_id
10548          , x_value_segment_code       => l_adr_value_segment_code
10549          , p_side                     => 'ALL'
10550          , p_override_seg_flag        => 'Y'
10551    );
10552 
10553    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10554 
10555       xla_ae_lines_pkg.set_segment(
10556           p_to_segment_code         => 'GL_BALANCING'
10557         , p_segment_value           => l_segment
10558         , p_from_segment_code       => l_adr_value_segment_code
10559         , p_from_combination_id     => l_adr_value_combination_id
10560         , p_value_type_code         => l_adr_value_type_code
10561         , p_transaction_coa_id      => l_adr_transaction_coa_id
10562         , p_accounting_coa_id       => l_adr_accounting_coa_id
10563         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10564         , p_flex_value_set_id       => l_adr_flex_value_set_id
10565         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
10566         , p_adr_type_code           => 'S'
10567         , p_component_type          => l_component_type
10568         , p_component_code          => l_component_code
10569         , p_component_type_code     => l_component_type_code
10570         , p_component_appl_id       => l_component_appl_id
10571         , p_amb_context_code        => l_amb_context_code
10572         , p_entity_code             => 'AP_PAYMENTS'
10573         , p_event_class_code        => 'PAYMENTS'
10574         , p_side                    => 'ALL'
10575         );
10576 
10577   END IF;
10578 
10579    --
10580    --
10581    END IF;
10582    --
10583    -- Bug 4922099
10587         (l_bflow_method_code = 'PRIOR_ENTRY')
10584    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10585           (NVL(l_enc_upg_option, 'N') = 'O')
10586         ) AND
10588       )
10589    THEN
10590       IF
10591       --
10592       1 = 2
10593       --
10594       THEN
10595       xla_accounting_err_pkg.build_message
10596                                     (p_appli_s_name            => 'XLA'
10597                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10598                                     ,p_token_1                 => 'LINE_NUMBER'
10599                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
10600                                     ,p_token_2                 => 'LINE_TYPE_NAME'
10601                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
10602                                                                              l_component_type
10603                                                                             ,l_component_code
10604                                                                             ,l_component_type_code
10605                                                                             ,l_component_appl_id
10606                                                                             ,l_amb_context_code
10607                                                                             ,l_entity_code
10608                                                                             ,l_event_class_code
10609                                                                            )
10610                                     ,p_token_3                 => 'OWNER'
10611                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
10612                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
10613                                                                           ,p_lookup_code    => l_component_type_code
10614                                                                          )
10615                                     ,p_token_4                 => 'PRODUCT_NAME'
10616                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10617                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10618                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10619                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10620                                     ,p_ae_header_id            =>  NULL
10621                                        );
10622 
10623         IF (C_LEVEL_ERROR>= g_log_level) THEN
10624                  trace
10625                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10626                       ,p_level    => C_LEVEL_ERROR
10627                       ,p_module   => l_log_module);
10628         END IF;
10629       END IF;
10630    END IF;
10631    --
10632    --
10633    ------------------------------------------------------------------------------------------------
10634    -- 4219869 Business Flow
10635    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10636    -- Prior Entry.  Currently, the following code is always generated.
10637    ------------------------------------------------------------------------------------------------
10638    XLA_AE_LINES_PKG.ValidateCurrentLine;
10639 
10640    ------------------------------------------------------------------------------------
10641    -- 4219869 Business Flow
10642    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10643    ------------------------------------------------------------------------------------
10644    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10645 
10646    ----------------------------------------------------------------------------------
10647    -- 4219869 Business Flow
10648    -- Update journal entry status -- Need to generate this within IF <condition>
10649    ----------------------------------------------------------------------------------
10650    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10651          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10652          ,p_balance_type_code => l_balance_type_code
10653          );
10654 
10655    -------------------------------------------------------------------------------------------
10656    -- 4262811 - Generate the Accrual Reversal lines
10657    -------------------------------------------------------------------------------------------
10658    BEGIN
10659       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10660                               (g_array_event(p_event_id).array_value_num('header_index'));
10661       IF l_acc_rev_flag IS NULL THEN
10662          l_acc_rev_flag := 'N';
10663       END IF;
10664    EXCEPTION
10665       WHEN OTHERS THEN
10666          l_acc_rev_flag := 'N';
10667    END;
10668    --
10669    IF (l_acc_rev_flag = 'Y') THEN
10670 
10671        -- 4645092  ------------------------------------------------------------------------------
10672        -- To allow MPA report to determine if it should generate report process
10673        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10677        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10674        ------------------------------------------------------------------------------------------
10675 
10676        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10678    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
10679    -- call ADRs
10680    -- Bug 4922099
10681    --
10682    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10683         (NVL(l_actual_upg_option, 'N') = 'O') OR
10684         (NVL(l_enc_upg_option, 'N') = 'O')
10685       )
10686    THEN
10687    NULL;
10688    --
10689    --
10690    
10691   l_ccid := AcctDerRule_24(
10692            p_application_id           => p_application_id
10693          , p_ae_header_id             => l_ae_header_id 
10694 , p_source_16 => p_source_16
10695 , p_source_16_meaning => p_source_16_meaning
10696 , p_source_17 => p_source_17
10697 , p_source_19 => p_source_19
10698 , p_source_19_meaning => p_source_19_meaning
10699 , p_source_20 => p_source_20
10700 , p_source_21 => p_source_21
10701 , p_source_22 => p_source_22
10702 , p_source_29 => p_source_29
10703 , p_source_42 => p_source_42
10704 , p_source_42_meaning => p_source_42_meaning
10705          , x_transaction_coa_id       => l_adr_transaction_coa_id
10706          , x_accounting_coa_id        => l_adr_accounting_coa_id
10707          , x_value_type_code          => l_adr_value_type_code
10708          , p_side                     => 'ALL'
10709    );
10710 
10711    xla_ae_lines_pkg.set_ccid(
10712     p_code_combination_id          => l_ccid
10713   , p_value_type_code              => l_adr_value_type_code
10714   , p_transaction_coa_id           => l_adr_transaction_coa_id
10715   , p_accounting_coa_id            => l_adr_accounting_coa_id
10716   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
10717   , p_adr_type_code                => 'S'
10718   , p_component_type               => l_component_type
10719   , p_component_code               => l_component_code
10720   , p_component_type_code          => l_component_type_code
10721   , p_component_appl_id            => l_component_appl_id
10722   , p_amb_context_code             => l_amb_context_code
10723   , p_side                         => 'ALL'
10724   );
10725 
10726 
10727    l_segment := AcctDerRule_7(
10728            p_application_id           => p_application_id
10729          , p_ae_header_id             => l_ae_header_id 
10730 , p_source_16 => p_source_16
10731 , p_source_16_meaning => p_source_16_meaning
10732 , p_source_17 => p_source_17
10733 , p_source_19 => p_source_19
10734 , p_source_19_meaning => p_source_19_meaning
10735          , x_transaction_coa_id       => l_adr_transaction_coa_id
10736          , x_accounting_coa_id        => l_adr_accounting_coa_id
10737          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10738          , x_flex_value_set_id        => l_adr_flex_value_set_id
10739          , x_value_type_code          => l_adr_value_type_code
10740          , x_value_combination_id     => l_adr_value_combination_id
10741          , x_value_segment_code       => l_adr_value_segment_code
10742          , p_side                     => 'CREDIT'
10743          , p_override_seg_flag        => 'Y'
10744    );
10745 
10746    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10747 
10748       xla_ae_lines_pkg.set_segment(
10749           p_to_segment_code         => 'GL_ACCOUNT'
10750         , p_segment_value           => l_segment
10751         , p_from_segment_code       => l_adr_value_segment_code
10752         , p_from_combination_id     => l_adr_value_combination_id
10753         , p_value_type_code         => l_adr_value_type_code
10754         , p_transaction_coa_id      => l_adr_transaction_coa_id
10755         , p_accounting_coa_id       => l_adr_accounting_coa_id
10756         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10757         , p_flex_value_set_id       => l_adr_flex_value_set_id
10758         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
10759         , p_adr_type_code           => 'S'
10760         , p_component_type          => l_component_type
10761         , p_component_code          => l_component_code
10762         , p_component_type_code     => l_component_type_code
10763         , p_component_appl_id       => l_component_appl_id
10764         , p_amb_context_code        => l_amb_context_code
10765         , p_entity_code             => 'AP_PAYMENTS'
10766         , p_event_class_code        => 'PAYMENTS'
10767         , p_side                    => 'CREDIT'
10768         );
10769 
10770   END IF;
10771 
10772    l_segment := AcctDerRule_8(
10773            p_application_id           => p_application_id
10774          , p_ae_header_id             => l_ae_header_id 
10775 , p_source_16 => p_source_16
10776 , p_source_16_meaning => p_source_16_meaning
10777 , p_source_19 => p_source_19
10778 , p_source_19_meaning => p_source_19_meaning
10779 , p_source_20 => p_source_20
10780          , x_transaction_coa_id       => l_adr_transaction_coa_id
10781          , x_accounting_coa_id        => l_adr_accounting_coa_id
10782          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10783          , x_flex_value_set_id        => l_adr_flex_value_set_id
10784          , x_value_type_code          => l_adr_value_type_code
10785          , x_value_combination_id     => l_adr_value_combination_id
10786          , x_value_segment_code       => l_adr_value_segment_code
10790 
10787          , p_side                     => 'DEBIT'
10788          , p_override_seg_flag        => 'Y'
10789    );
10791    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10792 
10793       xla_ae_lines_pkg.set_segment(
10794           p_to_segment_code         => 'GL_ACCOUNT'
10795         , p_segment_value           => l_segment
10796         , p_from_segment_code       => l_adr_value_segment_code
10797         , p_from_combination_id     => l_adr_value_combination_id
10798         , p_value_type_code         => l_adr_value_type_code
10799         , p_transaction_coa_id      => l_adr_transaction_coa_id
10800         , p_accounting_coa_id       => l_adr_accounting_coa_id
10801         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10802         , p_flex_value_set_id       => l_adr_flex_value_set_id
10803         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
10804         , p_adr_type_code           => 'S'
10805         , p_component_type          => l_component_type
10806         , p_component_code          => l_component_code
10807         , p_component_type_code     => l_component_type_code
10808         , p_component_appl_id       => l_component_appl_id
10809         , p_amb_context_code        => l_amb_context_code
10810         , p_entity_code             => 'AP_PAYMENTS'
10811         , p_event_class_code        => 'PAYMENTS'
10812         , p_side                    => 'DEBIT'
10813         );
10814 
10815   END IF;
10816 
10817    l_segment := AcctDerRule_17(
10818            p_application_id           => p_application_id
10819          , p_ae_header_id             => l_ae_header_id 
10820 , p_source_16 => p_source_16
10821 , p_source_16_meaning => p_source_16_meaning
10822 , p_source_19 => p_source_19
10823 , p_source_19_meaning => p_source_19_meaning
10824 , p_source_29 => p_source_29
10825          , x_transaction_coa_id       => l_adr_transaction_coa_id
10826          , x_accounting_coa_id        => l_adr_accounting_coa_id
10827          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10828          , x_flex_value_set_id        => l_adr_flex_value_set_id
10829          , x_value_type_code          => l_adr_value_type_code
10830          , x_value_combination_id     => l_adr_value_combination_id
10831          , x_value_segment_code       => l_adr_value_segment_code
10832          , p_side                     => 'ALL'
10833          , p_override_seg_flag        => 'Y'
10834    );
10835 
10836    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10837 
10838       xla_ae_lines_pkg.set_segment(
10839           p_to_segment_code         => 'GL_BALANCING'
10840         , p_segment_value           => l_segment
10841         , p_from_segment_code       => l_adr_value_segment_code
10842         , p_from_combination_id     => l_adr_value_combination_id
10843         , p_value_type_code         => l_adr_value_type_code
10844         , p_transaction_coa_id      => l_adr_transaction_coa_id
10845         , p_accounting_coa_id       => l_adr_accounting_coa_id
10846         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10847         , p_flex_value_set_id       => l_adr_flex_value_set_id
10848         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
10849         , p_adr_type_code           => 'S'
10850         , p_component_type          => l_component_type
10851         , p_component_code          => l_component_code
10852         , p_component_type_code     => l_component_type_code
10853         , p_component_appl_id       => l_component_appl_id
10854         , p_amb_context_code        => l_amb_context_code
10855         , p_entity_code             => 'AP_PAYMENTS'
10856         , p_event_class_code        => 'PAYMENTS'
10857         , p_side                    => 'ALL'
10858         );
10859 
10860   END IF;
10861 
10862    --
10863    --
10864    END IF;
10865 
10866        --
10867        -- Update the line information that should be overwritten
10868        --
10869        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10870                                          p_header_num   => 1);
10871        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
10872 
10873        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10874 
10875        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
10876           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10877        END IF;
10878 
10879       --
10880       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10881       --
10882       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10883           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
10884       ELSE
10885           ---------------------------------------------------------------------------------------------------
10886           -- 4262811a Switch Sign
10887           ---------------------------------------------------------------------------------------------------
10888           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
10889           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10890                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10891           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10895                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10892                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10893           -- 5132302
10894           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10896 
10897       END IF;
10898 
10899       -- 4955764
10900       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10901       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10902 
10903 
10904       XLA_AE_LINES_PKG.ValidateCurrentLine;
10905       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10906 
10907       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10908                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10909                ,p_balance_type_code => l_balance_type_code);
10910 
10911    END IF;
10912 
10913    -----------------------------------------------------------------------------------------
10914    -- 4262811 Multiperiod Accounting
10915    -----------------------------------------------------------------------------------------
10916      -- No MPA option is assigned.
10917 
10918 
10919 END IF;
10920 END IF;
10921 --
10922 
10923 --
10924 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10925    trace
10926       (p_msg      => 'END of AcctLineType_45'
10927       ,p_level    => C_LEVEL_PROCEDURE
10928       ,p_module   => l_log_module);
10929 END IF;
10930 --
10931 EXCEPTION
10932   WHEN xla_exceptions_pkg.application_exception THEN
10933       RAISE;
10934   WHEN OTHERS THEN
10935        xla_exceptions_pkg.raise_message
10936            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_45');
10937 END AcctLineType_45;
10938 --
10939 
10940 ---------------------------------------
10941 --
10942 -- PRIVATE FUNCTION
10943 --         AcctLineType_46
10944 --
10945 ---------------------------------------
10946 PROCEDURE AcctLineType_46 (
10947   p_application_id        IN NUMBER
10948  ,p_event_id              IN NUMBER
10949  ,p_calculate_acctd_flag  IN VARCHAR2
10950  ,p_calculate_g_l_flag    IN VARCHAR2
10951  ,p_actual_flag           IN OUT VARCHAR2
10952  ,p_balance_type_code     OUT VARCHAR2
10953  ,p_gain_or_loss_ref      OUT VARCHAR2
10954  
10955 --Automatic Offsets Value
10956  , p_source_16            IN VARCHAR2
10957  , p_source_16_meaning    IN VARCHAR2
10958 --Purchase Order Rate Variance Gain Account
10959  , p_source_17            IN NUMBER
10960 --Invoice Distribution Ledger Amount
10961  , p_source_18            IN NUMBER
10962 --Destination Type of the PO Distribution
10963  , p_source_19            IN VARCHAR2
10964  , p_source_19_meaning    IN VARCHAR2
10965 --Purchase Order Rate Variance Loss Account
10966  , p_source_20            IN NUMBER
10967 --Invoice Distribution Account
10968  , p_source_29            IN NUMBER
10969 --Automatic Offsets Flag
10970  , p_source_42            IN VARCHAR2
10971  , p_source_42_meaning    IN VARCHAR2
10972 --Accounting Reversal Indicator
10973  , p_source_52            IN VARCHAR2
10974 --Business Flow Accounts Payable Application Identifier
10975  , p_source_54            IN NUMBER
10976 --Distribution Link Type
10977  , p_source_60            IN VARCHAR2
10978 --Override Accounted Amount Indicator
10979  , p_source_64            IN VARCHAR2
10980  , p_source_64_meaning    IN VARCHAR2
10981 --Third Party Type
10982  , p_source_67            IN VARCHAR2
10983 --Invoice Distribution Tax Line Identifier
10984  , p_source_69            IN NUMBER
10985 --Invoice Distribution Summary Tax Line Identifier
10986  , p_source_70            IN NUMBER
10987 --Invoice Distribution Tax Distribution Identifier from Tax
10988  , p_source_77            IN NUMBER
10989 --Prepayment Distribution Type
10990  , p_source_78            IN VARCHAR2
10991 --Recipient Invoice Distribution Type
10992  , p_source_79            IN VARCHAR2
10993  , p_source_79_meaning    IN VARCHAR2
10994 --Prepayment Application Distribution Identifier
10995  , p_source_82            IN NUMBER
10996 --Invoice Identifier
10997  , p_source_83            IN NUMBER
10998 --Business Flow Prepayment Invoice Distribution Type
10999  , p_source_84            IN VARCHAR2
11000 --Business Flow Prepayment Invoice Entity Code
11001  , p_source_85            IN VARCHAR2
11002 --Business Flow Prepayment Invoice Distribution Identifier
11003  , p_source_86            IN NUMBER
11004 --Business Flow Prepayment Invoice Identifier
11005  , p_source_87            IN NUMBER
11006 --Upgrade Encumbrance Credit Account Class
11007  , p_source_88            IN VARCHAR2
11008 --Payables Encumbrance Upgrade Credit Account
11009  , p_source_89            IN NUMBER
11010 --Payables Encumbrance Upgrade Credit Amount
11011  , p_source_90            IN NUMBER
11012 --Invoice Currency Code
11013  , p_source_91            IN VARCHAR2
11014 --Payables Encumbrance Upgrade Credit Base Amount
11015  , p_source_92            IN NUMBER
11016 --Upgrade Encumbrance Debit Account Class
11017  , p_source_93            IN VARCHAR2
11018 --Payables Encumbrance Upgrade Debit Account
11019  , p_source_94            IN NUMBER
11020 --Payables Encumbrance Upgrade Debit Amount
11021  , p_source_95            IN NUMBER
11022 --Payables Encumbrance Upgrade Debit Base Amount
11026 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
11023  , p_source_96            IN NUMBER
11024 --Payables Encumbrance Upgrade Option
11025  , p_source_97            IN VARCHAR2
11027  , p_source_100            IN NUMBER
11028 --Deferred Accounting End Date
11029  , p_source_101            IN DATE
11030 --Deferred Accounting Option
11031  , p_source_102            IN VARCHAR2
11032 --Deferred Accounting Start Date
11033  , p_source_103            IN DATE
11034 --Invoice Supplier Identifier
11035  , p_source_104            IN NUMBER
11036 --Invoice Supplier Site Identifier
11037  , p_source_105            IN NUMBER
11038 --Identifier of the Prepayment Application Reversed
11039  , p_source_106            IN NUMBER
11040 --Payables Upgrade Credit Encumbrance Type Identifier
11041  , p_source_107            IN NUMBER
11042 --Payables Upgrade Debit Encumbrance Type Identifier
11043  , p_source_108            IN NUMBER
11044 )
11045 IS
11046 
11047 l_component_type              VARCHAR2(80);
11048 l_component_code              VARCHAR2(30);
11049 l_component_type_code         VARCHAR2(1);
11050 l_component_appl_id           INTEGER;
11051 l_amb_context_code            VARCHAR2(30);
11052 l_entity_code                 VARCHAR2(30);
11053 l_event_class_code            VARCHAR2(30);
11054 l_ae_header_id                NUMBER;
11055 l_event_type_code             VARCHAR2(30);
11056 l_line_definition_code        VARCHAR2(30);
11057 l_line_definition_owner_code  VARCHAR2(1);
11058 --
11059 -- adr variables
11060 l_segment                     VARCHAR2(30);
11061 l_ccid                        NUMBER;
11062 l_adr_transaction_coa_id      NUMBER;
11063 l_adr_accounting_coa_id       NUMBER;
11064 l_adr_flexfield_segment_code  VARCHAR2(30);
11065 l_adr_flex_value_set_id       NUMBER;
11066 l_adr_value_type_code         VARCHAR2(30);
11067 l_adr_value_combination_id    NUMBER;
11068 l_adr_value_segment_code      VARCHAR2(30);
11069 
11070 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
11071 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
11072 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
11073 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
11074 
11075 -- 4262811 Variables ------------------------------------------------------------------------------------------
11076 l_entered_amt_idx             NUMBER;
11077 l_accted_amt_idx              NUMBER;
11078 l_acc_rev_flag                VARCHAR2(1);
11079 l_accrual_line_num            NUMBER;
11080 l_tmp_amt                     NUMBER;
11081 l_acc_rev_natural_side_code   VARCHAR2(1);
11082 
11083 l_num_entries                 NUMBER;
11084 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
11085 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
11086 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
11087 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
11088 l_recog_line_1                NUMBER;
11089 l_recog_line_2                NUMBER;
11090 
11091 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
11092 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
11093 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
11094 
11095 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11096 
11097 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
11098 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
11099 
11100 ---------------------------------------------------------------------------------------------------------------
11101 
11102 
11103 --
11104 -- bulk performance
11105 --
11106 l_balance_type_code           VARCHAR2(1);
11107 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
11108 l_log_module                  VARCHAR2(240);
11109 
11110 --
11111 -- Upgrade strategy
11112 --
11113 l_actual_upg_option           VARCHAR2(1);
11114 l_enc_upg_option           VARCHAR2(1);
11115 
11116 --
11117 BEGIN
11118 --
11119 IF g_log_enabled THEN
11120       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_46';
11121 END IF;
11122 --
11123 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11124 
11125       trace
11126          (p_msg      => 'BEGIN of AcctLineType_46'
11127          ,p_level    => C_LEVEL_PROCEDURE
11128          ,p_module   => l_log_module);
11129 
11130 END IF;
11131 --
11132 l_component_type             := 'AMB_JLT';
11133 l_component_code             := 'AP_ALC_EX_RATE_VAR_PREPAY_APP';
11134 l_component_type_code        := 'S';
11135 l_component_appl_id          :=  200;
11136 l_amb_context_code           := 'DEFAULT';
11137 l_entity_code                := 'AP_INVOICES';
11138 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
11139 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
11140 l_line_definition_owner_code := 'S';
11141 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
11142 --
11143 l_balance_type_code          := 'A';
11144 l_segment                     := NULL;
11145 l_ccid                        := NULL;
11146 l_adr_transaction_coa_id      := NULL;
11147 l_adr_accounting_coa_id       := NULL;
11148 l_adr_flexfield_segment_code  := NULL;
11149 l_adr_flex_value_set_id       := NULL;
11150 l_adr_value_type_code         := NULL;
11154 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
11151 l_adr_value_combination_id    := NULL;
11152 l_adr_value_segment_code      := NULL;
11153 
11155 l_bflow_class_code           := '';    -- 4219869 Business Flow
11156 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
11157 l_budgetary_control_flag     := 'N';
11158 
11159 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
11160 l_bflow_applied_to_amt       := NULL; -- 5132302
11161 l_entered_amt_idx            := NULL;          -- 4262811
11162 l_accted_amt_idx             := NULL;          -- 4262811
11163 l_acc_rev_flag               := NULL;          -- 4262811
11164 l_accrual_line_num           := NULL;          -- 4262811
11165 l_tmp_amt                    := NULL;          -- 4262811
11166 --
11167 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
11168             (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
11169                return;
11170   END IF;
11171   
11172 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11173     l_balance_type_code <> 'B' THEN
11174 IF (NVL(p_source_78,'
11175 ') =  'PREPAY APPL' OR 
11176 NVL(p_source_78,'
11177 ') =  'PREPAY APPL NONREC TAX' OR 
11178 NVL(p_source_78,'
11179 ') =  'PREPAY APPL REC TAX') AND 
11180 NVL(p_source_79,'
11181 ') =  'ACCRUAL'
11182  THEN 
11183 
11184    --
11185    XLA_AE_LINES_PKG.SetNewLine;
11186 
11187    p_balance_type_code          := l_balance_type_code;
11188    -- set the flag so later we will know whether the gain loss line needs to be created
11189    
11190    IF(l_balance_type_code = 'A' ) THEN
11191      p_actual_flag :='G';
11192    END IF;
11193 
11194    --
11195    -- bulk performance
11196    --
11197    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11198                                       p_header_num   => 0); -- 4262811
11199    --
11200    -- set accounting line options
11201    --
11202    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11203            p_natural_side_code          => 'G'
11204          , p_gain_or_loss_flag          => 'N'
11205          , p_gl_transfer_mode_code      => 'S'
11206          , p_acct_entry_type_code       => 'A'
11207          , p_switch_side_flag           => ''
11208          , p_merge_duplicate_code       => 'A'
11209          );
11210    --
11211    l_acc_rev_natural_side_code := 'C';  -- 4262811
11212    -- 
11213    --
11214    -- set accounting line type info
11215    --
11216    xla_ae_lines_pkg.SetAcctLineType
11217       (p_component_type             => l_component_type
11218       ,p_event_type_code            => l_event_type_code
11219       ,p_line_definition_owner_code => l_line_definition_owner_code
11220       ,p_line_definition_code       => l_line_definition_code
11221       ,p_accounting_line_code       => l_component_code
11222       ,p_accounting_line_type_code  => l_component_type_code
11223       ,p_accounting_line_appl_id    => l_component_appl_id
11224       ,p_amb_context_code           => l_amb_context_code
11225       ,p_entity_code                => l_entity_code
11226       ,p_event_class_code           => l_event_class_code);
11227    --
11228    -- set accounting class
11229    --
11230    xla_ae_lines_pkg.SetAcctClass(
11231            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
11232          , p_ae_header_id           => l_ae_header_id
11233          );
11234 
11235    --
11236    -- set rounding class
11237    --
11238    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11239                       'EXCHANGE_RATE_VARIANCE';
11240 
11241    --
11242    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11243    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11244    --
11245    -- bulk performance
11246    --
11247    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11248 
11249    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11250       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11251 
11252    -- 4955764
11253    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11254       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11255 
11256    -- 4458381 Public Sector Enh
11257    
11258    --
11259    -- set accounting attributes for the line type
11260    --
11261    l_entered_amt_idx := NULL;
11262    l_accted_amt_idx  := 25;
11263    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
11264    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11265    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
11266    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
11267    l_rec_acct_attrs.array_num_value(2)  := 
11268 xla_ae_sources_pkg.GetSystemSourceNum(
11269    p_source_code           => 'XLA_EVENT_APPL_ID'
11270  , p_source_type_code      => 'Y'
11271  , p_source_application_id =>  602
11272 );
11273    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
11277 xla_ae_sources_pkg.GetSystemSourceChar(
11274    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
11275    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
11276    l_rec_acct_attrs.array_char_value(4)  := 
11278    p_source_code           => 'XLA_ENTITY_CODE'
11279  , p_source_type_code      => 'Y'
11280  , p_source_application_id =>  602
11281 );
11282    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
11283    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
11284    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
11285    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
11286    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
11287    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
11288    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11289    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
11290    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
11291    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
11292    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
11293    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
11294    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11295    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
11296    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
11297    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
11298    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
11299    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
11300    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
11301    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
11302    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
11303    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
11304    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
11305    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
11306    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
11307    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
11308    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
11309    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
11310    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
11311    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
11312    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
11313    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
11314    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
11315    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
11316    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
11317    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
11318    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
11319    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
11320    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
11321    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
11322    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
11323    l_rec_acct_attrs.array_num_value(25)  := p_source_100;
11324    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
11325    l_rec_acct_attrs.array_date_value(26)  := p_source_101;
11326    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
11327    l_rec_acct_attrs.array_char_value(27)  := p_source_102;
11328    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
11329    l_rec_acct_attrs.array_date_value(28)  := p_source_103;
11330    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
11331    l_rec_acct_attrs.array_char_value(29)  := p_source_64;
11332    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_ID';
11333    l_rec_acct_attrs.array_num_value(30)  := p_source_104;
11334    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_SITE_ID';
11335    l_rec_acct_attrs.array_num_value(31)  := p_source_105;
11336    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
11337    l_rec_acct_attrs.array_char_value(32)  := p_source_67;
11338    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
11339    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_106);
11340    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
11341    l_rec_acct_attrs.array_char_value(34)  := p_source_60;
11342    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
11343    l_rec_acct_attrs.array_num_value(35)  := p_source_69;
11344    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
11345    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
11346    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
11347    l_rec_acct_attrs.array_num_value(37)  := p_source_70;
11348    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
11349    l_rec_acct_attrs.array_num_value(38)  := p_source_107;
11350    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
11351    l_rec_acct_attrs.array_num_value(39)  := p_source_108;
11352 
11353    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11354    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11355 
11356    ---------------------------------------------------------------------------------------------------------------
11357    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11361    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11358    ---------------------------------------------------------------------------------------------------------------
11359    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11360 
11362    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11363 
11364    IF xla_accounting_cache_pkg.GetValueChar
11365          (p_source_code         => 'LEDGER_CATEGORY_CODE'
11366          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11367    AND l_bflow_method_code = 'PRIOR_ENTRY'
11368 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11369    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11370          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11371        )
11372    THEN
11373          xla_ae_lines_pkg.BflowUpgEntry
11374            (p_business_method_code    => l_bflow_method_code
11375            ,p_business_class_code     => l_bflow_class_code
11376            ,p_balance_type            => l_balance_type_code);
11377    ELSE
11378       NULL;
11379 -- No business flow processing for business flow method of NONE.
11380    END IF;
11381 
11382    --
11383    -- call analytical criteria
11384    --
11385    
11386    --
11387    -- call description
11388    --
11389    -- No description or it is inherited.
11390    --
11391    -- call ADRs
11392    -- Bug 4922099
11393    --
11394    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11395         (NVL(l_actual_upg_option, 'N') = 'O') OR
11396         (NVL(l_enc_upg_option, 'N') = 'O')
11397       )
11398    THEN
11399    NULL;
11400    --
11401    --
11402    
11403   l_ccid := AcctDerRule_25(
11404            p_application_id           => p_application_id
11405          , p_ae_header_id             => l_ae_header_id 
11406 , p_source_16 => p_source_16
11407 , p_source_16_meaning => p_source_16_meaning
11408 , p_source_17 => p_source_17
11409 , p_source_18 => p_source_18
11410 , p_source_19 => p_source_19
11411 , p_source_19_meaning => p_source_19_meaning
11412 , p_source_20 => p_source_20
11413 , p_source_29 => p_source_29
11414 , p_source_42 => p_source_42
11415 , p_source_42_meaning => p_source_42_meaning
11416          , x_transaction_coa_id       => l_adr_transaction_coa_id
11417          , x_accounting_coa_id        => l_adr_accounting_coa_id
11418          , x_value_type_code          => l_adr_value_type_code
11419          , p_side                     => 'ALL'
11420    );
11421 
11422    xla_ae_lines_pkg.set_ccid(
11423     p_code_combination_id          => l_ccid
11424   , p_value_type_code              => l_adr_value_type_code
11425   , p_transaction_coa_id           => l_adr_transaction_coa_id
11426   , p_accounting_coa_id            => l_adr_accounting_coa_id
11427   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
11428   , p_adr_type_code                => 'S'
11429   , p_component_type               => l_component_type
11430   , p_component_code               => l_component_code
11431   , p_component_type_code          => l_component_type_code
11432   , p_component_appl_id            => l_component_appl_id
11433   , p_amb_context_code             => l_amb_context_code
11434   , p_side                         => 'ALL'
11435   );
11436 
11437 
11438    l_segment := AcctDerRule_7(
11439            p_application_id           => p_application_id
11440          , p_ae_header_id             => l_ae_header_id 
11441 , p_source_16 => p_source_16
11442 , p_source_16_meaning => p_source_16_meaning
11443 , p_source_17 => p_source_17
11444 , p_source_19 => p_source_19
11445 , p_source_19_meaning => p_source_19_meaning
11446          , x_transaction_coa_id       => l_adr_transaction_coa_id
11447          , x_accounting_coa_id        => l_adr_accounting_coa_id
11448          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11449          , x_flex_value_set_id        => l_adr_flex_value_set_id
11450          , x_value_type_code          => l_adr_value_type_code
11451          , x_value_combination_id     => l_adr_value_combination_id
11452          , x_value_segment_code       => l_adr_value_segment_code
11453          , p_side                     => 'CREDIT'
11454          , p_override_seg_flag        => 'Y'
11455    );
11456 
11457    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11458 
11459       xla_ae_lines_pkg.set_segment(
11460           p_to_segment_code         => 'GL_ACCOUNT'
11461         , p_segment_value           => l_segment
11462         , p_from_segment_code       => l_adr_value_segment_code
11463         , p_from_combination_id     => l_adr_value_combination_id
11464         , p_value_type_code         => l_adr_value_type_code
11465         , p_transaction_coa_id      => l_adr_transaction_coa_id
11466         , p_accounting_coa_id       => l_adr_accounting_coa_id
11467         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11468         , p_flex_value_set_id       => l_adr_flex_value_set_id
11469         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11470         , p_adr_type_code           => 'S'
11471         , p_component_type          => l_component_type
11472         , p_component_code          => l_component_code
11473         , p_component_type_code     => l_component_type_code
11474         , p_component_appl_id       => l_component_appl_id
11478         , p_side                    => 'CREDIT'
11475         , p_amb_context_code        => l_amb_context_code
11476         , p_entity_code             => 'AP_INVOICES'
11477         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
11479         );
11480 
11481   END IF;
11482 
11483    l_segment := AcctDerRule_8(
11484            p_application_id           => p_application_id
11485          , p_ae_header_id             => l_ae_header_id 
11486 , p_source_16 => p_source_16
11487 , p_source_16_meaning => p_source_16_meaning
11488 , p_source_19 => p_source_19
11489 , p_source_19_meaning => p_source_19_meaning
11490 , p_source_20 => p_source_20
11491          , x_transaction_coa_id       => l_adr_transaction_coa_id
11492          , x_accounting_coa_id        => l_adr_accounting_coa_id
11493          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11494          , x_flex_value_set_id        => l_adr_flex_value_set_id
11495          , x_value_type_code          => l_adr_value_type_code
11496          , x_value_combination_id     => l_adr_value_combination_id
11497          , x_value_segment_code       => l_adr_value_segment_code
11498          , p_side                     => 'DEBIT'
11499          , p_override_seg_flag        => 'Y'
11500    );
11501 
11502    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11503 
11504       xla_ae_lines_pkg.set_segment(
11505           p_to_segment_code         => 'GL_ACCOUNT'
11506         , p_segment_value           => l_segment
11507         , p_from_segment_code       => l_adr_value_segment_code
11508         , p_from_combination_id     => l_adr_value_combination_id
11509         , p_value_type_code         => l_adr_value_type_code
11510         , p_transaction_coa_id      => l_adr_transaction_coa_id
11511         , p_accounting_coa_id       => l_adr_accounting_coa_id
11512         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11513         , p_flex_value_set_id       => l_adr_flex_value_set_id
11514         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11515         , p_adr_type_code           => 'S'
11516         , p_component_type          => l_component_type
11517         , p_component_code          => l_component_code
11518         , p_component_type_code     => l_component_type_code
11519         , p_component_appl_id       => l_component_appl_id
11520         , p_amb_context_code        => l_amb_context_code
11521         , p_entity_code             => 'AP_INVOICES'
11522         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
11523         , p_side                    => 'DEBIT'
11524         );
11525 
11526   END IF;
11527 
11528    l_segment := AcctDerRule_17(
11529            p_application_id           => p_application_id
11530          , p_ae_header_id             => l_ae_header_id 
11531 , p_source_16 => p_source_16
11532 , p_source_16_meaning => p_source_16_meaning
11533 , p_source_19 => p_source_19
11534 , p_source_19_meaning => p_source_19_meaning
11535 , p_source_29 => p_source_29
11536          , x_transaction_coa_id       => l_adr_transaction_coa_id
11537          , x_accounting_coa_id        => l_adr_accounting_coa_id
11538          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11539          , x_flex_value_set_id        => l_adr_flex_value_set_id
11540          , x_value_type_code          => l_adr_value_type_code
11541          , x_value_combination_id     => l_adr_value_combination_id
11542          , x_value_segment_code       => l_adr_value_segment_code
11543          , p_side                     => 'ALL'
11544          , p_override_seg_flag        => 'Y'
11545    );
11546 
11547    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11548 
11549       xla_ae_lines_pkg.set_segment(
11550           p_to_segment_code         => 'GL_BALANCING'
11551         , p_segment_value           => l_segment
11552         , p_from_segment_code       => l_adr_value_segment_code
11553         , p_from_combination_id     => l_adr_value_combination_id
11554         , p_value_type_code         => l_adr_value_type_code
11555         , p_transaction_coa_id      => l_adr_transaction_coa_id
11556         , p_accounting_coa_id       => l_adr_accounting_coa_id
11557         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11558         , p_flex_value_set_id       => l_adr_flex_value_set_id
11559         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
11560         , p_adr_type_code           => 'S'
11561         , p_component_type          => l_component_type
11562         , p_component_code          => l_component_code
11563         , p_component_type_code     => l_component_type_code
11564         , p_component_appl_id       => l_component_appl_id
11565         , p_amb_context_code        => l_amb_context_code
11566         , p_entity_code             => 'AP_INVOICES'
11567         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
11568         , p_side                    => 'ALL'
11569         );
11570 
11571   END IF;
11572 
11573    --
11574    --
11575    END IF;
11576    --
11577    -- Bug 4922099
11578    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11579           (NVL(l_enc_upg_option, 'N') = 'O')
11580         ) AND
11581         (l_bflow_method_code = 'PRIOR_ENTRY')
11582       )
11583    THEN
11584       IF
11585       --
11586       1 = 2
11587       --
11588       THEN
11589       xla_accounting_err_pkg.build_message
11590                                     (p_appli_s_name            => 'XLA'
11594                                     ,p_token_2                 => 'LINE_TYPE_NAME'
11591                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11592                                     ,p_token_1                 => 'LINE_NUMBER'
11593                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
11595                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
11596                                                                              l_component_type
11597                                                                             ,l_component_code
11598                                                                             ,l_component_type_code
11599                                                                             ,l_component_appl_id
11600                                                                             ,l_amb_context_code
11601                                                                             ,l_entity_code
11602                                                                             ,l_event_class_code
11603                                                                            )
11604                                     ,p_token_3                 => 'OWNER'
11605                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
11606                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
11607                                                                           ,p_lookup_code    => l_component_type_code
11608                                                                          )
11609                                     ,p_token_4                 => 'PRODUCT_NAME'
11610                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11611                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11612                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11613                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11614                                     ,p_ae_header_id            =>  NULL
11615                                        );
11616 
11617         IF (C_LEVEL_ERROR>= g_log_level) THEN
11618                  trace
11619                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11620                       ,p_level    => C_LEVEL_ERROR
11621                       ,p_module   => l_log_module);
11622         END IF;
11623       END IF;
11624    END IF;
11625    --
11626    --
11627    ------------------------------------------------------------------------------------------------
11628    -- 4219869 Business Flow
11629    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11630    -- Prior Entry.  Currently, the following code is always generated.
11631    ------------------------------------------------------------------------------------------------
11632    XLA_AE_LINES_PKG.ValidateCurrentLine;
11633 
11634    ------------------------------------------------------------------------------------
11635    -- 4219869 Business Flow
11636    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11637    ------------------------------------------------------------------------------------
11638    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11639 
11640    ----------------------------------------------------------------------------------
11641    -- 4219869 Business Flow
11642    -- Update journal entry status -- Need to generate this within IF <condition>
11643    ----------------------------------------------------------------------------------
11644    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11645          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11646          ,p_balance_type_code => l_balance_type_code
11647          );
11648 
11649    -------------------------------------------------------------------------------------------
11650    -- 4262811 - Generate the Accrual Reversal lines
11651    -------------------------------------------------------------------------------------------
11652    BEGIN
11653       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11654                               (g_array_event(p_event_id).array_value_num('header_index'));
11655       IF l_acc_rev_flag IS NULL THEN
11656          l_acc_rev_flag := 'N';
11657       END IF;
11658    EXCEPTION
11659       WHEN OTHERS THEN
11660          l_acc_rev_flag := 'N';
11661    END;
11662    --
11663    IF (l_acc_rev_flag = 'Y') THEN
11664 
11665        -- 4645092  ------------------------------------------------------------------------------
11666        -- To allow MPA report to determine if it should generate report process
11667        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11668        ------------------------------------------------------------------------------------------
11669 
11670        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11671        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11672    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
11673    -- call ADRs
11674    -- Bug 4922099
11675    --
11676    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11677         (NVL(l_actual_upg_option, 'N') = 'O') OR
11678         (NVL(l_enc_upg_option, 'N') = 'O')
11679       )
11680    THEN
11681    NULL;
11685   l_ccid := AcctDerRule_25(
11682    --
11683    --
11684    
11686            p_application_id           => p_application_id
11687          , p_ae_header_id             => l_ae_header_id 
11688 , p_source_16 => p_source_16
11689 , p_source_16_meaning => p_source_16_meaning
11690 , p_source_17 => p_source_17
11691 , p_source_18 => p_source_18
11692 , p_source_19 => p_source_19
11693 , p_source_19_meaning => p_source_19_meaning
11694 , p_source_20 => p_source_20
11695 , p_source_29 => p_source_29
11696 , p_source_42 => p_source_42
11697 , p_source_42_meaning => p_source_42_meaning
11698          , x_transaction_coa_id       => l_adr_transaction_coa_id
11699          , x_accounting_coa_id        => l_adr_accounting_coa_id
11700          , x_value_type_code          => l_adr_value_type_code
11701          , p_side                     => 'ALL'
11702    );
11703 
11704    xla_ae_lines_pkg.set_ccid(
11705     p_code_combination_id          => l_ccid
11706   , p_value_type_code              => l_adr_value_type_code
11707   , p_transaction_coa_id           => l_adr_transaction_coa_id
11708   , p_accounting_coa_id            => l_adr_accounting_coa_id
11709   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
11710   , p_adr_type_code                => 'S'
11711   , p_component_type               => l_component_type
11712   , p_component_code               => l_component_code
11713   , p_component_type_code          => l_component_type_code
11714   , p_component_appl_id            => l_component_appl_id
11715   , p_amb_context_code             => l_amb_context_code
11716   , p_side                         => 'ALL'
11717   );
11718 
11719 
11720    l_segment := AcctDerRule_7(
11721            p_application_id           => p_application_id
11722          , p_ae_header_id             => l_ae_header_id 
11723 , p_source_16 => p_source_16
11724 , p_source_16_meaning => p_source_16_meaning
11725 , p_source_17 => p_source_17
11726 , p_source_19 => p_source_19
11727 , p_source_19_meaning => p_source_19_meaning
11728          , x_transaction_coa_id       => l_adr_transaction_coa_id
11729          , x_accounting_coa_id        => l_adr_accounting_coa_id
11730          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11731          , x_flex_value_set_id        => l_adr_flex_value_set_id
11732          , x_value_type_code          => l_adr_value_type_code
11733          , x_value_combination_id     => l_adr_value_combination_id
11734          , x_value_segment_code       => l_adr_value_segment_code
11735          , p_side                     => 'CREDIT'
11736          , p_override_seg_flag        => 'Y'
11737    );
11738 
11739    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11740 
11741       xla_ae_lines_pkg.set_segment(
11742           p_to_segment_code         => 'GL_ACCOUNT'
11743         , p_segment_value           => l_segment
11744         , p_from_segment_code       => l_adr_value_segment_code
11745         , p_from_combination_id     => l_adr_value_combination_id
11746         , p_value_type_code         => l_adr_value_type_code
11747         , p_transaction_coa_id      => l_adr_transaction_coa_id
11748         , p_accounting_coa_id       => l_adr_accounting_coa_id
11749         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11750         , p_flex_value_set_id       => l_adr_flex_value_set_id
11751         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11752         , p_adr_type_code           => 'S'
11753         , p_component_type          => l_component_type
11754         , p_component_code          => l_component_code
11755         , p_component_type_code     => l_component_type_code
11756         , p_component_appl_id       => l_component_appl_id
11757         , p_amb_context_code        => l_amb_context_code
11758         , p_entity_code             => 'AP_INVOICES'
11759         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
11760         , p_side                    => 'CREDIT'
11761         );
11762 
11763   END IF;
11764 
11765    l_segment := AcctDerRule_8(
11766            p_application_id           => p_application_id
11767          , p_ae_header_id             => l_ae_header_id 
11768 , p_source_16 => p_source_16
11769 , p_source_16_meaning => p_source_16_meaning
11770 , p_source_19 => p_source_19
11771 , p_source_19_meaning => p_source_19_meaning
11772 , p_source_20 => p_source_20
11773          , x_transaction_coa_id       => l_adr_transaction_coa_id
11774          , x_accounting_coa_id        => l_adr_accounting_coa_id
11775          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11776          , x_flex_value_set_id        => l_adr_flex_value_set_id
11777          , x_value_type_code          => l_adr_value_type_code
11778          , x_value_combination_id     => l_adr_value_combination_id
11779          , x_value_segment_code       => l_adr_value_segment_code
11780          , p_side                     => 'DEBIT'
11781          , p_override_seg_flag        => 'Y'
11782    );
11783 
11784    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11785 
11786       xla_ae_lines_pkg.set_segment(
11787           p_to_segment_code         => 'GL_ACCOUNT'
11788         , p_segment_value           => l_segment
11789         , p_from_segment_code       => l_adr_value_segment_code
11790         , p_from_combination_id     => l_adr_value_combination_id
11791         , p_value_type_code         => l_adr_value_type_code
11792         , p_transaction_coa_id      => l_adr_transaction_coa_id
11796         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11793         , p_accounting_coa_id       => l_adr_accounting_coa_id
11794         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11795         , p_flex_value_set_id       => l_adr_flex_value_set_id
11797         , p_adr_type_code           => 'S'
11798         , p_component_type          => l_component_type
11799         , p_component_code          => l_component_code
11800         , p_component_type_code     => l_component_type_code
11801         , p_component_appl_id       => l_component_appl_id
11802         , p_amb_context_code        => l_amb_context_code
11803         , p_entity_code             => 'AP_INVOICES'
11804         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
11805         , p_side                    => 'DEBIT'
11806         );
11807 
11808   END IF;
11809 
11810    l_segment := AcctDerRule_17(
11811            p_application_id           => p_application_id
11812          , p_ae_header_id             => l_ae_header_id 
11813 , p_source_16 => p_source_16
11814 , p_source_16_meaning => p_source_16_meaning
11815 , p_source_19 => p_source_19
11816 , p_source_19_meaning => p_source_19_meaning
11817 , p_source_29 => p_source_29
11818          , x_transaction_coa_id       => l_adr_transaction_coa_id
11819          , x_accounting_coa_id        => l_adr_accounting_coa_id
11820          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11821          , x_flex_value_set_id        => l_adr_flex_value_set_id
11822          , x_value_type_code          => l_adr_value_type_code
11823          , x_value_combination_id     => l_adr_value_combination_id
11824          , x_value_segment_code       => l_adr_value_segment_code
11825          , p_side                     => 'ALL'
11826          , p_override_seg_flag        => 'Y'
11827    );
11828 
11829    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11830 
11831       xla_ae_lines_pkg.set_segment(
11832           p_to_segment_code         => 'GL_BALANCING'
11833         , p_segment_value           => l_segment
11834         , p_from_segment_code       => l_adr_value_segment_code
11835         , p_from_combination_id     => l_adr_value_combination_id
11836         , p_value_type_code         => l_adr_value_type_code
11837         , p_transaction_coa_id      => l_adr_transaction_coa_id
11838         , p_accounting_coa_id       => l_adr_accounting_coa_id
11839         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11840         , p_flex_value_set_id       => l_adr_flex_value_set_id
11841         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
11842         , p_adr_type_code           => 'S'
11843         , p_component_type          => l_component_type
11844         , p_component_code          => l_component_code
11845         , p_component_type_code     => l_component_type_code
11846         , p_component_appl_id       => l_component_appl_id
11847         , p_amb_context_code        => l_amb_context_code
11848         , p_entity_code             => 'AP_INVOICES'
11849         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
11850         , p_side                    => 'ALL'
11851         );
11852 
11853   END IF;
11854 
11855    --
11856    --
11857    END IF;
11858 
11859        --
11860        -- Update the line information that should be overwritten
11861        --
11862        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11863                                          p_header_num   => 1);
11864        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
11865 
11866        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11867 
11868        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
11869           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11870        END IF;
11871 
11872       --
11873       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11874       --
11875       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11876           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
11877       ELSE
11878           ---------------------------------------------------------------------------------------------------
11879           -- 4262811a Switch Sign
11880           ---------------------------------------------------------------------------------------------------
11881           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
11882           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11883                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11884           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11885                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11886           -- 5132302
11887           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11888                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11889 
11890       END IF;
11891 
11892       -- 4955764
11893       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11894       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11898       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11895 
11896 
11897       XLA_AE_LINES_PKG.ValidateCurrentLine;
11899 
11900       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11901                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11902                ,p_balance_type_code => l_balance_type_code);
11903 
11904    END IF;
11905 
11906    -----------------------------------------------------------------------------------------
11907    -- 4262811 Multiperiod Accounting
11908    -----------------------------------------------------------------------------------------
11909      -- No MPA option is assigned.
11910 
11911 
11912 END IF;
11913 END IF;
11914 --
11915 
11916 --
11917 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11918    trace
11919       (p_msg      => 'END of AcctLineType_46'
11920       ,p_level    => C_LEVEL_PROCEDURE
11921       ,p_module   => l_log_module);
11922 END IF;
11923 --
11924 EXCEPTION
11925   WHEN xla_exceptions_pkg.application_exception THEN
11926       RAISE;
11927   WHEN OTHERS THEN
11928        xla_exceptions_pkg.raise_message
11929            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_46');
11930 END AcctLineType_46;
11931 --
11932 
11933 ---------------------------------------
11934 --
11935 -- PRIVATE FUNCTION
11936 --         AcctLineType_47
11937 --
11938 ---------------------------------------
11939 PROCEDURE AcctLineType_47 (
11940   p_application_id        IN NUMBER
11941  ,p_event_id              IN NUMBER
11942  ,p_calculate_acctd_flag  IN VARCHAR2
11943  ,p_calculate_g_l_flag    IN VARCHAR2
11944  ,p_actual_flag           IN OUT VARCHAR2
11945  ,p_balance_type_code     OUT VARCHAR2
11946  ,p_gain_or_loss_ref      OUT VARCHAR2
11947  
11948 --Automatic Offsets Value
11949  , p_source_16            IN VARCHAR2
11950  , p_source_16_meaning    IN VARCHAR2
11951 --Purchase Order Rate Variance Gain Account
11952  , p_source_17            IN NUMBER
11953 --Destination Type of the PO Distribution
11954  , p_source_19            IN VARCHAR2
11955  , p_source_19_meaning    IN VARCHAR2
11956 --Purchase Order Rate Variance Loss Account
11957  , p_source_20            IN NUMBER
11958 --Payment Distribution (Payment Rate) Ledger Amount
11959  , p_source_21            IN NUMBER
11960 --Payment Distribution (Cleared Rate) Ledger Amount
11961  , p_source_22            IN NUMBER
11962 --Invoice Distribution Account
11963  , p_source_29            IN NUMBER
11964 --Invoice Distribution Type
11965  , p_source_32            IN VARCHAR2
11966  , p_source_32_meaning    IN VARCHAR2
11967 --Automatic Offsets Flag
11968  , p_source_42            IN VARCHAR2
11969  , p_source_42_meaning    IN VARCHAR2
11970 --When to Account for Payment Option
11971  , p_source_50            IN VARCHAR2
11972 --Accounting Reversal Indicator
11973  , p_source_52            IN VARCHAR2
11974 --Business Flow Accounts Payable Application Identifier
11975  , p_source_54            IN NUMBER
11976 --Payment Distribution Identifier
11977  , p_source_59            IN NUMBER
11978 --Distribution Link Type
11979  , p_source_60            IN VARCHAR2
11980 --Override Accounted Amount Indicator
11981  , p_source_64            IN VARCHAR2
11982  , p_source_64_meaning    IN VARCHAR2
11983 --Payment Supplier Identifier
11984  , p_source_65            IN NUMBER
11985 --Payment Supplier Site Identifier
11986  , p_source_66            IN NUMBER
11987 --Third Party Type
11988  , p_source_67            IN VARCHAR2
11989 --Payment Distribution Reversed Identifier
11990  , p_source_68            IN NUMBER
11991 --Invoice Distribution Tax Line Identifier
11992  , p_source_69            IN NUMBER
11993 --Invoice Distribution Summary Tax Line Identifier
11994  , p_source_70            IN NUMBER
11995 --Payment Type
11996  , p_source_71            IN VARCHAR2
11997  , p_source_71_meaning    IN VARCHAR2
11998 --Business Flow Invoice Distribution Type
11999  , p_source_73            IN VARCHAR2
12000 --Business Flow Invoice Entity Code
12001  , p_source_74            IN VARCHAR2
12002 --Business Flow Invoice Distribution Identifier
12003  , p_source_75            IN NUMBER
12004 --Business Flow Invoice Identifier
12005  , p_source_76            IN NUMBER
12006 --Invoice Distribution Tax Distribution Identifier from Tax
12007  , p_source_77            IN NUMBER
12008 )
12009 IS
12010 
12011 l_component_type              VARCHAR2(80);
12012 l_component_code              VARCHAR2(30);
12013 l_component_type_code         VARCHAR2(1);
12014 l_component_appl_id           INTEGER;
12015 l_amb_context_code            VARCHAR2(30);
12016 l_entity_code                 VARCHAR2(30);
12017 l_event_class_code            VARCHAR2(30);
12018 l_ae_header_id                NUMBER;
12019 l_event_type_code             VARCHAR2(30);
12020 l_line_definition_code        VARCHAR2(30);
12021 l_line_definition_owner_code  VARCHAR2(1);
12022 --
12023 -- adr variables
12024 l_segment                     VARCHAR2(30);
12025 l_ccid                        NUMBER;
12026 l_adr_transaction_coa_id      NUMBER;
12027 l_adr_accounting_coa_id       NUMBER;
12028 l_adr_flexfield_segment_code  VARCHAR2(30);
12029 l_adr_flex_value_set_id       NUMBER;
12030 l_adr_value_type_code         VARCHAR2(30);
12031 l_adr_value_combination_id    NUMBER;
12032 l_adr_value_segment_code      VARCHAR2(30);
12033 
12037 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
12034 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
12035 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
12036 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
12038 
12039 -- 4262811 Variables ------------------------------------------------------------------------------------------
12040 l_entered_amt_idx             NUMBER;
12041 l_accted_amt_idx              NUMBER;
12042 l_acc_rev_flag                VARCHAR2(1);
12043 l_accrual_line_num            NUMBER;
12044 l_tmp_amt                     NUMBER;
12045 l_acc_rev_natural_side_code   VARCHAR2(1);
12046 
12047 l_num_entries                 NUMBER;
12048 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
12049 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
12050 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
12051 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
12052 l_recog_line_1                NUMBER;
12053 l_recog_line_2                NUMBER;
12054 
12055 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
12056 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
12057 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
12058 
12059 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12060 
12061 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
12062 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
12063 
12064 ---------------------------------------------------------------------------------------------------------------
12065 
12066 
12067 --
12068 -- bulk performance
12069 --
12070 l_balance_type_code           VARCHAR2(1);
12071 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
12072 l_log_module                  VARCHAR2(240);
12073 
12074 --
12075 -- Upgrade strategy
12076 --
12077 l_actual_upg_option           VARCHAR2(1);
12078 l_enc_upg_option           VARCHAR2(1);
12079 
12080 --
12081 BEGIN
12082 --
12083 IF g_log_enabled THEN
12084       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
12085 END IF;
12086 --
12087 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12088 
12089       trace
12090          (p_msg      => 'BEGIN of AcctLineType_47'
12091          ,p_level    => C_LEVEL_PROCEDURE
12092          ,p_module   => l_log_module);
12093 
12094 END IF;
12095 --
12096 l_component_type             := 'AMB_JLT';
12097 l_component_code             := 'AP_ALC_EX_RATE_VAR_REF';
12098 l_component_type_code        := 'S';
12099 l_component_appl_id          :=  200;
12100 l_amb_context_code           := 'DEFAULT';
12101 l_entity_code                := 'AP_PAYMENTS';
12102 l_event_class_code           := 'REFUNDS';
12103 l_event_type_code            := 'REFUNDS_ALL';
12104 l_line_definition_owner_code := 'S';
12105 l_line_definition_code       := 'CASH_REFUNDS_ALL';
12106 --
12107 l_balance_type_code          := 'A';
12108 l_segment                     := NULL;
12109 l_ccid                        := NULL;
12110 l_adr_transaction_coa_id      := NULL;
12111 l_adr_accounting_coa_id       := NULL;
12112 l_adr_flexfield_segment_code  := NULL;
12113 l_adr_flex_value_set_id       := NULL;
12114 l_adr_value_type_code         := NULL;
12115 l_adr_value_combination_id    := NULL;
12116 l_adr_value_segment_code      := NULL;
12117 
12118 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
12119 l_bflow_class_code           := '';    -- 4219869 Business Flow
12120 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
12121 l_budgetary_control_flag     := 'N';
12122 
12123 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
12124 l_bflow_applied_to_amt       := NULL; -- 5132302
12125 l_entered_amt_idx            := NULL;          -- 4262811
12126 l_accted_amt_idx             := NULL;          -- 4262811
12127 l_acc_rev_flag               := NULL;          -- 4262811
12128 l_accrual_line_num           := NULL;          -- 4262811
12129 l_tmp_amt                    := NULL;          -- 4262811
12130 --
12131 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
12132             (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
12133                return;
12134   END IF;
12135   
12136 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12137     l_balance_type_code <> 'B' THEN
12138 IF NVL(p_source_50,'
12139 ') <>  'CLEAR_CLEAR' AND 
12140 NVL(p_source_32,'
12141 ') =  'ACCRUAL' AND 
12142 NVL(p_source_71,'
12143 ') =  'R'
12144  THEN 
12145 
12146    --
12147    XLA_AE_LINES_PKG.SetNewLine;
12148 
12149    p_balance_type_code          := l_balance_type_code;
12150    -- set the flag so later we will know whether the gain loss line needs to be created
12151    
12152    IF(l_balance_type_code = 'A' ) THEN
12153      p_actual_flag :='G';
12154    END IF;
12155 
12156    --
12157    -- bulk performance
12158    --
12159    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12160                                       p_header_num   => 0); -- 4262811
12161    --
12165            p_natural_side_code          => 'G'
12162    -- set accounting line options
12163    --
12164    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12166          , p_gain_or_loss_flag          => 'N'
12167          , p_gl_transfer_mode_code      => 'S'
12168          , p_acct_entry_type_code       => 'A'
12169          , p_switch_side_flag           => ''
12170          , p_merge_duplicate_code       => 'A'
12171          );
12172    --
12173    l_acc_rev_natural_side_code := 'C';  -- 4262811
12174    -- 
12175    --
12176    -- set accounting line type info
12177    --
12178    xla_ae_lines_pkg.SetAcctLineType
12179       (p_component_type             => l_component_type
12180       ,p_event_type_code            => l_event_type_code
12181       ,p_line_definition_owner_code => l_line_definition_owner_code
12182       ,p_line_definition_code       => l_line_definition_code
12183       ,p_accounting_line_code       => l_component_code
12184       ,p_accounting_line_type_code  => l_component_type_code
12185       ,p_accounting_line_appl_id    => l_component_appl_id
12186       ,p_amb_context_code           => l_amb_context_code
12187       ,p_entity_code                => l_entity_code
12188       ,p_event_class_code           => l_event_class_code);
12189    --
12190    -- set accounting class
12191    --
12192    xla_ae_lines_pkg.SetAcctClass(
12193            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
12194          , p_ae_header_id           => l_ae_header_id
12195          );
12196 
12197    --
12198    -- set rounding class
12199    --
12200    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12201                       'EXCHANGE_RATE_VARIANCE';
12202 
12203    --
12204    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12205    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12206    --
12207    -- bulk performance
12208    --
12209    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12210 
12211    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12212       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12213 
12214    -- 4955764
12215    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12216       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12217 
12218    -- 4458381 Public Sector Enh
12219    
12220    --
12221    -- set accounting attributes for the line type
12222    --
12223    l_entered_amt_idx := NULL;
12224    l_accted_amt_idx  := 9;
12225    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
12226    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12227    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
12228    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
12229    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
12230    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12231    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
12232    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
12233    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
12234    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
12235    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
12236    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12237    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
12238    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
12239    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
12240    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
12241    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
12242    l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
12243    l_rec_acct_attrs.array_num_value(9)  := p_source_21;
12244    l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
12245    l_rec_acct_attrs.array_char_value(10)  := p_source_64;
12246    l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
12247    l_rec_acct_attrs.array_num_value(11)  := p_source_65;
12248    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
12249    l_rec_acct_attrs.array_num_value(12)  := p_source_66;
12250    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
12251    l_rec_acct_attrs.array_char_value(13)  := p_source_67;
12252    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
12253    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_68);
12254    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
12255    l_rec_acct_attrs.array_char_value(15)  := p_source_60;
12256    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
12257    l_rec_acct_attrs.array_num_value(16)  := p_source_69;
12258    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
12259    l_rec_acct_attrs.array_num_value(17)  := p_source_77;
12260    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
12261    l_rec_acct_attrs.array_num_value(18)  := p_source_70;
12262 
12263    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12264    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12265 
12266    ---------------------------------------------------------------------------------------------------------------
12270 
12267    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12268    ---------------------------------------------------------------------------------------------------------------
12269    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12271    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12272    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12273 
12274    IF xla_accounting_cache_pkg.GetValueChar
12275          (p_source_code         => 'LEDGER_CATEGORY_CODE'
12276          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12277    AND l_bflow_method_code = 'PRIOR_ENTRY'
12278 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12279    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12280          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12281        )
12282    THEN
12283          xla_ae_lines_pkg.BflowUpgEntry
12284            (p_business_method_code    => l_bflow_method_code
12285            ,p_business_class_code     => l_bflow_class_code
12286            ,p_balance_type            => l_balance_type_code);
12287    ELSE
12288       NULL;
12289 -- No business flow processing for business flow method of NONE.
12290    END IF;
12291 
12292    --
12293    -- call analytical criteria
12294    --
12295    
12296    --
12297    -- call description
12298    --
12299    -- No description or it is inherited.
12300    --
12301    -- call ADRs
12302    -- Bug 4922099
12303    --
12304    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12305         (NVL(l_actual_upg_option, 'N') = 'O') OR
12306         (NVL(l_enc_upg_option, 'N') = 'O')
12307       )
12308    THEN
12309    NULL;
12310    --
12311    --
12312    
12313   l_ccid := AcctDerRule_24(
12314            p_application_id           => p_application_id
12315          , p_ae_header_id             => l_ae_header_id 
12316 , p_source_16 => p_source_16
12317 , p_source_16_meaning => p_source_16_meaning
12318 , p_source_17 => p_source_17
12319 , p_source_19 => p_source_19
12320 , p_source_19_meaning => p_source_19_meaning
12321 , p_source_20 => p_source_20
12322 , p_source_21 => p_source_21
12323 , p_source_22 => p_source_22
12324 , p_source_29 => p_source_29
12325 , p_source_42 => p_source_42
12326 , p_source_42_meaning => p_source_42_meaning
12327          , x_transaction_coa_id       => l_adr_transaction_coa_id
12328          , x_accounting_coa_id        => l_adr_accounting_coa_id
12329          , x_value_type_code          => l_adr_value_type_code
12330          , p_side                     => 'ALL'
12331    );
12332 
12333    xla_ae_lines_pkg.set_ccid(
12334     p_code_combination_id          => l_ccid
12335   , p_value_type_code              => l_adr_value_type_code
12336   , p_transaction_coa_id           => l_adr_transaction_coa_id
12337   , p_accounting_coa_id            => l_adr_accounting_coa_id
12338   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
12339   , p_adr_type_code                => 'S'
12340   , p_component_type               => l_component_type
12341   , p_component_code               => l_component_code
12342   , p_component_type_code          => l_component_type_code
12343   , p_component_appl_id            => l_component_appl_id
12344   , p_amb_context_code             => l_amb_context_code
12345   , p_side                         => 'ALL'
12346   );
12347 
12348 
12349    l_segment := AcctDerRule_7(
12350            p_application_id           => p_application_id
12351          , p_ae_header_id             => l_ae_header_id 
12352 , p_source_16 => p_source_16
12353 , p_source_16_meaning => p_source_16_meaning
12354 , p_source_17 => p_source_17
12355 , p_source_19 => p_source_19
12356 , p_source_19_meaning => p_source_19_meaning
12357          , x_transaction_coa_id       => l_adr_transaction_coa_id
12358          , x_accounting_coa_id        => l_adr_accounting_coa_id
12359          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12360          , x_flex_value_set_id        => l_adr_flex_value_set_id
12361          , x_value_type_code          => l_adr_value_type_code
12362          , x_value_combination_id     => l_adr_value_combination_id
12363          , x_value_segment_code       => l_adr_value_segment_code
12364          , p_side                     => 'CREDIT'
12365          , p_override_seg_flag        => 'Y'
12366    );
12367 
12368    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12369 
12370       xla_ae_lines_pkg.set_segment(
12371           p_to_segment_code         => 'GL_ACCOUNT'
12372         , p_segment_value           => l_segment
12373         , p_from_segment_code       => l_adr_value_segment_code
12374         , p_from_combination_id     => l_adr_value_combination_id
12375         , p_value_type_code         => l_adr_value_type_code
12376         , p_transaction_coa_id      => l_adr_transaction_coa_id
12377         , p_accounting_coa_id       => l_adr_accounting_coa_id
12378         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12379         , p_flex_value_set_id       => l_adr_flex_value_set_id
12380         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12381         , p_adr_type_code           => 'S'
12382         , p_component_type          => l_component_type
12386         , p_amb_context_code        => l_amb_context_code
12383         , p_component_code          => l_component_code
12384         , p_component_type_code     => l_component_type_code
12385         , p_component_appl_id       => l_component_appl_id
12387         , p_entity_code             => 'AP_PAYMENTS'
12388         , p_event_class_code        => 'REFUNDS'
12389         , p_side                    => 'CREDIT'
12390         );
12391 
12392   END IF;
12393 
12394    l_segment := AcctDerRule_8(
12395            p_application_id           => p_application_id
12396          , p_ae_header_id             => l_ae_header_id 
12397 , p_source_16 => p_source_16
12398 , p_source_16_meaning => p_source_16_meaning
12399 , p_source_19 => p_source_19
12400 , p_source_19_meaning => p_source_19_meaning
12401 , p_source_20 => p_source_20
12402          , x_transaction_coa_id       => l_adr_transaction_coa_id
12403          , x_accounting_coa_id        => l_adr_accounting_coa_id
12404          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12405          , x_flex_value_set_id        => l_adr_flex_value_set_id
12406          , x_value_type_code          => l_adr_value_type_code
12407          , x_value_combination_id     => l_adr_value_combination_id
12408          , x_value_segment_code       => l_adr_value_segment_code
12409          , p_side                     => 'DEBIT'
12410          , p_override_seg_flag        => 'Y'
12411    );
12412 
12413    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12414 
12415       xla_ae_lines_pkg.set_segment(
12416           p_to_segment_code         => 'GL_ACCOUNT'
12417         , p_segment_value           => l_segment
12418         , p_from_segment_code       => l_adr_value_segment_code
12419         , p_from_combination_id     => l_adr_value_combination_id
12420         , p_value_type_code         => l_adr_value_type_code
12421         , p_transaction_coa_id      => l_adr_transaction_coa_id
12422         , p_accounting_coa_id       => l_adr_accounting_coa_id
12423         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12424         , p_flex_value_set_id       => l_adr_flex_value_set_id
12425         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12426         , p_adr_type_code           => 'S'
12427         , p_component_type          => l_component_type
12428         , p_component_code          => l_component_code
12429         , p_component_type_code     => l_component_type_code
12430         , p_component_appl_id       => l_component_appl_id
12431         , p_amb_context_code        => l_amb_context_code
12432         , p_entity_code             => 'AP_PAYMENTS'
12433         , p_event_class_code        => 'REFUNDS'
12434         , p_side                    => 'DEBIT'
12435         );
12436 
12437   END IF;
12438 
12439    l_segment := AcctDerRule_17(
12440            p_application_id           => p_application_id
12441          , p_ae_header_id             => l_ae_header_id 
12442 , p_source_16 => p_source_16
12443 , p_source_16_meaning => p_source_16_meaning
12444 , p_source_19 => p_source_19
12445 , p_source_19_meaning => p_source_19_meaning
12446 , p_source_29 => p_source_29
12447          , x_transaction_coa_id       => l_adr_transaction_coa_id
12448          , x_accounting_coa_id        => l_adr_accounting_coa_id
12449          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12450          , x_flex_value_set_id        => l_adr_flex_value_set_id
12451          , x_value_type_code          => l_adr_value_type_code
12452          , x_value_combination_id     => l_adr_value_combination_id
12453          , x_value_segment_code       => l_adr_value_segment_code
12454          , p_side                     => 'ALL'
12455          , p_override_seg_flag        => 'Y'
12456    );
12457 
12458    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12459 
12460       xla_ae_lines_pkg.set_segment(
12461           p_to_segment_code         => 'GL_BALANCING'
12462         , p_segment_value           => l_segment
12463         , p_from_segment_code       => l_adr_value_segment_code
12464         , p_from_combination_id     => l_adr_value_combination_id
12465         , p_value_type_code         => l_adr_value_type_code
12466         , p_transaction_coa_id      => l_adr_transaction_coa_id
12467         , p_accounting_coa_id       => l_adr_accounting_coa_id
12468         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12469         , p_flex_value_set_id       => l_adr_flex_value_set_id
12470         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
12471         , p_adr_type_code           => 'S'
12472         , p_component_type          => l_component_type
12473         , p_component_code          => l_component_code
12474         , p_component_type_code     => l_component_type_code
12475         , p_component_appl_id       => l_component_appl_id
12476         , p_amb_context_code        => l_amb_context_code
12477         , p_entity_code             => 'AP_PAYMENTS'
12478         , p_event_class_code        => 'REFUNDS'
12479         , p_side                    => 'ALL'
12480         );
12481 
12482   END IF;
12483 
12484    --
12485    --
12486    END IF;
12487    --
12488    -- Bug 4922099
12489    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12490           (NVL(l_enc_upg_option, 'N') = 'O')
12491         ) AND
12492         (l_bflow_method_code = 'PRIOR_ENTRY')
12493       )
12494    THEN
12495       IF
12496       --
12497       1 = 2
12501                                     (p_appli_s_name            => 'XLA'
12498       --
12499       THEN
12500       xla_accounting_err_pkg.build_message
12502                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12503                                     ,p_token_1                 => 'LINE_NUMBER'
12504                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
12505                                     ,p_token_2                 => 'LINE_TYPE_NAME'
12506                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
12507                                                                              l_component_type
12508                                                                             ,l_component_code
12509                                                                             ,l_component_type_code
12510                                                                             ,l_component_appl_id
12511                                                                             ,l_amb_context_code
12512                                                                             ,l_entity_code
12513                                                                             ,l_event_class_code
12514                                                                            )
12515                                     ,p_token_3                 => 'OWNER'
12516                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
12517                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
12518                                                                           ,p_lookup_code    => l_component_type_code
12519                                                                          )
12520                                     ,p_token_4                 => 'PRODUCT_NAME'
12521                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12522                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12523                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12524                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12525                                     ,p_ae_header_id            =>  NULL
12526                                        );
12527 
12528         IF (C_LEVEL_ERROR>= g_log_level) THEN
12529                  trace
12530                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12531                       ,p_level    => C_LEVEL_ERROR
12532                       ,p_module   => l_log_module);
12533         END IF;
12534       END IF;
12535    END IF;
12536    --
12537    --
12538    ------------------------------------------------------------------------------------------------
12539    -- 4219869 Business Flow
12540    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12541    -- Prior Entry.  Currently, the following code is always generated.
12542    ------------------------------------------------------------------------------------------------
12543    XLA_AE_LINES_PKG.ValidateCurrentLine;
12544 
12545    ------------------------------------------------------------------------------------
12546    -- 4219869 Business Flow
12547    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12548    ------------------------------------------------------------------------------------
12549    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12550 
12551    ----------------------------------------------------------------------------------
12552    -- 4219869 Business Flow
12553    -- Update journal entry status -- Need to generate this within IF <condition>
12554    ----------------------------------------------------------------------------------
12555    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12556          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12557          ,p_balance_type_code => l_balance_type_code
12558          );
12559 
12560    -------------------------------------------------------------------------------------------
12561    -- 4262811 - Generate the Accrual Reversal lines
12562    -------------------------------------------------------------------------------------------
12563    BEGIN
12564       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12565                               (g_array_event(p_event_id).array_value_num('header_index'));
12566       IF l_acc_rev_flag IS NULL THEN
12567          l_acc_rev_flag := 'N';
12568       END IF;
12569    EXCEPTION
12570       WHEN OTHERS THEN
12571          l_acc_rev_flag := 'N';
12572    END;
12573    --
12574    IF (l_acc_rev_flag = 'Y') THEN
12575 
12576        -- 4645092  ------------------------------------------------------------------------------
12577        -- To allow MPA report to determine if it should generate report process
12578        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12579        ------------------------------------------------------------------------------------------
12580 
12581        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12582        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12583    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
12584    -- call ADRs
12585    -- Bug 4922099
12586    --
12587    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12588         (NVL(l_actual_upg_option, 'N') = 'O') OR
12589         (NVL(l_enc_upg_option, 'N') = 'O')
12590       )
12594    --
12591    THEN
12592    NULL;
12593    --
12595    
12596   l_ccid := AcctDerRule_24(
12597            p_application_id           => p_application_id
12598          , p_ae_header_id             => l_ae_header_id 
12599 , p_source_16 => p_source_16
12600 , p_source_16_meaning => p_source_16_meaning
12601 , p_source_17 => p_source_17
12602 , p_source_19 => p_source_19
12603 , p_source_19_meaning => p_source_19_meaning
12604 , p_source_20 => p_source_20
12605 , p_source_21 => p_source_21
12606 , p_source_22 => p_source_22
12607 , p_source_29 => p_source_29
12608 , p_source_42 => p_source_42
12609 , p_source_42_meaning => p_source_42_meaning
12610          , x_transaction_coa_id       => l_adr_transaction_coa_id
12611          , x_accounting_coa_id        => l_adr_accounting_coa_id
12612          , x_value_type_code          => l_adr_value_type_code
12613          , p_side                     => 'ALL'
12614    );
12615 
12616    xla_ae_lines_pkg.set_ccid(
12617     p_code_combination_id          => l_ccid
12618   , p_value_type_code              => l_adr_value_type_code
12619   , p_transaction_coa_id           => l_adr_transaction_coa_id
12620   , p_accounting_coa_id            => l_adr_accounting_coa_id
12621   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
12622   , p_adr_type_code                => 'S'
12623   , p_component_type               => l_component_type
12624   , p_component_code               => l_component_code
12625   , p_component_type_code          => l_component_type_code
12626   , p_component_appl_id            => l_component_appl_id
12627   , p_amb_context_code             => l_amb_context_code
12628   , p_side                         => 'ALL'
12629   );
12630 
12631 
12632    l_segment := AcctDerRule_7(
12633            p_application_id           => p_application_id
12634          , p_ae_header_id             => l_ae_header_id 
12635 , p_source_16 => p_source_16
12636 , p_source_16_meaning => p_source_16_meaning
12637 , p_source_17 => p_source_17
12638 , p_source_19 => p_source_19
12639 , p_source_19_meaning => p_source_19_meaning
12640          , x_transaction_coa_id       => l_adr_transaction_coa_id
12641          , x_accounting_coa_id        => l_adr_accounting_coa_id
12642          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12643          , x_flex_value_set_id        => l_adr_flex_value_set_id
12644          , x_value_type_code          => l_adr_value_type_code
12645          , x_value_combination_id     => l_adr_value_combination_id
12646          , x_value_segment_code       => l_adr_value_segment_code
12647          , p_side                     => 'CREDIT'
12648          , p_override_seg_flag        => 'Y'
12649    );
12650 
12651    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12652 
12653       xla_ae_lines_pkg.set_segment(
12654           p_to_segment_code         => 'GL_ACCOUNT'
12655         , p_segment_value           => l_segment
12656         , p_from_segment_code       => l_adr_value_segment_code
12657         , p_from_combination_id     => l_adr_value_combination_id
12658         , p_value_type_code         => l_adr_value_type_code
12659         , p_transaction_coa_id      => l_adr_transaction_coa_id
12660         , p_accounting_coa_id       => l_adr_accounting_coa_id
12661         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12662         , p_flex_value_set_id       => l_adr_flex_value_set_id
12663         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12664         , p_adr_type_code           => 'S'
12665         , p_component_type          => l_component_type
12666         , p_component_code          => l_component_code
12667         , p_component_type_code     => l_component_type_code
12668         , p_component_appl_id       => l_component_appl_id
12669         , p_amb_context_code        => l_amb_context_code
12670         , p_entity_code             => 'AP_PAYMENTS'
12671         , p_event_class_code        => 'REFUNDS'
12672         , p_side                    => 'CREDIT'
12673         );
12674 
12675   END IF;
12676 
12677    l_segment := AcctDerRule_8(
12678            p_application_id           => p_application_id
12679          , p_ae_header_id             => l_ae_header_id 
12680 , p_source_16 => p_source_16
12681 , p_source_16_meaning => p_source_16_meaning
12682 , p_source_19 => p_source_19
12683 , p_source_19_meaning => p_source_19_meaning
12684 , p_source_20 => p_source_20
12685          , x_transaction_coa_id       => l_adr_transaction_coa_id
12686          , x_accounting_coa_id        => l_adr_accounting_coa_id
12687          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12688          , x_flex_value_set_id        => l_adr_flex_value_set_id
12689          , x_value_type_code          => l_adr_value_type_code
12690          , x_value_combination_id     => l_adr_value_combination_id
12691          , x_value_segment_code       => l_adr_value_segment_code
12692          , p_side                     => 'DEBIT'
12693          , p_override_seg_flag        => 'Y'
12694    );
12695 
12696    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12697 
12698       xla_ae_lines_pkg.set_segment(
12699           p_to_segment_code         => 'GL_ACCOUNT'
12700         , p_segment_value           => l_segment
12701         , p_from_segment_code       => l_adr_value_segment_code
12702         , p_from_combination_id     => l_adr_value_combination_id
12703         , p_value_type_code         => l_adr_value_type_code
12707         , p_flex_value_set_id       => l_adr_flex_value_set_id
12704         , p_transaction_coa_id      => l_adr_transaction_coa_id
12705         , p_accounting_coa_id       => l_adr_accounting_coa_id
12706         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12708         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12709         , p_adr_type_code           => 'S'
12710         , p_component_type          => l_component_type
12711         , p_component_code          => l_component_code
12712         , p_component_type_code     => l_component_type_code
12713         , p_component_appl_id       => l_component_appl_id
12714         , p_amb_context_code        => l_amb_context_code
12715         , p_entity_code             => 'AP_PAYMENTS'
12716         , p_event_class_code        => 'REFUNDS'
12717         , p_side                    => 'DEBIT'
12718         );
12719 
12720   END IF;
12721 
12722    l_segment := AcctDerRule_17(
12723            p_application_id           => p_application_id
12724          , p_ae_header_id             => l_ae_header_id 
12725 , p_source_16 => p_source_16
12726 , p_source_16_meaning => p_source_16_meaning
12727 , p_source_19 => p_source_19
12728 , p_source_19_meaning => p_source_19_meaning
12729 , p_source_29 => p_source_29
12730          , x_transaction_coa_id       => l_adr_transaction_coa_id
12731          , x_accounting_coa_id        => l_adr_accounting_coa_id
12732          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12733          , x_flex_value_set_id        => l_adr_flex_value_set_id
12734          , x_value_type_code          => l_adr_value_type_code
12735          , x_value_combination_id     => l_adr_value_combination_id
12736          , x_value_segment_code       => l_adr_value_segment_code
12737          , p_side                     => 'ALL'
12738          , p_override_seg_flag        => 'Y'
12739    );
12740 
12741    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12742 
12743       xla_ae_lines_pkg.set_segment(
12744           p_to_segment_code         => 'GL_BALANCING'
12745         , p_segment_value           => l_segment
12746         , p_from_segment_code       => l_adr_value_segment_code
12747         , p_from_combination_id     => l_adr_value_combination_id
12748         , p_value_type_code         => l_adr_value_type_code
12749         , p_transaction_coa_id      => l_adr_transaction_coa_id
12750         , p_accounting_coa_id       => l_adr_accounting_coa_id
12751         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12752         , p_flex_value_set_id       => l_adr_flex_value_set_id
12753         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
12754         , p_adr_type_code           => 'S'
12755         , p_component_type          => l_component_type
12756         , p_component_code          => l_component_code
12757         , p_component_type_code     => l_component_type_code
12758         , p_component_appl_id       => l_component_appl_id
12759         , p_amb_context_code        => l_amb_context_code
12760         , p_entity_code             => 'AP_PAYMENTS'
12761         , p_event_class_code        => 'REFUNDS'
12762         , p_side                    => 'ALL'
12763         );
12764 
12765   END IF;
12766 
12767    --
12768    --
12769    END IF;
12770 
12771        --
12772        -- Update the line information that should be overwritten
12773        --
12774        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12775                                          p_header_num   => 1);
12776        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
12777 
12778        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12779 
12780        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
12781           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12782        END IF;
12783 
12784       --
12785       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12786       --
12787       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12788           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
12789       ELSE
12790           ---------------------------------------------------------------------------------------------------
12791           -- 4262811a Switch Sign
12792           ---------------------------------------------------------------------------------------------------
12793           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
12794           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12795                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12796           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12797                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12798           -- 5132302
12799           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12800                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12801 
12802       END IF;
12803 
12804       -- 4955764
12805       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12809       XLA_AE_LINES_PKG.ValidateCurrentLine;
12806       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12807 
12808 
12810       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12811 
12812       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12813                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12814                ,p_balance_type_code => l_balance_type_code);
12815 
12816    END IF;
12817 
12818    -----------------------------------------------------------------------------------------
12819    -- 4262811 Multiperiod Accounting
12820    -----------------------------------------------------------------------------------------
12821      -- No MPA option is assigned.
12822 
12823 
12824 END IF;
12825 END IF;
12826 --
12827 
12828 --
12829 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12830    trace
12831       (p_msg      => 'END of AcctLineType_47'
12832       ,p_level    => C_LEVEL_PROCEDURE
12833       ,p_module   => l_log_module);
12834 END IF;
12835 --
12836 EXCEPTION
12837   WHEN xla_exceptions_pkg.application_exception THEN
12838       RAISE;
12839   WHEN OTHERS THEN
12840        xla_exceptions_pkg.raise_message
12841            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_47');
12842 END AcctLineType_47;
12843 --
12844 
12845 ---------------------------------------
12846 --
12847 -- PRIVATE FUNCTION
12848 --         AcctLineType_48
12849 --
12850 ---------------------------------------
12851 PROCEDURE AcctLineType_48 (
12852   p_application_id        IN NUMBER
12853  ,p_event_id              IN NUMBER
12854  ,p_calculate_acctd_flag  IN VARCHAR2
12855  ,p_calculate_g_l_flag    IN VARCHAR2
12856  ,p_actual_flag           IN OUT VARCHAR2
12857  ,p_balance_type_code     OUT VARCHAR2
12858  ,p_gain_or_loss_ref      OUT VARCHAR2
12859  
12860 --Automatic Offsets Value
12861  , p_source_16            IN VARCHAR2
12862  , p_source_16_meaning    IN VARCHAR2
12863 --Purchase Order Rate Variance Gain Account
12864  , p_source_17            IN NUMBER
12865 --Destination Type of the PO Distribution
12866  , p_source_19            IN VARCHAR2
12867  , p_source_19_meaning    IN VARCHAR2
12868 --Purchase Order Rate Variance Loss Account
12869  , p_source_20            IN NUMBER
12870 --Payment Distribution (Payment Rate) Ledger Amount
12871  , p_source_21            IN NUMBER
12872 --Payment Distribution (Cleared Rate) Ledger Amount
12873  , p_source_22            IN NUMBER
12874 --Invoice Distribution Account
12875  , p_source_29            IN NUMBER
12876 --Invoice Distribution Type
12877  , p_source_32            IN VARCHAR2
12878  , p_source_32_meaning    IN VARCHAR2
12879 --Automatic Offsets Flag
12880  , p_source_42            IN VARCHAR2
12881  , p_source_42_meaning    IN VARCHAR2
12882 --When to Account for Payment Option
12883  , p_source_50            IN VARCHAR2
12884 --Payment Distribution Type
12885  , p_source_51            IN VARCHAR2
12886  , p_source_51_meaning    IN VARCHAR2
12887 --Accounting Reversal Indicator
12888  , p_source_52            IN VARCHAR2
12889 --Payment Distribution Amount
12890  , p_source_53            IN NUMBER
12891 --Business Flow Accounts Payable Application Identifier
12892  , p_source_54            IN NUMBER
12893 --Business Flow Payment Distribution Type
12894  , p_source_55            IN VARCHAR2
12895 --Business Flow Payment Entity Code
12896  , p_source_56            IN VARCHAR2
12897 --Business Flow Payment Distribution Identifier
12898  , p_source_57            IN NUMBER
12899 --Business Flow Payment Identifier
12900  , p_source_58            IN NUMBER
12901 --Payment Distribution Identifier
12902  , p_source_59            IN NUMBER
12903 --Distribution Link Type
12904  , p_source_60            IN VARCHAR2
12905 --Override Accounted Amount Indicator
12906  , p_source_64            IN VARCHAR2
12907  , p_source_64_meaning    IN VARCHAR2
12908 --Payment Supplier Identifier
12909  , p_source_65            IN NUMBER
12910 --Payment Supplier Site Identifier
12911  , p_source_66            IN NUMBER
12912 --Third Party Type
12913  , p_source_67            IN VARCHAR2
12914 --Payment Distribution Reversed Identifier
12915  , p_source_68            IN NUMBER
12916 --Invoice Distribution Tax Line Identifier
12917  , p_source_69            IN NUMBER
12918 --Invoice Distribution Summary Tax Line Identifier
12919  , p_source_70            IN NUMBER
12920 --Accrue on Receipt Option
12921  , p_source_111            IN VARCHAR2
12922  , p_source_111_meaning    IN VARCHAR2
12923 )
12924 IS
12925 
12926 l_component_type              VARCHAR2(80);
12927 l_component_code              VARCHAR2(30);
12928 l_component_type_code         VARCHAR2(1);
12929 l_component_appl_id           INTEGER;
12930 l_amb_context_code            VARCHAR2(30);
12931 l_entity_code                 VARCHAR2(30);
12932 l_event_class_code            VARCHAR2(30);
12933 l_ae_header_id                NUMBER;
12934 l_event_type_code             VARCHAR2(30);
12935 l_line_definition_code        VARCHAR2(30);
12936 l_line_definition_owner_code  VARCHAR2(1);
12937 --
12938 -- adr variables
12939 l_segment                     VARCHAR2(30);
12940 l_ccid                        NUMBER;
12941 l_adr_transaction_coa_id      NUMBER;
12942 l_adr_accounting_coa_id       NUMBER;
12946 l_adr_value_combination_id    NUMBER;
12943 l_adr_flexfield_segment_code  VARCHAR2(30);
12944 l_adr_flex_value_set_id       NUMBER;
12945 l_adr_value_type_code         VARCHAR2(30);
12947 l_adr_value_segment_code      VARCHAR2(30);
12948 
12949 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
12950 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
12951 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
12952 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
12953 
12954 -- 4262811 Variables ------------------------------------------------------------------------------------------
12955 l_entered_amt_idx             NUMBER;
12956 l_accted_amt_idx              NUMBER;
12957 l_acc_rev_flag                VARCHAR2(1);
12958 l_accrual_line_num            NUMBER;
12959 l_tmp_amt                     NUMBER;
12960 l_acc_rev_natural_side_code   VARCHAR2(1);
12961 
12962 l_num_entries                 NUMBER;
12963 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
12964 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
12965 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
12966 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
12967 l_recog_line_1                NUMBER;
12968 l_recog_line_2                NUMBER;
12969 
12970 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
12971 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
12972 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
12973 
12974 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12975 
12976 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
12977 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
12978 
12979 ---------------------------------------------------------------------------------------------------------------
12980 
12981 
12982 --
12983 -- bulk performance
12984 --
12985 l_balance_type_code           VARCHAR2(1);
12986 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
12987 l_log_module                  VARCHAR2(240);
12988 
12989 --
12990 -- Upgrade strategy
12991 --
12992 l_actual_upg_option           VARCHAR2(1);
12993 l_enc_upg_option           VARCHAR2(1);
12994 
12995 --
12996 BEGIN
12997 --
12998 IF g_log_enabled THEN
12999       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
13000 END IF;
13001 --
13002 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13003 
13004       trace
13005          (p_msg      => 'BEGIN of AcctLineType_48'
13006          ,p_level    => C_LEVEL_PROCEDURE
13007          ,p_module   => l_log_module);
13008 
13009 END IF;
13010 --
13011 l_component_type             := 'AMB_JLT';
13012 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_CLEAR';
13013 l_component_type_code        := 'S';
13014 l_component_appl_id          :=  200;
13015 l_amb_context_code           := 'DEFAULT';
13016 l_entity_code                := 'AP_PAYMENTS';
13017 l_event_class_code           := 'RECONCILED PAYMENTS';
13018 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
13019 l_line_definition_owner_code := 'S';
13020 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
13021 --
13022 l_balance_type_code          := 'A';
13023 l_segment                     := NULL;
13024 l_ccid                        := NULL;
13025 l_adr_transaction_coa_id      := NULL;
13026 l_adr_accounting_coa_id       := NULL;
13027 l_adr_flexfield_segment_code  := NULL;
13028 l_adr_flex_value_set_id       := NULL;
13029 l_adr_value_type_code         := NULL;
13030 l_adr_value_combination_id    := NULL;
13031 l_adr_value_segment_code      := NULL;
13032 
13033 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
13034 l_bflow_class_code           := '';    -- 4219869 Business Flow
13035 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
13036 l_budgetary_control_flag     := 'N';
13037 
13038 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
13039 l_bflow_applied_to_amt       := NULL; -- 5132302
13040 l_entered_amt_idx            := NULL;          -- 4262811
13041 l_accted_amt_idx             := NULL;          -- 4262811
13042 l_acc_rev_flag               := NULL;          -- 4262811
13043 l_accrual_line_num           := NULL;          -- 4262811
13044 l_tmp_amt                    := NULL;          -- 4262811
13045 --
13046 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
13047             (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
13048                return;
13049   END IF;
13050   
13051 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13052     l_balance_type_code <> 'B' THEN
13053 IF NVL(p_source_50,'
13054 ') =  'CLEAR_CLEAR' AND 
13055 NVL(p_source_32,'
13056 ') =  'NONREC_TAX' AND 
13057 NVL(p_source_111,'
13058 ') =  'Y' AND 
13059 (NVL(p_source_51,'
13060 ') =  'CASH' OR 
13061 NVL(p_source_51,'
13062 ') =  'DISCOUNT')
13063  THEN 
13064 
13065    --
13066    XLA_AE_LINES_PKG.SetNewLine;
13067 
13068    p_balance_type_code          := l_balance_type_code;
13072      p_actual_flag :='G';
13069    -- set the flag so later we will know whether the gain loss line needs to be created
13070    
13071    IF(l_balance_type_code = 'A' ) THEN
13073    END IF;
13074 
13075    --
13076    -- bulk performance
13077    --
13078    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13079                                       p_header_num   => 0); -- 4262811
13080    --
13081    -- set accounting line options
13082    --
13083    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13084            p_natural_side_code          => 'G'
13085          , p_gain_or_loss_flag          => 'N'
13086          , p_gl_transfer_mode_code      => 'S'
13087          , p_acct_entry_type_code       => 'A'
13088          , p_switch_side_flag           => ''
13089          , p_merge_duplicate_code       => 'A'
13090          );
13091    --
13092    l_acc_rev_natural_side_code := 'C';  -- 4262811
13093    -- 
13094    --
13095    -- set accounting line type info
13096    --
13097    xla_ae_lines_pkg.SetAcctLineType
13098       (p_component_type             => l_component_type
13099       ,p_event_type_code            => l_event_type_code
13100       ,p_line_definition_owner_code => l_line_definition_owner_code
13101       ,p_line_definition_code       => l_line_definition_code
13102       ,p_accounting_line_code       => l_component_code
13103       ,p_accounting_line_type_code  => l_component_type_code
13104       ,p_accounting_line_appl_id    => l_component_appl_id
13105       ,p_amb_context_code           => l_amb_context_code
13106       ,p_entity_code                => l_entity_code
13107       ,p_event_class_code           => l_event_class_code);
13108    --
13109    -- set accounting class
13110    --
13111    xla_ae_lines_pkg.SetAcctClass(
13112            p_accounting_class_code  => 'TERV'
13113          , p_ae_header_id           => l_ae_header_id
13114          );
13115 
13116    --
13117    -- set rounding class
13118    --
13119    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13120                       'TERV';
13121 
13122    --
13123    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13124    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13125    --
13126    -- bulk performance
13127    --
13128    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13129 
13130    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13131       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13132 
13133    -- 4955764
13134    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13135       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13136 
13137    -- 4458381 Public Sector Enh
13138    
13139    --
13140    -- set accounting attributes for the line type
13141    --
13142    l_entered_amt_idx := NULL;
13143    l_accted_amt_idx  := 10;
13144    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
13145    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13146    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
13147    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
13148    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
13149    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
13150    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
13151    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13152    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
13153    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
13154    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
13155    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
13156    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
13157    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13158    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
13159    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
13160    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
13161    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
13162    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
13163    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
13164    l_rec_acct_attrs.array_num_value(10)  := p_source_22;
13165    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
13166    l_rec_acct_attrs.array_char_value(11)  := p_source_64;
13167    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
13168    l_rec_acct_attrs.array_num_value(12)  := p_source_65;
13169    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
13170    l_rec_acct_attrs.array_num_value(13)  := p_source_66;
13171    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
13172    l_rec_acct_attrs.array_char_value(14)  := p_source_67;
13173    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
13174    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_68);
13175    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
13176    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
13177    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
13178    l_rec_acct_attrs.array_num_value(17)  := p_source_69;
13179    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
13180    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
13181    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
13185    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13182    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
13183 
13184    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13186 
13187    ---------------------------------------------------------------------------------------------------------------
13188    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13189    ---------------------------------------------------------------------------------------------------------------
13190    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13191 
13192    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13193    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13194 
13195    IF xla_accounting_cache_pkg.GetValueChar
13196          (p_source_code         => 'LEDGER_CATEGORY_CODE'
13197          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13198    AND l_bflow_method_code = 'PRIOR_ENTRY'
13199 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13200    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13201          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13202        )
13203    THEN
13204          xla_ae_lines_pkg.BflowUpgEntry
13205            (p_business_method_code    => l_bflow_method_code
13206            ,p_business_class_code     => l_bflow_class_code
13207            ,p_balance_type            => l_balance_type_code);
13208    ELSE
13209       NULL;
13210 -- No business flow processing for business flow method of NONE.
13211    END IF;
13212 
13213    --
13214    -- call analytical criteria
13215    --
13216    
13217    --
13218    -- call description
13219    --
13220    -- No description or it is inherited.
13221    --
13222    -- call ADRs
13223    -- Bug 4922099
13224    --
13225    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13226         (NVL(l_actual_upg_option, 'N') = 'O') OR
13227         (NVL(l_enc_upg_option, 'N') = 'O')
13228       )
13229    THEN
13230    NULL;
13231    --
13232    --
13233    
13234   l_ccid := AcctDerRule_24(
13235            p_application_id           => p_application_id
13236          , p_ae_header_id             => l_ae_header_id 
13237 , p_source_16 => p_source_16
13238 , p_source_16_meaning => p_source_16_meaning
13239 , p_source_17 => p_source_17
13240 , p_source_19 => p_source_19
13241 , p_source_19_meaning => p_source_19_meaning
13242 , p_source_20 => p_source_20
13243 , p_source_21 => p_source_21
13244 , p_source_22 => p_source_22
13245 , p_source_29 => p_source_29
13246 , p_source_42 => p_source_42
13247 , p_source_42_meaning => p_source_42_meaning
13248          , x_transaction_coa_id       => l_adr_transaction_coa_id
13249          , x_accounting_coa_id        => l_adr_accounting_coa_id
13250          , x_value_type_code          => l_adr_value_type_code
13251          , p_side                     => 'ALL'
13252    );
13253 
13254    xla_ae_lines_pkg.set_ccid(
13255     p_code_combination_id          => l_ccid
13256   , p_value_type_code              => l_adr_value_type_code
13257   , p_transaction_coa_id           => l_adr_transaction_coa_id
13258   , p_accounting_coa_id            => l_adr_accounting_coa_id
13259   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
13260   , p_adr_type_code                => 'S'
13261   , p_component_type               => l_component_type
13262   , p_component_code               => l_component_code
13263   , p_component_type_code          => l_component_type_code
13264   , p_component_appl_id            => l_component_appl_id
13265   , p_amb_context_code             => l_amb_context_code
13266   , p_side                         => 'ALL'
13267   );
13268 
13269 
13270    l_segment := AcctDerRule_7(
13271            p_application_id           => p_application_id
13272          , p_ae_header_id             => l_ae_header_id 
13273 , p_source_16 => p_source_16
13274 , p_source_16_meaning => p_source_16_meaning
13275 , p_source_17 => p_source_17
13276 , p_source_19 => p_source_19
13277 , p_source_19_meaning => p_source_19_meaning
13278          , x_transaction_coa_id       => l_adr_transaction_coa_id
13279          , x_accounting_coa_id        => l_adr_accounting_coa_id
13280          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13281          , x_flex_value_set_id        => l_adr_flex_value_set_id
13282          , x_value_type_code          => l_adr_value_type_code
13283          , x_value_combination_id     => l_adr_value_combination_id
13284          , x_value_segment_code       => l_adr_value_segment_code
13285          , p_side                     => 'CREDIT'
13286          , p_override_seg_flag        => 'Y'
13287    );
13288 
13289    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13290 
13291       xla_ae_lines_pkg.set_segment(
13292           p_to_segment_code         => 'GL_ACCOUNT'
13293         , p_segment_value           => l_segment
13294         , p_from_segment_code       => l_adr_value_segment_code
13295         , p_from_combination_id     => l_adr_value_combination_id
13296         , p_value_type_code         => l_adr_value_type_code
13297         , p_transaction_coa_id      => l_adr_transaction_coa_id
13298         , p_accounting_coa_id       => l_adr_accounting_coa_id
13299         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13300         , p_flex_value_set_id       => l_adr_flex_value_set_id
13304         , p_component_code          => l_component_code
13301         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13302         , p_adr_type_code           => 'S'
13303         , p_component_type          => l_component_type
13305         , p_component_type_code     => l_component_type_code
13306         , p_component_appl_id       => l_component_appl_id
13307         , p_amb_context_code        => l_amb_context_code
13308         , p_entity_code             => 'AP_PAYMENTS'
13309         , p_event_class_code        => 'RECONCILED PAYMENTS'
13310         , p_side                    => 'CREDIT'
13311         );
13312 
13313   END IF;
13314 
13315    l_segment := AcctDerRule_8(
13316            p_application_id           => p_application_id
13317          , p_ae_header_id             => l_ae_header_id 
13318 , p_source_16 => p_source_16
13319 , p_source_16_meaning => p_source_16_meaning
13320 , p_source_19 => p_source_19
13321 , p_source_19_meaning => p_source_19_meaning
13322 , p_source_20 => p_source_20
13323          , x_transaction_coa_id       => l_adr_transaction_coa_id
13324          , x_accounting_coa_id        => l_adr_accounting_coa_id
13325          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13326          , x_flex_value_set_id        => l_adr_flex_value_set_id
13327          , x_value_type_code          => l_adr_value_type_code
13328          , x_value_combination_id     => l_adr_value_combination_id
13329          , x_value_segment_code       => l_adr_value_segment_code
13330          , p_side                     => 'DEBIT'
13331          , p_override_seg_flag        => 'Y'
13332    );
13333 
13334    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13335 
13336       xla_ae_lines_pkg.set_segment(
13337           p_to_segment_code         => 'GL_ACCOUNT'
13338         , p_segment_value           => l_segment
13339         , p_from_segment_code       => l_adr_value_segment_code
13340         , p_from_combination_id     => l_adr_value_combination_id
13341         , p_value_type_code         => l_adr_value_type_code
13342         , p_transaction_coa_id      => l_adr_transaction_coa_id
13343         , p_accounting_coa_id       => l_adr_accounting_coa_id
13344         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13345         , p_flex_value_set_id       => l_adr_flex_value_set_id
13346         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13347         , p_adr_type_code           => 'S'
13348         , p_component_type          => l_component_type
13349         , p_component_code          => l_component_code
13350         , p_component_type_code     => l_component_type_code
13351         , p_component_appl_id       => l_component_appl_id
13352         , p_amb_context_code        => l_amb_context_code
13353         , p_entity_code             => 'AP_PAYMENTS'
13354         , p_event_class_code        => 'RECONCILED PAYMENTS'
13355         , p_side                    => 'DEBIT'
13356         );
13357 
13358   END IF;
13359 
13360    l_segment := AcctDerRule_17(
13361            p_application_id           => p_application_id
13362          , p_ae_header_id             => l_ae_header_id 
13363 , p_source_16 => p_source_16
13364 , p_source_16_meaning => p_source_16_meaning
13365 , p_source_19 => p_source_19
13366 , p_source_19_meaning => p_source_19_meaning
13367 , p_source_29 => p_source_29
13368          , x_transaction_coa_id       => l_adr_transaction_coa_id
13369          , x_accounting_coa_id        => l_adr_accounting_coa_id
13370          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13371          , x_flex_value_set_id        => l_adr_flex_value_set_id
13372          , x_value_type_code          => l_adr_value_type_code
13373          , x_value_combination_id     => l_adr_value_combination_id
13374          , x_value_segment_code       => l_adr_value_segment_code
13375          , p_side                     => 'ALL'
13376          , p_override_seg_flag        => 'Y'
13377    );
13378 
13379    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13380 
13381       xla_ae_lines_pkg.set_segment(
13382           p_to_segment_code         => 'GL_BALANCING'
13383         , p_segment_value           => l_segment
13384         , p_from_segment_code       => l_adr_value_segment_code
13385         , p_from_combination_id     => l_adr_value_combination_id
13386         , p_value_type_code         => l_adr_value_type_code
13387         , p_transaction_coa_id      => l_adr_transaction_coa_id
13388         , p_accounting_coa_id       => l_adr_accounting_coa_id
13389         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13390         , p_flex_value_set_id       => l_adr_flex_value_set_id
13391         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
13392         , p_adr_type_code           => 'S'
13393         , p_component_type          => l_component_type
13394         , p_component_code          => l_component_code
13395         , p_component_type_code     => l_component_type_code
13396         , p_component_appl_id       => l_component_appl_id
13397         , p_amb_context_code        => l_amb_context_code
13398         , p_entity_code             => 'AP_PAYMENTS'
13399         , p_event_class_code        => 'RECONCILED PAYMENTS'
13400         , p_side                    => 'ALL'
13401         );
13402 
13403   END IF;
13404 
13405    --
13406    --
13407    END IF;
13408    --
13409    -- Bug 4922099
13410    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13414       )
13411           (NVL(l_enc_upg_option, 'N') = 'O')
13412         ) AND
13413         (l_bflow_method_code = 'PRIOR_ENTRY')
13415    THEN
13416       IF
13417       --
13418       1 = 2
13419       --
13420       THEN
13421       xla_accounting_err_pkg.build_message
13422                                     (p_appli_s_name            => 'XLA'
13423                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13424                                     ,p_token_1                 => 'LINE_NUMBER'
13425                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
13426                                     ,p_token_2                 => 'LINE_TYPE_NAME'
13427                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
13428                                                                              l_component_type
13429                                                                             ,l_component_code
13430                                                                             ,l_component_type_code
13431                                                                             ,l_component_appl_id
13432                                                                             ,l_amb_context_code
13433                                                                             ,l_entity_code
13434                                                                             ,l_event_class_code
13435                                                                            )
13436                                     ,p_token_3                 => 'OWNER'
13437                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
13438                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
13439                                                                           ,p_lookup_code    => l_component_type_code
13440                                                                          )
13441                                     ,p_token_4                 => 'PRODUCT_NAME'
13442                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13443                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13444                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13445                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13446                                     ,p_ae_header_id            =>  NULL
13447                                        );
13448 
13449         IF (C_LEVEL_ERROR>= g_log_level) THEN
13450                  trace
13451                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13452                       ,p_level    => C_LEVEL_ERROR
13453                       ,p_module   => l_log_module);
13454         END IF;
13455       END IF;
13456    END IF;
13457    --
13458    --
13459    ------------------------------------------------------------------------------------------------
13460    -- 4219869 Business Flow
13461    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13462    -- Prior Entry.  Currently, the following code is always generated.
13463    ------------------------------------------------------------------------------------------------
13464    XLA_AE_LINES_PKG.ValidateCurrentLine;
13465 
13466    ------------------------------------------------------------------------------------
13467    -- 4219869 Business Flow
13468    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13469    ------------------------------------------------------------------------------------
13470    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13471 
13472    ----------------------------------------------------------------------------------
13473    -- 4219869 Business Flow
13474    -- Update journal entry status -- Need to generate this within IF <condition>
13475    ----------------------------------------------------------------------------------
13476    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13477          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13478          ,p_balance_type_code => l_balance_type_code
13479          );
13480 
13481    -------------------------------------------------------------------------------------------
13482    -- 4262811 - Generate the Accrual Reversal lines
13483    -------------------------------------------------------------------------------------------
13484    BEGIN
13485       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13486                               (g_array_event(p_event_id).array_value_num('header_index'));
13487       IF l_acc_rev_flag IS NULL THEN
13488          l_acc_rev_flag := 'N';
13489       END IF;
13490    EXCEPTION
13491       WHEN OTHERS THEN
13492          l_acc_rev_flag := 'N';
13493    END;
13494    --
13495    IF (l_acc_rev_flag = 'Y') THEN
13496 
13497        -- 4645092  ------------------------------------------------------------------------------
13498        -- To allow MPA report to determine if it should generate report process
13499        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13500        ------------------------------------------------------------------------------------------
13501 
13502        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13503        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13507    --
13504    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
13505    -- call ADRs
13506    -- Bug 4922099
13508    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13509         (NVL(l_actual_upg_option, 'N') = 'O') OR
13510         (NVL(l_enc_upg_option, 'N') = 'O')
13511       )
13512    THEN
13513    NULL;
13514    --
13515    --
13516    
13517   l_ccid := AcctDerRule_24(
13518            p_application_id           => p_application_id
13519          , p_ae_header_id             => l_ae_header_id 
13520 , p_source_16 => p_source_16
13521 , p_source_16_meaning => p_source_16_meaning
13522 , p_source_17 => p_source_17
13523 , p_source_19 => p_source_19
13524 , p_source_19_meaning => p_source_19_meaning
13525 , p_source_20 => p_source_20
13526 , p_source_21 => p_source_21
13527 , p_source_22 => p_source_22
13528 , p_source_29 => p_source_29
13529 , p_source_42 => p_source_42
13530 , p_source_42_meaning => p_source_42_meaning
13531          , x_transaction_coa_id       => l_adr_transaction_coa_id
13532          , x_accounting_coa_id        => l_adr_accounting_coa_id
13533          , x_value_type_code          => l_adr_value_type_code
13534          , p_side                     => 'ALL'
13535    );
13536 
13537    xla_ae_lines_pkg.set_ccid(
13538     p_code_combination_id          => l_ccid
13539   , p_value_type_code              => l_adr_value_type_code
13540   , p_transaction_coa_id           => l_adr_transaction_coa_id
13541   , p_accounting_coa_id            => l_adr_accounting_coa_id
13542   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
13543   , p_adr_type_code                => 'S'
13544   , p_component_type               => l_component_type
13545   , p_component_code               => l_component_code
13546   , p_component_type_code          => l_component_type_code
13547   , p_component_appl_id            => l_component_appl_id
13548   , p_amb_context_code             => l_amb_context_code
13549   , p_side                         => 'ALL'
13550   );
13551 
13552 
13553    l_segment := AcctDerRule_7(
13554            p_application_id           => p_application_id
13555          , p_ae_header_id             => l_ae_header_id 
13556 , p_source_16 => p_source_16
13557 , p_source_16_meaning => p_source_16_meaning
13558 , p_source_17 => p_source_17
13559 , p_source_19 => p_source_19
13560 , p_source_19_meaning => p_source_19_meaning
13561          , x_transaction_coa_id       => l_adr_transaction_coa_id
13562          , x_accounting_coa_id        => l_adr_accounting_coa_id
13563          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13564          , x_flex_value_set_id        => l_adr_flex_value_set_id
13565          , x_value_type_code          => l_adr_value_type_code
13566          , x_value_combination_id     => l_adr_value_combination_id
13567          , x_value_segment_code       => l_adr_value_segment_code
13568          , p_side                     => 'CREDIT'
13569          , p_override_seg_flag        => 'Y'
13570    );
13571 
13572    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13573 
13574       xla_ae_lines_pkg.set_segment(
13575           p_to_segment_code         => 'GL_ACCOUNT'
13576         , p_segment_value           => l_segment
13577         , p_from_segment_code       => l_adr_value_segment_code
13578         , p_from_combination_id     => l_adr_value_combination_id
13579         , p_value_type_code         => l_adr_value_type_code
13580         , p_transaction_coa_id      => l_adr_transaction_coa_id
13581         , p_accounting_coa_id       => l_adr_accounting_coa_id
13582         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13583         , p_flex_value_set_id       => l_adr_flex_value_set_id
13584         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13585         , p_adr_type_code           => 'S'
13586         , p_component_type          => l_component_type
13587         , p_component_code          => l_component_code
13588         , p_component_type_code     => l_component_type_code
13589         , p_component_appl_id       => l_component_appl_id
13590         , p_amb_context_code        => l_amb_context_code
13591         , p_entity_code             => 'AP_PAYMENTS'
13592         , p_event_class_code        => 'RECONCILED PAYMENTS'
13593         , p_side                    => 'CREDIT'
13594         );
13595 
13596   END IF;
13597 
13598    l_segment := AcctDerRule_8(
13599            p_application_id           => p_application_id
13600          , p_ae_header_id             => l_ae_header_id 
13601 , p_source_16 => p_source_16
13602 , p_source_16_meaning => p_source_16_meaning
13603 , p_source_19 => p_source_19
13604 , p_source_19_meaning => p_source_19_meaning
13605 , p_source_20 => p_source_20
13606          , x_transaction_coa_id       => l_adr_transaction_coa_id
13607          , x_accounting_coa_id        => l_adr_accounting_coa_id
13608          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13609          , x_flex_value_set_id        => l_adr_flex_value_set_id
13610          , x_value_type_code          => l_adr_value_type_code
13611          , x_value_combination_id     => l_adr_value_combination_id
13612          , x_value_segment_code       => l_adr_value_segment_code
13613          , p_side                     => 'DEBIT'
13614          , p_override_seg_flag        => 'Y'
13615    );
13616 
13617    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13618 
13619       xla_ae_lines_pkg.set_segment(
13623         , p_from_combination_id     => l_adr_value_combination_id
13620           p_to_segment_code         => 'GL_ACCOUNT'
13621         , p_segment_value           => l_segment
13622         , p_from_segment_code       => l_adr_value_segment_code
13624         , p_value_type_code         => l_adr_value_type_code
13625         , p_transaction_coa_id      => l_adr_transaction_coa_id
13626         , p_accounting_coa_id       => l_adr_accounting_coa_id
13627         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13628         , p_flex_value_set_id       => l_adr_flex_value_set_id
13629         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13630         , p_adr_type_code           => 'S'
13631         , p_component_type          => l_component_type
13632         , p_component_code          => l_component_code
13633         , p_component_type_code     => l_component_type_code
13634         , p_component_appl_id       => l_component_appl_id
13635         , p_amb_context_code        => l_amb_context_code
13636         , p_entity_code             => 'AP_PAYMENTS'
13637         , p_event_class_code        => 'RECONCILED PAYMENTS'
13638         , p_side                    => 'DEBIT'
13639         );
13640 
13641   END IF;
13642 
13643    l_segment := AcctDerRule_17(
13644            p_application_id           => p_application_id
13645          , p_ae_header_id             => l_ae_header_id 
13646 , p_source_16 => p_source_16
13647 , p_source_16_meaning => p_source_16_meaning
13648 , p_source_19 => p_source_19
13649 , p_source_19_meaning => p_source_19_meaning
13650 , p_source_29 => p_source_29
13651          , x_transaction_coa_id       => l_adr_transaction_coa_id
13652          , x_accounting_coa_id        => l_adr_accounting_coa_id
13653          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13654          , x_flex_value_set_id        => l_adr_flex_value_set_id
13655          , x_value_type_code          => l_adr_value_type_code
13656          , x_value_combination_id     => l_adr_value_combination_id
13657          , x_value_segment_code       => l_adr_value_segment_code
13658          , p_side                     => 'ALL'
13659          , p_override_seg_flag        => 'Y'
13660    );
13661 
13662    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13663 
13664       xla_ae_lines_pkg.set_segment(
13665           p_to_segment_code         => 'GL_BALANCING'
13666         , p_segment_value           => l_segment
13667         , p_from_segment_code       => l_adr_value_segment_code
13668         , p_from_combination_id     => l_adr_value_combination_id
13669         , p_value_type_code         => l_adr_value_type_code
13670         , p_transaction_coa_id      => l_adr_transaction_coa_id
13671         , p_accounting_coa_id       => l_adr_accounting_coa_id
13672         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13673         , p_flex_value_set_id       => l_adr_flex_value_set_id
13674         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
13675         , p_adr_type_code           => 'S'
13676         , p_component_type          => l_component_type
13677         , p_component_code          => l_component_code
13678         , p_component_type_code     => l_component_type_code
13679         , p_component_appl_id       => l_component_appl_id
13680         , p_amb_context_code        => l_amb_context_code
13681         , p_entity_code             => 'AP_PAYMENTS'
13682         , p_event_class_code        => 'RECONCILED PAYMENTS'
13683         , p_side                    => 'ALL'
13684         );
13685 
13686   END IF;
13687 
13688    --
13689    --
13690    END IF;
13691 
13692        --
13693        -- Update the line information that should be overwritten
13694        --
13695        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13696                                          p_header_num   => 1);
13697        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
13698 
13699        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13700 
13701        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
13702           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13703        END IF;
13704 
13705       --
13706       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13707       --
13708       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13709           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
13710       ELSE
13711           ---------------------------------------------------------------------------------------------------
13712           -- 4262811a Switch Sign
13713           ---------------------------------------------------------------------------------------------------
13714           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
13715           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13716                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13717           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13718                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13719           -- 5132302
13723       END IF;
13720           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13721                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13722 
13724 
13725       -- 4955764
13726       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13727       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13728 
13729 
13730       XLA_AE_LINES_PKG.ValidateCurrentLine;
13731       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13732 
13733       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13734                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13735                ,p_balance_type_code => l_balance_type_code);
13736 
13737    END IF;
13738 
13739    -----------------------------------------------------------------------------------------
13740    -- 4262811 Multiperiod Accounting
13741    -----------------------------------------------------------------------------------------
13742      -- No MPA option is assigned.
13743 
13744 
13745 END IF;
13746 END IF;
13747 --
13748 
13749 --
13750 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13751    trace
13752       (p_msg      => 'END of AcctLineType_48'
13753       ,p_level    => C_LEVEL_PROCEDURE
13754       ,p_module   => l_log_module);
13755 END IF;
13756 --
13757 EXCEPTION
13758   WHEN xla_exceptions_pkg.application_exception THEN
13759       RAISE;
13760   WHEN OTHERS THEN
13761        xla_exceptions_pkg.raise_message
13762            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_48');
13763 END AcctLineType_48;
13764 --
13765 
13766 ---------------------------------------
13767 --
13768 -- PRIVATE FUNCTION
13769 --         AcctLineType_49
13770 --
13771 ---------------------------------------
13772 PROCEDURE AcctLineType_49 (
13773   p_application_id        IN NUMBER
13774  ,p_event_id              IN NUMBER
13775  ,p_calculate_acctd_flag  IN VARCHAR2
13776  ,p_calculate_g_l_flag    IN VARCHAR2
13777  ,p_actual_flag           IN OUT VARCHAR2
13778  ,p_balance_type_code     OUT VARCHAR2
13779  ,p_gain_or_loss_ref      OUT VARCHAR2
13780  
13781 --Automatic Offsets Value
13782  , p_source_16            IN VARCHAR2
13783  , p_source_16_meaning    IN VARCHAR2
13784 --Purchase Order Rate Variance Gain Account
13785  , p_source_17            IN NUMBER
13786 --Destination Type of the PO Distribution
13787  , p_source_19            IN VARCHAR2
13788  , p_source_19_meaning    IN VARCHAR2
13789 --Purchase Order Rate Variance Loss Account
13790  , p_source_20            IN NUMBER
13791 --Payment Distribution (Payment Rate) Ledger Amount
13792  , p_source_21            IN NUMBER
13793 --Payment Distribution (Cleared Rate) Ledger Amount
13794  , p_source_22            IN NUMBER
13795 --Invoice Distribution Account
13796  , p_source_29            IN NUMBER
13797 --Invoice Distribution Type
13798  , p_source_32            IN VARCHAR2
13799  , p_source_32_meaning    IN VARCHAR2
13800 --Automatic Offsets Flag
13801  , p_source_42            IN VARCHAR2
13802  , p_source_42_meaning    IN VARCHAR2
13803 --When to Account for Payment Option
13804  , p_source_50            IN VARCHAR2
13805 --Payment Distribution Type
13806  , p_source_51            IN VARCHAR2
13807  , p_source_51_meaning    IN VARCHAR2
13808 --Accounting Reversal Indicator
13809  , p_source_52            IN VARCHAR2
13810 --Business Flow Accounts Payable Application Identifier
13811  , p_source_54            IN NUMBER
13812 --Payment Distribution Identifier
13813  , p_source_59            IN NUMBER
13814 --Distribution Link Type
13815  , p_source_60            IN VARCHAR2
13816 --Override Accounted Amount Indicator
13817  , p_source_64            IN VARCHAR2
13818  , p_source_64_meaning    IN VARCHAR2
13819 --Payment Supplier Identifier
13820  , p_source_65            IN NUMBER
13821 --Payment Supplier Site Identifier
13822  , p_source_66            IN NUMBER
13823 --Third Party Type
13824  , p_source_67            IN VARCHAR2
13825 --Payment Distribution Reversed Identifier
13826  , p_source_68            IN NUMBER
13827 --Invoice Distribution Tax Line Identifier
13828  , p_source_69            IN NUMBER
13829 --Invoice Distribution Summary Tax Line Identifier
13830  , p_source_70            IN NUMBER
13831 --Payment Type
13832  , p_source_71            IN VARCHAR2
13833  , p_source_71_meaning    IN VARCHAR2
13834 --Invoice Distribution Amount of the Payment Distribution
13835  , p_source_72            IN NUMBER
13836 --Business Flow Invoice Distribution Type
13837  , p_source_73            IN VARCHAR2
13838 --Business Flow Invoice Entity Code
13839  , p_source_74            IN VARCHAR2
13840 --Business Flow Invoice Distribution Identifier
13841  , p_source_75            IN NUMBER
13842 --Business Flow Invoice Identifier
13843  , p_source_76            IN NUMBER
13844 --Invoice Distribution Tax Distribution Identifier from Tax
13845  , p_source_77            IN NUMBER
13846 --Accrue on Receipt Option
13847  , p_source_111            IN VARCHAR2
13848  , p_source_111_meaning    IN VARCHAR2
13849 --Invoice Type Paid
13850  , p_source_112            IN VARCHAR2
13851  , p_source_112_meaning    IN VARCHAR2
13852 )
13853 IS
13854 
13855 l_component_type              VARCHAR2(80);
13859 l_amb_context_code            VARCHAR2(30);
13856 l_component_code              VARCHAR2(30);
13857 l_component_type_code         VARCHAR2(1);
13858 l_component_appl_id           INTEGER;
13860 l_entity_code                 VARCHAR2(30);
13861 l_event_class_code            VARCHAR2(30);
13862 l_ae_header_id                NUMBER;
13863 l_event_type_code             VARCHAR2(30);
13864 l_line_definition_code        VARCHAR2(30);
13865 l_line_definition_owner_code  VARCHAR2(1);
13866 --
13867 -- adr variables
13868 l_segment                     VARCHAR2(30);
13869 l_ccid                        NUMBER;
13870 l_adr_transaction_coa_id      NUMBER;
13871 l_adr_accounting_coa_id       NUMBER;
13872 l_adr_flexfield_segment_code  VARCHAR2(30);
13873 l_adr_flex_value_set_id       NUMBER;
13874 l_adr_value_type_code         VARCHAR2(30);
13875 l_adr_value_combination_id    NUMBER;
13876 l_adr_value_segment_code      VARCHAR2(30);
13877 
13878 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
13879 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
13880 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
13881 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
13882 
13883 -- 4262811 Variables ------------------------------------------------------------------------------------------
13884 l_entered_amt_idx             NUMBER;
13885 l_accted_amt_idx              NUMBER;
13886 l_acc_rev_flag                VARCHAR2(1);
13887 l_accrual_line_num            NUMBER;
13888 l_tmp_amt                     NUMBER;
13889 l_acc_rev_natural_side_code   VARCHAR2(1);
13890 
13891 l_num_entries                 NUMBER;
13892 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
13893 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
13894 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
13895 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
13896 l_recog_line_1                NUMBER;
13897 l_recog_line_2                NUMBER;
13898 
13899 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
13900 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
13901 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
13902 
13903 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13904 
13905 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
13906 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
13907 
13908 ---------------------------------------------------------------------------------------------------------------
13909 
13910 
13911 --
13912 -- bulk performance
13913 --
13914 l_balance_type_code           VARCHAR2(1);
13915 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
13916 l_log_module                  VARCHAR2(240);
13917 
13918 --
13919 -- Upgrade strategy
13920 --
13921 l_actual_upg_option           VARCHAR2(1);
13922 l_enc_upg_option           VARCHAR2(1);
13923 
13924 --
13925 BEGIN
13926 --
13927 IF g_log_enabled THEN
13928       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
13929 END IF;
13930 --
13931 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13932 
13933       trace
13934          (p_msg      => 'BEGIN of AcctLineType_49'
13935          ,p_level    => C_LEVEL_PROCEDURE
13936          ,p_module   => l_log_module);
13937 
13938 END IF;
13939 --
13940 l_component_type             := 'AMB_JLT';
13941 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_PMT';
13942 l_component_type_code        := 'S';
13943 l_component_appl_id          :=  200;
13944 l_amb_context_code           := 'DEFAULT';
13945 l_entity_code                := 'AP_PAYMENTS';
13946 l_event_class_code           := 'PAYMENTS';
13947 l_event_type_code            := 'PAYMENTS_ALL';
13948 l_line_definition_owner_code := 'S';
13949 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
13950 --
13951 l_balance_type_code          := 'A';
13952 l_segment                     := NULL;
13953 l_ccid                        := NULL;
13954 l_adr_transaction_coa_id      := NULL;
13955 l_adr_accounting_coa_id       := NULL;
13956 l_adr_flexfield_segment_code  := NULL;
13957 l_adr_flex_value_set_id       := NULL;
13958 l_adr_value_type_code         := NULL;
13959 l_adr_value_combination_id    := NULL;
13960 l_adr_value_segment_code      := NULL;
13961 
13962 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
13963 l_bflow_class_code           := '';    -- 4219869 Business Flow
13964 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
13965 l_budgetary_control_flag     := 'N';
13966 
13967 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
13968 l_bflow_applied_to_amt       := NULL; -- 5132302
13969 l_entered_amt_idx            := NULL;          -- 4262811
13970 l_accted_amt_idx             := NULL;          -- 4262811
13971 l_acc_rev_flag               := NULL;          -- 4262811
13972 l_accrual_line_num           := NULL;          -- 4262811
13973 l_tmp_amt                    := NULL;          -- 4262811
13974 --
13975 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
13976             (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
13980 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13977                return;
13978   END IF;
13979   
13981     l_balance_type_code <> 'B' THEN
13982 IF NVL(p_source_50,'
13983 ') <>  'CLEAR_CLEAR' AND 
13984 NVL(p_source_32,'
13985 ') =  'NONREC_TAX' AND 
13986 NVL(p_source_111,'
13987 ') =  'Y' AND 
13988 NVL(p_source_112,'
13989 ') <>  'INTEREST' AND 
13990 (NVL(p_source_51,'
13991 ') =  'CASH' OR 
13992 NVL(p_source_51,'
13993 ') =  'DISCOUNT') AND 
13994 NVL(p_source_71,'
13995 ') <>  'R'
13996  THEN 
13997 
13998    --
13999    XLA_AE_LINES_PKG.SetNewLine;
14000 
14001    p_balance_type_code          := l_balance_type_code;
14002    -- set the flag so later we will know whether the gain loss line needs to be created
14003    
14004    IF(l_balance_type_code = 'A' ) THEN
14005      p_actual_flag :='G';
14006    END IF;
14007 
14008    --
14009    -- bulk performance
14010    --
14011    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14012                                       p_header_num   => 0); -- 4262811
14013    --
14014    -- set accounting line options
14015    --
14016    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14017            p_natural_side_code          => 'G'
14018          , p_gain_or_loss_flag          => 'N'
14019          , p_gl_transfer_mode_code      => 'S'
14020          , p_acct_entry_type_code       => 'A'
14021          , p_switch_side_flag           => ''
14022          , p_merge_duplicate_code       => 'A'
14023          );
14024    --
14025    l_acc_rev_natural_side_code := 'C';  -- 4262811
14026    -- 
14027    --
14028    -- set accounting line type info
14029    --
14030    xla_ae_lines_pkg.SetAcctLineType
14031       (p_component_type             => l_component_type
14032       ,p_event_type_code            => l_event_type_code
14033       ,p_line_definition_owner_code => l_line_definition_owner_code
14034       ,p_line_definition_code       => l_line_definition_code
14035       ,p_accounting_line_code       => l_component_code
14036       ,p_accounting_line_type_code  => l_component_type_code
14037       ,p_accounting_line_appl_id    => l_component_appl_id
14038       ,p_amb_context_code           => l_amb_context_code
14039       ,p_entity_code                => l_entity_code
14040       ,p_event_class_code           => l_event_class_code);
14041    --
14042    -- set accounting class
14043    --
14044    xla_ae_lines_pkg.SetAcctClass(
14045            p_accounting_class_code  => 'TERV'
14046          , p_ae_header_id           => l_ae_header_id
14047          );
14048 
14049    --
14050    -- set rounding class
14051    --
14052    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14053                       'TERV';
14054 
14055    --
14056    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14057    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14058    --
14059    -- bulk performance
14060    --
14061    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14062 
14063    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14064       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14065 
14066    -- 4955764
14067    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14068       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14069 
14070    -- 4458381 Public Sector Enh
14071    
14072    --
14073    -- set accounting attributes for the line type
14074    --
14075    l_entered_amt_idx := NULL;
14076    l_accted_amt_idx  := 10;
14077    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
14078    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14079    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
14080    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
14081    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
14082    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
14083    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
14084    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
14085    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
14086    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
14087    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
14088    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
14089    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
14090    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
14091    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
14092    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
14093    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
14094    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
14095    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
14096    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
14097    l_rec_acct_attrs.array_num_value(10)  := p_source_21;
14098    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
14102    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
14099    l_rec_acct_attrs.array_char_value(11)  := p_source_64;
14100    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
14101    l_rec_acct_attrs.array_num_value(12)  := p_source_65;
14103    l_rec_acct_attrs.array_num_value(13)  := p_source_66;
14104    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
14105    l_rec_acct_attrs.array_char_value(14)  := p_source_67;
14106    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
14107    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_68);
14108    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
14109    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
14110    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
14111    l_rec_acct_attrs.array_num_value(17)  := p_source_69;
14112    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
14113    l_rec_acct_attrs.array_num_value(18)  := p_source_77;
14114    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
14115    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
14116 
14117    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14118    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14119 
14120    ---------------------------------------------------------------------------------------------------------------
14121    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14122    ---------------------------------------------------------------------------------------------------------------
14123    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14124 
14125    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14126    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14127 
14128    IF xla_accounting_cache_pkg.GetValueChar
14129          (p_source_code         => 'LEDGER_CATEGORY_CODE'
14130          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14131    AND l_bflow_method_code = 'PRIOR_ENTRY'
14132 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14133    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14134          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14135        )
14136    THEN
14137          xla_ae_lines_pkg.BflowUpgEntry
14138            (p_business_method_code    => l_bflow_method_code
14139            ,p_business_class_code     => l_bflow_class_code
14140            ,p_balance_type            => l_balance_type_code);
14141    ELSE
14142       NULL;
14143 -- No business flow processing for business flow method of NONE.
14144    END IF;
14145 
14146    --
14147    -- call analytical criteria
14148    --
14149    
14150    --
14151    -- call description
14152    --
14153    -- No description or it is inherited.
14154    --
14155    -- call ADRs
14156    -- Bug 4922099
14157    --
14158    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14159         (NVL(l_actual_upg_option, 'N') = 'O') OR
14160         (NVL(l_enc_upg_option, 'N') = 'O')
14161       )
14162    THEN
14163    NULL;
14164    --
14165    --
14166    
14167   l_ccid := AcctDerRule_24(
14168            p_application_id           => p_application_id
14169          , p_ae_header_id             => l_ae_header_id 
14170 , p_source_16 => p_source_16
14171 , p_source_16_meaning => p_source_16_meaning
14172 , p_source_17 => p_source_17
14173 , p_source_19 => p_source_19
14174 , p_source_19_meaning => p_source_19_meaning
14175 , p_source_20 => p_source_20
14176 , p_source_21 => p_source_21
14177 , p_source_22 => p_source_22
14178 , p_source_29 => p_source_29
14179 , p_source_42 => p_source_42
14180 , p_source_42_meaning => p_source_42_meaning
14181          , x_transaction_coa_id       => l_adr_transaction_coa_id
14182          , x_accounting_coa_id        => l_adr_accounting_coa_id
14183          , x_value_type_code          => l_adr_value_type_code
14184          , p_side                     => 'ALL'
14185    );
14186 
14187    xla_ae_lines_pkg.set_ccid(
14188     p_code_combination_id          => l_ccid
14189   , p_value_type_code              => l_adr_value_type_code
14190   , p_transaction_coa_id           => l_adr_transaction_coa_id
14191   , p_accounting_coa_id            => l_adr_accounting_coa_id
14192   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
14193   , p_adr_type_code                => 'S'
14194   , p_component_type               => l_component_type
14195   , p_component_code               => l_component_code
14196   , p_component_type_code          => l_component_type_code
14197   , p_component_appl_id            => l_component_appl_id
14198   , p_amb_context_code             => l_amb_context_code
14199   , p_side                         => 'ALL'
14200   );
14201 
14202 
14203    l_segment := AcctDerRule_7(
14204            p_application_id           => p_application_id
14205          , p_ae_header_id             => l_ae_header_id 
14206 , p_source_16 => p_source_16
14207 , p_source_16_meaning => p_source_16_meaning
14208 , p_source_17 => p_source_17
14209 , p_source_19 => p_source_19
14210 , p_source_19_meaning => p_source_19_meaning
14211          , x_transaction_coa_id       => l_adr_transaction_coa_id
14212          , x_accounting_coa_id        => l_adr_accounting_coa_id
14216          , x_value_combination_id     => l_adr_value_combination_id
14213          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14214          , x_flex_value_set_id        => l_adr_flex_value_set_id
14215          , x_value_type_code          => l_adr_value_type_code
14217          , x_value_segment_code       => l_adr_value_segment_code
14218          , p_side                     => 'CREDIT'
14219          , p_override_seg_flag        => 'Y'
14220    );
14221 
14222    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14223 
14224       xla_ae_lines_pkg.set_segment(
14225           p_to_segment_code         => 'GL_ACCOUNT'
14226         , p_segment_value           => l_segment
14227         , p_from_segment_code       => l_adr_value_segment_code
14228         , p_from_combination_id     => l_adr_value_combination_id
14229         , p_value_type_code         => l_adr_value_type_code
14230         , p_transaction_coa_id      => l_adr_transaction_coa_id
14231         , p_accounting_coa_id       => l_adr_accounting_coa_id
14232         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14233         , p_flex_value_set_id       => l_adr_flex_value_set_id
14234         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14235         , p_adr_type_code           => 'S'
14236         , p_component_type          => l_component_type
14237         , p_component_code          => l_component_code
14238         , p_component_type_code     => l_component_type_code
14239         , p_component_appl_id       => l_component_appl_id
14240         , p_amb_context_code        => l_amb_context_code
14241         , p_entity_code             => 'AP_PAYMENTS'
14242         , p_event_class_code        => 'PAYMENTS'
14243         , p_side                    => 'CREDIT'
14244         );
14245 
14246   END IF;
14247 
14248    l_segment := AcctDerRule_8(
14249            p_application_id           => p_application_id
14250          , p_ae_header_id             => l_ae_header_id 
14251 , p_source_16 => p_source_16
14252 , p_source_16_meaning => p_source_16_meaning
14253 , p_source_19 => p_source_19
14254 , p_source_19_meaning => p_source_19_meaning
14255 , p_source_20 => p_source_20
14256          , x_transaction_coa_id       => l_adr_transaction_coa_id
14257          , x_accounting_coa_id        => l_adr_accounting_coa_id
14258          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14259          , x_flex_value_set_id        => l_adr_flex_value_set_id
14260          , x_value_type_code          => l_adr_value_type_code
14261          , x_value_combination_id     => l_adr_value_combination_id
14262          , x_value_segment_code       => l_adr_value_segment_code
14263          , p_side                     => 'DEBIT'
14264          , p_override_seg_flag        => 'Y'
14265    );
14266 
14267    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14268 
14269       xla_ae_lines_pkg.set_segment(
14270           p_to_segment_code         => 'GL_ACCOUNT'
14271         , p_segment_value           => l_segment
14272         , p_from_segment_code       => l_adr_value_segment_code
14273         , p_from_combination_id     => l_adr_value_combination_id
14274         , p_value_type_code         => l_adr_value_type_code
14275         , p_transaction_coa_id      => l_adr_transaction_coa_id
14276         , p_accounting_coa_id       => l_adr_accounting_coa_id
14277         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14278         , p_flex_value_set_id       => l_adr_flex_value_set_id
14279         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14280         , p_adr_type_code           => 'S'
14281         , p_component_type          => l_component_type
14282         , p_component_code          => l_component_code
14283         , p_component_type_code     => l_component_type_code
14284         , p_component_appl_id       => l_component_appl_id
14285         , p_amb_context_code        => l_amb_context_code
14286         , p_entity_code             => 'AP_PAYMENTS'
14287         , p_event_class_code        => 'PAYMENTS'
14288         , p_side                    => 'DEBIT'
14289         );
14290 
14291   END IF;
14292 
14293    l_segment := AcctDerRule_17(
14294            p_application_id           => p_application_id
14295          , p_ae_header_id             => l_ae_header_id 
14296 , p_source_16 => p_source_16
14297 , p_source_16_meaning => p_source_16_meaning
14298 , p_source_19 => p_source_19
14299 , p_source_19_meaning => p_source_19_meaning
14300 , p_source_29 => p_source_29
14301          , x_transaction_coa_id       => l_adr_transaction_coa_id
14302          , x_accounting_coa_id        => l_adr_accounting_coa_id
14303          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14304          , x_flex_value_set_id        => l_adr_flex_value_set_id
14305          , x_value_type_code          => l_adr_value_type_code
14306          , x_value_combination_id     => l_adr_value_combination_id
14307          , x_value_segment_code       => l_adr_value_segment_code
14308          , p_side                     => 'ALL'
14309          , p_override_seg_flag        => 'Y'
14310    );
14311 
14312    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14313 
14314       xla_ae_lines_pkg.set_segment(
14315           p_to_segment_code         => 'GL_BALANCING'
14316         , p_segment_value           => l_segment
14317         , p_from_segment_code       => l_adr_value_segment_code
14318         , p_from_combination_id     => l_adr_value_combination_id
14322         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14319         , p_value_type_code         => l_adr_value_type_code
14320         , p_transaction_coa_id      => l_adr_transaction_coa_id
14321         , p_accounting_coa_id       => l_adr_accounting_coa_id
14323         , p_flex_value_set_id       => l_adr_flex_value_set_id
14324         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
14325         , p_adr_type_code           => 'S'
14326         , p_component_type          => l_component_type
14327         , p_component_code          => l_component_code
14328         , p_component_type_code     => l_component_type_code
14329         , p_component_appl_id       => l_component_appl_id
14330         , p_amb_context_code        => l_amb_context_code
14331         , p_entity_code             => 'AP_PAYMENTS'
14332         , p_event_class_code        => 'PAYMENTS'
14333         , p_side                    => 'ALL'
14334         );
14335 
14336   END IF;
14337 
14338    --
14339    --
14340    END IF;
14341    --
14342    -- Bug 4922099
14343    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14344           (NVL(l_enc_upg_option, 'N') = 'O')
14345         ) AND
14346         (l_bflow_method_code = 'PRIOR_ENTRY')
14347       )
14348    THEN
14349       IF
14350       --
14351       1 = 2
14352       --
14353       THEN
14354       xla_accounting_err_pkg.build_message
14355                                     (p_appli_s_name            => 'XLA'
14356                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14357                                     ,p_token_1                 => 'LINE_NUMBER'
14358                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
14359                                     ,p_token_2                 => 'LINE_TYPE_NAME'
14360                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
14361                                                                              l_component_type
14362                                                                             ,l_component_code
14363                                                                             ,l_component_type_code
14364                                                                             ,l_component_appl_id
14365                                                                             ,l_amb_context_code
14366                                                                             ,l_entity_code
14367                                                                             ,l_event_class_code
14368                                                                            )
14369                                     ,p_token_3                 => 'OWNER'
14370                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
14371                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
14372                                                                           ,p_lookup_code    => l_component_type_code
14373                                                                          )
14374                                     ,p_token_4                 => 'PRODUCT_NAME'
14375                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14376                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14377                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14378                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14379                                     ,p_ae_header_id            =>  NULL
14380                                        );
14381 
14382         IF (C_LEVEL_ERROR>= g_log_level) THEN
14383                  trace
14384                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14385                       ,p_level    => C_LEVEL_ERROR
14386                       ,p_module   => l_log_module);
14387         END IF;
14388       END IF;
14389    END IF;
14390    --
14391    --
14392    ------------------------------------------------------------------------------------------------
14393    -- 4219869 Business Flow
14394    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14395    -- Prior Entry.  Currently, the following code is always generated.
14396    ------------------------------------------------------------------------------------------------
14397    XLA_AE_LINES_PKG.ValidateCurrentLine;
14398 
14399    ------------------------------------------------------------------------------------
14400    -- 4219869 Business Flow
14401    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14402    ------------------------------------------------------------------------------------
14403    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14404 
14405    ----------------------------------------------------------------------------------
14406    -- 4219869 Business Flow
14407    -- Update journal entry status -- Need to generate this within IF <condition>
14408    ----------------------------------------------------------------------------------
14409    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14410          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14411          ,p_balance_type_code => l_balance_type_code
14412          );
14413 
14417    BEGIN
14414    -------------------------------------------------------------------------------------------
14415    -- 4262811 - Generate the Accrual Reversal lines
14416    -------------------------------------------------------------------------------------------
14418       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14419                               (g_array_event(p_event_id).array_value_num('header_index'));
14420       IF l_acc_rev_flag IS NULL THEN
14421          l_acc_rev_flag := 'N';
14422       END IF;
14423    EXCEPTION
14424       WHEN OTHERS THEN
14425          l_acc_rev_flag := 'N';
14426    END;
14427    --
14428    IF (l_acc_rev_flag = 'Y') THEN
14429 
14430        -- 4645092  ------------------------------------------------------------------------------
14431        -- To allow MPA report to determine if it should generate report process
14432        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14433        ------------------------------------------------------------------------------------------
14434 
14435        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14436        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14437    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
14438    -- call ADRs
14439    -- Bug 4922099
14440    --
14441    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14442         (NVL(l_actual_upg_option, 'N') = 'O') OR
14443         (NVL(l_enc_upg_option, 'N') = 'O')
14444       )
14445    THEN
14446    NULL;
14447    --
14448    --
14449    
14450   l_ccid := AcctDerRule_24(
14451            p_application_id           => p_application_id
14452          , p_ae_header_id             => l_ae_header_id 
14453 , p_source_16 => p_source_16
14454 , p_source_16_meaning => p_source_16_meaning
14455 , p_source_17 => p_source_17
14456 , p_source_19 => p_source_19
14457 , p_source_19_meaning => p_source_19_meaning
14458 , p_source_20 => p_source_20
14459 , p_source_21 => p_source_21
14460 , p_source_22 => p_source_22
14461 , p_source_29 => p_source_29
14462 , p_source_42 => p_source_42
14463 , p_source_42_meaning => p_source_42_meaning
14464          , x_transaction_coa_id       => l_adr_transaction_coa_id
14465          , x_accounting_coa_id        => l_adr_accounting_coa_id
14466          , x_value_type_code          => l_adr_value_type_code
14467          , p_side                     => 'ALL'
14468    );
14469 
14470    xla_ae_lines_pkg.set_ccid(
14471     p_code_combination_id          => l_ccid
14472   , p_value_type_code              => l_adr_value_type_code
14473   , p_transaction_coa_id           => l_adr_transaction_coa_id
14474   , p_accounting_coa_id            => l_adr_accounting_coa_id
14475   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
14476   , p_adr_type_code                => 'S'
14477   , p_component_type               => l_component_type
14478   , p_component_code               => l_component_code
14479   , p_component_type_code          => l_component_type_code
14480   , p_component_appl_id            => l_component_appl_id
14481   , p_amb_context_code             => l_amb_context_code
14482   , p_side                         => 'ALL'
14483   );
14484 
14485 
14486    l_segment := AcctDerRule_7(
14487            p_application_id           => p_application_id
14488          , p_ae_header_id             => l_ae_header_id 
14489 , p_source_16 => p_source_16
14490 , p_source_16_meaning => p_source_16_meaning
14491 , p_source_17 => p_source_17
14492 , p_source_19 => p_source_19
14493 , p_source_19_meaning => p_source_19_meaning
14494          , x_transaction_coa_id       => l_adr_transaction_coa_id
14495          , x_accounting_coa_id        => l_adr_accounting_coa_id
14496          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14497          , x_flex_value_set_id        => l_adr_flex_value_set_id
14498          , x_value_type_code          => l_adr_value_type_code
14499          , x_value_combination_id     => l_adr_value_combination_id
14500          , x_value_segment_code       => l_adr_value_segment_code
14501          , p_side                     => 'CREDIT'
14502          , p_override_seg_flag        => 'Y'
14503    );
14504 
14505    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14506 
14507       xla_ae_lines_pkg.set_segment(
14508           p_to_segment_code         => 'GL_ACCOUNT'
14509         , p_segment_value           => l_segment
14510         , p_from_segment_code       => l_adr_value_segment_code
14511         , p_from_combination_id     => l_adr_value_combination_id
14512         , p_value_type_code         => l_adr_value_type_code
14513         , p_transaction_coa_id      => l_adr_transaction_coa_id
14514         , p_accounting_coa_id       => l_adr_accounting_coa_id
14515         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14516         , p_flex_value_set_id       => l_adr_flex_value_set_id
14517         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14518         , p_adr_type_code           => 'S'
14519         , p_component_type          => l_component_type
14520         , p_component_code          => l_component_code
14521         , p_component_type_code     => l_component_type_code
14522         , p_component_appl_id       => l_component_appl_id
14523         , p_amb_context_code        => l_amb_context_code
14524         , p_entity_code             => 'AP_PAYMENTS'
14525         , p_event_class_code        => 'PAYMENTS'
14526         , p_side                    => 'CREDIT'
14527         );
14528 
14532            p_application_id           => p_application_id
14529   END IF;
14530 
14531    l_segment := AcctDerRule_8(
14533          , p_ae_header_id             => l_ae_header_id 
14534 , p_source_16 => p_source_16
14535 , p_source_16_meaning => p_source_16_meaning
14536 , p_source_19 => p_source_19
14537 , p_source_19_meaning => p_source_19_meaning
14538 , p_source_20 => p_source_20
14539          , x_transaction_coa_id       => l_adr_transaction_coa_id
14540          , x_accounting_coa_id        => l_adr_accounting_coa_id
14541          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14542          , x_flex_value_set_id        => l_adr_flex_value_set_id
14543          , x_value_type_code          => l_adr_value_type_code
14544          , x_value_combination_id     => l_adr_value_combination_id
14545          , x_value_segment_code       => l_adr_value_segment_code
14546          , p_side                     => 'DEBIT'
14547          , p_override_seg_flag        => 'Y'
14548    );
14549 
14550    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14551 
14552       xla_ae_lines_pkg.set_segment(
14553           p_to_segment_code         => 'GL_ACCOUNT'
14554         , p_segment_value           => l_segment
14555         , p_from_segment_code       => l_adr_value_segment_code
14556         , p_from_combination_id     => l_adr_value_combination_id
14557         , p_value_type_code         => l_adr_value_type_code
14558         , p_transaction_coa_id      => l_adr_transaction_coa_id
14559         , p_accounting_coa_id       => l_adr_accounting_coa_id
14560         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14561         , p_flex_value_set_id       => l_adr_flex_value_set_id
14562         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14563         , p_adr_type_code           => 'S'
14564         , p_component_type          => l_component_type
14565         , p_component_code          => l_component_code
14566         , p_component_type_code     => l_component_type_code
14567         , p_component_appl_id       => l_component_appl_id
14568         , p_amb_context_code        => l_amb_context_code
14569         , p_entity_code             => 'AP_PAYMENTS'
14570         , p_event_class_code        => 'PAYMENTS'
14571         , p_side                    => 'DEBIT'
14572         );
14573 
14574   END IF;
14575 
14576    l_segment := AcctDerRule_17(
14577            p_application_id           => p_application_id
14578          , p_ae_header_id             => l_ae_header_id 
14579 , p_source_16 => p_source_16
14580 , p_source_16_meaning => p_source_16_meaning
14581 , p_source_19 => p_source_19
14582 , p_source_19_meaning => p_source_19_meaning
14583 , p_source_29 => p_source_29
14584          , x_transaction_coa_id       => l_adr_transaction_coa_id
14585          , x_accounting_coa_id        => l_adr_accounting_coa_id
14586          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14587          , x_flex_value_set_id        => l_adr_flex_value_set_id
14588          , x_value_type_code          => l_adr_value_type_code
14589          , x_value_combination_id     => l_adr_value_combination_id
14590          , x_value_segment_code       => l_adr_value_segment_code
14591          , p_side                     => 'ALL'
14592          , p_override_seg_flag        => 'Y'
14593    );
14594 
14595    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14596 
14597       xla_ae_lines_pkg.set_segment(
14598           p_to_segment_code         => 'GL_BALANCING'
14599         , p_segment_value           => l_segment
14600         , p_from_segment_code       => l_adr_value_segment_code
14601         , p_from_combination_id     => l_adr_value_combination_id
14602         , p_value_type_code         => l_adr_value_type_code
14603         , p_transaction_coa_id      => l_adr_transaction_coa_id
14604         , p_accounting_coa_id       => l_adr_accounting_coa_id
14605         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14606         , p_flex_value_set_id       => l_adr_flex_value_set_id
14607         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
14608         , p_adr_type_code           => 'S'
14609         , p_component_type          => l_component_type
14610         , p_component_code          => l_component_code
14611         , p_component_type_code     => l_component_type_code
14612         , p_component_appl_id       => l_component_appl_id
14613         , p_amb_context_code        => l_amb_context_code
14614         , p_entity_code             => 'AP_PAYMENTS'
14615         , p_event_class_code        => 'PAYMENTS'
14616         , p_side                    => 'ALL'
14617         );
14618 
14619   END IF;
14620 
14621    --
14622    --
14623    END IF;
14624 
14625        --
14626        -- Update the line information that should be overwritten
14627        --
14628        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14629                                          p_header_num   => 1);
14630        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
14631 
14632        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14633 
14634        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
14635           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14636        END IF;
14637 
14638       --
14639       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14640       --
14644           ---------------------------------------------------------------------------------------------------
14641       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14642           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
14643       ELSE
14645           -- 4262811a Switch Sign
14646           ---------------------------------------------------------------------------------------------------
14647           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
14648           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14649                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14650           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14651                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14652           -- 5132302
14653           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14654                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14655 
14656       END IF;
14657 
14658       -- 4955764
14659       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14660       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14661 
14662 
14663       XLA_AE_LINES_PKG.ValidateCurrentLine;
14664       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14665 
14666       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14667                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14668                ,p_balance_type_code => l_balance_type_code);
14669 
14670    END IF;
14671 
14672    -----------------------------------------------------------------------------------------
14673    -- 4262811 Multiperiod Accounting
14674    -----------------------------------------------------------------------------------------
14675      -- No MPA option is assigned.
14676 
14677 
14678 END IF;
14679 END IF;
14680 --
14681 
14682 --
14683 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14684    trace
14685       (p_msg      => 'END of AcctLineType_49'
14686       ,p_level    => C_LEVEL_PROCEDURE
14687       ,p_module   => l_log_module);
14688 END IF;
14689 --
14690 EXCEPTION
14691   WHEN xla_exceptions_pkg.application_exception THEN
14692       RAISE;
14693   WHEN OTHERS THEN
14694        xla_exceptions_pkg.raise_message
14695            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_49');
14696 END AcctLineType_49;
14697 --
14698 
14699 ---------------------------------------
14700 --
14701 -- PRIVATE FUNCTION
14702 --         AcctLineType_50
14703 --
14704 ---------------------------------------
14705 PROCEDURE AcctLineType_50 (
14706   p_application_id        IN NUMBER
14707  ,p_event_id              IN NUMBER
14708  ,p_calculate_acctd_flag  IN VARCHAR2
14709  ,p_calculate_g_l_flag    IN VARCHAR2
14710  ,p_actual_flag           IN OUT VARCHAR2
14711  ,p_balance_type_code     OUT VARCHAR2
14712  ,p_gain_or_loss_ref      OUT VARCHAR2
14713  
14714 --Automatic Offsets Value
14715  , p_source_16            IN VARCHAR2
14716  , p_source_16_meaning    IN VARCHAR2
14717 --Purchase Order Rate Variance Gain Account
14718  , p_source_17            IN NUMBER
14719 --Destination Type of the PO Distribution
14720  , p_source_19            IN VARCHAR2
14721  , p_source_19_meaning    IN VARCHAR2
14722 --Purchase Order Rate Variance Loss Account
14723  , p_source_20            IN NUMBER
14724 --Payment Distribution (Payment Rate) Ledger Amount
14725  , p_source_21            IN NUMBER
14726 --Payment Distribution (Cleared Rate) Ledger Amount
14727  , p_source_22            IN NUMBER
14728 --Invoice Distribution Account
14729  , p_source_29            IN NUMBER
14730 --Invoice Distribution Type
14731  , p_source_32            IN VARCHAR2
14732  , p_source_32_meaning    IN VARCHAR2
14733 --Automatic Offsets Flag
14734  , p_source_42            IN VARCHAR2
14735  , p_source_42_meaning    IN VARCHAR2
14736 --When to Account for Payment Option
14737  , p_source_50            IN VARCHAR2
14738 --Payment Distribution Type
14739  , p_source_51            IN VARCHAR2
14740  , p_source_51_meaning    IN VARCHAR2
14741 --Accounting Reversal Indicator
14742  , p_source_52            IN VARCHAR2
14743 --Business Flow Accounts Payable Application Identifier
14744  , p_source_54            IN NUMBER
14745 --Payment Distribution Identifier
14746  , p_source_59            IN NUMBER
14747 --Distribution Link Type
14748  , p_source_60            IN VARCHAR2
14749 --Override Accounted Amount Indicator
14750  , p_source_64            IN VARCHAR2
14751  , p_source_64_meaning    IN VARCHAR2
14752 --Payment Supplier Identifier
14753  , p_source_65            IN NUMBER
14754 --Payment Supplier Site Identifier
14755  , p_source_66            IN NUMBER
14756 --Third Party Type
14757  , p_source_67            IN VARCHAR2
14758 --Payment Distribution Reversed Identifier
14759  , p_source_68            IN NUMBER
14760 --Invoice Distribution Tax Line Identifier
14761  , p_source_69            IN NUMBER
14762 --Invoice Distribution Summary Tax Line Identifier
14766  , p_source_71_meaning    IN VARCHAR2
14763  , p_source_70            IN NUMBER
14764 --Payment Type
14765  , p_source_71            IN VARCHAR2
14767 --Business Flow Invoice Distribution Type
14768  , p_source_73            IN VARCHAR2
14769 --Business Flow Invoice Entity Code
14770  , p_source_74            IN VARCHAR2
14771 --Business Flow Invoice Distribution Identifier
14772  , p_source_75            IN NUMBER
14773 --Business Flow Invoice Identifier
14774  , p_source_76            IN NUMBER
14775 --Invoice Distribution Tax Distribution Identifier from Tax
14776  , p_source_77            IN NUMBER
14777 --Accrue on Receipt Option
14778  , p_source_111            IN VARCHAR2
14779  , p_source_111_meaning    IN VARCHAR2
14780 )
14781 IS
14782 
14783 l_component_type              VARCHAR2(80);
14784 l_component_code              VARCHAR2(30);
14785 l_component_type_code         VARCHAR2(1);
14786 l_component_appl_id           INTEGER;
14787 l_amb_context_code            VARCHAR2(30);
14788 l_entity_code                 VARCHAR2(30);
14789 l_event_class_code            VARCHAR2(30);
14790 l_ae_header_id                NUMBER;
14791 l_event_type_code             VARCHAR2(30);
14792 l_line_definition_code        VARCHAR2(30);
14793 l_line_definition_owner_code  VARCHAR2(1);
14794 --
14795 -- adr variables
14796 l_segment                     VARCHAR2(30);
14797 l_ccid                        NUMBER;
14798 l_adr_transaction_coa_id      NUMBER;
14799 l_adr_accounting_coa_id       NUMBER;
14800 l_adr_flexfield_segment_code  VARCHAR2(30);
14801 l_adr_flex_value_set_id       NUMBER;
14802 l_adr_value_type_code         VARCHAR2(30);
14803 l_adr_value_combination_id    NUMBER;
14804 l_adr_value_segment_code      VARCHAR2(30);
14805 
14806 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
14807 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
14808 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
14809 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
14810 
14811 -- 4262811 Variables ------------------------------------------------------------------------------------------
14812 l_entered_amt_idx             NUMBER;
14813 l_accted_amt_idx              NUMBER;
14814 l_acc_rev_flag                VARCHAR2(1);
14815 l_accrual_line_num            NUMBER;
14816 l_tmp_amt                     NUMBER;
14817 l_acc_rev_natural_side_code   VARCHAR2(1);
14818 
14819 l_num_entries                 NUMBER;
14820 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
14821 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
14822 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
14823 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
14824 l_recog_line_1                NUMBER;
14825 l_recog_line_2                NUMBER;
14826 
14827 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
14828 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
14829 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
14830 
14831 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14832 
14833 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
14834 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
14835 
14836 ---------------------------------------------------------------------------------------------------------------
14837 
14838 
14839 --
14840 -- bulk performance
14841 --
14842 l_balance_type_code           VARCHAR2(1);
14843 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
14844 l_log_module                  VARCHAR2(240);
14845 
14846 --
14847 -- Upgrade strategy
14848 --
14849 l_actual_upg_option           VARCHAR2(1);
14850 l_enc_upg_option           VARCHAR2(1);
14851 
14852 --
14853 BEGIN
14854 --
14855 IF g_log_enabled THEN
14856       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
14857 END IF;
14858 --
14859 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14860 
14861       trace
14862          (p_msg      => 'BEGIN of AcctLineType_50'
14863          ,p_level    => C_LEVEL_PROCEDURE
14864          ,p_module   => l_log_module);
14865 
14866 END IF;
14867 --
14868 l_component_type             := 'AMB_JLT';
14869 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_REF';
14870 l_component_type_code        := 'S';
14871 l_component_appl_id          :=  200;
14872 l_amb_context_code           := 'DEFAULT';
14873 l_entity_code                := 'AP_PAYMENTS';
14874 l_event_class_code           := 'REFUNDS';
14875 l_event_type_code            := 'REFUNDS_ALL';
14876 l_line_definition_owner_code := 'S';
14877 l_line_definition_code       := 'CASH_REFUNDS_ALL';
14878 --
14879 l_balance_type_code          := 'A';
14880 l_segment                     := NULL;
14881 l_ccid                        := NULL;
14882 l_adr_transaction_coa_id      := NULL;
14883 l_adr_accounting_coa_id       := NULL;
14884 l_adr_flexfield_segment_code  := NULL;
14885 l_adr_flex_value_set_id       := NULL;
14886 l_adr_value_type_code         := NULL;
14887 l_adr_value_combination_id    := NULL;
14888 l_adr_value_segment_code      := NULL;
14889 
14890 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
14894 
14891 l_bflow_class_code           := '';    -- 4219869 Business Flow
14892 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
14893 l_budgetary_control_flag     := 'N';
14895 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
14896 l_bflow_applied_to_amt       := NULL; -- 5132302
14897 l_entered_amt_idx            := NULL;          -- 4262811
14898 l_accted_amt_idx             := NULL;          -- 4262811
14899 l_acc_rev_flag               := NULL;          -- 4262811
14900 l_accrual_line_num           := NULL;          -- 4262811
14901 l_tmp_amt                    := NULL;          -- 4262811
14902 --
14903 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
14904             (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
14905                return;
14906   END IF;
14907   
14908 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14909     l_balance_type_code <> 'B' THEN
14910 IF NVL(p_source_50,'
14911 ') <>  'CLEAR_CLEAR' AND 
14912 NVL(p_source_32,'
14913 ') =  'NONREC_TAX' AND 
14914 NVL(p_source_111,'
14915 ') =  'Y' AND 
14916 (NVL(p_source_51,'
14917 ') =  'CASH' OR 
14918 NVL(p_source_51,'
14919 ') =  'DISCOUNT') AND 
14920 NVL(p_source_71,'
14921 ') =  'R'
14922  THEN 
14923 
14924    --
14925    XLA_AE_LINES_PKG.SetNewLine;
14926 
14927    p_balance_type_code          := l_balance_type_code;
14928    -- set the flag so later we will know whether the gain loss line needs to be created
14929    
14930    IF(l_balance_type_code = 'A' ) THEN
14931      p_actual_flag :='G';
14932    END IF;
14933 
14934    --
14935    -- bulk performance
14936    --
14937    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14938                                       p_header_num   => 0); -- 4262811
14939    --
14940    -- set accounting line options
14941    --
14942    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14943            p_natural_side_code          => 'G'
14944          , p_gain_or_loss_flag          => 'N'
14945          , p_gl_transfer_mode_code      => 'S'
14946          , p_acct_entry_type_code       => 'A'
14947          , p_switch_side_flag           => ''
14948          , p_merge_duplicate_code       => 'A'
14949          );
14950    --
14951    l_acc_rev_natural_side_code := 'C';  -- 4262811
14952    -- 
14953    --
14954    -- set accounting line type info
14955    --
14956    xla_ae_lines_pkg.SetAcctLineType
14957       (p_component_type             => l_component_type
14958       ,p_event_type_code            => l_event_type_code
14959       ,p_line_definition_owner_code => l_line_definition_owner_code
14960       ,p_line_definition_code       => l_line_definition_code
14961       ,p_accounting_line_code       => l_component_code
14962       ,p_accounting_line_type_code  => l_component_type_code
14963       ,p_accounting_line_appl_id    => l_component_appl_id
14964       ,p_amb_context_code           => l_amb_context_code
14965       ,p_entity_code                => l_entity_code
14966       ,p_event_class_code           => l_event_class_code);
14967    --
14968    -- set accounting class
14969    --
14970    xla_ae_lines_pkg.SetAcctClass(
14971            p_accounting_class_code  => 'TERV'
14972          , p_ae_header_id           => l_ae_header_id
14973          );
14974 
14975    --
14976    -- set rounding class
14977    --
14978    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14979                       'TERV';
14980 
14981    --
14982    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14983    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14984    --
14985    -- bulk performance
14986    --
14987    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14988 
14989    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14990       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14991 
14992    -- 4955764
14993    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14994       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14995 
14996    -- 4458381 Public Sector Enh
14997    
14998    --
14999    -- set accounting attributes for the line type
15000    --
15001    l_entered_amt_idx := NULL;
15002    l_accted_amt_idx  := 9;
15003    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
15004    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15005    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
15006    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
15007    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
15008    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15009    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
15010    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
15011    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
15012    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
15013    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
15014    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15018    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
15015    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
15016    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
15017    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
15019    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
15020    l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
15021    l_rec_acct_attrs.array_num_value(9)  := p_source_21;
15022    l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
15023    l_rec_acct_attrs.array_char_value(10)  := p_source_64;
15024    l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
15025    l_rec_acct_attrs.array_num_value(11)  := p_source_65;
15026    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
15027    l_rec_acct_attrs.array_num_value(12)  := p_source_66;
15028    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
15029    l_rec_acct_attrs.array_char_value(13)  := p_source_67;
15030    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
15031    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_68);
15032    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
15033    l_rec_acct_attrs.array_char_value(15)  := p_source_60;
15034    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
15035    l_rec_acct_attrs.array_num_value(16)  := p_source_69;
15036    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
15037    l_rec_acct_attrs.array_num_value(17)  := p_source_77;
15038    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
15039    l_rec_acct_attrs.array_num_value(18)  := p_source_70;
15040 
15041    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15042    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15043 
15044    ---------------------------------------------------------------------------------------------------------------
15045    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15046    ---------------------------------------------------------------------------------------------------------------
15047    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15048 
15049    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15050    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15051 
15052    IF xla_accounting_cache_pkg.GetValueChar
15053          (p_source_code         => 'LEDGER_CATEGORY_CODE'
15054          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15055    AND l_bflow_method_code = 'PRIOR_ENTRY'
15056 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15057    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15058          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15059        )
15060    THEN
15061          xla_ae_lines_pkg.BflowUpgEntry
15062            (p_business_method_code    => l_bflow_method_code
15063            ,p_business_class_code     => l_bflow_class_code
15064            ,p_balance_type            => l_balance_type_code);
15065    ELSE
15066       NULL;
15067 -- No business flow processing for business flow method of NONE.
15068    END IF;
15069 
15070    --
15071    -- call analytical criteria
15072    --
15073    
15074    --
15075    -- call description
15076    --
15077    -- No description or it is inherited.
15078    --
15079    -- call ADRs
15080    -- Bug 4922099
15081    --
15082    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15083         (NVL(l_actual_upg_option, 'N') = 'O') OR
15084         (NVL(l_enc_upg_option, 'N') = 'O')
15085       )
15086    THEN
15087    NULL;
15088    --
15089    --
15090    
15091   l_ccid := AcctDerRule_24(
15092            p_application_id           => p_application_id
15093          , p_ae_header_id             => l_ae_header_id 
15094 , p_source_16 => p_source_16
15095 , p_source_16_meaning => p_source_16_meaning
15096 , p_source_17 => p_source_17
15097 , p_source_19 => p_source_19
15098 , p_source_19_meaning => p_source_19_meaning
15099 , p_source_20 => p_source_20
15100 , p_source_21 => p_source_21
15101 , p_source_22 => p_source_22
15102 , p_source_29 => p_source_29
15103 , p_source_42 => p_source_42
15104 , p_source_42_meaning => p_source_42_meaning
15105          , x_transaction_coa_id       => l_adr_transaction_coa_id
15106          , x_accounting_coa_id        => l_adr_accounting_coa_id
15107          , x_value_type_code          => l_adr_value_type_code
15108          , p_side                     => 'ALL'
15109    );
15110 
15111    xla_ae_lines_pkg.set_ccid(
15112     p_code_combination_id          => l_ccid
15113   , p_value_type_code              => l_adr_value_type_code
15114   , p_transaction_coa_id           => l_adr_transaction_coa_id
15115   , p_accounting_coa_id            => l_adr_accounting_coa_id
15116   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
15117   , p_adr_type_code                => 'S'
15118   , p_component_type               => l_component_type
15119   , p_component_code               => l_component_code
15120   , p_component_type_code          => l_component_type_code
15121   , p_component_appl_id            => l_component_appl_id
15125 
15122   , p_amb_context_code             => l_amb_context_code
15123   , p_side                         => 'ALL'
15124   );
15126 
15127    l_segment := AcctDerRule_7(
15128            p_application_id           => p_application_id
15129          , p_ae_header_id             => l_ae_header_id 
15130 , p_source_16 => p_source_16
15131 , p_source_16_meaning => p_source_16_meaning
15132 , p_source_17 => p_source_17
15133 , p_source_19 => p_source_19
15134 , p_source_19_meaning => p_source_19_meaning
15135          , x_transaction_coa_id       => l_adr_transaction_coa_id
15136          , x_accounting_coa_id        => l_adr_accounting_coa_id
15137          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15138          , x_flex_value_set_id        => l_adr_flex_value_set_id
15139          , x_value_type_code          => l_adr_value_type_code
15140          , x_value_combination_id     => l_adr_value_combination_id
15141          , x_value_segment_code       => l_adr_value_segment_code
15142          , p_side                     => 'CREDIT'
15143          , p_override_seg_flag        => 'Y'
15144    );
15145 
15146    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15147 
15148       xla_ae_lines_pkg.set_segment(
15149           p_to_segment_code         => 'GL_ACCOUNT'
15150         , p_segment_value           => l_segment
15151         , p_from_segment_code       => l_adr_value_segment_code
15152         , p_from_combination_id     => l_adr_value_combination_id
15153         , p_value_type_code         => l_adr_value_type_code
15154         , p_transaction_coa_id      => l_adr_transaction_coa_id
15155         , p_accounting_coa_id       => l_adr_accounting_coa_id
15156         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15157         , p_flex_value_set_id       => l_adr_flex_value_set_id
15158         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15159         , p_adr_type_code           => 'S'
15160         , p_component_type          => l_component_type
15161         , p_component_code          => l_component_code
15162         , p_component_type_code     => l_component_type_code
15163         , p_component_appl_id       => l_component_appl_id
15164         , p_amb_context_code        => l_amb_context_code
15165         , p_entity_code             => 'AP_PAYMENTS'
15166         , p_event_class_code        => 'REFUNDS'
15167         , p_side                    => 'CREDIT'
15168         );
15169 
15170   END IF;
15171 
15172    l_segment := AcctDerRule_8(
15173            p_application_id           => p_application_id
15174          , p_ae_header_id             => l_ae_header_id 
15175 , p_source_16 => p_source_16
15176 , p_source_16_meaning => p_source_16_meaning
15177 , p_source_19 => p_source_19
15178 , p_source_19_meaning => p_source_19_meaning
15179 , p_source_20 => p_source_20
15180          , x_transaction_coa_id       => l_adr_transaction_coa_id
15181          , x_accounting_coa_id        => l_adr_accounting_coa_id
15182          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15183          , x_flex_value_set_id        => l_adr_flex_value_set_id
15184          , x_value_type_code          => l_adr_value_type_code
15185          , x_value_combination_id     => l_adr_value_combination_id
15186          , x_value_segment_code       => l_adr_value_segment_code
15187          , p_side                     => 'DEBIT'
15188          , p_override_seg_flag        => 'Y'
15189    );
15190 
15191    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15192 
15193       xla_ae_lines_pkg.set_segment(
15194           p_to_segment_code         => 'GL_ACCOUNT'
15195         , p_segment_value           => l_segment
15196         , p_from_segment_code       => l_adr_value_segment_code
15197         , p_from_combination_id     => l_adr_value_combination_id
15198         , p_value_type_code         => l_adr_value_type_code
15199         , p_transaction_coa_id      => l_adr_transaction_coa_id
15200         , p_accounting_coa_id       => l_adr_accounting_coa_id
15201         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15202         , p_flex_value_set_id       => l_adr_flex_value_set_id
15203         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15204         , p_adr_type_code           => 'S'
15205         , p_component_type          => l_component_type
15206         , p_component_code          => l_component_code
15207         , p_component_type_code     => l_component_type_code
15208         , p_component_appl_id       => l_component_appl_id
15209         , p_amb_context_code        => l_amb_context_code
15210         , p_entity_code             => 'AP_PAYMENTS'
15211         , p_event_class_code        => 'REFUNDS'
15212         , p_side                    => 'DEBIT'
15213         );
15214 
15215   END IF;
15216 
15217    l_segment := AcctDerRule_17(
15218            p_application_id           => p_application_id
15219          , p_ae_header_id             => l_ae_header_id 
15220 , p_source_16 => p_source_16
15221 , p_source_16_meaning => p_source_16_meaning
15222 , p_source_19 => p_source_19
15223 , p_source_19_meaning => p_source_19_meaning
15224 , p_source_29 => p_source_29
15225          , x_transaction_coa_id       => l_adr_transaction_coa_id
15226          , x_accounting_coa_id        => l_adr_accounting_coa_id
15227          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15228          , x_flex_value_set_id        => l_adr_flex_value_set_id
15229          , x_value_type_code          => l_adr_value_type_code
15233          , p_override_seg_flag        => 'Y'
15230          , x_value_combination_id     => l_adr_value_combination_id
15231          , x_value_segment_code       => l_adr_value_segment_code
15232          , p_side                     => 'ALL'
15234    );
15235 
15236    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15237 
15238       xla_ae_lines_pkg.set_segment(
15239           p_to_segment_code         => 'GL_BALANCING'
15240         , p_segment_value           => l_segment
15241         , p_from_segment_code       => l_adr_value_segment_code
15242         , p_from_combination_id     => l_adr_value_combination_id
15243         , p_value_type_code         => l_adr_value_type_code
15244         , p_transaction_coa_id      => l_adr_transaction_coa_id
15245         , p_accounting_coa_id       => l_adr_accounting_coa_id
15246         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15247         , p_flex_value_set_id       => l_adr_flex_value_set_id
15248         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
15249         , p_adr_type_code           => 'S'
15250         , p_component_type          => l_component_type
15251         , p_component_code          => l_component_code
15252         , p_component_type_code     => l_component_type_code
15253         , p_component_appl_id       => l_component_appl_id
15254         , p_amb_context_code        => l_amb_context_code
15255         , p_entity_code             => 'AP_PAYMENTS'
15256         , p_event_class_code        => 'REFUNDS'
15257         , p_side                    => 'ALL'
15258         );
15259 
15260   END IF;
15261 
15262    --
15263    --
15264    END IF;
15265    --
15266    -- Bug 4922099
15267    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15268           (NVL(l_enc_upg_option, 'N') = 'O')
15269         ) AND
15270         (l_bflow_method_code = 'PRIOR_ENTRY')
15271       )
15272    THEN
15273       IF
15274       --
15275       1 = 2
15276       --
15277       THEN
15278       xla_accounting_err_pkg.build_message
15279                                     (p_appli_s_name            => 'XLA'
15280                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15281                                     ,p_token_1                 => 'LINE_NUMBER'
15282                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
15283                                     ,p_token_2                 => 'LINE_TYPE_NAME'
15284                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
15285                                                                              l_component_type
15286                                                                             ,l_component_code
15287                                                                             ,l_component_type_code
15288                                                                             ,l_component_appl_id
15289                                                                             ,l_amb_context_code
15290                                                                             ,l_entity_code
15291                                                                             ,l_event_class_code
15292                                                                            )
15293                                     ,p_token_3                 => 'OWNER'
15294                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
15295                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
15296                                                                           ,p_lookup_code    => l_component_type_code
15297                                                                          )
15298                                     ,p_token_4                 => 'PRODUCT_NAME'
15299                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15300                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15301                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15302                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15303                                     ,p_ae_header_id            =>  NULL
15304                                        );
15305 
15306         IF (C_LEVEL_ERROR>= g_log_level) THEN
15307                  trace
15308                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15309                       ,p_level    => C_LEVEL_ERROR
15310                       ,p_module   => l_log_module);
15311         END IF;
15312       END IF;
15313    END IF;
15314    --
15315    --
15316    ------------------------------------------------------------------------------------------------
15317    -- 4219869 Business Flow
15318    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15319    -- Prior Entry.  Currently, the following code is always generated.
15320    ------------------------------------------------------------------------------------------------
15321    XLA_AE_LINES_PKG.ValidateCurrentLine;
15322 
15323    ------------------------------------------------------------------------------------
15324    -- 4219869 Business Flow
15325    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15326    ------------------------------------------------------------------------------------
15327    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15328 
15332    ----------------------------------------------------------------------------------
15329    ----------------------------------------------------------------------------------
15330    -- 4219869 Business Flow
15331    -- Update journal entry status -- Need to generate this within IF <condition>
15333    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15334          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15335          ,p_balance_type_code => l_balance_type_code
15336          );
15337 
15338    -------------------------------------------------------------------------------------------
15339    -- 4262811 - Generate the Accrual Reversal lines
15340    -------------------------------------------------------------------------------------------
15341    BEGIN
15342       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15343                               (g_array_event(p_event_id).array_value_num('header_index'));
15344       IF l_acc_rev_flag IS NULL THEN
15345          l_acc_rev_flag := 'N';
15346       END IF;
15347    EXCEPTION
15348       WHEN OTHERS THEN
15349          l_acc_rev_flag := 'N';
15350    END;
15351    --
15352    IF (l_acc_rev_flag = 'Y') THEN
15353 
15354        -- 4645092  ------------------------------------------------------------------------------
15355        -- To allow MPA report to determine if it should generate report process
15356        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15357        ------------------------------------------------------------------------------------------
15358 
15359        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15360        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15361    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
15362    -- call ADRs
15363    -- Bug 4922099
15364    --
15365    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15366         (NVL(l_actual_upg_option, 'N') = 'O') OR
15367         (NVL(l_enc_upg_option, 'N') = 'O')
15368       )
15369    THEN
15370    NULL;
15371    --
15372    --
15373    
15374   l_ccid := AcctDerRule_24(
15375            p_application_id           => p_application_id
15376          , p_ae_header_id             => l_ae_header_id 
15377 , p_source_16 => p_source_16
15378 , p_source_16_meaning => p_source_16_meaning
15379 , p_source_17 => p_source_17
15380 , p_source_19 => p_source_19
15381 , p_source_19_meaning => p_source_19_meaning
15382 , p_source_20 => p_source_20
15383 , p_source_21 => p_source_21
15384 , p_source_22 => p_source_22
15385 , p_source_29 => p_source_29
15386 , p_source_42 => p_source_42
15387 , p_source_42_meaning => p_source_42_meaning
15388          , x_transaction_coa_id       => l_adr_transaction_coa_id
15389          , x_accounting_coa_id        => l_adr_accounting_coa_id
15390          , x_value_type_code          => l_adr_value_type_code
15391          , p_side                     => 'ALL'
15392    );
15393 
15394    xla_ae_lines_pkg.set_ccid(
15395     p_code_combination_id          => l_ccid
15396   , p_value_type_code              => l_adr_value_type_code
15397   , p_transaction_coa_id           => l_adr_transaction_coa_id
15398   , p_accounting_coa_id            => l_adr_accounting_coa_id
15399   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
15400   , p_adr_type_code                => 'S'
15401   , p_component_type               => l_component_type
15402   , p_component_code               => l_component_code
15403   , p_component_type_code          => l_component_type_code
15404   , p_component_appl_id            => l_component_appl_id
15405   , p_amb_context_code             => l_amb_context_code
15406   , p_side                         => 'ALL'
15407   );
15408 
15409 
15410    l_segment := AcctDerRule_7(
15411            p_application_id           => p_application_id
15412          , p_ae_header_id             => l_ae_header_id 
15413 , p_source_16 => p_source_16
15414 , p_source_16_meaning => p_source_16_meaning
15415 , p_source_17 => p_source_17
15416 , p_source_19 => p_source_19
15417 , p_source_19_meaning => p_source_19_meaning
15418          , x_transaction_coa_id       => l_adr_transaction_coa_id
15419          , x_accounting_coa_id        => l_adr_accounting_coa_id
15420          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15421          , x_flex_value_set_id        => l_adr_flex_value_set_id
15422          , x_value_type_code          => l_adr_value_type_code
15423          , x_value_combination_id     => l_adr_value_combination_id
15424          , x_value_segment_code       => l_adr_value_segment_code
15425          , p_side                     => 'CREDIT'
15426          , p_override_seg_flag        => 'Y'
15427    );
15428 
15429    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15430 
15431       xla_ae_lines_pkg.set_segment(
15432           p_to_segment_code         => 'GL_ACCOUNT'
15433         , p_segment_value           => l_segment
15434         , p_from_segment_code       => l_adr_value_segment_code
15435         , p_from_combination_id     => l_adr_value_combination_id
15436         , p_value_type_code         => l_adr_value_type_code
15437         , p_transaction_coa_id      => l_adr_transaction_coa_id
15438         , p_accounting_coa_id       => l_adr_accounting_coa_id
15439         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15440         , p_flex_value_set_id       => l_adr_flex_value_set_id
15441         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15442         , p_adr_type_code           => 'S'
15443         , p_component_type          => l_component_type
15444         , p_component_code          => l_component_code
15448         , p_entity_code             => 'AP_PAYMENTS'
15445         , p_component_type_code     => l_component_type_code
15446         , p_component_appl_id       => l_component_appl_id
15447         , p_amb_context_code        => l_amb_context_code
15449         , p_event_class_code        => 'REFUNDS'
15450         , p_side                    => 'CREDIT'
15451         );
15452 
15453   END IF;
15454 
15455    l_segment := AcctDerRule_8(
15456            p_application_id           => p_application_id
15457          , p_ae_header_id             => l_ae_header_id 
15458 , p_source_16 => p_source_16
15459 , p_source_16_meaning => p_source_16_meaning
15460 , p_source_19 => p_source_19
15461 , p_source_19_meaning => p_source_19_meaning
15462 , p_source_20 => p_source_20
15463          , x_transaction_coa_id       => l_adr_transaction_coa_id
15464          , x_accounting_coa_id        => l_adr_accounting_coa_id
15465          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15466          , x_flex_value_set_id        => l_adr_flex_value_set_id
15467          , x_value_type_code          => l_adr_value_type_code
15468          , x_value_combination_id     => l_adr_value_combination_id
15469          , x_value_segment_code       => l_adr_value_segment_code
15470          , p_side                     => 'DEBIT'
15471          , p_override_seg_flag        => 'Y'
15472    );
15473 
15474    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15475 
15476       xla_ae_lines_pkg.set_segment(
15477           p_to_segment_code         => 'GL_ACCOUNT'
15478         , p_segment_value           => l_segment
15479         , p_from_segment_code       => l_adr_value_segment_code
15480         , p_from_combination_id     => l_adr_value_combination_id
15481         , p_value_type_code         => l_adr_value_type_code
15482         , p_transaction_coa_id      => l_adr_transaction_coa_id
15483         , p_accounting_coa_id       => l_adr_accounting_coa_id
15484         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15485         , p_flex_value_set_id       => l_adr_flex_value_set_id
15486         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15487         , p_adr_type_code           => 'S'
15488         , p_component_type          => l_component_type
15489         , p_component_code          => l_component_code
15490         , p_component_type_code     => l_component_type_code
15491         , p_component_appl_id       => l_component_appl_id
15492         , p_amb_context_code        => l_amb_context_code
15493         , p_entity_code             => 'AP_PAYMENTS'
15494         , p_event_class_code        => 'REFUNDS'
15495         , p_side                    => 'DEBIT'
15496         );
15497 
15498   END IF;
15499 
15500    l_segment := AcctDerRule_17(
15501            p_application_id           => p_application_id
15502          , p_ae_header_id             => l_ae_header_id 
15503 , p_source_16 => p_source_16
15504 , p_source_16_meaning => p_source_16_meaning
15505 , p_source_19 => p_source_19
15506 , p_source_19_meaning => p_source_19_meaning
15507 , p_source_29 => p_source_29
15508          , x_transaction_coa_id       => l_adr_transaction_coa_id
15509          , x_accounting_coa_id        => l_adr_accounting_coa_id
15510          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15511          , x_flex_value_set_id        => l_adr_flex_value_set_id
15512          , x_value_type_code          => l_adr_value_type_code
15513          , x_value_combination_id     => l_adr_value_combination_id
15514          , x_value_segment_code       => l_adr_value_segment_code
15515          , p_side                     => 'ALL'
15516          , p_override_seg_flag        => 'Y'
15517    );
15518 
15519    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15520 
15521       xla_ae_lines_pkg.set_segment(
15522           p_to_segment_code         => 'GL_BALANCING'
15523         , p_segment_value           => l_segment
15524         , p_from_segment_code       => l_adr_value_segment_code
15525         , p_from_combination_id     => l_adr_value_combination_id
15526         , p_value_type_code         => l_adr_value_type_code
15527         , p_transaction_coa_id      => l_adr_transaction_coa_id
15528         , p_accounting_coa_id       => l_adr_accounting_coa_id
15529         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15530         , p_flex_value_set_id       => l_adr_flex_value_set_id
15531         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
15532         , p_adr_type_code           => 'S'
15533         , p_component_type          => l_component_type
15534         , p_component_code          => l_component_code
15535         , p_component_type_code     => l_component_type_code
15536         , p_component_appl_id       => l_component_appl_id
15537         , p_amb_context_code        => l_amb_context_code
15538         , p_entity_code             => 'AP_PAYMENTS'
15539         , p_event_class_code        => 'REFUNDS'
15540         , p_side                    => 'ALL'
15541         );
15542 
15543   END IF;
15544 
15545    --
15546    --
15547    END IF;
15548 
15549        --
15550        -- Update the line information that should be overwritten
15551        --
15552        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15553                                          p_header_num   => 1);
15554        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
15555 
15559           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15556        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15557 
15558        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
15560        END IF;
15561 
15562       --
15563       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15564       --
15565       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15566           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
15567       ELSE
15568           ---------------------------------------------------------------------------------------------------
15569           -- 4262811a Switch Sign
15570           ---------------------------------------------------------------------------------------------------
15571           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
15572           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15573                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15574           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15575                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15576           -- 5132302
15577           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15578                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15579 
15580       END IF;
15581 
15582       -- 4955764
15583       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15584       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15585 
15586 
15587       XLA_AE_LINES_PKG.ValidateCurrentLine;
15588       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15589 
15590       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15591                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15592                ,p_balance_type_code => l_balance_type_code);
15593 
15594    END IF;
15595 
15596    -----------------------------------------------------------------------------------------
15597    -- 4262811 Multiperiod Accounting
15598    -----------------------------------------------------------------------------------------
15599      -- No MPA option is assigned.
15600 
15601 
15602 END IF;
15603 END IF;
15604 --
15605 
15606 --
15607 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15608    trace
15609       (p_msg      => 'END of AcctLineType_50'
15610       ,p_level    => C_LEVEL_PROCEDURE
15611       ,p_module   => l_log_module);
15612 END IF;
15613 --
15614 EXCEPTION
15615   WHEN xla_exceptions_pkg.application_exception THEN
15616       RAISE;
15617   WHEN OTHERS THEN
15618        xla_exceptions_pkg.raise_message
15619            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_50');
15620 END AcctLineType_50;
15621 --
15622 
15623 ---------------------------------------
15624 --
15625 -- PRIVATE FUNCTION
15626 --         AcctLineType_51
15627 --
15628 ---------------------------------------
15629 PROCEDURE AcctLineType_51 (
15630   p_application_id        IN NUMBER
15631  ,p_event_id              IN NUMBER
15632  ,p_calculate_acctd_flag  IN VARCHAR2
15633  ,p_calculate_g_l_flag    IN VARCHAR2
15634  ,p_actual_flag           IN OUT VARCHAR2
15635  ,p_balance_type_code     OUT VARCHAR2
15636  ,p_gain_or_loss_ref      OUT VARCHAR2
15637  
15638 --Automatic Offsets Value
15639  , p_source_16            IN VARCHAR2
15640  , p_source_16_meaning    IN VARCHAR2
15641 --Purchase Order Rate Variance Gain Account
15642  , p_source_17            IN NUMBER
15643 --Invoice Distribution Ledger Amount
15644  , p_source_18            IN NUMBER
15645 --Destination Type of the PO Distribution
15646  , p_source_19            IN VARCHAR2
15647  , p_source_19_meaning    IN VARCHAR2
15648 --Purchase Order Rate Variance Loss Account
15649  , p_source_20            IN NUMBER
15650 --Invoice Distribution Account
15651  , p_source_29            IN NUMBER
15652 --Automatic Offsets Flag
15653  , p_source_42            IN VARCHAR2
15654  , p_source_42_meaning    IN VARCHAR2
15655 --Accounting Reversal Indicator
15656  , p_source_52            IN VARCHAR2
15657 --Business Flow Accounts Payable Application Identifier
15658  , p_source_54            IN NUMBER
15659 --Distribution Link Type
15660  , p_source_60            IN VARCHAR2
15661 --Override Accounted Amount Indicator
15662  , p_source_64            IN VARCHAR2
15663  , p_source_64_meaning    IN VARCHAR2
15664 --Third Party Type
15665  , p_source_67            IN VARCHAR2
15666 --Invoice Distribution Tax Line Identifier
15667  , p_source_69            IN NUMBER
15668 --Invoice Distribution Summary Tax Line Identifier
15669  , p_source_70            IN NUMBER
15670 --Invoice Distribution Tax Distribution Identifier from Tax
15671  , p_source_77            IN NUMBER
15672 --Prepayment Distribution Type
15673  , p_source_78            IN VARCHAR2
15674 --Recipient Invoice Distribution Type
15675  , p_source_79            IN VARCHAR2
15679 --Invoice Identifier
15676  , p_source_79_meaning    IN VARCHAR2
15677 --Prepayment Application Distribution Identifier
15678  , p_source_82            IN NUMBER
15680  , p_source_83            IN NUMBER
15681 --Business Flow Prepayment Invoice Distribution Type
15682  , p_source_84            IN VARCHAR2
15683 --Business Flow Prepayment Invoice Entity Code
15684  , p_source_85            IN VARCHAR2
15685 --Business Flow Prepayment Invoice Distribution Identifier
15686  , p_source_86            IN NUMBER
15687 --Business Flow Prepayment Invoice Identifier
15688  , p_source_87            IN NUMBER
15689 --Upgrade Encumbrance Credit Account Class
15690  , p_source_88            IN VARCHAR2
15691 --Payables Encumbrance Upgrade Credit Account
15692  , p_source_89            IN NUMBER
15693 --Payables Encumbrance Upgrade Credit Amount
15694  , p_source_90            IN NUMBER
15695 --Invoice Currency Code
15696  , p_source_91            IN VARCHAR2
15697 --Payables Encumbrance Upgrade Credit Base Amount
15698  , p_source_92            IN NUMBER
15699 --Upgrade Encumbrance Debit Account Class
15700  , p_source_93            IN VARCHAR2
15701 --Payables Encumbrance Upgrade Debit Account
15702  , p_source_94            IN NUMBER
15703 --Payables Encumbrance Upgrade Debit Amount
15704  , p_source_95            IN NUMBER
15705 --Payables Encumbrance Upgrade Debit Base Amount
15706  , p_source_96            IN NUMBER
15707 --Payables Encumbrance Upgrade Option
15708  , p_source_97            IN VARCHAR2
15709 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
15710  , p_source_100            IN NUMBER
15711 --Deferred Accounting End Date
15712  , p_source_101            IN DATE
15713 --Deferred Accounting Option
15714  , p_source_102            IN VARCHAR2
15715 --Deferred Accounting Start Date
15716  , p_source_103            IN DATE
15717 --Invoice Supplier Identifier
15718  , p_source_104            IN NUMBER
15719 --Invoice Supplier Site Identifier
15720  , p_source_105            IN NUMBER
15721 --Identifier of the Prepayment Application Reversed
15722  , p_source_106            IN NUMBER
15723 --Payables Upgrade Credit Encumbrance Type Identifier
15724  , p_source_107            IN NUMBER
15725 --Payables Upgrade Debit Encumbrance Type Identifier
15726  , p_source_108            IN NUMBER
15727 --Accrue on Receipt Option
15728  , p_source_111            IN VARCHAR2
15729  , p_source_111_meaning    IN VARCHAR2
15730 )
15731 IS
15732 
15733 l_component_type              VARCHAR2(80);
15734 l_component_code              VARCHAR2(30);
15735 l_component_type_code         VARCHAR2(1);
15736 l_component_appl_id           INTEGER;
15737 l_amb_context_code            VARCHAR2(30);
15738 l_entity_code                 VARCHAR2(30);
15739 l_event_class_code            VARCHAR2(30);
15740 l_ae_header_id                NUMBER;
15741 l_event_type_code             VARCHAR2(30);
15742 l_line_definition_code        VARCHAR2(30);
15743 l_line_definition_owner_code  VARCHAR2(1);
15744 --
15745 -- adr variables
15746 l_segment                     VARCHAR2(30);
15747 l_ccid                        NUMBER;
15748 l_adr_transaction_coa_id      NUMBER;
15749 l_adr_accounting_coa_id       NUMBER;
15750 l_adr_flexfield_segment_code  VARCHAR2(30);
15751 l_adr_flex_value_set_id       NUMBER;
15752 l_adr_value_type_code         VARCHAR2(30);
15753 l_adr_value_combination_id    NUMBER;
15754 l_adr_value_segment_code      VARCHAR2(30);
15755 
15756 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
15757 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
15758 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
15759 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
15760 
15761 -- 4262811 Variables ------------------------------------------------------------------------------------------
15762 l_entered_amt_idx             NUMBER;
15763 l_accted_amt_idx              NUMBER;
15764 l_acc_rev_flag                VARCHAR2(1);
15765 l_accrual_line_num            NUMBER;
15766 l_tmp_amt                     NUMBER;
15767 l_acc_rev_natural_side_code   VARCHAR2(1);
15768 
15769 l_num_entries                 NUMBER;
15770 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
15771 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
15772 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
15773 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
15774 l_recog_line_1                NUMBER;
15775 l_recog_line_2                NUMBER;
15776 
15777 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
15778 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
15779 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
15780 
15781 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15782 
15783 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
15784 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
15785 
15786 ---------------------------------------------------------------------------------------------------------------
15787 
15788 
15789 --
15790 -- bulk performance
15791 --
15792 l_balance_type_code           VARCHAR2(1);
15793 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
15794 l_log_module                  VARCHAR2(240);
15795 
15796 --
15797 -- Upgrade strategy
15798 --
15802 --
15799 l_actual_upg_option           VARCHAR2(1);
15800 l_enc_upg_option           VARCHAR2(1);
15801 
15803 BEGIN
15804 --
15805 IF g_log_enabled THEN
15806       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
15807 END IF;
15808 --
15809 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15810 
15811       trace
15812          (p_msg      => 'BEGIN of AcctLineType_51'
15813          ,p_level    => C_LEVEL_PROCEDURE
15814          ,p_module   => l_log_module);
15815 
15816 END IF;
15817 --
15818 l_component_type             := 'AMB_JLT';
15819 l_component_code             := 'AP_ALC_TERV_PREPAY_APP';
15820 l_component_type_code        := 'S';
15821 l_component_appl_id          :=  200;
15822 l_amb_context_code           := 'DEFAULT';
15823 l_entity_code                := 'AP_INVOICES';
15824 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
15825 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
15826 l_line_definition_owner_code := 'S';
15827 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
15828 --
15829 l_balance_type_code          := 'A';
15830 l_segment                     := NULL;
15831 l_ccid                        := NULL;
15832 l_adr_transaction_coa_id      := NULL;
15833 l_adr_accounting_coa_id       := NULL;
15834 l_adr_flexfield_segment_code  := NULL;
15835 l_adr_flex_value_set_id       := NULL;
15836 l_adr_value_type_code         := NULL;
15837 l_adr_value_combination_id    := NULL;
15838 l_adr_value_segment_code      := NULL;
15839 
15840 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
15841 l_bflow_class_code           := '';    -- 4219869 Business Flow
15842 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
15843 l_budgetary_control_flag     := 'N';
15844 
15845 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
15846 l_bflow_applied_to_amt       := NULL; -- 5132302
15847 l_entered_amt_idx            := NULL;          -- 4262811
15848 l_accted_amt_idx             := NULL;          -- 4262811
15849 l_acc_rev_flag               := NULL;          -- 4262811
15850 l_accrual_line_num           := NULL;          -- 4262811
15851 l_tmp_amt                    := NULL;          -- 4262811
15852 --
15853 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
15854             (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
15855                return;
15856   END IF;
15857   
15858 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15859     l_balance_type_code <> 'B' THEN
15860 IF (NVL(p_source_78,'
15861 ') =  'PREPAY APPL' OR 
15862 NVL(p_source_78,'
15863 ') =  'PREPAY APPL NONREC TAX' OR 
15864 NVL(p_source_78,'
15865 ') =  'PREPAY APPL REC TAX') AND 
15866 NVL(p_source_79,'
15867 ') =  'NONREC_TAX' AND 
15868 NVL(p_source_111,'
15869 ') =  'Y'
15870  THEN 
15871 
15872    --
15873    XLA_AE_LINES_PKG.SetNewLine;
15874 
15875    p_balance_type_code          := l_balance_type_code;
15876    -- set the flag so later we will know whether the gain loss line needs to be created
15877    
15878    IF(l_balance_type_code = 'A' ) THEN
15879      p_actual_flag :='G';
15880    END IF;
15881 
15882    --
15883    -- bulk performance
15884    --
15885    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15886                                       p_header_num   => 0); -- 4262811
15887    --
15888    -- set accounting line options
15889    --
15890    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15891            p_natural_side_code          => 'G'
15892          , p_gain_or_loss_flag          => 'N'
15893          , p_gl_transfer_mode_code      => 'S'
15894          , p_acct_entry_type_code       => 'A'
15895          , p_switch_side_flag           => ''
15896          , p_merge_duplicate_code       => 'A'
15897          );
15898    --
15899    l_acc_rev_natural_side_code := 'C';  -- 4262811
15900    -- 
15901    --
15902    -- set accounting line type info
15903    --
15904    xla_ae_lines_pkg.SetAcctLineType
15905       (p_component_type             => l_component_type
15906       ,p_event_type_code            => l_event_type_code
15907       ,p_line_definition_owner_code => l_line_definition_owner_code
15908       ,p_line_definition_code       => l_line_definition_code
15909       ,p_accounting_line_code       => l_component_code
15910       ,p_accounting_line_type_code  => l_component_type_code
15911       ,p_accounting_line_appl_id    => l_component_appl_id
15912       ,p_amb_context_code           => l_amb_context_code
15913       ,p_entity_code                => l_entity_code
15914       ,p_event_class_code           => l_event_class_code);
15915    --
15916    -- set accounting class
15917    --
15918    xla_ae_lines_pkg.SetAcctClass(
15919            p_accounting_class_code  => 'TERV'
15920          , p_ae_header_id           => l_ae_header_id
15921          );
15922 
15923    --
15924    -- set rounding class
15925    --
15926    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15927                       'TERV';
15928 
15929    --
15930    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15934    --
15931    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15932    --
15933    -- bulk performance
15935    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15936 
15937    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15938       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15939 
15940    -- 4955764
15941    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15942       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15943 
15944    -- 4458381 Public Sector Enh
15945    
15946    --
15947    -- set accounting attributes for the line type
15948    --
15949    l_entered_amt_idx := NULL;
15950    l_accted_amt_idx  := 25;
15951    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
15952    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15953    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
15954    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
15955    l_rec_acct_attrs.array_num_value(2)  := 
15956 xla_ae_sources_pkg.GetSystemSourceNum(
15957    p_source_code           => 'XLA_EVENT_APPL_ID'
15958  , p_source_type_code      => 'Y'
15959  , p_source_application_id =>  602
15960 );
15961    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
15962    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
15963    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
15964    l_rec_acct_attrs.array_char_value(4)  := 
15965 xla_ae_sources_pkg.GetSystemSourceChar(
15966    p_source_code           => 'XLA_ENTITY_CODE'
15967  , p_source_type_code      => 'Y'
15968  , p_source_application_id =>  602
15969 );
15970    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
15971    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
15972    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
15973    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
15974    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
15975    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
15976    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15977    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
15978    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
15979    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
15980    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
15981    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
15982    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15983    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
15984    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
15985    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
15986    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
15987    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
15988    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
15989    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
15990    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
15991    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
15992    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
15993    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
15994    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
15995    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
15996    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
15997    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
15998    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
15999    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
16000    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
16001    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
16002    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
16003    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
16004    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
16005    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
16006    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
16007    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
16008    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
16009    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
16010    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
16011    l_rec_acct_attrs.array_num_value(25)  := p_source_100;
16012    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
16013    l_rec_acct_attrs.array_date_value(26)  := p_source_101;
16014    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
16015    l_rec_acct_attrs.array_char_value(27)  := p_source_102;
16016    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
16017    l_rec_acct_attrs.array_date_value(28)  := p_source_103;
16018    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
16019    l_rec_acct_attrs.array_char_value(29)  := p_source_64;
16020    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_ID';
16021    l_rec_acct_attrs.array_num_value(30)  := p_source_104;
16022    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_SITE_ID';
16023    l_rec_acct_attrs.array_num_value(31)  := p_source_105;
16024    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
16028    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
16025    l_rec_acct_attrs.array_char_value(32)  := p_source_67;
16026    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
16027    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_106);
16029    l_rec_acct_attrs.array_char_value(34)  := p_source_60;
16030    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
16031    l_rec_acct_attrs.array_num_value(35)  := p_source_69;
16032    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
16033    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
16034    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
16035    l_rec_acct_attrs.array_num_value(37)  := p_source_70;
16036    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
16037    l_rec_acct_attrs.array_num_value(38)  := p_source_107;
16038    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
16039    l_rec_acct_attrs.array_num_value(39)  := p_source_108;
16040 
16041    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16042    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16043 
16044    ---------------------------------------------------------------------------------------------------------------
16045    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16046    ---------------------------------------------------------------------------------------------------------------
16047    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16048 
16049    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16050    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16051 
16052    IF xla_accounting_cache_pkg.GetValueChar
16053          (p_source_code         => 'LEDGER_CATEGORY_CODE'
16054          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16055    AND l_bflow_method_code = 'PRIOR_ENTRY'
16056 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16057    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16058          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16059        )
16060    THEN
16061          xla_ae_lines_pkg.BflowUpgEntry
16062            (p_business_method_code    => l_bflow_method_code
16063            ,p_business_class_code     => l_bflow_class_code
16064            ,p_balance_type            => l_balance_type_code);
16065    ELSE
16066       NULL;
16067 -- No business flow processing for business flow method of NONE.
16068    END IF;
16069 
16070    --
16071    -- call analytical criteria
16072    --
16073    
16074    --
16075    -- call description
16076    --
16077    -- No description or it is inherited.
16078    --
16079    -- call ADRs
16080    -- Bug 4922099
16081    --
16082    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16083         (NVL(l_actual_upg_option, 'N') = 'O') OR
16084         (NVL(l_enc_upg_option, 'N') = 'O')
16085       )
16086    THEN
16087    NULL;
16088    --
16089    --
16090    
16091   l_ccid := AcctDerRule_25(
16092            p_application_id           => p_application_id
16093          , p_ae_header_id             => l_ae_header_id 
16094 , p_source_16 => p_source_16
16095 , p_source_16_meaning => p_source_16_meaning
16096 , p_source_17 => p_source_17
16097 , p_source_18 => p_source_18
16098 , p_source_19 => p_source_19
16099 , p_source_19_meaning => p_source_19_meaning
16100 , p_source_20 => p_source_20
16101 , p_source_29 => p_source_29
16102 , p_source_42 => p_source_42
16103 , p_source_42_meaning => p_source_42_meaning
16104          , x_transaction_coa_id       => l_adr_transaction_coa_id
16105          , x_accounting_coa_id        => l_adr_accounting_coa_id
16106          , x_value_type_code          => l_adr_value_type_code
16107          , p_side                     => 'ALL'
16108    );
16109 
16110    xla_ae_lines_pkg.set_ccid(
16111     p_code_combination_id          => l_ccid
16112   , p_value_type_code              => l_adr_value_type_code
16113   , p_transaction_coa_id           => l_adr_transaction_coa_id
16114   , p_accounting_coa_id            => l_adr_accounting_coa_id
16115   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
16116   , p_adr_type_code                => 'S'
16117   , p_component_type               => l_component_type
16118   , p_component_code               => l_component_code
16119   , p_component_type_code          => l_component_type_code
16120   , p_component_appl_id            => l_component_appl_id
16121   , p_amb_context_code             => l_amb_context_code
16122   , p_side                         => 'ALL'
16123   );
16124 
16125 
16126    l_segment := AcctDerRule_7(
16127            p_application_id           => p_application_id
16128          , p_ae_header_id             => l_ae_header_id 
16129 , p_source_16 => p_source_16
16130 , p_source_16_meaning => p_source_16_meaning
16131 , p_source_17 => p_source_17
16132 , p_source_19 => p_source_19
16133 , p_source_19_meaning => p_source_19_meaning
16134          , x_transaction_coa_id       => l_adr_transaction_coa_id
16135          , x_accounting_coa_id        => l_adr_accounting_coa_id
16136          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16137          , x_flex_value_set_id        => l_adr_flex_value_set_id
16141          , p_side                     => 'CREDIT'
16138          , x_value_type_code          => l_adr_value_type_code
16139          , x_value_combination_id     => l_adr_value_combination_id
16140          , x_value_segment_code       => l_adr_value_segment_code
16142          , p_override_seg_flag        => 'Y'
16143    );
16144 
16145    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16146 
16147       xla_ae_lines_pkg.set_segment(
16148           p_to_segment_code         => 'GL_ACCOUNT'
16149         , p_segment_value           => l_segment
16150         , p_from_segment_code       => l_adr_value_segment_code
16151         , p_from_combination_id     => l_adr_value_combination_id
16152         , p_value_type_code         => l_adr_value_type_code
16153         , p_transaction_coa_id      => l_adr_transaction_coa_id
16154         , p_accounting_coa_id       => l_adr_accounting_coa_id
16155         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16156         , p_flex_value_set_id       => l_adr_flex_value_set_id
16157         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
16158         , p_adr_type_code           => 'S'
16159         , p_component_type          => l_component_type
16160         , p_component_code          => l_component_code
16161         , p_component_type_code     => l_component_type_code
16162         , p_component_appl_id       => l_component_appl_id
16163         , p_amb_context_code        => l_amb_context_code
16164         , p_entity_code             => 'AP_INVOICES'
16165         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
16166         , p_side                    => 'CREDIT'
16167         );
16168 
16169   END IF;
16170 
16171    l_segment := AcctDerRule_8(
16172            p_application_id           => p_application_id
16173          , p_ae_header_id             => l_ae_header_id 
16174 , p_source_16 => p_source_16
16175 , p_source_16_meaning => p_source_16_meaning
16176 , p_source_19 => p_source_19
16177 , p_source_19_meaning => p_source_19_meaning
16178 , p_source_20 => p_source_20
16179          , x_transaction_coa_id       => l_adr_transaction_coa_id
16180          , x_accounting_coa_id        => l_adr_accounting_coa_id
16181          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16182          , x_flex_value_set_id        => l_adr_flex_value_set_id
16183          , x_value_type_code          => l_adr_value_type_code
16184          , x_value_combination_id     => l_adr_value_combination_id
16185          , x_value_segment_code       => l_adr_value_segment_code
16186          , p_side                     => 'DEBIT'
16187          , p_override_seg_flag        => 'Y'
16188    );
16189 
16190    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16191 
16192       xla_ae_lines_pkg.set_segment(
16193           p_to_segment_code         => 'GL_ACCOUNT'
16194         , p_segment_value           => l_segment
16195         , p_from_segment_code       => l_adr_value_segment_code
16196         , p_from_combination_id     => l_adr_value_combination_id
16197         , p_value_type_code         => l_adr_value_type_code
16198         , p_transaction_coa_id      => l_adr_transaction_coa_id
16199         , p_accounting_coa_id       => l_adr_accounting_coa_id
16200         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16201         , p_flex_value_set_id       => l_adr_flex_value_set_id
16202         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
16203         , p_adr_type_code           => 'S'
16204         , p_component_type          => l_component_type
16205         , p_component_code          => l_component_code
16206         , p_component_type_code     => l_component_type_code
16207         , p_component_appl_id       => l_component_appl_id
16208         , p_amb_context_code        => l_amb_context_code
16209         , p_entity_code             => 'AP_INVOICES'
16210         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
16211         , p_side                    => 'DEBIT'
16212         );
16213 
16214   END IF;
16215 
16216    l_segment := AcctDerRule_17(
16217            p_application_id           => p_application_id
16218          , p_ae_header_id             => l_ae_header_id 
16219 , p_source_16 => p_source_16
16220 , p_source_16_meaning => p_source_16_meaning
16221 , p_source_19 => p_source_19
16222 , p_source_19_meaning => p_source_19_meaning
16223 , p_source_29 => p_source_29
16224          , x_transaction_coa_id       => l_adr_transaction_coa_id
16225          , x_accounting_coa_id        => l_adr_accounting_coa_id
16226          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16227          , x_flex_value_set_id        => l_adr_flex_value_set_id
16228          , x_value_type_code          => l_adr_value_type_code
16229          , x_value_combination_id     => l_adr_value_combination_id
16230          , x_value_segment_code       => l_adr_value_segment_code
16231          , p_side                     => 'ALL'
16232          , p_override_seg_flag        => 'Y'
16233    );
16234 
16235    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16236 
16237       xla_ae_lines_pkg.set_segment(
16238           p_to_segment_code         => 'GL_BALANCING'
16239         , p_segment_value           => l_segment
16240         , p_from_segment_code       => l_adr_value_segment_code
16241         , p_from_combination_id     => l_adr_value_combination_id
16242         , p_value_type_code         => l_adr_value_type_code
16243         , p_transaction_coa_id      => l_adr_transaction_coa_id
16247         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
16244         , p_accounting_coa_id       => l_adr_accounting_coa_id
16245         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16246         , p_flex_value_set_id       => l_adr_flex_value_set_id
16248         , p_adr_type_code           => 'S'
16249         , p_component_type          => l_component_type
16250         , p_component_code          => l_component_code
16251         , p_component_type_code     => l_component_type_code
16252         , p_component_appl_id       => l_component_appl_id
16253         , p_amb_context_code        => l_amb_context_code
16254         , p_entity_code             => 'AP_INVOICES'
16255         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
16256         , p_side                    => 'ALL'
16257         );
16258 
16259   END IF;
16260 
16261    --
16262    --
16263    END IF;
16264    --
16265    -- Bug 4922099
16266    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16267           (NVL(l_enc_upg_option, 'N') = 'O')
16268         ) AND
16269         (l_bflow_method_code = 'PRIOR_ENTRY')
16270       )
16271    THEN
16272       IF
16273       --
16274       1 = 2
16275       --
16276       THEN
16277       xla_accounting_err_pkg.build_message
16278                                     (p_appli_s_name            => 'XLA'
16279                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16280                                     ,p_token_1                 => 'LINE_NUMBER'
16281                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
16282                                     ,p_token_2                 => 'LINE_TYPE_NAME'
16283                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
16284                                                                              l_component_type
16285                                                                             ,l_component_code
16286                                                                             ,l_component_type_code
16287                                                                             ,l_component_appl_id
16288                                                                             ,l_amb_context_code
16289                                                                             ,l_entity_code
16290                                                                             ,l_event_class_code
16291                                                                            )
16292                                     ,p_token_3                 => 'OWNER'
16293                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
16294                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
16295                                                                           ,p_lookup_code    => l_component_type_code
16296                                                                          )
16297                                     ,p_token_4                 => 'PRODUCT_NAME'
16298                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16299                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16300                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16301                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16302                                     ,p_ae_header_id            =>  NULL
16303                                        );
16304 
16305         IF (C_LEVEL_ERROR>= g_log_level) THEN
16306                  trace
16307                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16308                       ,p_level    => C_LEVEL_ERROR
16309                       ,p_module   => l_log_module);
16310         END IF;
16311       END IF;
16312    END IF;
16313    --
16314    --
16315    ------------------------------------------------------------------------------------------------
16316    -- 4219869 Business Flow
16317    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16318    -- Prior Entry.  Currently, the following code is always generated.
16319    ------------------------------------------------------------------------------------------------
16320    XLA_AE_LINES_PKG.ValidateCurrentLine;
16321 
16322    ------------------------------------------------------------------------------------
16323    -- 4219869 Business Flow
16324    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16325    ------------------------------------------------------------------------------------
16326    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16327 
16328    ----------------------------------------------------------------------------------
16329    -- 4219869 Business Flow
16330    -- Update journal entry status -- Need to generate this within IF <condition>
16331    ----------------------------------------------------------------------------------
16332    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16333          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16334          ,p_balance_type_code => l_balance_type_code
16335          );
16336 
16337    -------------------------------------------------------------------------------------------
16338    -- 4262811 - Generate the Accrual Reversal lines
16339    -------------------------------------------------------------------------------------------
16343       IF l_acc_rev_flag IS NULL THEN
16340    BEGIN
16341       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16342                               (g_array_event(p_event_id).array_value_num('header_index'));
16344          l_acc_rev_flag := 'N';
16345       END IF;
16346    EXCEPTION
16347       WHEN OTHERS THEN
16348          l_acc_rev_flag := 'N';
16349    END;
16350    --
16351    IF (l_acc_rev_flag = 'Y') THEN
16352 
16353        -- 4645092  ------------------------------------------------------------------------------
16354        -- To allow MPA report to determine if it should generate report process
16355        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16356        ------------------------------------------------------------------------------------------
16357 
16358        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16359        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16360    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
16361    -- call ADRs
16362    -- Bug 4922099
16363    --
16364    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16365         (NVL(l_actual_upg_option, 'N') = 'O') OR
16366         (NVL(l_enc_upg_option, 'N') = 'O')
16367       )
16368    THEN
16369    NULL;
16370    --
16371    --
16372    
16373   l_ccid := AcctDerRule_25(
16374            p_application_id           => p_application_id
16375          , p_ae_header_id             => l_ae_header_id 
16376 , p_source_16 => p_source_16
16377 , p_source_16_meaning => p_source_16_meaning
16378 , p_source_17 => p_source_17
16379 , p_source_18 => p_source_18
16380 , p_source_19 => p_source_19
16381 , p_source_19_meaning => p_source_19_meaning
16382 , p_source_20 => p_source_20
16383 , p_source_29 => p_source_29
16384 , p_source_42 => p_source_42
16385 , p_source_42_meaning => p_source_42_meaning
16386          , x_transaction_coa_id       => l_adr_transaction_coa_id
16387          , x_accounting_coa_id        => l_adr_accounting_coa_id
16388          , x_value_type_code          => l_adr_value_type_code
16389          , p_side                     => 'ALL'
16390    );
16391 
16392    xla_ae_lines_pkg.set_ccid(
16393     p_code_combination_id          => l_ccid
16394   , p_value_type_code              => l_adr_value_type_code
16395   , p_transaction_coa_id           => l_adr_transaction_coa_id
16396   , p_accounting_coa_id            => l_adr_accounting_coa_id
16397   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
16398   , p_adr_type_code                => 'S'
16399   , p_component_type               => l_component_type
16400   , p_component_code               => l_component_code
16401   , p_component_type_code          => l_component_type_code
16402   , p_component_appl_id            => l_component_appl_id
16403   , p_amb_context_code             => l_amb_context_code
16404   , p_side                         => 'ALL'
16405   );
16406 
16407 
16408    l_segment := AcctDerRule_7(
16409            p_application_id           => p_application_id
16410          , p_ae_header_id             => l_ae_header_id 
16411 , p_source_16 => p_source_16
16412 , p_source_16_meaning => p_source_16_meaning
16413 , p_source_17 => p_source_17
16414 , p_source_19 => p_source_19
16415 , p_source_19_meaning => p_source_19_meaning
16416          , x_transaction_coa_id       => l_adr_transaction_coa_id
16417          , x_accounting_coa_id        => l_adr_accounting_coa_id
16418          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16419          , x_flex_value_set_id        => l_adr_flex_value_set_id
16420          , x_value_type_code          => l_adr_value_type_code
16421          , x_value_combination_id     => l_adr_value_combination_id
16422          , x_value_segment_code       => l_adr_value_segment_code
16423          , p_side                     => 'CREDIT'
16424          , p_override_seg_flag        => 'Y'
16425    );
16426 
16427    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16428 
16429       xla_ae_lines_pkg.set_segment(
16430           p_to_segment_code         => 'GL_ACCOUNT'
16431         , p_segment_value           => l_segment
16432         , p_from_segment_code       => l_adr_value_segment_code
16433         , p_from_combination_id     => l_adr_value_combination_id
16434         , p_value_type_code         => l_adr_value_type_code
16435         , p_transaction_coa_id      => l_adr_transaction_coa_id
16436         , p_accounting_coa_id       => l_adr_accounting_coa_id
16437         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16438         , p_flex_value_set_id       => l_adr_flex_value_set_id
16439         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
16440         , p_adr_type_code           => 'S'
16441         , p_component_type          => l_component_type
16442         , p_component_code          => l_component_code
16443         , p_component_type_code     => l_component_type_code
16444         , p_component_appl_id       => l_component_appl_id
16445         , p_amb_context_code        => l_amb_context_code
16446         , p_entity_code             => 'AP_INVOICES'
16447         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
16448         , p_side                    => 'CREDIT'
16449         );
16450 
16451   END IF;
16452 
16453    l_segment := AcctDerRule_8(
16454            p_application_id           => p_application_id
16455          , p_ae_header_id             => l_ae_header_id 
16456 , p_source_16 => p_source_16
16460 , p_source_20 => p_source_20
16457 , p_source_16_meaning => p_source_16_meaning
16458 , p_source_19 => p_source_19
16459 , p_source_19_meaning => p_source_19_meaning
16461          , x_transaction_coa_id       => l_adr_transaction_coa_id
16462          , x_accounting_coa_id        => l_adr_accounting_coa_id
16463          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16464          , x_flex_value_set_id        => l_adr_flex_value_set_id
16465          , x_value_type_code          => l_adr_value_type_code
16466          , x_value_combination_id     => l_adr_value_combination_id
16467          , x_value_segment_code       => l_adr_value_segment_code
16468          , p_side                     => 'DEBIT'
16469          , p_override_seg_flag        => 'Y'
16470    );
16471 
16472    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16473 
16474       xla_ae_lines_pkg.set_segment(
16475           p_to_segment_code         => 'GL_ACCOUNT'
16476         , p_segment_value           => l_segment
16477         , p_from_segment_code       => l_adr_value_segment_code
16478         , p_from_combination_id     => l_adr_value_combination_id
16479         , p_value_type_code         => l_adr_value_type_code
16480         , p_transaction_coa_id      => l_adr_transaction_coa_id
16481         , p_accounting_coa_id       => l_adr_accounting_coa_id
16482         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16483         , p_flex_value_set_id       => l_adr_flex_value_set_id
16484         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
16485         , p_adr_type_code           => 'S'
16486         , p_component_type          => l_component_type
16487         , p_component_code          => l_component_code
16488         , p_component_type_code     => l_component_type_code
16489         , p_component_appl_id       => l_component_appl_id
16490         , p_amb_context_code        => l_amb_context_code
16491         , p_entity_code             => 'AP_INVOICES'
16492         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
16493         , p_side                    => 'DEBIT'
16494         );
16495 
16496   END IF;
16497 
16498    l_segment := AcctDerRule_17(
16499            p_application_id           => p_application_id
16500          , p_ae_header_id             => l_ae_header_id 
16501 , p_source_16 => p_source_16
16502 , p_source_16_meaning => p_source_16_meaning
16503 , p_source_19 => p_source_19
16504 , p_source_19_meaning => p_source_19_meaning
16505 , p_source_29 => p_source_29
16506          , x_transaction_coa_id       => l_adr_transaction_coa_id
16507          , x_accounting_coa_id        => l_adr_accounting_coa_id
16508          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16509          , x_flex_value_set_id        => l_adr_flex_value_set_id
16510          , x_value_type_code          => l_adr_value_type_code
16511          , x_value_combination_id     => l_adr_value_combination_id
16512          , x_value_segment_code       => l_adr_value_segment_code
16513          , p_side                     => 'ALL'
16514          , p_override_seg_flag        => 'Y'
16515    );
16516 
16517    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16518 
16519       xla_ae_lines_pkg.set_segment(
16520           p_to_segment_code         => 'GL_BALANCING'
16521         , p_segment_value           => l_segment
16522         , p_from_segment_code       => l_adr_value_segment_code
16523         , p_from_combination_id     => l_adr_value_combination_id
16524         , p_value_type_code         => l_adr_value_type_code
16525         , p_transaction_coa_id      => l_adr_transaction_coa_id
16526         , p_accounting_coa_id       => l_adr_accounting_coa_id
16527         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16528         , p_flex_value_set_id       => l_adr_flex_value_set_id
16529         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
16530         , p_adr_type_code           => 'S'
16531         , p_component_type          => l_component_type
16532         , p_component_code          => l_component_code
16533         , p_component_type_code     => l_component_type_code
16534         , p_component_appl_id       => l_component_appl_id
16535         , p_amb_context_code        => l_amb_context_code
16536         , p_entity_code             => 'AP_INVOICES'
16537         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
16538         , p_side                    => 'ALL'
16539         );
16540 
16541   END IF;
16542 
16543    --
16544    --
16545    END IF;
16546 
16547        --
16548        -- Update the line information that should be overwritten
16549        --
16550        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16551                                          p_header_num   => 1);
16552        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
16553 
16554        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16555 
16556        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
16557           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16558        END IF;
16559 
16560       --
16561       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16562       --
16563       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16567           -- 4262811a Switch Sign
16564           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
16565       ELSE
16566           ---------------------------------------------------------------------------------------------------
16568           ---------------------------------------------------------------------------------------------------
16569           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
16570           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16571                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16572           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16573                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16574           -- 5132302
16575           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16576                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16577 
16578       END IF;
16579 
16580       -- 4955764
16581       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16582       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16583 
16584 
16585       XLA_AE_LINES_PKG.ValidateCurrentLine;
16586       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16587 
16588       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16589                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16590                ,p_balance_type_code => l_balance_type_code);
16591 
16592    END IF;
16593 
16594    -----------------------------------------------------------------------------------------
16595    -- 4262811 Multiperiod Accounting
16596    -----------------------------------------------------------------------------------------
16597      -- No MPA option is assigned.
16598 
16599 
16600 END IF;
16601 END IF;
16602 --
16603 
16604 --
16605 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16606    trace
16607       (p_msg      => 'END of AcctLineType_51'
16608       ,p_level    => C_LEVEL_PROCEDURE
16609       ,p_module   => l_log_module);
16610 END IF;
16611 --
16612 EXCEPTION
16613   WHEN xla_exceptions_pkg.application_exception THEN
16614       RAISE;
16615   WHEN OTHERS THEN
16616        xla_exceptions_pkg.raise_message
16617            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_51');
16618 END AcctLineType_51;
16619 --
16620 
16621 ---------------------------------------
16622 --
16623 -- PRIVATE FUNCTION
16624 --         AcctLineType_52
16625 --
16626 ---------------------------------------
16627 PROCEDURE AcctLineType_52 (
16628   p_application_id        IN NUMBER
16629  ,p_event_id              IN NUMBER
16630  ,p_calculate_acctd_flag  IN VARCHAR2
16631  ,p_calculate_g_l_flag    IN VARCHAR2
16632  ,p_actual_flag           IN OUT VARCHAR2
16633  ,p_balance_type_code     OUT VARCHAR2
16634  ,p_gain_or_loss_ref      OUT VARCHAR2
16635  
16636 --Automatic Offsets Value
16637  , p_source_16            IN VARCHAR2
16638  , p_source_16_meaning    IN VARCHAR2
16639 --Payment Distribution (Cleared Rate) Ledger Amount
16640  , p_source_22            IN NUMBER
16641 --Invoice Distribution Account
16642  , p_source_29            IN NUMBER
16643 --Bank Charges Account
16644  , p_source_37            IN NUMBER
16645 --When to Account for Payment Option
16646  , p_source_50            IN VARCHAR2
16647 --Payment Distribution Type
16648  , p_source_51            IN VARCHAR2
16649  , p_source_51_meaning    IN VARCHAR2
16650 --Accounting Reversal Indicator
16651  , p_source_52            IN VARCHAR2
16652 --Payment Distribution Amount
16653  , p_source_53            IN NUMBER
16654 --Business Flow Accounts Payable Application Identifier
16655  , p_source_54            IN NUMBER
16656 --Business Flow Payment Distribution Type
16657  , p_source_55            IN VARCHAR2
16658 --Business Flow Payment Entity Code
16659  , p_source_56            IN VARCHAR2
16660 --Business Flow Payment Distribution Identifier
16661  , p_source_57            IN NUMBER
16662 --Business Flow Payment Identifier
16663  , p_source_58            IN NUMBER
16664 --Payment Distribution Identifier
16665  , p_source_59            IN NUMBER
16666 --Distribution Link Type
16667  , p_source_60            IN VARCHAR2
16668 --Override Accounted Amount Indicator
16669  , p_source_64            IN VARCHAR2
16670  , p_source_64_meaning    IN VARCHAR2
16671 --Payment Supplier Identifier
16672  , p_source_65            IN NUMBER
16673 --Payment Supplier Site Identifier
16674  , p_source_66            IN NUMBER
16675 --Third Party Type
16676  , p_source_67            IN VARCHAR2
16677 --Payment Distribution Reversed Identifier
16678  , p_source_68            IN NUMBER
16679 --Invoice Distribution Tax Line Identifier
16680  , p_source_69            IN NUMBER
16681 --Invoice Distribution Summary Tax Line Identifier
16682  , p_source_70            IN NUMBER
16683 --Cleared Currency Code
16684  , p_source_113            IN VARCHAR2
16685 --Cleared Exchange Date
16686  , p_source_114            IN DATE
16687 --Cleared Exchange Rate
16688  , p_source_115            IN NUMBER
16692 IS
16689 --Cleared Exchange Rate Type
16690  , p_source_116            IN VARCHAR2
16691 )
16693 
16694 l_component_type              VARCHAR2(80);
16695 l_component_code              VARCHAR2(30);
16696 l_component_type_code         VARCHAR2(1);
16697 l_component_appl_id           INTEGER;
16698 l_amb_context_code            VARCHAR2(30);
16699 l_entity_code                 VARCHAR2(30);
16700 l_event_class_code            VARCHAR2(30);
16701 l_ae_header_id                NUMBER;
16702 l_event_type_code             VARCHAR2(30);
16703 l_line_definition_code        VARCHAR2(30);
16704 l_line_definition_owner_code  VARCHAR2(1);
16705 --
16706 -- adr variables
16707 l_segment                     VARCHAR2(30);
16708 l_ccid                        NUMBER;
16709 l_adr_transaction_coa_id      NUMBER;
16710 l_adr_accounting_coa_id       NUMBER;
16711 l_adr_flexfield_segment_code  VARCHAR2(30);
16712 l_adr_flex_value_set_id       NUMBER;
16713 l_adr_value_type_code         VARCHAR2(30);
16714 l_adr_value_combination_id    NUMBER;
16715 l_adr_value_segment_code      VARCHAR2(30);
16716 
16717 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
16718 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
16719 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
16720 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
16721 
16722 -- 4262811 Variables ------------------------------------------------------------------------------------------
16723 l_entered_amt_idx             NUMBER;
16724 l_accted_amt_idx              NUMBER;
16725 l_acc_rev_flag                VARCHAR2(1);
16726 l_accrual_line_num            NUMBER;
16727 l_tmp_amt                     NUMBER;
16728 l_acc_rev_natural_side_code   VARCHAR2(1);
16729 
16730 l_num_entries                 NUMBER;
16731 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
16732 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
16733 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
16734 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
16735 l_recog_line_1                NUMBER;
16736 l_recog_line_2                NUMBER;
16737 
16738 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
16739 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
16740 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
16741 
16742 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16743 
16744 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
16745 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
16746 
16747 ---------------------------------------------------------------------------------------------------------------
16748 
16749 
16750 --
16751 -- bulk performance
16752 --
16753 l_balance_type_code           VARCHAR2(1);
16754 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
16755 l_log_module                  VARCHAR2(240);
16756 
16757 --
16758 -- Upgrade strategy
16759 --
16760 l_actual_upg_option           VARCHAR2(1);
16761 l_enc_upg_option           VARCHAR2(1);
16762 
16763 --
16764 BEGIN
16765 --
16766 IF g_log_enabled THEN
16767       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
16768 END IF;
16769 --
16770 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16771 
16772       trace
16773          (p_msg      => 'BEGIN of AcctLineType_52'
16774          ,p_level    => C_LEVEL_PROCEDURE
16775          ,p_module   => l_log_module);
16776 
16777 END IF;
16778 --
16779 l_component_type             := 'AMB_JLT';
16780 l_component_code             := 'AP_BANK_CHARGES_CLEAR';
16781 l_component_type_code        := 'S';
16782 l_component_appl_id          :=  200;
16783 l_amb_context_code           := 'DEFAULT';
16784 l_entity_code                := 'AP_PAYMENTS';
16785 l_event_class_code           := 'RECONCILED PAYMENTS';
16786 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
16787 l_line_definition_owner_code := 'S';
16788 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
16789 --
16790 l_balance_type_code          := 'A';
16791 l_segment                     := NULL;
16792 l_ccid                        := NULL;
16793 l_adr_transaction_coa_id      := NULL;
16794 l_adr_accounting_coa_id       := NULL;
16795 l_adr_flexfield_segment_code  := NULL;
16796 l_adr_flex_value_set_id       := NULL;
16797 l_adr_value_type_code         := NULL;
16798 l_adr_value_combination_id    := NULL;
16799 l_adr_value_segment_code      := NULL;
16800 
16801 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
16802 l_bflow_class_code           := '';    -- 4219869 Business Flow
16803 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
16804 l_budgetary_control_flag     := 'N';
16805 
16806 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
16807 l_bflow_applied_to_amt       := NULL; -- 5132302
16808 l_entered_amt_idx            := NULL;          -- 4262811
16809 l_accted_amt_idx             := NULL;          -- 4262811
16810 l_acc_rev_flag               := NULL;          -- 4262811
16811 l_accrual_line_num           := NULL;          -- 4262811
16812 l_tmp_amt                    := NULL;          -- 4262811
16813 --
16814  
16815 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16816     l_balance_type_code <> 'B' THEN
16820 ') =  'BANK CHARGE'
16817 IF NVL(p_source_50,'
16818 ') <>  'ISSUE_ISSUE' AND 
16819 NVL(p_source_51,'
16821  THEN 
16822 
16823    --
16824    XLA_AE_LINES_PKG.SetNewLine;
16825 
16826    p_balance_type_code          := l_balance_type_code;
16827    -- set the flag so later we will know whether the gain loss line needs to be created
16828    
16829    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16830      p_actual_flag :='A';
16831    END IF;
16832 
16833    --
16834    -- bulk performance
16835    --
16836    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16837                                       p_header_num   => 0); -- 4262811
16838    --
16839    -- set accounting line options
16840    --
16841    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16842            p_natural_side_code          => 'D'
16843          , p_gain_or_loss_flag          => 'N'
16844          , p_gl_transfer_mode_code      => 'S'
16845          , p_acct_entry_type_code       => 'A'
16846          , p_switch_side_flag           => 'Y'
16847          , p_merge_duplicate_code       => 'A'
16848          );
16849    --
16850    l_acc_rev_natural_side_code := 'C';  -- 4262811
16851    -- 
16852    --
16853    -- set accounting line type info
16854    --
16855    xla_ae_lines_pkg.SetAcctLineType
16856       (p_component_type             => l_component_type
16857       ,p_event_type_code            => l_event_type_code
16858       ,p_line_definition_owner_code => l_line_definition_owner_code
16859       ,p_line_definition_code       => l_line_definition_code
16860       ,p_accounting_line_code       => l_component_code
16861       ,p_accounting_line_type_code  => l_component_type_code
16862       ,p_accounting_line_appl_id    => l_component_appl_id
16863       ,p_amb_context_code           => l_amb_context_code
16864       ,p_entity_code                => l_entity_code
16865       ,p_event_class_code           => l_event_class_code);
16866    --
16867    -- set accounting class
16868    --
16869    xla_ae_lines_pkg.SetAcctClass(
16870            p_accounting_class_code  => 'BANK_CHG'
16871          , p_ae_header_id           => l_ae_header_id
16872          );
16873 
16874    --
16875    -- set rounding class
16876    --
16877    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16878                       'BANK_CHG';
16879 
16880    --
16881    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16882    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16883    --
16884    -- bulk performance
16885    --
16886    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16887 
16888    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16889       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16890 
16891    -- 4955764
16892    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16893       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16894 
16895    -- 4458381 Public Sector Enh
16896    
16897    --
16898    -- set accounting attributes for the line type
16899    --
16900    l_entered_amt_idx := 10;
16901    l_accted_amt_idx  := 15;
16902    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
16903    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16904    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
16905    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
16906    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
16907    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
16908    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
16909    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16910    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
16911    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
16912    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
16913    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
16914    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
16915    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16916    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
16917    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
16918    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
16919    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
16920    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
16921    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
16922    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
16923    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
16924    l_rec_acct_attrs.array_char_value(11)  := p_source_113;
16925    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
16926    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
16927    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
16928    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
16929    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
16930    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
16931    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
16932    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
16936    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
16933    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
16934    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
16935    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
16937    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
16938    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
16939    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
16940    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
16941    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
16942    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
16943    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
16944    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
16945    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
16946    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
16947    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
16948    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
16949    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
16950    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
16951 
16952    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16953    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16954 
16955    ---------------------------------------------------------------------------------------------------------------
16956    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16957    ---------------------------------------------------------------------------------------------------------------
16958    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16959 
16960    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16961    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16962 
16963    IF xla_accounting_cache_pkg.GetValueChar
16964          (p_source_code         => 'LEDGER_CATEGORY_CODE'
16965          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16966    AND l_bflow_method_code = 'PRIOR_ENTRY'
16967 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16968    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16969          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16970        )
16971    THEN
16972          xla_ae_lines_pkg.BflowUpgEntry
16973            (p_business_method_code    => l_bflow_method_code
16974            ,p_business_class_code     => l_bflow_class_code
16975            ,p_balance_type            => l_balance_type_code);
16976    ELSE
16977       NULL;
16978 -- No business flow processing for business flow method of NONE.
16979    END IF;
16980 
16981    --
16982    -- call analytical criteria
16983    --
16984    
16985    --
16986    -- call description
16987    --
16988    -- No description or it is inherited.
16989    --
16990    -- call ADRs
16991    -- Bug 4922099
16992    --
16993    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16994         (NVL(l_actual_upg_option, 'N') = 'O') OR
16995         (NVL(l_enc_upg_option, 'N') = 'O')
16996       )
16997    THEN
16998    NULL;
16999    --
17000    --
17001    
17002   l_ccid := AcctDerRule_20(
17003            p_application_id           => p_application_id
17004          , p_ae_header_id             => l_ae_header_id 
17005 , p_source_16 => p_source_16
17006 , p_source_16_meaning => p_source_16_meaning
17007 , p_source_29 => p_source_29
17008 , p_source_37 => p_source_37
17009          , x_transaction_coa_id       => l_adr_transaction_coa_id
17010          , x_accounting_coa_id        => l_adr_accounting_coa_id
17011          , x_value_type_code          => l_adr_value_type_code
17012          , p_side                     => 'NA'
17013    );
17014 
17015    xla_ae_lines_pkg.set_ccid(
17016     p_code_combination_id          => l_ccid
17017   , p_value_type_code              => l_adr_value_type_code
17018   , p_transaction_coa_id           => l_adr_transaction_coa_id
17019   , p_accounting_coa_id            => l_adr_accounting_coa_id
17020   , p_adr_code                     => 'AP_BANK_CHARGES'
17021   , p_adr_type_code                => 'S'
17022   , p_component_type               => l_component_type
17023   , p_component_code               => l_component_code
17024   , p_component_type_code          => l_component_type_code
17025   , p_component_appl_id            => l_component_appl_id
17026   , p_amb_context_code             => l_amb_context_code
17027   , p_side                         => 'NA'
17028   );
17029 
17030 
17031    --
17032    --
17033    END IF;
17034    --
17035    -- Bug 4922099
17036    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17037           (NVL(l_enc_upg_option, 'N') = 'O')
17038         ) AND
17039         (l_bflow_method_code = 'PRIOR_ENTRY')
17040       )
17041    THEN
17042       IF
17043       --
17044       1 = 2
17045       --
17046       THEN
17047       xla_accounting_err_pkg.build_message
17048                                     (p_appli_s_name            => 'XLA'
17049                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17050                                     ,p_token_1                 => 'LINE_NUMBER'
17054                                                                              l_component_type
17051                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
17052                                     ,p_token_2                 => 'LINE_TYPE_NAME'
17053                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
17055                                                                             ,l_component_code
17056                                                                             ,l_component_type_code
17057                                                                             ,l_component_appl_id
17058                                                                             ,l_amb_context_code
17059                                                                             ,l_entity_code
17060                                                                             ,l_event_class_code
17061                                                                            )
17062                                     ,p_token_3                 => 'OWNER'
17063                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
17064                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
17065                                                                           ,p_lookup_code    => l_component_type_code
17066                                                                          )
17067                                     ,p_token_4                 => 'PRODUCT_NAME'
17068                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17069                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17070                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17071                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17072                                     ,p_ae_header_id            =>  NULL
17073                                        );
17074 
17075         IF (C_LEVEL_ERROR>= g_log_level) THEN
17076                  trace
17077                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17078                       ,p_level    => C_LEVEL_ERROR
17079                       ,p_module   => l_log_module);
17080         END IF;
17081       END IF;
17082    END IF;
17083    --
17084    --
17085    ------------------------------------------------------------------------------------------------
17086    -- 4219869 Business Flow
17087    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17088    -- Prior Entry.  Currently, the following code is always generated.
17089    ------------------------------------------------------------------------------------------------
17090    XLA_AE_LINES_PKG.ValidateCurrentLine;
17091 
17092    ------------------------------------------------------------------------------------
17093    -- 4219869 Business Flow
17094    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17095    ------------------------------------------------------------------------------------
17096    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17097 
17098    ----------------------------------------------------------------------------------
17099    -- 4219869 Business Flow
17100    -- Update journal entry status -- Need to generate this within IF <condition>
17101    ----------------------------------------------------------------------------------
17102    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17103          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17104          ,p_balance_type_code => l_balance_type_code
17105          );
17106 
17107    -------------------------------------------------------------------------------------------
17108    -- 4262811 - Generate the Accrual Reversal lines
17109    -------------------------------------------------------------------------------------------
17110    BEGIN
17111       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17112                               (g_array_event(p_event_id).array_value_num('header_index'));
17113       IF l_acc_rev_flag IS NULL THEN
17114          l_acc_rev_flag := 'N';
17115       END IF;
17116    EXCEPTION
17117       WHEN OTHERS THEN
17118          l_acc_rev_flag := 'N';
17119    END;
17120    --
17121    IF (l_acc_rev_flag = 'Y') THEN
17122 
17123        -- 4645092  ------------------------------------------------------------------------------
17124        -- To allow MPA report to determine if it should generate report process
17125        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17126        ------------------------------------------------------------------------------------------
17127 
17128        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17129        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17130    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
17131    -- call ADRs
17132    -- Bug 4922099
17133    --
17134    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17135         (NVL(l_actual_upg_option, 'N') = 'O') OR
17136         (NVL(l_enc_upg_option, 'N') = 'O')
17137       )
17138    THEN
17139    NULL;
17140    --
17141    --
17142    
17143   l_ccid := AcctDerRule_20(
17147 , p_source_16_meaning => p_source_16_meaning
17144            p_application_id           => p_application_id
17145          , p_ae_header_id             => l_ae_header_id 
17146 , p_source_16 => p_source_16
17148 , p_source_29 => p_source_29
17149 , p_source_37 => p_source_37
17150          , x_transaction_coa_id       => l_adr_transaction_coa_id
17151          , x_accounting_coa_id        => l_adr_accounting_coa_id
17152          , x_value_type_code          => l_adr_value_type_code
17153          , p_side                     => 'NA'
17154    );
17155 
17156    xla_ae_lines_pkg.set_ccid(
17157     p_code_combination_id          => l_ccid
17158   , p_value_type_code              => l_adr_value_type_code
17159   , p_transaction_coa_id           => l_adr_transaction_coa_id
17160   , p_accounting_coa_id            => l_adr_accounting_coa_id
17161   , p_adr_code                     => 'AP_BANK_CHARGES'
17162   , p_adr_type_code                => 'S'
17163   , p_component_type               => l_component_type
17164   , p_component_code               => l_component_code
17165   , p_component_type_code          => l_component_type_code
17166   , p_component_appl_id            => l_component_appl_id
17167   , p_amb_context_code             => l_amb_context_code
17168   , p_side                         => 'NA'
17169   );
17170 
17171 
17172    --
17173    --
17174    END IF;
17175 
17176        --
17177        -- Update the line information that should be overwritten
17178        --
17179        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17180                                          p_header_num   => 1);
17181        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
17182 
17183        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17184 
17185        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
17186           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17187        END IF;
17188 
17189       --
17190       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17191       --
17192       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17193           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
17194       ELSE
17195           ---------------------------------------------------------------------------------------------------
17196           -- 4262811a Switch Sign
17197           ---------------------------------------------------------------------------------------------------
17198           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
17199           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17200                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17201           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17202                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17203           -- 5132302
17204           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17205                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17206 
17207       END IF;
17208 
17209       -- 4955764
17210       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17211       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17212 
17213 
17214       XLA_AE_LINES_PKG.ValidateCurrentLine;
17215       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17216 
17217       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17218                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17219                ,p_balance_type_code => l_balance_type_code);
17220 
17221    END IF;
17222 
17223    -----------------------------------------------------------------------------------------
17224    -- 4262811 Multiperiod Accounting
17225    -----------------------------------------------------------------------------------------
17226      -- No MPA option is assigned.
17227 
17228 
17229 END IF;
17230 END IF;
17231 --
17232 
17233 --
17234 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17235    trace
17236       (p_msg      => 'END of AcctLineType_52'
17237       ,p_level    => C_LEVEL_PROCEDURE
17238       ,p_module   => l_log_module);
17239 END IF;
17240 --
17241 EXCEPTION
17242   WHEN xla_exceptions_pkg.application_exception THEN
17243       RAISE;
17244   WHEN OTHERS THEN
17245        xla_exceptions_pkg.raise_message
17246            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_52');
17247 END AcctLineType_52;
17248 --
17249 
17250 ---------------------------------------
17251 --
17252 -- PRIVATE FUNCTION
17253 --         AcctLineType_53
17254 --
17255 ---------------------------------------
17256 PROCEDURE AcctLineType_53 (
17257   p_application_id        IN NUMBER
17258  ,p_event_id              IN NUMBER
17259  ,p_calculate_acctd_flag  IN VARCHAR2
17260  ,p_calculate_g_l_flag    IN VARCHAR2
17261  ,p_actual_flag           IN OUT VARCHAR2
17265 --Automatic Offsets Value
17262  ,p_balance_type_code     OUT VARCHAR2
17263  ,p_gain_or_loss_ref      OUT VARCHAR2
17264  
17266  , p_source_16            IN VARCHAR2
17267  , p_source_16_meaning    IN VARCHAR2
17268 --Payment Distribution (Cleared Rate) Ledger Amount
17269  , p_source_22            IN NUMBER
17270 --Invoice Distribution Account
17271  , p_source_29            IN NUMBER
17272 --Bank Errors Account
17273  , p_source_38            IN NUMBER
17274 --When to Account for Payment Option
17275  , p_source_50            IN VARCHAR2
17276 --Payment Distribution Type
17277  , p_source_51            IN VARCHAR2
17278  , p_source_51_meaning    IN VARCHAR2
17279 --Accounting Reversal Indicator
17280  , p_source_52            IN VARCHAR2
17281 --Payment Distribution Amount
17282  , p_source_53            IN NUMBER
17283 --Business Flow Accounts Payable Application Identifier
17284  , p_source_54            IN NUMBER
17285 --Business Flow Payment Distribution Type
17286  , p_source_55            IN VARCHAR2
17287 --Business Flow Payment Entity Code
17288  , p_source_56            IN VARCHAR2
17289 --Business Flow Payment Distribution Identifier
17290  , p_source_57            IN NUMBER
17291 --Business Flow Payment Identifier
17292  , p_source_58            IN NUMBER
17293 --Payment Distribution Identifier
17294  , p_source_59            IN NUMBER
17295 --Distribution Link Type
17296  , p_source_60            IN VARCHAR2
17297 --Override Accounted Amount Indicator
17298  , p_source_64            IN VARCHAR2
17299  , p_source_64_meaning    IN VARCHAR2
17300 --Payment Supplier Identifier
17301  , p_source_65            IN NUMBER
17302 --Payment Supplier Site Identifier
17303  , p_source_66            IN NUMBER
17304 --Third Party Type
17305  , p_source_67            IN VARCHAR2
17306 --Payment Distribution Reversed Identifier
17307  , p_source_68            IN NUMBER
17308 --Invoice Distribution Tax Line Identifier
17309  , p_source_69            IN NUMBER
17310 --Invoice Distribution Summary Tax Line Identifier
17311  , p_source_70            IN NUMBER
17312 --Cleared Currency Code
17313  , p_source_113            IN VARCHAR2
17314 --Cleared Exchange Date
17315  , p_source_114            IN DATE
17316 --Cleared Exchange Rate
17317  , p_source_115            IN NUMBER
17318 --Cleared Exchange Rate Type
17319  , p_source_116            IN VARCHAR2
17320 )
17321 IS
17322 
17323 l_component_type              VARCHAR2(80);
17324 l_component_code              VARCHAR2(30);
17325 l_component_type_code         VARCHAR2(1);
17326 l_component_appl_id           INTEGER;
17327 l_amb_context_code            VARCHAR2(30);
17328 l_entity_code                 VARCHAR2(30);
17329 l_event_class_code            VARCHAR2(30);
17330 l_ae_header_id                NUMBER;
17331 l_event_type_code             VARCHAR2(30);
17332 l_line_definition_code        VARCHAR2(30);
17333 l_line_definition_owner_code  VARCHAR2(1);
17334 --
17335 -- adr variables
17336 l_segment                     VARCHAR2(30);
17337 l_ccid                        NUMBER;
17338 l_adr_transaction_coa_id      NUMBER;
17339 l_adr_accounting_coa_id       NUMBER;
17340 l_adr_flexfield_segment_code  VARCHAR2(30);
17341 l_adr_flex_value_set_id       NUMBER;
17342 l_adr_value_type_code         VARCHAR2(30);
17343 l_adr_value_combination_id    NUMBER;
17344 l_adr_value_segment_code      VARCHAR2(30);
17345 
17346 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
17347 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
17348 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
17349 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
17350 
17351 -- 4262811 Variables ------------------------------------------------------------------------------------------
17352 l_entered_amt_idx             NUMBER;
17353 l_accted_amt_idx              NUMBER;
17354 l_acc_rev_flag                VARCHAR2(1);
17355 l_accrual_line_num            NUMBER;
17356 l_tmp_amt                     NUMBER;
17357 l_acc_rev_natural_side_code   VARCHAR2(1);
17358 
17359 l_num_entries                 NUMBER;
17360 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
17361 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
17362 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
17363 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
17364 l_recog_line_1                NUMBER;
17365 l_recog_line_2                NUMBER;
17366 
17367 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
17368 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
17369 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
17370 
17371 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17372 
17373 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
17374 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
17375 
17376 ---------------------------------------------------------------------------------------------------------------
17377 
17378 
17379 --
17380 -- bulk performance
17381 --
17382 l_balance_type_code           VARCHAR2(1);
17383 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
17384 l_log_module                  VARCHAR2(240);
17385 
17386 --
17387 -- Upgrade strategy
17391 
17388 --
17389 l_actual_upg_option           VARCHAR2(1);
17390 l_enc_upg_option           VARCHAR2(1);
17392 --
17393 BEGIN
17394 --
17395 IF g_log_enabled THEN
17396       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
17397 END IF;
17398 --
17399 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17400 
17401       trace
17402          (p_msg      => 'BEGIN of AcctLineType_53'
17403          ,p_level    => C_LEVEL_PROCEDURE
17404          ,p_module   => l_log_module);
17405 
17406 END IF;
17407 --
17408 l_component_type             := 'AMB_JLT';
17409 l_component_code             := 'AP_BANK_ERROR_CLEAR';
17410 l_component_type_code        := 'S';
17411 l_component_appl_id          :=  200;
17412 l_amb_context_code           := 'DEFAULT';
17413 l_entity_code                := 'AP_PAYMENTS';
17414 l_event_class_code           := 'RECONCILED PAYMENTS';
17415 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
17416 l_line_definition_owner_code := 'S';
17417 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
17418 --
17419 l_balance_type_code          := 'A';
17420 l_segment                     := NULL;
17421 l_ccid                        := NULL;
17422 l_adr_transaction_coa_id      := NULL;
17423 l_adr_accounting_coa_id       := NULL;
17424 l_adr_flexfield_segment_code  := NULL;
17425 l_adr_flex_value_set_id       := NULL;
17426 l_adr_value_type_code         := NULL;
17427 l_adr_value_combination_id    := NULL;
17428 l_adr_value_segment_code      := NULL;
17429 
17430 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
17431 l_bflow_class_code           := '';    -- 4219869 Business Flow
17432 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
17433 l_budgetary_control_flag     := 'N';
17434 
17435 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
17436 l_bflow_applied_to_amt       := NULL; -- 5132302
17437 l_entered_amt_idx            := NULL;          -- 4262811
17438 l_accted_amt_idx             := NULL;          -- 4262811
17439 l_acc_rev_flag               := NULL;          -- 4262811
17440 l_accrual_line_num           := NULL;          -- 4262811
17441 l_tmp_amt                    := NULL;          -- 4262811
17442 --
17443  
17444 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17445     l_balance_type_code <> 'B' THEN
17446 IF NVL(p_source_50,'
17447 ') <>  'ISSUE_ISSUE' AND 
17448 NVL(p_source_51,'
17449 ') =  'BANK ERROR'
17450  THEN 
17451 
17452    --
17453    XLA_AE_LINES_PKG.SetNewLine;
17454 
17455    p_balance_type_code          := l_balance_type_code;
17456    -- set the flag so later we will know whether the gain loss line needs to be created
17457    
17458    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17459      p_actual_flag :='A';
17460    END IF;
17461 
17462    --
17463    -- bulk performance
17464    --
17465    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17466                                       p_header_num   => 0); -- 4262811
17467    --
17468    -- set accounting line options
17469    --
17470    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17471            p_natural_side_code          => 'D'
17472          , p_gain_or_loss_flag          => 'N'
17473          , p_gl_transfer_mode_code      => 'S'
17474          , p_acct_entry_type_code       => 'A'
17475          , p_switch_side_flag           => 'Y'
17476          , p_merge_duplicate_code       => 'A'
17477          );
17478    --
17479    l_acc_rev_natural_side_code := 'C';  -- 4262811
17480    -- 
17481    --
17482    -- set accounting line type info
17483    --
17484    xla_ae_lines_pkg.SetAcctLineType
17485       (p_component_type             => l_component_type
17486       ,p_event_type_code            => l_event_type_code
17487       ,p_line_definition_owner_code => l_line_definition_owner_code
17488       ,p_line_definition_code       => l_line_definition_code
17489       ,p_accounting_line_code       => l_component_code
17490       ,p_accounting_line_type_code  => l_component_type_code
17491       ,p_accounting_line_appl_id    => l_component_appl_id
17492       ,p_amb_context_code           => l_amb_context_code
17493       ,p_entity_code                => l_entity_code
17494       ,p_event_class_code           => l_event_class_code);
17495    --
17496    -- set accounting class
17497    --
17498    xla_ae_lines_pkg.SetAcctClass(
17499            p_accounting_class_code  => 'BANK_ERROR'
17500          , p_ae_header_id           => l_ae_header_id
17501          );
17502 
17503    --
17504    -- set rounding class
17505    --
17506    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17507                       'BANK_ERROR';
17508 
17509    --
17510    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17511    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17512    --
17513    -- bulk performance
17514    --
17515    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17516 
17517    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17518       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17519 
17520    -- 4955764
17521    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17525    
17522       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17523 
17524    -- 4458381 Public Sector Enh
17526    --
17527    -- set accounting attributes for the line type
17528    --
17529    l_entered_amt_idx := 10;
17530    l_accted_amt_idx  := 15;
17531    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
17532    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17533    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
17534    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
17535    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
17536    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
17537    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
17538    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17539    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
17540    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
17541    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
17542    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
17543    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
17544    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17545    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
17546    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
17547    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
17548    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
17549    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
17550    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
17551    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
17552    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
17553    l_rec_acct_attrs.array_char_value(11)  := p_source_113;
17554    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
17555    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
17556    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
17557    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
17558    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
17559    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
17560    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
17561    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
17562    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
17563    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
17564    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
17565    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
17566    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
17567    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
17568    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
17569    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
17570    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
17571    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
17572    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
17573    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
17574    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
17575    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
17576    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
17577    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
17578    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
17579    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
17580 
17581    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17582    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17583 
17584    ---------------------------------------------------------------------------------------------------------------
17585    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17586    ---------------------------------------------------------------------------------------------------------------
17587    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17588 
17589    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17590    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17591 
17592    IF xla_accounting_cache_pkg.GetValueChar
17593          (p_source_code         => 'LEDGER_CATEGORY_CODE'
17594          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17595    AND l_bflow_method_code = 'PRIOR_ENTRY'
17596 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17597    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17598          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17599        )
17600    THEN
17601          xla_ae_lines_pkg.BflowUpgEntry
17602            (p_business_method_code    => l_bflow_method_code
17603            ,p_business_class_code     => l_bflow_class_code
17604            ,p_balance_type            => l_balance_type_code);
17605    ELSE
17606       NULL;
17607 -- No business flow processing for business flow method of NONE.
17608    END IF;
17609 
17610    --
17611    -- call analytical criteria
17612    --
17613    
17614    --
17615    -- call description
17616    --
17617    -- No description or it is inherited.
17618    --
17619    -- call ADRs
17620    -- Bug 4922099
17621    --
17625       )
17622    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17623         (NVL(l_actual_upg_option, 'N') = 'O') OR
17624         (NVL(l_enc_upg_option, 'N') = 'O')
17626    THEN
17627    NULL;
17628    --
17629    --
17630    
17631   l_ccid := AcctDerRule_21(
17632            p_application_id           => p_application_id
17633          , p_ae_header_id             => l_ae_header_id 
17634 , p_source_16 => p_source_16
17635 , p_source_16_meaning => p_source_16_meaning
17636 , p_source_29 => p_source_29
17637 , p_source_38 => p_source_38
17638          , x_transaction_coa_id       => l_adr_transaction_coa_id
17639          , x_accounting_coa_id        => l_adr_accounting_coa_id
17640          , x_value_type_code          => l_adr_value_type_code
17641          , p_side                     => 'NA'
17642    );
17643 
17644    xla_ae_lines_pkg.set_ccid(
17645     p_code_combination_id          => l_ccid
17646   , p_value_type_code              => l_adr_value_type_code
17647   , p_transaction_coa_id           => l_adr_transaction_coa_id
17648   , p_accounting_coa_id            => l_adr_accounting_coa_id
17649   , p_adr_code                     => 'AP_BANK_ERRORS'
17650   , p_adr_type_code                => 'S'
17651   , p_component_type               => l_component_type
17652   , p_component_code               => l_component_code
17653   , p_component_type_code          => l_component_type_code
17654   , p_component_appl_id            => l_component_appl_id
17655   , p_amb_context_code             => l_amb_context_code
17656   , p_side                         => 'NA'
17657   );
17658 
17659 
17660    --
17661    --
17662    END IF;
17663    --
17664    -- Bug 4922099
17665    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17666           (NVL(l_enc_upg_option, 'N') = 'O')
17667         ) AND
17668         (l_bflow_method_code = 'PRIOR_ENTRY')
17669       )
17670    THEN
17671       IF
17672       --
17673       1 = 2
17674       --
17675       THEN
17676       xla_accounting_err_pkg.build_message
17677                                     (p_appli_s_name            => 'XLA'
17678                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17679                                     ,p_token_1                 => 'LINE_NUMBER'
17680                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
17681                                     ,p_token_2                 => 'LINE_TYPE_NAME'
17682                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
17683                                                                              l_component_type
17684                                                                             ,l_component_code
17685                                                                             ,l_component_type_code
17686                                                                             ,l_component_appl_id
17687                                                                             ,l_amb_context_code
17688                                                                             ,l_entity_code
17689                                                                             ,l_event_class_code
17690                                                                            )
17691                                     ,p_token_3                 => 'OWNER'
17692                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
17693                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
17694                                                                           ,p_lookup_code    => l_component_type_code
17695                                                                          )
17696                                     ,p_token_4                 => 'PRODUCT_NAME'
17697                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17698                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17699                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17700                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17701                                     ,p_ae_header_id            =>  NULL
17702                                        );
17703 
17704         IF (C_LEVEL_ERROR>= g_log_level) THEN
17705                  trace
17706                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17707                       ,p_level    => C_LEVEL_ERROR
17708                       ,p_module   => l_log_module);
17709         END IF;
17710       END IF;
17711    END IF;
17712    --
17713    --
17714    ------------------------------------------------------------------------------------------------
17715    -- 4219869 Business Flow
17716    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17717    -- Prior Entry.  Currently, the following code is always generated.
17718    ------------------------------------------------------------------------------------------------
17719    XLA_AE_LINES_PKG.ValidateCurrentLine;
17720 
17721    ------------------------------------------------------------------------------------
17722    -- 4219869 Business Flow
17723    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17724    ------------------------------------------------------------------------------------
17728    -- 4219869 Business Flow
17725    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17726 
17727    ----------------------------------------------------------------------------------
17729    -- Update journal entry status -- Need to generate this within IF <condition>
17730    ----------------------------------------------------------------------------------
17731    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17732          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17733          ,p_balance_type_code => l_balance_type_code
17734          );
17735 
17736    -------------------------------------------------------------------------------------------
17737    -- 4262811 - Generate the Accrual Reversal lines
17738    -------------------------------------------------------------------------------------------
17739    BEGIN
17740       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17741                               (g_array_event(p_event_id).array_value_num('header_index'));
17742       IF l_acc_rev_flag IS NULL THEN
17743          l_acc_rev_flag := 'N';
17744       END IF;
17745    EXCEPTION
17746       WHEN OTHERS THEN
17747          l_acc_rev_flag := 'N';
17748    END;
17749    --
17750    IF (l_acc_rev_flag = 'Y') THEN
17751 
17752        -- 4645092  ------------------------------------------------------------------------------
17753        -- To allow MPA report to determine if it should generate report process
17754        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17755        ------------------------------------------------------------------------------------------
17756 
17757        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17758        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17759    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
17760    -- call ADRs
17761    -- Bug 4922099
17762    --
17763    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17764         (NVL(l_actual_upg_option, 'N') = 'O') OR
17765         (NVL(l_enc_upg_option, 'N') = 'O')
17766       )
17767    THEN
17768    NULL;
17769    --
17770    --
17771    
17772   l_ccid := AcctDerRule_21(
17773            p_application_id           => p_application_id
17774          , p_ae_header_id             => l_ae_header_id 
17775 , p_source_16 => p_source_16
17776 , p_source_16_meaning => p_source_16_meaning
17777 , p_source_29 => p_source_29
17778 , p_source_38 => p_source_38
17779          , x_transaction_coa_id       => l_adr_transaction_coa_id
17780          , x_accounting_coa_id        => l_adr_accounting_coa_id
17781          , x_value_type_code          => l_adr_value_type_code
17782          , p_side                     => 'NA'
17783    );
17784 
17785    xla_ae_lines_pkg.set_ccid(
17786     p_code_combination_id          => l_ccid
17787   , p_value_type_code              => l_adr_value_type_code
17788   , p_transaction_coa_id           => l_adr_transaction_coa_id
17789   , p_accounting_coa_id            => l_adr_accounting_coa_id
17790   , p_adr_code                     => 'AP_BANK_ERRORS'
17791   , p_adr_type_code                => 'S'
17792   , p_component_type               => l_component_type
17793   , p_component_code               => l_component_code
17794   , p_component_type_code          => l_component_type_code
17795   , p_component_appl_id            => l_component_appl_id
17796   , p_amb_context_code             => l_amb_context_code
17797   , p_side                         => 'NA'
17798   );
17799 
17800 
17801    --
17802    --
17803    END IF;
17804 
17805        --
17806        -- Update the line information that should be overwritten
17807        --
17808        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17809                                          p_header_num   => 1);
17810        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
17811 
17812        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17813 
17814        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
17815           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17816        END IF;
17817 
17818       --
17819       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17820       --
17821       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17822           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
17823       ELSE
17824           ---------------------------------------------------------------------------------------------------
17825           -- 4262811a Switch Sign
17826           ---------------------------------------------------------------------------------------------------
17827           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
17828           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17829                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17830           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17831                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17832           -- 5132302
17836       END IF;
17833           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17834                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17835 
17837 
17838       -- 4955764
17839       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17840       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17841 
17842 
17843       XLA_AE_LINES_PKG.ValidateCurrentLine;
17844       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17845 
17846       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17847                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17848                ,p_balance_type_code => l_balance_type_code);
17849 
17850    END IF;
17851 
17852    -----------------------------------------------------------------------------------------
17853    -- 4262811 Multiperiod Accounting
17854    -----------------------------------------------------------------------------------------
17855      -- No MPA option is assigned.
17856 
17857 
17858 END IF;
17859 END IF;
17860 --
17861 
17862 --
17863 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17864    trace
17865       (p_msg      => 'END of AcctLineType_53'
17866       ,p_level    => C_LEVEL_PROCEDURE
17867       ,p_module   => l_log_module);
17868 END IF;
17869 --
17870 EXCEPTION
17871   WHEN xla_exceptions_pkg.application_exception THEN
17872       RAISE;
17873   WHEN OTHERS THEN
17874        xla_exceptions_pkg.raise_message
17875            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_53');
17876 END AcctLineType_53;
17877 --
17878 
17879 ---------------------------------------
17880 --
17881 -- PRIVATE FUNCTION
17882 --         AcctLineType_54
17883 --
17884 ---------------------------------------
17885 PROCEDURE AcctLineType_54 (
17886   p_application_id        IN NUMBER
17887  ,p_event_id              IN NUMBER
17888  ,p_calculate_acctd_flag  IN VARCHAR2
17889  ,p_calculate_g_l_flag    IN VARCHAR2
17890  ,p_actual_flag           IN OUT VARCHAR2
17891  ,p_balance_type_code     OUT VARCHAR2
17892  ,p_gain_or_loss_ref      OUT VARCHAR2
17893  
17894 --Payment Currency Code
17895  , p_source_12            IN VARCHAR2
17896 --Bank Cash Account
17897  , p_source_13            IN NUMBER
17898 --Automatic Offsets Value
17899  , p_source_16            IN VARCHAR2
17900  , p_source_16_meaning    IN VARCHAR2
17901 --Payment Distribution (Cleared Rate) Ledger Amount
17902  , p_source_22            IN NUMBER
17903 --When to Account for Payment Option
17904  , p_source_50            IN VARCHAR2
17905 --Payment Distribution Type
17906  , p_source_51            IN VARCHAR2
17907  , p_source_51_meaning    IN VARCHAR2
17908 --Accounting Reversal Indicator
17909  , p_source_52            IN VARCHAR2
17910 --Payment Distribution Amount
17911  , p_source_53            IN NUMBER
17912 --Business Flow Accounts Payable Application Identifier
17913  , p_source_54            IN NUMBER
17914 --Business Flow Payment Distribution Type
17915  , p_source_55            IN VARCHAR2
17916 --Business Flow Payment Entity Code
17917  , p_source_56            IN VARCHAR2
17918 --Business Flow Payment Distribution Identifier
17919  , p_source_57            IN NUMBER
17920 --Business Flow Payment Identifier
17921  , p_source_58            IN NUMBER
17922 --Payment Distribution Identifier
17923  , p_source_59            IN NUMBER
17924 --Distribution Link Type
17925  , p_source_60            IN VARCHAR2
17926 --Override Accounted Amount Indicator
17927  , p_source_64            IN VARCHAR2
17928  , p_source_64_meaning    IN VARCHAR2
17929 --Payment Supplier Identifier
17930  , p_source_65            IN NUMBER
17931 --Payment Supplier Site Identifier
17932  , p_source_66            IN NUMBER
17933 --Third Party Type
17934  , p_source_67            IN VARCHAR2
17935 --Payment Distribution Reversed Identifier
17936  , p_source_68            IN NUMBER
17937 --Invoice Distribution Tax Line Identifier
17938  , p_source_69            IN NUMBER
17939 --Invoice Distribution Summary Tax Line Identifier
17940  , p_source_70            IN NUMBER
17941 --Cleared Exchange Date
17942  , p_source_114            IN DATE
17943 --Cleared Exchange Rate
17944  , p_source_115            IN NUMBER
17945 --Cleared Exchange Rate Type
17946  , p_source_116            IN VARCHAR2
17947 --Pooled Bank Account Option
17948  , p_source_117            IN VARCHAR2
17949  , p_source_117_meaning    IN VARCHAR2
17950 )
17951 IS
17952 
17953 l_component_type              VARCHAR2(80);
17954 l_component_code              VARCHAR2(30);
17955 l_component_type_code         VARCHAR2(1);
17956 l_component_appl_id           INTEGER;
17957 l_amb_context_code            VARCHAR2(30);
17958 l_entity_code                 VARCHAR2(30);
17959 l_event_class_code            VARCHAR2(30);
17960 l_ae_header_id                NUMBER;
17961 l_event_type_code             VARCHAR2(30);
17962 l_line_definition_code        VARCHAR2(30);
17963 l_line_definition_owner_code  VARCHAR2(1);
17964 --
17965 -- adr variables
17966 l_segment                     VARCHAR2(30);
17967 l_ccid                        NUMBER;
17968 l_adr_transaction_coa_id      NUMBER;
17969 l_adr_accounting_coa_id       NUMBER;
17973 l_adr_value_combination_id    NUMBER;
17970 l_adr_flexfield_segment_code  VARCHAR2(30);
17971 l_adr_flex_value_set_id       NUMBER;
17972 l_adr_value_type_code         VARCHAR2(30);
17974 l_adr_value_segment_code      VARCHAR2(30);
17975 
17976 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
17977 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
17978 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
17979 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
17980 
17981 -- 4262811 Variables ------------------------------------------------------------------------------------------
17982 l_entered_amt_idx             NUMBER;
17983 l_accted_amt_idx              NUMBER;
17984 l_acc_rev_flag                VARCHAR2(1);
17985 l_accrual_line_num            NUMBER;
17986 l_tmp_amt                     NUMBER;
17987 l_acc_rev_natural_side_code   VARCHAR2(1);
17988 
17989 l_num_entries                 NUMBER;
17990 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
17991 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
17992 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
17993 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
17994 l_recog_line_1                NUMBER;
17995 l_recog_line_2                NUMBER;
17996 
17997 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
17998 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
17999 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
18000 
18001 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18002 
18003 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
18004 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
18005 
18006 ---------------------------------------------------------------------------------------------------------------
18007 
18008 
18009 --
18010 -- bulk performance
18011 --
18012 l_balance_type_code           VARCHAR2(1);
18013 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
18014 l_log_module                  VARCHAR2(240);
18015 
18016 --
18017 -- Upgrade strategy
18018 --
18019 l_actual_upg_option           VARCHAR2(1);
18020 l_enc_upg_option           VARCHAR2(1);
18021 
18022 --
18023 BEGIN
18024 --
18025 IF g_log_enabled THEN
18026       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
18027 END IF;
18028 --
18029 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18030 
18031       trace
18032          (p_msg      => 'BEGIN of AcctLineType_54'
18033          ,p_level    => C_LEVEL_PROCEDURE
18034          ,p_module   => l_log_module);
18035 
18036 END IF;
18037 --
18038 l_component_type             := 'AMB_JLT';
18039 l_component_code             := 'AP_CASH_CLEARONLY_AOS_AS';
18040 l_component_type_code        := 'S';
18041 l_component_appl_id          :=  200;
18042 l_amb_context_code           := 'DEFAULT';
18043 l_entity_code                := 'AP_PAYMENTS';
18044 l_event_class_code           := 'RECONCILED PAYMENTS';
18045 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
18046 l_line_definition_owner_code := 'S';
18047 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
18048 --
18049 l_balance_type_code          := 'A';
18050 l_segment                     := NULL;
18051 l_ccid                        := NULL;
18052 l_adr_transaction_coa_id      := NULL;
18053 l_adr_accounting_coa_id       := NULL;
18054 l_adr_flexfield_segment_code  := NULL;
18055 l_adr_flex_value_set_id       := NULL;
18056 l_adr_value_type_code         := NULL;
18057 l_adr_value_combination_id    := NULL;
18058 l_adr_value_segment_code      := NULL;
18059 
18060 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
18061 l_bflow_class_code           := '';    -- 4219869 Business Flow
18062 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
18063 l_budgetary_control_flag     := 'N';
18064 
18065 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
18066 l_bflow_applied_to_amt       := NULL; -- 5132302
18067 l_entered_amt_idx            := NULL;          -- 4262811
18068 l_accted_amt_idx             := NULL;          -- 4262811
18069 l_acc_rev_flag               := NULL;          -- 4262811
18070 l_accrual_line_num           := NULL;          -- 4262811
18071 l_tmp_amt                    := NULL;          -- 4262811
18072 --
18073  
18074 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18075     l_balance_type_code <> 'B' THEN
18076 IF NVL(p_source_50,'
18077 ') <>  'ISSUE_ISSUE' AND 
18078 (NVL(p_source_117,'
18079 ') =  'Y' AND 
18080 NVL(p_source_16,'
18081 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
18082 (NVL(p_source_51,'
18083 ') =  'CASH' OR 
18084 NVL(p_source_51,'
18085 ') =  'BANK CHARGE' OR 
18086 NVL(p_source_51,'
18087 ') =  'BANK ERROR')
18088  THEN 
18089 
18090    --
18091    XLA_AE_LINES_PKG.SetNewLine;
18092 
18093    p_balance_type_code          := l_balance_type_code;
18094    -- set the flag so later we will know whether the gain loss line needs to be created
18095    
18096    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18097      p_actual_flag :='A';
18098    END IF;
18099 
18100    --
18101    -- bulk performance
18105    --
18102    --
18103    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18104                                       p_header_num   => 0); -- 4262811
18106    -- set accounting line options
18107    --
18108    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18109            p_natural_side_code          => 'C'
18110          , p_gain_or_loss_flag          => 'N'
18111          , p_gl_transfer_mode_code      => 'S'
18112          , p_acct_entry_type_code       => 'A'
18113          , p_switch_side_flag           => 'Y'
18114          , p_merge_duplicate_code       => 'A'
18115          );
18116    --
18117    l_acc_rev_natural_side_code := 'D';  -- 4262811
18118    -- 
18119    --
18120    -- set accounting line type info
18121    --
18122    xla_ae_lines_pkg.SetAcctLineType
18123       (p_component_type             => l_component_type
18124       ,p_event_type_code            => l_event_type_code
18125       ,p_line_definition_owner_code => l_line_definition_owner_code
18126       ,p_line_definition_code       => l_line_definition_code
18127       ,p_accounting_line_code       => l_component_code
18128       ,p_accounting_line_type_code  => l_component_type_code
18129       ,p_accounting_line_appl_id    => l_component_appl_id
18130       ,p_amb_context_code           => l_amb_context_code
18131       ,p_entity_code                => l_entity_code
18132       ,p_event_class_code           => l_event_class_code);
18133    --
18134    -- set accounting class
18135    --
18136    xla_ae_lines_pkg.SetAcctClass(
18137            p_accounting_class_code  => 'CASH'
18138          , p_ae_header_id           => l_ae_header_id
18139          );
18140 
18141    --
18142    -- set rounding class
18143    --
18144    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18145                       'CASH';
18146 
18147    --
18148    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18149    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18150    --
18151    -- bulk performance
18152    --
18153    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18154 
18155    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18156       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
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('header_index'));
18161 
18162    -- 4458381 Public Sector Enh
18163    
18164    --
18165    -- set accounting attributes for the line type
18166    --
18167    l_entered_amt_idx := 10;
18168    l_accted_amt_idx  := 15;
18169    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
18170    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18171    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
18172    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
18173    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
18174    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
18175    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
18176    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18177    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
18178    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
18179    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
18180    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
18181    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
18182    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18183    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
18184    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
18185    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
18186    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
18187    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
18188    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
18189    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
18190    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
18191    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
18192    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
18193    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
18194    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
18195    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
18196    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
18197    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
18198    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
18199    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
18200    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
18201    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
18202    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
18203    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
18204    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
18205    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
18206    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
18207    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
18208    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
18212    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
18209    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
18210    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
18211    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
18213    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
18214    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
18215    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
18216    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
18217    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
18218 
18219    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18220    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18221 
18222    ---------------------------------------------------------------------------------------------------------------
18223    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18224    ---------------------------------------------------------------------------------------------------------------
18225    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18226 
18227    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18228    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18229 
18230    IF xla_accounting_cache_pkg.GetValueChar
18231          (p_source_code         => 'LEDGER_CATEGORY_CODE'
18232          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18233    AND l_bflow_method_code = 'PRIOR_ENTRY'
18234 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18235    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18236          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18237        )
18238    THEN
18239          xla_ae_lines_pkg.BflowUpgEntry
18240            (p_business_method_code    => l_bflow_method_code
18241            ,p_business_class_code     => l_bflow_class_code
18242            ,p_balance_type            => l_balance_type_code);
18243    ELSE
18244       NULL;
18245 XLA_AE_LINES_PKG.business_flow_validation(
18246                                 p_business_method_code     => l_bflow_method_code
18247                                ,p_business_class_code      => l_bflow_class_code
18248                                ,p_inherit_description_flag => l_inherit_desc_flag);
18249    END IF;
18250 
18251    --
18252    -- call analytical criteria
18253    --
18254    
18255    --
18256    -- call description
18257    --
18258    -- No description or it is inherited.
18259    --
18260    -- call ADRs
18261    -- Bug 4922099
18262    --
18263    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18264         (NVL(l_actual_upg_option, 'N') = 'O') OR
18265         (NVL(l_enc_upg_option, 'N') = 'O')
18266       )
18267    THEN
18268    NULL;
18269    --
18270    --
18271    
18272    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
18273      p_code_combination_id      => TO_NUMBER(C_NUM)
18274    , p_value_type_code          => NULL
18275    , p_transaction_coa_id       => null
18276    , p_accounting_coa_id        => null
18277    , p_adr_code                 => NULL
18278    , p_adr_type_code            => NULL
18279    , p_component_type           => l_component_type
18280    , p_component_code           => l_component_code
18281    , p_component_type_code      => l_component_type_code
18282    , p_component_appl_id        => l_component_appl_id
18283    , p_amb_context_code         => l_amb_context_code
18284    , p_side                     => NULL
18285    );
18286 
18287    
18288   -- initialise segments
18289   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18290   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18291   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18292   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18293   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18294   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18295   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18296   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18297   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18298   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18299   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18300   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18301   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18302   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18303   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18304   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18305   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18306   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18307   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18308   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18312   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18309   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18310   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18311   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18313   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18314   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18315   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18316   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18317   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18318   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18319   --
18320 
18321    --
18322 
18323 
18324    l_segment := AcctDerRule_3(
18325            p_application_id           => p_application_id
18326          , p_ae_header_id             => l_ae_header_id 
18327 , p_source_13 => p_source_13
18328          , x_transaction_coa_id       => l_adr_transaction_coa_id
18329          , x_accounting_coa_id        => l_adr_accounting_coa_id
18330          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18331          , x_flex_value_set_id        => l_adr_flex_value_set_id
18332          , x_value_type_code          => l_adr_value_type_code
18333          , x_value_combination_id     => l_adr_value_combination_id
18334          , x_value_segment_code       => l_adr_value_segment_code
18335          , p_side                     => 'NA'
18336          , p_override_seg_flag        => 'Y'
18337    );
18338 
18339    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18340 
18341       xla_ae_lines_pkg.set_segment(
18342           p_to_segment_code         => 'GL_ACCOUNT'
18343         , p_segment_value           => l_segment
18344         , p_from_segment_code       => l_adr_value_segment_code
18345         , p_from_combination_id     => l_adr_value_combination_id
18346         , p_value_type_code         => l_adr_value_type_code
18347         , p_transaction_coa_id      => l_adr_transaction_coa_id
18348         , p_accounting_coa_id       => l_adr_accounting_coa_id
18349         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18350         , p_flex_value_set_id       => l_adr_flex_value_set_id
18351         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
18352         , p_adr_type_code           => 'S'
18353         , p_component_type          => l_component_type
18354         , p_component_code          => l_component_code
18355         , p_component_type_code     => l_component_type_code
18356         , p_component_appl_id       => l_component_appl_id
18357         , p_amb_context_code        => l_amb_context_code
18358         , p_entity_code             => 'AP_PAYMENTS'
18359         , p_event_class_code        => 'RECONCILED PAYMENTS'
18360         , p_side                    => 'NA'
18361         );
18362 
18363   END IF;
18364 
18365    --
18366    --
18367    END IF;
18368    --
18369    -- Bug 4922099
18370    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18371           (NVL(l_enc_upg_option, 'N') = 'O')
18372         ) AND
18373         (l_bflow_method_code = 'PRIOR_ENTRY')
18374       )
18375    THEN
18376       IF
18377       --
18378       1 = 2
18379       --
18380       THEN
18381       xla_accounting_err_pkg.build_message
18382                                     (p_appli_s_name            => 'XLA'
18383                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18384                                     ,p_token_1                 => 'LINE_NUMBER'
18385                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
18386                                     ,p_token_2                 => 'LINE_TYPE_NAME'
18387                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
18388                                                                              l_component_type
18389                                                                             ,l_component_code
18390                                                                             ,l_component_type_code
18391                                                                             ,l_component_appl_id
18392                                                                             ,l_amb_context_code
18393                                                                             ,l_entity_code
18394                                                                             ,l_event_class_code
18395                                                                            )
18396                                     ,p_token_3                 => 'OWNER'
18397                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
18398                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
18399                                                                           ,p_lookup_code    => l_component_type_code
18400                                                                          )
18401                                     ,p_token_4                 => 'PRODUCT_NAME'
18402                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18403                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18407                                        );
18404                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18405                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18406                                     ,p_ae_header_id            =>  NULL
18408 
18409         IF (C_LEVEL_ERROR>= g_log_level) THEN
18410                  trace
18411                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18412                       ,p_level    => C_LEVEL_ERROR
18413                       ,p_module   => l_log_module);
18414         END IF;
18415       END IF;
18416    END IF;
18417    --
18418    --
18419    ------------------------------------------------------------------------------------------------
18420    -- 4219869 Business Flow
18421    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18422    -- Prior Entry.  Currently, the following code is always generated.
18423    ------------------------------------------------------------------------------------------------
18424    XLA_AE_LINES_PKG.ValidateCurrentLine;
18425 
18426    ------------------------------------------------------------------------------------
18427    -- 4219869 Business Flow
18428    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18429    ------------------------------------------------------------------------------------
18430    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18431 
18432    ----------------------------------------------------------------------------------
18433    -- 4219869 Business Flow
18434    -- Update journal entry status -- Need to generate this within IF <condition>
18435    ----------------------------------------------------------------------------------
18436    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18437          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18438          ,p_balance_type_code => l_balance_type_code
18439          );
18440 
18441    -------------------------------------------------------------------------------------------
18442    -- 4262811 - Generate the Accrual Reversal lines
18443    -------------------------------------------------------------------------------------------
18444    BEGIN
18445       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18446                               (g_array_event(p_event_id).array_value_num('header_index'));
18447       IF l_acc_rev_flag IS NULL THEN
18448          l_acc_rev_flag := 'N';
18449       END IF;
18450    EXCEPTION
18451       WHEN OTHERS THEN
18452          l_acc_rev_flag := 'N';
18453    END;
18454    --
18455    IF (l_acc_rev_flag = 'Y') THEN
18456 
18457        -- 4645092  ------------------------------------------------------------------------------
18458        -- To allow MPA report to determine if it should generate report process
18459        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18460        ------------------------------------------------------------------------------------------
18461 
18462        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18463        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18464    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
18465    -- call ADRs
18466    -- Bug 4922099
18467    --
18468    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18469         (NVL(l_actual_upg_option, 'N') = 'O') OR
18470         (NVL(l_enc_upg_option, 'N') = 'O')
18471       )
18472    THEN
18473    NULL;
18474    --
18475    --
18476    
18477    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
18478      p_code_combination_id      => TO_NUMBER(C_NUM)
18479    , p_value_type_code          => NULL
18480    , p_transaction_coa_id       => null
18481    , p_accounting_coa_id        => null
18482    , p_adr_code                 => NULL
18483    , p_adr_type_code            => NULL
18484    , p_component_type           => l_component_type
18485    , p_component_code           => l_component_code
18486    , p_component_type_code      => l_component_type_code
18487    , p_component_appl_id        => l_component_appl_id
18488    , p_amb_context_code         => l_amb_context_code
18489    , p_side                     => NULL
18490    );
18491 
18492    
18493   -- initialise segments
18494   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18495   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18496   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18497   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18498   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18499   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18500   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18501   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18502   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18503   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18504   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18505   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18509   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18506   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18507   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18508   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18510   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18511   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18512   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18513   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18514   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18515   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18516   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18517   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18518   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18519   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18520   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18521   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18522   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18523   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18524   --
18525 
18526    --
18527 
18528 
18529    l_segment := AcctDerRule_3(
18530            p_application_id           => p_application_id
18531          , p_ae_header_id             => l_ae_header_id 
18532 , p_source_13 => p_source_13
18533          , x_transaction_coa_id       => l_adr_transaction_coa_id
18534          , x_accounting_coa_id        => l_adr_accounting_coa_id
18535          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18536          , x_flex_value_set_id        => l_adr_flex_value_set_id
18537          , x_value_type_code          => l_adr_value_type_code
18538          , x_value_combination_id     => l_adr_value_combination_id
18539          , x_value_segment_code       => l_adr_value_segment_code
18540          , p_side                     => 'NA'
18541          , p_override_seg_flag        => 'Y'
18542    );
18543 
18544    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18545 
18546       xla_ae_lines_pkg.set_segment(
18547           p_to_segment_code         => 'GL_ACCOUNT'
18548         , p_segment_value           => l_segment
18549         , p_from_segment_code       => l_adr_value_segment_code
18550         , p_from_combination_id     => l_adr_value_combination_id
18551         , p_value_type_code         => l_adr_value_type_code
18552         , p_transaction_coa_id      => l_adr_transaction_coa_id
18553         , p_accounting_coa_id       => l_adr_accounting_coa_id
18554         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18555         , p_flex_value_set_id       => l_adr_flex_value_set_id
18556         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
18557         , p_adr_type_code           => 'S'
18558         , p_component_type          => l_component_type
18559         , p_component_code          => l_component_code
18560         , p_component_type_code     => l_component_type_code
18561         , p_component_appl_id       => l_component_appl_id
18562         , p_amb_context_code        => l_amb_context_code
18563         , p_entity_code             => 'AP_PAYMENTS'
18564         , p_event_class_code        => 'RECONCILED PAYMENTS'
18565         , p_side                    => 'NA'
18566         );
18567 
18568   END IF;
18569 
18570    --
18571    --
18572    END IF;
18573 
18574        --
18575        -- Update the line information that should be overwritten
18576        --
18577        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18578                                          p_header_num   => 1);
18579        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
18580 
18581        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18582 
18583        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
18584           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18585        END IF;
18586 
18587       --
18588       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18589       --
18590       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18591           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
18592       ELSE
18593           ---------------------------------------------------------------------------------------------------
18594           -- 4262811a Switch Sign
18595           ---------------------------------------------------------------------------------------------------
18596           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
18597           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18598                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18602           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18599           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18600                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18601           -- 5132302
18603                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18604 
18605       END IF;
18606 
18607       -- 4955764
18608       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18609       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18610 
18611 
18612       XLA_AE_LINES_PKG.ValidateCurrentLine;
18613       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18614 
18615       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18616                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18617                ,p_balance_type_code => l_balance_type_code);
18618 
18619    END IF;
18620 
18621    -----------------------------------------------------------------------------------------
18622    -- 4262811 Multiperiod Accounting
18623    -----------------------------------------------------------------------------------------
18624      -- No MPA option is assigned.
18625 
18626 
18627 END IF;
18628 END IF;
18629 --
18630 
18631 --
18632 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18633    trace
18634       (p_msg      => 'END of AcctLineType_54'
18635       ,p_level    => C_LEVEL_PROCEDURE
18636       ,p_module   => l_log_module);
18637 END IF;
18638 --
18639 EXCEPTION
18640   WHEN xla_exceptions_pkg.application_exception THEN
18641       RAISE;
18642   WHEN OTHERS THEN
18643        xla_exceptions_pkg.raise_message
18644            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_54');
18645 END AcctLineType_54;
18646 --
18647 
18648 ---------------------------------------
18649 --
18650 -- PRIVATE FUNCTION
18651 --         AcctLineType_55
18652 --
18653 ---------------------------------------
18654 PROCEDURE AcctLineType_55 (
18655   p_application_id        IN NUMBER
18656  ,p_event_id              IN NUMBER
18657  ,p_calculate_acctd_flag  IN VARCHAR2
18658  ,p_calculate_g_l_flag    IN VARCHAR2
18659  ,p_actual_flag           IN OUT VARCHAR2
18660  ,p_balance_type_code     OUT VARCHAR2
18661  ,p_gain_or_loss_ref      OUT VARCHAR2
18662  
18663 --Payment Currency Code
18664  , p_source_12            IN VARCHAR2
18665 --Bank Cash Account
18666  , p_source_13            IN NUMBER
18667 --Automatic Offsets Value
18668  , p_source_16            IN VARCHAR2
18669  , p_source_16_meaning    IN VARCHAR2
18670 --Payment Distribution (Cleared Rate) Ledger Amount
18671  , p_source_22            IN NUMBER
18672 --When to Account for Payment Option
18673  , p_source_50            IN VARCHAR2
18674 --Payment Distribution Type
18675  , p_source_51            IN VARCHAR2
18676  , p_source_51_meaning    IN VARCHAR2
18677 --Accounting Reversal Indicator
18678  , p_source_52            IN VARCHAR2
18679 --Payment Distribution Amount
18680  , p_source_53            IN NUMBER
18681 --Business Flow Accounts Payable Application Identifier
18682  , p_source_54            IN NUMBER
18683 --Business Flow Payment Distribution Type
18684  , p_source_55            IN VARCHAR2
18685 --Business Flow Payment Entity Code
18686  , p_source_56            IN VARCHAR2
18687 --Business Flow Payment Distribution Identifier
18688  , p_source_57            IN NUMBER
18689 --Business Flow Payment Identifier
18690  , p_source_58            IN NUMBER
18691 --Payment Distribution Identifier
18692  , p_source_59            IN NUMBER
18693 --Distribution Link Type
18694  , p_source_60            IN VARCHAR2
18695 --Override Accounted Amount Indicator
18696  , p_source_64            IN VARCHAR2
18697  , p_source_64_meaning    IN VARCHAR2
18698 --Payment Supplier Identifier
18699  , p_source_65            IN NUMBER
18700 --Payment Supplier Site Identifier
18701  , p_source_66            IN NUMBER
18702 --Third Party Type
18703  , p_source_67            IN VARCHAR2
18704 --Payment Distribution Reversed Identifier
18705  , p_source_68            IN NUMBER
18706 --Invoice Distribution Tax Line Identifier
18707  , p_source_69            IN NUMBER
18708 --Invoice Distribution Summary Tax Line Identifier
18709  , p_source_70            IN NUMBER
18710 --Cleared Exchange Date
18711  , p_source_114            IN DATE
18712 --Cleared Exchange Rate
18713  , p_source_115            IN NUMBER
18714 --Cleared Exchange Rate Type
18715  , p_source_116            IN VARCHAR2
18716 --Pooled Bank Account Option
18717  , p_source_117            IN VARCHAR2
18718  , p_source_117_meaning    IN VARCHAR2
18719 )
18720 IS
18721 
18722 l_component_type              VARCHAR2(80);
18723 l_component_code              VARCHAR2(30);
18724 l_component_type_code         VARCHAR2(1);
18725 l_component_appl_id           INTEGER;
18726 l_amb_context_code            VARCHAR2(30);
18727 l_entity_code                 VARCHAR2(30);
18728 l_event_class_code            VARCHAR2(30);
18729 l_ae_header_id                NUMBER;
18730 l_event_type_code             VARCHAR2(30);
18731 l_line_definition_code        VARCHAR2(30);
18732 l_line_definition_owner_code  VARCHAR2(1);
18733 --
18734 -- adr variables
18738 l_adr_accounting_coa_id       NUMBER;
18735 l_segment                     VARCHAR2(30);
18736 l_ccid                        NUMBER;
18737 l_adr_transaction_coa_id      NUMBER;
18739 l_adr_flexfield_segment_code  VARCHAR2(30);
18740 l_adr_flex_value_set_id       NUMBER;
18741 l_adr_value_type_code         VARCHAR2(30);
18742 l_adr_value_combination_id    NUMBER;
18743 l_adr_value_segment_code      VARCHAR2(30);
18744 
18745 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
18746 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
18747 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
18748 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
18749 
18750 -- 4262811 Variables ------------------------------------------------------------------------------------------
18751 l_entered_amt_idx             NUMBER;
18752 l_accted_amt_idx              NUMBER;
18753 l_acc_rev_flag                VARCHAR2(1);
18754 l_accrual_line_num            NUMBER;
18755 l_tmp_amt                     NUMBER;
18756 l_acc_rev_natural_side_code   VARCHAR2(1);
18757 
18758 l_num_entries                 NUMBER;
18759 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
18760 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
18761 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
18762 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
18763 l_recog_line_1                NUMBER;
18764 l_recog_line_2                NUMBER;
18765 
18766 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
18767 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
18768 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
18769 
18770 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18771 
18772 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
18773 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
18774 
18775 ---------------------------------------------------------------------------------------------------------------
18776 
18777 
18778 --
18779 -- bulk performance
18780 --
18781 l_balance_type_code           VARCHAR2(1);
18782 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
18783 l_log_module                  VARCHAR2(240);
18784 
18785 --
18786 -- Upgrade strategy
18787 --
18788 l_actual_upg_option           VARCHAR2(1);
18789 l_enc_upg_option           VARCHAR2(1);
18790 
18791 --
18792 BEGIN
18793 --
18794 IF g_log_enabled THEN
18795       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
18796 END IF;
18797 --
18798 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18799 
18800       trace
18801          (p_msg      => 'BEGIN of AcctLineType_55'
18802          ,p_level    => C_LEVEL_PROCEDURE
18803          ,p_module   => l_log_module);
18804 
18805 END IF;
18806 --
18807 l_component_type             := 'AMB_JLT';
18808 l_component_code             := 'AP_CASH_CLEARONLY_AOS_BS';
18809 l_component_type_code        := 'S';
18810 l_component_appl_id          :=  200;
18811 l_amb_context_code           := 'DEFAULT';
18812 l_entity_code                := 'AP_PAYMENTS';
18813 l_event_class_code           := 'RECONCILED PAYMENTS';
18814 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
18815 l_line_definition_owner_code := 'S';
18816 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
18817 --
18818 l_balance_type_code          := 'A';
18819 l_segment                     := NULL;
18820 l_ccid                        := NULL;
18821 l_adr_transaction_coa_id      := NULL;
18822 l_adr_accounting_coa_id       := NULL;
18823 l_adr_flexfield_segment_code  := NULL;
18824 l_adr_flex_value_set_id       := NULL;
18825 l_adr_value_type_code         := NULL;
18826 l_adr_value_combination_id    := NULL;
18827 l_adr_value_segment_code      := NULL;
18828 
18829 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
18830 l_bflow_class_code           := '';    -- 4219869 Business Flow
18831 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
18832 l_budgetary_control_flag     := 'N';
18833 
18834 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
18835 l_bflow_applied_to_amt       := NULL; -- 5132302
18836 l_entered_amt_idx            := NULL;          -- 4262811
18837 l_accted_amt_idx             := NULL;          -- 4262811
18838 l_acc_rev_flag               := NULL;          -- 4262811
18839 l_accrual_line_num           := NULL;          -- 4262811
18840 l_tmp_amt                    := NULL;          -- 4262811
18841 --
18842  
18843 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18844     l_balance_type_code <> 'B' THEN
18845 IF NVL(p_source_50,'
18846 ') <>  'ISSUE_ISSUE' AND 
18847 (NVL(p_source_117,'
18848 ') =  'Y' AND 
18849 NVL(p_source_16,'
18850 ') =  'BALANCING_SEGMENT') AND 
18851 (NVL(p_source_51,'
18852 ') =  'CASH' OR 
18853 NVL(p_source_51,'
18854 ') =  'BANK CHARGE' OR 
18855 NVL(p_source_51,'
18856 ') =  'BANK ERROR')
18857  THEN 
18858 
18859    --
18860    XLA_AE_LINES_PKG.SetNewLine;
18861 
18862    p_balance_type_code          := l_balance_type_code;
18863    -- set the flag so later we will know whether the gain loss line needs to be created
18864    
18868 
18865    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18866      p_actual_flag :='A';
18867    END IF;
18869    --
18870    -- bulk performance
18871    --
18872    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18873                                       p_header_num   => 0); -- 4262811
18874    --
18875    -- set accounting line options
18876    --
18877    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18878            p_natural_side_code          => 'C'
18879          , p_gain_or_loss_flag          => 'N'
18880          , p_gl_transfer_mode_code      => 'S'
18881          , p_acct_entry_type_code       => 'A'
18882          , p_switch_side_flag           => 'Y'
18883          , p_merge_duplicate_code       => 'A'
18884          );
18885    --
18886    l_acc_rev_natural_side_code := 'D';  -- 4262811
18887    -- 
18888    --
18889    -- set accounting line type info
18890    --
18891    xla_ae_lines_pkg.SetAcctLineType
18892       (p_component_type             => l_component_type
18893       ,p_event_type_code            => l_event_type_code
18894       ,p_line_definition_owner_code => l_line_definition_owner_code
18895       ,p_line_definition_code       => l_line_definition_code
18896       ,p_accounting_line_code       => l_component_code
18897       ,p_accounting_line_type_code  => l_component_type_code
18898       ,p_accounting_line_appl_id    => l_component_appl_id
18899       ,p_amb_context_code           => l_amb_context_code
18900       ,p_entity_code                => l_entity_code
18901       ,p_event_class_code           => l_event_class_code);
18902    --
18903    -- set accounting class
18904    --
18905    xla_ae_lines_pkg.SetAcctClass(
18906            p_accounting_class_code  => 'CASH'
18907          , p_ae_header_id           => l_ae_header_id
18908          );
18909 
18910    --
18911    -- set rounding class
18912    --
18913    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18914                       'CASH';
18915 
18916    --
18917    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18918    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18919    --
18920    -- bulk performance
18921    --
18922    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18923 
18924    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18925       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18926 
18927    -- 4955764
18928    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18929       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18930 
18931    -- 4458381 Public Sector Enh
18932    
18933    --
18934    -- set accounting attributes for the line type
18935    --
18936    l_entered_amt_idx := 10;
18937    l_accted_amt_idx  := 15;
18938    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
18939    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18940    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
18941    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
18942    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
18943    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
18944    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
18945    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18946    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
18947    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
18948    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
18949    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
18950    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
18951    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18952    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
18953    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
18954    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
18955    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
18956    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
18957    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
18958    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
18959    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
18960    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
18961    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
18962    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
18963    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
18964    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
18965    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
18966    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
18967    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
18968    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
18969    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
18970    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
18971    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
18972    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
18973    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
18974    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
18975    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
18979    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
18976    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
18977    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
18978    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
18980    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
18981    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
18982    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
18983    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
18984    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
18985    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
18986    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
18987 
18988    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18989    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18990 
18991    ---------------------------------------------------------------------------------------------------------------
18992    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18993    ---------------------------------------------------------------------------------------------------------------
18994    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18995 
18996    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18997    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18998 
18999    IF xla_accounting_cache_pkg.GetValueChar
19000          (p_source_code         => 'LEDGER_CATEGORY_CODE'
19001          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19002    AND l_bflow_method_code = 'PRIOR_ENTRY'
19003 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19004    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19005          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19006        )
19007    THEN
19008          xla_ae_lines_pkg.BflowUpgEntry
19009            (p_business_method_code    => l_bflow_method_code
19010            ,p_business_class_code     => l_bflow_class_code
19011            ,p_balance_type            => l_balance_type_code);
19012    ELSE
19013       NULL;
19014 XLA_AE_LINES_PKG.business_flow_validation(
19015                                 p_business_method_code     => l_bflow_method_code
19016                                ,p_business_class_code      => l_bflow_class_code
19017                                ,p_inherit_description_flag => l_inherit_desc_flag);
19018    END IF;
19019 
19020    --
19021    -- call analytical criteria
19022    --
19023    
19024    --
19025    -- call description
19026    --
19027    -- No description or it is inherited.
19028    --
19029    -- call ADRs
19030    -- Bug 4922099
19031    --
19032    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19033         (NVL(l_actual_upg_option, 'N') = 'O') OR
19034         (NVL(l_enc_upg_option, 'N') = 'O')
19035       )
19036    THEN
19037    NULL;
19038    --
19039    --
19040    
19041   l_ccid := AcctDerRule_22(
19042            p_application_id           => p_application_id
19043          , p_ae_header_id             => l_ae_header_id 
19044 , p_source_13 => p_source_13
19045          , x_transaction_coa_id       => l_adr_transaction_coa_id
19046          , x_accounting_coa_id        => l_adr_accounting_coa_id
19047          , x_value_type_code          => l_adr_value_type_code
19048          , p_side                     => 'NA'
19049    );
19050 
19051    xla_ae_lines_pkg.set_ccid(
19052     p_code_combination_id          => l_ccid
19053   , p_value_type_code              => l_adr_value_type_code
19054   , p_transaction_coa_id           => l_adr_transaction_coa_id
19055   , p_accounting_coa_id            => l_adr_accounting_coa_id
19056   , p_adr_code                     => 'AP_CASH'
19057   , p_adr_type_code                => 'S'
19058   , p_component_type               => l_component_type
19059   , p_component_code               => l_component_code
19060   , p_component_type_code          => l_component_type_code
19061   , p_component_appl_id            => l_component_appl_id
19062   , p_amb_context_code             => l_amb_context_code
19063   , p_side                         => 'NA'
19064   );
19065 
19066 
19067    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
19068      p_to_segment_code         => 'GL_BALANCING'
19069    , p_segment_value           => C_CHAR
19070    , p_from_segment_code       => NULL
19071    , p_from_combination_id     => NULL
19072    , p_value_type_code         => NULL
19073    , p_transaction_coa_id      => null
19074    , p_accounting_coa_id       => null
19075    , p_flexfield_segment_code  => NULL
19076    , p_flex_value_set_id       => NULL
19077    , p_adr_code                => NULL
19078    , p_adr_type_code           => NULL
19079    , p_component_type          => l_component_type
19080    , p_component_code          => l_component_code
19081    , p_component_type_code     => l_component_type_code
19082    , p_component_appl_id       => l_component_appl_id
19083    , p_amb_context_code        => l_amb_context_code
19084    , p_entity_code             => 'AP_PAYMENTS'
19085    , p_event_class_code        => 'RECONCILED PAYMENTS'
19086    , p_side                    => 'NA'
19087    );
19088    --
19092    --
19089 
19090 
19091    --
19093    END IF;
19094    --
19095    -- Bug 4922099
19096    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19097           (NVL(l_enc_upg_option, 'N') = 'O')
19098         ) AND
19099         (l_bflow_method_code = 'PRIOR_ENTRY')
19100       )
19101    THEN
19102       IF
19103       --
19104       1 = 2
19105       --
19106       THEN
19107       xla_accounting_err_pkg.build_message
19108                                     (p_appli_s_name            => 'XLA'
19109                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19110                                     ,p_token_1                 => 'LINE_NUMBER'
19111                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
19112                                     ,p_token_2                 => 'LINE_TYPE_NAME'
19113                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
19114                                                                              l_component_type
19115                                                                             ,l_component_code
19116                                                                             ,l_component_type_code
19117                                                                             ,l_component_appl_id
19118                                                                             ,l_amb_context_code
19119                                                                             ,l_entity_code
19120                                                                             ,l_event_class_code
19121                                                                            )
19122                                     ,p_token_3                 => 'OWNER'
19123                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
19124                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
19125                                                                           ,p_lookup_code    => l_component_type_code
19126                                                                          )
19127                                     ,p_token_4                 => 'PRODUCT_NAME'
19128                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19129                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19130                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19131                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19132                                     ,p_ae_header_id            =>  NULL
19133                                        );
19134 
19135         IF (C_LEVEL_ERROR>= g_log_level) THEN
19136                  trace
19137                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19138                       ,p_level    => C_LEVEL_ERROR
19139                       ,p_module   => l_log_module);
19140         END IF;
19141       END IF;
19142    END IF;
19143    --
19144    --
19145    ------------------------------------------------------------------------------------------------
19146    -- 4219869 Business Flow
19147    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19148    -- Prior Entry.  Currently, the following code is always generated.
19149    ------------------------------------------------------------------------------------------------
19150    XLA_AE_LINES_PKG.ValidateCurrentLine;
19151 
19152    ------------------------------------------------------------------------------------
19153    -- 4219869 Business Flow
19154    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19155    ------------------------------------------------------------------------------------
19156    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19157 
19158    ----------------------------------------------------------------------------------
19159    -- 4219869 Business Flow
19160    -- Update journal entry status -- Need to generate this within IF <condition>
19161    ----------------------------------------------------------------------------------
19162    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19163          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19164          ,p_balance_type_code => l_balance_type_code
19165          );
19166 
19167    -------------------------------------------------------------------------------------------
19168    -- 4262811 - Generate the Accrual Reversal lines
19169    -------------------------------------------------------------------------------------------
19170    BEGIN
19171       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19172                               (g_array_event(p_event_id).array_value_num('header_index'));
19173       IF l_acc_rev_flag IS NULL THEN
19174          l_acc_rev_flag := 'N';
19175       END IF;
19176    EXCEPTION
19177       WHEN OTHERS THEN
19178          l_acc_rev_flag := 'N';
19179    END;
19180    --
19181    IF (l_acc_rev_flag = 'Y') THEN
19182 
19183        -- 4645092  ------------------------------------------------------------------------------
19184        -- To allow MPA report to determine if it should generate report process
19188        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19185        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19186        ------------------------------------------------------------------------------------------
19187 
19189        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19190    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
19191    -- call ADRs
19192    -- Bug 4922099
19193    --
19194    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19195         (NVL(l_actual_upg_option, 'N') = 'O') OR
19196         (NVL(l_enc_upg_option, 'N') = 'O')
19197       )
19198    THEN
19199    NULL;
19200    --
19201    --
19202    
19203   l_ccid := AcctDerRule_22(
19204            p_application_id           => p_application_id
19205          , p_ae_header_id             => l_ae_header_id 
19206 , p_source_13 => p_source_13
19207          , x_transaction_coa_id       => l_adr_transaction_coa_id
19208          , x_accounting_coa_id        => l_adr_accounting_coa_id
19209          , x_value_type_code          => l_adr_value_type_code
19210          , p_side                     => 'NA'
19211    );
19212 
19213    xla_ae_lines_pkg.set_ccid(
19214     p_code_combination_id          => l_ccid
19215   , p_value_type_code              => l_adr_value_type_code
19216   , p_transaction_coa_id           => l_adr_transaction_coa_id
19217   , p_accounting_coa_id            => l_adr_accounting_coa_id
19218   , p_adr_code                     => 'AP_CASH'
19219   , p_adr_type_code                => 'S'
19220   , p_component_type               => l_component_type
19221   , p_component_code               => l_component_code
19222   , p_component_type_code          => l_component_type_code
19223   , p_component_appl_id            => l_component_appl_id
19224   , p_amb_context_code             => l_amb_context_code
19225   , p_side                         => 'NA'
19226   );
19227 
19228 
19229    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
19230      p_to_segment_code         => 'GL_BALANCING'
19231    , p_segment_value           => C_CHAR
19232    , p_from_segment_code       => NULL
19233    , p_from_combination_id     => NULL
19234    , p_value_type_code         => NULL
19235    , p_transaction_coa_id      => null
19236    , p_accounting_coa_id       => null
19237    , p_flexfield_segment_code  => NULL
19238    , p_flex_value_set_id       => NULL
19239    , p_adr_code                => NULL
19240    , p_adr_type_code           => NULL
19241    , p_component_type          => l_component_type
19242    , p_component_code          => l_component_code
19243    , p_component_type_code     => l_component_type_code
19244    , p_component_appl_id       => l_component_appl_id
19245    , p_amb_context_code        => l_amb_context_code
19246    , p_entity_code             => 'AP_PAYMENTS'
19247    , p_event_class_code        => 'RECONCILED PAYMENTS'
19248    , p_side                    => 'NA'
19249    );
19250    --
19251 
19252 
19253    --
19254    --
19255    END IF;
19256 
19257        --
19258        -- Update the line information that should be overwritten
19259        --
19260        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19261                                          p_header_num   => 1);
19262        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
19263 
19264        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19265 
19266        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
19267           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19268        END IF;
19269 
19270       --
19271       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19272       --
19273       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19274           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
19275       ELSE
19276           ---------------------------------------------------------------------------------------------------
19277           -- 4262811a Switch Sign
19278           ---------------------------------------------------------------------------------------------------
19279           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
19280           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19281                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19282           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19283                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19284           -- 5132302
19285           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19286                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19287 
19288       END IF;
19289 
19290       -- 4955764
19291       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19292       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19293 
19294 
19295       XLA_AE_LINES_PKG.ValidateCurrentLine;
19299                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19296       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19297 
19298       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19300                ,p_balance_type_code => l_balance_type_code);
19301 
19302    END IF;
19303 
19304    -----------------------------------------------------------------------------------------
19305    -- 4262811 Multiperiod Accounting
19306    -----------------------------------------------------------------------------------------
19307      -- No MPA option is assigned.
19308 
19309 
19310 END IF;
19311 END IF;
19312 --
19313 
19314 --
19315 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19316    trace
19317       (p_msg      => 'END of AcctLineType_55'
19318       ,p_level    => C_LEVEL_PROCEDURE
19319       ,p_module   => l_log_module);
19320 END IF;
19321 --
19322 EXCEPTION
19323   WHEN xla_exceptions_pkg.application_exception THEN
19324       RAISE;
19325   WHEN OTHERS THEN
19326        xla_exceptions_pkg.raise_message
19327            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_55');
19328 END AcctLineType_55;
19329 --
19330 
19331 ---------------------------------------
19332 --
19333 -- PRIVATE FUNCTION
19334 --         AcctLineType_56
19335 --
19336 ---------------------------------------
19337 PROCEDURE AcctLineType_56 (
19338   p_application_id        IN NUMBER
19339  ,p_event_id              IN NUMBER
19340  ,p_calculate_acctd_flag  IN VARCHAR2
19341  ,p_calculate_g_l_flag    IN VARCHAR2
19342  ,p_actual_flag           IN OUT VARCHAR2
19343  ,p_balance_type_code     OUT VARCHAR2
19344  ,p_gain_or_loss_ref      OUT VARCHAR2
19345  
19346 --Payment Currency Code
19347  , p_source_12            IN VARCHAR2
19348 --Bank Cash Account
19349  , p_source_13            IN NUMBER
19350 --Payment Distribution (Cleared Rate) Ledger Amount
19351  , p_source_22            IN NUMBER
19352 --Automatic Offsets Flag
19353  , p_source_42            IN VARCHAR2
19354  , p_source_42_meaning    IN VARCHAR2
19355 --When to Account for Payment Option
19356  , p_source_50            IN VARCHAR2
19357 --Payment Distribution Type
19358  , p_source_51            IN VARCHAR2
19359  , p_source_51_meaning    IN VARCHAR2
19360 --Accounting Reversal Indicator
19361  , p_source_52            IN VARCHAR2
19362 --Payment Distribution Amount
19363  , p_source_53            IN NUMBER
19364 --Business Flow Accounts Payable Application Identifier
19365  , p_source_54            IN NUMBER
19366 --Business Flow Payment Distribution Type
19367  , p_source_55            IN VARCHAR2
19368 --Business Flow Payment Entity Code
19369  , p_source_56            IN VARCHAR2
19370 --Business Flow Payment Distribution Identifier
19371  , p_source_57            IN NUMBER
19372 --Business Flow Payment Identifier
19373  , p_source_58            IN NUMBER
19374 --Payment Distribution Identifier
19375  , p_source_59            IN NUMBER
19376 --Distribution Link Type
19377  , p_source_60            IN VARCHAR2
19378 --Override Accounted Amount Indicator
19379  , p_source_64            IN VARCHAR2
19380  , p_source_64_meaning    IN VARCHAR2
19381 --Payment Supplier Identifier
19382  , p_source_65            IN NUMBER
19383 --Payment Supplier Site Identifier
19384  , p_source_66            IN NUMBER
19385 --Third Party Type
19386  , p_source_67            IN VARCHAR2
19387 --Payment Distribution Reversed Identifier
19388  , p_source_68            IN NUMBER
19389 --Invoice Distribution Tax Line Identifier
19390  , p_source_69            IN NUMBER
19391 --Invoice Distribution Summary Tax Line Identifier
19392  , p_source_70            IN NUMBER
19393 --Cleared Exchange Date
19394  , p_source_114            IN DATE
19395 --Cleared Exchange Rate
19396  , p_source_115            IN NUMBER
19397 --Cleared Exchange Rate Type
19398  , p_source_116            IN VARCHAR2
19399 --Pooled Bank Account Option
19400  , p_source_117            IN VARCHAR2
19401  , p_source_117_meaning    IN VARCHAR2
19402 )
19403 IS
19404 
19405 l_component_type              VARCHAR2(80);
19406 l_component_code              VARCHAR2(30);
19407 l_component_type_code         VARCHAR2(1);
19408 l_component_appl_id           INTEGER;
19409 l_amb_context_code            VARCHAR2(30);
19410 l_entity_code                 VARCHAR2(30);
19411 l_event_class_code            VARCHAR2(30);
19412 l_ae_header_id                NUMBER;
19413 l_event_type_code             VARCHAR2(30);
19414 l_line_definition_code        VARCHAR2(30);
19415 l_line_definition_owner_code  VARCHAR2(1);
19416 --
19417 -- adr variables
19418 l_segment                     VARCHAR2(30);
19419 l_ccid                        NUMBER;
19420 l_adr_transaction_coa_id      NUMBER;
19421 l_adr_accounting_coa_id       NUMBER;
19422 l_adr_flexfield_segment_code  VARCHAR2(30);
19423 l_adr_flex_value_set_id       NUMBER;
19424 l_adr_value_type_code         VARCHAR2(30);
19425 l_adr_value_combination_id    NUMBER;
19426 l_adr_value_segment_code      VARCHAR2(30);
19427 
19428 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
19429 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
19430 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
19431 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
19432 
19433 -- 4262811 Variables ------------------------------------------------------------------------------------------
19437 l_accrual_line_num            NUMBER;
19434 l_entered_amt_idx             NUMBER;
19435 l_accted_amt_idx              NUMBER;
19436 l_acc_rev_flag                VARCHAR2(1);
19438 l_tmp_amt                     NUMBER;
19439 l_acc_rev_natural_side_code   VARCHAR2(1);
19440 
19441 l_num_entries                 NUMBER;
19442 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
19443 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
19444 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
19445 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
19446 l_recog_line_1                NUMBER;
19447 l_recog_line_2                NUMBER;
19448 
19449 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
19450 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
19451 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
19452 
19453 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19454 
19455 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
19456 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
19457 
19458 ---------------------------------------------------------------------------------------------------------------
19459 
19460 
19461 --
19462 -- bulk performance
19463 --
19464 l_balance_type_code           VARCHAR2(1);
19465 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
19466 l_log_module                  VARCHAR2(240);
19467 
19468 --
19469 -- Upgrade strategy
19470 --
19471 l_actual_upg_option           VARCHAR2(1);
19472 l_enc_upg_option           VARCHAR2(1);
19473 
19474 --
19475 BEGIN
19476 --
19477 IF g_log_enabled THEN
19478       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
19479 END IF;
19480 --
19481 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19482 
19483       trace
19484          (p_msg      => 'BEGIN of AcctLineType_56'
19485          ,p_level    => C_LEVEL_PROCEDURE
19486          ,p_module   => l_log_module);
19487 
19488 END IF;
19489 --
19490 l_component_type             := 'AMB_JLT';
19491 l_component_code             := 'AP_CASH_CLEARONLY_NP';
19492 l_component_type_code        := 'S';
19493 l_component_appl_id          :=  200;
19494 l_amb_context_code           := 'DEFAULT';
19495 l_entity_code                := 'AP_PAYMENTS';
19496 l_event_class_code           := 'RECONCILED PAYMENTS';
19497 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
19498 l_line_definition_owner_code := 'S';
19499 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
19500 --
19501 l_balance_type_code          := 'A';
19502 l_segment                     := NULL;
19503 l_ccid                        := NULL;
19504 l_adr_transaction_coa_id      := NULL;
19505 l_adr_accounting_coa_id       := NULL;
19506 l_adr_flexfield_segment_code  := NULL;
19507 l_adr_flex_value_set_id       := NULL;
19508 l_adr_value_type_code         := NULL;
19509 l_adr_value_combination_id    := NULL;
19510 l_adr_value_segment_code      := NULL;
19511 
19512 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
19513 l_bflow_class_code           := '';    -- 4219869 Business Flow
19514 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
19515 l_budgetary_control_flag     := 'N';
19516 
19517 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
19518 l_bflow_applied_to_amt       := NULL; -- 5132302
19519 l_entered_amt_idx            := NULL;          -- 4262811
19520 l_accted_amt_idx             := NULL;          -- 4262811
19521 l_acc_rev_flag               := NULL;          -- 4262811
19522 l_accrual_line_num           := NULL;          -- 4262811
19523 l_tmp_amt                    := NULL;          -- 4262811
19524 --
19525  
19526 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19527     l_balance_type_code <> 'B' THEN
19528 IF NVL(p_source_50,'
19529 ') <>  'ISSUE_ISSUE' AND 
19530 (NVL(p_source_42,'
19531 ') <>  'Y' OR 
19532 NVL(p_source_42,'
19533 ') =  'Y' AND 
19534 NVL(p_source_117,'
19535 ') <>  'Y') AND 
19536 (NVL(p_source_51,'
19537 ') =  'CASH' OR 
19538 NVL(p_source_51,'
19539 ') =  'BANK CHARGE' OR 
19540 NVL(p_source_51,'
19541 ') =  'BANK ERROR')
19542  THEN 
19543 
19544    --
19545    XLA_AE_LINES_PKG.SetNewLine;
19546 
19547    p_balance_type_code          := l_balance_type_code;
19548    -- set the flag so later we will know whether the gain loss line needs to be created
19549    
19550    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19551      p_actual_flag :='A';
19552    END IF;
19553 
19554    --
19555    -- bulk performance
19556    --
19557    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19558                                       p_header_num   => 0); -- 4262811
19559    --
19560    -- set accounting line options
19561    --
19562    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19563            p_natural_side_code          => 'C'
19564          , p_gain_or_loss_flag          => 'N'
19565          , p_gl_transfer_mode_code      => 'S'
19566          , p_acct_entry_type_code       => 'A'
19567          , p_switch_side_flag           => 'Y'
19568          , p_merge_duplicate_code       => 'A'
19569          );
19570    --
19574    -- set accounting line type info
19571    l_acc_rev_natural_side_code := 'D';  -- 4262811
19572    -- 
19573    --
19575    --
19576    xla_ae_lines_pkg.SetAcctLineType
19577       (p_component_type             => l_component_type
19578       ,p_event_type_code            => l_event_type_code
19579       ,p_line_definition_owner_code => l_line_definition_owner_code
19580       ,p_line_definition_code       => l_line_definition_code
19581       ,p_accounting_line_code       => l_component_code
19582       ,p_accounting_line_type_code  => l_component_type_code
19583       ,p_accounting_line_appl_id    => l_component_appl_id
19584       ,p_amb_context_code           => l_amb_context_code
19585       ,p_entity_code                => l_entity_code
19586       ,p_event_class_code           => l_event_class_code);
19587    --
19588    -- set accounting class
19589    --
19590    xla_ae_lines_pkg.SetAcctClass(
19591            p_accounting_class_code  => 'CASH'
19592          , p_ae_header_id           => l_ae_header_id
19593          );
19594 
19595    --
19596    -- set rounding class
19597    --
19598    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19599                       'CASH';
19600 
19601    --
19602    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19603    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19604    --
19605    -- bulk performance
19606    --
19607    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19608 
19609    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19610       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19611 
19612    -- 4955764
19613    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19614       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19615 
19616    -- 4458381 Public Sector Enh
19617    
19618    --
19619    -- set accounting attributes for the line type
19620    --
19621    l_entered_amt_idx := 10;
19622    l_accted_amt_idx  := 15;
19623    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
19624    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19625    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
19626    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
19627    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
19628    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
19629    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
19630    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19631    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
19632    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
19633    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
19634    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
19635    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
19636    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19637    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
19638    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
19639    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
19640    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
19641    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
19642    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
19643    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
19644    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
19645    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
19646    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
19647    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
19648    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
19649    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
19650    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
19651    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
19652    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
19653    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
19654    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
19655    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
19656    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
19657    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
19658    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
19659    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
19660    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
19661    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
19662    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
19663    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
19664    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
19665    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
19666    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
19667    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
19668    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
19669    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
19670    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
19671    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
19672 
19673    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19677    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19674    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19675 
19676    ---------------------------------------------------------------------------------------------------------------
19678    ---------------------------------------------------------------------------------------------------------------
19679    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19680 
19681    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19682    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19683 
19684    IF xla_accounting_cache_pkg.GetValueChar
19685          (p_source_code         => 'LEDGER_CATEGORY_CODE'
19686          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19687    AND l_bflow_method_code = 'PRIOR_ENTRY'
19688 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19689    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19690          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19691        )
19692    THEN
19693          xla_ae_lines_pkg.BflowUpgEntry
19694            (p_business_method_code    => l_bflow_method_code
19695            ,p_business_class_code     => l_bflow_class_code
19696            ,p_balance_type            => l_balance_type_code);
19697    ELSE
19698       NULL;
19699 -- No business flow processing for business flow method of NONE.
19700    END IF;
19701 
19702    --
19703    -- call analytical criteria
19704    --
19705    
19706    --
19707    -- call description
19708    --
19709    -- No description or it is inherited.
19710    --
19711    -- call ADRs
19712    -- Bug 4922099
19713    --
19714    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19715         (NVL(l_actual_upg_option, 'N') = 'O') OR
19716         (NVL(l_enc_upg_option, 'N') = 'O')
19717       )
19718    THEN
19719    NULL;
19720    --
19721    --
19722    
19723   l_ccid := AcctDerRule_22(
19724            p_application_id           => p_application_id
19725          , p_ae_header_id             => l_ae_header_id 
19726 , p_source_13 => p_source_13
19727          , x_transaction_coa_id       => l_adr_transaction_coa_id
19728          , x_accounting_coa_id        => l_adr_accounting_coa_id
19729          , x_value_type_code          => l_adr_value_type_code
19730          , p_side                     => 'NA'
19731    );
19732 
19733    xla_ae_lines_pkg.set_ccid(
19734     p_code_combination_id          => l_ccid
19735   , p_value_type_code              => l_adr_value_type_code
19736   , p_transaction_coa_id           => l_adr_transaction_coa_id
19737   , p_accounting_coa_id            => l_adr_accounting_coa_id
19738   , p_adr_code                     => 'AP_CASH'
19739   , p_adr_type_code                => 'S'
19740   , p_component_type               => l_component_type
19741   , p_component_code               => l_component_code
19742   , p_component_type_code          => l_component_type_code
19743   , p_component_appl_id            => l_component_appl_id
19744   , p_amb_context_code             => l_amb_context_code
19745   , p_side                         => 'NA'
19746   );
19747 
19748 
19749    --
19750    --
19751    END IF;
19752    --
19753    -- Bug 4922099
19754    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19755           (NVL(l_enc_upg_option, 'N') = 'O')
19756         ) AND
19757         (l_bflow_method_code = 'PRIOR_ENTRY')
19758       )
19759    THEN
19760       IF
19761       --
19762       1 = 2
19763       --
19764       THEN
19765       xla_accounting_err_pkg.build_message
19766                                     (p_appli_s_name            => 'XLA'
19767                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19768                                     ,p_token_1                 => 'LINE_NUMBER'
19769                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
19770                                     ,p_token_2                 => 'LINE_TYPE_NAME'
19771                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
19772                                                                              l_component_type
19773                                                                             ,l_component_code
19774                                                                             ,l_component_type_code
19775                                                                             ,l_component_appl_id
19776                                                                             ,l_amb_context_code
19777                                                                             ,l_entity_code
19778                                                                             ,l_event_class_code
19779                                                                            )
19780                                     ,p_token_3                 => 'OWNER'
19781                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
19782                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
19786                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19783                                                                           ,p_lookup_code    => l_component_type_code
19784                                                                          )
19785                                     ,p_token_4                 => 'PRODUCT_NAME'
19787                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19788                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19789                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19790                                     ,p_ae_header_id            =>  NULL
19791                                        );
19792 
19793         IF (C_LEVEL_ERROR>= g_log_level) THEN
19794                  trace
19795                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19796                       ,p_level    => C_LEVEL_ERROR
19797                       ,p_module   => l_log_module);
19798         END IF;
19799       END IF;
19800    END IF;
19801    --
19802    --
19803    ------------------------------------------------------------------------------------------------
19804    -- 4219869 Business Flow
19805    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19806    -- Prior Entry.  Currently, the following code is always generated.
19807    ------------------------------------------------------------------------------------------------
19808    XLA_AE_LINES_PKG.ValidateCurrentLine;
19809 
19810    ------------------------------------------------------------------------------------
19811    -- 4219869 Business Flow
19812    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19813    ------------------------------------------------------------------------------------
19814    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19815 
19816    ----------------------------------------------------------------------------------
19817    -- 4219869 Business Flow
19818    -- Update journal entry status -- Need to generate this within IF <condition>
19819    ----------------------------------------------------------------------------------
19820    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19821          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19822          ,p_balance_type_code => l_balance_type_code
19823          );
19824 
19825    -------------------------------------------------------------------------------------------
19826    -- 4262811 - Generate the Accrual Reversal lines
19827    -------------------------------------------------------------------------------------------
19828    BEGIN
19829       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19830                               (g_array_event(p_event_id).array_value_num('header_index'));
19831       IF l_acc_rev_flag IS NULL THEN
19832          l_acc_rev_flag := 'N';
19833       END IF;
19834    EXCEPTION
19835       WHEN OTHERS THEN
19836          l_acc_rev_flag := 'N';
19837    END;
19838    --
19839    IF (l_acc_rev_flag = 'Y') THEN
19840 
19841        -- 4645092  ------------------------------------------------------------------------------
19842        -- To allow MPA report to determine if it should generate report process
19843        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19844        ------------------------------------------------------------------------------------------
19845 
19846        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19847        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19848    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
19849    -- call ADRs
19850    -- Bug 4922099
19851    --
19852    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19853         (NVL(l_actual_upg_option, 'N') = 'O') OR
19854         (NVL(l_enc_upg_option, 'N') = 'O')
19855       )
19856    THEN
19857    NULL;
19858    --
19859    --
19860    
19861   l_ccid := AcctDerRule_22(
19862            p_application_id           => p_application_id
19863          , p_ae_header_id             => l_ae_header_id 
19864 , p_source_13 => p_source_13
19865          , x_transaction_coa_id       => l_adr_transaction_coa_id
19866          , x_accounting_coa_id        => l_adr_accounting_coa_id
19867          , x_value_type_code          => l_adr_value_type_code
19868          , p_side                     => 'NA'
19869    );
19870 
19871    xla_ae_lines_pkg.set_ccid(
19872     p_code_combination_id          => l_ccid
19873   , p_value_type_code              => l_adr_value_type_code
19874   , p_transaction_coa_id           => l_adr_transaction_coa_id
19875   , p_accounting_coa_id            => l_adr_accounting_coa_id
19876   , p_adr_code                     => 'AP_CASH'
19877   , p_adr_type_code                => 'S'
19878   , p_component_type               => l_component_type
19879   , p_component_code               => l_component_code
19880   , p_component_type_code          => l_component_type_code
19881   , p_component_appl_id            => l_component_appl_id
19882   , p_amb_context_code             => l_amb_context_code
19883   , p_side                         => 'NA'
19884   );
19885 
19886 
19887    --
19888    --
19889    END IF;
19890 
19891        --
19895                                          p_header_num   => 1);
19892        -- Update the line information that should be overwritten
19893        --
19894        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19896        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
19897 
19898        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19899 
19900        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
19901           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19902        END IF;
19903 
19904       --
19905       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19906       --
19907       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19908           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
19909       ELSE
19910           ---------------------------------------------------------------------------------------------------
19911           -- 4262811a Switch Sign
19912           ---------------------------------------------------------------------------------------------------
19913           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
19914           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19915                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19916           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19917                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19918           -- 5132302
19919           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19920                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19921 
19922       END IF;
19923 
19924       -- 4955764
19925       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19926       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19927 
19928 
19929       XLA_AE_LINES_PKG.ValidateCurrentLine;
19930       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19931 
19932       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19933                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19934                ,p_balance_type_code => l_balance_type_code);
19935 
19936    END IF;
19937 
19938    -----------------------------------------------------------------------------------------
19939    -- 4262811 Multiperiod Accounting
19940    -----------------------------------------------------------------------------------------
19941      -- No MPA option is assigned.
19942 
19943 
19944 END IF;
19945 END IF;
19946 --
19947 
19948 --
19949 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19950    trace
19951       (p_msg      => 'END of AcctLineType_56'
19952       ,p_level    => C_LEVEL_PROCEDURE
19953       ,p_module   => l_log_module);
19954 END IF;
19955 --
19956 EXCEPTION
19957   WHEN xla_exceptions_pkg.application_exception THEN
19958       RAISE;
19959   WHEN OTHERS THEN
19960        xla_exceptions_pkg.raise_message
19961            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_56');
19962 END AcctLineType_56;
19963 --
19964 
19965 ---------------------------------------
19966 --
19967 -- PRIVATE FUNCTION
19968 --         AcctLineType_57
19969 --
19970 ---------------------------------------
19971 PROCEDURE AcctLineType_57 (
19972   p_application_id        IN NUMBER
19973  ,p_event_id              IN NUMBER
19974  ,p_calculate_acctd_flag  IN VARCHAR2
19975  ,p_calculate_g_l_flag    IN VARCHAR2
19976  ,p_actual_flag           IN OUT VARCHAR2
19977  ,p_balance_type_code     OUT VARCHAR2
19978  ,p_gain_or_loss_ref      OUT VARCHAR2
19979  
19980 --Payment Currency Code
19981  , p_source_12            IN VARCHAR2
19982 --Payment Distribution (Payment Rate) Ledger Amount
19983  , p_source_21            IN NUMBER
19984 --When to Account for Payment Option
19985  , p_source_50            IN VARCHAR2
19986 --Payment Distribution Type
19987  , p_source_51            IN VARCHAR2
19988  , p_source_51_meaning    IN VARCHAR2
19989 --Accounting Reversal Indicator
19990  , p_source_52            IN VARCHAR2
19991 --Payment Distribution Amount
19992  , p_source_53            IN NUMBER
19993 --Business Flow Accounts Payable Application Identifier
19994  , p_source_54            IN NUMBER
19995 --Business Flow Payment Distribution Type
19996  , p_source_55            IN VARCHAR2
19997 --Business Flow Payment Entity Code
19998  , p_source_56            IN VARCHAR2
19999 --Business Flow Payment Distribution Identifier
20000  , p_source_57            IN NUMBER
20001 --Business Flow Payment Identifier
20002  , p_source_58            IN NUMBER
20003 --Payment Distribution Identifier
20004  , p_source_59            IN NUMBER
20005 --Distribution Link Type
20006  , p_source_60            IN VARCHAR2
20007 --Override Accounted Amount Indicator
20008  , p_source_64            IN VARCHAR2
20009  , p_source_64_meaning    IN VARCHAR2
20010 --Third Party Type
20014 --Invoice Distribution Tax Line Identifier
20011  , p_source_67            IN VARCHAR2
20012 --Payment Distribution Reversed Identifier
20013  , p_source_68            IN NUMBER
20015  , p_source_69            IN NUMBER
20016 --Invoice Distribution Summary Tax Line Identifier
20017  , p_source_70            IN NUMBER
20018 --Payment Maturity Date
20019  , p_source_118            IN DATE
20020 )
20021 IS
20022 
20023 l_component_type              VARCHAR2(80);
20024 l_component_code              VARCHAR2(30);
20025 l_component_type_code         VARCHAR2(1);
20026 l_component_appl_id           INTEGER;
20027 l_amb_context_code            VARCHAR2(30);
20028 l_entity_code                 VARCHAR2(30);
20029 l_event_class_code            VARCHAR2(30);
20030 l_ae_header_id                NUMBER;
20031 l_event_type_code             VARCHAR2(30);
20032 l_line_definition_code        VARCHAR2(30);
20033 l_line_definition_owner_code  VARCHAR2(1);
20034 --
20035 -- adr variables
20036 l_segment                     VARCHAR2(30);
20037 l_ccid                        NUMBER;
20038 l_adr_transaction_coa_id      NUMBER;
20039 l_adr_accounting_coa_id       NUMBER;
20040 l_adr_flexfield_segment_code  VARCHAR2(30);
20041 l_adr_flex_value_set_id       NUMBER;
20042 l_adr_value_type_code         VARCHAR2(30);
20043 l_adr_value_combination_id    NUMBER;
20044 l_adr_value_segment_code      VARCHAR2(30);
20045 
20046 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
20047 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
20048 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
20049 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
20050 
20051 -- 4262811 Variables ------------------------------------------------------------------------------------------
20052 l_entered_amt_idx             NUMBER;
20053 l_accted_amt_idx              NUMBER;
20054 l_acc_rev_flag                VARCHAR2(1);
20055 l_accrual_line_num            NUMBER;
20056 l_tmp_amt                     NUMBER;
20057 l_acc_rev_natural_side_code   VARCHAR2(1);
20058 
20059 l_num_entries                 NUMBER;
20060 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
20061 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
20062 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
20063 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
20064 l_recog_line_1                NUMBER;
20065 l_recog_line_2                NUMBER;
20066 
20067 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
20068 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
20069 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
20070 
20071 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20072 
20073 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
20074 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
20075 
20076 ---------------------------------------------------------------------------------------------------------------
20077 
20078 
20079 --
20080 -- bulk performance
20081 --
20082 l_balance_type_code           VARCHAR2(1);
20083 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
20084 l_log_module                  VARCHAR2(240);
20085 
20086 --
20087 -- Upgrade strategy
20088 --
20089 l_actual_upg_option           VARCHAR2(1);
20090 l_enc_upg_option           VARCHAR2(1);
20091 
20092 --
20093 BEGIN
20094 --
20095 IF g_log_enabled THEN
20096       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
20097 END IF;
20098 --
20099 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20100 
20101       trace
20102          (p_msg      => 'BEGIN of AcctLineType_57'
20103          ,p_level    => C_LEVEL_PROCEDURE
20104          ,p_module   => l_log_module);
20105 
20106 END IF;
20107 --
20108 l_component_type             := 'AMB_JLT';
20109 l_component_code             := 'AP_CASH_CLEAR_CLEAR';
20110 l_component_type_code        := 'S';
20111 l_component_appl_id          :=  200;
20112 l_amb_context_code           := 'DEFAULT';
20113 l_entity_code                := 'AP_PAYMENTS';
20114 l_event_class_code           := 'RECONCILED PAYMENTS';
20115 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
20116 l_line_definition_owner_code := 'S';
20117 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
20118 --
20119 l_balance_type_code          := 'A';
20120 l_segment                     := NULL;
20121 l_ccid                        := NULL;
20122 l_adr_transaction_coa_id      := NULL;
20123 l_adr_accounting_coa_id       := NULL;
20124 l_adr_flexfield_segment_code  := NULL;
20125 l_adr_flex_value_set_id       := NULL;
20126 l_adr_value_type_code         := NULL;
20127 l_adr_value_combination_id    := NULL;
20128 l_adr_value_segment_code      := NULL;
20129 
20130 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
20131 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
20132 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
20133 l_budgetary_control_flag     := 'N';
20134 
20135 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
20136 l_bflow_applied_to_amt       := NULL; -- 5132302
20137 l_entered_amt_idx            := NULL;          -- 4262811
20138 l_accted_amt_idx             := NULL;          -- 4262811
20142 --
20139 l_acc_rev_flag               := NULL;          -- 4262811
20140 l_accrual_line_num           := NULL;          -- 4262811
20141 l_tmp_amt                    := NULL;          -- 4262811
20143  
20144 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20145     l_balance_type_code <> 'B' THEN
20146 IF (NVL(p_source_50,'
20147 ') =  'ALWAYS_ALWAYS' OR 
20148 NVL(p_source_50,'
20149 ') =  'ALWAYS_ISSUE') AND 
20150 NVL(p_source_51,'
20151 ') =  'CASH' AND 
20152 p_source_118 IS NULL 
20153  THEN 
20154 
20155    --
20156    XLA_AE_LINES_PKG.SetNewLine;
20157 
20158    p_balance_type_code          := l_balance_type_code;
20159    -- set the flag so later we will know whether the gain loss line needs to be created
20160    
20161    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20162      p_actual_flag :='A';
20163    END IF;
20164 
20165    --
20166    -- bulk performance
20167    --
20168    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20169                                       p_header_num   => 0); -- 4262811
20170    --
20171    -- set accounting line options
20172    --
20173    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20174            p_natural_side_code          => 'D'
20175          , p_gain_or_loss_flag          => 'N'
20176          , p_gl_transfer_mode_code      => 'S'
20177          , p_acct_entry_type_code       => 'A'
20178          , p_switch_side_flag           => 'Y'
20179          , p_merge_duplicate_code       => 'A'
20180          );
20181    --
20182    l_acc_rev_natural_side_code := 'C';  -- 4262811
20183    -- 
20184    --
20185    -- set accounting line type info
20186    --
20187    xla_ae_lines_pkg.SetAcctLineType
20188       (p_component_type             => l_component_type
20189       ,p_event_type_code            => l_event_type_code
20190       ,p_line_definition_owner_code => l_line_definition_owner_code
20191       ,p_line_definition_code       => l_line_definition_code
20192       ,p_accounting_line_code       => l_component_code
20193       ,p_accounting_line_type_code  => l_component_type_code
20194       ,p_accounting_line_appl_id    => l_component_appl_id
20195       ,p_amb_context_code           => l_amb_context_code
20196       ,p_entity_code                => l_entity_code
20197       ,p_event_class_code           => l_event_class_code);
20198    --
20199    -- set accounting class
20200    --
20201    xla_ae_lines_pkg.SetAcctClass(
20202            p_accounting_class_code  => 'CASH_CLEARING'
20203          , p_ae_header_id           => l_ae_header_id
20204          );
20205 
20206    --
20207    -- set rounding class
20208    --
20209    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20210                       'CASH_CLEARING';
20211 
20212    --
20213    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20214    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20215    --
20216    -- bulk performance
20217    --
20218    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20219 
20220    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20221       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20222 
20223    -- 4955764
20224    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20225       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20226 
20227    -- 4458381 Public Sector Enh
20228    
20229    --
20230    -- set accounting attributes for the line type
20231    --
20232    l_entered_amt_idx := 10;
20233    l_accted_amt_idx  := 12;
20234    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
20235    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20236    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
20237    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
20238    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
20239    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
20240    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
20241    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20242    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
20243    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
20244    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
20245    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
20246    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
20247    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20248    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
20249    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20250    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
20251    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20252    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
20253    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20254    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
20255    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20256    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
20257    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
20261    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
20258    l_rec_acct_attrs.array_num_value(12)  := p_source_21;
20259    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
20260    l_rec_acct_attrs.array_char_value(13)  := p_source_64;
20262    l_rec_acct_attrs.array_char_value(14)  := p_source_67;
20263    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
20264    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_68);
20265    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
20266    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
20267    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
20268    l_rec_acct_attrs.array_num_value(17)  := p_source_69;
20269    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
20270    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
20271    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
20272    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
20273 
20274    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20275    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20276 
20277    ---------------------------------------------------------------------------------------------------------------
20278    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20279    ---------------------------------------------------------------------------------------------------------------
20280    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20281 
20282    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20283    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20284 
20285    IF xla_accounting_cache_pkg.GetValueChar
20286          (p_source_code         => 'LEDGER_CATEGORY_CODE'
20287          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20288    AND l_bflow_method_code = 'PRIOR_ENTRY'
20289 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20290    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20291          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20292        )
20293    THEN
20294          xla_ae_lines_pkg.BflowUpgEntry
20295            (p_business_method_code    => l_bflow_method_code
20296            ,p_business_class_code     => l_bflow_class_code
20297            ,p_balance_type            => l_balance_type_code);
20298    ELSE
20299       NULL;
20300 XLA_AE_LINES_PKG.business_flow_validation(
20301                                 p_business_method_code     => l_bflow_method_code
20302                                ,p_business_class_code      => l_bflow_class_code
20303                                ,p_inherit_description_flag => l_inherit_desc_flag);
20304    END IF;
20305 
20306    --
20307    -- call analytical criteria
20308    --
20309    -- Inherited Analytical Criteria for business flow method of Prior Entry.
20310    --
20311    -- call description
20312    --
20313    -- No description or it is inherited.
20314    --
20315    -- call ADRs
20316    -- Bug 4922099
20317    --
20318    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20319         (NVL(l_actual_upg_option, 'N') = 'O') OR
20320         (NVL(l_enc_upg_option, 'N') = 'O')
20321       )
20322    THEN
20323    NULL;
20324    --
20325    --
20326    
20327    --
20328    --
20329    END IF;
20330    --
20331    -- Bug 4922099
20332    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20333           (NVL(l_enc_upg_option, 'N') = 'O')
20334         ) AND
20335         (l_bflow_method_code = 'PRIOR_ENTRY')
20336       )
20337    THEN
20338       IF
20339       --
20340       1 = 1
20341       --
20342       THEN
20343       xla_accounting_err_pkg.build_message
20344                                     (p_appli_s_name            => 'XLA'
20345                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20346                                     ,p_token_1                 => 'LINE_NUMBER'
20347                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
20348                                     ,p_token_2                 => 'LINE_TYPE_NAME'
20349                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
20350                                                                              l_component_type
20351                                                                             ,l_component_code
20352                                                                             ,l_component_type_code
20353                                                                             ,l_component_appl_id
20354                                                                             ,l_amb_context_code
20355                                                                             ,l_entity_code
20356                                                                             ,l_event_class_code
20357                                                                            )
20358                                     ,p_token_3                 => 'OWNER'
20359                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
20360                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
20364                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20361                                                                           ,p_lookup_code    => l_component_type_code
20362                                                                          )
20363                                     ,p_token_4                 => 'PRODUCT_NAME'
20365                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20366                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20367                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20368                                     ,p_ae_header_id            =>  NULL
20369                                        );
20370 
20371         IF (C_LEVEL_ERROR>= g_log_level) THEN
20372                  trace
20373                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20374                       ,p_level    => C_LEVEL_ERROR
20375                       ,p_module   => l_log_module);
20376         END IF;
20377       END IF;
20378    END IF;
20379    --
20380    --
20381    ------------------------------------------------------------------------------------------------
20382    -- 4219869 Business Flow
20383    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20384    -- Prior Entry.  Currently, the following code is always generated.
20385    ------------------------------------------------------------------------------------------------
20386    -- No ValidateCurrentLine for business flow method of Prior Entry
20387 
20388    ------------------------------------------------------------------------------------
20389    -- 4219869 Business Flow
20390    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20391    ------------------------------------------------------------------------------------
20392    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20393 
20394    ----------------------------------------------------------------------------------
20395    -- 4219869 Business Flow
20396    -- Update journal entry status -- Need to generate this within IF <condition>
20397    ----------------------------------------------------------------------------------
20398    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20399          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20400          ,p_balance_type_code => l_balance_type_code
20401          );
20402 
20403    -------------------------------------------------------------------------------------------
20404    -- 4262811 - Generate the Accrual Reversal lines
20405    -------------------------------------------------------------------------------------------
20406    BEGIN
20407       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20408                               (g_array_event(p_event_id).array_value_num('header_index'));
20409       IF l_acc_rev_flag IS NULL THEN
20410          l_acc_rev_flag := 'N';
20411       END IF;
20412    EXCEPTION
20413       WHEN OTHERS THEN
20414          l_acc_rev_flag := 'N';
20415    END;
20416    --
20417    IF (l_acc_rev_flag = 'Y') THEN
20418 
20419        -- 4645092  ------------------------------------------------------------------------------
20420        -- To allow MPA report to determine if it should generate report process
20421        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20422        ------------------------------------------------------------------------------------------
20423 
20424        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20425        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20426    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
20427    -- call ADRs
20428    -- Bug 4922099
20429    --
20430    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20431         (NVL(l_actual_upg_option, 'N') = 'O') OR
20432         (NVL(l_enc_upg_option, 'N') = 'O')
20433       )
20434    THEN
20435    NULL;
20436    --
20437    --
20438    
20439    --
20440    --
20441    END IF;
20442 
20443        --
20444        -- Update the line information that should be overwritten
20445        --
20446        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20447                                          p_header_num   => 1);
20448        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
20449 
20450        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20451 
20452        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
20453           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20454        END IF;
20455 
20456       --
20457       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20458       --
20459       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20460           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
20461       ELSE
20462           ---------------------------------------------------------------------------------------------------
20463           -- 4262811a Switch Sign
20464           ---------------------------------------------------------------------------------------------------
20468           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20465           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
20466           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20467                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20469                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20470           -- 5132302
20471           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20472                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20473 
20474       END IF;
20475 
20476       -- 4955764
20477       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20478       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20479 
20480 
20481       XLA_AE_LINES_PKG.ValidateCurrentLine;
20482       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20483 
20484       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20485                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20486                ,p_balance_type_code => l_balance_type_code);
20487 
20488    END IF;
20489 
20490    -----------------------------------------------------------------------------------------
20491    -- 4262811 Multiperiod Accounting
20492    -----------------------------------------------------------------------------------------
20493      -- No MPA option is assigned.
20494 
20495 
20496 END IF;
20497 END IF;
20498 --
20499 
20500 --
20501 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20502    trace
20503       (p_msg      => 'END of AcctLineType_57'
20504       ,p_level    => C_LEVEL_PROCEDURE
20505       ,p_module   => l_log_module);
20506 END IF;
20507 --
20508 EXCEPTION
20509   WHEN xla_exceptions_pkg.application_exception THEN
20510       RAISE;
20511   WHEN OTHERS THEN
20512        xla_exceptions_pkg.raise_message
20513            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_57');
20514 END AcctLineType_57;
20515 --
20516 
20517 ---------------------------------------
20518 --
20519 -- PRIVATE FUNCTION
20520 --         AcctLineType_58
20521 --
20522 ---------------------------------------
20523 PROCEDURE AcctLineType_58 (
20524   p_application_id        IN NUMBER
20525  ,p_event_id              IN NUMBER
20526  ,p_calculate_acctd_flag  IN VARCHAR2
20527  ,p_calculate_g_l_flag    IN VARCHAR2
20528  ,p_actual_flag           IN OUT VARCHAR2
20529  ,p_balance_type_code     OUT VARCHAR2
20530  ,p_gain_or_loss_ref      OUT VARCHAR2
20531  
20532 --Payment Currency Code
20533  , p_source_12            IN VARCHAR2
20534 --When to Account for Payment Option
20535  , p_source_50            IN VARCHAR2
20536 --Payment Distribution Type
20537  , p_source_51            IN VARCHAR2
20538  , p_source_51_meaning    IN VARCHAR2
20539 --Accounting Reversal Indicator
20540  , p_source_52            IN VARCHAR2
20541 --Payment Distribution Amount
20542  , p_source_53            IN NUMBER
20543 --Business Flow Accounts Payable Application Identifier
20544  , p_source_54            IN NUMBER
20545 --Business Flow Payment Distribution Type
20546  , p_source_55            IN VARCHAR2
20547 --Business Flow Payment Entity Code
20548  , p_source_56            IN VARCHAR2
20549 --Business Flow Payment Distribution Identifier
20550  , p_source_57            IN NUMBER
20551 --Business Flow Payment Identifier
20552  , p_source_58            IN NUMBER
20553 --Payment Distribution Identifier
20554  , p_source_59            IN NUMBER
20555 --Distribution Link Type
20556  , p_source_60            IN VARCHAR2
20557 --Override Accounted Amount Indicator
20558  , p_source_64            IN VARCHAR2
20559  , p_source_64_meaning    IN VARCHAR2
20560 --Third Party Type
20561  , p_source_67            IN VARCHAR2
20562 --Payment Distribution Reversed Identifier
20563  , p_source_68            IN NUMBER
20564 --Invoice Distribution Tax Line Identifier
20565  , p_source_69            IN NUMBER
20566 --Invoice Distribution Summary Tax Line Identifier
20567  , p_source_70            IN NUMBER
20568 --Payment Maturity Date
20569  , p_source_118            IN DATE
20570 --Payment Distribution (Invoice Rate) Ledger Amount
20571  , p_source_119            IN NUMBER
20572 )
20573 IS
20574 
20575 l_component_type              VARCHAR2(80);
20576 l_component_code              VARCHAR2(30);
20577 l_component_type_code         VARCHAR2(1);
20578 l_component_appl_id           INTEGER;
20579 l_amb_context_code            VARCHAR2(30);
20580 l_entity_code                 VARCHAR2(30);
20581 l_event_class_code            VARCHAR2(30);
20582 l_ae_header_id                NUMBER;
20583 l_event_type_code             VARCHAR2(30);
20584 l_line_definition_code        VARCHAR2(30);
20585 l_line_definition_owner_code  VARCHAR2(1);
20586 --
20587 -- adr variables
20588 l_segment                     VARCHAR2(30);
20589 l_ccid                        NUMBER;
20590 l_adr_transaction_coa_id      NUMBER;
20591 l_adr_accounting_coa_id       NUMBER;
20592 l_adr_flexfield_segment_code  VARCHAR2(30);
20593 l_adr_flex_value_set_id       NUMBER;
20597 
20594 l_adr_value_type_code         VARCHAR2(30);
20595 l_adr_value_combination_id    NUMBER;
20596 l_adr_value_segment_code      VARCHAR2(30);
20598 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
20599 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
20600 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
20601 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
20602 
20603 -- 4262811 Variables ------------------------------------------------------------------------------------------
20604 l_entered_amt_idx             NUMBER;
20605 l_accted_amt_idx              NUMBER;
20606 l_acc_rev_flag                VARCHAR2(1);
20607 l_accrual_line_num            NUMBER;
20608 l_tmp_amt                     NUMBER;
20609 l_acc_rev_natural_side_code   VARCHAR2(1);
20610 
20611 l_num_entries                 NUMBER;
20612 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
20613 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
20614 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
20615 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
20616 l_recog_line_1                NUMBER;
20617 l_recog_line_2                NUMBER;
20618 
20619 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
20620 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
20621 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
20622 
20623 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20624 
20625 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
20626 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
20627 
20628 ---------------------------------------------------------------------------------------------------------------
20629 
20630 
20631 --
20632 -- bulk performance
20633 --
20634 l_balance_type_code           VARCHAR2(1);
20635 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
20636 l_log_module                  VARCHAR2(240);
20637 
20638 --
20639 -- Upgrade strategy
20640 --
20641 l_actual_upg_option           VARCHAR2(1);
20642 l_enc_upg_option           VARCHAR2(1);
20643 
20644 --
20645 BEGIN
20646 --
20647 IF g_log_enabled THEN
20648       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
20649 END IF;
20650 --
20651 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20652 
20653       trace
20654          (p_msg      => 'BEGIN of AcctLineType_58'
20655          ,p_level    => C_LEVEL_PROCEDURE
20656          ,p_module   => l_log_module);
20657 
20658 END IF;
20659 --
20660 l_component_type             := 'AMB_JLT';
20661 l_component_code             := 'AP_CASH_CLEAR_CLEAR_INVXRATE';
20662 l_component_type_code        := 'S';
20663 l_component_appl_id          :=  200;
20664 l_amb_context_code           := 'DEFAULT';
20665 l_entity_code                := 'AP_PAYMENTS';
20666 l_event_class_code           := 'RECONCILED PAYMENTS';
20667 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
20668 l_line_definition_owner_code := 'S';
20669 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
20670 --
20671 l_balance_type_code          := 'A';
20672 l_segment                     := NULL;
20673 l_ccid                        := NULL;
20674 l_adr_transaction_coa_id      := NULL;
20675 l_adr_accounting_coa_id       := NULL;
20676 l_adr_flexfield_segment_code  := NULL;
20677 l_adr_flex_value_set_id       := NULL;
20678 l_adr_value_type_code         := NULL;
20679 l_adr_value_combination_id    := NULL;
20680 l_adr_value_segment_code      := NULL;
20681 
20682 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
20683 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
20684 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
20685 l_budgetary_control_flag     := 'N';
20686 
20687 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
20688 l_bflow_applied_to_amt       := NULL; -- 5132302
20689 l_entered_amt_idx            := NULL;          -- 4262811
20690 l_accted_amt_idx             := NULL;          -- 4262811
20691 l_acc_rev_flag               := NULL;          -- 4262811
20692 l_accrual_line_num           := NULL;          -- 4262811
20693 l_tmp_amt                    := NULL;          -- 4262811
20694 --
20695  
20696 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20697     l_balance_type_code <> 'B' THEN
20698 IF NVL(p_source_50,'
20699 ') =  'ALWAYS_CLEAR' AND 
20700 NVL(p_source_51,'
20701 ') =  'CASH' AND 
20702 p_source_118 IS NULL 
20703  THEN 
20704 
20705    --
20706    XLA_AE_LINES_PKG.SetNewLine;
20707 
20708    p_balance_type_code          := l_balance_type_code;
20709    -- set the flag so later we will know whether the gain loss line needs to be created
20710    
20711    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20712      p_actual_flag :='A';
20713    END IF;
20714 
20715    --
20716    -- bulk performance
20717    --
20718    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20719                                       p_header_num   => 0); -- 4262811
20720    --
20721    -- set accounting line options
20722    --
20726          , p_gl_transfer_mode_code      => 'S'
20723    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20724            p_natural_side_code          => 'D'
20725          , p_gain_or_loss_flag          => 'N'
20727          , p_acct_entry_type_code       => 'A'
20728          , p_switch_side_flag           => 'Y'
20729          , p_merge_duplicate_code       => 'A'
20730          );
20731    --
20732    l_acc_rev_natural_side_code := 'C';  -- 4262811
20733    -- 
20734    --
20735    -- set accounting line type info
20736    --
20737    xla_ae_lines_pkg.SetAcctLineType
20738       (p_component_type             => l_component_type
20739       ,p_event_type_code            => l_event_type_code
20740       ,p_line_definition_owner_code => l_line_definition_owner_code
20741       ,p_line_definition_code       => l_line_definition_code
20742       ,p_accounting_line_code       => l_component_code
20743       ,p_accounting_line_type_code  => l_component_type_code
20744       ,p_accounting_line_appl_id    => l_component_appl_id
20745       ,p_amb_context_code           => l_amb_context_code
20746       ,p_entity_code                => l_entity_code
20747       ,p_event_class_code           => l_event_class_code);
20748    --
20749    -- set accounting class
20750    --
20751    xla_ae_lines_pkg.SetAcctClass(
20752            p_accounting_class_code  => 'CASH_CLEARING'
20753          , p_ae_header_id           => l_ae_header_id
20754          );
20755 
20756    --
20757    -- set rounding class
20758    --
20759    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20760                       'CASH_CLEARING';
20761 
20762    --
20763    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20764    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20765    --
20766    -- bulk performance
20767    --
20768    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20769 
20770    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20771       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20772 
20773    -- 4955764
20774    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20775       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20776 
20777    -- 4458381 Public Sector Enh
20778    
20779    --
20780    -- set accounting attributes for the line type
20781    --
20782    l_entered_amt_idx := 10;
20783    l_accted_amt_idx  := 12;
20784    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
20785    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20786    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
20787    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
20788    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
20789    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
20790    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
20791    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20792    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
20793    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
20794    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
20795    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
20796    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
20797    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20798    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
20799    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20800    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
20801    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20802    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
20803    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20804    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
20805    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20806    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
20807    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
20808    l_rec_acct_attrs.array_num_value(12)  := p_source_119;
20809    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
20810    l_rec_acct_attrs.array_char_value(13)  := p_source_64;
20811    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
20812    l_rec_acct_attrs.array_char_value(14)  := p_source_67;
20813    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
20814    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_68);
20815    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
20816    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
20817    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
20818    l_rec_acct_attrs.array_num_value(17)  := p_source_69;
20819    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
20820    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
20821    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
20822    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
20823 
20824    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20828    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20825    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20826 
20827    ---------------------------------------------------------------------------------------------------------------
20829    ---------------------------------------------------------------------------------------------------------------
20830    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20831 
20832    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20833    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20834 
20835    IF xla_accounting_cache_pkg.GetValueChar
20836          (p_source_code         => 'LEDGER_CATEGORY_CODE'
20837          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20838    AND l_bflow_method_code = 'PRIOR_ENTRY'
20839 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20840    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20841          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20842        )
20843    THEN
20844          xla_ae_lines_pkg.BflowUpgEntry
20845            (p_business_method_code    => l_bflow_method_code
20846            ,p_business_class_code     => l_bflow_class_code
20847            ,p_balance_type            => l_balance_type_code);
20848    ELSE
20849       NULL;
20850 XLA_AE_LINES_PKG.business_flow_validation(
20851                                 p_business_method_code     => l_bflow_method_code
20852                                ,p_business_class_code      => l_bflow_class_code
20853                                ,p_inherit_description_flag => l_inherit_desc_flag);
20854    END IF;
20855 
20856    --
20857    -- call analytical criteria
20858    --
20859    -- Inherited Analytical Criteria for business flow method of Prior Entry.
20860    --
20861    -- call description
20862    --
20863    -- No description or it is inherited.
20864    --
20865    -- call ADRs
20866    -- Bug 4922099
20867    --
20868    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20869         (NVL(l_actual_upg_option, 'N') = 'O') OR
20870         (NVL(l_enc_upg_option, 'N') = 'O')
20871       )
20872    THEN
20873    NULL;
20874    --
20875    --
20876    
20877    --
20878    --
20879    END IF;
20880    --
20881    -- Bug 4922099
20882    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20883           (NVL(l_enc_upg_option, 'N') = 'O')
20884         ) AND
20885         (l_bflow_method_code = 'PRIOR_ENTRY')
20886       )
20887    THEN
20888       IF
20889       --
20890       1 = 1
20891       --
20892       THEN
20893       xla_accounting_err_pkg.build_message
20894                                     (p_appli_s_name            => 'XLA'
20895                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20896                                     ,p_token_1                 => 'LINE_NUMBER'
20897                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
20898                                     ,p_token_2                 => 'LINE_TYPE_NAME'
20899                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
20900                                                                              l_component_type
20901                                                                             ,l_component_code
20902                                                                             ,l_component_type_code
20903                                                                             ,l_component_appl_id
20904                                                                             ,l_amb_context_code
20905                                                                             ,l_entity_code
20906                                                                             ,l_event_class_code
20907                                                                            )
20908                                     ,p_token_3                 => 'OWNER'
20909                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
20910                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
20911                                                                           ,p_lookup_code    => l_component_type_code
20912                                                                          )
20913                                     ,p_token_4                 => 'PRODUCT_NAME'
20914                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20915                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20916                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20917                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20918                                     ,p_ae_header_id            =>  NULL
20919                                        );
20920 
20921         IF (C_LEVEL_ERROR>= g_log_level) THEN
20922                  trace
20923                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20924                       ,p_level    => C_LEVEL_ERROR
20925                       ,p_module   => l_log_module);
20926         END IF;
20927       END IF;
20931    ------------------------------------------------------------------------------------------------
20928    END IF;
20929    --
20930    --
20932    -- 4219869 Business Flow
20933    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20934    -- Prior Entry.  Currently, the following code is always generated.
20935    ------------------------------------------------------------------------------------------------
20936    -- No ValidateCurrentLine for business flow method of Prior Entry
20937 
20938    ------------------------------------------------------------------------------------
20939    -- 4219869 Business Flow
20940    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20941    ------------------------------------------------------------------------------------
20942    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20943 
20944    ----------------------------------------------------------------------------------
20945    -- 4219869 Business Flow
20946    -- Update journal entry status -- Need to generate this within IF <condition>
20947    ----------------------------------------------------------------------------------
20948    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20949          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20950          ,p_balance_type_code => l_balance_type_code
20951          );
20952 
20953    -------------------------------------------------------------------------------------------
20954    -- 4262811 - Generate the Accrual Reversal lines
20955    -------------------------------------------------------------------------------------------
20956    BEGIN
20957       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20958                               (g_array_event(p_event_id).array_value_num('header_index'));
20959       IF l_acc_rev_flag IS NULL THEN
20960          l_acc_rev_flag := 'N';
20961       END IF;
20962    EXCEPTION
20963       WHEN OTHERS THEN
20964          l_acc_rev_flag := 'N';
20965    END;
20966    --
20967    IF (l_acc_rev_flag = 'Y') THEN
20968 
20969        -- 4645092  ------------------------------------------------------------------------------
20970        -- To allow MPA report to determine if it should generate report process
20971        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20972        ------------------------------------------------------------------------------------------
20973 
20974        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20975        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20976    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
20977    -- call ADRs
20978    -- Bug 4922099
20979    --
20980    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20981         (NVL(l_actual_upg_option, 'N') = 'O') OR
20982         (NVL(l_enc_upg_option, 'N') = 'O')
20983       )
20984    THEN
20985    NULL;
20986    --
20987    --
20988    
20989    --
20990    --
20991    END IF;
20992 
20993        --
20994        -- Update the line information that should be overwritten
20995        --
20996        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20997                                          p_header_num   => 1);
20998        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
20999 
21000        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21001 
21002        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
21003           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21004        END IF;
21005 
21006       --
21007       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21008       --
21009       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21010           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
21011       ELSE
21012           ---------------------------------------------------------------------------------------------------
21013           -- 4262811a Switch Sign
21014           ---------------------------------------------------------------------------------------------------
21015           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
21016           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21017                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21018           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21019                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21020           -- 5132302
21021           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21022                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21023 
21024       END IF;
21025 
21026       -- 4955764
21027       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21028       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21029 
21030 
21031       XLA_AE_LINES_PKG.ValidateCurrentLine;
21032       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21033 
21034       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21038    END IF;
21035                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21036                ,p_balance_type_code => l_balance_type_code);
21037 
21039 
21040    -----------------------------------------------------------------------------------------
21041    -- 4262811 Multiperiod Accounting
21042    -----------------------------------------------------------------------------------------
21043      -- No MPA option is assigned.
21044 
21045 
21046 END IF;
21047 END IF;
21048 --
21049 
21050 --
21051 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21052    trace
21053       (p_msg      => 'END of AcctLineType_58'
21054       ,p_level    => C_LEVEL_PROCEDURE
21055       ,p_module   => l_log_module);
21056 END IF;
21057 --
21058 EXCEPTION
21059   WHEN xla_exceptions_pkg.application_exception THEN
21060       RAISE;
21061   WHEN OTHERS THEN
21062        xla_exceptions_pkg.raise_message
21063            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_58');
21064 END AcctLineType_58;
21065 --
21066 
21067 ---------------------------------------
21068 --
21069 -- PRIVATE FUNCTION
21070 --         AcctLineType_59
21071 --
21072 ---------------------------------------
21073 PROCEDURE AcctLineType_59 (
21074   p_application_id        IN NUMBER
21075  ,p_event_id              IN NUMBER
21076  ,p_calculate_acctd_flag  IN VARCHAR2
21077  ,p_calculate_g_l_flag    IN VARCHAR2
21078  ,p_actual_flag           IN OUT VARCHAR2
21079  ,p_balance_type_code     OUT VARCHAR2
21080  ,p_gain_or_loss_ref      OUT VARCHAR2
21081  
21082 --Payment Currency Code
21083  , p_source_12            IN VARCHAR2
21084 --Payment Distribution (Payment Rate) Ledger Amount
21085  , p_source_21            IN NUMBER
21086 --Bank Cash Clearing Account
21087  , p_source_33            IN NUMBER
21088 --Automatic Offsets Flag
21089  , p_source_42            IN VARCHAR2
21090  , p_source_42_meaning    IN VARCHAR2
21091 --When to Account for Payment Option
21092  , p_source_50            IN VARCHAR2
21093 --Payment Distribution Type
21094  , p_source_51            IN VARCHAR2
21095  , p_source_51_meaning    IN VARCHAR2
21096 --Accounting Reversal Indicator
21097  , p_source_52            IN VARCHAR2
21098 --Payment Distribution Amount
21099  , p_source_53            IN NUMBER
21100 --Business Flow Accounts Payable Application Identifier
21101  , p_source_54            IN NUMBER
21102 --Payment Distribution Identifier
21103  , p_source_59            IN NUMBER
21104 --Distribution Link Type
21105  , p_source_60            IN VARCHAR2
21106 --Override Accounted Amount Indicator
21107  , p_source_64            IN VARCHAR2
21108  , p_source_64_meaning    IN VARCHAR2
21109 --Payment Supplier Identifier
21110  , p_source_65            IN NUMBER
21111 --Payment Supplier Site Identifier
21112  , p_source_66            IN NUMBER
21113 --Third Party Type
21114  , p_source_67            IN VARCHAR2
21115 --Payment Distribution Reversed Identifier
21116  , p_source_68            IN NUMBER
21117 --Invoice Distribution Tax Line Identifier
21118  , p_source_69            IN NUMBER
21119 --Invoice Distribution Summary Tax Line Identifier
21120  , p_source_70            IN NUMBER
21121 --Payment Type
21122  , p_source_71            IN VARCHAR2
21123  , p_source_71_meaning    IN VARCHAR2
21124 --Invoice Distribution Amount of the Payment Distribution
21125  , p_source_72            IN NUMBER
21126 --Business Flow Invoice Distribution Type
21127  , p_source_73            IN VARCHAR2
21128 --Business Flow Invoice Entity Code
21129  , p_source_74            IN VARCHAR2
21130 --Business Flow Invoice Distribution Identifier
21131  , p_source_75            IN NUMBER
21132 --Business Flow Invoice Identifier
21133  , p_source_76            IN NUMBER
21134 --Invoice Distribution Tax Distribution Identifier from Tax
21135  , p_source_77            IN NUMBER
21136 --Pooled Bank Account Option
21137  , p_source_117            IN VARCHAR2
21138  , p_source_117_meaning    IN VARCHAR2
21139 --Payment Maturity Date
21140  , p_source_118            IN DATE
21141 --Payment Processing Type
21142  , p_source_120            IN VARCHAR2
21143 --Payment Exchange Date
21144  , p_source_121            IN DATE
21145 --Payment Exchange Rate
21146  , p_source_122            IN NUMBER
21147 --Payment Exchange Rate Type
21148  , p_source_123            IN VARCHAR2
21149 )
21150 IS
21151 
21152 l_component_type              VARCHAR2(80);
21153 l_component_code              VARCHAR2(30);
21154 l_component_type_code         VARCHAR2(1);
21155 l_component_appl_id           INTEGER;
21156 l_amb_context_code            VARCHAR2(30);
21157 l_entity_code                 VARCHAR2(30);
21158 l_event_class_code            VARCHAR2(30);
21159 l_ae_header_id                NUMBER;
21160 l_event_type_code             VARCHAR2(30);
21161 l_line_definition_code        VARCHAR2(30);
21162 l_line_definition_owner_code  VARCHAR2(1);
21163 --
21164 -- adr variables
21165 l_segment                     VARCHAR2(30);
21166 l_ccid                        NUMBER;
21167 l_adr_transaction_coa_id      NUMBER;
21168 l_adr_accounting_coa_id       NUMBER;
21169 l_adr_flexfield_segment_code  VARCHAR2(30);
21170 l_adr_flex_value_set_id       NUMBER;
21171 l_adr_value_type_code         VARCHAR2(30);
21172 l_adr_value_combination_id    NUMBER;
21173 l_adr_value_segment_code      VARCHAR2(30);
21177 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
21174 
21175 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
21176 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
21178 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
21179 
21180 -- 4262811 Variables ------------------------------------------------------------------------------------------
21181 l_entered_amt_idx             NUMBER;
21182 l_accted_amt_idx              NUMBER;
21183 l_acc_rev_flag                VARCHAR2(1);
21184 l_accrual_line_num            NUMBER;
21185 l_tmp_amt                     NUMBER;
21186 l_acc_rev_natural_side_code   VARCHAR2(1);
21187 
21188 l_num_entries                 NUMBER;
21189 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
21190 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
21191 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
21192 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
21193 l_recog_line_1                NUMBER;
21194 l_recog_line_2                NUMBER;
21195 
21196 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
21197 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
21198 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
21199 
21200 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21201 
21202 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
21203 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
21204 
21205 ---------------------------------------------------------------------------------------------------------------
21206 
21207 
21208 --
21209 -- bulk performance
21210 --
21211 l_balance_type_code           VARCHAR2(1);
21212 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
21213 l_log_module                  VARCHAR2(240);
21214 
21215 --
21216 -- Upgrade strategy
21217 --
21218 l_actual_upg_option           VARCHAR2(1);
21219 l_enc_upg_option           VARCHAR2(1);
21220 
21221 --
21222 BEGIN
21223 --
21224 IF g_log_enabled THEN
21225       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
21226 END IF;
21227 --
21228 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21229 
21230       trace
21231          (p_msg      => 'BEGIN of AcctLineType_59'
21232          ,p_level    => C_LEVEL_PROCEDURE
21233          ,p_module   => l_log_module);
21234 
21235 END IF;
21236 --
21237 l_component_type             := 'AMB_JLT';
21238 l_component_code             := 'AP_CASH_CLEAR_PMT';
21239 l_component_type_code        := 'S';
21240 l_component_appl_id          :=  200;
21241 l_amb_context_code           := 'DEFAULT';
21242 l_entity_code                := 'AP_PAYMENTS';
21243 l_event_class_code           := 'PAYMENTS';
21244 l_event_type_code            := 'PAYMENTS_ALL';
21245 l_line_definition_owner_code := 'S';
21246 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
21247 --
21248 l_balance_type_code          := 'A';
21249 l_segment                     := NULL;
21250 l_ccid                        := NULL;
21251 l_adr_transaction_coa_id      := NULL;
21252 l_adr_accounting_coa_id       := NULL;
21253 l_adr_flexfield_segment_code  := NULL;
21254 l_adr_flex_value_set_id       := NULL;
21255 l_adr_value_type_code         := NULL;
21256 l_adr_value_combination_id    := NULL;
21257 l_adr_value_segment_code      := NULL;
21258 
21259 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
21260 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
21261 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
21262 l_budgetary_control_flag     := 'N';
21263 
21264 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
21265 l_bflow_applied_to_amt       := NULL; -- 5132302
21266 l_entered_amt_idx            := NULL;          -- 4262811
21267 l_accted_amt_idx             := NULL;          -- 4262811
21268 l_acc_rev_flag               := NULL;          -- 4262811
21269 l_accrual_line_num           := NULL;          -- 4262811
21270 l_tmp_amt                    := NULL;          -- 4262811
21271 --
21272  
21273 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21274     l_balance_type_code <> 'B' THEN
21275 IF NVL(p_source_50,'
21276 ') =  'ALWAYS_ALWAYS' AND 
21277 (NVL(p_source_42,'
21278 ') <>  'Y' OR 
21279 NVL(p_source_42,'
21280 ') =  'Y' AND 
21281 NVL(p_source_117,'
21282 ') <>  'Y') AND 
21283 p_source_118 IS NULL AND 
21284 NVL(p_source_51,'
21285 ') =  'CASH' AND 
21286 NVL(p_source_71,'
21287 ') <>  'R' AND 
21288 NVL(p_source_120,'
21289 ') <>  'PAYMENTCARD'
21290  THEN 
21291 
21292    --
21293    XLA_AE_LINES_PKG.SetNewLine;
21294 
21295    p_balance_type_code          := l_balance_type_code;
21296    -- set the flag so later we will know whether the gain loss line needs to be created
21297    
21298    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21299      p_actual_flag :='A';
21300    END IF;
21301 
21302    --
21303    -- bulk performance
21304    --
21305    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21306                                       p_header_num   => 0); -- 4262811
21307    --
21308    -- set accounting line options
21309    --
21310    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21314          , p_acct_entry_type_code       => 'A'
21311            p_natural_side_code          => 'C'
21312          , p_gain_or_loss_flag          => 'N'
21313          , p_gl_transfer_mode_code      => 'S'
21315          , p_switch_side_flag           => 'Y'
21316          , p_merge_duplicate_code       => 'A'
21317          );
21318    --
21319    l_acc_rev_natural_side_code := 'D';  -- 4262811
21320    -- 
21321    --
21322    -- set accounting line type info
21323    --
21324    xla_ae_lines_pkg.SetAcctLineType
21325       (p_component_type             => l_component_type
21326       ,p_event_type_code            => l_event_type_code
21327       ,p_line_definition_owner_code => l_line_definition_owner_code
21328       ,p_line_definition_code       => l_line_definition_code
21329       ,p_accounting_line_code       => l_component_code
21330       ,p_accounting_line_type_code  => l_component_type_code
21331       ,p_accounting_line_appl_id    => l_component_appl_id
21332       ,p_amb_context_code           => l_amb_context_code
21333       ,p_entity_code                => l_entity_code
21334       ,p_event_class_code           => l_event_class_code);
21335    --
21336    -- set accounting class
21337    --
21338    xla_ae_lines_pkg.SetAcctClass(
21339            p_accounting_class_code  => 'CASH_CLEARING'
21340          , p_ae_header_id           => l_ae_header_id
21341          );
21342 
21343    --
21344    -- set rounding class
21345    --
21346    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21347                       'CASH_CLEARING';
21348 
21349    --
21350    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21351    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21352    --
21353    -- bulk performance
21354    --
21355    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21356 
21357    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21358       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21359 
21360    -- 4955764
21361    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21362       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21363 
21364    -- 4458381 Public Sector Enh
21365    
21366    --
21367    -- set accounting attributes for the line type
21368    --
21369    l_entered_amt_idx := 10;
21370    l_accted_amt_idx  := 15;
21371    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
21372    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21373    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
21374    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
21375    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
21376    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
21377    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
21378    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21379    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
21380    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
21381    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
21382    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
21383    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
21384    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21385    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
21386    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
21387    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
21388    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
21389    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
21390    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
21391    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
21392    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
21393    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
21394    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
21395    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
21396    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
21397    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
21398    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
21399    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
21400    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
21401    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
21402    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
21403    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
21404    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
21405    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
21406    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
21407    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
21408    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
21409    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
21410    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
21411    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
21412    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
21413    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
21417    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
21414    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
21415    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
21416    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
21418    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
21419    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
21420 
21421    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21422    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21423 
21424    ---------------------------------------------------------------------------------------------------------------
21425    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21426    ---------------------------------------------------------------------------------------------------------------
21427    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21428 
21429    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21430    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21431 
21432    IF xla_accounting_cache_pkg.GetValueChar
21433          (p_source_code         => 'LEDGER_CATEGORY_CODE'
21434          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21435    AND l_bflow_method_code = 'PRIOR_ENTRY'
21436 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21437    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21438          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21439        )
21440    THEN
21441          xla_ae_lines_pkg.BflowUpgEntry
21442            (p_business_method_code    => l_bflow_method_code
21443            ,p_business_class_code     => l_bflow_class_code
21444            ,p_balance_type            => l_balance_type_code);
21445    ELSE
21446       NULL;
21447 -- No business flow processing for business flow method of NONE.
21448    END IF;
21449 
21450    --
21451    -- call analytical criteria
21452    --
21453    
21454    --
21455    -- call description
21456    --
21457    -- No description or it is inherited.
21458    --
21459    -- call ADRs
21460    -- Bug 4922099
21461    --
21462    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21463         (NVL(l_actual_upg_option, 'N') = 'O') OR
21464         (NVL(l_enc_upg_option, 'N') = 'O')
21465       )
21466    THEN
21467    NULL;
21468    --
21469    --
21470    
21471   l_ccid := AcctDerRule_30(
21472            p_application_id           => p_application_id
21473          , p_ae_header_id             => l_ae_header_id 
21474 , p_source_33 => p_source_33
21475          , x_transaction_coa_id       => l_adr_transaction_coa_id
21476          , x_accounting_coa_id        => l_adr_accounting_coa_id
21477          , x_value_type_code          => l_adr_value_type_code
21478          , p_side                     => 'NA'
21479    );
21480 
21481    xla_ae_lines_pkg.set_ccid(
21482     p_code_combination_id          => l_ccid
21483   , p_value_type_code              => l_adr_value_type_code
21484   , p_transaction_coa_id           => l_adr_transaction_coa_id
21485   , p_accounting_coa_id            => l_adr_accounting_coa_id
21486   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
21487   , p_adr_type_code                => 'S'
21488   , p_component_type               => l_component_type
21489   , p_component_code               => l_component_code
21490   , p_component_type_code          => l_component_type_code
21491   , p_component_appl_id            => l_component_appl_id
21492   , p_amb_context_code             => l_amb_context_code
21493   , p_side                         => 'NA'
21494   );
21495 
21496 
21497    --
21498    --
21499    END IF;
21500    --
21501    -- Bug 4922099
21502    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21503           (NVL(l_enc_upg_option, 'N') = 'O')
21504         ) AND
21505         (l_bflow_method_code = 'PRIOR_ENTRY')
21506       )
21507    THEN
21508       IF
21509       --
21510       1 = 2
21511       --
21512       THEN
21513       xla_accounting_err_pkg.build_message
21514                                     (p_appli_s_name            => 'XLA'
21515                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21516                                     ,p_token_1                 => 'LINE_NUMBER'
21517                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
21518                                     ,p_token_2                 => 'LINE_TYPE_NAME'
21519                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
21520                                                                              l_component_type
21521                                                                             ,l_component_code
21522                                                                             ,l_component_type_code
21523                                                                             ,l_component_appl_id
21524                                                                             ,l_amb_context_code
21525                                                                             ,l_entity_code
21529                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
21526                                                                             ,l_event_class_code
21527                                                                            )
21528                                     ,p_token_3                 => 'OWNER'
21530                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
21531                                                                           ,p_lookup_code    => l_component_type_code
21532                                                                          )
21533                                     ,p_token_4                 => 'PRODUCT_NAME'
21534                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21535                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21536                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21537                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21538                                     ,p_ae_header_id            =>  NULL
21539                                        );
21540 
21541         IF (C_LEVEL_ERROR>= g_log_level) THEN
21542                  trace
21543                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21544                       ,p_level    => C_LEVEL_ERROR
21545                       ,p_module   => l_log_module);
21546         END IF;
21547       END IF;
21548    END IF;
21549    --
21550    --
21551    ------------------------------------------------------------------------------------------------
21552    -- 4219869 Business Flow
21553    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21554    -- Prior Entry.  Currently, the following code is always generated.
21555    ------------------------------------------------------------------------------------------------
21556    XLA_AE_LINES_PKG.ValidateCurrentLine;
21557 
21558    ------------------------------------------------------------------------------------
21559    -- 4219869 Business Flow
21560    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21561    ------------------------------------------------------------------------------------
21562    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21563 
21564    ----------------------------------------------------------------------------------
21565    -- 4219869 Business Flow
21566    -- Update journal entry status -- Need to generate this within IF <condition>
21567    ----------------------------------------------------------------------------------
21568    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21569          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21570          ,p_balance_type_code => l_balance_type_code
21571          );
21572 
21573    -------------------------------------------------------------------------------------------
21574    -- 4262811 - Generate the Accrual Reversal lines
21575    -------------------------------------------------------------------------------------------
21576    BEGIN
21577       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21578                               (g_array_event(p_event_id).array_value_num('header_index'));
21579       IF l_acc_rev_flag IS NULL THEN
21580          l_acc_rev_flag := 'N';
21581       END IF;
21582    EXCEPTION
21583       WHEN OTHERS THEN
21584          l_acc_rev_flag := 'N';
21585    END;
21586    --
21587    IF (l_acc_rev_flag = 'Y') THEN
21588 
21589        -- 4645092  ------------------------------------------------------------------------------
21590        -- To allow MPA report to determine if it should generate report process
21591        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21592        ------------------------------------------------------------------------------------------
21593 
21594        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21595        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21596    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
21597    -- call ADRs
21598    -- Bug 4922099
21599    --
21600    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21601         (NVL(l_actual_upg_option, 'N') = 'O') OR
21602         (NVL(l_enc_upg_option, 'N') = 'O')
21603       )
21604    THEN
21605    NULL;
21606    --
21607    --
21608    
21609   l_ccid := AcctDerRule_30(
21610            p_application_id           => p_application_id
21611          , p_ae_header_id             => l_ae_header_id 
21612 , p_source_33 => p_source_33
21613          , x_transaction_coa_id       => l_adr_transaction_coa_id
21614          , x_accounting_coa_id        => l_adr_accounting_coa_id
21615          , x_value_type_code          => l_adr_value_type_code
21616          , p_side                     => 'NA'
21617    );
21618 
21619    xla_ae_lines_pkg.set_ccid(
21620     p_code_combination_id          => l_ccid
21621   , p_value_type_code              => l_adr_value_type_code
21622   , p_transaction_coa_id           => l_adr_transaction_coa_id
21623   , p_accounting_coa_id            => l_adr_accounting_coa_id
21624   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
21625   , p_adr_type_code                => 'S'
21629   , p_component_appl_id            => l_component_appl_id
21626   , p_component_type               => l_component_type
21627   , p_component_code               => l_component_code
21628   , p_component_type_code          => l_component_type_code
21630   , p_amb_context_code             => l_amb_context_code
21631   , p_side                         => 'NA'
21632   );
21633 
21634 
21635    --
21636    --
21637    END IF;
21638 
21639        --
21640        -- Update the line information that should be overwritten
21641        --
21642        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21643                                          p_header_num   => 1);
21644        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
21645 
21646        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21647 
21648        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
21649           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21650        END IF;
21651 
21652       --
21653       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21654       --
21655       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21656           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
21657       ELSE
21658           ---------------------------------------------------------------------------------------------------
21659           -- 4262811a Switch Sign
21660           ---------------------------------------------------------------------------------------------------
21661           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
21662           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21663                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21664           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21665                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21666           -- 5132302
21667           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21668                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21669 
21670       END IF;
21671 
21672       -- 4955764
21673       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21674       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21675 
21676 
21677       XLA_AE_LINES_PKG.ValidateCurrentLine;
21678       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21679 
21680       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21681                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21682                ,p_balance_type_code => l_balance_type_code);
21683 
21684    END IF;
21685 
21686    -----------------------------------------------------------------------------------------
21687    -- 4262811 Multiperiod Accounting
21688    -----------------------------------------------------------------------------------------
21689      -- No MPA option is assigned.
21690 
21691 
21692 END IF;
21693 END IF;
21694 --
21695 
21696 --
21697 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21698    trace
21699       (p_msg      => 'END of AcctLineType_59'
21700       ,p_level    => C_LEVEL_PROCEDURE
21701       ,p_module   => l_log_module);
21702 END IF;
21703 --
21704 EXCEPTION
21705   WHEN xla_exceptions_pkg.application_exception THEN
21706       RAISE;
21707   WHEN OTHERS THEN
21708        xla_exceptions_pkg.raise_message
21709            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_59');
21710 END AcctLineType_59;
21711 --
21712 
21713 ---------------------------------------
21714 --
21715 -- PRIVATE FUNCTION
21716 --         AcctLineType_60
21717 --
21718 ---------------------------------------
21719 PROCEDURE AcctLineType_60 (
21720   p_application_id        IN NUMBER
21721  ,p_event_id              IN NUMBER
21722  ,p_calculate_acctd_flag  IN VARCHAR2
21723  ,p_calculate_g_l_flag    IN VARCHAR2
21724  ,p_actual_flag           IN OUT VARCHAR2
21725  ,p_balance_type_code     OUT VARCHAR2
21726  ,p_gain_or_loss_ref      OUT VARCHAR2
21727  
21728 --Payment Currency Code
21729  , p_source_12            IN VARCHAR2
21730 --Automatic Offsets Value
21731  , p_source_16            IN VARCHAR2
21732  , p_source_16_meaning    IN VARCHAR2
21733 --Payment Distribution (Payment Rate) Ledger Amount
21734  , p_source_21            IN NUMBER
21735 --Bank Cash Clearing Account
21736  , p_source_33            IN NUMBER
21737 --When to Account for Payment Option
21738  , p_source_50            IN VARCHAR2
21739 --Payment Distribution Type
21740  , p_source_51            IN VARCHAR2
21741  , p_source_51_meaning    IN VARCHAR2
21742 --Accounting Reversal Indicator
21743  , p_source_52            IN VARCHAR2
21744 --Payment Distribution Amount
21745  , p_source_53            IN NUMBER
21746 --Business Flow Accounts Payable Application Identifier
21747  , p_source_54            IN NUMBER
21748 --Payment Distribution Identifier
21749  , p_source_59            IN NUMBER
21750 --Distribution Link Type
21751  , p_source_60            IN VARCHAR2
21755 --Payment Supplier Identifier
21752 --Override Accounted Amount Indicator
21753  , p_source_64            IN VARCHAR2
21754  , p_source_64_meaning    IN VARCHAR2
21756  , p_source_65            IN NUMBER
21757 --Payment Supplier Site Identifier
21758  , p_source_66            IN NUMBER
21759 --Third Party Type
21760  , p_source_67            IN VARCHAR2
21761 --Payment Distribution Reversed Identifier
21762  , p_source_68            IN NUMBER
21763 --Invoice Distribution Tax Line Identifier
21764  , p_source_69            IN NUMBER
21765 --Invoice Distribution Summary Tax Line Identifier
21766  , p_source_70            IN NUMBER
21767 --Payment Type
21768  , p_source_71            IN VARCHAR2
21769  , p_source_71_meaning    IN VARCHAR2
21770 --Invoice Distribution Amount of the Payment Distribution
21771  , p_source_72            IN NUMBER
21772 --Business Flow Invoice Distribution Type
21773  , p_source_73            IN VARCHAR2
21774 --Business Flow Invoice Entity Code
21775  , p_source_74            IN VARCHAR2
21776 --Business Flow Invoice Distribution Identifier
21777  , p_source_75            IN NUMBER
21778 --Business Flow Invoice Identifier
21779  , p_source_76            IN NUMBER
21780 --Invoice Distribution Tax Distribution Identifier from Tax
21781  , p_source_77            IN NUMBER
21782 --Pooled Bank Account Option
21783  , p_source_117            IN VARCHAR2
21784  , p_source_117_meaning    IN VARCHAR2
21785 --Payment Maturity Date
21786  , p_source_118            IN DATE
21787 --Payment Processing Type
21788  , p_source_120            IN VARCHAR2
21789 --Payment Exchange Date
21790  , p_source_121            IN DATE
21791 --Payment Exchange Rate
21792  , p_source_122            IN NUMBER
21793 --Payment Exchange Rate Type
21794  , p_source_123            IN VARCHAR2
21795 )
21796 IS
21797 
21798 l_component_type              VARCHAR2(80);
21799 l_component_code              VARCHAR2(30);
21800 l_component_type_code         VARCHAR2(1);
21801 l_component_appl_id           INTEGER;
21802 l_amb_context_code            VARCHAR2(30);
21803 l_entity_code                 VARCHAR2(30);
21804 l_event_class_code            VARCHAR2(30);
21805 l_ae_header_id                NUMBER;
21806 l_event_type_code             VARCHAR2(30);
21807 l_line_definition_code        VARCHAR2(30);
21808 l_line_definition_owner_code  VARCHAR2(1);
21809 --
21810 -- adr variables
21811 l_segment                     VARCHAR2(30);
21812 l_ccid                        NUMBER;
21813 l_adr_transaction_coa_id      NUMBER;
21814 l_adr_accounting_coa_id       NUMBER;
21815 l_adr_flexfield_segment_code  VARCHAR2(30);
21816 l_adr_flex_value_set_id       NUMBER;
21817 l_adr_value_type_code         VARCHAR2(30);
21818 l_adr_value_combination_id    NUMBER;
21819 l_adr_value_segment_code      VARCHAR2(30);
21820 
21821 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
21822 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
21823 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
21824 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
21825 
21826 -- 4262811 Variables ------------------------------------------------------------------------------------------
21827 l_entered_amt_idx             NUMBER;
21828 l_accted_amt_idx              NUMBER;
21829 l_acc_rev_flag                VARCHAR2(1);
21830 l_accrual_line_num            NUMBER;
21831 l_tmp_amt                     NUMBER;
21832 l_acc_rev_natural_side_code   VARCHAR2(1);
21833 
21834 l_num_entries                 NUMBER;
21835 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
21836 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
21837 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
21838 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
21839 l_recog_line_1                NUMBER;
21840 l_recog_line_2                NUMBER;
21841 
21842 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
21843 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
21844 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
21845 
21846 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21847 
21848 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
21849 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
21850 
21851 ---------------------------------------------------------------------------------------------------------------
21852 
21853 
21854 --
21855 -- bulk performance
21856 --
21857 l_balance_type_code           VARCHAR2(1);
21858 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
21859 l_log_module                  VARCHAR2(240);
21860 
21861 --
21862 -- Upgrade strategy
21863 --
21864 l_actual_upg_option           VARCHAR2(1);
21865 l_enc_upg_option           VARCHAR2(1);
21866 
21867 --
21868 BEGIN
21869 --
21870 IF g_log_enabled THEN
21871       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
21872 END IF;
21873 --
21874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21875 
21876       trace
21877          (p_msg      => 'BEGIN of AcctLineType_60'
21878          ,p_level    => C_LEVEL_PROCEDURE
21879          ,p_module   => l_log_module);
21880 
21881 END IF;
21882 --
21883 l_component_type             := 'AMB_JLT';
21887 l_amb_context_code           := 'DEFAULT';
21884 l_component_code             := 'AP_CASH_CLEAR_PMT_AOS_AS';
21885 l_component_type_code        := 'S';
21886 l_component_appl_id          :=  200;
21888 l_entity_code                := 'AP_PAYMENTS';
21889 l_event_class_code           := 'PAYMENTS';
21890 l_event_type_code            := 'PAYMENTS_ALL';
21891 l_line_definition_owner_code := 'S';
21892 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
21893 --
21894 l_balance_type_code          := 'A';
21895 l_segment                     := NULL;
21896 l_ccid                        := NULL;
21897 l_adr_transaction_coa_id      := NULL;
21898 l_adr_accounting_coa_id       := NULL;
21899 l_adr_flexfield_segment_code  := NULL;
21900 l_adr_flex_value_set_id       := NULL;
21901 l_adr_value_type_code         := NULL;
21902 l_adr_value_combination_id    := NULL;
21903 l_adr_value_segment_code      := NULL;
21904 
21905 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
21906 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
21907 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
21908 l_budgetary_control_flag     := 'N';
21909 
21910 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
21911 l_bflow_applied_to_amt       := NULL; -- 5132302
21912 l_entered_amt_idx            := NULL;          -- 4262811
21913 l_accted_amt_idx             := NULL;          -- 4262811
21914 l_acc_rev_flag               := NULL;          -- 4262811
21915 l_accrual_line_num           := NULL;          -- 4262811
21916 l_tmp_amt                    := NULL;          -- 4262811
21917 --
21918  
21919 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21920     l_balance_type_code <> 'B' THEN
21921 IF NVL(p_source_50,'
21922 ') =  'ALWAYS_ALWAYS' AND 
21923 (NVL(p_source_117,'
21924 ') =  'Y' AND 
21925 NVL(p_source_16,'
21926 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
21927 p_source_118 IS NULL AND 
21928 NVL(p_source_51,'
21929 ') =  'CASH' AND 
21930 NVL(p_source_71,'
21931 ') <>  'R' AND 
21932 NVL(p_source_120,'
21933 ') <>  'PAYMENTCARD'
21934  THEN 
21935 
21936    --
21937    XLA_AE_LINES_PKG.SetNewLine;
21938 
21939    p_balance_type_code          := l_balance_type_code;
21940    -- set the flag so later we will know whether the gain loss line needs to be created
21941    
21942    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21943      p_actual_flag :='A';
21944    END IF;
21945 
21946    --
21947    -- bulk performance
21948    --
21949    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21950                                       p_header_num   => 0); -- 4262811
21951    --
21952    -- set accounting line options
21953    --
21954    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21955            p_natural_side_code          => 'C'
21956          , p_gain_or_loss_flag          => 'N'
21957          , p_gl_transfer_mode_code      => 'S'
21958          , p_acct_entry_type_code       => 'A'
21959          , p_switch_side_flag           => 'Y'
21960          , p_merge_duplicate_code       => 'A'
21961          );
21962    --
21963    l_acc_rev_natural_side_code := 'D';  -- 4262811
21964    -- 
21965    --
21966    -- set accounting line type info
21967    --
21968    xla_ae_lines_pkg.SetAcctLineType
21969       (p_component_type             => l_component_type
21970       ,p_event_type_code            => l_event_type_code
21971       ,p_line_definition_owner_code => l_line_definition_owner_code
21972       ,p_line_definition_code       => l_line_definition_code
21973       ,p_accounting_line_code       => l_component_code
21974       ,p_accounting_line_type_code  => l_component_type_code
21975       ,p_accounting_line_appl_id    => l_component_appl_id
21976       ,p_amb_context_code           => l_amb_context_code
21977       ,p_entity_code                => l_entity_code
21978       ,p_event_class_code           => l_event_class_code);
21979    --
21980    -- set accounting class
21981    --
21982    xla_ae_lines_pkg.SetAcctClass(
21983            p_accounting_class_code  => 'CASH_CLEARING'
21984          , p_ae_header_id           => l_ae_header_id
21985          );
21986 
21987    --
21988    -- set rounding class
21989    --
21990    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21991                       'CASH_CLEARING';
21992 
21993    --
21994    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21995    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21996    --
21997    -- bulk performance
21998    --
21999    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22000 
22001    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22002       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22003 
22004    -- 4955764
22005    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22006       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22007 
22008    -- 4458381 Public Sector Enh
22009    
22010    --
22011    -- set accounting attributes for the line type
22012    --
22013    l_entered_amt_idx := 10;
22014    l_accted_amt_idx  := 15;
22018    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
22015    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
22016    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22017    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
22019    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
22020    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
22021    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
22022    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22023    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
22024    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
22025    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
22026    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
22027    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
22028    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22029    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
22030    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22031    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
22032    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22033    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
22034    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22035    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
22036    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22037    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
22038    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
22039    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
22040    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
22041    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
22042    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
22043    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
22044    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
22045    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
22046    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
22047    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
22048    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
22049    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
22050    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
22051    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
22052    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
22053    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
22054    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
22055    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
22056    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
22057    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
22058    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
22059    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
22060    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
22061    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
22062    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
22063    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
22064 
22065    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22066    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22067 
22068    ---------------------------------------------------------------------------------------------------------------
22069    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22070    ---------------------------------------------------------------------------------------------------------------
22071    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22072 
22073    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22074    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22075 
22076    IF xla_accounting_cache_pkg.GetValueChar
22077          (p_source_code         => 'LEDGER_CATEGORY_CODE'
22078          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22079    AND l_bflow_method_code = 'PRIOR_ENTRY'
22080 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22081    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22082          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22083        )
22084    THEN
22085          xla_ae_lines_pkg.BflowUpgEntry
22086            (p_business_method_code    => l_bflow_method_code
22087            ,p_business_class_code     => l_bflow_class_code
22088            ,p_balance_type            => l_balance_type_code);
22089    ELSE
22090       NULL;
22091 XLA_AE_LINES_PKG.business_flow_validation(
22092                                 p_business_method_code     => l_bflow_method_code
22093                                ,p_business_class_code      => l_bflow_class_code
22094                                ,p_inherit_description_flag => l_inherit_desc_flag);
22095    END IF;
22096 
22097    --
22098    -- call analytical criteria
22099    --
22100    
22101    --
22102    -- call description
22103    --
22104    -- No description or it is inherited.
22105    --
22106    -- call ADRs
22107    -- Bug 4922099
22108    --
22112       )
22109    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22110         (NVL(l_actual_upg_option, 'N') = 'O') OR
22111         (NVL(l_enc_upg_option, 'N') = 'O')
22113    THEN
22114    NULL;
22115    --
22116    --
22117    
22118    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
22119      p_code_combination_id      => TO_NUMBER(C_NUM)
22120    , p_value_type_code          => NULL
22121    , p_transaction_coa_id       => null
22122    , p_accounting_coa_id        => null
22123    , p_adr_code                 => NULL
22124    , p_adr_type_code            => NULL
22125    , p_component_type           => l_component_type
22126    , p_component_code           => l_component_code
22127    , p_component_type_code      => l_component_type_code
22128    , p_component_appl_id        => l_component_appl_id
22129    , p_amb_context_code         => l_amb_context_code
22130    , p_side                     => NULL
22131    );
22132 
22133    
22134   -- initialise segments
22135   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22136   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22137   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22138   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22139   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22140   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22141   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22142   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22143   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22144   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22145   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22146   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22147   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22148   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22149   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22150   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22151   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22152   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22153   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22154   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22155   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22156   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22157   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22158   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22159   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22160   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22161   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22162   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22163   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22164   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22165   --
22166 
22167    --
22168 
22169 
22170    l_segment := AcctDerRule_13(
22171            p_application_id           => p_application_id
22172          , p_ae_header_id             => l_ae_header_id 
22173 , p_source_33 => p_source_33
22174          , x_transaction_coa_id       => l_adr_transaction_coa_id
22175          , x_accounting_coa_id        => l_adr_accounting_coa_id
22176          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
22177          , x_flex_value_set_id        => l_adr_flex_value_set_id
22178          , x_value_type_code          => l_adr_value_type_code
22179          , x_value_combination_id     => l_adr_value_combination_id
22180          , x_value_segment_code       => l_adr_value_segment_code
22181          , p_side                     => 'NA'
22182          , p_override_seg_flag        => 'Y'
22183    );
22184 
22185    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
22186 
22187       xla_ae_lines_pkg.set_segment(
22188           p_to_segment_code         => 'GL_ACCOUNT'
22189         , p_segment_value           => l_segment
22190         , p_from_segment_code       => l_adr_value_segment_code
22191         , p_from_combination_id     => l_adr_value_combination_id
22192         , p_value_type_code         => l_adr_value_type_code
22193         , p_transaction_coa_id      => l_adr_transaction_coa_id
22194         , p_accounting_coa_id       => l_adr_accounting_coa_id
22195         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
22196         , p_flex_value_set_id       => l_adr_flex_value_set_id
22197         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
22198         , p_adr_type_code           => 'S'
22199         , p_component_type          => l_component_type
22200         , p_component_code          => l_component_code
22204         , p_entity_code             => 'AP_PAYMENTS'
22201         , p_component_type_code     => l_component_type_code
22202         , p_component_appl_id       => l_component_appl_id
22203         , p_amb_context_code        => l_amb_context_code
22205         , p_event_class_code        => 'PAYMENTS'
22206         , p_side                    => 'NA'
22207         );
22208 
22209   END IF;
22210 
22211    --
22212    --
22213    END IF;
22214    --
22215    -- Bug 4922099
22216    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22217           (NVL(l_enc_upg_option, 'N') = 'O')
22218         ) AND
22219         (l_bflow_method_code = 'PRIOR_ENTRY')
22220       )
22221    THEN
22222       IF
22223       --
22224       1 = 2
22225       --
22226       THEN
22227       xla_accounting_err_pkg.build_message
22228                                     (p_appli_s_name            => 'XLA'
22229                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22230                                     ,p_token_1                 => 'LINE_NUMBER'
22231                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
22232                                     ,p_token_2                 => 'LINE_TYPE_NAME'
22233                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
22234                                                                              l_component_type
22235                                                                             ,l_component_code
22236                                                                             ,l_component_type_code
22237                                                                             ,l_component_appl_id
22238                                                                             ,l_amb_context_code
22239                                                                             ,l_entity_code
22240                                                                             ,l_event_class_code
22241                                                                            )
22242                                     ,p_token_3                 => 'OWNER'
22243                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
22244                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
22245                                                                           ,p_lookup_code    => l_component_type_code
22246                                                                          )
22247                                     ,p_token_4                 => 'PRODUCT_NAME'
22248                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22249                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22250                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22251                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22252                                     ,p_ae_header_id            =>  NULL
22253                                        );
22254 
22255         IF (C_LEVEL_ERROR>= g_log_level) THEN
22256                  trace
22257                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22258                       ,p_level    => C_LEVEL_ERROR
22259                       ,p_module   => l_log_module);
22260         END IF;
22261       END IF;
22262    END IF;
22263    --
22264    --
22265    ------------------------------------------------------------------------------------------------
22266    -- 4219869 Business Flow
22267    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22268    -- Prior Entry.  Currently, the following code is always generated.
22269    ------------------------------------------------------------------------------------------------
22270    XLA_AE_LINES_PKG.ValidateCurrentLine;
22271 
22272    ------------------------------------------------------------------------------------
22273    -- 4219869 Business Flow
22274    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22275    ------------------------------------------------------------------------------------
22276    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22277 
22278    ----------------------------------------------------------------------------------
22279    -- 4219869 Business Flow
22280    -- Update journal entry status -- Need to generate this within IF <condition>
22281    ----------------------------------------------------------------------------------
22282    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22283          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22284          ,p_balance_type_code => l_balance_type_code
22285          );
22286 
22287    -------------------------------------------------------------------------------------------
22288    -- 4262811 - Generate the Accrual Reversal lines
22289    -------------------------------------------------------------------------------------------
22290    BEGIN
22291       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22292                               (g_array_event(p_event_id).array_value_num('header_index'));
22293       IF l_acc_rev_flag IS NULL THEN
22294          l_acc_rev_flag := 'N';
22295       END IF;
22296    EXCEPTION
22297       WHEN OTHERS THEN
22298          l_acc_rev_flag := 'N';
22299    END;
22300    --
22304        -- To allow MPA report to determine if it should generate report process
22301    IF (l_acc_rev_flag = 'Y') THEN
22302 
22303        -- 4645092  ------------------------------------------------------------------------------
22305        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22306        ------------------------------------------------------------------------------------------
22307 
22308        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22309        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22310    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
22311    -- call ADRs
22312    -- Bug 4922099
22313    --
22314    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22315         (NVL(l_actual_upg_option, 'N') = 'O') OR
22316         (NVL(l_enc_upg_option, 'N') = 'O')
22317       )
22318    THEN
22319    NULL;
22320    --
22321    --
22322    
22323    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
22324      p_code_combination_id      => TO_NUMBER(C_NUM)
22325    , p_value_type_code          => NULL
22326    , p_transaction_coa_id       => null
22327    , p_accounting_coa_id        => null
22328    , p_adr_code                 => NULL
22329    , p_adr_type_code            => NULL
22330    , p_component_type           => l_component_type
22331    , p_component_code           => l_component_code
22332    , p_component_type_code      => l_component_type_code
22333    , p_component_appl_id        => l_component_appl_id
22334    , p_amb_context_code         => l_amb_context_code
22335    , p_side                     => NULL
22336    );
22337 
22338    
22339   -- initialise segments
22340   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22341   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22342   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22343   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22344   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22345   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22346   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22347   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22348   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22349   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22350   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22351   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22352   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22353   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22354   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22355   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22356   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22357   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22358   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22359   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22360   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22361   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22362   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22363   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22364   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22365   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22366   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22367   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22368   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22369   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22370   --
22371 
22372    --
22373 
22374 
22375    l_segment := AcctDerRule_13(
22376            p_application_id           => p_application_id
22377          , p_ae_header_id             => l_ae_header_id 
22378 , p_source_33 => p_source_33
22379          , x_transaction_coa_id       => l_adr_transaction_coa_id
22380          , x_accounting_coa_id        => l_adr_accounting_coa_id
22381          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
22382          , x_flex_value_set_id        => l_adr_flex_value_set_id
22383          , x_value_type_code          => l_adr_value_type_code
22384          , x_value_combination_id     => l_adr_value_combination_id
22385          , x_value_segment_code       => l_adr_value_segment_code
22386          , p_side                     => 'NA'
22387          , p_override_seg_flag        => 'Y'
22388    );
22389 
22390    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
22391 
22392       xla_ae_lines_pkg.set_segment(
22393           p_to_segment_code         => 'GL_ACCOUNT'
22394         , p_segment_value           => l_segment
22395         , p_from_segment_code       => l_adr_value_segment_code
22396         , p_from_combination_id     => l_adr_value_combination_id
22400         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
22397         , p_value_type_code         => l_adr_value_type_code
22398         , p_transaction_coa_id      => l_adr_transaction_coa_id
22399         , p_accounting_coa_id       => l_adr_accounting_coa_id
22401         , p_flex_value_set_id       => l_adr_flex_value_set_id
22402         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
22403         , p_adr_type_code           => 'S'
22404         , p_component_type          => l_component_type
22405         , p_component_code          => l_component_code
22406         , p_component_type_code     => l_component_type_code
22407         , p_component_appl_id       => l_component_appl_id
22408         , p_amb_context_code        => l_amb_context_code
22409         , p_entity_code             => 'AP_PAYMENTS'
22410         , p_event_class_code        => 'PAYMENTS'
22411         , p_side                    => 'NA'
22412         );
22413 
22414   END IF;
22415 
22416    --
22417    --
22418    END IF;
22419 
22420        --
22421        -- Update the line information that should be overwritten
22422        --
22423        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22424                                          p_header_num   => 1);
22425        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
22426 
22427        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22428 
22429        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
22430           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22431        END IF;
22432 
22433       --
22434       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22435       --
22436       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22437           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
22438       ELSE
22439           ---------------------------------------------------------------------------------------------------
22440           -- 4262811a Switch Sign
22441           ---------------------------------------------------------------------------------------------------
22442           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
22443           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22444                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22445           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22446                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22447           -- 5132302
22448           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22449                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22450 
22451       END IF;
22452 
22453       -- 4955764
22454       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22455       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22456 
22457 
22458       XLA_AE_LINES_PKG.ValidateCurrentLine;
22459       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22460 
22461       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22462                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22463                ,p_balance_type_code => l_balance_type_code);
22464 
22465    END IF;
22466 
22467    -----------------------------------------------------------------------------------------
22468    -- 4262811 Multiperiod Accounting
22469    -----------------------------------------------------------------------------------------
22470      -- No MPA option is assigned.
22471 
22472 
22473 END IF;
22474 END IF;
22475 --
22476 
22477 --
22478 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22479    trace
22480       (p_msg      => 'END of AcctLineType_60'
22481       ,p_level    => C_LEVEL_PROCEDURE
22482       ,p_module   => l_log_module);
22483 END IF;
22484 --
22485 EXCEPTION
22486   WHEN xla_exceptions_pkg.application_exception THEN
22487       RAISE;
22488   WHEN OTHERS THEN
22489        xla_exceptions_pkg.raise_message
22490            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_60');
22491 END AcctLineType_60;
22492 --
22493 
22494 ---------------------------------------
22495 --
22496 -- PRIVATE FUNCTION
22497 --         AcctLineType_61
22498 --
22499 ---------------------------------------
22500 PROCEDURE AcctLineType_61 (
22501   p_application_id        IN NUMBER
22502  ,p_event_id              IN NUMBER
22503  ,p_calculate_acctd_flag  IN VARCHAR2
22504  ,p_calculate_g_l_flag    IN VARCHAR2
22505  ,p_actual_flag           IN OUT VARCHAR2
22506  ,p_balance_type_code     OUT VARCHAR2
22507  ,p_gain_or_loss_ref      OUT VARCHAR2
22508  
22509 --Payment Currency Code
22510  , p_source_12            IN VARCHAR2
22511 --Automatic Offsets Value
22512  , p_source_16            IN VARCHAR2
22513  , p_source_16_meaning    IN VARCHAR2
22514 --Payment Distribution (Payment Rate) Ledger Amount
22515  , p_source_21            IN NUMBER
22516 --Bank Cash Clearing Account
22517  , p_source_33            IN NUMBER
22521  , p_source_51            IN VARCHAR2
22518 --When to Account for Payment Option
22519  , p_source_50            IN VARCHAR2
22520 --Payment Distribution Type
22522  , p_source_51_meaning    IN VARCHAR2
22523 --Accounting Reversal Indicator
22524  , p_source_52            IN VARCHAR2
22525 --Payment Distribution Amount
22526  , p_source_53            IN NUMBER
22527 --Business Flow Accounts Payable Application Identifier
22528  , p_source_54            IN NUMBER
22529 --Payment Distribution Identifier
22530  , p_source_59            IN NUMBER
22531 --Distribution Link Type
22532  , p_source_60            IN VARCHAR2
22533 --Override Accounted Amount Indicator
22534  , p_source_64            IN VARCHAR2
22535  , p_source_64_meaning    IN VARCHAR2
22536 --Payment Supplier Identifier
22537  , p_source_65            IN NUMBER
22538 --Payment Supplier Site Identifier
22539  , p_source_66            IN NUMBER
22540 --Third Party Type
22541  , p_source_67            IN VARCHAR2
22542 --Payment Distribution Reversed Identifier
22543  , p_source_68            IN NUMBER
22544 --Invoice Distribution Tax Line Identifier
22545  , p_source_69            IN NUMBER
22546 --Invoice Distribution Summary Tax Line Identifier
22547  , p_source_70            IN NUMBER
22548 --Payment Type
22549  , p_source_71            IN VARCHAR2
22550  , p_source_71_meaning    IN VARCHAR2
22551 --Invoice Distribution Amount of the Payment Distribution
22552  , p_source_72            IN NUMBER
22553 --Business Flow Invoice Distribution Type
22554  , p_source_73            IN VARCHAR2
22555 --Business Flow Invoice Entity Code
22556  , p_source_74            IN VARCHAR2
22557 --Business Flow Invoice Distribution Identifier
22558  , p_source_75            IN NUMBER
22559 --Business Flow Invoice Identifier
22560  , p_source_76            IN NUMBER
22561 --Invoice Distribution Tax Distribution Identifier from Tax
22562  , p_source_77            IN NUMBER
22563 --Pooled Bank Account Option
22564  , p_source_117            IN VARCHAR2
22565  , p_source_117_meaning    IN VARCHAR2
22566 --Payment Maturity Date
22567  , p_source_118            IN DATE
22568 --Payment Processing Type
22569  , p_source_120            IN VARCHAR2
22570 --Payment Exchange Date
22571  , p_source_121            IN DATE
22572 --Payment Exchange Rate
22573  , p_source_122            IN NUMBER
22574 --Payment Exchange Rate Type
22575  , p_source_123            IN VARCHAR2
22576 )
22577 IS
22578 
22579 l_component_type              VARCHAR2(80);
22580 l_component_code              VARCHAR2(30);
22581 l_component_type_code         VARCHAR2(1);
22582 l_component_appl_id           INTEGER;
22583 l_amb_context_code            VARCHAR2(30);
22584 l_entity_code                 VARCHAR2(30);
22585 l_event_class_code            VARCHAR2(30);
22586 l_ae_header_id                NUMBER;
22587 l_event_type_code             VARCHAR2(30);
22588 l_line_definition_code        VARCHAR2(30);
22589 l_line_definition_owner_code  VARCHAR2(1);
22590 --
22591 -- adr variables
22592 l_segment                     VARCHAR2(30);
22593 l_ccid                        NUMBER;
22594 l_adr_transaction_coa_id      NUMBER;
22595 l_adr_accounting_coa_id       NUMBER;
22596 l_adr_flexfield_segment_code  VARCHAR2(30);
22597 l_adr_flex_value_set_id       NUMBER;
22598 l_adr_value_type_code         VARCHAR2(30);
22599 l_adr_value_combination_id    NUMBER;
22600 l_adr_value_segment_code      VARCHAR2(30);
22601 
22602 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
22603 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
22604 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
22605 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
22606 
22607 -- 4262811 Variables ------------------------------------------------------------------------------------------
22608 l_entered_amt_idx             NUMBER;
22609 l_accted_amt_idx              NUMBER;
22610 l_acc_rev_flag                VARCHAR2(1);
22611 l_accrual_line_num            NUMBER;
22612 l_tmp_amt                     NUMBER;
22613 l_acc_rev_natural_side_code   VARCHAR2(1);
22614 
22615 l_num_entries                 NUMBER;
22616 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
22617 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
22618 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
22619 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
22620 l_recog_line_1                NUMBER;
22621 l_recog_line_2                NUMBER;
22622 
22623 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
22624 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
22625 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
22626 
22627 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22628 
22629 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
22630 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
22631 
22632 ---------------------------------------------------------------------------------------------------------------
22633 
22634 
22635 --
22636 -- bulk performance
22637 --
22638 l_balance_type_code           VARCHAR2(1);
22639 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
22643 -- Upgrade strategy
22640 l_log_module                  VARCHAR2(240);
22641 
22642 --
22644 --
22645 l_actual_upg_option           VARCHAR2(1);
22646 l_enc_upg_option           VARCHAR2(1);
22647 
22648 --
22649 BEGIN
22650 --
22651 IF g_log_enabled THEN
22652       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
22653 END IF;
22654 --
22655 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22656 
22657       trace
22658          (p_msg      => 'BEGIN of AcctLineType_61'
22659          ,p_level    => C_LEVEL_PROCEDURE
22660          ,p_module   => l_log_module);
22661 
22662 END IF;
22663 --
22664 l_component_type             := 'AMB_JLT';
22665 l_component_code             := 'AP_CASH_CLEAR_PMT_AOS_BS';
22666 l_component_type_code        := 'S';
22667 l_component_appl_id          :=  200;
22668 l_amb_context_code           := 'DEFAULT';
22669 l_entity_code                := 'AP_PAYMENTS';
22670 l_event_class_code           := 'PAYMENTS';
22671 l_event_type_code            := 'PAYMENTS_ALL';
22672 l_line_definition_owner_code := 'S';
22673 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
22674 --
22675 l_balance_type_code          := 'A';
22676 l_segment                     := NULL;
22677 l_ccid                        := NULL;
22678 l_adr_transaction_coa_id      := NULL;
22679 l_adr_accounting_coa_id       := NULL;
22680 l_adr_flexfield_segment_code  := NULL;
22681 l_adr_flex_value_set_id       := NULL;
22682 l_adr_value_type_code         := NULL;
22683 l_adr_value_combination_id    := NULL;
22684 l_adr_value_segment_code      := NULL;
22685 
22686 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
22687 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
22688 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
22689 l_budgetary_control_flag     := 'N';
22690 
22691 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
22692 l_bflow_applied_to_amt       := NULL; -- 5132302
22693 l_entered_amt_idx            := NULL;          -- 4262811
22694 l_accted_amt_idx             := NULL;          -- 4262811
22695 l_acc_rev_flag               := NULL;          -- 4262811
22696 l_accrual_line_num           := NULL;          -- 4262811
22697 l_tmp_amt                    := NULL;          -- 4262811
22698 --
22699  
22700 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22701     l_balance_type_code <> 'B' THEN
22702 IF NVL(p_source_50,'
22703 ') =  'ALWAYS_ALWAYS' AND 
22704 (NVL(p_source_117,'
22705 ') =  'Y' AND 
22706 NVL(p_source_16,'
22707 ') =  'BALANCING_SEGMENT') AND 
22708 p_source_118 IS NULL AND 
22709 NVL(p_source_51,'
22710 ') =  'CASH' AND 
22711 NVL(p_source_71,'
22712 ') <>  'R' AND 
22713 NVL(p_source_120,'
22714 ') <>  'PAYMENTCARD'
22715  THEN 
22716 
22717    --
22718    XLA_AE_LINES_PKG.SetNewLine;
22719 
22720    p_balance_type_code          := l_balance_type_code;
22721    -- set the flag so later we will know whether the gain loss line needs to be created
22722    
22723    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22724      p_actual_flag :='A';
22725    END IF;
22726 
22727    --
22728    -- bulk performance
22729    --
22730    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22731                                       p_header_num   => 0); -- 4262811
22732    --
22733    -- set accounting line options
22734    --
22735    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22736            p_natural_side_code          => 'C'
22737          , p_gain_or_loss_flag          => 'N'
22738          , p_gl_transfer_mode_code      => 'S'
22739          , p_acct_entry_type_code       => 'A'
22740          , p_switch_side_flag           => 'Y'
22741          , p_merge_duplicate_code       => 'A'
22742          );
22743    --
22744    l_acc_rev_natural_side_code := 'D';  -- 4262811
22745    -- 
22746    --
22747    -- set accounting line type info
22748    --
22749    xla_ae_lines_pkg.SetAcctLineType
22750       (p_component_type             => l_component_type
22751       ,p_event_type_code            => l_event_type_code
22752       ,p_line_definition_owner_code => l_line_definition_owner_code
22753       ,p_line_definition_code       => l_line_definition_code
22754       ,p_accounting_line_code       => l_component_code
22755       ,p_accounting_line_type_code  => l_component_type_code
22756       ,p_accounting_line_appl_id    => l_component_appl_id
22757       ,p_amb_context_code           => l_amb_context_code
22758       ,p_entity_code                => l_entity_code
22759       ,p_event_class_code           => l_event_class_code);
22760    --
22761    -- set accounting class
22762    --
22763    xla_ae_lines_pkg.SetAcctClass(
22764            p_accounting_class_code  => 'CASH_CLEARING'
22765          , p_ae_header_id           => l_ae_header_id
22766          );
22767 
22768    --
22769    -- set rounding class
22770    --
22771    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22772                       'CASH_CLEARING';
22773 
22774    --
22775    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22776    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22777    --
22781 
22778    -- bulk performance
22779    --
22780    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22782    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22783       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22784 
22785    -- 4955764
22786    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22787       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22788 
22789    -- 4458381 Public Sector Enh
22790    
22791    --
22792    -- set accounting attributes for the line type
22793    --
22794    l_entered_amt_idx := 10;
22795    l_accted_amt_idx  := 15;
22796    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
22797    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22798    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
22799    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
22800    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
22801    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
22802    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
22803    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22804    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
22805    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
22806    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
22807    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
22808    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
22809    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22810    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
22811    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22812    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
22813    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22814    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
22815    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22816    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
22817    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22818    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
22819    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
22820    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
22821    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
22822    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
22823    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
22824    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
22825    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
22826    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
22827    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
22828    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
22829    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
22830    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
22831    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
22832    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
22833    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
22834    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
22835    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
22836    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
22837    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
22838    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
22839    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
22840    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
22841    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
22842    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
22843    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
22844    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
22845 
22846    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22847    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22848 
22849    ---------------------------------------------------------------------------------------------------------------
22850    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22851    ---------------------------------------------------------------------------------------------------------------
22852    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22853 
22854    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22855    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22856 
22857    IF xla_accounting_cache_pkg.GetValueChar
22858          (p_source_code         => 'LEDGER_CATEGORY_CODE'
22859          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22860    AND l_bflow_method_code = 'PRIOR_ENTRY'
22861 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22862    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22863          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22864        )
22865    THEN
22866          xla_ae_lines_pkg.BflowUpgEntry
22867            (p_business_method_code    => l_bflow_method_code
22868            ,p_business_class_code     => l_bflow_class_code
22872 XLA_AE_LINES_PKG.business_flow_validation(
22869            ,p_balance_type            => l_balance_type_code);
22870    ELSE
22871       NULL;
22873                                 p_business_method_code     => l_bflow_method_code
22874                                ,p_business_class_code      => l_bflow_class_code
22875                                ,p_inherit_description_flag => l_inherit_desc_flag);
22876    END IF;
22877 
22878    --
22879    -- call analytical criteria
22880    --
22881    
22882    --
22883    -- call description
22884    --
22885    -- No description or it is inherited.
22886    --
22887    -- call ADRs
22888    -- Bug 4922099
22889    --
22890    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22891         (NVL(l_actual_upg_option, 'N') = 'O') OR
22892         (NVL(l_enc_upg_option, 'N') = 'O')
22893       )
22894    THEN
22895    NULL;
22896    --
22897    --
22898    
22899   l_ccid := AcctDerRule_30(
22900            p_application_id           => p_application_id
22901          , p_ae_header_id             => l_ae_header_id 
22902 , p_source_33 => p_source_33
22903          , x_transaction_coa_id       => l_adr_transaction_coa_id
22904          , x_accounting_coa_id        => l_adr_accounting_coa_id
22905          , x_value_type_code          => l_adr_value_type_code
22906          , p_side                     => 'NA'
22907    );
22908 
22909    xla_ae_lines_pkg.set_ccid(
22910     p_code_combination_id          => l_ccid
22911   , p_value_type_code              => l_adr_value_type_code
22912   , p_transaction_coa_id           => l_adr_transaction_coa_id
22913   , p_accounting_coa_id            => l_adr_accounting_coa_id
22914   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
22915   , p_adr_type_code                => 'S'
22916   , p_component_type               => l_component_type
22917   , p_component_code               => l_component_code
22918   , p_component_type_code          => l_component_type_code
22919   , p_component_appl_id            => l_component_appl_id
22920   , p_amb_context_code             => l_amb_context_code
22921   , p_side                         => 'NA'
22922   );
22923 
22924 
22925    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
22926      p_to_segment_code         => 'GL_BALANCING'
22927    , p_segment_value           => C_CHAR
22928    , p_from_segment_code       => NULL
22929    , p_from_combination_id     => NULL
22930    , p_value_type_code         => NULL
22931    , p_transaction_coa_id      => null
22932    , p_accounting_coa_id       => null
22933    , p_flexfield_segment_code  => NULL
22934    , p_flex_value_set_id       => NULL
22935    , p_adr_code                => NULL
22936    , p_adr_type_code           => NULL
22937    , p_component_type          => l_component_type
22938    , p_component_code          => l_component_code
22939    , p_component_type_code     => l_component_type_code
22940    , p_component_appl_id       => l_component_appl_id
22941    , p_amb_context_code        => l_amb_context_code
22942    , p_entity_code             => 'AP_PAYMENTS'
22943    , p_event_class_code        => 'PAYMENTS'
22944    , p_side                    => 'NA'
22945    );
22946    --
22947 
22948 
22949    --
22950    --
22951    END IF;
22952    --
22953    -- Bug 4922099
22954    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22955           (NVL(l_enc_upg_option, 'N') = 'O')
22956         ) AND
22957         (l_bflow_method_code = 'PRIOR_ENTRY')
22958       )
22959    THEN
22960       IF
22961       --
22962       1 = 2
22963       --
22964       THEN
22965       xla_accounting_err_pkg.build_message
22966                                     (p_appli_s_name            => 'XLA'
22967                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22968                                     ,p_token_1                 => 'LINE_NUMBER'
22969                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
22970                                     ,p_token_2                 => 'LINE_TYPE_NAME'
22971                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
22972                                                                              l_component_type
22973                                                                             ,l_component_code
22974                                                                             ,l_component_type_code
22975                                                                             ,l_component_appl_id
22976                                                                             ,l_amb_context_code
22977                                                                             ,l_entity_code
22978                                                                             ,l_event_class_code
22979                                                                            )
22980                                     ,p_token_3                 => 'OWNER'
22981                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
22982                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
22983                                                                           ,p_lookup_code    => l_component_type_code
22984                                                                          )
22985                                     ,p_token_4                 => 'PRODUCT_NAME'
22989                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22986                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22987                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22988                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22990                                     ,p_ae_header_id            =>  NULL
22991                                        );
22992 
22993         IF (C_LEVEL_ERROR>= g_log_level) THEN
22994                  trace
22995                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22996                       ,p_level    => C_LEVEL_ERROR
22997                       ,p_module   => l_log_module);
22998         END IF;
22999       END IF;
23000    END IF;
23001    --
23002    --
23003    ------------------------------------------------------------------------------------------------
23004    -- 4219869 Business Flow
23005    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23006    -- Prior Entry.  Currently, the following code is always generated.
23007    ------------------------------------------------------------------------------------------------
23008    XLA_AE_LINES_PKG.ValidateCurrentLine;
23009 
23010    ------------------------------------------------------------------------------------
23011    -- 4219869 Business Flow
23012    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23013    ------------------------------------------------------------------------------------
23014    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23015 
23016    ----------------------------------------------------------------------------------
23017    -- 4219869 Business Flow
23018    -- Update journal entry status -- Need to generate this within IF <condition>
23019    ----------------------------------------------------------------------------------
23020    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23021          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23022          ,p_balance_type_code => l_balance_type_code
23023          );
23024 
23025    -------------------------------------------------------------------------------------------
23026    -- 4262811 - Generate the Accrual Reversal lines
23027    -------------------------------------------------------------------------------------------
23028    BEGIN
23029       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23030                               (g_array_event(p_event_id).array_value_num('header_index'));
23031       IF l_acc_rev_flag IS NULL THEN
23032          l_acc_rev_flag := 'N';
23033       END IF;
23034    EXCEPTION
23035       WHEN OTHERS THEN
23036          l_acc_rev_flag := 'N';
23037    END;
23038    --
23039    IF (l_acc_rev_flag = 'Y') THEN
23040 
23041        -- 4645092  ------------------------------------------------------------------------------
23042        -- To allow MPA report to determine if it should generate report process
23043        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23044        ------------------------------------------------------------------------------------------
23045 
23046        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23047        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23048    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
23049    -- call ADRs
23050    -- Bug 4922099
23051    --
23052    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23053         (NVL(l_actual_upg_option, 'N') = 'O') OR
23054         (NVL(l_enc_upg_option, 'N') = 'O')
23055       )
23056    THEN
23057    NULL;
23058    --
23059    --
23060    
23061   l_ccid := AcctDerRule_30(
23062            p_application_id           => p_application_id
23063          , p_ae_header_id             => l_ae_header_id 
23064 , p_source_33 => p_source_33
23065          , x_transaction_coa_id       => l_adr_transaction_coa_id
23066          , x_accounting_coa_id        => l_adr_accounting_coa_id
23067          , x_value_type_code          => l_adr_value_type_code
23068          , p_side                     => 'NA'
23069    );
23070 
23071    xla_ae_lines_pkg.set_ccid(
23072     p_code_combination_id          => l_ccid
23073   , p_value_type_code              => l_adr_value_type_code
23074   , p_transaction_coa_id           => l_adr_transaction_coa_id
23075   , p_accounting_coa_id            => l_adr_accounting_coa_id
23076   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
23077   , p_adr_type_code                => 'S'
23078   , p_component_type               => l_component_type
23079   , p_component_code               => l_component_code
23080   , p_component_type_code          => l_component_type_code
23081   , p_component_appl_id            => l_component_appl_id
23082   , p_amb_context_code             => l_amb_context_code
23083   , p_side                         => 'NA'
23084   );
23085 
23086 
23087    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
23088      p_to_segment_code         => 'GL_BALANCING'
23089    , p_segment_value           => C_CHAR
23090    , p_from_segment_code       => NULL
23091    , p_from_combination_id     => NULL
23092    , p_value_type_code         => NULL
23093    , p_transaction_coa_id      => null
23094    , p_accounting_coa_id       => null
23095    , p_flexfield_segment_code  => NULL
23096    , p_flex_value_set_id       => NULL
23100    , p_component_code          => l_component_code
23097    , p_adr_code                => NULL
23098    , p_adr_type_code           => NULL
23099    , p_component_type          => l_component_type
23101    , p_component_type_code     => l_component_type_code
23102    , p_component_appl_id       => l_component_appl_id
23103    , p_amb_context_code        => l_amb_context_code
23104    , p_entity_code             => 'AP_PAYMENTS'
23105    , p_event_class_code        => 'PAYMENTS'
23106    , p_side                    => 'NA'
23107    );
23108    --
23109 
23110 
23111    --
23112    --
23113    END IF;
23114 
23115        --
23116        -- Update the line information that should be overwritten
23117        --
23118        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23119                                          p_header_num   => 1);
23120        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
23121 
23122        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23123 
23124        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
23125           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23126        END IF;
23127 
23128       --
23129       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23130       --
23131       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23132           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
23133       ELSE
23134           ---------------------------------------------------------------------------------------------------
23135           -- 4262811a Switch Sign
23136           ---------------------------------------------------------------------------------------------------
23137           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
23138           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23139                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23140           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23141                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23142           -- 5132302
23143           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23144                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23145 
23146       END IF;
23147 
23148       -- 4955764
23149       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23150       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23151 
23152 
23153       XLA_AE_LINES_PKG.ValidateCurrentLine;
23154       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23155 
23156       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23157                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23158                ,p_balance_type_code => l_balance_type_code);
23159 
23160    END IF;
23161 
23162    -----------------------------------------------------------------------------------------
23163    -- 4262811 Multiperiod Accounting
23164    -----------------------------------------------------------------------------------------
23165      -- No MPA option is assigned.
23166 
23167 
23168 END IF;
23169 END IF;
23170 --
23171 
23172 --
23173 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23174    trace
23175       (p_msg      => 'END of AcctLineType_61'
23176       ,p_level    => C_LEVEL_PROCEDURE
23177       ,p_module   => l_log_module);
23178 END IF;
23179 --
23180 EXCEPTION
23181   WHEN xla_exceptions_pkg.application_exception THEN
23182       RAISE;
23183   WHEN OTHERS THEN
23184        xla_exceptions_pkg.raise_message
23185            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_61');
23186 END AcctLineType_61;
23187 --
23188 
23189 ---------------------------------------
23190 --
23191 -- PRIVATE FUNCTION
23192 --         AcctLineType_62
23193 --
23194 ---------------------------------------
23195 PROCEDURE AcctLineType_62 (
23196   p_application_id        IN NUMBER
23197  ,p_event_id              IN NUMBER
23198  ,p_calculate_acctd_flag  IN VARCHAR2
23199  ,p_calculate_g_l_flag    IN VARCHAR2
23200  ,p_actual_flag           IN OUT VARCHAR2
23201  ,p_balance_type_code     OUT VARCHAR2
23202  ,p_gain_or_loss_ref      OUT VARCHAR2
23203  
23204 --Payment Currency Code
23205  , p_source_12            IN VARCHAR2
23206 --Bank Cash Clearing Account
23207  , p_source_33            IN NUMBER
23208 --Automatic Offsets Flag
23209  , p_source_42            IN VARCHAR2
23210  , p_source_42_meaning    IN VARCHAR2
23211 --When to Account for Payment Option
23212  , p_source_50            IN VARCHAR2
23213 --Payment Distribution Type
23214  , p_source_51            IN VARCHAR2
23215  , p_source_51_meaning    IN VARCHAR2
23216 --Accounting Reversal Indicator
23217  , p_source_52            IN VARCHAR2
23218 --Payment Distribution Amount
23219  , p_source_53            IN NUMBER
23223  , p_source_55            IN VARCHAR2
23220 --Business Flow Accounts Payable Application Identifier
23221  , p_source_54            IN NUMBER
23222 --Business Flow Payment Distribution Type
23224 --Business Flow Payment Entity Code
23225  , p_source_56            IN VARCHAR2
23226 --Business Flow Payment Distribution Identifier
23227  , p_source_57            IN NUMBER
23228 --Business Flow Payment Identifier
23229  , p_source_58            IN NUMBER
23230 --Payment Distribution Identifier
23231  , p_source_59            IN NUMBER
23232 --Distribution Link Type
23233  , p_source_60            IN VARCHAR2
23234 --Override Accounted Amount Indicator
23235  , p_source_64            IN VARCHAR2
23236  , p_source_64_meaning    IN VARCHAR2
23237 --Payment Supplier Identifier
23238  , p_source_65            IN NUMBER
23239 --Payment Supplier Site Identifier
23240  , p_source_66            IN NUMBER
23241 --Third Party Type
23242  , p_source_67            IN VARCHAR2
23243 --Payment Distribution Reversed Identifier
23244  , p_source_68            IN NUMBER
23245 --Pooled Bank Account Option
23246  , p_source_117            IN VARCHAR2
23247  , p_source_117_meaning    IN VARCHAR2
23248 --Payment Maturity Date
23249  , p_source_118            IN DATE
23250 --Payment Exchange Date
23251  , p_source_121            IN DATE
23252 --Payment Exchange Rate
23253  , p_source_122            IN NUMBER
23254 --Payment Exchange Rate Type
23255  , p_source_123            IN VARCHAR2
23256 --Payment Distribution (Matured Rate) Ledger Amount
23257  , p_source_124            IN NUMBER
23258 )
23259 IS
23260 
23261 l_component_type              VARCHAR2(80);
23262 l_component_code              VARCHAR2(30);
23263 l_component_type_code         VARCHAR2(1);
23264 l_component_appl_id           INTEGER;
23265 l_amb_context_code            VARCHAR2(30);
23266 l_entity_code                 VARCHAR2(30);
23267 l_event_class_code            VARCHAR2(30);
23268 l_ae_header_id                NUMBER;
23269 l_event_type_code             VARCHAR2(30);
23270 l_line_definition_code        VARCHAR2(30);
23271 l_line_definition_owner_code  VARCHAR2(1);
23272 --
23273 -- adr variables
23274 l_segment                     VARCHAR2(30);
23275 l_ccid                        NUMBER;
23276 l_adr_transaction_coa_id      NUMBER;
23277 l_adr_accounting_coa_id       NUMBER;
23278 l_adr_flexfield_segment_code  VARCHAR2(30);
23279 l_adr_flex_value_set_id       NUMBER;
23280 l_adr_value_type_code         VARCHAR2(30);
23281 l_adr_value_combination_id    NUMBER;
23282 l_adr_value_segment_code      VARCHAR2(30);
23283 
23284 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
23285 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
23286 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
23287 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
23288 
23289 -- 4262811 Variables ------------------------------------------------------------------------------------------
23290 l_entered_amt_idx             NUMBER;
23291 l_accted_amt_idx              NUMBER;
23292 l_acc_rev_flag                VARCHAR2(1);
23293 l_accrual_line_num            NUMBER;
23294 l_tmp_amt                     NUMBER;
23295 l_acc_rev_natural_side_code   VARCHAR2(1);
23296 
23297 l_num_entries                 NUMBER;
23298 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
23299 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
23300 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
23301 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
23302 l_recog_line_1                NUMBER;
23303 l_recog_line_2                NUMBER;
23304 
23305 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
23306 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
23307 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
23308 
23309 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23310 
23311 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
23312 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
23313 
23314 ---------------------------------------------------------------------------------------------------------------
23315 
23316 
23317 --
23318 -- bulk performance
23319 --
23320 l_balance_type_code           VARCHAR2(1);
23321 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
23322 l_log_module                  VARCHAR2(240);
23323 
23324 --
23325 -- Upgrade strategy
23326 --
23327 l_actual_upg_option           VARCHAR2(1);
23328 l_enc_upg_option           VARCHAR2(1);
23329 
23330 --
23331 BEGIN
23332 --
23333 IF g_log_enabled THEN
23334       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
23335 END IF;
23336 --
23337 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23338 
23339       trace
23340          (p_msg      => 'BEGIN of AcctLineType_62'
23341          ,p_level    => C_LEVEL_PROCEDURE
23342          ,p_module   => l_log_module);
23343 
23344 END IF;
23345 --
23346 l_component_type             := 'AMB_JLT';
23347 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT';
23348 l_component_type_code        := 'S';
23349 l_component_appl_id          :=  200;
23353 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
23350 l_amb_context_code           := 'DEFAULT';
23351 l_entity_code                := 'AP_PAYMENTS';
23352 l_event_class_code           := 'FUTURE DATED PAYMENTS';
23354 l_line_definition_owner_code := 'S';
23355 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
23356 --
23357 l_balance_type_code          := 'A';
23358 l_segment                     := NULL;
23359 l_ccid                        := NULL;
23360 l_adr_transaction_coa_id      := NULL;
23361 l_adr_accounting_coa_id       := NULL;
23362 l_adr_flexfield_segment_code  := NULL;
23363 l_adr_flex_value_set_id       := NULL;
23364 l_adr_value_type_code         := NULL;
23365 l_adr_value_combination_id    := NULL;
23366 l_adr_value_segment_code      := NULL;
23367 
23368 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
23369 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
23370 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
23371 l_budgetary_control_flag     := 'N';
23372 
23373 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
23374 l_bflow_applied_to_amt       := NULL; -- 5132302
23375 l_entered_amt_idx            := NULL;          -- 4262811
23376 l_accted_amt_idx             := NULL;          -- 4262811
23377 l_acc_rev_flag               := NULL;          -- 4262811
23378 l_accrual_line_num           := NULL;          -- 4262811
23379 l_tmp_amt                    := NULL;          -- 4262811
23380 --
23381  
23382 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23383     l_balance_type_code <> 'B' THEN
23384 IF (NVL(p_source_50,'
23385 ') =  'ALWAYS_ALWAYS' OR 
23386 NVL(p_source_50,'
23387 ') =  'ALWAYS_ISSUE') AND 
23388 (NVL(p_source_42,'
23389 ') <>  'Y' OR 
23390 NVL(p_source_42,'
23391 ') =  'Y' AND 
23392 NVL(p_source_117,'
23393 ') <>  'Y') AND 
23394 p_source_118 IS NOT NULL AND 
23395 NVL(p_source_51,'
23396 ') =  'CASH'
23397  THEN 
23398 
23399    --
23400    XLA_AE_LINES_PKG.SetNewLine;
23401 
23402    p_balance_type_code          := l_balance_type_code;
23403    -- set the flag so later we will know whether the gain loss line needs to be created
23404    
23405    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23406      p_actual_flag :='A';
23407    END IF;
23408 
23409    --
23410    -- bulk performance
23411    --
23412    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23413                                       p_header_num   => 0); -- 4262811
23414    --
23415    -- set accounting line options
23416    --
23417    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23418            p_natural_side_code          => 'C'
23419          , p_gain_or_loss_flag          => 'N'
23420          , p_gl_transfer_mode_code      => 'S'
23421          , p_acct_entry_type_code       => 'A'
23422          , p_switch_side_flag           => 'Y'
23423          , p_merge_duplicate_code       => 'A'
23424          );
23425    --
23426    l_acc_rev_natural_side_code := 'D';  -- 4262811
23427    -- 
23428    --
23429    -- set accounting line type info
23430    --
23431    xla_ae_lines_pkg.SetAcctLineType
23432       (p_component_type             => l_component_type
23433       ,p_event_type_code            => l_event_type_code
23434       ,p_line_definition_owner_code => l_line_definition_owner_code
23435       ,p_line_definition_code       => l_line_definition_code
23436       ,p_accounting_line_code       => l_component_code
23437       ,p_accounting_line_type_code  => l_component_type_code
23438       ,p_accounting_line_appl_id    => l_component_appl_id
23439       ,p_amb_context_code           => l_amb_context_code
23440       ,p_entity_code                => l_entity_code
23441       ,p_event_class_code           => l_event_class_code);
23442    --
23443    -- set accounting class
23444    --
23445    xla_ae_lines_pkg.SetAcctClass(
23446            p_accounting_class_code  => 'CASH_CLEARING'
23447          , p_ae_header_id           => l_ae_header_id
23448          );
23449 
23450    --
23451    -- set rounding class
23452    --
23453    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23454                       'CASH_CLEARING';
23455 
23456    --
23457    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23458    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23459    --
23460    -- bulk performance
23461    --
23462    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23463 
23464    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23465       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23466 
23467    -- 4955764
23468    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23469       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23470 
23471    -- 4458381 Public Sector Enh
23472    
23473    --
23474    -- set accounting attributes for the line type
23475    --
23476    l_entered_amt_idx := 9;
23477    l_accted_amt_idx  := 14;
23478    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
23479    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23483    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23480    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
23481    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
23482    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
23484    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
23485    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
23486    l_rec_acct_attrs.array_char_value(4)  := p_source_56;
23487    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
23488    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
23489    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23490    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
23491    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
23492    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
23493    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
23494    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
23495    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
23496    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
23497    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
23498    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
23499    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
23500    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
23501    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
23502    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
23503    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
23504    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
23505    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
23506    l_rec_acct_attrs.array_num_value(14)  := p_source_124;
23507    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
23508    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
23509    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
23510    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
23511    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
23512    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
23513    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
23514    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
23515    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
23516    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
23517    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
23518    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
23519 
23520    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23521    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23522 
23523    ---------------------------------------------------------------------------------------------------------------
23524    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23525    ---------------------------------------------------------------------------------------------------------------
23526    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23527 
23528    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23529    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23530 
23531    IF xla_accounting_cache_pkg.GetValueChar
23532          (p_source_code         => 'LEDGER_CATEGORY_CODE'
23533          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23534    AND l_bflow_method_code = 'PRIOR_ENTRY'
23535 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23536    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23537          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23538        )
23539    THEN
23540          xla_ae_lines_pkg.BflowUpgEntry
23541            (p_business_method_code    => l_bflow_method_code
23542            ,p_business_class_code     => l_bflow_class_code
23543            ,p_balance_type            => l_balance_type_code);
23544    ELSE
23545       NULL;
23546 -- No business flow processing for business flow method of NONE.
23547    END IF;
23548 
23549    --
23550    -- call analytical criteria
23551    --
23552    
23553    --
23554    -- call description
23555    --
23556    -- No description or it is inherited.
23557    --
23558    -- call ADRs
23559    -- Bug 4922099
23560    --
23561    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23562         (NVL(l_actual_upg_option, 'N') = 'O') OR
23563         (NVL(l_enc_upg_option, 'N') = 'O')
23564       )
23565    THEN
23566    NULL;
23567    --
23568    --
23569    
23570   l_ccid := AcctDerRule_30(
23571            p_application_id           => p_application_id
23572          , p_ae_header_id             => l_ae_header_id 
23573 , p_source_33 => p_source_33
23574          , x_transaction_coa_id       => l_adr_transaction_coa_id
23575          , x_accounting_coa_id        => l_adr_accounting_coa_id
23576          , x_value_type_code          => l_adr_value_type_code
23577          , p_side                     => 'NA'
23578    );
23579 
23580    xla_ae_lines_pkg.set_ccid(
23581     p_code_combination_id          => l_ccid
23582   , p_value_type_code              => l_adr_value_type_code
23583   , p_transaction_coa_id           => l_adr_transaction_coa_id
23584   , p_accounting_coa_id            => l_adr_accounting_coa_id
23588   , p_component_code               => l_component_code
23585   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
23586   , p_adr_type_code                => 'S'
23587   , p_component_type               => l_component_type
23589   , p_component_type_code          => l_component_type_code
23590   , p_component_appl_id            => l_component_appl_id
23591   , p_amb_context_code             => l_amb_context_code
23592   , p_side                         => 'NA'
23593   );
23594 
23595 
23596    --
23597    --
23598    END IF;
23599    --
23600    -- Bug 4922099
23601    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23602           (NVL(l_enc_upg_option, 'N') = 'O')
23603         ) AND
23604         (l_bflow_method_code = 'PRIOR_ENTRY')
23605       )
23606    THEN
23607       IF
23608       --
23609       1 = 2
23610       --
23611       THEN
23612       xla_accounting_err_pkg.build_message
23613                                     (p_appli_s_name            => 'XLA'
23614                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23615                                     ,p_token_1                 => 'LINE_NUMBER'
23616                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
23617                                     ,p_token_2                 => 'LINE_TYPE_NAME'
23618                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
23619                                                                              l_component_type
23620                                                                             ,l_component_code
23621                                                                             ,l_component_type_code
23622                                                                             ,l_component_appl_id
23623                                                                             ,l_amb_context_code
23624                                                                             ,l_entity_code
23625                                                                             ,l_event_class_code
23626                                                                            )
23627                                     ,p_token_3                 => 'OWNER'
23628                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
23629                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
23630                                                                           ,p_lookup_code    => l_component_type_code
23631                                                                          )
23632                                     ,p_token_4                 => 'PRODUCT_NAME'
23633                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23634                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23635                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23636                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23637                                     ,p_ae_header_id            =>  NULL
23638                                        );
23639 
23640         IF (C_LEVEL_ERROR>= g_log_level) THEN
23641                  trace
23642                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23643                       ,p_level    => C_LEVEL_ERROR
23644                       ,p_module   => l_log_module);
23645         END IF;
23646       END IF;
23647    END IF;
23648    --
23649    --
23650    ------------------------------------------------------------------------------------------------
23651    -- 4219869 Business Flow
23652    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23653    -- Prior Entry.  Currently, the following code is always generated.
23654    ------------------------------------------------------------------------------------------------
23655    XLA_AE_LINES_PKG.ValidateCurrentLine;
23656 
23657    ------------------------------------------------------------------------------------
23658    -- 4219869 Business Flow
23659    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23660    ------------------------------------------------------------------------------------
23661    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23662 
23663    ----------------------------------------------------------------------------------
23664    -- 4219869 Business Flow
23665    -- Update journal entry status -- Need to generate this within IF <condition>
23666    ----------------------------------------------------------------------------------
23667    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23668          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23669          ,p_balance_type_code => l_balance_type_code
23670          );
23671 
23672    -------------------------------------------------------------------------------------------
23673    -- 4262811 - Generate the Accrual Reversal lines
23674    -------------------------------------------------------------------------------------------
23675    BEGIN
23676       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23677                               (g_array_event(p_event_id).array_value_num('header_index'));
23678       IF l_acc_rev_flag IS NULL THEN
23679          l_acc_rev_flag := 'N';
23680       END IF;
23681    EXCEPTION
23682       WHEN OTHERS THEN
23686    IF (l_acc_rev_flag = 'Y') THEN
23683          l_acc_rev_flag := 'N';
23684    END;
23685    --
23687 
23688        -- 4645092  ------------------------------------------------------------------------------
23689        -- To allow MPA report to determine if it should generate report process
23690        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23691        ------------------------------------------------------------------------------------------
23692 
23693        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23694        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23695    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
23696    -- call ADRs
23697    -- Bug 4922099
23698    --
23699    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23700         (NVL(l_actual_upg_option, 'N') = 'O') OR
23701         (NVL(l_enc_upg_option, 'N') = 'O')
23702       )
23703    THEN
23704    NULL;
23705    --
23706    --
23707    
23708   l_ccid := AcctDerRule_30(
23709            p_application_id           => p_application_id
23710          , p_ae_header_id             => l_ae_header_id 
23711 , p_source_33 => p_source_33
23712          , x_transaction_coa_id       => l_adr_transaction_coa_id
23713          , x_accounting_coa_id        => l_adr_accounting_coa_id
23714          , x_value_type_code          => l_adr_value_type_code
23715          , p_side                     => 'NA'
23716    );
23717 
23718    xla_ae_lines_pkg.set_ccid(
23719     p_code_combination_id          => l_ccid
23720   , p_value_type_code              => l_adr_value_type_code
23721   , p_transaction_coa_id           => l_adr_transaction_coa_id
23722   , p_accounting_coa_id            => l_adr_accounting_coa_id
23723   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
23724   , p_adr_type_code                => 'S'
23725   , p_component_type               => l_component_type
23726   , p_component_code               => l_component_code
23727   , p_component_type_code          => l_component_type_code
23728   , p_component_appl_id            => l_component_appl_id
23729   , p_amb_context_code             => l_amb_context_code
23730   , p_side                         => 'NA'
23731   );
23732 
23733 
23734    --
23735    --
23736    END IF;
23737 
23738        --
23739        -- Update the line information that should be overwritten
23740        --
23741        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23742                                          p_header_num   => 1);
23743        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
23744 
23745        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23746 
23747        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
23748           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23749        END IF;
23750 
23751       --
23752       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23753       --
23754       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23755           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
23756       ELSE
23757           ---------------------------------------------------------------------------------------------------
23758           -- 4262811a Switch Sign
23759           ---------------------------------------------------------------------------------------------------
23760           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
23761           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23762                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23763           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23764                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23765           -- 5132302
23766           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23767                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23768 
23769       END IF;
23770 
23771       -- 4955764
23772       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23773       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23774 
23775 
23776       XLA_AE_LINES_PKG.ValidateCurrentLine;
23777       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23778 
23779       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23780                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23781                ,p_balance_type_code => l_balance_type_code);
23782 
23783    END IF;
23784 
23785    -----------------------------------------------------------------------------------------
23786    -- 4262811 Multiperiod Accounting
23787    -----------------------------------------------------------------------------------------
23788      -- No MPA option is assigned.
23789 
23790 
23791 END IF;
23792 END IF;
23793 --
23794 
23795 --
23796 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23797    trace
23801 END IF;
23798       (p_msg      => 'END of AcctLineType_62'
23799       ,p_level    => C_LEVEL_PROCEDURE
23800       ,p_module   => l_log_module);
23802 --
23803 EXCEPTION
23804   WHEN xla_exceptions_pkg.application_exception THEN
23805       RAISE;
23806   WHEN OTHERS THEN
23807        xla_exceptions_pkg.raise_message
23808            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_62');
23809 END AcctLineType_62;
23810 --
23811 
23812 ---------------------------------------
23813 --
23814 -- PRIVATE FUNCTION
23815 --         AcctLineType_63
23816 --
23817 ---------------------------------------
23818 PROCEDURE AcctLineType_63 (
23819   p_application_id        IN NUMBER
23820  ,p_event_id              IN NUMBER
23821  ,p_calculate_acctd_flag  IN VARCHAR2
23822  ,p_calculate_g_l_flag    IN VARCHAR2
23823  ,p_actual_flag           IN OUT VARCHAR2
23824  ,p_balance_type_code     OUT VARCHAR2
23825  ,p_gain_or_loss_ref      OUT VARCHAR2
23826  
23827 --Payment Currency Code
23828  , p_source_12            IN VARCHAR2
23829 --Automatic Offsets Value
23830  , p_source_16            IN VARCHAR2
23831  , p_source_16_meaning    IN VARCHAR2
23832 --Bank Cash Clearing Account
23833  , p_source_33            IN NUMBER
23834 --When to Account for Payment Option
23835  , p_source_50            IN VARCHAR2
23836 --Payment Distribution Type
23837  , p_source_51            IN VARCHAR2
23838  , p_source_51_meaning    IN VARCHAR2
23839 --Accounting Reversal Indicator
23840  , p_source_52            IN VARCHAR2
23841 --Payment Distribution Amount
23842  , p_source_53            IN NUMBER
23843 --Business Flow Accounts Payable Application Identifier
23844  , p_source_54            IN NUMBER
23845 --Business Flow Payment Distribution Type
23846  , p_source_55            IN VARCHAR2
23847 --Business Flow Payment Entity Code
23848  , p_source_56            IN VARCHAR2
23849 --Business Flow Payment Distribution Identifier
23850  , p_source_57            IN NUMBER
23851 --Business Flow Payment Identifier
23852  , p_source_58            IN NUMBER
23853 --Payment Distribution Identifier
23854  , p_source_59            IN NUMBER
23855 --Distribution Link Type
23856  , p_source_60            IN VARCHAR2
23857 --Override Accounted Amount Indicator
23858  , p_source_64            IN VARCHAR2
23859  , p_source_64_meaning    IN VARCHAR2
23860 --Payment Supplier Identifier
23861  , p_source_65            IN NUMBER
23862 --Payment Supplier Site Identifier
23863  , p_source_66            IN NUMBER
23864 --Third Party Type
23865  , p_source_67            IN VARCHAR2
23866 --Payment Distribution Reversed Identifier
23867  , p_source_68            IN NUMBER
23868 --Pooled Bank Account Option
23869  , p_source_117            IN VARCHAR2
23870  , p_source_117_meaning    IN VARCHAR2
23871 --Payment Maturity Date
23872  , p_source_118            IN DATE
23873 --Payment Exchange Date
23874  , p_source_121            IN DATE
23875 --Payment Exchange Rate
23876  , p_source_122            IN NUMBER
23877 --Payment Exchange Rate Type
23878  , p_source_123            IN VARCHAR2
23879 --Payment Distribution (Matured Rate) Ledger Amount
23880  , p_source_124            IN NUMBER
23881 )
23882 IS
23883 
23884 l_component_type              VARCHAR2(80);
23885 l_component_code              VARCHAR2(30);
23886 l_component_type_code         VARCHAR2(1);
23887 l_component_appl_id           INTEGER;
23888 l_amb_context_code            VARCHAR2(30);
23889 l_entity_code                 VARCHAR2(30);
23890 l_event_class_code            VARCHAR2(30);
23891 l_ae_header_id                NUMBER;
23892 l_event_type_code             VARCHAR2(30);
23893 l_line_definition_code        VARCHAR2(30);
23894 l_line_definition_owner_code  VARCHAR2(1);
23895 --
23896 -- adr variables
23897 l_segment                     VARCHAR2(30);
23898 l_ccid                        NUMBER;
23899 l_adr_transaction_coa_id      NUMBER;
23900 l_adr_accounting_coa_id       NUMBER;
23901 l_adr_flexfield_segment_code  VARCHAR2(30);
23902 l_adr_flex_value_set_id       NUMBER;
23903 l_adr_value_type_code         VARCHAR2(30);
23904 l_adr_value_combination_id    NUMBER;
23905 l_adr_value_segment_code      VARCHAR2(30);
23906 
23907 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
23908 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
23909 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
23910 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
23911 
23912 -- 4262811 Variables ------------------------------------------------------------------------------------------
23913 l_entered_amt_idx             NUMBER;
23914 l_accted_amt_idx              NUMBER;
23915 l_acc_rev_flag                VARCHAR2(1);
23916 l_accrual_line_num            NUMBER;
23917 l_tmp_amt                     NUMBER;
23918 l_acc_rev_natural_side_code   VARCHAR2(1);
23919 
23920 l_num_entries                 NUMBER;
23921 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
23922 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
23923 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
23924 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
23925 l_recog_line_1                NUMBER;
23926 l_recog_line_2                NUMBER;
23927 
23931 
23928 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
23929 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
23930 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
23932 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23933 
23934 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
23935 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
23936 
23937 ---------------------------------------------------------------------------------------------------------------
23938 
23939 
23940 --
23941 -- bulk performance
23942 --
23943 l_balance_type_code           VARCHAR2(1);
23944 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
23945 l_log_module                  VARCHAR2(240);
23946 
23947 --
23948 -- Upgrade strategy
23949 --
23950 l_actual_upg_option           VARCHAR2(1);
23951 l_enc_upg_option           VARCHAR2(1);
23952 
23953 --
23954 BEGIN
23955 --
23956 IF g_log_enabled THEN
23957       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
23958 END IF;
23959 --
23960 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23961 
23962       trace
23963          (p_msg      => 'BEGIN of AcctLineType_63'
23964          ,p_level    => C_LEVEL_PROCEDURE
23965          ,p_module   => l_log_module);
23966 
23967 END IF;
23968 --
23969 l_component_type             := 'AMB_JLT';
23970 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_AOS_AS';
23971 l_component_type_code        := 'S';
23972 l_component_appl_id          :=  200;
23973 l_amb_context_code           := 'DEFAULT';
23974 l_entity_code                := 'AP_PAYMENTS';
23975 l_event_class_code           := 'FUTURE DATED PAYMENTS';
23976 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
23977 l_line_definition_owner_code := 'S';
23978 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
23979 --
23980 l_balance_type_code          := 'A';
23981 l_segment                     := NULL;
23982 l_ccid                        := NULL;
23983 l_adr_transaction_coa_id      := NULL;
23984 l_adr_accounting_coa_id       := NULL;
23985 l_adr_flexfield_segment_code  := NULL;
23986 l_adr_flex_value_set_id       := NULL;
23987 l_adr_value_type_code         := NULL;
23988 l_adr_value_combination_id    := NULL;
23989 l_adr_value_segment_code      := NULL;
23990 
23991 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
23992 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
23993 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
23994 l_budgetary_control_flag     := 'N';
23995 
23996 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
23997 l_bflow_applied_to_amt       := NULL; -- 5132302
23998 l_entered_amt_idx            := NULL;          -- 4262811
23999 l_accted_amt_idx             := NULL;          -- 4262811
24000 l_acc_rev_flag               := NULL;          -- 4262811
24001 l_accrual_line_num           := NULL;          -- 4262811
24002 l_tmp_amt                    := NULL;          -- 4262811
24003 --
24004  
24005 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24006     l_balance_type_code <> 'B' THEN
24007 IF (NVL(p_source_50,'
24008 ') =  'ALWAYS_ALWAYS' OR 
24009 NVL(p_source_50,'
24010 ') =  'ALWAYS_ISSUE') AND 
24011 (NVL(p_source_117,'
24012 ') =  'Y' AND 
24013 NVL(p_source_16,'
24014 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
24015 p_source_118 IS NOT NULL AND 
24016 NVL(p_source_51,'
24017 ') =  'CASH'
24018  THEN 
24019 
24020    --
24021    XLA_AE_LINES_PKG.SetNewLine;
24022 
24023    p_balance_type_code          := l_balance_type_code;
24024    -- set the flag so later we will know whether the gain loss line needs to be created
24025    
24026    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24027      p_actual_flag :='A';
24028    END IF;
24029 
24030    --
24031    -- bulk performance
24032    --
24033    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24034                                       p_header_num   => 0); -- 4262811
24035    --
24036    -- set accounting line options
24037    --
24038    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24039            p_natural_side_code          => 'C'
24040          , p_gain_or_loss_flag          => 'N'
24041          , p_gl_transfer_mode_code      => 'S'
24042          , p_acct_entry_type_code       => 'A'
24043          , p_switch_side_flag           => 'Y'
24044          , p_merge_duplicate_code       => 'A'
24045          );
24046    --
24047    l_acc_rev_natural_side_code := 'D';  -- 4262811
24048    -- 
24049    --
24050    -- set accounting line type info
24051    --
24052    xla_ae_lines_pkg.SetAcctLineType
24053       (p_component_type             => l_component_type
24054       ,p_event_type_code            => l_event_type_code
24055       ,p_line_definition_owner_code => l_line_definition_owner_code
24056       ,p_line_definition_code       => l_line_definition_code
24057       ,p_accounting_line_code       => l_component_code
24058       ,p_accounting_line_type_code  => l_component_type_code
24059       ,p_accounting_line_appl_id    => l_component_appl_id
24060       ,p_amb_context_code           => l_amb_context_code
24064    -- set accounting class
24061       ,p_entity_code                => l_entity_code
24062       ,p_event_class_code           => l_event_class_code);
24063    --
24065    --
24066    xla_ae_lines_pkg.SetAcctClass(
24067            p_accounting_class_code  => 'CASH_CLEARING'
24068          , p_ae_header_id           => l_ae_header_id
24069          );
24070 
24071    --
24072    -- set rounding class
24073    --
24074    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24075                       'CASH_CLEARING';
24076 
24077    --
24078    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24079    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24080    --
24081    -- bulk performance
24082    --
24083    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24084 
24085    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24086       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24087 
24088    -- 4955764
24089    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24090       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24091 
24092    -- 4458381 Public Sector Enh
24093    
24094    --
24095    -- set accounting attributes for the line type
24096    --
24097    l_entered_amt_idx := 9;
24098    l_accted_amt_idx  := 14;
24099    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
24100    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24101    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
24102    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
24103    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
24104    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24105    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
24106    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
24107    l_rec_acct_attrs.array_char_value(4)  := p_source_56;
24108    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
24109    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
24110    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24111    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
24112    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
24113    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
24114    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
24115    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
24116    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
24117    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
24118    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
24119    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
24120    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
24121    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
24122    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
24123    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
24124    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
24125    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
24126    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
24127    l_rec_acct_attrs.array_num_value(14)  := p_source_124;
24128    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
24129    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
24130    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
24131    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
24132    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
24133    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
24134    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
24135    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
24136    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
24137    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
24138    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
24139    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
24140 
24141    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24142    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24143 
24144    ---------------------------------------------------------------------------------------------------------------
24145    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24146    ---------------------------------------------------------------------------------------------------------------
24147    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24148 
24149    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24150    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24151 
24152    IF xla_accounting_cache_pkg.GetValueChar
24153          (p_source_code         => 'LEDGER_CATEGORY_CODE'
24154          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24155    AND l_bflow_method_code = 'PRIOR_ENTRY'
24156 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24157    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24161          xla_ae_lines_pkg.BflowUpgEntry
24158          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24159        )
24160    THEN
24162            (p_business_method_code    => l_bflow_method_code
24163            ,p_business_class_code     => l_bflow_class_code
24164            ,p_balance_type            => l_balance_type_code);
24165    ELSE
24166       NULL;
24167 XLA_AE_LINES_PKG.business_flow_validation(
24168                                 p_business_method_code     => l_bflow_method_code
24169                                ,p_business_class_code      => l_bflow_class_code
24170                                ,p_inherit_description_flag => l_inherit_desc_flag);
24171    END IF;
24172 
24173    --
24174    -- call analytical criteria
24175    --
24176    
24177    --
24178    -- call description
24179    --
24180    -- No description or it is inherited.
24181    --
24182    -- call ADRs
24183    -- Bug 4922099
24184    --
24185    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24186         (NVL(l_actual_upg_option, 'N') = 'O') OR
24187         (NVL(l_enc_upg_option, 'N') = 'O')
24188       )
24189    THEN
24190    NULL;
24191    --
24192    --
24193    
24194    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
24195      p_code_combination_id      => TO_NUMBER(C_NUM)
24196    , p_value_type_code          => NULL
24197    , p_transaction_coa_id       => null
24198    , p_accounting_coa_id        => null
24199    , p_adr_code                 => NULL
24200    , p_adr_type_code            => NULL
24201    , p_component_type           => l_component_type
24202    , p_component_code           => l_component_code
24203    , p_component_type_code      => l_component_type_code
24204    , p_component_appl_id        => l_component_appl_id
24205    , p_amb_context_code         => l_amb_context_code
24206    , p_side                     => NULL
24207    );
24208 
24209    
24210   -- initialise segments
24211   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24212   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24213   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24214   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24215   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24216   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24217   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24218   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24219   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24220   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24221   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24222   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24223   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24224   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24225   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24226   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24227   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24228   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24229   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24230   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24231   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24232   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24233   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24234   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24235   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24236   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24237   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24238   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24239   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24240   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24241   --
24242 
24243    --
24244 
24245 
24246    l_segment := AcctDerRule_13(
24247            p_application_id           => p_application_id
24248          , p_ae_header_id             => l_ae_header_id 
24249 , p_source_33 => p_source_33
24250          , x_transaction_coa_id       => l_adr_transaction_coa_id
24251          , x_accounting_coa_id        => l_adr_accounting_coa_id
24252          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
24253          , x_flex_value_set_id        => l_adr_flex_value_set_id
24254          , x_value_type_code          => l_adr_value_type_code
24255          , x_value_combination_id     => l_adr_value_combination_id
24256          , x_value_segment_code       => l_adr_value_segment_code
24257          , p_side                     => 'NA'
24258          , p_override_seg_flag        => 'Y'
24259    );
24260 
24261    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
24262 
24266         , p_from_segment_code       => l_adr_value_segment_code
24263       xla_ae_lines_pkg.set_segment(
24264           p_to_segment_code         => 'GL_ACCOUNT'
24265         , p_segment_value           => l_segment
24267         , p_from_combination_id     => l_adr_value_combination_id
24268         , p_value_type_code         => l_adr_value_type_code
24269         , p_transaction_coa_id      => l_adr_transaction_coa_id
24270         , p_accounting_coa_id       => l_adr_accounting_coa_id
24271         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
24272         , p_flex_value_set_id       => l_adr_flex_value_set_id
24273         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
24274         , p_adr_type_code           => 'S'
24275         , p_component_type          => l_component_type
24276         , p_component_code          => l_component_code
24277         , p_component_type_code     => l_component_type_code
24278         , p_component_appl_id       => l_component_appl_id
24279         , p_amb_context_code        => l_amb_context_code
24280         , p_entity_code             => 'AP_PAYMENTS'
24281         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
24282         , p_side                    => 'NA'
24283         );
24284 
24285   END IF;
24286 
24287    --
24288    --
24289    END IF;
24290    --
24291    -- Bug 4922099
24292    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24293           (NVL(l_enc_upg_option, 'N') = 'O')
24294         ) AND
24295         (l_bflow_method_code = 'PRIOR_ENTRY')
24296       )
24297    THEN
24298       IF
24299       --
24300       1 = 2
24301       --
24302       THEN
24303       xla_accounting_err_pkg.build_message
24304                                     (p_appli_s_name            => 'XLA'
24305                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24306                                     ,p_token_1                 => 'LINE_NUMBER'
24307                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
24308                                     ,p_token_2                 => 'LINE_TYPE_NAME'
24309                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
24310                                                                              l_component_type
24311                                                                             ,l_component_code
24312                                                                             ,l_component_type_code
24313                                                                             ,l_component_appl_id
24314                                                                             ,l_amb_context_code
24315                                                                             ,l_entity_code
24316                                                                             ,l_event_class_code
24317                                                                            )
24318                                     ,p_token_3                 => 'OWNER'
24319                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
24320                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
24321                                                                           ,p_lookup_code    => l_component_type_code
24322                                                                          )
24323                                     ,p_token_4                 => 'PRODUCT_NAME'
24324                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24325                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24326                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24327                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24328                                     ,p_ae_header_id            =>  NULL
24329                                        );
24330 
24331         IF (C_LEVEL_ERROR>= g_log_level) THEN
24332                  trace
24333                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24334                       ,p_level    => C_LEVEL_ERROR
24335                       ,p_module   => l_log_module);
24336         END IF;
24337       END IF;
24338    END IF;
24339    --
24340    --
24341    ------------------------------------------------------------------------------------------------
24342    -- 4219869 Business Flow
24343    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24344    -- Prior Entry.  Currently, the following code is always generated.
24345    ------------------------------------------------------------------------------------------------
24346    XLA_AE_LINES_PKG.ValidateCurrentLine;
24347 
24348    ------------------------------------------------------------------------------------
24349    -- 4219869 Business Flow
24350    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24351    ------------------------------------------------------------------------------------
24352    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24353 
24354    ----------------------------------------------------------------------------------
24355    -- 4219869 Business Flow
24356    -- Update journal entry status -- Need to generate this within IF <condition>
24360          ,p_balance_type_code => l_balance_type_code
24357    ----------------------------------------------------------------------------------
24358    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24359          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24361          );
24362 
24363    -------------------------------------------------------------------------------------------
24364    -- 4262811 - Generate the Accrual Reversal lines
24365    -------------------------------------------------------------------------------------------
24366    BEGIN
24367       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24368                               (g_array_event(p_event_id).array_value_num('header_index'));
24369       IF l_acc_rev_flag IS NULL THEN
24370          l_acc_rev_flag := 'N';
24371       END IF;
24372    EXCEPTION
24373       WHEN OTHERS THEN
24374          l_acc_rev_flag := 'N';
24375    END;
24376    --
24377    IF (l_acc_rev_flag = 'Y') THEN
24378 
24379        -- 4645092  ------------------------------------------------------------------------------
24380        -- To allow MPA report to determine if it should generate report process
24381        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24382        ------------------------------------------------------------------------------------------
24383 
24384        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24385        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24386    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
24387    -- call ADRs
24388    -- Bug 4922099
24389    --
24390    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24391         (NVL(l_actual_upg_option, 'N') = 'O') OR
24392         (NVL(l_enc_upg_option, 'N') = 'O')
24393       )
24394    THEN
24395    NULL;
24396    --
24397    --
24398    
24399    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
24400      p_code_combination_id      => TO_NUMBER(C_NUM)
24401    , p_value_type_code          => NULL
24402    , p_transaction_coa_id       => null
24403    , p_accounting_coa_id        => null
24404    , p_adr_code                 => NULL
24405    , p_adr_type_code            => NULL
24406    , p_component_type           => l_component_type
24407    , p_component_code           => l_component_code
24408    , p_component_type_code      => l_component_type_code
24409    , p_component_appl_id        => l_component_appl_id
24410    , p_amb_context_code         => l_amb_context_code
24411    , p_side                     => NULL
24412    );
24413 
24414    
24415   -- initialise segments
24416   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24417   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24418   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24419   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24420   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24421   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24422   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24423   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24424   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24425   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24426   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24427   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24428   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24429   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24430   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24431   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24432   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24433   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24434   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24435   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24436   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24437   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24438   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24439   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24440   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24441   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24442   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24443   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24444   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24445   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24446   --
24447 
24448    --
24449 
24450 
24451    l_segment := AcctDerRule_13(
24452            p_application_id           => p_application_id
24456          , x_accounting_coa_id        => l_adr_accounting_coa_id
24453          , p_ae_header_id             => l_ae_header_id 
24454 , p_source_33 => p_source_33
24455          , x_transaction_coa_id       => l_adr_transaction_coa_id
24457          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
24458          , x_flex_value_set_id        => l_adr_flex_value_set_id
24459          , x_value_type_code          => l_adr_value_type_code
24460          , x_value_combination_id     => l_adr_value_combination_id
24461          , x_value_segment_code       => l_adr_value_segment_code
24462          , p_side                     => 'NA'
24463          , p_override_seg_flag        => 'Y'
24464    );
24465 
24466    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
24467 
24468       xla_ae_lines_pkg.set_segment(
24469           p_to_segment_code         => 'GL_ACCOUNT'
24470         , p_segment_value           => l_segment
24471         , p_from_segment_code       => l_adr_value_segment_code
24472         , p_from_combination_id     => l_adr_value_combination_id
24473         , p_value_type_code         => l_adr_value_type_code
24474         , p_transaction_coa_id      => l_adr_transaction_coa_id
24475         , p_accounting_coa_id       => l_adr_accounting_coa_id
24476         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
24477         , p_flex_value_set_id       => l_adr_flex_value_set_id
24478         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
24479         , p_adr_type_code           => 'S'
24480         , p_component_type          => l_component_type
24481         , p_component_code          => l_component_code
24482         , p_component_type_code     => l_component_type_code
24483         , p_component_appl_id       => l_component_appl_id
24484         , p_amb_context_code        => l_amb_context_code
24485         , p_entity_code             => 'AP_PAYMENTS'
24486         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
24487         , p_side                    => 'NA'
24488         );
24489 
24490   END IF;
24491 
24492    --
24493    --
24494    END IF;
24495 
24496        --
24497        -- Update the line information that should be overwritten
24498        --
24499        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24500                                          p_header_num   => 1);
24501        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
24502 
24503        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24504 
24505        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
24506           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24507        END IF;
24508 
24509       --
24510       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24511       --
24512       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24513           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
24514       ELSE
24515           ---------------------------------------------------------------------------------------------------
24516           -- 4262811a Switch Sign
24517           ---------------------------------------------------------------------------------------------------
24518           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
24519           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24520                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24521           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24522                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24523           -- 5132302
24524           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24525                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24526 
24527       END IF;
24528 
24529       -- 4955764
24530       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24531       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24532 
24533 
24534       XLA_AE_LINES_PKG.ValidateCurrentLine;
24535       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24536 
24537       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24538                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24539                ,p_balance_type_code => l_balance_type_code);
24540 
24541    END IF;
24542 
24543    -----------------------------------------------------------------------------------------
24544    -- 4262811 Multiperiod Accounting
24545    -----------------------------------------------------------------------------------------
24546      -- No MPA option is assigned.
24547 
24548 
24549 END IF;
24550 END IF;
24551 --
24552 
24553 --
24554 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24555    trace
24556       (p_msg      => 'END of AcctLineType_63'
24557       ,p_level    => C_LEVEL_PROCEDURE
24558       ,p_module   => l_log_module);
24559 END IF;
24560 --
24561 EXCEPTION
24562   WHEN xla_exceptions_pkg.application_exception THEN
24563       RAISE;
24567 END AcctLineType_63;
24564   WHEN OTHERS THEN
24565        xla_exceptions_pkg.raise_message
24566            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_63');
24568 --
24569 
24570 ---------------------------------------
24571 --
24572 -- PRIVATE FUNCTION
24573 --         AcctLineType_64
24574 --
24575 ---------------------------------------
24576 PROCEDURE AcctLineType_64 (
24577   p_application_id        IN NUMBER
24578  ,p_event_id              IN NUMBER
24579  ,p_calculate_acctd_flag  IN VARCHAR2
24580  ,p_calculate_g_l_flag    IN VARCHAR2
24581  ,p_actual_flag           IN OUT VARCHAR2
24582  ,p_balance_type_code     OUT VARCHAR2
24583  ,p_gain_or_loss_ref      OUT VARCHAR2
24584  
24585 --Payment Currency Code
24586  , p_source_12            IN VARCHAR2
24587 --Automatic Offsets Value
24588  , p_source_16            IN VARCHAR2
24589  , p_source_16_meaning    IN VARCHAR2
24590 --Bank Cash Clearing Account
24591  , p_source_33            IN NUMBER
24592 --When to Account for Payment Option
24593  , p_source_50            IN VARCHAR2
24594 --Payment Distribution Type
24595  , p_source_51            IN VARCHAR2
24596  , p_source_51_meaning    IN VARCHAR2
24597 --Accounting Reversal Indicator
24598  , p_source_52            IN VARCHAR2
24599 --Payment Distribution Amount
24600  , p_source_53            IN NUMBER
24601 --Business Flow Accounts Payable Application Identifier
24602  , p_source_54            IN NUMBER
24603 --Business Flow Payment Distribution Type
24604  , p_source_55            IN VARCHAR2
24605 --Business Flow Payment Entity Code
24606  , p_source_56            IN VARCHAR2
24607 --Business Flow Payment Distribution Identifier
24608  , p_source_57            IN NUMBER
24609 --Business Flow Payment Identifier
24610  , p_source_58            IN NUMBER
24611 --Payment Distribution Identifier
24612  , p_source_59            IN NUMBER
24613 --Distribution Link Type
24614  , p_source_60            IN VARCHAR2
24615 --Override Accounted Amount Indicator
24616  , p_source_64            IN VARCHAR2
24617  , p_source_64_meaning    IN VARCHAR2
24618 --Payment Supplier Identifier
24619  , p_source_65            IN NUMBER
24620 --Payment Supplier Site Identifier
24621  , p_source_66            IN NUMBER
24622 --Third Party Type
24623  , p_source_67            IN VARCHAR2
24624 --Payment Distribution Reversed Identifier
24625  , p_source_68            IN NUMBER
24626 --Pooled Bank Account Option
24627  , p_source_117            IN VARCHAR2
24628  , p_source_117_meaning    IN VARCHAR2
24629 --Payment Maturity Date
24630  , p_source_118            IN DATE
24631 --Payment Exchange Date
24632  , p_source_121            IN DATE
24633 --Payment Exchange Rate
24634  , p_source_122            IN NUMBER
24635 --Payment Exchange Rate Type
24636  , p_source_123            IN VARCHAR2
24637 --Payment Distribution (Matured Rate) Ledger Amount
24638  , p_source_124            IN NUMBER
24639 )
24640 IS
24641 
24642 l_component_type              VARCHAR2(80);
24643 l_component_code              VARCHAR2(30);
24644 l_component_type_code         VARCHAR2(1);
24645 l_component_appl_id           INTEGER;
24646 l_amb_context_code            VARCHAR2(30);
24647 l_entity_code                 VARCHAR2(30);
24648 l_event_class_code            VARCHAR2(30);
24649 l_ae_header_id                NUMBER;
24650 l_event_type_code             VARCHAR2(30);
24651 l_line_definition_code        VARCHAR2(30);
24652 l_line_definition_owner_code  VARCHAR2(1);
24653 --
24654 -- adr variables
24655 l_segment                     VARCHAR2(30);
24656 l_ccid                        NUMBER;
24657 l_adr_transaction_coa_id      NUMBER;
24658 l_adr_accounting_coa_id       NUMBER;
24659 l_adr_flexfield_segment_code  VARCHAR2(30);
24660 l_adr_flex_value_set_id       NUMBER;
24661 l_adr_value_type_code         VARCHAR2(30);
24662 l_adr_value_combination_id    NUMBER;
24663 l_adr_value_segment_code      VARCHAR2(30);
24664 
24665 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
24666 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
24667 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
24668 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
24669 
24670 -- 4262811 Variables ------------------------------------------------------------------------------------------
24671 l_entered_amt_idx             NUMBER;
24672 l_accted_amt_idx              NUMBER;
24673 l_acc_rev_flag                VARCHAR2(1);
24674 l_accrual_line_num            NUMBER;
24675 l_tmp_amt                     NUMBER;
24676 l_acc_rev_natural_side_code   VARCHAR2(1);
24677 
24678 l_num_entries                 NUMBER;
24679 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
24680 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
24681 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
24682 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
24683 l_recog_line_1                NUMBER;
24684 l_recog_line_2                NUMBER;
24685 
24686 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
24687 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
24688 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
24689 
24690 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24691 
24692 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
24696 
24693 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
24694 
24695 ---------------------------------------------------------------------------------------------------------------
24697 
24698 --
24699 -- bulk performance
24700 --
24701 l_balance_type_code           VARCHAR2(1);
24702 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
24703 l_log_module                  VARCHAR2(240);
24704 
24705 --
24706 -- Upgrade strategy
24707 --
24708 l_actual_upg_option           VARCHAR2(1);
24709 l_enc_upg_option           VARCHAR2(1);
24710 
24711 --
24712 BEGIN
24713 --
24714 IF g_log_enabled THEN
24715       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
24716 END IF;
24717 --
24718 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24719 
24720       trace
24721          (p_msg      => 'BEGIN of AcctLineType_64'
24722          ,p_level    => C_LEVEL_PROCEDURE
24723          ,p_module   => l_log_module);
24724 
24725 END IF;
24726 --
24727 l_component_type             := 'AMB_JLT';
24728 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_AOS_BS';
24729 l_component_type_code        := 'S';
24730 l_component_appl_id          :=  200;
24731 l_amb_context_code           := 'DEFAULT';
24732 l_entity_code                := 'AP_PAYMENTS';
24733 l_event_class_code           := 'FUTURE DATED PAYMENTS';
24734 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
24735 l_line_definition_owner_code := 'S';
24736 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
24737 --
24738 l_balance_type_code          := 'A';
24739 l_segment                     := NULL;
24740 l_ccid                        := NULL;
24741 l_adr_transaction_coa_id      := NULL;
24742 l_adr_accounting_coa_id       := NULL;
24743 l_adr_flexfield_segment_code  := NULL;
24744 l_adr_flex_value_set_id       := NULL;
24745 l_adr_value_type_code         := NULL;
24746 l_adr_value_combination_id    := NULL;
24747 l_adr_value_segment_code      := NULL;
24748 
24749 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
24750 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
24751 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
24752 l_budgetary_control_flag     := 'N';
24753 
24754 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
24755 l_bflow_applied_to_amt       := NULL; -- 5132302
24756 l_entered_amt_idx            := NULL;          -- 4262811
24757 l_accted_amt_idx             := NULL;          -- 4262811
24758 l_acc_rev_flag               := NULL;          -- 4262811
24759 l_accrual_line_num           := NULL;          -- 4262811
24760 l_tmp_amt                    := NULL;          -- 4262811
24761 --
24762  
24763 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24764     l_balance_type_code <> 'B' THEN
24765 IF (NVL(p_source_50,'
24766 ') =  'ALWAYS_ALWAYS' OR 
24767 NVL(p_source_50,'
24768 ') =  'ALWAYS_CLEAR' OR 
24769 NVL(p_source_50,'
24770 ') =  'ALWAYS_ISSUE') AND 
24771 (NVL(p_source_117,'
24772 ') =  'Y' AND 
24773 NVL(p_source_16,'
24774 ') =  'BALANCING_SEGMENT') AND 
24775 p_source_118 IS NOT NULL AND 
24776 NVL(p_source_51,'
24777 ') =  'CASH'
24778  THEN 
24779 
24780    --
24781    XLA_AE_LINES_PKG.SetNewLine;
24782 
24783    p_balance_type_code          := l_balance_type_code;
24784    -- set the flag so later we will know whether the gain loss line needs to be created
24785    
24786    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24787      p_actual_flag :='A';
24788    END IF;
24789 
24790    --
24791    -- bulk performance
24792    --
24793    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24794                                       p_header_num   => 0); -- 4262811
24795    --
24796    -- set accounting line options
24797    --
24798    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24799            p_natural_side_code          => 'C'
24800          , p_gain_or_loss_flag          => 'N'
24801          , p_gl_transfer_mode_code      => 'S'
24802          , p_acct_entry_type_code       => 'A'
24803          , p_switch_side_flag           => 'Y'
24804          , p_merge_duplicate_code       => 'A'
24805          );
24806    --
24807    l_acc_rev_natural_side_code := 'D';  -- 4262811
24808    -- 
24809    --
24810    -- set accounting line type info
24811    --
24812    xla_ae_lines_pkg.SetAcctLineType
24813       (p_component_type             => l_component_type
24814       ,p_event_type_code            => l_event_type_code
24815       ,p_line_definition_owner_code => l_line_definition_owner_code
24816       ,p_line_definition_code       => l_line_definition_code
24817       ,p_accounting_line_code       => l_component_code
24818       ,p_accounting_line_type_code  => l_component_type_code
24819       ,p_accounting_line_appl_id    => l_component_appl_id
24820       ,p_amb_context_code           => l_amb_context_code
24821       ,p_entity_code                => l_entity_code
24822       ,p_event_class_code           => l_event_class_code);
24823    --
24824    -- set accounting class
24825    --
24826    xla_ae_lines_pkg.SetAcctClass(
24827            p_accounting_class_code  => 'CASH_CLEARING'
24828          , p_ae_header_id           => l_ae_header_id
24829          );
24830 
24831    --
24835                       'CASH_CLEARING';
24832    -- set rounding class
24833    --
24834    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24836 
24837    --
24838    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24839    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24840    --
24841    -- bulk performance
24842    --
24843    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24844 
24845    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24846       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24847 
24848    -- 4955764
24849    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24850       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24851 
24852    -- 4458381 Public Sector Enh
24853    
24854    --
24855    -- set accounting attributes for the line type
24856    --
24857    l_entered_amt_idx := 9;
24858    l_accted_amt_idx  := 14;
24859    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
24860    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24861    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
24862    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
24863    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
24864    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24865    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
24866    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
24867    l_rec_acct_attrs.array_char_value(4)  := p_source_56;
24868    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
24869    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
24870    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24871    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
24872    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
24873    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
24874    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
24875    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
24876    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
24877    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
24878    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
24879    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
24880    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
24881    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
24882    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
24883    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
24884    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
24885    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
24886    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
24887    l_rec_acct_attrs.array_num_value(14)  := p_source_124;
24888    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
24889    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
24890    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
24891    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
24892    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
24893    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
24894    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
24895    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
24896    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
24897    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
24898    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
24899    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
24900 
24901    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24902    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24903 
24904    ---------------------------------------------------------------------------------------------------------------
24905    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24906    ---------------------------------------------------------------------------------------------------------------
24907    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24908 
24909    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24910    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24911 
24912    IF xla_accounting_cache_pkg.GetValueChar
24913          (p_source_code         => 'LEDGER_CATEGORY_CODE'
24914          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24915    AND l_bflow_method_code = 'PRIOR_ENTRY'
24916 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24917    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24918          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24919        )
24920    THEN
24921          xla_ae_lines_pkg.BflowUpgEntry
24922            (p_business_method_code    => l_bflow_method_code
24923            ,p_business_class_code     => l_bflow_class_code
24924            ,p_balance_type            => l_balance_type_code);
24928                                 p_business_method_code     => l_bflow_method_code
24925    ELSE
24926       NULL;
24927 XLA_AE_LINES_PKG.business_flow_validation(
24929                                ,p_business_class_code      => l_bflow_class_code
24930                                ,p_inherit_description_flag => l_inherit_desc_flag);
24931    END IF;
24932 
24933    --
24934    -- call analytical criteria
24935    --
24936    
24937    --
24938    -- call description
24939    --
24940    -- No description or it is inherited.
24941    --
24942    -- call ADRs
24943    -- Bug 4922099
24944    --
24945    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24946         (NVL(l_actual_upg_option, 'N') = 'O') OR
24947         (NVL(l_enc_upg_option, 'N') = 'O')
24948       )
24949    THEN
24950    NULL;
24951    --
24952    --
24953    
24954   l_ccid := AcctDerRule_30(
24955            p_application_id           => p_application_id
24956          , p_ae_header_id             => l_ae_header_id 
24957 , p_source_33 => p_source_33
24958          , x_transaction_coa_id       => l_adr_transaction_coa_id
24959          , x_accounting_coa_id        => l_adr_accounting_coa_id
24960          , x_value_type_code          => l_adr_value_type_code
24961          , p_side                     => 'NA'
24962    );
24963 
24964    xla_ae_lines_pkg.set_ccid(
24965     p_code_combination_id          => l_ccid
24966   , p_value_type_code              => l_adr_value_type_code
24967   , p_transaction_coa_id           => l_adr_transaction_coa_id
24968   , p_accounting_coa_id            => l_adr_accounting_coa_id
24969   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
24970   , p_adr_type_code                => 'S'
24971   , p_component_type               => l_component_type
24972   , p_component_code               => l_component_code
24973   , p_component_type_code          => l_component_type_code
24974   , p_component_appl_id            => l_component_appl_id
24975   , p_amb_context_code             => l_amb_context_code
24976   , p_side                         => 'NA'
24977   );
24978 
24979 
24980    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
24981      p_to_segment_code         => 'GL_BALANCING'
24982    , p_segment_value           => C_CHAR
24983    , p_from_segment_code       => NULL
24984    , p_from_combination_id     => NULL
24985    , p_value_type_code         => NULL
24986    , p_transaction_coa_id      => null
24987    , p_accounting_coa_id       => null
24988    , p_flexfield_segment_code  => NULL
24989    , p_flex_value_set_id       => NULL
24990    , p_adr_code                => NULL
24991    , p_adr_type_code           => NULL
24992    , p_component_type          => l_component_type
24993    , p_component_code          => l_component_code
24994    , p_component_type_code     => l_component_type_code
24995    , p_component_appl_id       => l_component_appl_id
24996    , p_amb_context_code        => l_amb_context_code
24997    , p_entity_code             => 'AP_PAYMENTS'
24998    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
24999    , p_side                    => 'NA'
25000    );
25001    --
25002 
25003 
25004    --
25005    --
25006    END IF;
25007    --
25008    -- Bug 4922099
25009    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25010           (NVL(l_enc_upg_option, 'N') = 'O')
25011         ) AND
25012         (l_bflow_method_code = 'PRIOR_ENTRY')
25013       )
25014    THEN
25015       IF
25016       --
25017       1 = 2
25018       --
25019       THEN
25020       xla_accounting_err_pkg.build_message
25021                                     (p_appli_s_name            => 'XLA'
25022                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25023                                     ,p_token_1                 => 'LINE_NUMBER'
25024                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
25025                                     ,p_token_2                 => 'LINE_TYPE_NAME'
25026                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
25027                                                                              l_component_type
25028                                                                             ,l_component_code
25029                                                                             ,l_component_type_code
25030                                                                             ,l_component_appl_id
25031                                                                             ,l_amb_context_code
25032                                                                             ,l_entity_code
25033                                                                             ,l_event_class_code
25034                                                                            )
25035                                     ,p_token_3                 => 'OWNER'
25036                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
25037                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
25038                                                                           ,p_lookup_code    => l_component_type_code
25039                                                                          )
25040                                     ,p_token_4                 => 'PRODUCT_NAME'
25044                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25041                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25042                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25043                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25045                                     ,p_ae_header_id            =>  NULL
25046                                        );
25047 
25048         IF (C_LEVEL_ERROR>= g_log_level) THEN
25049                  trace
25050                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25051                       ,p_level    => C_LEVEL_ERROR
25052                       ,p_module   => l_log_module);
25053         END IF;
25054       END IF;
25055    END IF;
25056    --
25057    --
25058    ------------------------------------------------------------------------------------------------
25059    -- 4219869 Business Flow
25060    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25061    -- Prior Entry.  Currently, the following code is always generated.
25062    ------------------------------------------------------------------------------------------------
25063    XLA_AE_LINES_PKG.ValidateCurrentLine;
25064 
25065    ------------------------------------------------------------------------------------
25066    -- 4219869 Business Flow
25067    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25068    ------------------------------------------------------------------------------------
25069    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25070 
25071    ----------------------------------------------------------------------------------
25072    -- 4219869 Business Flow
25073    -- Update journal entry status -- Need to generate this within IF <condition>
25074    ----------------------------------------------------------------------------------
25075    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25076          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25077          ,p_balance_type_code => l_balance_type_code
25078          );
25079 
25080    -------------------------------------------------------------------------------------------
25081    -- 4262811 - Generate the Accrual Reversal lines
25082    -------------------------------------------------------------------------------------------
25083    BEGIN
25084       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25085                               (g_array_event(p_event_id).array_value_num('header_index'));
25086       IF l_acc_rev_flag IS NULL THEN
25087          l_acc_rev_flag := 'N';
25088       END IF;
25089    EXCEPTION
25090       WHEN OTHERS THEN
25091          l_acc_rev_flag := 'N';
25092    END;
25093    --
25094    IF (l_acc_rev_flag = 'Y') THEN
25095 
25096        -- 4645092  ------------------------------------------------------------------------------
25097        -- To allow MPA report to determine if it should generate report process
25098        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25099        ------------------------------------------------------------------------------------------
25100 
25101        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25102        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25103    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
25104    -- call ADRs
25105    -- Bug 4922099
25106    --
25107    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25108         (NVL(l_actual_upg_option, 'N') = 'O') OR
25109         (NVL(l_enc_upg_option, 'N') = 'O')
25110       )
25111    THEN
25112    NULL;
25113    --
25114    --
25115    
25116   l_ccid := AcctDerRule_30(
25117            p_application_id           => p_application_id
25118          , p_ae_header_id             => l_ae_header_id 
25119 , p_source_33 => p_source_33
25120          , x_transaction_coa_id       => l_adr_transaction_coa_id
25121          , x_accounting_coa_id        => l_adr_accounting_coa_id
25122          , x_value_type_code          => l_adr_value_type_code
25123          , p_side                     => 'NA'
25124    );
25125 
25126    xla_ae_lines_pkg.set_ccid(
25127     p_code_combination_id          => l_ccid
25128   , p_value_type_code              => l_adr_value_type_code
25129   , p_transaction_coa_id           => l_adr_transaction_coa_id
25130   , p_accounting_coa_id            => l_adr_accounting_coa_id
25131   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
25132   , p_adr_type_code                => 'S'
25133   , p_component_type               => l_component_type
25134   , p_component_code               => l_component_code
25135   , p_component_type_code          => l_component_type_code
25136   , p_component_appl_id            => l_component_appl_id
25137   , p_amb_context_code             => l_amb_context_code
25138   , p_side                         => 'NA'
25139   );
25140 
25141 
25142    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
25143      p_to_segment_code         => 'GL_BALANCING'
25144    , p_segment_value           => C_CHAR
25145    , p_from_segment_code       => NULL
25146    , p_from_combination_id     => NULL
25147    , p_value_type_code         => NULL
25148    , p_transaction_coa_id      => null
25152    , p_adr_code                => NULL
25149    , p_accounting_coa_id       => null
25150    , p_flexfield_segment_code  => NULL
25151    , p_flex_value_set_id       => NULL
25153    , p_adr_type_code           => NULL
25154    , p_component_type          => l_component_type
25155    , p_component_code          => l_component_code
25156    , p_component_type_code     => l_component_type_code
25157    , p_component_appl_id       => l_component_appl_id
25158    , p_amb_context_code        => l_amb_context_code
25159    , p_entity_code             => 'AP_PAYMENTS'
25160    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
25161    , p_side                    => 'NA'
25162    );
25163    --
25164 
25165 
25166    --
25167    --
25168    END IF;
25169 
25170        --
25171        -- Update the line information that should be overwritten
25172        --
25173        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25174                                          p_header_num   => 1);
25175        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
25176 
25177        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25178 
25179        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
25180           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25181        END IF;
25182 
25183       --
25184       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25185       --
25186       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25187           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
25188       ELSE
25189           ---------------------------------------------------------------------------------------------------
25190           -- 4262811a Switch Sign
25191           ---------------------------------------------------------------------------------------------------
25192           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
25193           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25194                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25195           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25196                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25197           -- 5132302
25198           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25199                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25200 
25201       END IF;
25202 
25203       -- 4955764
25204       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25205       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25206 
25207 
25208       XLA_AE_LINES_PKG.ValidateCurrentLine;
25209       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25210 
25211       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25212                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25213                ,p_balance_type_code => l_balance_type_code);
25214 
25215    END IF;
25216 
25217    -----------------------------------------------------------------------------------------
25218    -- 4262811 Multiperiod Accounting
25219    -----------------------------------------------------------------------------------------
25220      -- No MPA option is assigned.
25221 
25222 
25223 END IF;
25224 END IF;
25225 --
25226 
25227 --
25228 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25229    trace
25230       (p_msg      => 'END of AcctLineType_64'
25231       ,p_level    => C_LEVEL_PROCEDURE
25232       ,p_module   => l_log_module);
25233 END IF;
25234 --
25235 EXCEPTION
25236   WHEN xla_exceptions_pkg.application_exception THEN
25237       RAISE;
25238   WHEN OTHERS THEN
25239        xla_exceptions_pkg.raise_message
25240            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_64');
25241 END AcctLineType_64;
25242 --
25243 
25244 ---------------------------------------
25245 --
25246 -- PRIVATE FUNCTION
25247 --         AcctLineType_65
25248 --
25249 ---------------------------------------
25250 PROCEDURE AcctLineType_65 (
25251   p_application_id        IN NUMBER
25252  ,p_event_id              IN NUMBER
25253  ,p_calculate_acctd_flag  IN VARCHAR2
25254  ,p_calculate_g_l_flag    IN VARCHAR2
25255  ,p_actual_flag           IN OUT VARCHAR2
25256  ,p_balance_type_code     OUT VARCHAR2
25257  ,p_gain_or_loss_ref      OUT VARCHAR2
25258  
25259 --Payment Currency Code
25260  , p_source_12            IN VARCHAR2
25261 --Payment Distribution (Payment Rate) Ledger Amount
25262  , p_source_21            IN NUMBER
25263 --Bank Cash Clearing Account
25264  , p_source_33            IN NUMBER
25265 --Automatic Offsets Flag
25266  , p_source_42            IN VARCHAR2
25267  , p_source_42_meaning    IN VARCHAR2
25268 --When to Account for Payment Option
25269  , p_source_50            IN VARCHAR2
25270 --Payment Distribution Type
25271  , p_source_51            IN VARCHAR2
25272  , p_source_51_meaning    IN VARCHAR2
25273 --Accounting Reversal Indicator
25274  , p_source_52            IN VARCHAR2
25278  , p_source_54            IN NUMBER
25275 --Payment Distribution Amount
25276  , p_source_53            IN NUMBER
25277 --Business Flow Accounts Payable Application Identifier
25279 --Payment Distribution Identifier
25280  , p_source_59            IN NUMBER
25281 --Distribution Link Type
25282  , p_source_60            IN VARCHAR2
25283 --Override Accounted Amount Indicator
25284  , p_source_64            IN VARCHAR2
25285  , p_source_64_meaning    IN VARCHAR2
25286 --Payment Supplier Identifier
25287  , p_source_65            IN NUMBER
25288 --Payment Supplier Site Identifier
25289  , p_source_66            IN NUMBER
25290 --Third Party Type
25291  , p_source_67            IN VARCHAR2
25292 --Payment Distribution Reversed Identifier
25293  , p_source_68            IN NUMBER
25294 --Invoice Distribution Tax Line Identifier
25295  , p_source_69            IN NUMBER
25296 --Invoice Distribution Summary Tax Line Identifier
25297  , p_source_70            IN NUMBER
25298 --Payment Type
25299  , p_source_71            IN VARCHAR2
25300  , p_source_71_meaning    IN VARCHAR2
25301 --Business Flow Invoice Distribution Type
25302  , p_source_73            IN VARCHAR2
25303 --Business Flow Invoice Entity Code
25304  , p_source_74            IN VARCHAR2
25305 --Business Flow Invoice Distribution Identifier
25306  , p_source_75            IN NUMBER
25307 --Business Flow Invoice Identifier
25308  , p_source_76            IN NUMBER
25309 --Invoice Distribution Tax Distribution Identifier from Tax
25310  , p_source_77            IN NUMBER
25311 --Pooled Bank Account Option
25312  , p_source_117            IN VARCHAR2
25313  , p_source_117_meaning    IN VARCHAR2
25314 --Payment Maturity Date
25315  , p_source_118            IN DATE
25316 --Payment Exchange Date
25317  , p_source_121            IN DATE
25318 --Payment Exchange Rate
25319  , p_source_122            IN NUMBER
25320 --Payment Exchange Rate Type
25321  , p_source_123            IN VARCHAR2
25322 )
25323 IS
25324 
25325 l_component_type              VARCHAR2(80);
25326 l_component_code              VARCHAR2(30);
25327 l_component_type_code         VARCHAR2(1);
25328 l_component_appl_id           INTEGER;
25329 l_amb_context_code            VARCHAR2(30);
25330 l_entity_code                 VARCHAR2(30);
25331 l_event_class_code            VARCHAR2(30);
25332 l_ae_header_id                NUMBER;
25333 l_event_type_code             VARCHAR2(30);
25334 l_line_definition_code        VARCHAR2(30);
25335 l_line_definition_owner_code  VARCHAR2(1);
25336 --
25337 -- adr variables
25338 l_segment                     VARCHAR2(30);
25339 l_ccid                        NUMBER;
25340 l_adr_transaction_coa_id      NUMBER;
25341 l_adr_accounting_coa_id       NUMBER;
25342 l_adr_flexfield_segment_code  VARCHAR2(30);
25343 l_adr_flex_value_set_id       NUMBER;
25344 l_adr_value_type_code         VARCHAR2(30);
25345 l_adr_value_combination_id    NUMBER;
25346 l_adr_value_segment_code      VARCHAR2(30);
25347 
25348 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
25349 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
25350 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
25351 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
25352 
25353 -- 4262811 Variables ------------------------------------------------------------------------------------------
25354 l_entered_amt_idx             NUMBER;
25355 l_accted_amt_idx              NUMBER;
25356 l_acc_rev_flag                VARCHAR2(1);
25357 l_accrual_line_num            NUMBER;
25358 l_tmp_amt                     NUMBER;
25359 l_acc_rev_natural_side_code   VARCHAR2(1);
25360 
25361 l_num_entries                 NUMBER;
25362 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
25363 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
25364 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
25365 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
25366 l_recog_line_1                NUMBER;
25367 l_recog_line_2                NUMBER;
25368 
25369 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
25370 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
25371 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
25372 
25373 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25374 
25375 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
25376 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
25377 
25378 ---------------------------------------------------------------------------------------------------------------
25379 
25380 
25381 --
25382 -- bulk performance
25383 --
25384 l_balance_type_code           VARCHAR2(1);
25385 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
25386 l_log_module                  VARCHAR2(240);
25387 
25388 --
25389 -- Upgrade strategy
25390 --
25391 l_actual_upg_option           VARCHAR2(1);
25392 l_enc_upg_option           VARCHAR2(1);
25393 
25394 --
25395 BEGIN
25396 --
25397 IF g_log_enabled THEN
25398       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
25399 END IF;
25400 --
25401 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25402 
25403       trace
25404          (p_msg      => 'BEGIN of AcctLineType_65'
25405          ,p_level    => C_LEVEL_PROCEDURE
25409 --
25406          ,p_module   => l_log_module);
25407 
25408 END IF;
25410 l_component_type             := 'AMB_JLT';
25411 l_component_code             := 'AP_CASH_CLEAR_REF';
25412 l_component_type_code        := 'S';
25413 l_component_appl_id          :=  200;
25414 l_amb_context_code           := 'DEFAULT';
25415 l_entity_code                := 'AP_PAYMENTS';
25416 l_event_class_code           := 'REFUNDS';
25417 l_event_type_code            := 'REFUNDS_ALL';
25418 l_line_definition_owner_code := 'S';
25419 l_line_definition_code       := 'CASH_REFUNDS_ALL';
25420 --
25421 l_balance_type_code          := 'A';
25422 l_segment                     := NULL;
25423 l_ccid                        := NULL;
25424 l_adr_transaction_coa_id      := NULL;
25425 l_adr_accounting_coa_id       := NULL;
25426 l_adr_flexfield_segment_code  := NULL;
25427 l_adr_flex_value_set_id       := NULL;
25428 l_adr_value_type_code         := NULL;
25429 l_adr_value_combination_id    := NULL;
25430 l_adr_value_segment_code      := NULL;
25431 
25432 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
25433 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
25434 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
25435 l_budgetary_control_flag     := 'N';
25436 
25437 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
25438 l_bflow_applied_to_amt       := NULL; -- 5132302
25439 l_entered_amt_idx            := NULL;          -- 4262811
25440 l_accted_amt_idx             := NULL;          -- 4262811
25441 l_acc_rev_flag               := NULL;          -- 4262811
25442 l_accrual_line_num           := NULL;          -- 4262811
25443 l_tmp_amt                    := NULL;          -- 4262811
25444 --
25445  
25446 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25447     l_balance_type_code <> 'B' THEN
25448 IF NVL(p_source_50,'
25449 ') =  'ALWAYS_ALWAYS' AND 
25450 (NVL(p_source_42,'
25451 ') <>  'Y' OR 
25452 NVL(p_source_42,'
25453 ') =  'Y' AND 
25454 NVL(p_source_117,'
25455 ') <>  'Y') AND 
25456 p_source_118 IS NULL AND 
25457 NVL(p_source_51,'
25458 ') =  'CASH' AND 
25459 NVL(p_source_71,'
25460 ') =  'R'
25461  THEN 
25462 
25463    --
25464    XLA_AE_LINES_PKG.SetNewLine;
25465 
25466    p_balance_type_code          := l_balance_type_code;
25467    -- set the flag so later we will know whether the gain loss line needs to be created
25468    
25469    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25470      p_actual_flag :='A';
25471    END IF;
25472 
25473    --
25474    -- bulk performance
25475    --
25476    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25477                                       p_header_num   => 0); -- 4262811
25478    --
25479    -- set accounting line options
25480    --
25481    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25482            p_natural_side_code          => 'C'
25483          , p_gain_or_loss_flag          => 'N'
25484          , p_gl_transfer_mode_code      => 'S'
25485          , p_acct_entry_type_code       => 'A'
25486          , p_switch_side_flag           => 'Y'
25487          , p_merge_duplicate_code       => 'A'
25488          );
25489    --
25490    l_acc_rev_natural_side_code := 'D';  -- 4262811
25491    -- 
25492    --
25493    -- set accounting line type info
25494    --
25495    xla_ae_lines_pkg.SetAcctLineType
25496       (p_component_type             => l_component_type
25497       ,p_event_type_code            => l_event_type_code
25498       ,p_line_definition_owner_code => l_line_definition_owner_code
25499       ,p_line_definition_code       => l_line_definition_code
25500       ,p_accounting_line_code       => l_component_code
25501       ,p_accounting_line_type_code  => l_component_type_code
25502       ,p_accounting_line_appl_id    => l_component_appl_id
25503       ,p_amb_context_code           => l_amb_context_code
25504       ,p_entity_code                => l_entity_code
25505       ,p_event_class_code           => l_event_class_code);
25506    --
25507    -- set accounting class
25508    --
25509    xla_ae_lines_pkg.SetAcctClass(
25510            p_accounting_class_code  => 'CASH_CLEARING'
25511          , p_ae_header_id           => l_ae_header_id
25512          );
25513 
25514    --
25515    -- set rounding class
25516    --
25517    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25518                       'CASH_CLEARING';
25519 
25520    --
25521    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25522    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25523    --
25524    -- bulk performance
25525    --
25526    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25527 
25528    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25529       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25530 
25531    -- 4955764
25532    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25533       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25534 
25535    -- 4458381 Public Sector Enh
25536    
25537    --
25541    l_accted_amt_idx  := 14;
25538    -- set accounting attributes for the line type
25539    --
25540    l_entered_amt_idx := 9;
25542    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
25543    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25544    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
25545    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
25546    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
25547    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25548    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
25549    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
25550    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
25551    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
25552    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
25553    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25554    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
25555    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
25556    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
25557    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
25558    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
25559    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
25560    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
25561    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
25562    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
25563    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
25564    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
25565    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
25566    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
25567    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
25568    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
25569    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
25570    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
25571    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
25572    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
25573    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
25574    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
25575    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
25576    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
25577    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
25578    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
25579    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
25580    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
25581    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
25582    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
25583    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
25584    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
25585    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
25586    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
25587    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
25588    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
25589 
25590    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25591    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25592 
25593    ---------------------------------------------------------------------------------------------------------------
25594    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25595    ---------------------------------------------------------------------------------------------------------------
25596    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25597 
25598    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25599    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25600 
25601    IF xla_accounting_cache_pkg.GetValueChar
25602          (p_source_code         => 'LEDGER_CATEGORY_CODE'
25603          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25604    AND l_bflow_method_code = 'PRIOR_ENTRY'
25605 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25606    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25607          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25608        )
25609    THEN
25610          xla_ae_lines_pkg.BflowUpgEntry
25611            (p_business_method_code    => l_bflow_method_code
25612            ,p_business_class_code     => l_bflow_class_code
25613            ,p_balance_type            => l_balance_type_code);
25614    ELSE
25615       NULL;
25616 -- No business flow processing for business flow method of NONE.
25617    END IF;
25618 
25619    --
25620    -- call analytical criteria
25621    --
25622    
25623    --
25624    -- call description
25625    --
25626    -- No description or it is inherited.
25627    --
25628    -- call ADRs
25629    -- Bug 4922099
25630    --
25631    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25632         (NVL(l_actual_upg_option, 'N') = 'O') OR
25633         (NVL(l_enc_upg_option, 'N') = 'O')
25634       )
25635    THEN
25636    NULL;
25637    --
25638    --
25639    
25643 , p_source_33 => p_source_33
25640   l_ccid := AcctDerRule_30(
25641            p_application_id           => p_application_id
25642          , p_ae_header_id             => l_ae_header_id 
25644          , x_transaction_coa_id       => l_adr_transaction_coa_id
25645          , x_accounting_coa_id        => l_adr_accounting_coa_id
25646          , x_value_type_code          => l_adr_value_type_code
25647          , p_side                     => 'NA'
25648    );
25649 
25650    xla_ae_lines_pkg.set_ccid(
25651     p_code_combination_id          => l_ccid
25652   , p_value_type_code              => l_adr_value_type_code
25653   , p_transaction_coa_id           => l_adr_transaction_coa_id
25654   , p_accounting_coa_id            => l_adr_accounting_coa_id
25655   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
25656   , p_adr_type_code                => 'S'
25657   , p_component_type               => l_component_type
25658   , p_component_code               => l_component_code
25659   , p_component_type_code          => l_component_type_code
25660   , p_component_appl_id            => l_component_appl_id
25661   , p_amb_context_code             => l_amb_context_code
25662   , p_side                         => 'NA'
25663   );
25664 
25665 
25666    --
25667    --
25668    END IF;
25669    --
25670    -- Bug 4922099
25671    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25672           (NVL(l_enc_upg_option, 'N') = 'O')
25673         ) AND
25674         (l_bflow_method_code = 'PRIOR_ENTRY')
25675       )
25676    THEN
25677       IF
25678       --
25679       1 = 2
25680       --
25681       THEN
25682       xla_accounting_err_pkg.build_message
25683                                     (p_appli_s_name            => 'XLA'
25684                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25685                                     ,p_token_1                 => 'LINE_NUMBER'
25686                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
25687                                     ,p_token_2                 => 'LINE_TYPE_NAME'
25688                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
25689                                                                              l_component_type
25690                                                                             ,l_component_code
25691                                                                             ,l_component_type_code
25692                                                                             ,l_component_appl_id
25693                                                                             ,l_amb_context_code
25694                                                                             ,l_entity_code
25695                                                                             ,l_event_class_code
25696                                                                            )
25697                                     ,p_token_3                 => 'OWNER'
25698                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
25699                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
25700                                                                           ,p_lookup_code    => l_component_type_code
25701                                                                          )
25702                                     ,p_token_4                 => 'PRODUCT_NAME'
25703                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25704                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25705                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25706                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25707                                     ,p_ae_header_id            =>  NULL
25708                                        );
25709 
25710         IF (C_LEVEL_ERROR>= g_log_level) THEN
25711                  trace
25712                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25713                       ,p_level    => C_LEVEL_ERROR
25714                       ,p_module   => l_log_module);
25715         END IF;
25716       END IF;
25717    END IF;
25718    --
25719    --
25720    ------------------------------------------------------------------------------------------------
25721    -- 4219869 Business Flow
25722    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25723    -- Prior Entry.  Currently, the following code is always generated.
25724    ------------------------------------------------------------------------------------------------
25725    XLA_AE_LINES_PKG.ValidateCurrentLine;
25726 
25727    ------------------------------------------------------------------------------------
25728    -- 4219869 Business Flow
25729    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25730    ------------------------------------------------------------------------------------
25731    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25732 
25733    ----------------------------------------------------------------------------------
25734    -- 4219869 Business Flow
25735    -- Update journal entry status -- Need to generate this within IF <condition>
25739          ,p_balance_type_code => l_balance_type_code
25736    ----------------------------------------------------------------------------------
25737    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25738          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25740          );
25741 
25742    -------------------------------------------------------------------------------------------
25743    -- 4262811 - Generate the Accrual Reversal lines
25744    -------------------------------------------------------------------------------------------
25745    BEGIN
25746       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25747                               (g_array_event(p_event_id).array_value_num('header_index'));
25748       IF l_acc_rev_flag IS NULL THEN
25749          l_acc_rev_flag := 'N';
25750       END IF;
25751    EXCEPTION
25752       WHEN OTHERS THEN
25753          l_acc_rev_flag := 'N';
25754    END;
25755    --
25756    IF (l_acc_rev_flag = 'Y') THEN
25757 
25758        -- 4645092  ------------------------------------------------------------------------------
25759        -- To allow MPA report to determine if it should generate report process
25760        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25761        ------------------------------------------------------------------------------------------
25762 
25763        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25764        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25765    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
25766    -- call ADRs
25767    -- Bug 4922099
25768    --
25769    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25770         (NVL(l_actual_upg_option, 'N') = 'O') OR
25771         (NVL(l_enc_upg_option, 'N') = 'O')
25772       )
25773    THEN
25774    NULL;
25775    --
25776    --
25777    
25778   l_ccid := AcctDerRule_30(
25779            p_application_id           => p_application_id
25780          , p_ae_header_id             => l_ae_header_id 
25781 , p_source_33 => p_source_33
25782          , x_transaction_coa_id       => l_adr_transaction_coa_id
25783          , x_accounting_coa_id        => l_adr_accounting_coa_id
25784          , x_value_type_code          => l_adr_value_type_code
25785          , p_side                     => 'NA'
25786    );
25787 
25788    xla_ae_lines_pkg.set_ccid(
25789     p_code_combination_id          => l_ccid
25790   , p_value_type_code              => l_adr_value_type_code
25791   , p_transaction_coa_id           => l_adr_transaction_coa_id
25792   , p_accounting_coa_id            => l_adr_accounting_coa_id
25793   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
25794   , p_adr_type_code                => 'S'
25795   , p_component_type               => l_component_type
25796   , p_component_code               => l_component_code
25797   , p_component_type_code          => l_component_type_code
25798   , p_component_appl_id            => l_component_appl_id
25799   , p_amb_context_code             => l_amb_context_code
25800   , p_side                         => 'NA'
25801   );
25802 
25803 
25804    --
25805    --
25806    END IF;
25807 
25808        --
25809        -- Update the line information that should be overwritten
25810        --
25811        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25812                                          p_header_num   => 1);
25813        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
25814 
25815        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25816 
25817        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
25818           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25819        END IF;
25820 
25821       --
25822       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25823       --
25824       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25825           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
25826       ELSE
25827           ---------------------------------------------------------------------------------------------------
25828           -- 4262811a Switch Sign
25829           ---------------------------------------------------------------------------------------------------
25830           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
25831           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25832                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25833           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25834                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25835           -- 5132302
25836           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25837                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25838 
25839       END IF;
25840 
25841       -- 4955764
25842       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25846       XLA_AE_LINES_PKG.ValidateCurrentLine;
25843       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25844 
25845 
25847       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25848 
25849       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25850                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25851                ,p_balance_type_code => l_balance_type_code);
25852 
25853    END IF;
25854 
25855    -----------------------------------------------------------------------------------------
25856    -- 4262811 Multiperiod Accounting
25857    -----------------------------------------------------------------------------------------
25858      -- No MPA option is assigned.
25859 
25860 
25861 END IF;
25862 END IF;
25863 --
25864 
25865 --
25866 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25867    trace
25868       (p_msg      => 'END of AcctLineType_65'
25869       ,p_level    => C_LEVEL_PROCEDURE
25870       ,p_module   => l_log_module);
25871 END IF;
25872 --
25873 EXCEPTION
25874   WHEN xla_exceptions_pkg.application_exception THEN
25875       RAISE;
25876   WHEN OTHERS THEN
25877        xla_exceptions_pkg.raise_message
25878            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_65');
25879 END AcctLineType_65;
25880 --
25881 
25882 ---------------------------------------
25883 --
25884 -- PRIVATE FUNCTION
25885 --         AcctLineType_66
25886 --
25887 ---------------------------------------
25888 PROCEDURE AcctLineType_66 (
25889   p_application_id        IN NUMBER
25890  ,p_event_id              IN NUMBER
25891  ,p_calculate_acctd_flag  IN VARCHAR2
25892  ,p_calculate_g_l_flag    IN VARCHAR2
25893  ,p_actual_flag           IN OUT VARCHAR2
25894  ,p_balance_type_code     OUT VARCHAR2
25895  ,p_gain_or_loss_ref      OUT VARCHAR2
25896  
25897 --Payment Currency Code
25898  , p_source_12            IN VARCHAR2
25899 --Automatic Offsets Value
25900  , p_source_16            IN VARCHAR2
25901  , p_source_16_meaning    IN VARCHAR2
25902 --Payment Distribution (Payment Rate) Ledger Amount
25903  , p_source_21            IN NUMBER
25904 --Bank Cash Clearing Account
25905  , p_source_33            IN NUMBER
25906 --When to Account for Payment Option
25907  , p_source_50            IN VARCHAR2
25908 --Payment Distribution Type
25909  , p_source_51            IN VARCHAR2
25910  , p_source_51_meaning    IN VARCHAR2
25911 --Accounting Reversal Indicator
25912  , p_source_52            IN VARCHAR2
25913 --Payment Distribution Amount
25914  , p_source_53            IN NUMBER
25915 --Business Flow Accounts Payable Application Identifier
25916  , p_source_54            IN NUMBER
25917 --Payment Distribution Identifier
25918  , p_source_59            IN NUMBER
25919 --Distribution Link Type
25920  , p_source_60            IN VARCHAR2
25921 --Override Accounted Amount Indicator
25922  , p_source_64            IN VARCHAR2
25923  , p_source_64_meaning    IN VARCHAR2
25924 --Payment Supplier Identifier
25925  , p_source_65            IN NUMBER
25926 --Payment Supplier Site Identifier
25927  , p_source_66            IN NUMBER
25928 --Third Party Type
25929  , p_source_67            IN VARCHAR2
25930 --Payment Distribution Reversed Identifier
25931  , p_source_68            IN NUMBER
25932 --Invoice Distribution Tax Line Identifier
25933  , p_source_69            IN NUMBER
25934 --Invoice Distribution Summary Tax Line Identifier
25935  , p_source_70            IN NUMBER
25936 --Payment Type
25937  , p_source_71            IN VARCHAR2
25938  , p_source_71_meaning    IN VARCHAR2
25939 --Business Flow Invoice Distribution Type
25940  , p_source_73            IN VARCHAR2
25941 --Business Flow Invoice Entity Code
25942  , p_source_74            IN VARCHAR2
25943 --Business Flow Invoice Distribution Identifier
25944  , p_source_75            IN NUMBER
25945 --Business Flow Invoice Identifier
25946  , p_source_76            IN NUMBER
25947 --Invoice Distribution Tax Distribution Identifier from Tax
25948  , p_source_77            IN NUMBER
25949 --Pooled Bank Account Option
25950  , p_source_117            IN VARCHAR2
25951  , p_source_117_meaning    IN VARCHAR2
25952 --Payment Maturity Date
25953  , p_source_118            IN DATE
25954 --Payment Exchange Date
25955  , p_source_121            IN DATE
25956 --Payment Exchange Rate
25957  , p_source_122            IN NUMBER
25958 --Payment Exchange Rate Type
25959  , p_source_123            IN VARCHAR2
25960 )
25961 IS
25962 
25963 l_component_type              VARCHAR2(80);
25964 l_component_code              VARCHAR2(30);
25965 l_component_type_code         VARCHAR2(1);
25966 l_component_appl_id           INTEGER;
25967 l_amb_context_code            VARCHAR2(30);
25968 l_entity_code                 VARCHAR2(30);
25969 l_event_class_code            VARCHAR2(30);
25970 l_ae_header_id                NUMBER;
25971 l_event_type_code             VARCHAR2(30);
25972 l_line_definition_code        VARCHAR2(30);
25973 l_line_definition_owner_code  VARCHAR2(1);
25974 --
25975 -- adr variables
25976 l_segment                     VARCHAR2(30);
25977 l_ccid                        NUMBER;
25978 l_adr_transaction_coa_id      NUMBER;
25979 l_adr_accounting_coa_id       NUMBER;
25980 l_adr_flexfield_segment_code  VARCHAR2(30);
25981 l_adr_flex_value_set_id       NUMBER;
25982 l_adr_value_type_code         VARCHAR2(30);
25986 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
25983 l_adr_value_combination_id    NUMBER;
25984 l_adr_value_segment_code      VARCHAR2(30);
25985 
25987 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
25988 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
25989 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
25990 
25991 -- 4262811 Variables ------------------------------------------------------------------------------------------
25992 l_entered_amt_idx             NUMBER;
25993 l_accted_amt_idx              NUMBER;
25994 l_acc_rev_flag                VARCHAR2(1);
25995 l_accrual_line_num            NUMBER;
25996 l_tmp_amt                     NUMBER;
25997 l_acc_rev_natural_side_code   VARCHAR2(1);
25998 
25999 l_num_entries                 NUMBER;
26000 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
26001 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
26002 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
26003 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
26004 l_recog_line_1                NUMBER;
26005 l_recog_line_2                NUMBER;
26006 
26007 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
26008 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
26009 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
26010 
26011 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26012 
26013 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
26014 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
26015 
26016 ---------------------------------------------------------------------------------------------------------------
26017 
26018 
26019 --
26020 -- bulk performance
26021 --
26022 l_balance_type_code           VARCHAR2(1);
26023 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
26024 l_log_module                  VARCHAR2(240);
26025 
26026 --
26027 -- Upgrade strategy
26028 --
26029 l_actual_upg_option           VARCHAR2(1);
26030 l_enc_upg_option           VARCHAR2(1);
26031 
26032 --
26033 BEGIN
26034 --
26035 IF g_log_enabled THEN
26036       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
26037 END IF;
26038 --
26039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26040 
26041       trace
26042          (p_msg      => 'BEGIN of AcctLineType_66'
26043          ,p_level    => C_LEVEL_PROCEDURE
26044          ,p_module   => l_log_module);
26045 
26046 END IF;
26047 --
26048 l_component_type             := 'AMB_JLT';
26049 l_component_code             := 'AP_CASH_CLEAR_REF_AOS_AS';
26050 l_component_type_code        := 'S';
26051 l_component_appl_id          :=  200;
26052 l_amb_context_code           := 'DEFAULT';
26053 l_entity_code                := 'AP_PAYMENTS';
26054 l_event_class_code           := 'REFUNDS';
26055 l_event_type_code            := 'REFUNDS_ALL';
26056 l_line_definition_owner_code := 'S';
26057 l_line_definition_code       := 'CASH_REFUNDS_ALL';
26058 --
26059 l_balance_type_code          := 'A';
26060 l_segment                     := NULL;
26061 l_ccid                        := NULL;
26062 l_adr_transaction_coa_id      := NULL;
26063 l_adr_accounting_coa_id       := NULL;
26064 l_adr_flexfield_segment_code  := NULL;
26065 l_adr_flex_value_set_id       := NULL;
26066 l_adr_value_type_code         := NULL;
26067 l_adr_value_combination_id    := NULL;
26068 l_adr_value_segment_code      := NULL;
26069 
26070 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
26071 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
26072 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
26073 l_budgetary_control_flag     := 'N';
26074 
26075 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
26076 l_bflow_applied_to_amt       := NULL; -- 5132302
26077 l_entered_amt_idx            := NULL;          -- 4262811
26078 l_accted_amt_idx             := NULL;          -- 4262811
26079 l_acc_rev_flag               := NULL;          -- 4262811
26080 l_accrual_line_num           := NULL;          -- 4262811
26081 l_tmp_amt                    := NULL;          -- 4262811
26082 --
26083  
26084 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26085     l_balance_type_code <> 'B' THEN
26086 IF NVL(p_source_50,'
26087 ') =  'ALWAYS_ALWAYS' AND 
26088 (NVL(p_source_117,'
26089 ') =  'Y' AND 
26090 NVL(p_source_16,'
26091 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
26092 p_source_118 IS NULL AND 
26093 NVL(p_source_51,'
26094 ') =  'CASH' AND 
26095 NVL(p_source_71,'
26096 ') =  'R'
26097  THEN 
26098 
26099    --
26100    XLA_AE_LINES_PKG.SetNewLine;
26101 
26102    p_balance_type_code          := l_balance_type_code;
26103    -- set the flag so later we will know whether the gain loss line needs to be created
26104    
26105    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26106      p_actual_flag :='A';
26107    END IF;
26108 
26109    --
26110    -- bulk performance
26111    --
26112    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26113                                       p_header_num   => 0); -- 4262811
26114    --
26115    -- set accounting line options
26116    --
26120          , p_gl_transfer_mode_code      => 'S'
26117    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26118            p_natural_side_code          => 'C'
26119          , p_gain_or_loss_flag          => 'N'
26121          , p_acct_entry_type_code       => 'A'
26122          , p_switch_side_flag           => 'Y'
26123          , p_merge_duplicate_code       => 'A'
26124          );
26125    --
26126    l_acc_rev_natural_side_code := 'D';  -- 4262811
26127    -- 
26128    --
26129    -- set accounting line type info
26130    --
26131    xla_ae_lines_pkg.SetAcctLineType
26132       (p_component_type             => l_component_type
26133       ,p_event_type_code            => l_event_type_code
26134       ,p_line_definition_owner_code => l_line_definition_owner_code
26135       ,p_line_definition_code       => l_line_definition_code
26136       ,p_accounting_line_code       => l_component_code
26137       ,p_accounting_line_type_code  => l_component_type_code
26138       ,p_accounting_line_appl_id    => l_component_appl_id
26139       ,p_amb_context_code           => l_amb_context_code
26140       ,p_entity_code                => l_entity_code
26141       ,p_event_class_code           => l_event_class_code);
26142    --
26143    -- set accounting class
26144    --
26145    xla_ae_lines_pkg.SetAcctClass(
26146            p_accounting_class_code  => 'CASH_CLEARING'
26147          , p_ae_header_id           => l_ae_header_id
26148          );
26149 
26150    --
26151    -- set rounding class
26152    --
26153    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26154                       'CASH_CLEARING';
26155 
26156    --
26157    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26158    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26159    --
26160    -- bulk performance
26161    --
26162    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26163 
26164    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26165       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26166 
26167    -- 4955764
26168    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26169       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26170 
26171    -- 4458381 Public Sector Enh
26172    
26173    --
26174    -- set accounting attributes for the line type
26175    --
26176    l_entered_amt_idx := 9;
26177    l_accted_amt_idx  := 14;
26178    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
26179    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26180    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
26181    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
26182    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
26183    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26184    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
26185    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
26186    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
26187    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
26188    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
26189    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26190    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
26191    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
26192    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
26193    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
26194    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
26195    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
26196    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
26197    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
26198    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
26199    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
26200    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
26201    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
26202    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
26203    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
26204    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
26205    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
26206    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
26207    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
26208    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
26209    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
26210    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
26211    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
26212    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
26213    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
26214    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
26215    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
26216    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
26217    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
26218    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
26219    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
26223    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
26220    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
26221    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
26222    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
26224    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
26225 
26226    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26227    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26228 
26229    ---------------------------------------------------------------------------------------------------------------
26230    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26231    ---------------------------------------------------------------------------------------------------------------
26232    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26233 
26234    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26235    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26236 
26237    IF xla_accounting_cache_pkg.GetValueChar
26238          (p_source_code         => 'LEDGER_CATEGORY_CODE'
26239          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26240    AND l_bflow_method_code = 'PRIOR_ENTRY'
26241 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26242    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26243          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26244        )
26245    THEN
26246          xla_ae_lines_pkg.BflowUpgEntry
26247            (p_business_method_code    => l_bflow_method_code
26248            ,p_business_class_code     => l_bflow_class_code
26249            ,p_balance_type            => l_balance_type_code);
26250    ELSE
26251       NULL;
26252 XLA_AE_LINES_PKG.business_flow_validation(
26253                                 p_business_method_code     => l_bflow_method_code
26254                                ,p_business_class_code      => l_bflow_class_code
26255                                ,p_inherit_description_flag => l_inherit_desc_flag);
26256    END IF;
26257 
26258    --
26259    -- call analytical criteria
26260    --
26261    
26262    --
26263    -- call description
26264    --
26265    -- No description or it is inherited.
26266    --
26267    -- call ADRs
26268    -- Bug 4922099
26269    --
26270    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26271         (NVL(l_actual_upg_option, 'N') = 'O') OR
26272         (NVL(l_enc_upg_option, 'N') = 'O')
26273       )
26274    THEN
26275    NULL;
26276    --
26277    --
26278    
26279    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
26280      p_code_combination_id      => TO_NUMBER(C_NUM)
26281    , p_value_type_code          => NULL
26282    , p_transaction_coa_id       => null
26283    , p_accounting_coa_id        => null
26284    , p_adr_code                 => NULL
26285    , p_adr_type_code            => NULL
26286    , p_component_type           => l_component_type
26287    , p_component_code           => l_component_code
26288    , p_component_type_code      => l_component_type_code
26289    , p_component_appl_id        => l_component_appl_id
26290    , p_amb_context_code         => l_amb_context_code
26291    , p_side                     => NULL
26292    );
26293 
26294    
26295   -- initialise segments
26296   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26297   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26298   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26299   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26300   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26301   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26302   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26303   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26304   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26305   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26306   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26307   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26308   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26309   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26310   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26311   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26312   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26313   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26314   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26315   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26316   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26317   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26318   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26322   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26319   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26320   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26321   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26323   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26324   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26325   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26326   --
26327 
26328    --
26329 
26330 
26331    l_segment := AcctDerRule_13(
26332            p_application_id           => p_application_id
26333          , p_ae_header_id             => l_ae_header_id 
26334 , p_source_33 => p_source_33
26335          , x_transaction_coa_id       => l_adr_transaction_coa_id
26336          , x_accounting_coa_id        => l_adr_accounting_coa_id
26337          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
26338          , x_flex_value_set_id        => l_adr_flex_value_set_id
26339          , x_value_type_code          => l_adr_value_type_code
26340          , x_value_combination_id     => l_adr_value_combination_id
26341          , x_value_segment_code       => l_adr_value_segment_code
26342          , p_side                     => 'NA'
26343          , p_override_seg_flag        => 'Y'
26344    );
26345 
26346    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
26347 
26348       xla_ae_lines_pkg.set_segment(
26349           p_to_segment_code         => 'GL_ACCOUNT'
26350         , p_segment_value           => l_segment
26351         , p_from_segment_code       => l_adr_value_segment_code
26352         , p_from_combination_id     => l_adr_value_combination_id
26353         , p_value_type_code         => l_adr_value_type_code
26354         , p_transaction_coa_id      => l_adr_transaction_coa_id
26355         , p_accounting_coa_id       => l_adr_accounting_coa_id
26356         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
26357         , p_flex_value_set_id       => l_adr_flex_value_set_id
26358         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
26359         , p_adr_type_code           => 'S'
26360         , p_component_type          => l_component_type
26361         , p_component_code          => l_component_code
26362         , p_component_type_code     => l_component_type_code
26363         , p_component_appl_id       => l_component_appl_id
26364         , p_amb_context_code        => l_amb_context_code
26365         , p_entity_code             => 'AP_PAYMENTS'
26366         , p_event_class_code        => 'REFUNDS'
26367         , p_side                    => 'NA'
26368         );
26369 
26370   END IF;
26371 
26372    --
26373    --
26374    END IF;
26375    --
26376    -- Bug 4922099
26377    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26378           (NVL(l_enc_upg_option, 'N') = 'O')
26379         ) AND
26380         (l_bflow_method_code = 'PRIOR_ENTRY')
26381       )
26382    THEN
26383       IF
26384       --
26385       1 = 2
26386       --
26387       THEN
26388       xla_accounting_err_pkg.build_message
26389                                     (p_appli_s_name            => 'XLA'
26390                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26391                                     ,p_token_1                 => 'LINE_NUMBER'
26392                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
26393                                     ,p_token_2                 => 'LINE_TYPE_NAME'
26394                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
26395                                                                              l_component_type
26396                                                                             ,l_component_code
26397                                                                             ,l_component_type_code
26398                                                                             ,l_component_appl_id
26399                                                                             ,l_amb_context_code
26400                                                                             ,l_entity_code
26401                                                                             ,l_event_class_code
26402                                                                            )
26403                                     ,p_token_3                 => 'OWNER'
26404                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
26405                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
26406                                                                           ,p_lookup_code    => l_component_type_code
26407                                                                          )
26408                                     ,p_token_4                 => 'PRODUCT_NAME'
26409                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26410                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26411                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26415 
26412                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26413                                     ,p_ae_header_id            =>  NULL
26414                                        );
26416         IF (C_LEVEL_ERROR>= g_log_level) THEN
26417                  trace
26418                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26419                       ,p_level    => C_LEVEL_ERROR
26420                       ,p_module   => l_log_module);
26421         END IF;
26422       END IF;
26423    END IF;
26424    --
26425    --
26426    ------------------------------------------------------------------------------------------------
26427    -- 4219869 Business Flow
26428    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26429    -- Prior Entry.  Currently, the following code is always generated.
26430    ------------------------------------------------------------------------------------------------
26431    XLA_AE_LINES_PKG.ValidateCurrentLine;
26432 
26433    ------------------------------------------------------------------------------------
26434    -- 4219869 Business Flow
26435    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26436    ------------------------------------------------------------------------------------
26437    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26438 
26439    ----------------------------------------------------------------------------------
26440    -- 4219869 Business Flow
26441    -- Update journal entry status -- Need to generate this within IF <condition>
26442    ----------------------------------------------------------------------------------
26443    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26444          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26445          ,p_balance_type_code => l_balance_type_code
26446          );
26447 
26448    -------------------------------------------------------------------------------------------
26449    -- 4262811 - Generate the Accrual Reversal lines
26450    -------------------------------------------------------------------------------------------
26451    BEGIN
26452       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26453                               (g_array_event(p_event_id).array_value_num('header_index'));
26454       IF l_acc_rev_flag IS NULL THEN
26455          l_acc_rev_flag := 'N';
26456       END IF;
26457    EXCEPTION
26458       WHEN OTHERS THEN
26459          l_acc_rev_flag := 'N';
26460    END;
26461    --
26462    IF (l_acc_rev_flag = 'Y') THEN
26463 
26464        -- 4645092  ------------------------------------------------------------------------------
26465        -- To allow MPA report to determine if it should generate report process
26466        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26467        ------------------------------------------------------------------------------------------
26468 
26469        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26470        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26471    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
26472    -- call ADRs
26473    -- Bug 4922099
26474    --
26475    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26476         (NVL(l_actual_upg_option, 'N') = 'O') OR
26477         (NVL(l_enc_upg_option, 'N') = 'O')
26478       )
26479    THEN
26480    NULL;
26481    --
26482    --
26483    
26484    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
26485      p_code_combination_id      => TO_NUMBER(C_NUM)
26486    , p_value_type_code          => NULL
26487    , p_transaction_coa_id       => null
26488    , p_accounting_coa_id        => null
26489    , p_adr_code                 => NULL
26490    , p_adr_type_code            => NULL
26491    , p_component_type           => l_component_type
26492    , p_component_code           => l_component_code
26493    , p_component_type_code      => l_component_type_code
26494    , p_component_appl_id        => l_component_appl_id
26495    , p_amb_context_code         => l_amb_context_code
26496    , p_side                     => NULL
26497    );
26498 
26499    
26500   -- initialise segments
26501   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26502   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26503   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26504   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26505   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26506   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26507   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26508   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26509   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26510   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26511   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26512   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26513   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26514   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26518   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26515   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26516   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26517   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26519   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26520   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26521   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26522   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26523   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26524   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26525   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26526   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26527   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26528   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26529   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26530   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26531   --
26532 
26533    --
26534 
26535 
26536    l_segment := AcctDerRule_13(
26537            p_application_id           => p_application_id
26538          , p_ae_header_id             => l_ae_header_id 
26539 , p_source_33 => p_source_33
26540          , x_transaction_coa_id       => l_adr_transaction_coa_id
26541          , x_accounting_coa_id        => l_adr_accounting_coa_id
26542          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
26543          , x_flex_value_set_id        => l_adr_flex_value_set_id
26544          , x_value_type_code          => l_adr_value_type_code
26545          , x_value_combination_id     => l_adr_value_combination_id
26546          , x_value_segment_code       => l_adr_value_segment_code
26547          , p_side                     => 'NA'
26548          , p_override_seg_flag        => 'Y'
26549    );
26550 
26551    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
26552 
26553       xla_ae_lines_pkg.set_segment(
26554           p_to_segment_code         => 'GL_ACCOUNT'
26555         , p_segment_value           => l_segment
26556         , p_from_segment_code       => l_adr_value_segment_code
26557         , p_from_combination_id     => l_adr_value_combination_id
26558         , p_value_type_code         => l_adr_value_type_code
26559         , p_transaction_coa_id      => l_adr_transaction_coa_id
26560         , p_accounting_coa_id       => l_adr_accounting_coa_id
26561         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
26562         , p_flex_value_set_id       => l_adr_flex_value_set_id
26563         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
26564         , p_adr_type_code           => 'S'
26565         , p_component_type          => l_component_type
26566         , p_component_code          => l_component_code
26567         , p_component_type_code     => l_component_type_code
26568         , p_component_appl_id       => l_component_appl_id
26569         , p_amb_context_code        => l_amb_context_code
26570         , p_entity_code             => 'AP_PAYMENTS'
26571         , p_event_class_code        => 'REFUNDS'
26572         , p_side                    => 'NA'
26573         );
26574 
26575   END IF;
26576 
26577    --
26578    --
26579    END IF;
26580 
26581        --
26582        -- Update the line information that should be overwritten
26583        --
26584        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26585                                          p_header_num   => 1);
26586        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
26587 
26588        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26589 
26590        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
26591           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26592        END IF;
26593 
26594       --
26595       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26596       --
26597       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26598           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
26599       ELSE
26600           ---------------------------------------------------------------------------------------------------
26601           -- 4262811a Switch Sign
26602           ---------------------------------------------------------------------------------------------------
26603           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
26604           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26605                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26606           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26607                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26608           -- 5132302
26612       END IF;
26609           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26610                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26611 
26613 
26614       -- 4955764
26615       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26616       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26617 
26618 
26619       XLA_AE_LINES_PKG.ValidateCurrentLine;
26620       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26621 
26622       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26623                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26624                ,p_balance_type_code => l_balance_type_code);
26625 
26626    END IF;
26627 
26628    -----------------------------------------------------------------------------------------
26629    -- 4262811 Multiperiod Accounting
26630    -----------------------------------------------------------------------------------------
26631      -- No MPA option is assigned.
26632 
26633 
26634 END IF;
26635 END IF;
26636 --
26637 
26638 --
26639 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26640    trace
26641       (p_msg      => 'END of AcctLineType_66'
26642       ,p_level    => C_LEVEL_PROCEDURE
26643       ,p_module   => l_log_module);
26644 END IF;
26645 --
26646 EXCEPTION
26647   WHEN xla_exceptions_pkg.application_exception THEN
26648       RAISE;
26649   WHEN OTHERS THEN
26650        xla_exceptions_pkg.raise_message
26651            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_66');
26652 END AcctLineType_66;
26653 --
26654 
26655 ---------------------------------------
26656 --
26657 -- PRIVATE FUNCTION
26658 --         AcctLineType_67
26659 --
26660 ---------------------------------------
26661 PROCEDURE AcctLineType_67 (
26662   p_application_id        IN NUMBER
26663  ,p_event_id              IN NUMBER
26664  ,p_calculate_acctd_flag  IN VARCHAR2
26665  ,p_calculate_g_l_flag    IN VARCHAR2
26666  ,p_actual_flag           IN OUT VARCHAR2
26667  ,p_balance_type_code     OUT VARCHAR2
26668  ,p_gain_or_loss_ref      OUT VARCHAR2
26669  
26670 --Payment Currency Code
26671  , p_source_12            IN VARCHAR2
26672 --Automatic Offsets Value
26673  , p_source_16            IN VARCHAR2
26674  , p_source_16_meaning    IN VARCHAR2
26675 --Payment Distribution (Payment Rate) Ledger Amount
26676  , p_source_21            IN NUMBER
26677 --Bank Cash Clearing Account
26678  , p_source_33            IN NUMBER
26679 --When to Account for Payment Option
26680  , p_source_50            IN VARCHAR2
26681 --Payment Distribution Type
26682  , p_source_51            IN VARCHAR2
26683  , p_source_51_meaning    IN VARCHAR2
26684 --Accounting Reversal Indicator
26685  , p_source_52            IN VARCHAR2
26686 --Payment Distribution Amount
26687  , p_source_53            IN NUMBER
26688 --Business Flow Accounts Payable Application Identifier
26689  , p_source_54            IN NUMBER
26690 --Payment Distribution Identifier
26691  , p_source_59            IN NUMBER
26692 --Distribution Link Type
26693  , p_source_60            IN VARCHAR2
26694 --Override Accounted Amount Indicator
26695  , p_source_64            IN VARCHAR2
26696  , p_source_64_meaning    IN VARCHAR2
26697 --Payment Supplier Identifier
26698  , p_source_65            IN NUMBER
26699 --Payment Supplier Site Identifier
26700  , p_source_66            IN NUMBER
26701 --Third Party Type
26702  , p_source_67            IN VARCHAR2
26703 --Payment Distribution Reversed Identifier
26704  , p_source_68            IN NUMBER
26705 --Invoice Distribution Tax Line Identifier
26706  , p_source_69            IN NUMBER
26707 --Invoice Distribution Summary Tax Line Identifier
26708  , p_source_70            IN NUMBER
26709 --Payment Type
26710  , p_source_71            IN VARCHAR2
26711  , p_source_71_meaning    IN VARCHAR2
26712 --Business Flow Invoice Distribution Type
26713  , p_source_73            IN VARCHAR2
26714 --Business Flow Invoice Entity Code
26715  , p_source_74            IN VARCHAR2
26716 --Business Flow Invoice Distribution Identifier
26717  , p_source_75            IN NUMBER
26718 --Business Flow Invoice Identifier
26719  , p_source_76            IN NUMBER
26720 --Invoice Distribution Tax Distribution Identifier from Tax
26721  , p_source_77            IN NUMBER
26722 --Pooled Bank Account Option
26723  , p_source_117            IN VARCHAR2
26724  , p_source_117_meaning    IN VARCHAR2
26725 --Payment Maturity Date
26726  , p_source_118            IN DATE
26727 --Payment Exchange Date
26728  , p_source_121            IN DATE
26729 --Payment Exchange Rate
26730  , p_source_122            IN NUMBER
26731 --Payment Exchange Rate Type
26732  , p_source_123            IN VARCHAR2
26733 )
26734 IS
26735 
26736 l_component_type              VARCHAR2(80);
26737 l_component_code              VARCHAR2(30);
26738 l_component_type_code         VARCHAR2(1);
26739 l_component_appl_id           INTEGER;
26740 l_amb_context_code            VARCHAR2(30);
26741 l_entity_code                 VARCHAR2(30);
26742 l_event_class_code            VARCHAR2(30);
26743 l_ae_header_id                NUMBER;
26744 l_event_type_code             VARCHAR2(30);
26745 l_line_definition_code        VARCHAR2(30);
26746 l_line_definition_owner_code  VARCHAR2(1);
26747 --
26751 l_adr_transaction_coa_id      NUMBER;
26748 -- adr variables
26749 l_segment                     VARCHAR2(30);
26750 l_ccid                        NUMBER;
26752 l_adr_accounting_coa_id       NUMBER;
26753 l_adr_flexfield_segment_code  VARCHAR2(30);
26754 l_adr_flex_value_set_id       NUMBER;
26755 l_adr_value_type_code         VARCHAR2(30);
26756 l_adr_value_combination_id    NUMBER;
26757 l_adr_value_segment_code      VARCHAR2(30);
26758 
26759 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
26760 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
26761 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
26762 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
26763 
26764 -- 4262811 Variables ------------------------------------------------------------------------------------------
26765 l_entered_amt_idx             NUMBER;
26766 l_accted_amt_idx              NUMBER;
26767 l_acc_rev_flag                VARCHAR2(1);
26768 l_accrual_line_num            NUMBER;
26769 l_tmp_amt                     NUMBER;
26770 l_acc_rev_natural_side_code   VARCHAR2(1);
26771 
26772 l_num_entries                 NUMBER;
26773 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
26774 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
26775 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
26776 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
26777 l_recog_line_1                NUMBER;
26778 l_recog_line_2                NUMBER;
26779 
26780 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
26781 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
26782 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
26783 
26784 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26785 
26786 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
26787 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
26788 
26789 ---------------------------------------------------------------------------------------------------------------
26790 
26791 
26792 --
26793 -- bulk performance
26794 --
26795 l_balance_type_code           VARCHAR2(1);
26796 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
26797 l_log_module                  VARCHAR2(240);
26798 
26799 --
26800 -- Upgrade strategy
26801 --
26802 l_actual_upg_option           VARCHAR2(1);
26803 l_enc_upg_option           VARCHAR2(1);
26804 
26805 --
26806 BEGIN
26807 --
26808 IF g_log_enabled THEN
26809       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
26810 END IF;
26811 --
26812 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26813 
26814       trace
26815          (p_msg      => 'BEGIN of AcctLineType_67'
26816          ,p_level    => C_LEVEL_PROCEDURE
26817          ,p_module   => l_log_module);
26818 
26819 END IF;
26820 --
26821 l_component_type             := 'AMB_JLT';
26822 l_component_code             := 'AP_CASH_CLEAR_REF_AOS_BS';
26823 l_component_type_code        := 'S';
26824 l_component_appl_id          :=  200;
26825 l_amb_context_code           := 'DEFAULT';
26826 l_entity_code                := 'AP_PAYMENTS';
26827 l_event_class_code           := 'REFUNDS';
26828 l_event_type_code            := 'REFUNDS_ALL';
26829 l_line_definition_owner_code := 'S';
26830 l_line_definition_code       := 'CASH_REFUNDS_ALL';
26831 --
26832 l_balance_type_code          := 'A';
26833 l_segment                     := NULL;
26834 l_ccid                        := NULL;
26835 l_adr_transaction_coa_id      := NULL;
26836 l_adr_accounting_coa_id       := NULL;
26837 l_adr_flexfield_segment_code  := NULL;
26838 l_adr_flex_value_set_id       := NULL;
26839 l_adr_value_type_code         := NULL;
26840 l_adr_value_combination_id    := NULL;
26841 l_adr_value_segment_code      := NULL;
26842 
26843 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
26844 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
26845 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
26846 l_budgetary_control_flag     := 'N';
26847 
26848 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
26849 l_bflow_applied_to_amt       := NULL; -- 5132302
26850 l_entered_amt_idx            := NULL;          -- 4262811
26851 l_accted_amt_idx             := NULL;          -- 4262811
26852 l_acc_rev_flag               := NULL;          -- 4262811
26853 l_accrual_line_num           := NULL;          -- 4262811
26854 l_tmp_amt                    := NULL;          -- 4262811
26855 --
26856  
26857 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26858     l_balance_type_code <> 'B' THEN
26859 IF NVL(p_source_50,'
26860 ') =  'ALWAYS_ALWAYS' AND 
26861 (NVL(p_source_117,'
26862 ') =  'Y' AND 
26863 NVL(p_source_16,'
26864 ') =  'BALANCING_SEGMENT') AND 
26865 p_source_118 IS NULL AND 
26866 NVL(p_source_51,'
26867 ') =  'CASH' AND 
26868 NVL(p_source_71,'
26869 ') =  'R'
26870  THEN 
26871 
26872    --
26873    XLA_AE_LINES_PKG.SetNewLine;
26874 
26875    p_balance_type_code          := l_balance_type_code;
26876    -- set the flag so later we will know whether the gain loss line needs to be created
26877    
26881 
26878    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26879      p_actual_flag :='A';
26880    END IF;
26882    --
26883    -- bulk performance
26884    --
26885    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26886                                       p_header_num   => 0); -- 4262811
26887    --
26888    -- set accounting line options
26889    --
26890    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26891            p_natural_side_code          => 'C'
26892          , p_gain_or_loss_flag          => 'N'
26893          , p_gl_transfer_mode_code      => 'S'
26894          , p_acct_entry_type_code       => 'A'
26895          , p_switch_side_flag           => 'Y'
26896          , p_merge_duplicate_code       => 'A'
26897          );
26898    --
26899    l_acc_rev_natural_side_code := 'D';  -- 4262811
26900    -- 
26901    --
26902    -- set accounting line type info
26903    --
26904    xla_ae_lines_pkg.SetAcctLineType
26905       (p_component_type             => l_component_type
26906       ,p_event_type_code            => l_event_type_code
26907       ,p_line_definition_owner_code => l_line_definition_owner_code
26908       ,p_line_definition_code       => l_line_definition_code
26909       ,p_accounting_line_code       => l_component_code
26910       ,p_accounting_line_type_code  => l_component_type_code
26911       ,p_accounting_line_appl_id    => l_component_appl_id
26912       ,p_amb_context_code           => l_amb_context_code
26913       ,p_entity_code                => l_entity_code
26914       ,p_event_class_code           => l_event_class_code);
26915    --
26916    -- set accounting class
26917    --
26918    xla_ae_lines_pkg.SetAcctClass(
26919            p_accounting_class_code  => 'CASH_CLEARING'
26920          , p_ae_header_id           => l_ae_header_id
26921          );
26922 
26923    --
26924    -- set rounding class
26925    --
26926    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26927                       'CASH_CLEARING';
26928 
26929    --
26930    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26931    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26932    --
26933    -- bulk performance
26934    --
26935    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26936 
26937    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26938       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26939 
26940    -- 4955764
26941    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26942       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26943 
26944    -- 4458381 Public Sector Enh
26945    
26946    --
26947    -- set accounting attributes for the line type
26948    --
26949    l_entered_amt_idx := 9;
26950    l_accted_amt_idx  := 14;
26951    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
26952    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26953    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
26954    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
26955    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
26956    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26957    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
26958    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
26959    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
26960    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
26961    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
26962    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26963    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
26964    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
26965    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
26966    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
26967    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
26968    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
26969    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
26970    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
26971    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
26972    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
26973    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
26974    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
26975    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
26976    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
26977    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
26978    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
26979    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
26980    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
26981    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
26982    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
26983    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
26984    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
26985    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
26986    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
26987    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
26988    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
26992    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
26989    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
26990    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
26991    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
26993    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
26994    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
26995    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
26996    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
26997    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
26998 
26999    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27000    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27001 
27002    ---------------------------------------------------------------------------------------------------------------
27003    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27004    ---------------------------------------------------------------------------------------------------------------
27005    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27006 
27007    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27008    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27009 
27010    IF xla_accounting_cache_pkg.GetValueChar
27011          (p_source_code         => 'LEDGER_CATEGORY_CODE'
27012          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27013    AND l_bflow_method_code = 'PRIOR_ENTRY'
27014 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27015    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27016          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27017        )
27018    THEN
27019          xla_ae_lines_pkg.BflowUpgEntry
27020            (p_business_method_code    => l_bflow_method_code
27021            ,p_business_class_code     => l_bflow_class_code
27022            ,p_balance_type            => l_balance_type_code);
27023    ELSE
27024       NULL;
27025 XLA_AE_LINES_PKG.business_flow_validation(
27026                                 p_business_method_code     => l_bflow_method_code
27027                                ,p_business_class_code      => l_bflow_class_code
27028                                ,p_inherit_description_flag => l_inherit_desc_flag);
27029    END IF;
27030 
27031    --
27032    -- call analytical criteria
27033    --
27034    
27035    --
27036    -- call description
27037    --
27038    -- No description or it is inherited.
27039    --
27040    -- call ADRs
27041    -- Bug 4922099
27042    --
27043    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27044         (NVL(l_actual_upg_option, 'N') = 'O') OR
27045         (NVL(l_enc_upg_option, 'N') = 'O')
27046       )
27047    THEN
27048    NULL;
27049    --
27050    --
27051    
27052   l_ccid := AcctDerRule_30(
27053            p_application_id           => p_application_id
27054          , p_ae_header_id             => l_ae_header_id 
27055 , p_source_33 => p_source_33
27056          , x_transaction_coa_id       => l_adr_transaction_coa_id
27057          , x_accounting_coa_id        => l_adr_accounting_coa_id
27058          , x_value_type_code          => l_adr_value_type_code
27059          , p_side                     => 'NA'
27060    );
27061 
27062    xla_ae_lines_pkg.set_ccid(
27063     p_code_combination_id          => l_ccid
27064   , p_value_type_code              => l_adr_value_type_code
27065   , p_transaction_coa_id           => l_adr_transaction_coa_id
27066   , p_accounting_coa_id            => l_adr_accounting_coa_id
27067   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
27068   , p_adr_type_code                => 'S'
27069   , p_component_type               => l_component_type
27070   , p_component_code               => l_component_code
27071   , p_component_type_code          => l_component_type_code
27072   , p_component_appl_id            => l_component_appl_id
27073   , p_amb_context_code             => l_amb_context_code
27074   , p_side                         => 'NA'
27075   );
27076 
27077 
27078    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
27079      p_to_segment_code         => 'GL_BALANCING'
27080    , p_segment_value           => C_CHAR
27081    , p_from_segment_code       => NULL
27082    , p_from_combination_id     => NULL
27083    , p_value_type_code         => NULL
27084    , p_transaction_coa_id      => null
27085    , p_accounting_coa_id       => null
27086    , p_flexfield_segment_code  => NULL
27087    , p_flex_value_set_id       => NULL
27088    , p_adr_code                => NULL
27089    , p_adr_type_code           => NULL
27090    , p_component_type          => l_component_type
27091    , p_component_code          => l_component_code
27092    , p_component_type_code     => l_component_type_code
27093    , p_component_appl_id       => l_component_appl_id
27094    , p_amb_context_code        => l_amb_context_code
27095    , p_entity_code             => 'AP_PAYMENTS'
27096    , p_event_class_code        => 'REFUNDS'
27097    , p_side                    => 'NA'
27098    );
27099    --
27100 
27101 
27102    --
27103    --
27104    END IF;
27105    --
27109         ) AND
27106    -- Bug 4922099
27107    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27108           (NVL(l_enc_upg_option, 'N') = 'O')
27110         (l_bflow_method_code = 'PRIOR_ENTRY')
27111       )
27112    THEN
27113       IF
27114       --
27115       1 = 2
27116       --
27117       THEN
27118       xla_accounting_err_pkg.build_message
27119                                     (p_appli_s_name            => 'XLA'
27120                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27121                                     ,p_token_1                 => 'LINE_NUMBER'
27122                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
27123                                     ,p_token_2                 => 'LINE_TYPE_NAME'
27124                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
27125                                                                              l_component_type
27126                                                                             ,l_component_code
27127                                                                             ,l_component_type_code
27128                                                                             ,l_component_appl_id
27129                                                                             ,l_amb_context_code
27130                                                                             ,l_entity_code
27131                                                                             ,l_event_class_code
27132                                                                            )
27133                                     ,p_token_3                 => 'OWNER'
27134                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
27135                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
27136                                                                           ,p_lookup_code    => l_component_type_code
27137                                                                          )
27138                                     ,p_token_4                 => 'PRODUCT_NAME'
27139                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27140                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27141                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27142                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27143                                     ,p_ae_header_id            =>  NULL
27144                                        );
27145 
27146         IF (C_LEVEL_ERROR>= g_log_level) THEN
27147                  trace
27148                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27149                       ,p_level    => C_LEVEL_ERROR
27150                       ,p_module   => l_log_module);
27151         END IF;
27152       END IF;
27153    END IF;
27154    --
27155    --
27156    ------------------------------------------------------------------------------------------------
27157    -- 4219869 Business Flow
27158    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27159    -- Prior Entry.  Currently, the following code is always generated.
27160    ------------------------------------------------------------------------------------------------
27161    XLA_AE_LINES_PKG.ValidateCurrentLine;
27162 
27163    ------------------------------------------------------------------------------------
27164    -- 4219869 Business Flow
27165    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27166    ------------------------------------------------------------------------------------
27167    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27168 
27169    ----------------------------------------------------------------------------------
27170    -- 4219869 Business Flow
27171    -- Update journal entry status -- Need to generate this within IF <condition>
27172    ----------------------------------------------------------------------------------
27173    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27174          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27175          ,p_balance_type_code => l_balance_type_code
27176          );
27177 
27178    -------------------------------------------------------------------------------------------
27179    -- 4262811 - Generate the Accrual Reversal lines
27180    -------------------------------------------------------------------------------------------
27181    BEGIN
27182       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27183                               (g_array_event(p_event_id).array_value_num('header_index'));
27184       IF l_acc_rev_flag IS NULL THEN
27185          l_acc_rev_flag := 'N';
27186       END IF;
27187    EXCEPTION
27188       WHEN OTHERS THEN
27189          l_acc_rev_flag := 'N';
27190    END;
27191    --
27192    IF (l_acc_rev_flag = 'Y') THEN
27193 
27194        -- 4645092  ------------------------------------------------------------------------------
27195        -- To allow MPA report to determine if it should generate report process
27196        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27197        ------------------------------------------------------------------------------------------
27201    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
27198 
27199        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27200        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27202    -- call ADRs
27203    -- Bug 4922099
27204    --
27205    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27206         (NVL(l_actual_upg_option, 'N') = 'O') OR
27207         (NVL(l_enc_upg_option, 'N') = 'O')
27208       )
27209    THEN
27210    NULL;
27211    --
27212    --
27213    
27214   l_ccid := AcctDerRule_30(
27215            p_application_id           => p_application_id
27216          , p_ae_header_id             => l_ae_header_id 
27217 , p_source_33 => p_source_33
27218          , x_transaction_coa_id       => l_adr_transaction_coa_id
27219          , x_accounting_coa_id        => l_adr_accounting_coa_id
27220          , x_value_type_code          => l_adr_value_type_code
27221          , p_side                     => 'NA'
27222    );
27223 
27224    xla_ae_lines_pkg.set_ccid(
27225     p_code_combination_id          => l_ccid
27226   , p_value_type_code              => l_adr_value_type_code
27227   , p_transaction_coa_id           => l_adr_transaction_coa_id
27228   , p_accounting_coa_id            => l_adr_accounting_coa_id
27229   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
27230   , p_adr_type_code                => 'S'
27231   , p_component_type               => l_component_type
27232   , p_component_code               => l_component_code
27233   , p_component_type_code          => l_component_type_code
27234   , p_component_appl_id            => l_component_appl_id
27235   , p_amb_context_code             => l_amb_context_code
27236   , p_side                         => 'NA'
27237   );
27238 
27239 
27240    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
27241      p_to_segment_code         => 'GL_BALANCING'
27242    , p_segment_value           => C_CHAR
27243    , p_from_segment_code       => NULL
27244    , p_from_combination_id     => NULL
27245    , p_value_type_code         => NULL
27246    , p_transaction_coa_id      => null
27247    , p_accounting_coa_id       => null
27248    , p_flexfield_segment_code  => NULL
27249    , p_flex_value_set_id       => NULL
27250    , p_adr_code                => NULL
27251    , p_adr_type_code           => NULL
27252    , p_component_type          => l_component_type
27253    , p_component_code          => l_component_code
27254    , p_component_type_code     => l_component_type_code
27255    , p_component_appl_id       => l_component_appl_id
27256    , p_amb_context_code        => l_amb_context_code
27257    , p_entity_code             => 'AP_PAYMENTS'
27258    , p_event_class_code        => 'REFUNDS'
27259    , p_side                    => 'NA'
27260    );
27261    --
27262 
27263 
27264    --
27265    --
27266    END IF;
27267 
27268        --
27269        -- Update the line information that should be overwritten
27270        --
27271        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27272                                          p_header_num   => 1);
27273        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
27274 
27275        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27276 
27277        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
27278           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27279        END IF;
27280 
27281       --
27282       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27283       --
27284       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27285           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
27286       ELSE
27287           ---------------------------------------------------------------------------------------------------
27288           -- 4262811a Switch Sign
27289           ---------------------------------------------------------------------------------------------------
27290           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
27291           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27292                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27293           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27294                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27295           -- 5132302
27296           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27297                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27298 
27299       END IF;
27300 
27301       -- 4955764
27302       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27303       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27304 
27305 
27306       XLA_AE_LINES_PKG.ValidateCurrentLine;
27307       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27308 
27309       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27313    END IF;
27310                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27311                ,p_balance_type_code => l_balance_type_code);
27312 
27314 
27315    -----------------------------------------------------------------------------------------
27316    -- 4262811 Multiperiod Accounting
27317    -----------------------------------------------------------------------------------------
27318      -- No MPA option is assigned.
27319 
27320 
27321 END IF;
27322 END IF;
27323 --
27324 
27325 --
27326 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27327    trace
27328       (p_msg      => 'END of AcctLineType_67'
27329       ,p_level    => C_LEVEL_PROCEDURE
27330       ,p_module   => l_log_module);
27331 END IF;
27332 --
27333 EXCEPTION
27334   WHEN xla_exceptions_pkg.application_exception THEN
27335       RAISE;
27336   WHEN OTHERS THEN
27337        xla_exceptions_pkg.raise_message
27338            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_67');
27339 END AcctLineType_67;
27340 --
27341 
27342 ---------------------------------------
27343 --
27344 -- PRIVATE FUNCTION
27345 --         AcctLineType_68
27346 --
27347 ---------------------------------------
27348 PROCEDURE AcctLineType_68 (
27349   p_application_id        IN NUMBER
27350  ,p_event_id              IN NUMBER
27351  ,p_calculate_acctd_flag  IN VARCHAR2
27352  ,p_calculate_g_l_flag    IN VARCHAR2
27353  ,p_actual_flag           IN OUT VARCHAR2
27354  ,p_balance_type_code     OUT VARCHAR2
27355  ,p_gain_or_loss_ref      OUT VARCHAR2
27356  
27357 --Payment Currency Code
27358  , p_source_12            IN VARCHAR2
27359 --Bank Cash Account
27360  , p_source_13            IN NUMBER
27361 --Payment Distribution (Payment Rate) Ledger Amount
27362  , p_source_21            IN NUMBER
27363 --Automatic Offsets Flag
27364  , p_source_42            IN VARCHAR2
27365  , p_source_42_meaning    IN VARCHAR2
27366 --When to Account for Payment Option
27367  , p_source_50            IN VARCHAR2
27368 --Payment Distribution Type
27369  , p_source_51            IN VARCHAR2
27370  , p_source_51_meaning    IN VARCHAR2
27371 --Accounting Reversal Indicator
27372  , p_source_52            IN VARCHAR2
27373 --Payment Distribution Amount
27374  , p_source_53            IN NUMBER
27375 --Business Flow Accounts Payable Application Identifier
27376  , p_source_54            IN NUMBER
27377 --Payment Distribution Identifier
27378  , p_source_59            IN NUMBER
27379 --Distribution Link Type
27380  , p_source_60            IN VARCHAR2
27381 --Override Accounted Amount Indicator
27382  , p_source_64            IN VARCHAR2
27383  , p_source_64_meaning    IN VARCHAR2
27384 --Payment Supplier Identifier
27385  , p_source_65            IN NUMBER
27386 --Payment Supplier Site Identifier
27387  , p_source_66            IN NUMBER
27388 --Third Party Type
27389  , p_source_67            IN VARCHAR2
27390 --Payment Distribution Reversed Identifier
27391  , p_source_68            IN NUMBER
27392 --Invoice Distribution Tax Line Identifier
27393  , p_source_69            IN NUMBER
27394 --Invoice Distribution Summary Tax Line Identifier
27395  , p_source_70            IN NUMBER
27396 --Payment Type
27397  , p_source_71            IN VARCHAR2
27398  , p_source_71_meaning    IN VARCHAR2
27399 --Invoice Distribution Amount of the Payment Distribution
27400  , p_source_72            IN NUMBER
27401 --Business Flow Invoice Distribution Type
27402  , p_source_73            IN VARCHAR2
27403 --Business Flow Invoice Entity Code
27404  , p_source_74            IN VARCHAR2
27405 --Business Flow Invoice Distribution Identifier
27406  , p_source_75            IN NUMBER
27407 --Business Flow Invoice Identifier
27408  , p_source_76            IN NUMBER
27409 --Invoice Distribution Tax Distribution Identifier from Tax
27410  , p_source_77            IN NUMBER
27411 --Pooled Bank Account Option
27412  , p_source_117            IN VARCHAR2
27413  , p_source_117_meaning    IN VARCHAR2
27414 --Payment Maturity Date
27415  , p_source_118            IN DATE
27416 --Payment Processing Type
27417  , p_source_120            IN VARCHAR2
27418 --Payment Exchange Date
27419  , p_source_121            IN DATE
27420 --Payment Exchange Rate
27421  , p_source_122            IN NUMBER
27422 --Payment Exchange Rate Type
27423  , p_source_123            IN VARCHAR2
27424 )
27425 IS
27426 
27427 l_component_type              VARCHAR2(80);
27428 l_component_code              VARCHAR2(30);
27429 l_component_type_code         VARCHAR2(1);
27430 l_component_appl_id           INTEGER;
27431 l_amb_context_code            VARCHAR2(30);
27432 l_entity_code                 VARCHAR2(30);
27433 l_event_class_code            VARCHAR2(30);
27434 l_ae_header_id                NUMBER;
27435 l_event_type_code             VARCHAR2(30);
27436 l_line_definition_code        VARCHAR2(30);
27437 l_line_definition_owner_code  VARCHAR2(1);
27438 --
27439 -- adr variables
27440 l_segment                     VARCHAR2(30);
27441 l_ccid                        NUMBER;
27442 l_adr_transaction_coa_id      NUMBER;
27443 l_adr_accounting_coa_id       NUMBER;
27444 l_adr_flexfield_segment_code  VARCHAR2(30);
27445 l_adr_flex_value_set_id       NUMBER;
27446 l_adr_value_type_code         VARCHAR2(30);
27447 l_adr_value_combination_id    NUMBER;
27448 l_adr_value_segment_code      VARCHAR2(30);
27449 
27453 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
27450 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
27451 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
27452 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
27454 
27455 -- 4262811 Variables ------------------------------------------------------------------------------------------
27456 l_entered_amt_idx             NUMBER;
27457 l_accted_amt_idx              NUMBER;
27458 l_acc_rev_flag                VARCHAR2(1);
27459 l_accrual_line_num            NUMBER;
27460 l_tmp_amt                     NUMBER;
27461 l_acc_rev_natural_side_code   VARCHAR2(1);
27462 
27463 l_num_entries                 NUMBER;
27464 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
27465 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
27466 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
27467 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
27468 l_recog_line_1                NUMBER;
27469 l_recog_line_2                NUMBER;
27470 
27471 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
27472 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
27473 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
27474 
27475 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27476 
27477 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
27478 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
27479 
27480 ---------------------------------------------------------------------------------------------------------------
27481 
27482 
27483 --
27484 -- bulk performance
27485 --
27486 l_balance_type_code           VARCHAR2(1);
27487 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
27488 l_log_module                  VARCHAR2(240);
27489 
27490 --
27491 -- Upgrade strategy
27492 --
27493 l_actual_upg_option           VARCHAR2(1);
27494 l_enc_upg_option           VARCHAR2(1);
27495 
27496 --
27497 BEGIN
27498 --
27499 IF g_log_enabled THEN
27500       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
27501 END IF;
27502 --
27503 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27504 
27505       trace
27506          (p_msg      => 'BEGIN of AcctLineType_68'
27507          ,p_level    => C_LEVEL_PROCEDURE
27508          ,p_module   => l_log_module);
27509 
27510 END IF;
27511 --
27512 l_component_type             := 'AMB_JLT';
27513 l_component_code             := 'AP_CASH_PMT';
27514 l_component_type_code        := 'S';
27515 l_component_appl_id          :=  200;
27516 l_amb_context_code           := 'DEFAULT';
27517 l_entity_code                := 'AP_PAYMENTS';
27518 l_event_class_code           := 'PAYMENTS';
27519 l_event_type_code            := 'PAYMENTS_ALL';
27520 l_line_definition_owner_code := 'S';
27521 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
27522 --
27523 l_balance_type_code          := 'A';
27524 l_segment                     := NULL;
27525 l_ccid                        := NULL;
27526 l_adr_transaction_coa_id      := NULL;
27527 l_adr_accounting_coa_id       := NULL;
27528 l_adr_flexfield_segment_code  := NULL;
27529 l_adr_flex_value_set_id       := NULL;
27530 l_adr_value_type_code         := NULL;
27531 l_adr_value_combination_id    := NULL;
27532 l_adr_value_segment_code      := NULL;
27533 
27534 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
27535 l_bflow_class_code           := '';    -- 4219869 Business Flow
27536 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
27537 l_budgetary_control_flag     := 'N';
27538 
27539 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
27540 l_bflow_applied_to_amt       := NULL; -- 5132302
27541 l_entered_amt_idx            := NULL;          -- 4262811
27542 l_accted_amt_idx             := NULL;          -- 4262811
27543 l_acc_rev_flag               := NULL;          -- 4262811
27544 l_accrual_line_num           := NULL;          -- 4262811
27545 l_tmp_amt                    := NULL;          -- 4262811
27546 --
27547  
27548 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27549     l_balance_type_code <> 'B' THEN
27550 IF NVL(p_source_50,'
27551 ') =  'ISSUE_ISSUE' AND 
27552 (NVL(p_source_42,'
27553 ') <>  'Y' OR 
27554 NVL(p_source_42,'
27555 ') =  'Y' AND 
27556 NVL(p_source_117,'
27557 ') <>  'Y') AND 
27558 p_source_118 IS NULL AND 
27559 NVL(p_source_51,'
27560 ') =  'CASH' AND 
27561 NVL(p_source_71,'
27562 ') <>  'R' AND 
27563 NVL(p_source_120,'
27564 ') <>  'PAYMENTCARD'
27565  THEN 
27566 
27567    --
27568    XLA_AE_LINES_PKG.SetNewLine;
27569 
27570    p_balance_type_code          := l_balance_type_code;
27571    -- set the flag so later we will know whether the gain loss line needs to be created
27572    
27573    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27574      p_actual_flag :='A';
27575    END IF;
27576 
27577    --
27578    -- bulk performance
27579    --
27580    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27581                                       p_header_num   => 0); -- 4262811
27582    --
27583    -- set accounting line options
27584    --
27585    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27589          , p_acct_entry_type_code       => 'A'
27586            p_natural_side_code          => 'C'
27587          , p_gain_or_loss_flag          => 'N'
27588          , p_gl_transfer_mode_code      => 'S'
27590          , p_switch_side_flag           => 'Y'
27591          , p_merge_duplicate_code       => 'A'
27592          );
27593    --
27594    l_acc_rev_natural_side_code := 'D';  -- 4262811
27595    -- 
27596    --
27597    -- set accounting line type info
27598    --
27599    xla_ae_lines_pkg.SetAcctLineType
27600       (p_component_type             => l_component_type
27601       ,p_event_type_code            => l_event_type_code
27602       ,p_line_definition_owner_code => l_line_definition_owner_code
27603       ,p_line_definition_code       => l_line_definition_code
27604       ,p_accounting_line_code       => l_component_code
27605       ,p_accounting_line_type_code  => l_component_type_code
27606       ,p_accounting_line_appl_id    => l_component_appl_id
27607       ,p_amb_context_code           => l_amb_context_code
27608       ,p_entity_code                => l_entity_code
27609       ,p_event_class_code           => l_event_class_code);
27610    --
27611    -- set accounting class
27612    --
27613    xla_ae_lines_pkg.SetAcctClass(
27614            p_accounting_class_code  => 'CASH'
27615          , p_ae_header_id           => l_ae_header_id
27616          );
27617 
27618    --
27619    -- set rounding class
27620    --
27621    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27622                       'CASH';
27623 
27624    --
27625    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27626    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27627    --
27628    -- bulk performance
27629    --
27630    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27631 
27632    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27633       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27634 
27635    -- 4955764
27636    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27637       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27638 
27639    -- 4458381 Public Sector Enh
27640    
27641    --
27642    -- set accounting attributes for the line type
27643    --
27644    l_entered_amt_idx := 10;
27645    l_accted_amt_idx  := 15;
27646    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
27647    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27648    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
27649    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
27650    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
27651    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
27652    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
27653    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
27654    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
27655    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
27656    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
27657    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
27658    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
27659    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
27660    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
27661    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
27662    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
27663    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
27664    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
27665    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
27666    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
27667    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
27668    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
27669    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
27670    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
27671    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
27672    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
27673    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
27674    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
27675    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
27676    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
27677    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
27678    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
27679    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
27680    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
27681    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
27682    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
27683    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
27684    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
27685    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
27686    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
27687    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
27691    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
27688    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
27689    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
27690    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
27692    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
27693    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
27694    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
27695 
27696    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27697    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27698 
27699    ---------------------------------------------------------------------------------------------------------------
27700    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27701    ---------------------------------------------------------------------------------------------------------------
27702    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27703 
27704    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27705    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27706 
27707    IF xla_accounting_cache_pkg.GetValueChar
27708          (p_source_code         => 'LEDGER_CATEGORY_CODE'
27709          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27710    AND l_bflow_method_code = 'PRIOR_ENTRY'
27711 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27712    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27713          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27714        )
27715    THEN
27716          xla_ae_lines_pkg.BflowUpgEntry
27717            (p_business_method_code    => l_bflow_method_code
27718            ,p_business_class_code     => l_bflow_class_code
27719            ,p_balance_type            => l_balance_type_code);
27720    ELSE
27721       NULL;
27722 -- No business flow processing for business flow method of NONE.
27723    END IF;
27724 
27725    --
27726    -- call analytical criteria
27727    --
27728    
27729    --
27730    -- call description
27731    --
27732    -- No description or it is inherited.
27733    --
27734    -- call ADRs
27735    -- Bug 4922099
27736    --
27737    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27738         (NVL(l_actual_upg_option, 'N') = 'O') OR
27739         (NVL(l_enc_upg_option, 'N') = 'O')
27740       )
27741    THEN
27742    NULL;
27743    --
27744    --
27745    
27746   l_ccid := AcctDerRule_22(
27747            p_application_id           => p_application_id
27748          , p_ae_header_id             => l_ae_header_id 
27749 , p_source_13 => p_source_13
27750          , x_transaction_coa_id       => l_adr_transaction_coa_id
27751          , x_accounting_coa_id        => l_adr_accounting_coa_id
27752          , x_value_type_code          => l_adr_value_type_code
27753          , p_side                     => 'NA'
27754    );
27755 
27756    xla_ae_lines_pkg.set_ccid(
27757     p_code_combination_id          => l_ccid
27758   , p_value_type_code              => l_adr_value_type_code
27759   , p_transaction_coa_id           => l_adr_transaction_coa_id
27760   , p_accounting_coa_id            => l_adr_accounting_coa_id
27761   , p_adr_code                     => 'AP_CASH'
27762   , p_adr_type_code                => 'S'
27763   , p_component_type               => l_component_type
27764   , p_component_code               => l_component_code
27765   , p_component_type_code          => l_component_type_code
27766   , p_component_appl_id            => l_component_appl_id
27767   , p_amb_context_code             => l_amb_context_code
27768   , p_side                         => 'NA'
27769   );
27770 
27771 
27772    --
27773    --
27774    END IF;
27775    --
27776    -- Bug 4922099
27777    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27778           (NVL(l_enc_upg_option, 'N') = 'O')
27779         ) AND
27780         (l_bflow_method_code = 'PRIOR_ENTRY')
27781       )
27782    THEN
27783       IF
27784       --
27785       1 = 2
27786       --
27787       THEN
27788       xla_accounting_err_pkg.build_message
27789                                     (p_appli_s_name            => 'XLA'
27790                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27791                                     ,p_token_1                 => 'LINE_NUMBER'
27792                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
27793                                     ,p_token_2                 => 'LINE_TYPE_NAME'
27794                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
27795                                                                              l_component_type
27796                                                                             ,l_component_code
27797                                                                             ,l_component_type_code
27798                                                                             ,l_component_appl_id
27799                                                                             ,l_amb_context_code
27800                                                                             ,l_entity_code
27804                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
27801                                                                             ,l_event_class_code
27802                                                                            )
27803                                     ,p_token_3                 => 'OWNER'
27805                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
27806                                                                           ,p_lookup_code    => l_component_type_code
27807                                                                          )
27808                                     ,p_token_4                 => 'PRODUCT_NAME'
27809                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27810                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27811                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27812                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27813                                     ,p_ae_header_id            =>  NULL
27814                                        );
27815 
27816         IF (C_LEVEL_ERROR>= g_log_level) THEN
27817                  trace
27818                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27819                       ,p_level    => C_LEVEL_ERROR
27820                       ,p_module   => l_log_module);
27821         END IF;
27822       END IF;
27823    END IF;
27824    --
27825    --
27826    ------------------------------------------------------------------------------------------------
27827    -- 4219869 Business Flow
27828    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27829    -- Prior Entry.  Currently, the following code is always generated.
27830    ------------------------------------------------------------------------------------------------
27831    XLA_AE_LINES_PKG.ValidateCurrentLine;
27832 
27833    ------------------------------------------------------------------------------------
27834    -- 4219869 Business Flow
27835    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27836    ------------------------------------------------------------------------------------
27837    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27838 
27839    ----------------------------------------------------------------------------------
27840    -- 4219869 Business Flow
27841    -- Update journal entry status -- Need to generate this within IF <condition>
27842    ----------------------------------------------------------------------------------
27843    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27844          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27845          ,p_balance_type_code => l_balance_type_code
27846          );
27847 
27848    -------------------------------------------------------------------------------------------
27849    -- 4262811 - Generate the Accrual Reversal lines
27850    -------------------------------------------------------------------------------------------
27851    BEGIN
27852       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27853                               (g_array_event(p_event_id).array_value_num('header_index'));
27854       IF l_acc_rev_flag IS NULL THEN
27855          l_acc_rev_flag := 'N';
27856       END IF;
27857    EXCEPTION
27858       WHEN OTHERS THEN
27859          l_acc_rev_flag := 'N';
27860    END;
27861    --
27862    IF (l_acc_rev_flag = 'Y') THEN
27863 
27864        -- 4645092  ------------------------------------------------------------------------------
27865        -- To allow MPA report to determine if it should generate report process
27866        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27867        ------------------------------------------------------------------------------------------
27868 
27869        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27870        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27871    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
27872    -- call ADRs
27873    -- Bug 4922099
27874    --
27875    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27876         (NVL(l_actual_upg_option, 'N') = 'O') OR
27877         (NVL(l_enc_upg_option, 'N') = 'O')
27878       )
27879    THEN
27880    NULL;
27881    --
27882    --
27883    
27884   l_ccid := AcctDerRule_22(
27885            p_application_id           => p_application_id
27886          , p_ae_header_id             => l_ae_header_id 
27887 , p_source_13 => p_source_13
27888          , x_transaction_coa_id       => l_adr_transaction_coa_id
27889          , x_accounting_coa_id        => l_adr_accounting_coa_id
27890          , x_value_type_code          => l_adr_value_type_code
27891          , p_side                     => 'NA'
27892    );
27893 
27894    xla_ae_lines_pkg.set_ccid(
27895     p_code_combination_id          => l_ccid
27896   , p_value_type_code              => l_adr_value_type_code
27897   , p_transaction_coa_id           => l_adr_transaction_coa_id
27898   , p_accounting_coa_id            => l_adr_accounting_coa_id
27899   , p_adr_code                     => 'AP_CASH'
27900   , p_adr_type_code                => 'S'
27901   , p_component_type               => l_component_type
27902   , p_component_code               => l_component_code
27906   , p_side                         => 'NA'
27903   , p_component_type_code          => l_component_type_code
27904   , p_component_appl_id            => l_component_appl_id
27905   , p_amb_context_code             => l_amb_context_code
27907   );
27908 
27909 
27910    --
27911    --
27912    END IF;
27913 
27914        --
27915        -- Update the line information that should be overwritten
27916        --
27917        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27918                                          p_header_num   => 1);
27919        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
27920 
27921        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27922 
27923        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
27924           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27925        END IF;
27926 
27927       --
27928       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27929       --
27930       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27931           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
27932       ELSE
27933           ---------------------------------------------------------------------------------------------------
27934           -- 4262811a Switch Sign
27935           ---------------------------------------------------------------------------------------------------
27936           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
27937           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27938                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27939           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27940                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27941           -- 5132302
27942           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27943                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27944 
27945       END IF;
27946 
27947       -- 4955764
27948       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27949       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27950 
27951 
27952       XLA_AE_LINES_PKG.ValidateCurrentLine;
27953       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27954 
27955       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27956                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27957                ,p_balance_type_code => l_balance_type_code);
27958 
27959    END IF;
27960 
27961    -----------------------------------------------------------------------------------------
27962    -- 4262811 Multiperiod Accounting
27963    -----------------------------------------------------------------------------------------
27964      -- No MPA option is assigned.
27965 
27966 
27967 END IF;
27968 END IF;
27969 --
27970 
27971 --
27972 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27973    trace
27974       (p_msg      => 'END of AcctLineType_68'
27975       ,p_level    => C_LEVEL_PROCEDURE
27976       ,p_module   => l_log_module);
27977 END IF;
27978 --
27979 EXCEPTION
27980   WHEN xla_exceptions_pkg.application_exception THEN
27981       RAISE;
27982   WHEN OTHERS THEN
27983        xla_exceptions_pkg.raise_message
27984            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_68');
27985 END AcctLineType_68;
27986 --
27987 
27988 ---------------------------------------
27989 --
27990 -- PRIVATE FUNCTION
27991 --         AcctLineType_69
27992 --
27993 ---------------------------------------
27994 PROCEDURE AcctLineType_69 (
27995   p_application_id        IN NUMBER
27996  ,p_event_id              IN NUMBER
27997  ,p_calculate_acctd_flag  IN VARCHAR2
27998  ,p_calculate_g_l_flag    IN VARCHAR2
27999  ,p_actual_flag           IN OUT VARCHAR2
28000  ,p_balance_type_code     OUT VARCHAR2
28001  ,p_gain_or_loss_ref      OUT VARCHAR2
28002  
28003 --Payment Currency Code
28004  , p_source_12            IN VARCHAR2
28005 --Bank Cash Account
28006  , p_source_13            IN NUMBER
28007 --Automatic Offsets Value
28008  , p_source_16            IN VARCHAR2
28009  , p_source_16_meaning    IN VARCHAR2
28010 --Payment Distribution (Payment Rate) Ledger Amount
28011  , p_source_21            IN NUMBER
28012 --When to Account for Payment Option
28013  , p_source_50            IN VARCHAR2
28014 --Payment Distribution Type
28015  , p_source_51            IN VARCHAR2
28016  , p_source_51_meaning    IN VARCHAR2
28017 --Accounting Reversal Indicator
28018  , p_source_52            IN VARCHAR2
28019 --Payment Distribution Amount
28020  , p_source_53            IN NUMBER
28021 --Business Flow Accounts Payable Application Identifier
28022  , p_source_54            IN NUMBER
28023 --Payment Distribution Identifier
28024  , p_source_59            IN NUMBER
28025 --Distribution Link Type
28026  , p_source_60            IN VARCHAR2
28027 --Override Accounted Amount Indicator
28028  , p_source_64            IN VARCHAR2
28032 --Payment Supplier Site Identifier
28029  , p_source_64_meaning    IN VARCHAR2
28030 --Payment Supplier Identifier
28031  , p_source_65            IN NUMBER
28033  , p_source_66            IN NUMBER
28034 --Third Party Type
28035  , p_source_67            IN VARCHAR2
28036 --Payment Distribution Reversed Identifier
28037  , p_source_68            IN NUMBER
28038 --Invoice Distribution Tax Line Identifier
28039  , p_source_69            IN NUMBER
28040 --Invoice Distribution Summary Tax Line Identifier
28041  , p_source_70            IN NUMBER
28042 --Payment Type
28043  , p_source_71            IN VARCHAR2
28044  , p_source_71_meaning    IN VARCHAR2
28045 --Invoice Distribution Amount of the Payment Distribution
28046  , p_source_72            IN NUMBER
28047 --Business Flow Invoice Distribution Type
28048  , p_source_73            IN VARCHAR2
28049 --Business Flow Invoice Entity Code
28050  , p_source_74            IN VARCHAR2
28051 --Business Flow Invoice Distribution Identifier
28052  , p_source_75            IN NUMBER
28053 --Business Flow Invoice Identifier
28054  , p_source_76            IN NUMBER
28055 --Invoice Distribution Tax Distribution Identifier from Tax
28056  , p_source_77            IN NUMBER
28057 --Pooled Bank Account Option
28058  , p_source_117            IN VARCHAR2
28059  , p_source_117_meaning    IN VARCHAR2
28060 --Payment Maturity Date
28061  , p_source_118            IN DATE
28062 --Payment Processing Type
28063  , p_source_120            IN VARCHAR2
28064 --Payment Exchange Date
28065  , p_source_121            IN DATE
28066 --Payment Exchange Rate
28067  , p_source_122            IN NUMBER
28068 --Payment Exchange Rate Type
28069  , p_source_123            IN VARCHAR2
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 --
28085 -- adr variables
28086 l_segment                     VARCHAR2(30);
28087 l_ccid                        NUMBER;
28088 l_adr_transaction_coa_id      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_69';
28147 END IF;
28148 --
28149 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28150 
28151       trace
28152          (p_msg      => 'BEGIN of AcctLineType_69'
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_PMT_AOS_AS';
28160 l_component_type_code        := 'S';
28164 l_event_class_code           := 'PAYMENTS';
28161 l_component_appl_id          :=  200;
28162 l_amb_context_code           := 'DEFAULT';
28163 l_entity_code                := 'AP_PAYMENTS';
28165 l_event_type_code            := 'PAYMENTS_ALL';
28166 l_line_definition_owner_code := 'S';
28167 l_line_definition_code       := 'CASH_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          := 'SAME_ENTRY';   -- 4219869 Business Flow
28181 l_bflow_class_code           := '';    -- 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_50,'
28197 ') =  'ISSUE_ISSUE' AND 
28198 (NVL(p_source_117,'
28199 ') =  'Y' AND 
28200 NVL(p_source_16,'
28201 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
28202 p_source_118 IS NULL AND 
28203 NVL(p_source_51,'
28204 ') =  'CASH' AND 
28205 NVL(p_source_71,'
28206 ') <>  'R' AND 
28207 NVL(p_source_120,'
28208 ') <>  'PAYMENTCARD'
28209  THEN 
28210 
28211    --
28212    XLA_AE_LINES_PKG.SetNewLine;
28213 
28214    p_balance_type_code          := l_balance_type_code;
28215    -- set the flag so later we will know whether the gain loss line needs to be created
28216    
28217    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28218      p_actual_flag :='A';
28219    END IF;
28220 
28221    --
28222    -- bulk performance
28223    --
28224    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28225                                       p_header_num   => 0); -- 4262811
28226    --
28227    -- set accounting line options
28228    --
28229    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28230            p_natural_side_code          => 'C'
28231          , p_gain_or_loss_flag          => 'N'
28232          , p_gl_transfer_mode_code      => 'S'
28233          , p_acct_entry_type_code       => 'A'
28234          , p_switch_side_flag           => 'Y'
28235          , p_merge_duplicate_code       => 'A'
28236          );
28237    --
28238    l_acc_rev_natural_side_code := 'D';  -- 4262811
28239    -- 
28240    --
28241    -- set accounting line type info
28242    --
28243    xla_ae_lines_pkg.SetAcctLineType
28244       (p_component_type             => l_component_type
28245       ,p_event_type_code            => l_event_type_code
28246       ,p_line_definition_owner_code => l_line_definition_owner_code
28247       ,p_line_definition_code       => l_line_definition_code
28248       ,p_accounting_line_code       => l_component_code
28249       ,p_accounting_line_type_code  => l_component_type_code
28250       ,p_accounting_line_appl_id    => l_component_appl_id
28251       ,p_amb_context_code           => l_amb_context_code
28252       ,p_entity_code                => l_entity_code
28253       ,p_event_class_code           => l_event_class_code);
28254    --
28255    -- set accounting class
28256    --
28257    xla_ae_lines_pkg.SetAcctClass(
28258            p_accounting_class_code  => 'CASH'
28259          , p_ae_header_id           => l_ae_header_id
28260          );
28261 
28262    --
28263    -- set rounding class
28264    --
28265    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28266                       'CASH';
28267 
28268    --
28269    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28270    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28271    --
28272    -- bulk performance
28273    --
28274    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28275 
28276    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28277       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28278 
28279    -- 4955764
28280    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28281       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28282 
28283    -- 4458381 Public Sector Enh
28284    
28285    --
28286    -- set accounting attributes for the line type
28287    --
28288    l_entered_amt_idx := 10;
28289    l_accted_amt_idx  := 15;
28290    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
28294    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
28291    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28292    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
28293    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
28295    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
28296    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
28297    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28298    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
28299    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
28300    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
28301    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
28302    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
28303    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28304    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
28305    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
28306    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
28307    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
28308    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
28309    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
28310    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
28311    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
28312    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
28313    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
28314    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
28315    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
28316    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
28317    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
28318    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
28319    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
28320    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
28321    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
28322    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
28323    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
28324    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
28325    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
28326    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
28327    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
28328    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
28329    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
28330    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
28331    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
28332    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
28333    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
28334    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
28335    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
28336    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
28337    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
28338    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
28339 
28340    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28341    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28342 
28343    ---------------------------------------------------------------------------------------------------------------
28344    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28345    ---------------------------------------------------------------------------------------------------------------
28346    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28347 
28348    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28349    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28350 
28351    IF xla_accounting_cache_pkg.GetValueChar
28352          (p_source_code         => 'LEDGER_CATEGORY_CODE'
28353          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28354    AND l_bflow_method_code = 'PRIOR_ENTRY'
28355 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28356    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28357          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28358        )
28359    THEN
28360          xla_ae_lines_pkg.BflowUpgEntry
28361            (p_business_method_code    => l_bflow_method_code
28362            ,p_business_class_code     => l_bflow_class_code
28363            ,p_balance_type            => l_balance_type_code);
28364    ELSE
28365       NULL;
28366 XLA_AE_LINES_PKG.business_flow_validation(
28367                                 p_business_method_code     => l_bflow_method_code
28368                                ,p_business_class_code      => l_bflow_class_code
28369                                ,p_inherit_description_flag => l_inherit_desc_flag);
28370    END IF;
28371 
28372    --
28373    -- call analytical criteria
28374    --
28375    
28376    --
28377    -- call description
28378    --
28379    -- No description or it is inherited.
28380    --
28381    -- call ADRs
28382    -- Bug 4922099
28383    --
28387       )
28384    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28385         (NVL(l_actual_upg_option, 'N') = 'O') OR
28386         (NVL(l_enc_upg_option, 'N') = 'O')
28388    THEN
28389    NULL;
28390    --
28391    --
28392    
28393    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
28394      p_code_combination_id      => TO_NUMBER(C_NUM)
28395    , p_value_type_code          => NULL
28396    , p_transaction_coa_id       => null
28397    , p_accounting_coa_id        => null
28398    , p_adr_code                 => NULL
28399    , p_adr_type_code            => NULL
28400    , p_component_type           => l_component_type
28401    , p_component_code           => l_component_code
28402    , p_component_type_code      => l_component_type_code
28403    , p_component_appl_id        => l_component_appl_id
28404    , p_amb_context_code         => l_amb_context_code
28405    , p_side                     => NULL
28406    );
28407 
28408    
28409   -- initialise segments
28410   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28411   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28412   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28413   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28414   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28415   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28416   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28417   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28418   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28419   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28420   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28421   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28422   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28423   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28424   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28425   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28426   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28427   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28428   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28429   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28430   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28431   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28432   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28433   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28434   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28435   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28436   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28437   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28438   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28439   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28440   --
28441 
28442    --
28443 
28444 
28445    l_segment := AcctDerRule_3(
28446            p_application_id           => p_application_id
28447          , p_ae_header_id             => l_ae_header_id 
28448 , p_source_13 => p_source_13
28449          , x_transaction_coa_id       => l_adr_transaction_coa_id
28450          , x_accounting_coa_id        => l_adr_accounting_coa_id
28451          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
28452          , x_flex_value_set_id        => l_adr_flex_value_set_id
28453          , x_value_type_code          => l_adr_value_type_code
28454          , x_value_combination_id     => l_adr_value_combination_id
28455          , x_value_segment_code       => l_adr_value_segment_code
28456          , p_side                     => 'NA'
28457          , p_override_seg_flag        => 'Y'
28458    );
28459 
28460    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
28461 
28462       xla_ae_lines_pkg.set_segment(
28463           p_to_segment_code         => 'GL_ACCOUNT'
28464         , p_segment_value           => l_segment
28465         , p_from_segment_code       => l_adr_value_segment_code
28466         , p_from_combination_id     => l_adr_value_combination_id
28467         , p_value_type_code         => l_adr_value_type_code
28468         , p_transaction_coa_id      => l_adr_transaction_coa_id
28469         , p_accounting_coa_id       => l_adr_accounting_coa_id
28470         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
28471         , p_flex_value_set_id       => l_adr_flex_value_set_id
28472         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
28473         , p_adr_type_code           => 'S'
28474         , p_component_type          => l_component_type
28475         , p_component_code          => l_component_code
28476         , p_component_type_code     => l_component_type_code
28477         , p_component_appl_id       => l_component_appl_id
28481         , p_side                    => 'NA'
28478         , p_amb_context_code        => l_amb_context_code
28479         , p_entity_code             => 'AP_PAYMENTS'
28480         , p_event_class_code        => 'PAYMENTS'
28482         );
28483 
28484   END IF;
28485 
28486    --
28487    --
28488    END IF;
28489    --
28490    -- Bug 4922099
28491    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28492           (NVL(l_enc_upg_option, 'N') = 'O')
28493         ) AND
28494         (l_bflow_method_code = 'PRIOR_ENTRY')
28495       )
28496    THEN
28497       IF
28498       --
28499       1 = 2
28500       --
28501       THEN
28502       xla_accounting_err_pkg.build_message
28503                                     (p_appli_s_name            => 'XLA'
28504                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28505                                     ,p_token_1                 => 'LINE_NUMBER'
28506                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
28507                                     ,p_token_2                 => 'LINE_TYPE_NAME'
28508                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
28509                                                                              l_component_type
28510                                                                             ,l_component_code
28511                                                                             ,l_component_type_code
28512                                                                             ,l_component_appl_id
28513                                                                             ,l_amb_context_code
28514                                                                             ,l_entity_code
28515                                                                             ,l_event_class_code
28516                                                                            )
28517                                     ,p_token_3                 => 'OWNER'
28518                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
28519                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
28520                                                                           ,p_lookup_code    => l_component_type_code
28521                                                                          )
28522                                     ,p_token_4                 => 'PRODUCT_NAME'
28523                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28524                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28525                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28526                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28527                                     ,p_ae_header_id            =>  NULL
28528                                        );
28529 
28530         IF (C_LEVEL_ERROR>= g_log_level) THEN
28531                  trace
28532                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28533                       ,p_level    => C_LEVEL_ERROR
28534                       ,p_module   => l_log_module);
28535         END IF;
28536       END IF;
28537    END IF;
28538    --
28539    --
28540    ------------------------------------------------------------------------------------------------
28541    -- 4219869 Business Flow
28542    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28543    -- Prior Entry.  Currently, the following code is always generated.
28544    ------------------------------------------------------------------------------------------------
28545    XLA_AE_LINES_PKG.ValidateCurrentLine;
28546 
28547    ------------------------------------------------------------------------------------
28548    -- 4219869 Business Flow
28549    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28550    ------------------------------------------------------------------------------------
28551    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28552 
28553    ----------------------------------------------------------------------------------
28554    -- 4219869 Business Flow
28555    -- Update journal entry status -- Need to generate this within IF <condition>
28556    ----------------------------------------------------------------------------------
28557    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28558          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28559          ,p_balance_type_code => l_balance_type_code
28560          );
28561 
28562    -------------------------------------------------------------------------------------------
28563    -- 4262811 - Generate the Accrual Reversal lines
28564    -------------------------------------------------------------------------------------------
28565    BEGIN
28566       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28567                               (g_array_event(p_event_id).array_value_num('header_index'));
28568       IF l_acc_rev_flag IS NULL THEN
28569          l_acc_rev_flag := 'N';
28570       END IF;
28571    EXCEPTION
28572       WHEN OTHERS THEN
28573          l_acc_rev_flag := 'N';
28574    END;
28575    --
28576    IF (l_acc_rev_flag = 'Y') THEN
28577 
28578        -- 4645092  ------------------------------------------------------------------------------
28582 
28579        -- To allow MPA report to determine if it should generate report process
28580        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28581        ------------------------------------------------------------------------------------------
28583        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28584        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28585    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
28586    -- call ADRs
28587    -- Bug 4922099
28588    --
28589    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28590         (NVL(l_actual_upg_option, 'N') = 'O') OR
28591         (NVL(l_enc_upg_option, 'N') = 'O')
28592       )
28593    THEN
28594    NULL;
28595    --
28596    --
28597    
28598    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
28599      p_code_combination_id      => TO_NUMBER(C_NUM)
28600    , p_value_type_code          => NULL
28601    , p_transaction_coa_id       => null
28602    , p_accounting_coa_id        => null
28603    , p_adr_code                 => NULL
28604    , p_adr_type_code            => NULL
28605    , p_component_type           => l_component_type
28606    , p_component_code           => l_component_code
28607    , p_component_type_code      => l_component_type_code
28608    , p_component_appl_id        => l_component_appl_id
28609    , p_amb_context_code         => l_amb_context_code
28610    , p_side                     => NULL
28611    );
28612 
28613    
28614   -- initialise segments
28615   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28616   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28617   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28618   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28619   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28620   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28621   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28622   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28623   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28624   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28625   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28626   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28627   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28628   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28629   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28630   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28631   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28632   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28633   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28634   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28635   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28636   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28637   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28638   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28639   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28640   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28641   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28642   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28643   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28644   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28645   --
28646 
28647    --
28648 
28649 
28650    l_segment := AcctDerRule_3(
28651            p_application_id           => p_application_id
28652          , p_ae_header_id             => l_ae_header_id 
28653 , p_source_13 => p_source_13
28654          , x_transaction_coa_id       => l_adr_transaction_coa_id
28655          , x_accounting_coa_id        => l_adr_accounting_coa_id
28656          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
28657          , x_flex_value_set_id        => l_adr_flex_value_set_id
28658          , x_value_type_code          => l_adr_value_type_code
28659          , x_value_combination_id     => l_adr_value_combination_id
28660          , x_value_segment_code       => l_adr_value_segment_code
28661          , p_side                     => 'NA'
28662          , p_override_seg_flag        => 'Y'
28663    );
28664 
28665    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
28666 
28667       xla_ae_lines_pkg.set_segment(
28668           p_to_segment_code         => 'GL_ACCOUNT'
28669         , p_segment_value           => l_segment
28670         , p_from_segment_code       => l_adr_value_segment_code
28671         , p_from_combination_id     => l_adr_value_combination_id
28672         , p_value_type_code         => l_adr_value_type_code
28673         , p_transaction_coa_id      => l_adr_transaction_coa_id
28674         , p_accounting_coa_id       => l_adr_accounting_coa_id
28678         , p_adr_type_code           => 'S'
28675         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
28676         , p_flex_value_set_id       => l_adr_flex_value_set_id
28677         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
28679         , p_component_type          => l_component_type
28680         , p_component_code          => l_component_code
28681         , p_component_type_code     => l_component_type_code
28682         , p_component_appl_id       => l_component_appl_id
28683         , p_amb_context_code        => l_amb_context_code
28684         , p_entity_code             => 'AP_PAYMENTS'
28685         , p_event_class_code        => 'PAYMENTS'
28686         , p_side                    => 'NA'
28687         );
28688 
28689   END IF;
28690 
28691    --
28692    --
28693    END IF;
28694 
28695        --
28696        -- Update the line information that should be overwritten
28697        --
28698        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28699                                          p_header_num   => 1);
28700        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
28701 
28702        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28703 
28704        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
28705           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28706        END IF;
28707 
28708       --
28709       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28710       --
28711       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28712           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
28713       ELSE
28714           ---------------------------------------------------------------------------------------------------
28715           -- 4262811a Switch Sign
28716           ---------------------------------------------------------------------------------------------------
28717           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
28718           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28719                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28720           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28721                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28722           -- 5132302
28723           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28724                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28725 
28726       END IF;
28727 
28728       -- 4955764
28729       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28730       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28731 
28732 
28733       XLA_AE_LINES_PKG.ValidateCurrentLine;
28734       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28735 
28736       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28737                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28738                ,p_balance_type_code => l_balance_type_code);
28739 
28740    END IF;
28741 
28742    -----------------------------------------------------------------------------------------
28743    -- 4262811 Multiperiod Accounting
28744    -----------------------------------------------------------------------------------------
28745      -- No MPA option is assigned.
28746 
28747 
28748 END IF;
28749 END IF;
28750 --
28751 
28752 --
28753 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28754    trace
28755       (p_msg      => 'END of AcctLineType_69'
28756       ,p_level    => C_LEVEL_PROCEDURE
28757       ,p_module   => l_log_module);
28758 END IF;
28759 --
28760 EXCEPTION
28761   WHEN xla_exceptions_pkg.application_exception THEN
28762       RAISE;
28763   WHEN OTHERS THEN
28764        xla_exceptions_pkg.raise_message
28765            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_69');
28766 END AcctLineType_69;
28767 --
28768 
28769 ---------------------------------------
28770 --
28771 -- PRIVATE FUNCTION
28772 --         AcctLineType_70
28773 --
28774 ---------------------------------------
28775 PROCEDURE AcctLineType_70 (
28776   p_application_id        IN NUMBER
28777  ,p_event_id              IN NUMBER
28778  ,p_calculate_acctd_flag  IN VARCHAR2
28779  ,p_calculate_g_l_flag    IN VARCHAR2
28780  ,p_actual_flag           IN OUT VARCHAR2
28781  ,p_balance_type_code     OUT VARCHAR2
28782  ,p_gain_or_loss_ref      OUT VARCHAR2
28783  
28784 --Payment Currency Code
28785  , p_source_12            IN VARCHAR2
28786 --Bank Cash Account
28787  , p_source_13            IN NUMBER
28788 --Automatic Offsets Value
28789  , p_source_16            IN VARCHAR2
28790  , p_source_16_meaning    IN VARCHAR2
28791 --Payment Distribution (Payment Rate) Ledger Amount
28792  , p_source_21            IN NUMBER
28793 --When to Account for Payment Option
28794  , p_source_50            IN VARCHAR2
28798 --Accounting Reversal Indicator
28795 --Payment Distribution Type
28796  , p_source_51            IN VARCHAR2
28797  , p_source_51_meaning    IN VARCHAR2
28799  , p_source_52            IN VARCHAR2
28800 --Payment Distribution Amount
28801  , p_source_53            IN NUMBER
28802 --Business Flow Accounts Payable Application Identifier
28803  , p_source_54            IN NUMBER
28804 --Payment Distribution Identifier
28805  , p_source_59            IN NUMBER
28806 --Distribution Link Type
28807  , p_source_60            IN VARCHAR2
28808 --Override Accounted Amount Indicator
28809  , p_source_64            IN VARCHAR2
28810  , p_source_64_meaning    IN VARCHAR2
28811 --Payment Supplier Identifier
28812  , p_source_65            IN NUMBER
28813 --Payment Supplier Site Identifier
28814  , p_source_66            IN NUMBER
28815 --Third Party Type
28816  , p_source_67            IN VARCHAR2
28817 --Payment Distribution Reversed Identifier
28818  , p_source_68            IN NUMBER
28819 --Invoice Distribution Tax Line Identifier
28820  , p_source_69            IN NUMBER
28821 --Invoice Distribution Summary Tax Line Identifier
28822  , p_source_70            IN NUMBER
28823 --Payment Type
28824  , p_source_71            IN VARCHAR2
28825  , p_source_71_meaning    IN VARCHAR2
28826 --Invoice Distribution Amount of the Payment Distribution
28827  , p_source_72            IN NUMBER
28828 --Business Flow Invoice Distribution Type
28829  , p_source_73            IN VARCHAR2
28830 --Business Flow Invoice Entity Code
28831  , p_source_74            IN VARCHAR2
28832 --Business Flow Invoice Distribution Identifier
28833  , p_source_75            IN NUMBER
28834 --Business Flow Invoice Identifier
28835  , p_source_76            IN NUMBER
28836 --Invoice Distribution Tax Distribution Identifier from Tax
28837  , p_source_77            IN NUMBER
28838 --Pooled Bank Account Option
28839  , p_source_117            IN VARCHAR2
28840  , p_source_117_meaning    IN VARCHAR2
28841 --Payment Maturity Date
28842  , p_source_118            IN DATE
28843 --Payment Processing Type
28844  , p_source_120            IN VARCHAR2
28845 --Payment Exchange Date
28846  , p_source_121            IN DATE
28847 --Payment Exchange Rate
28848  , p_source_122            IN NUMBER
28849 --Payment Exchange Rate Type
28850  , p_source_123            IN VARCHAR2
28851 )
28852 IS
28853 
28854 l_component_type              VARCHAR2(80);
28855 l_component_code              VARCHAR2(30);
28856 l_component_type_code         VARCHAR2(1);
28857 l_component_appl_id           INTEGER;
28858 l_amb_context_code            VARCHAR2(30);
28859 l_entity_code                 VARCHAR2(30);
28860 l_event_class_code            VARCHAR2(30);
28861 l_ae_header_id                NUMBER;
28862 l_event_type_code             VARCHAR2(30);
28863 l_line_definition_code        VARCHAR2(30);
28864 l_line_definition_owner_code  VARCHAR2(1);
28865 --
28866 -- adr variables
28867 l_segment                     VARCHAR2(30);
28868 l_ccid                        NUMBER;
28869 l_adr_transaction_coa_id      NUMBER;
28870 l_adr_accounting_coa_id       NUMBER;
28871 l_adr_flexfield_segment_code  VARCHAR2(30);
28872 l_adr_flex_value_set_id       NUMBER;
28873 l_adr_value_type_code         VARCHAR2(30);
28874 l_adr_value_combination_id    NUMBER;
28875 l_adr_value_segment_code      VARCHAR2(30);
28876 
28877 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
28878 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
28879 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
28880 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
28881 
28882 -- 4262811 Variables ------------------------------------------------------------------------------------------
28883 l_entered_amt_idx             NUMBER;
28884 l_accted_amt_idx              NUMBER;
28885 l_acc_rev_flag                VARCHAR2(1);
28886 l_accrual_line_num            NUMBER;
28887 l_tmp_amt                     NUMBER;
28888 l_acc_rev_natural_side_code   VARCHAR2(1);
28889 
28890 l_num_entries                 NUMBER;
28891 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
28892 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
28893 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
28894 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
28895 l_recog_line_1                NUMBER;
28896 l_recog_line_2                NUMBER;
28897 
28898 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
28899 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
28900 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
28901 
28902 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28903 
28904 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
28905 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
28906 
28907 ---------------------------------------------------------------------------------------------------------------
28908 
28909 
28910 --
28911 -- bulk performance
28912 --
28913 l_balance_type_code           VARCHAR2(1);
28914 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
28915 l_log_module                  VARCHAR2(240);
28916 
28917 --
28918 -- Upgrade strategy
28919 --
28923 --
28920 l_actual_upg_option           VARCHAR2(1);
28921 l_enc_upg_option           VARCHAR2(1);
28922 
28924 BEGIN
28925 --
28926 IF g_log_enabled THEN
28927       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
28928 END IF;
28929 --
28930 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28931 
28932       trace
28933          (p_msg      => 'BEGIN of AcctLineType_70'
28934          ,p_level    => C_LEVEL_PROCEDURE
28935          ,p_module   => l_log_module);
28936 
28937 END IF;
28938 --
28939 l_component_type             := 'AMB_JLT';
28940 l_component_code             := 'AP_CASH_PMT_AOS_BS';
28941 l_component_type_code        := 'S';
28942 l_component_appl_id          :=  200;
28943 l_amb_context_code           := 'DEFAULT';
28944 l_entity_code                := 'AP_PAYMENTS';
28945 l_event_class_code           := 'PAYMENTS';
28946 l_event_type_code            := 'PAYMENTS_ALL';
28947 l_line_definition_owner_code := 'S';
28948 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
28949 --
28950 l_balance_type_code          := 'A';
28951 l_segment                     := NULL;
28952 l_ccid                        := NULL;
28953 l_adr_transaction_coa_id      := NULL;
28954 l_adr_accounting_coa_id       := NULL;
28955 l_adr_flexfield_segment_code  := NULL;
28956 l_adr_flex_value_set_id       := NULL;
28957 l_adr_value_type_code         := NULL;
28958 l_adr_value_combination_id    := NULL;
28959 l_adr_value_segment_code      := NULL;
28960 
28961 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
28962 l_bflow_class_code           := '';    -- 4219869 Business Flow
28963 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
28964 l_budgetary_control_flag     := 'N';
28965 
28966 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
28967 l_bflow_applied_to_amt       := NULL; -- 5132302
28968 l_entered_amt_idx            := NULL;          -- 4262811
28969 l_accted_amt_idx             := NULL;          -- 4262811
28970 l_acc_rev_flag               := NULL;          -- 4262811
28971 l_accrual_line_num           := NULL;          -- 4262811
28972 l_tmp_amt                    := NULL;          -- 4262811
28973 --
28974  
28975 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28976     l_balance_type_code <> 'B' THEN
28977 IF NVL(p_source_50,'
28978 ') =  'ISSUE_ISSUE' AND 
28979 (NVL(p_source_117,'
28980 ') =  'Y' AND 
28981 NVL(p_source_16,'
28982 ') =  'BALANCING_SEGMENT') AND 
28983 p_source_118 IS NULL AND 
28984 NVL(p_source_51,'
28985 ') =  'CASH' AND 
28986 NVL(p_source_71,'
28987 ') <>  'R' AND 
28988 NVL(p_source_120,'
28989 ') <>  'PAYMENTCARD'
28990  THEN 
28991 
28992    --
28993    XLA_AE_LINES_PKG.SetNewLine;
28994 
28995    p_balance_type_code          := l_balance_type_code;
28996    -- set the flag so later we will know whether the gain loss line needs to be created
28997    
28998    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28999      p_actual_flag :='A';
29000    END IF;
29001 
29002    --
29003    -- bulk performance
29004    --
29005    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29006                                       p_header_num   => 0); -- 4262811
29007    --
29008    -- set accounting line options
29009    --
29010    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29011            p_natural_side_code          => 'C'
29012          , p_gain_or_loss_flag          => 'N'
29013          , p_gl_transfer_mode_code      => 'S'
29014          , p_acct_entry_type_code       => 'A'
29015          , p_switch_side_flag           => 'Y'
29016          , p_merge_duplicate_code       => 'A'
29017          );
29018    --
29019    l_acc_rev_natural_side_code := 'D';  -- 4262811
29020    -- 
29021    --
29022    -- set accounting line type info
29023    --
29024    xla_ae_lines_pkg.SetAcctLineType
29025       (p_component_type             => l_component_type
29026       ,p_event_type_code            => l_event_type_code
29027       ,p_line_definition_owner_code => l_line_definition_owner_code
29028       ,p_line_definition_code       => l_line_definition_code
29029       ,p_accounting_line_code       => l_component_code
29030       ,p_accounting_line_type_code  => l_component_type_code
29031       ,p_accounting_line_appl_id    => l_component_appl_id
29032       ,p_amb_context_code           => l_amb_context_code
29033       ,p_entity_code                => l_entity_code
29034       ,p_event_class_code           => l_event_class_code);
29035    --
29036    -- set accounting class
29037    --
29038    xla_ae_lines_pkg.SetAcctClass(
29039            p_accounting_class_code  => 'CASH'
29040          , p_ae_header_id           => l_ae_header_id
29041          );
29042 
29043    --
29044    -- set rounding class
29045    --
29046    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29047                       'CASH';
29048 
29049    --
29050    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29051    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29052    --
29053    -- bulk performance
29054    --
29055    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29056 
29060    -- 4955764
29057    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29058       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29059 
29061    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29062       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29063 
29064    -- 4458381 Public Sector Enh
29065    
29066    --
29067    -- set accounting attributes for the line type
29068    --
29069    l_entered_amt_idx := 10;
29070    l_accted_amt_idx  := 15;
29071    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
29072    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29073    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
29074    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
29075    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
29076    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
29077    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
29078    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29079    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
29080    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
29081    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
29082    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
29083    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
29084    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29085    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
29086    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
29087    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
29088    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
29089    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
29090    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
29091    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
29092    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
29093    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
29094    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
29095    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
29096    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
29097    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
29098    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
29099    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
29100    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
29101    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
29102    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
29103    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
29104    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
29105    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
29106    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
29107    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
29108    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
29109    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
29110    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
29111    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
29112    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
29113    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
29114    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
29115    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
29116    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
29117    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
29118    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
29119    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
29120 
29121    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29122    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29123 
29124    ---------------------------------------------------------------------------------------------------------------
29125    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29126    ---------------------------------------------------------------------------------------------------------------
29127    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29128 
29129    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29130    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29131 
29132    IF xla_accounting_cache_pkg.GetValueChar
29133          (p_source_code         => 'LEDGER_CATEGORY_CODE'
29134          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29135    AND l_bflow_method_code = 'PRIOR_ENTRY'
29136 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29137    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29138          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29139        )
29140    THEN
29141          xla_ae_lines_pkg.BflowUpgEntry
29142            (p_business_method_code    => l_bflow_method_code
29143            ,p_business_class_code     => l_bflow_class_code
29144            ,p_balance_type            => l_balance_type_code);
29145    ELSE
29146       NULL;
29147 XLA_AE_LINES_PKG.business_flow_validation(
29148                                 p_business_method_code     => l_bflow_method_code
29152 
29149                                ,p_business_class_code      => l_bflow_class_code
29150                                ,p_inherit_description_flag => l_inherit_desc_flag);
29151    END IF;
29153    --
29154    -- call analytical criteria
29155    --
29156    
29157    --
29158    -- call description
29159    --
29160    -- No description or it is inherited.
29161    --
29162    -- call ADRs
29163    -- Bug 4922099
29164    --
29165    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29166         (NVL(l_actual_upg_option, 'N') = 'O') OR
29167         (NVL(l_enc_upg_option, 'N') = 'O')
29168       )
29169    THEN
29170    NULL;
29171    --
29172    --
29173    
29174   l_ccid := AcctDerRule_22(
29175            p_application_id           => p_application_id
29176          , p_ae_header_id             => l_ae_header_id 
29177 , p_source_13 => p_source_13
29178          , x_transaction_coa_id       => l_adr_transaction_coa_id
29179          , x_accounting_coa_id        => l_adr_accounting_coa_id
29180          , x_value_type_code          => l_adr_value_type_code
29181          , p_side                     => 'NA'
29182    );
29183 
29184    xla_ae_lines_pkg.set_ccid(
29185     p_code_combination_id          => l_ccid
29186   , p_value_type_code              => l_adr_value_type_code
29187   , p_transaction_coa_id           => l_adr_transaction_coa_id
29188   , p_accounting_coa_id            => l_adr_accounting_coa_id
29189   , p_adr_code                     => 'AP_CASH'
29190   , p_adr_type_code                => 'S'
29191   , p_component_type               => l_component_type
29192   , p_component_code               => l_component_code
29193   , p_component_type_code          => l_component_type_code
29194   , p_component_appl_id            => l_component_appl_id
29195   , p_amb_context_code             => l_amb_context_code
29196   , p_side                         => 'NA'
29197   );
29198 
29199 
29200    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
29201      p_to_segment_code         => 'GL_BALANCING'
29202    , p_segment_value           => C_CHAR
29203    , p_from_segment_code       => NULL
29204    , p_from_combination_id     => NULL
29205    , p_value_type_code         => NULL
29206    , p_transaction_coa_id      => null
29207    , p_accounting_coa_id       => null
29208    , p_flexfield_segment_code  => NULL
29209    , p_flex_value_set_id       => NULL
29210    , p_adr_code                => NULL
29211    , p_adr_type_code           => NULL
29212    , p_component_type          => l_component_type
29213    , p_component_code          => l_component_code
29214    , p_component_type_code     => l_component_type_code
29215    , p_component_appl_id       => l_component_appl_id
29216    , p_amb_context_code        => l_amb_context_code
29217    , p_entity_code             => 'AP_PAYMENTS'
29218    , p_event_class_code        => 'PAYMENTS'
29219    , p_side                    => 'NA'
29220    );
29221    --
29222 
29223 
29224    --
29225    --
29226    END IF;
29227    --
29228    -- Bug 4922099
29229    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29230           (NVL(l_enc_upg_option, 'N') = 'O')
29231         ) AND
29232         (l_bflow_method_code = 'PRIOR_ENTRY')
29233       )
29234    THEN
29235       IF
29236       --
29237       1 = 2
29238       --
29239       THEN
29240       xla_accounting_err_pkg.build_message
29241                                     (p_appli_s_name            => 'XLA'
29242                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29243                                     ,p_token_1                 => 'LINE_NUMBER'
29244                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
29245                                     ,p_token_2                 => 'LINE_TYPE_NAME'
29246                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
29247                                                                              l_component_type
29248                                                                             ,l_component_code
29249                                                                             ,l_component_type_code
29250                                                                             ,l_component_appl_id
29251                                                                             ,l_amb_context_code
29252                                                                             ,l_entity_code
29253                                                                             ,l_event_class_code
29254                                                                            )
29255                                     ,p_token_3                 => 'OWNER'
29256                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
29257                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
29258                                                                           ,p_lookup_code    => l_component_type_code
29259                                                                          )
29260                                     ,p_token_4                 => 'PRODUCT_NAME'
29261                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29262                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29263                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29267 
29264                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29265                                     ,p_ae_header_id            =>  NULL
29266                                        );
29268         IF (C_LEVEL_ERROR>= g_log_level) THEN
29269                  trace
29270                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29271                       ,p_level    => C_LEVEL_ERROR
29272                       ,p_module   => l_log_module);
29273         END IF;
29274       END IF;
29275    END IF;
29276    --
29277    --
29278    ------------------------------------------------------------------------------------------------
29279    -- 4219869 Business Flow
29280    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29281    -- Prior Entry.  Currently, the following code is always generated.
29282    ------------------------------------------------------------------------------------------------
29283    XLA_AE_LINES_PKG.ValidateCurrentLine;
29284 
29285    ------------------------------------------------------------------------------------
29286    -- 4219869 Business Flow
29287    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29288    ------------------------------------------------------------------------------------
29289    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29290 
29291    ----------------------------------------------------------------------------------
29292    -- 4219869 Business Flow
29293    -- Update journal entry status -- Need to generate this within IF <condition>
29294    ----------------------------------------------------------------------------------
29295    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29296          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29297          ,p_balance_type_code => l_balance_type_code
29298          );
29299 
29300    -------------------------------------------------------------------------------------------
29301    -- 4262811 - Generate the Accrual Reversal lines
29302    -------------------------------------------------------------------------------------------
29303    BEGIN
29304       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29305                               (g_array_event(p_event_id).array_value_num('header_index'));
29306       IF l_acc_rev_flag IS NULL THEN
29307          l_acc_rev_flag := 'N';
29308       END IF;
29309    EXCEPTION
29310       WHEN OTHERS THEN
29311          l_acc_rev_flag := 'N';
29312    END;
29313    --
29314    IF (l_acc_rev_flag = 'Y') THEN
29315 
29316        -- 4645092  ------------------------------------------------------------------------------
29317        -- To allow MPA report to determine if it should generate report process
29318        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29319        ------------------------------------------------------------------------------------------
29320 
29321        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29322        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29323    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
29324    -- call ADRs
29325    -- Bug 4922099
29326    --
29327    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29328         (NVL(l_actual_upg_option, 'N') = 'O') OR
29329         (NVL(l_enc_upg_option, 'N') = 'O')
29330       )
29331    THEN
29332    NULL;
29333    --
29334    --
29335    
29336   l_ccid := AcctDerRule_22(
29337            p_application_id           => p_application_id
29338          , p_ae_header_id             => l_ae_header_id 
29339 , p_source_13 => p_source_13
29340          , x_transaction_coa_id       => l_adr_transaction_coa_id
29341          , x_accounting_coa_id        => l_adr_accounting_coa_id
29342          , x_value_type_code          => l_adr_value_type_code
29343          , p_side                     => 'NA'
29344    );
29345 
29346    xla_ae_lines_pkg.set_ccid(
29347     p_code_combination_id          => l_ccid
29348   , p_value_type_code              => l_adr_value_type_code
29349   , p_transaction_coa_id           => l_adr_transaction_coa_id
29350   , p_accounting_coa_id            => l_adr_accounting_coa_id
29351   , p_adr_code                     => 'AP_CASH'
29352   , p_adr_type_code                => 'S'
29353   , p_component_type               => l_component_type
29354   , p_component_code               => l_component_code
29355   , p_component_type_code          => l_component_type_code
29356   , p_component_appl_id            => l_component_appl_id
29357   , p_amb_context_code             => l_amb_context_code
29358   , p_side                         => 'NA'
29359   );
29360 
29361 
29362    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
29363      p_to_segment_code         => 'GL_BALANCING'
29364    , p_segment_value           => C_CHAR
29365    , p_from_segment_code       => NULL
29366    , p_from_combination_id     => NULL
29367    , p_value_type_code         => NULL
29368    , p_transaction_coa_id      => null
29369    , p_accounting_coa_id       => null
29370    , p_flexfield_segment_code  => NULL
29371    , p_flex_value_set_id       => NULL
29372    , p_adr_code                => NULL
29373    , p_adr_type_code           => NULL
29374    , p_component_type          => l_component_type
29375    , p_component_code          => l_component_code
29379    , p_entity_code             => 'AP_PAYMENTS'
29376    , p_component_type_code     => l_component_type_code
29377    , p_component_appl_id       => l_component_appl_id
29378    , p_amb_context_code        => l_amb_context_code
29380    , p_event_class_code        => 'PAYMENTS'
29381    , p_side                    => 'NA'
29382    );
29383    --
29384 
29385 
29386    --
29387    --
29388    END IF;
29389 
29390        --
29391        -- Update the line information that should be overwritten
29392        --
29393        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29394                                          p_header_num   => 1);
29395        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
29396 
29397        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29398 
29399        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
29400           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29401        END IF;
29402 
29403       --
29404       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29405       --
29406       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29407           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
29408       ELSE
29409           ---------------------------------------------------------------------------------------------------
29410           -- 4262811a Switch Sign
29411           ---------------------------------------------------------------------------------------------------
29412           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
29413           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29414                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29415           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29416                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29417           -- 5132302
29418           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29419                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29420 
29421       END IF;
29422 
29423       -- 4955764
29424       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29425       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29426 
29427 
29428       XLA_AE_LINES_PKG.ValidateCurrentLine;
29429       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29430 
29431       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29432                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29433                ,p_balance_type_code => l_balance_type_code);
29434 
29435    END IF;
29436 
29437    -----------------------------------------------------------------------------------------
29438    -- 4262811 Multiperiod Accounting
29439    -----------------------------------------------------------------------------------------
29440      -- No MPA option is assigned.
29441 
29442 
29443 END IF;
29444 END IF;
29445 --
29446 
29447 --
29448 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29449    trace
29450       (p_msg      => 'END of AcctLineType_70'
29451       ,p_level    => C_LEVEL_PROCEDURE
29452       ,p_module   => l_log_module);
29453 END IF;
29454 --
29455 EXCEPTION
29456   WHEN xla_exceptions_pkg.application_exception THEN
29457       RAISE;
29458   WHEN OTHERS THEN
29459        xla_exceptions_pkg.raise_message
29460            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_70');
29461 END AcctLineType_70;
29462 --
29463 
29464 ---------------------------------------
29465 --
29466 -- PRIVATE FUNCTION
29467 --         AcctLineType_71
29468 --
29469 ---------------------------------------
29470 PROCEDURE AcctLineType_71 (
29471   p_application_id        IN NUMBER
29472  ,p_event_id              IN NUMBER
29473  ,p_calculate_acctd_flag  IN VARCHAR2
29474  ,p_calculate_g_l_flag    IN VARCHAR2
29475  ,p_actual_flag           IN OUT VARCHAR2
29476  ,p_balance_type_code     OUT VARCHAR2
29477  ,p_gain_or_loss_ref      OUT VARCHAR2
29478  
29479 --Payment Currency Code
29480  , p_source_12            IN VARCHAR2
29481 --Bank Cash Account
29482  , p_source_13            IN NUMBER
29483 --Automatic Offsets Flag
29484  , p_source_42            IN VARCHAR2
29485  , p_source_42_meaning    IN VARCHAR2
29486 --When to Account for Payment Option
29487  , p_source_50            IN VARCHAR2
29488 --Payment Distribution Type
29489  , p_source_51            IN VARCHAR2
29490  , p_source_51_meaning    IN VARCHAR2
29491 --Accounting Reversal Indicator
29492  , p_source_52            IN VARCHAR2
29493 --Payment Distribution Amount
29494  , p_source_53            IN NUMBER
29495 --Business Flow Accounts Payable Application Identifier
29496  , p_source_54            IN NUMBER
29497 --Business Flow Payment Distribution Type
29498  , p_source_55            IN VARCHAR2
29499 --Business Flow Payment Entity Code
29503 --Business Flow Payment Identifier
29500  , p_source_56            IN VARCHAR2
29501 --Business Flow Payment Distribution Identifier
29502  , p_source_57            IN NUMBER
29504  , p_source_58            IN NUMBER
29505 --Payment Distribution Identifier
29506  , p_source_59            IN NUMBER
29507 --Distribution Link Type
29508  , p_source_60            IN VARCHAR2
29509 --Override Accounted Amount Indicator
29510  , p_source_64            IN VARCHAR2
29511  , p_source_64_meaning    IN VARCHAR2
29512 --Payment Supplier Identifier
29513  , p_source_65            IN NUMBER
29514 --Payment Supplier Site Identifier
29515  , p_source_66            IN NUMBER
29516 --Third Party Type
29517  , p_source_67            IN VARCHAR2
29518 --Payment Distribution Reversed Identifier
29519  , p_source_68            IN NUMBER
29520 --Pooled Bank Account Option
29521  , p_source_117            IN VARCHAR2
29522  , p_source_117_meaning    IN VARCHAR2
29523 --Payment Maturity Date
29524  , p_source_118            IN DATE
29525 --Payment Exchange Date
29526  , p_source_121            IN DATE
29527 --Payment Exchange Rate
29528  , p_source_122            IN NUMBER
29529 --Payment Exchange Rate Type
29530  , p_source_123            IN VARCHAR2
29531 --Payment Distribution (Matured Rate) Ledger Amount
29532  , p_source_124            IN NUMBER
29533 )
29534 IS
29535 
29536 l_component_type              VARCHAR2(80);
29537 l_component_code              VARCHAR2(30);
29538 l_component_type_code         VARCHAR2(1);
29539 l_component_appl_id           INTEGER;
29540 l_amb_context_code            VARCHAR2(30);
29541 l_entity_code                 VARCHAR2(30);
29542 l_event_class_code            VARCHAR2(30);
29543 l_ae_header_id                NUMBER;
29544 l_event_type_code             VARCHAR2(30);
29545 l_line_definition_code        VARCHAR2(30);
29546 l_line_definition_owner_code  VARCHAR2(1);
29547 --
29548 -- adr variables
29549 l_segment                     VARCHAR2(30);
29550 l_ccid                        NUMBER;
29551 l_adr_transaction_coa_id      NUMBER;
29552 l_adr_accounting_coa_id       NUMBER;
29553 l_adr_flexfield_segment_code  VARCHAR2(30);
29554 l_adr_flex_value_set_id       NUMBER;
29555 l_adr_value_type_code         VARCHAR2(30);
29556 l_adr_value_combination_id    NUMBER;
29557 l_adr_value_segment_code      VARCHAR2(30);
29558 
29559 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
29560 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
29561 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
29562 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
29563 
29564 -- 4262811 Variables ------------------------------------------------------------------------------------------
29565 l_entered_amt_idx             NUMBER;
29566 l_accted_amt_idx              NUMBER;
29567 l_acc_rev_flag                VARCHAR2(1);
29568 l_accrual_line_num            NUMBER;
29569 l_tmp_amt                     NUMBER;
29570 l_acc_rev_natural_side_code   VARCHAR2(1);
29571 
29572 l_num_entries                 NUMBER;
29573 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
29574 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
29575 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
29576 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
29577 l_recog_line_1                NUMBER;
29578 l_recog_line_2                NUMBER;
29579 
29580 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
29581 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
29582 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
29583 
29584 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29585 
29586 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
29587 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
29588 
29589 ---------------------------------------------------------------------------------------------------------------
29590 
29591 
29592 --
29593 -- bulk performance
29594 --
29595 l_balance_type_code           VARCHAR2(1);
29596 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
29597 l_log_module                  VARCHAR2(240);
29598 
29599 --
29600 -- Upgrade strategy
29601 --
29602 l_actual_upg_option           VARCHAR2(1);
29603 l_enc_upg_option           VARCHAR2(1);
29604 
29605 --
29606 BEGIN
29607 --
29608 IF g_log_enabled THEN
29609       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
29610 END IF;
29611 --
29612 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29613 
29614       trace
29615          (p_msg      => 'BEGIN of AcctLineType_71'
29616          ,p_level    => C_LEVEL_PROCEDURE
29617          ,p_module   => l_log_module);
29618 
29619 END IF;
29620 --
29621 l_component_type             := 'AMB_JLT';
29622 l_component_code             := 'AP_CASH_PMT_MAT';
29623 l_component_type_code        := 'S';
29624 l_component_appl_id          :=  200;
29625 l_amb_context_code           := 'DEFAULT';
29626 l_entity_code                := 'AP_PAYMENTS';
29627 l_event_class_code           := 'FUTURE DATED PAYMENTS';
29628 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
29629 l_line_definition_owner_code := 'S';
29633 l_segment                     := NULL;
29630 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
29631 --
29632 l_balance_type_code          := 'A';
29634 l_ccid                        := NULL;
29635 l_adr_transaction_coa_id      := NULL;
29636 l_adr_accounting_coa_id       := NULL;
29637 l_adr_flexfield_segment_code  := NULL;
29638 l_adr_flex_value_set_id       := NULL;
29639 l_adr_value_type_code         := NULL;
29640 l_adr_value_combination_id    := NULL;
29641 l_adr_value_segment_code      := NULL;
29642 
29643 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
29644 l_bflow_class_code           := '';    -- 4219869 Business Flow
29645 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
29646 l_budgetary_control_flag     := 'N';
29647 
29648 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
29649 l_bflow_applied_to_amt       := NULL; -- 5132302
29650 l_entered_amt_idx            := NULL;          -- 4262811
29651 l_accted_amt_idx             := NULL;          -- 4262811
29652 l_acc_rev_flag               := NULL;          -- 4262811
29653 l_accrual_line_num           := NULL;          -- 4262811
29654 l_tmp_amt                    := NULL;          -- 4262811
29655 --
29656  
29657 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29658     l_balance_type_code <> 'B' THEN
29659 IF NVL(p_source_50,'
29660 ') =  'ISSUE_ISSUE' AND 
29661 (NVL(p_source_42,'
29662 ') <>  'Y' OR 
29663 NVL(p_source_42,'
29664 ') =  'Y' AND 
29665 NVL(p_source_117,'
29666 ') <>  'Y') AND 
29667 p_source_118 IS NOT NULL AND 
29668 NVL(p_source_51,'
29669 ') =  'CASH'
29670  THEN 
29671 
29672    --
29673    XLA_AE_LINES_PKG.SetNewLine;
29674 
29675    p_balance_type_code          := l_balance_type_code;
29676    -- set the flag so later we will know whether the gain loss line needs to be created
29677    
29678    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29679      p_actual_flag :='A';
29680    END IF;
29681 
29682    --
29683    -- bulk performance
29684    --
29685    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29686                                       p_header_num   => 0); -- 4262811
29687    --
29688    -- set accounting line options
29689    --
29690    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29691            p_natural_side_code          => 'C'
29692          , p_gain_or_loss_flag          => 'N'
29693          , p_gl_transfer_mode_code      => 'S'
29694          , p_acct_entry_type_code       => 'A'
29695          , p_switch_side_flag           => 'Y'
29696          , p_merge_duplicate_code       => 'A'
29697          );
29698    --
29699    l_acc_rev_natural_side_code := 'D';  -- 4262811
29700    -- 
29701    --
29702    -- set accounting line type info
29703    --
29704    xla_ae_lines_pkg.SetAcctLineType
29705       (p_component_type             => l_component_type
29706       ,p_event_type_code            => l_event_type_code
29707       ,p_line_definition_owner_code => l_line_definition_owner_code
29708       ,p_line_definition_code       => l_line_definition_code
29709       ,p_accounting_line_code       => l_component_code
29710       ,p_accounting_line_type_code  => l_component_type_code
29711       ,p_accounting_line_appl_id    => l_component_appl_id
29712       ,p_amb_context_code           => l_amb_context_code
29713       ,p_entity_code                => l_entity_code
29714       ,p_event_class_code           => l_event_class_code);
29715    --
29716    -- set accounting class
29717    --
29718    xla_ae_lines_pkg.SetAcctClass(
29719            p_accounting_class_code  => 'CASH'
29720          , p_ae_header_id           => l_ae_header_id
29721          );
29722 
29723    --
29724    -- set rounding class
29725    --
29726    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29727                       'CASH';
29728 
29729    --
29730    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29731    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29732    --
29733    -- bulk performance
29734    --
29735    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29736 
29737    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29738       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29739 
29740    -- 4955764
29741    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29742       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29743 
29744    -- 4458381 Public Sector Enh
29745    
29746    --
29747    -- set accounting attributes for the line type
29748    --
29749    l_entered_amt_idx := 9;
29750    l_accted_amt_idx  := 14;
29751    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
29752    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29753    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
29754    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
29755    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
29756    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29757    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
29758    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
29762    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29759    l_rec_acct_attrs.array_char_value(4)  := p_source_56;
29760    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
29761    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
29763    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
29764    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
29765    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
29766    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
29767    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
29768    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
29769    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
29770    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
29771    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
29772    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
29773    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
29774    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
29775    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
29776    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
29777    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
29778    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
29779    l_rec_acct_attrs.array_num_value(14)  := p_source_124;
29780    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
29781    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
29782    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
29783    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
29784    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
29785    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
29786    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
29787    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
29788    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
29789    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
29790    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
29791    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
29792 
29793    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29794    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29795 
29796    ---------------------------------------------------------------------------------------------------------------
29797    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29798    ---------------------------------------------------------------------------------------------------------------
29799    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29800 
29801    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29802    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29803 
29804    IF xla_accounting_cache_pkg.GetValueChar
29805          (p_source_code         => 'LEDGER_CATEGORY_CODE'
29806          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29807    AND l_bflow_method_code = 'PRIOR_ENTRY'
29808 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29809    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29810          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29811        )
29812    THEN
29813          xla_ae_lines_pkg.BflowUpgEntry
29814            (p_business_method_code    => l_bflow_method_code
29815            ,p_business_class_code     => l_bflow_class_code
29816            ,p_balance_type            => l_balance_type_code);
29817    ELSE
29818       NULL;
29819 -- No business flow processing for business flow method of NONE.
29820    END IF;
29821 
29822    --
29823    -- call analytical criteria
29824    --
29825    
29826    --
29827    -- call description
29828    --
29829    -- No description or it is inherited.
29830    --
29831    -- call ADRs
29832    -- Bug 4922099
29833    --
29834    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29835         (NVL(l_actual_upg_option, 'N') = 'O') OR
29836         (NVL(l_enc_upg_option, 'N') = 'O')
29837       )
29838    THEN
29839    NULL;
29840    --
29841    --
29842    
29843   l_ccid := AcctDerRule_22(
29844            p_application_id           => p_application_id
29845          , p_ae_header_id             => l_ae_header_id 
29846 , p_source_13 => p_source_13
29847          , x_transaction_coa_id       => l_adr_transaction_coa_id
29848          , x_accounting_coa_id        => l_adr_accounting_coa_id
29849          , x_value_type_code          => l_adr_value_type_code
29850          , p_side                     => 'NA'
29851    );
29852 
29853    xla_ae_lines_pkg.set_ccid(
29854     p_code_combination_id          => l_ccid
29855   , p_value_type_code              => l_adr_value_type_code
29856   , p_transaction_coa_id           => l_adr_transaction_coa_id
29857   , p_accounting_coa_id            => l_adr_accounting_coa_id
29858   , p_adr_code                     => 'AP_CASH'
29859   , p_adr_type_code                => 'S'
29860   , p_component_type               => l_component_type
29861   , p_component_code               => l_component_code
29862   , p_component_type_code          => l_component_type_code
29863   , p_component_appl_id            => l_component_appl_id
29864   , p_amb_context_code             => l_amb_context_code
29868 
29865   , p_side                         => 'NA'
29866   );
29867 
29869    --
29870    --
29871    END IF;
29872    --
29873    -- Bug 4922099
29874    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29875           (NVL(l_enc_upg_option, 'N') = 'O')
29876         ) AND
29877         (l_bflow_method_code = 'PRIOR_ENTRY')
29878       )
29879    THEN
29880       IF
29881       --
29882       1 = 2
29883       --
29884       THEN
29885       xla_accounting_err_pkg.build_message
29886                                     (p_appli_s_name            => 'XLA'
29887                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29888                                     ,p_token_1                 => 'LINE_NUMBER'
29889                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
29890                                     ,p_token_2                 => 'LINE_TYPE_NAME'
29891                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
29892                                                                              l_component_type
29893                                                                             ,l_component_code
29894                                                                             ,l_component_type_code
29895                                                                             ,l_component_appl_id
29896                                                                             ,l_amb_context_code
29897                                                                             ,l_entity_code
29898                                                                             ,l_event_class_code
29899                                                                            )
29900                                     ,p_token_3                 => 'OWNER'
29901                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
29902                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
29903                                                                           ,p_lookup_code    => l_component_type_code
29904                                                                          )
29905                                     ,p_token_4                 => 'PRODUCT_NAME'
29906                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29907                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29908                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29909                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29910                                     ,p_ae_header_id            =>  NULL
29911                                        );
29912 
29913         IF (C_LEVEL_ERROR>= g_log_level) THEN
29914                  trace
29915                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29916                       ,p_level    => C_LEVEL_ERROR
29917                       ,p_module   => l_log_module);
29918         END IF;
29919       END IF;
29920    END IF;
29921    --
29922    --
29923    ------------------------------------------------------------------------------------------------
29924    -- 4219869 Business Flow
29925    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29926    -- Prior Entry.  Currently, the following code is always generated.
29927    ------------------------------------------------------------------------------------------------
29928    XLA_AE_LINES_PKG.ValidateCurrentLine;
29929 
29930    ------------------------------------------------------------------------------------
29931    -- 4219869 Business Flow
29932    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29933    ------------------------------------------------------------------------------------
29934    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29935 
29936    ----------------------------------------------------------------------------------
29937    -- 4219869 Business Flow
29938    -- Update journal entry status -- Need to generate this within IF <condition>
29939    ----------------------------------------------------------------------------------
29940    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29941          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29942          ,p_balance_type_code => l_balance_type_code
29943          );
29944 
29945    -------------------------------------------------------------------------------------------
29946    -- 4262811 - Generate the Accrual Reversal lines
29947    -------------------------------------------------------------------------------------------
29948    BEGIN
29949       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29950                               (g_array_event(p_event_id).array_value_num('header_index'));
29951       IF l_acc_rev_flag IS NULL THEN
29952          l_acc_rev_flag := 'N';
29953       END IF;
29954    EXCEPTION
29955       WHEN OTHERS THEN
29956          l_acc_rev_flag := 'N';
29957    END;
29958    --
29959    IF (l_acc_rev_flag = 'Y') THEN
29960 
29961        -- 4645092  ------------------------------------------------------------------------------
29962        -- To allow MPA report to determine if it should generate report process
29963        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29967        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29964        ------------------------------------------------------------------------------------------
29965 
29966        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29968    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
29969    -- call ADRs
29970    -- Bug 4922099
29971    --
29972    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29973         (NVL(l_actual_upg_option, 'N') = 'O') OR
29974         (NVL(l_enc_upg_option, 'N') = 'O')
29975       )
29976    THEN
29977    NULL;
29978    --
29979    --
29980    
29981   l_ccid := AcctDerRule_22(
29982            p_application_id           => p_application_id
29983          , p_ae_header_id             => l_ae_header_id 
29984 , p_source_13 => p_source_13
29985          , x_transaction_coa_id       => l_adr_transaction_coa_id
29986          , x_accounting_coa_id        => l_adr_accounting_coa_id
29987          , x_value_type_code          => l_adr_value_type_code
29988          , p_side                     => 'NA'
29989    );
29990 
29991    xla_ae_lines_pkg.set_ccid(
29992     p_code_combination_id          => l_ccid
29993   , p_value_type_code              => l_adr_value_type_code
29994   , p_transaction_coa_id           => l_adr_transaction_coa_id
29995   , p_accounting_coa_id            => l_adr_accounting_coa_id
29996   , p_adr_code                     => 'AP_CASH'
29997   , p_adr_type_code                => 'S'
29998   , p_component_type               => l_component_type
29999   , p_component_code               => l_component_code
30000   , p_component_type_code          => l_component_type_code
30001   , p_component_appl_id            => l_component_appl_id
30002   , p_amb_context_code             => l_amb_context_code
30003   , p_side                         => 'NA'
30004   );
30005 
30006 
30007    --
30008    --
30009    END IF;
30010 
30011        --
30012        -- Update the line information that should be overwritten
30013        --
30014        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30015                                          p_header_num   => 1);
30016        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
30017 
30018        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30019 
30020        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
30021           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30022        END IF;
30023 
30024       --
30025       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30026       --
30027       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30028           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
30029       ELSE
30030           ---------------------------------------------------------------------------------------------------
30031           -- 4262811a Switch Sign
30032           ---------------------------------------------------------------------------------------------------
30033           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
30034           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30035                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30036           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30037                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30038           -- 5132302
30039           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30040                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30041 
30042       END IF;
30043 
30044       -- 4955764
30045       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30046       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30047 
30048 
30049       XLA_AE_LINES_PKG.ValidateCurrentLine;
30050       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30051 
30052       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30053                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30054                ,p_balance_type_code => l_balance_type_code);
30055 
30056    END IF;
30057 
30058    -----------------------------------------------------------------------------------------
30059    -- 4262811 Multiperiod Accounting
30060    -----------------------------------------------------------------------------------------
30061      -- No MPA option is assigned.
30062 
30063 
30064 END IF;
30065 END IF;
30066 --
30067 
30068 --
30069 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30070    trace
30071       (p_msg      => 'END of AcctLineType_71'
30072       ,p_level    => C_LEVEL_PROCEDURE
30073       ,p_module   => l_log_module);
30074 END IF;
30075 --
30076 EXCEPTION
30077   WHEN xla_exceptions_pkg.application_exception THEN
30078       RAISE;
30079   WHEN OTHERS THEN
30080        xla_exceptions_pkg.raise_message
30081            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_71');
30082 END AcctLineType_71;
30083 --
30084 
30088 --         AcctLineType_72
30085 ---------------------------------------
30086 --
30087 -- PRIVATE FUNCTION
30089 --
30090 ---------------------------------------
30091 PROCEDURE AcctLineType_72 (
30092   p_application_id        IN NUMBER
30093  ,p_event_id              IN NUMBER
30094  ,p_calculate_acctd_flag  IN VARCHAR2
30095  ,p_calculate_g_l_flag    IN VARCHAR2
30096  ,p_actual_flag           IN OUT VARCHAR2
30097  ,p_balance_type_code     OUT VARCHAR2
30098  ,p_gain_or_loss_ref      OUT VARCHAR2
30099  
30100 --Payment Currency Code
30101  , p_source_12            IN VARCHAR2
30102 --Bank Cash Account
30103  , p_source_13            IN NUMBER
30104 --Automatic Offsets Value
30105  , p_source_16            IN VARCHAR2
30106  , p_source_16_meaning    IN VARCHAR2
30107 --When to Account for Payment Option
30108  , p_source_50            IN VARCHAR2
30109 --Payment Distribution Type
30110  , p_source_51            IN VARCHAR2
30111  , p_source_51_meaning    IN VARCHAR2
30112 --Accounting Reversal Indicator
30113  , p_source_52            IN VARCHAR2
30114 --Payment Distribution Amount
30115  , p_source_53            IN NUMBER
30116 --Business Flow Accounts Payable Application Identifier
30117  , p_source_54            IN NUMBER
30118 --Business Flow Payment Distribution Type
30119  , p_source_55            IN VARCHAR2
30120 --Business Flow Payment Entity Code
30121  , p_source_56            IN VARCHAR2
30122 --Business Flow Payment Distribution Identifier
30123  , p_source_57            IN NUMBER
30124 --Business Flow Payment Identifier
30125  , p_source_58            IN NUMBER
30126 --Payment Distribution Identifier
30127  , p_source_59            IN NUMBER
30128 --Distribution Link Type
30129  , p_source_60            IN VARCHAR2
30130 --Override Accounted Amount Indicator
30131  , p_source_64            IN VARCHAR2
30132  , p_source_64_meaning    IN VARCHAR2
30133 --Payment Supplier Identifier
30134  , p_source_65            IN NUMBER
30135 --Payment Supplier Site Identifier
30136  , p_source_66            IN NUMBER
30137 --Third Party Type
30138  , p_source_67            IN VARCHAR2
30139 --Payment Distribution Reversed Identifier
30140  , p_source_68            IN NUMBER
30141 --Pooled Bank Account Option
30142  , p_source_117            IN VARCHAR2
30143  , p_source_117_meaning    IN VARCHAR2
30144 --Payment Maturity Date
30145  , p_source_118            IN DATE
30146 --Payment Exchange Date
30147  , p_source_121            IN DATE
30148 --Payment Exchange Rate
30149  , p_source_122            IN NUMBER
30150 --Payment Exchange Rate Type
30151  , p_source_123            IN VARCHAR2
30152 --Payment Distribution (Matured Rate) Ledger Amount
30153  , p_source_124            IN NUMBER
30154 )
30155 IS
30156 
30157 l_component_type              VARCHAR2(80);
30158 l_component_code              VARCHAR2(30);
30159 l_component_type_code         VARCHAR2(1);
30160 l_component_appl_id           INTEGER;
30161 l_amb_context_code            VARCHAR2(30);
30162 l_entity_code                 VARCHAR2(30);
30163 l_event_class_code            VARCHAR2(30);
30164 l_ae_header_id                NUMBER;
30165 l_event_type_code             VARCHAR2(30);
30166 l_line_definition_code        VARCHAR2(30);
30167 l_line_definition_owner_code  VARCHAR2(1);
30168 --
30169 -- adr variables
30170 l_segment                     VARCHAR2(30);
30171 l_ccid                        NUMBER;
30172 l_adr_transaction_coa_id      NUMBER;
30173 l_adr_accounting_coa_id       NUMBER;
30174 l_adr_flexfield_segment_code  VARCHAR2(30);
30175 l_adr_flex_value_set_id       NUMBER;
30176 l_adr_value_type_code         VARCHAR2(30);
30177 l_adr_value_combination_id    NUMBER;
30178 l_adr_value_segment_code      VARCHAR2(30);
30179 
30180 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
30181 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
30182 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
30183 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
30184 
30185 -- 4262811 Variables ------------------------------------------------------------------------------------------
30186 l_entered_amt_idx             NUMBER;
30187 l_accted_amt_idx              NUMBER;
30188 l_acc_rev_flag                VARCHAR2(1);
30189 l_accrual_line_num            NUMBER;
30190 l_tmp_amt                     NUMBER;
30191 l_acc_rev_natural_side_code   VARCHAR2(1);
30192 
30193 l_num_entries                 NUMBER;
30194 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
30195 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
30196 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
30197 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
30198 l_recog_line_1                NUMBER;
30199 l_recog_line_2                NUMBER;
30200 
30201 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
30202 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
30203 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
30204 
30205 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30206 
30207 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
30208 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
30212 
30209 
30210 ---------------------------------------------------------------------------------------------------------------
30211 
30213 --
30214 -- bulk performance
30215 --
30216 l_balance_type_code           VARCHAR2(1);
30217 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
30218 l_log_module                  VARCHAR2(240);
30219 
30220 --
30221 -- Upgrade strategy
30222 --
30223 l_actual_upg_option           VARCHAR2(1);
30224 l_enc_upg_option           VARCHAR2(1);
30225 
30226 --
30227 BEGIN
30228 --
30229 IF g_log_enabled THEN
30230       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
30231 END IF;
30232 --
30233 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30234 
30235       trace
30236          (p_msg      => 'BEGIN of AcctLineType_72'
30237          ,p_level    => C_LEVEL_PROCEDURE
30238          ,p_module   => l_log_module);
30239 
30240 END IF;
30241 --
30242 l_component_type             := 'AMB_JLT';
30243 l_component_code             := 'AP_CASH_PMT_MAT_AOS_AS';
30244 l_component_type_code        := 'S';
30245 l_component_appl_id          :=  200;
30246 l_amb_context_code           := 'DEFAULT';
30247 l_entity_code                := 'AP_PAYMENTS';
30248 l_event_class_code           := 'FUTURE DATED PAYMENTS';
30249 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
30250 l_line_definition_owner_code := 'S';
30251 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
30252 --
30253 l_balance_type_code          := 'A';
30254 l_segment                     := NULL;
30255 l_ccid                        := NULL;
30256 l_adr_transaction_coa_id      := NULL;
30257 l_adr_accounting_coa_id       := NULL;
30258 l_adr_flexfield_segment_code  := NULL;
30259 l_adr_flex_value_set_id       := NULL;
30260 l_adr_value_type_code         := NULL;
30261 l_adr_value_combination_id    := NULL;
30262 l_adr_value_segment_code      := NULL;
30263 
30264 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
30265 l_bflow_class_code           := '';    -- 4219869 Business Flow
30266 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
30267 l_budgetary_control_flag     := 'N';
30268 
30269 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
30270 l_bflow_applied_to_amt       := NULL; -- 5132302
30271 l_entered_amt_idx            := NULL;          -- 4262811
30272 l_accted_amt_idx             := NULL;          -- 4262811
30273 l_acc_rev_flag               := NULL;          -- 4262811
30274 l_accrual_line_num           := NULL;          -- 4262811
30275 l_tmp_amt                    := NULL;          -- 4262811
30276 --
30277  
30278 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30279     l_balance_type_code <> 'B' THEN
30280 IF NVL(p_source_50,'
30281 ') =  'ISSUE_ISSUE' AND 
30282 (NVL(p_source_117,'
30283 ') =  'Y' AND 
30284 NVL(p_source_16,'
30285 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
30286 p_source_118 IS NOT NULL AND 
30287 NVL(p_source_51,'
30288 ') =  'CASH'
30289  THEN 
30290 
30291    --
30292    XLA_AE_LINES_PKG.SetNewLine;
30293 
30294    p_balance_type_code          := l_balance_type_code;
30295    -- set the flag so later we will know whether the gain loss line needs to be created
30296    
30297    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30298      p_actual_flag :='A';
30299    END IF;
30300 
30301    --
30302    -- bulk performance
30303    --
30304    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30305                                       p_header_num   => 0); -- 4262811
30306    --
30307    -- set accounting line options
30308    --
30309    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30310            p_natural_side_code          => 'C'
30311          , p_gain_or_loss_flag          => 'N'
30312          , p_gl_transfer_mode_code      => 'S'
30313          , p_acct_entry_type_code       => 'A'
30314          , p_switch_side_flag           => 'Y'
30315          , p_merge_duplicate_code       => 'A'
30316          );
30317    --
30318    l_acc_rev_natural_side_code := 'D';  -- 4262811
30319    -- 
30320    --
30321    -- set accounting line type info
30322    --
30323    xla_ae_lines_pkg.SetAcctLineType
30324       (p_component_type             => l_component_type
30325       ,p_event_type_code            => l_event_type_code
30326       ,p_line_definition_owner_code => l_line_definition_owner_code
30327       ,p_line_definition_code       => l_line_definition_code
30328       ,p_accounting_line_code       => l_component_code
30329       ,p_accounting_line_type_code  => l_component_type_code
30330       ,p_accounting_line_appl_id    => l_component_appl_id
30331       ,p_amb_context_code           => l_amb_context_code
30332       ,p_entity_code                => l_entity_code
30333       ,p_event_class_code           => l_event_class_code);
30334    --
30335    -- set accounting class
30336    --
30337    xla_ae_lines_pkg.SetAcctClass(
30338            p_accounting_class_code  => 'CASH'
30339          , p_ae_header_id           => l_ae_header_id
30340          );
30341 
30342    --
30343    -- set rounding class
30344    --
30345    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30346                       'CASH';
30347 
30348    --
30352    -- bulk performance
30349    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30350    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30351    --
30353    --
30354    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30355 
30356    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30357       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30358 
30359    -- 4955764
30360    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30361       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30362 
30363    -- 4458381 Public Sector Enh
30364    
30365    --
30366    -- set accounting attributes for the line type
30367    --
30368    l_entered_amt_idx := 9;
30369    l_accted_amt_idx  := 14;
30370    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
30371    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30372    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
30373    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
30374    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
30375    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30376    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
30377    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
30378    l_rec_acct_attrs.array_char_value(4)  := p_source_56;
30379    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
30380    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
30381    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30382    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
30383    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
30384    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
30385    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
30386    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
30387    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
30388    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
30389    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
30390    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
30391    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
30392    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
30393    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
30394    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
30395    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
30396    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
30397    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
30398    l_rec_acct_attrs.array_num_value(14)  := p_source_124;
30399    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
30400    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
30401    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
30402    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
30403    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
30404    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
30405    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
30406    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
30407    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
30408    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
30409    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
30410    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
30411 
30412    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30413    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30414 
30415    ---------------------------------------------------------------------------------------------------------------
30416    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30417    ---------------------------------------------------------------------------------------------------------------
30418    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30419 
30420    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30421    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30422 
30423    IF xla_accounting_cache_pkg.GetValueChar
30424          (p_source_code         => 'LEDGER_CATEGORY_CODE'
30425          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30426    AND l_bflow_method_code = 'PRIOR_ENTRY'
30427 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30428    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30429          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30430        )
30431    THEN
30432          xla_ae_lines_pkg.BflowUpgEntry
30433            (p_business_method_code    => l_bflow_method_code
30434            ,p_business_class_code     => l_bflow_class_code
30435            ,p_balance_type            => l_balance_type_code);
30436    ELSE
30437       NULL;
30438 XLA_AE_LINES_PKG.business_flow_validation(
30439                                 p_business_method_code     => l_bflow_method_code
30443 
30440                                ,p_business_class_code      => l_bflow_class_code
30441                                ,p_inherit_description_flag => l_inherit_desc_flag);
30442    END IF;
30444    --
30445    -- call analytical criteria
30446    --
30447    
30448    --
30449    -- call description
30450    --
30451    -- No description or it is inherited.
30452    --
30453    -- call ADRs
30454    -- Bug 4922099
30455    --
30456    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30457         (NVL(l_actual_upg_option, 'N') = 'O') OR
30458         (NVL(l_enc_upg_option, 'N') = 'O')
30459       )
30460    THEN
30461    NULL;
30462    --
30463    --
30464    
30465    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
30466      p_code_combination_id      => TO_NUMBER(C_NUM)
30467    , p_value_type_code          => NULL
30468    , p_transaction_coa_id       => null
30469    , p_accounting_coa_id        => null
30470    , p_adr_code                 => NULL
30471    , p_adr_type_code            => NULL
30472    , p_component_type           => l_component_type
30473    , p_component_code           => l_component_code
30474    , p_component_type_code      => l_component_type_code
30475    , p_component_appl_id        => l_component_appl_id
30476    , p_amb_context_code         => l_amb_context_code
30477    , p_side                     => NULL
30478    );
30479 
30480    
30481   -- initialise segments
30482   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30483   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30484   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30485   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30486   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30487   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30488   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30489   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30490   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30491   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30492   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30493   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30494   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30495   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30496   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30497   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30498   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30499   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30500   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30501   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30502   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30503   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30504   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30505   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30506   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30507   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30508   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30509   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30510   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30511   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30512   --
30513 
30514    --
30515 
30516 
30517    l_segment := AcctDerRule_3(
30518            p_application_id           => p_application_id
30519          , p_ae_header_id             => l_ae_header_id 
30520 , p_source_13 => p_source_13
30521          , x_transaction_coa_id       => l_adr_transaction_coa_id
30522          , x_accounting_coa_id        => l_adr_accounting_coa_id
30523          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
30524          , x_flex_value_set_id        => l_adr_flex_value_set_id
30525          , x_value_type_code          => l_adr_value_type_code
30526          , x_value_combination_id     => l_adr_value_combination_id
30527          , x_value_segment_code       => l_adr_value_segment_code
30528          , p_side                     => 'NA'
30529          , p_override_seg_flag        => 'Y'
30530    );
30531 
30532    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
30533 
30534       xla_ae_lines_pkg.set_segment(
30535           p_to_segment_code         => 'GL_ACCOUNT'
30536         , p_segment_value           => l_segment
30537         , p_from_segment_code       => l_adr_value_segment_code
30538         , p_from_combination_id     => l_adr_value_combination_id
30539         , p_value_type_code         => l_adr_value_type_code
30540         , p_transaction_coa_id      => l_adr_transaction_coa_id
30541         , p_accounting_coa_id       => l_adr_accounting_coa_id
30542         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
30546         , p_component_type          => l_component_type
30543         , p_flex_value_set_id       => l_adr_flex_value_set_id
30544         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
30545         , p_adr_type_code           => 'S'
30547         , p_component_code          => l_component_code
30548         , p_component_type_code     => l_component_type_code
30549         , p_component_appl_id       => l_component_appl_id
30550         , p_amb_context_code        => l_amb_context_code
30551         , p_entity_code             => 'AP_PAYMENTS'
30552         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
30553         , p_side                    => 'NA'
30554         );
30555 
30556   END IF;
30557 
30558    --
30559    --
30560    END IF;
30561    --
30562    -- Bug 4922099
30563    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30564           (NVL(l_enc_upg_option, 'N') = 'O')
30565         ) AND
30566         (l_bflow_method_code = 'PRIOR_ENTRY')
30567       )
30568    THEN
30569       IF
30570       --
30571       1 = 2
30572       --
30573       THEN
30574       xla_accounting_err_pkg.build_message
30575                                     (p_appli_s_name            => 'XLA'
30576                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30577                                     ,p_token_1                 => 'LINE_NUMBER'
30578                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
30579                                     ,p_token_2                 => 'LINE_TYPE_NAME'
30580                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
30581                                                                              l_component_type
30582                                                                             ,l_component_code
30583                                                                             ,l_component_type_code
30584                                                                             ,l_component_appl_id
30585                                                                             ,l_amb_context_code
30586                                                                             ,l_entity_code
30587                                                                             ,l_event_class_code
30588                                                                            )
30589                                     ,p_token_3                 => 'OWNER'
30590                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
30591                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
30592                                                                           ,p_lookup_code    => l_component_type_code
30593                                                                          )
30594                                     ,p_token_4                 => 'PRODUCT_NAME'
30595                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30596                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30597                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30598                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30599                                     ,p_ae_header_id            =>  NULL
30600                                        );
30601 
30602         IF (C_LEVEL_ERROR>= g_log_level) THEN
30603                  trace
30604                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30605                       ,p_level    => C_LEVEL_ERROR
30606                       ,p_module   => l_log_module);
30607         END IF;
30608       END IF;
30609    END IF;
30610    --
30611    --
30612    ------------------------------------------------------------------------------------------------
30613    -- 4219869 Business Flow
30614    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30615    -- Prior Entry.  Currently, the following code is always generated.
30616    ------------------------------------------------------------------------------------------------
30617    XLA_AE_LINES_PKG.ValidateCurrentLine;
30618 
30619    ------------------------------------------------------------------------------------
30620    -- 4219869 Business Flow
30621    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30622    ------------------------------------------------------------------------------------
30623    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30624 
30625    ----------------------------------------------------------------------------------
30626    -- 4219869 Business Flow
30627    -- Update journal entry status -- Need to generate this within IF <condition>
30628    ----------------------------------------------------------------------------------
30629    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30630          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30631          ,p_balance_type_code => l_balance_type_code
30632          );
30633 
30634    -------------------------------------------------------------------------------------------
30635    -- 4262811 - Generate the Accrual Reversal lines
30636    -------------------------------------------------------------------------------------------
30637    BEGIN
30641          l_acc_rev_flag := 'N';
30638       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30639                               (g_array_event(p_event_id).array_value_num('header_index'));
30640       IF l_acc_rev_flag IS NULL THEN
30642       END IF;
30643    EXCEPTION
30644       WHEN OTHERS THEN
30645          l_acc_rev_flag := 'N';
30646    END;
30647    --
30648    IF (l_acc_rev_flag = 'Y') THEN
30649 
30650        -- 4645092  ------------------------------------------------------------------------------
30651        -- To allow MPA report to determine if it should generate report process
30652        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30653        ------------------------------------------------------------------------------------------
30654 
30655        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30656        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30657    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
30658    -- call ADRs
30659    -- Bug 4922099
30660    --
30661    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30662         (NVL(l_actual_upg_option, 'N') = 'O') OR
30663         (NVL(l_enc_upg_option, 'N') = 'O')
30664       )
30665    THEN
30666    NULL;
30667    --
30668    --
30669    
30670    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
30671      p_code_combination_id      => TO_NUMBER(C_NUM)
30672    , p_value_type_code          => NULL
30673    , p_transaction_coa_id       => null
30674    , p_accounting_coa_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_side                     => NULL
30683    );
30684 
30685    
30686   -- initialise segments
30687   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30688   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30689   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30690   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30691   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30692   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30693   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30694   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30695   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30696   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30697   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30698   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30699   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30700   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30701   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30702   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30703   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30704   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30705   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30706   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30707   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30708   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30709   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30710   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30711   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30712   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30713   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30714   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30715   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30716   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30717   --
30718 
30719    --
30720 
30721 
30722    l_segment := AcctDerRule_3(
30723            p_application_id           => p_application_id
30724          , p_ae_header_id             => l_ae_header_id 
30725 , p_source_13 => p_source_13
30726          , x_transaction_coa_id       => l_adr_transaction_coa_id
30727          , x_accounting_coa_id        => l_adr_accounting_coa_id
30728          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
30729          , x_flex_value_set_id        => l_adr_flex_value_set_id
30730          , x_value_type_code          => l_adr_value_type_code
30731          , x_value_combination_id     => l_adr_value_combination_id
30732          , x_value_segment_code       => l_adr_value_segment_code
30733          , p_side                     => 'NA'
30737    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
30734          , p_override_seg_flag        => 'Y'
30735    );
30736 
30738 
30739       xla_ae_lines_pkg.set_segment(
30740           p_to_segment_code         => 'GL_ACCOUNT'
30741         , p_segment_value           => l_segment
30742         , p_from_segment_code       => l_adr_value_segment_code
30743         , p_from_combination_id     => l_adr_value_combination_id
30744         , p_value_type_code         => l_adr_value_type_code
30745         , p_transaction_coa_id      => l_adr_transaction_coa_id
30746         , p_accounting_coa_id       => l_adr_accounting_coa_id
30747         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
30748         , p_flex_value_set_id       => l_adr_flex_value_set_id
30749         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
30750         , p_adr_type_code           => 'S'
30751         , p_component_type          => l_component_type
30752         , p_component_code          => l_component_code
30753         , p_component_type_code     => l_component_type_code
30754         , p_component_appl_id       => l_component_appl_id
30755         , p_amb_context_code        => l_amb_context_code
30756         , p_entity_code             => 'AP_PAYMENTS'
30757         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
30758         , p_side                    => 'NA'
30759         );
30760 
30761   END IF;
30762 
30763    --
30764    --
30765    END IF;
30766 
30767        --
30768        -- Update the line information that should be overwritten
30769        --
30770        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30771                                          p_header_num   => 1);
30772        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
30773 
30774        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30775 
30776        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
30777           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30778        END IF;
30779 
30780       --
30781       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30782       --
30783       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30784           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
30785       ELSE
30786           ---------------------------------------------------------------------------------------------------
30787           -- 4262811a Switch Sign
30788           ---------------------------------------------------------------------------------------------------
30789           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
30790           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30791                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30792           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30793                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30794           -- 5132302
30795           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30796                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30797 
30798       END IF;
30799 
30800       -- 4955764
30801       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30802       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30803 
30804 
30805       XLA_AE_LINES_PKG.ValidateCurrentLine;
30806       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30807 
30808       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30809                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30810                ,p_balance_type_code => l_balance_type_code);
30811 
30812    END IF;
30813 
30814    -----------------------------------------------------------------------------------------
30815    -- 4262811 Multiperiod Accounting
30816    -----------------------------------------------------------------------------------------
30817      -- No MPA option is assigned.
30818 
30819 
30820 END IF;
30821 END IF;
30822 --
30823 
30824 --
30825 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30826    trace
30827       (p_msg      => 'END of AcctLineType_72'
30828       ,p_level    => C_LEVEL_PROCEDURE
30829       ,p_module   => l_log_module);
30830 END IF;
30831 --
30832 EXCEPTION
30833   WHEN xla_exceptions_pkg.application_exception THEN
30834       RAISE;
30835   WHEN OTHERS THEN
30836        xla_exceptions_pkg.raise_message
30837            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_72');
30838 END AcctLineType_72;
30839 --
30840 
30841 ---------------------------------------
30842 --
30843 -- PRIVATE FUNCTION
30844 --         AcctLineType_73
30845 --
30846 ---------------------------------------
30847 PROCEDURE AcctLineType_73 (
30848   p_application_id        IN NUMBER
30849  ,p_event_id              IN NUMBER
30850  ,p_calculate_acctd_flag  IN VARCHAR2
30851  ,p_calculate_g_l_flag    IN VARCHAR2
30852  ,p_actual_flag           IN OUT VARCHAR2
30853  ,p_balance_type_code     OUT VARCHAR2
30857  , p_source_12            IN VARCHAR2
30854  ,p_gain_or_loss_ref      OUT VARCHAR2
30855  
30856 --Payment Currency Code
30858 --Bank Cash Account
30859  , p_source_13            IN NUMBER
30860 --Automatic Offsets Value
30861  , p_source_16            IN VARCHAR2
30862  , p_source_16_meaning    IN VARCHAR2
30863 --When to Account for Payment Option
30864  , p_source_50            IN VARCHAR2
30865 --Payment Distribution Type
30866  , p_source_51            IN VARCHAR2
30867  , p_source_51_meaning    IN VARCHAR2
30868 --Accounting Reversal Indicator
30869  , p_source_52            IN VARCHAR2
30870 --Payment Distribution Amount
30871  , p_source_53            IN NUMBER
30872 --Business Flow Accounts Payable Application Identifier
30873  , p_source_54            IN NUMBER
30874 --Business Flow Payment Distribution Type
30875  , p_source_55            IN VARCHAR2
30876 --Business Flow Payment Entity Code
30877  , p_source_56            IN VARCHAR2
30878 --Business Flow Payment Distribution Identifier
30879  , p_source_57            IN NUMBER
30880 --Business Flow Payment Identifier
30881  , p_source_58            IN NUMBER
30882 --Payment Distribution Identifier
30883  , p_source_59            IN NUMBER
30884 --Distribution Link Type
30885  , p_source_60            IN VARCHAR2
30886 --Override Accounted Amount Indicator
30887  , p_source_64            IN VARCHAR2
30888  , p_source_64_meaning    IN VARCHAR2
30889 --Payment Supplier Identifier
30890  , p_source_65            IN NUMBER
30891 --Payment Supplier Site Identifier
30892  , p_source_66            IN NUMBER
30893 --Third Party Type
30894  , p_source_67            IN VARCHAR2
30895 --Payment Distribution Reversed Identifier
30896  , p_source_68            IN NUMBER
30897 --Pooled Bank Account Option
30898  , p_source_117            IN VARCHAR2
30899  , p_source_117_meaning    IN VARCHAR2
30900 --Payment Maturity Date
30901  , p_source_118            IN DATE
30902 --Payment Exchange Date
30903  , p_source_121            IN DATE
30904 --Payment Exchange Rate
30905  , p_source_122            IN NUMBER
30906 --Payment Exchange Rate Type
30907  , p_source_123            IN VARCHAR2
30908 --Payment Distribution (Matured Rate) Ledger Amount
30909  , p_source_124            IN NUMBER
30910 )
30911 IS
30912 
30913 l_component_type              VARCHAR2(80);
30914 l_component_code              VARCHAR2(30);
30915 l_component_type_code         VARCHAR2(1);
30916 l_component_appl_id           INTEGER;
30917 l_amb_context_code            VARCHAR2(30);
30918 l_entity_code                 VARCHAR2(30);
30919 l_event_class_code            VARCHAR2(30);
30920 l_ae_header_id                NUMBER;
30921 l_event_type_code             VARCHAR2(30);
30922 l_line_definition_code        VARCHAR2(30);
30923 l_line_definition_owner_code  VARCHAR2(1);
30924 --
30925 -- adr variables
30926 l_segment                     VARCHAR2(30);
30927 l_ccid                        NUMBER;
30928 l_adr_transaction_coa_id      NUMBER;
30929 l_adr_accounting_coa_id       NUMBER;
30930 l_adr_flexfield_segment_code  VARCHAR2(30);
30931 l_adr_flex_value_set_id       NUMBER;
30932 l_adr_value_type_code         VARCHAR2(30);
30933 l_adr_value_combination_id    NUMBER;
30934 l_adr_value_segment_code      VARCHAR2(30);
30935 
30936 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
30937 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
30938 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
30939 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
30940 
30941 -- 4262811 Variables ------------------------------------------------------------------------------------------
30942 l_entered_amt_idx             NUMBER;
30943 l_accted_amt_idx              NUMBER;
30944 l_acc_rev_flag                VARCHAR2(1);
30945 l_accrual_line_num            NUMBER;
30946 l_tmp_amt                     NUMBER;
30947 l_acc_rev_natural_side_code   VARCHAR2(1);
30948 
30949 l_num_entries                 NUMBER;
30950 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
30951 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
30952 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
30953 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
30954 l_recog_line_1                NUMBER;
30955 l_recog_line_2                NUMBER;
30956 
30957 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
30958 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
30959 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
30960 
30961 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30962 
30963 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
30964 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
30965 
30966 ---------------------------------------------------------------------------------------------------------------
30967 
30968 
30969 --
30970 -- bulk performance
30971 --
30972 l_balance_type_code           VARCHAR2(1);
30973 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
30974 l_log_module                  VARCHAR2(240);
30975 
30976 --
30977 -- Upgrade strategy
30978 --
30979 l_actual_upg_option           VARCHAR2(1);
30983 BEGIN
30980 l_enc_upg_option           VARCHAR2(1);
30981 
30982 --
30984 --
30985 IF g_log_enabled THEN
30986       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
30987 END IF;
30988 --
30989 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30990 
30991       trace
30992          (p_msg      => 'BEGIN of AcctLineType_73'
30993          ,p_level    => C_LEVEL_PROCEDURE
30994          ,p_module   => l_log_module);
30995 
30996 END IF;
30997 --
30998 l_component_type             := 'AMB_JLT';
30999 l_component_code             := 'AP_CASH_PMT_MAT_AOS_BS';
31000 l_component_type_code        := 'S';
31001 l_component_appl_id          :=  200;
31002 l_amb_context_code           := 'DEFAULT';
31003 l_entity_code                := 'AP_PAYMENTS';
31004 l_event_class_code           := 'FUTURE DATED PAYMENTS';
31005 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
31006 l_line_definition_owner_code := 'S';
31007 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
31008 --
31009 l_balance_type_code          := 'A';
31010 l_segment                     := NULL;
31011 l_ccid                        := NULL;
31012 l_adr_transaction_coa_id      := NULL;
31013 l_adr_accounting_coa_id       := NULL;
31014 l_adr_flexfield_segment_code  := NULL;
31015 l_adr_flex_value_set_id       := NULL;
31016 l_adr_value_type_code         := NULL;
31017 l_adr_value_combination_id    := NULL;
31018 l_adr_value_segment_code      := NULL;
31019 
31020 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
31021 l_bflow_class_code           := '';    -- 4219869 Business Flow
31022 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
31023 l_budgetary_control_flag     := 'N';
31024 
31025 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
31026 l_bflow_applied_to_amt       := NULL; -- 5132302
31027 l_entered_amt_idx            := NULL;          -- 4262811
31028 l_accted_amt_idx             := NULL;          -- 4262811
31029 l_acc_rev_flag               := NULL;          -- 4262811
31030 l_accrual_line_num           := NULL;          -- 4262811
31031 l_tmp_amt                    := NULL;          -- 4262811
31032 --
31033  
31034 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31035     l_balance_type_code <> 'B' THEN
31036 IF NVL(p_source_50,'
31037 ') =  'ISSUE_ISSUE' AND 
31038 (NVL(p_source_117,'
31039 ') =  'Y' AND 
31040 NVL(p_source_16,'
31041 ') =  'BALANCING_SEGMENT') AND 
31042 p_source_118 IS NOT NULL AND 
31043 NVL(p_source_51,'
31044 ') =  'CASH'
31045  THEN 
31046 
31047    --
31048    XLA_AE_LINES_PKG.SetNewLine;
31049 
31050    p_balance_type_code          := l_balance_type_code;
31051    -- set the flag so later we will know whether the gain loss line needs to be created
31052    
31053    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31054      p_actual_flag :='A';
31055    END IF;
31056 
31057    --
31058    -- bulk performance
31059    --
31060    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31061                                       p_header_num   => 0); -- 4262811
31062    --
31063    -- set accounting line options
31064    --
31065    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31066            p_natural_side_code          => 'C'
31067          , p_gain_or_loss_flag          => 'N'
31068          , p_gl_transfer_mode_code      => 'S'
31069          , p_acct_entry_type_code       => 'A'
31070          , p_switch_side_flag           => 'Y'
31071          , p_merge_duplicate_code       => 'A'
31072          );
31073    --
31074    l_acc_rev_natural_side_code := 'D';  -- 4262811
31075    -- 
31076    --
31077    -- set accounting line type info
31078    --
31079    xla_ae_lines_pkg.SetAcctLineType
31080       (p_component_type             => l_component_type
31081       ,p_event_type_code            => l_event_type_code
31082       ,p_line_definition_owner_code => l_line_definition_owner_code
31083       ,p_line_definition_code       => l_line_definition_code
31084       ,p_accounting_line_code       => l_component_code
31085       ,p_accounting_line_type_code  => l_component_type_code
31086       ,p_accounting_line_appl_id    => l_component_appl_id
31087       ,p_amb_context_code           => l_amb_context_code
31088       ,p_entity_code                => l_entity_code
31089       ,p_event_class_code           => l_event_class_code);
31090    --
31091    -- set accounting class
31092    --
31093    xla_ae_lines_pkg.SetAcctClass(
31094            p_accounting_class_code  => 'CASH'
31095          , p_ae_header_id           => l_ae_header_id
31096          );
31097 
31098    --
31099    -- set rounding class
31100    --
31101    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31102                       'CASH';
31103 
31104    --
31105    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31106    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31107    --
31108    -- bulk performance
31109    --
31110    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31111 
31112    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31116    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31113       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31114 
31115    -- 4955764
31117       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31118 
31119    -- 4458381 Public Sector Enh
31120    
31121    --
31122    -- set accounting attributes for the line type
31123    --
31124    l_entered_amt_idx := 9;
31125    l_accted_amt_idx  := 14;
31126    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
31127    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31128    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
31129    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31130    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
31131    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31132    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
31133    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31134    l_rec_acct_attrs.array_char_value(4)  := p_source_56;
31135    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31136    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
31137    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31138    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
31139    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
31140    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
31141    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
31142    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
31143    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
31144    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
31145    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
31146    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
31147    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31148    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
31149    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31150    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
31151    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31152    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
31153    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31154    l_rec_acct_attrs.array_num_value(14)  := p_source_124;
31155    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31156    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
31157    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31158    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
31159    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31160    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
31161    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31162    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
31163    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31164    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
31165    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31166    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
31167 
31168    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31169    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31170 
31171    ---------------------------------------------------------------------------------------------------------------
31172    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31173    ---------------------------------------------------------------------------------------------------------------
31174    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31175 
31176    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31177    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31178 
31179    IF xla_accounting_cache_pkg.GetValueChar
31180          (p_source_code         => 'LEDGER_CATEGORY_CODE'
31181          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31182    AND l_bflow_method_code = 'PRIOR_ENTRY'
31183 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31184    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31185          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31186        )
31187    THEN
31188          xla_ae_lines_pkg.BflowUpgEntry
31189            (p_business_method_code    => l_bflow_method_code
31190            ,p_business_class_code     => l_bflow_class_code
31191            ,p_balance_type            => l_balance_type_code);
31192    ELSE
31193       NULL;
31194 XLA_AE_LINES_PKG.business_flow_validation(
31195                                 p_business_method_code     => l_bflow_method_code
31196                                ,p_business_class_code      => l_bflow_class_code
31197                                ,p_inherit_description_flag => l_inherit_desc_flag);
31198    END IF;
31199 
31200    --
31201    -- call analytical criteria
31202    --
31203    
31204    --
31205    -- call description
31206    --
31207    -- No description or it is inherited.
31208    --
31209    -- call ADRs
31210    -- Bug 4922099
31211    --
31215       )
31212    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31213         (NVL(l_actual_upg_option, 'N') = 'O') OR
31214         (NVL(l_enc_upg_option, 'N') = 'O')
31216    THEN
31217    NULL;
31218    --
31219    --
31220    
31221   l_ccid := AcctDerRule_22(
31222            p_application_id           => p_application_id
31223          , p_ae_header_id             => l_ae_header_id 
31224 , p_source_13 => p_source_13
31225          , x_transaction_coa_id       => l_adr_transaction_coa_id
31226          , x_accounting_coa_id        => l_adr_accounting_coa_id
31227          , x_value_type_code          => l_adr_value_type_code
31228          , p_side                     => 'NA'
31229    );
31230 
31231    xla_ae_lines_pkg.set_ccid(
31232     p_code_combination_id          => l_ccid
31233   , p_value_type_code              => l_adr_value_type_code
31234   , p_transaction_coa_id           => l_adr_transaction_coa_id
31235   , p_accounting_coa_id            => l_adr_accounting_coa_id
31236   , p_adr_code                     => 'AP_CASH'
31237   , p_adr_type_code                => 'S'
31238   , p_component_type               => l_component_type
31239   , p_component_code               => l_component_code
31240   , p_component_type_code          => l_component_type_code
31241   , p_component_appl_id            => l_component_appl_id
31242   , p_amb_context_code             => l_amb_context_code
31243   , p_side                         => 'NA'
31244   );
31245 
31246 
31247    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
31248      p_to_segment_code         => 'GL_BALANCING'
31249    , p_segment_value           => C_CHAR
31250    , p_from_segment_code       => NULL
31251    , p_from_combination_id     => NULL
31252    , p_value_type_code         => NULL
31253    , p_transaction_coa_id      => null
31254    , p_accounting_coa_id       => null
31255    , p_flexfield_segment_code  => NULL
31256    , p_flex_value_set_id       => NULL
31257    , p_adr_code                => NULL
31258    , p_adr_type_code           => NULL
31259    , p_component_type          => l_component_type
31260    , p_component_code          => l_component_code
31261    , p_component_type_code     => l_component_type_code
31262    , p_component_appl_id       => l_component_appl_id
31263    , p_amb_context_code        => l_amb_context_code
31264    , p_entity_code             => 'AP_PAYMENTS'
31265    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
31266    , p_side                    => 'NA'
31267    );
31268    --
31269 
31270 
31271    --
31272    --
31273    END IF;
31274    --
31275    -- Bug 4922099
31276    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31277           (NVL(l_enc_upg_option, 'N') = 'O')
31278         ) AND
31279         (l_bflow_method_code = 'PRIOR_ENTRY')
31280       )
31281    THEN
31282       IF
31283       --
31284       1 = 2
31285       --
31286       THEN
31287       xla_accounting_err_pkg.build_message
31288                                     (p_appli_s_name            => 'XLA'
31289                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31290                                     ,p_token_1                 => 'LINE_NUMBER'
31291                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
31292                                     ,p_token_2                 => 'LINE_TYPE_NAME'
31293                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
31294                                                                              l_component_type
31295                                                                             ,l_component_code
31296                                                                             ,l_component_type_code
31297                                                                             ,l_component_appl_id
31298                                                                             ,l_amb_context_code
31299                                                                             ,l_entity_code
31300                                                                             ,l_event_class_code
31301                                                                            )
31302                                     ,p_token_3                 => 'OWNER'
31303                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
31304                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
31305                                                                           ,p_lookup_code    => l_component_type_code
31306                                                                          )
31307                                     ,p_token_4                 => 'PRODUCT_NAME'
31308                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31309                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31310                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31311                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31312                                     ,p_ae_header_id            =>  NULL
31313                                        );
31314 
31315         IF (C_LEVEL_ERROR>= g_log_level) THEN
31316                  trace
31317                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31321       END IF;
31318                       ,p_level    => C_LEVEL_ERROR
31319                       ,p_module   => l_log_module);
31320         END IF;
31322    END IF;
31323    --
31324    --
31325    ------------------------------------------------------------------------------------------------
31326    -- 4219869 Business Flow
31327    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31328    -- Prior Entry.  Currently, the following code is always generated.
31329    ------------------------------------------------------------------------------------------------
31330    XLA_AE_LINES_PKG.ValidateCurrentLine;
31331 
31332    ------------------------------------------------------------------------------------
31333    -- 4219869 Business Flow
31334    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31335    ------------------------------------------------------------------------------------
31336    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31337 
31338    ----------------------------------------------------------------------------------
31339    -- 4219869 Business Flow
31340    -- Update journal entry status -- Need to generate this within IF <condition>
31341    ----------------------------------------------------------------------------------
31342    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31343          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31344          ,p_balance_type_code => l_balance_type_code
31345          );
31346 
31347    -------------------------------------------------------------------------------------------
31348    -- 4262811 - Generate the Accrual Reversal lines
31349    -------------------------------------------------------------------------------------------
31350    BEGIN
31351       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31352                               (g_array_event(p_event_id).array_value_num('header_index'));
31353       IF l_acc_rev_flag IS NULL THEN
31354          l_acc_rev_flag := 'N';
31355       END IF;
31356    EXCEPTION
31357       WHEN OTHERS THEN
31358          l_acc_rev_flag := 'N';
31359    END;
31360    --
31361    IF (l_acc_rev_flag = 'Y') THEN
31362 
31363        -- 4645092  ------------------------------------------------------------------------------
31364        -- To allow MPA report to determine if it should generate report process
31365        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31366        ------------------------------------------------------------------------------------------
31367 
31368        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31369        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31370    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
31371    -- call ADRs
31372    -- Bug 4922099
31373    --
31374    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31375         (NVL(l_actual_upg_option, 'N') = 'O') OR
31376         (NVL(l_enc_upg_option, 'N') = 'O')
31377       )
31378    THEN
31379    NULL;
31380    --
31381    --
31382    
31383   l_ccid := AcctDerRule_22(
31384            p_application_id           => p_application_id
31385          , p_ae_header_id             => l_ae_header_id 
31386 , p_source_13 => p_source_13
31387          , x_transaction_coa_id       => l_adr_transaction_coa_id
31388          , x_accounting_coa_id        => l_adr_accounting_coa_id
31389          , x_value_type_code          => l_adr_value_type_code
31390          , p_side                     => 'NA'
31391    );
31392 
31393    xla_ae_lines_pkg.set_ccid(
31394     p_code_combination_id          => l_ccid
31395   , p_value_type_code              => l_adr_value_type_code
31396   , p_transaction_coa_id           => l_adr_transaction_coa_id
31397   , p_accounting_coa_id            => l_adr_accounting_coa_id
31398   , p_adr_code                     => 'AP_CASH'
31399   , p_adr_type_code                => 'S'
31400   , p_component_type               => l_component_type
31401   , p_component_code               => l_component_code
31402   , p_component_type_code          => l_component_type_code
31403   , p_component_appl_id            => l_component_appl_id
31404   , p_amb_context_code             => l_amb_context_code
31405   , p_side                         => 'NA'
31406   );
31407 
31408 
31409    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
31410      p_to_segment_code         => 'GL_BALANCING'
31411    , p_segment_value           => C_CHAR
31412    , p_from_segment_code       => NULL
31413    , p_from_combination_id     => NULL
31414    , p_value_type_code         => NULL
31415    , p_transaction_coa_id      => null
31416    , p_accounting_coa_id       => null
31417    , p_flexfield_segment_code  => NULL
31418    , p_flex_value_set_id       => NULL
31419    , p_adr_code                => NULL
31420    , p_adr_type_code           => NULL
31421    , p_component_type          => l_component_type
31422    , p_component_code          => l_component_code
31423    , p_component_type_code     => l_component_type_code
31424    , p_component_appl_id       => l_component_appl_id
31425    , p_amb_context_code        => l_amb_context_code
31426    , p_entity_code             => 'AP_PAYMENTS'
31427    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
31428    , p_side                    => 'NA'
31429    );
31430    --
31431 
31432 
31433    --
31434    --
31435    END IF;
31436 
31440        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31437        --
31438        -- Update the line information that should be overwritten
31439        --
31441                                          p_header_num   => 1);
31442        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
31443 
31444        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31445 
31446        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
31447           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31448        END IF;
31449 
31450       --
31451       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31452       --
31453       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31454           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
31455       ELSE
31456           ---------------------------------------------------------------------------------------------------
31457           -- 4262811a Switch Sign
31458           ---------------------------------------------------------------------------------------------------
31459           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
31460           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31461                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31462           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31463                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31464           -- 5132302
31465           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31466                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31467 
31468       END IF;
31469 
31470       -- 4955764
31471       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31472       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31473 
31474 
31475       XLA_AE_LINES_PKG.ValidateCurrentLine;
31476       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31477 
31478       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31479                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31480                ,p_balance_type_code => l_balance_type_code);
31481 
31482    END IF;
31483 
31484    -----------------------------------------------------------------------------------------
31485    -- 4262811 Multiperiod Accounting
31486    -----------------------------------------------------------------------------------------
31487      -- No MPA option is assigned.
31488 
31489 
31490 END IF;
31491 END IF;
31492 --
31493 
31494 --
31495 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31496    trace
31497       (p_msg      => 'END of AcctLineType_73'
31498       ,p_level    => C_LEVEL_PROCEDURE
31499       ,p_module   => l_log_module);
31500 END IF;
31501 --
31502 EXCEPTION
31503   WHEN xla_exceptions_pkg.application_exception THEN
31504       RAISE;
31505   WHEN OTHERS THEN
31506        xla_exceptions_pkg.raise_message
31507            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_73');
31508 END AcctLineType_73;
31509 --
31510 
31511 ---------------------------------------
31512 --
31513 -- PRIVATE FUNCTION
31514 --         AcctLineType_74
31515 --
31516 ---------------------------------------
31517 PROCEDURE AcctLineType_74 (
31518   p_application_id        IN NUMBER
31519  ,p_event_id              IN NUMBER
31520  ,p_calculate_acctd_flag  IN VARCHAR2
31521  ,p_calculate_g_l_flag    IN VARCHAR2
31522  ,p_actual_flag           IN OUT VARCHAR2
31523  ,p_balance_type_code     OUT VARCHAR2
31524  ,p_gain_or_loss_ref      OUT VARCHAR2
31525  
31526 --Payment Currency Code
31527  , p_source_12            IN VARCHAR2
31528 --Bank Cash Account
31529  , p_source_13            IN NUMBER
31530 --Payment Distribution (Payment Rate) Ledger Amount
31531  , p_source_21            IN NUMBER
31532 --Automatic Offsets Flag
31533  , p_source_42            IN VARCHAR2
31534  , p_source_42_meaning    IN VARCHAR2
31535 --When to Account for Payment Option
31536  , p_source_50            IN VARCHAR2
31537 --Payment Distribution Type
31538  , p_source_51            IN VARCHAR2
31539  , p_source_51_meaning    IN VARCHAR2
31540 --Accounting Reversal Indicator
31541  , p_source_52            IN VARCHAR2
31542 --Payment Distribution Amount
31543  , p_source_53            IN NUMBER
31544 --Business Flow Accounts Payable Application Identifier
31545  , p_source_54            IN NUMBER
31546 --Payment Distribution Identifier
31547  , p_source_59            IN NUMBER
31548 --Distribution Link Type
31549  , p_source_60            IN VARCHAR2
31550 --Override Accounted Amount Indicator
31551  , p_source_64            IN VARCHAR2
31552  , p_source_64_meaning    IN VARCHAR2
31553 --Payment Supplier Identifier
31554  , p_source_65            IN NUMBER
31555 --Payment Supplier Site Identifier
31556  , p_source_66            IN NUMBER
31557 --Third Party Type
31558  , p_source_67            IN VARCHAR2
31559 --Payment Distribution Reversed Identifier
31560  , p_source_68            IN NUMBER
31564  , p_source_70            IN NUMBER
31561 --Invoice Distribution Tax Line Identifier
31562  , p_source_69            IN NUMBER
31563 --Invoice Distribution Summary Tax Line Identifier
31565 --Payment Type
31566  , p_source_71            IN VARCHAR2
31567  , p_source_71_meaning    IN VARCHAR2
31568 --Business Flow Invoice Distribution Type
31569  , p_source_73            IN VARCHAR2
31570 --Business Flow Invoice Entity Code
31571  , p_source_74            IN VARCHAR2
31572 --Business Flow Invoice Distribution Identifier
31573  , p_source_75            IN NUMBER
31574 --Business Flow Invoice Identifier
31575  , p_source_76            IN NUMBER
31576 --Invoice Distribution Tax Distribution Identifier from Tax
31577  , p_source_77            IN NUMBER
31578 --Pooled Bank Account Option
31579  , p_source_117            IN VARCHAR2
31580  , p_source_117_meaning    IN VARCHAR2
31581 --Payment Maturity Date
31582  , p_source_118            IN DATE
31583 --Payment Exchange Date
31584  , p_source_121            IN DATE
31585 --Payment Exchange Rate
31586  , p_source_122            IN NUMBER
31587 --Payment Exchange Rate Type
31588  , p_source_123            IN VARCHAR2
31589 )
31590 IS
31591 
31592 l_component_type              VARCHAR2(80);
31593 l_component_code              VARCHAR2(30);
31594 l_component_type_code         VARCHAR2(1);
31595 l_component_appl_id           INTEGER;
31596 l_amb_context_code            VARCHAR2(30);
31597 l_entity_code                 VARCHAR2(30);
31598 l_event_class_code            VARCHAR2(30);
31599 l_ae_header_id                NUMBER;
31600 l_event_type_code             VARCHAR2(30);
31601 l_line_definition_code        VARCHAR2(30);
31602 l_line_definition_owner_code  VARCHAR2(1);
31603 --
31604 -- adr variables
31605 l_segment                     VARCHAR2(30);
31606 l_ccid                        NUMBER;
31607 l_adr_transaction_coa_id      NUMBER;
31608 l_adr_accounting_coa_id       NUMBER;
31609 l_adr_flexfield_segment_code  VARCHAR2(30);
31610 l_adr_flex_value_set_id       NUMBER;
31611 l_adr_value_type_code         VARCHAR2(30);
31612 l_adr_value_combination_id    NUMBER;
31613 l_adr_value_segment_code      VARCHAR2(30);
31614 
31615 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
31616 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
31617 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
31618 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
31619 
31620 -- 4262811 Variables ------------------------------------------------------------------------------------------
31621 l_entered_amt_idx             NUMBER;
31622 l_accted_amt_idx              NUMBER;
31623 l_acc_rev_flag                VARCHAR2(1);
31624 l_accrual_line_num            NUMBER;
31625 l_tmp_amt                     NUMBER;
31626 l_acc_rev_natural_side_code   VARCHAR2(1);
31627 
31628 l_num_entries                 NUMBER;
31629 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
31630 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
31631 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
31632 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
31633 l_recog_line_1                NUMBER;
31634 l_recog_line_2                NUMBER;
31635 
31636 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
31637 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
31638 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
31639 
31640 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31641 
31642 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
31643 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
31644 
31645 ---------------------------------------------------------------------------------------------------------------
31646 
31647 
31648 --
31649 -- bulk performance
31650 --
31651 l_balance_type_code           VARCHAR2(1);
31652 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
31653 l_log_module                  VARCHAR2(240);
31654 
31655 --
31656 -- Upgrade strategy
31657 --
31658 l_actual_upg_option           VARCHAR2(1);
31659 l_enc_upg_option           VARCHAR2(1);
31660 
31661 --
31662 BEGIN
31663 --
31664 IF g_log_enabled THEN
31665       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
31666 END IF;
31667 --
31668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31669 
31670       trace
31671          (p_msg      => 'BEGIN of AcctLineType_74'
31672          ,p_level    => C_LEVEL_PROCEDURE
31673          ,p_module   => l_log_module);
31674 
31675 END IF;
31676 --
31677 l_component_type             := 'AMB_JLT';
31678 l_component_code             := 'AP_CASH_REF';
31679 l_component_type_code        := 'S';
31680 l_component_appl_id          :=  200;
31681 l_amb_context_code           := 'DEFAULT';
31682 l_entity_code                := 'AP_PAYMENTS';
31683 l_event_class_code           := 'REFUNDS';
31684 l_event_type_code            := 'REFUNDS_ALL';
31685 l_line_definition_owner_code := 'S';
31686 l_line_definition_code       := 'CASH_REFUNDS_ALL';
31687 --
31688 l_balance_type_code          := 'A';
31689 l_segment                     := NULL;
31693 l_adr_flexfield_segment_code  := NULL;
31690 l_ccid                        := NULL;
31691 l_adr_transaction_coa_id      := NULL;
31692 l_adr_accounting_coa_id       := NULL;
31694 l_adr_flex_value_set_id       := NULL;
31695 l_adr_value_type_code         := NULL;
31696 l_adr_value_combination_id    := NULL;
31697 l_adr_value_segment_code      := NULL;
31698 
31699 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
31700 l_bflow_class_code           := '';    -- 4219869 Business Flow
31701 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
31702 l_budgetary_control_flag     := 'N';
31703 
31704 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
31705 l_bflow_applied_to_amt       := NULL; -- 5132302
31706 l_entered_amt_idx            := NULL;          -- 4262811
31707 l_accted_amt_idx             := NULL;          -- 4262811
31708 l_acc_rev_flag               := NULL;          -- 4262811
31709 l_accrual_line_num           := NULL;          -- 4262811
31710 l_tmp_amt                    := NULL;          -- 4262811
31711 --
31712  
31713 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31714     l_balance_type_code <> 'B' THEN
31715 IF NVL(p_source_50,'
31716 ') =  'ISSUE_ISSUE' AND 
31717 (NVL(p_source_42,'
31718 ') <>  'Y' OR 
31719 NVL(p_source_42,'
31720 ') =  'Y' AND 
31721 NVL(p_source_117,'
31722 ') <>  'Y') AND 
31723 p_source_118 IS NULL AND 
31724 NVL(p_source_51,'
31725 ') =  'CASH' AND 
31726 NVL(p_source_71,'
31727 ') =  'R'
31728  THEN 
31729 
31730    --
31731    XLA_AE_LINES_PKG.SetNewLine;
31732 
31733    p_balance_type_code          := l_balance_type_code;
31734    -- set the flag so later we will know whether the gain loss line needs to be created
31735    
31736    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31737      p_actual_flag :='A';
31738    END IF;
31739 
31740    --
31741    -- bulk performance
31742    --
31743    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31744                                       p_header_num   => 0); -- 4262811
31745    --
31746    -- set accounting line options
31747    --
31748    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31749            p_natural_side_code          => 'C'
31750          , p_gain_or_loss_flag          => 'N'
31751          , p_gl_transfer_mode_code      => 'S'
31752          , p_acct_entry_type_code       => 'A'
31753          , p_switch_side_flag           => 'Y'
31754          , p_merge_duplicate_code       => 'A'
31755          );
31756    --
31757    l_acc_rev_natural_side_code := 'D';  -- 4262811
31758    -- 
31759    --
31760    -- set accounting line type info
31761    --
31762    xla_ae_lines_pkg.SetAcctLineType
31763       (p_component_type             => l_component_type
31764       ,p_event_type_code            => l_event_type_code
31765       ,p_line_definition_owner_code => l_line_definition_owner_code
31766       ,p_line_definition_code       => l_line_definition_code
31767       ,p_accounting_line_code       => l_component_code
31768       ,p_accounting_line_type_code  => l_component_type_code
31769       ,p_accounting_line_appl_id    => l_component_appl_id
31770       ,p_amb_context_code           => l_amb_context_code
31771       ,p_entity_code                => l_entity_code
31772       ,p_event_class_code           => l_event_class_code);
31773    --
31774    -- set accounting class
31775    --
31776    xla_ae_lines_pkg.SetAcctClass(
31777            p_accounting_class_code  => 'CASH'
31778          , p_ae_header_id           => l_ae_header_id
31779          );
31780 
31781    --
31782    -- set rounding class
31783    --
31784    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31785                       'CASH';
31786 
31787    --
31788    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31789    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31790    --
31791    -- bulk performance
31792    --
31793    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31794 
31795    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31796       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31797 
31798    -- 4955764
31799    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31800       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31801 
31802    -- 4458381 Public Sector Enh
31803    
31804    --
31805    -- set accounting attributes for the line type
31806    --
31807    l_entered_amt_idx := 9;
31808    l_accted_amt_idx  := 14;
31809    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
31810    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31811    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
31812    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31813    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
31814    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31815    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
31816    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31820    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31817    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
31818    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31819    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
31821    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
31822    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
31823    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
31824    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
31825    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
31826    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
31827    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
31828    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
31829    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
31830    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31831    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
31832    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31833    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
31834    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31835    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
31836    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31837    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
31838    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31839    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
31840    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31841    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
31842    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31843    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
31844    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31845    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
31846    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31847    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
31848    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31849    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
31850    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
31851    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
31852    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
31853    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
31854    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
31855    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
31856 
31857    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31858    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31859 
31860    ---------------------------------------------------------------------------------------------------------------
31861    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31862    ---------------------------------------------------------------------------------------------------------------
31863    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31864 
31865    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31866    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31867 
31868    IF xla_accounting_cache_pkg.GetValueChar
31869          (p_source_code         => 'LEDGER_CATEGORY_CODE'
31870          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31871    AND l_bflow_method_code = 'PRIOR_ENTRY'
31872 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31873    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31874          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31875        )
31876    THEN
31877          xla_ae_lines_pkg.BflowUpgEntry
31878            (p_business_method_code    => l_bflow_method_code
31879            ,p_business_class_code     => l_bflow_class_code
31880            ,p_balance_type            => l_balance_type_code);
31881    ELSE
31882       NULL;
31883 -- No business flow processing for business flow method of NONE.
31884    END IF;
31885 
31886    --
31887    -- call analytical criteria
31888    --
31889    
31890    --
31891    -- call description
31892    --
31893    -- No description or it is inherited.
31894    --
31895    -- call ADRs
31896    -- Bug 4922099
31897    --
31898    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31899         (NVL(l_actual_upg_option, 'N') = 'O') OR
31900         (NVL(l_enc_upg_option, 'N') = 'O')
31901       )
31902    THEN
31903    NULL;
31904    --
31905    --
31906    
31907   l_ccid := AcctDerRule_22(
31908            p_application_id           => p_application_id
31909          , p_ae_header_id             => l_ae_header_id 
31910 , p_source_13 => p_source_13
31911          , x_transaction_coa_id       => l_adr_transaction_coa_id
31912          , x_accounting_coa_id        => l_adr_accounting_coa_id
31913          , x_value_type_code          => l_adr_value_type_code
31914          , p_side                     => 'NA'
31915    );
31916 
31917    xla_ae_lines_pkg.set_ccid(
31918     p_code_combination_id          => l_ccid
31919   , p_value_type_code              => l_adr_value_type_code
31923   , p_adr_type_code                => 'S'
31920   , p_transaction_coa_id           => l_adr_transaction_coa_id
31921   , p_accounting_coa_id            => l_adr_accounting_coa_id
31922   , p_adr_code                     => 'AP_CASH'
31924   , p_component_type               => l_component_type
31925   , p_component_code               => l_component_code
31926   , p_component_type_code          => l_component_type_code
31927   , p_component_appl_id            => l_component_appl_id
31928   , p_amb_context_code             => l_amb_context_code
31929   , p_side                         => 'NA'
31930   );
31931 
31932 
31933    --
31934    --
31935    END IF;
31936    --
31937    -- Bug 4922099
31938    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31939           (NVL(l_enc_upg_option, 'N') = 'O')
31940         ) AND
31941         (l_bflow_method_code = 'PRIOR_ENTRY')
31942       )
31943    THEN
31944       IF
31945       --
31946       1 = 2
31947       --
31948       THEN
31949       xla_accounting_err_pkg.build_message
31950                                     (p_appli_s_name            => 'XLA'
31951                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31952                                     ,p_token_1                 => 'LINE_NUMBER'
31953                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
31954                                     ,p_token_2                 => 'LINE_TYPE_NAME'
31955                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
31956                                                                              l_component_type
31957                                                                             ,l_component_code
31958                                                                             ,l_component_type_code
31959                                                                             ,l_component_appl_id
31960                                                                             ,l_amb_context_code
31961                                                                             ,l_entity_code
31962                                                                             ,l_event_class_code
31963                                                                            )
31964                                     ,p_token_3                 => 'OWNER'
31965                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
31966                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
31967                                                                           ,p_lookup_code    => l_component_type_code
31968                                                                          )
31969                                     ,p_token_4                 => 'PRODUCT_NAME'
31970                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31971                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31972                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31973                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31974                                     ,p_ae_header_id            =>  NULL
31975                                        );
31976 
31977         IF (C_LEVEL_ERROR>= g_log_level) THEN
31978                  trace
31979                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31980                       ,p_level    => C_LEVEL_ERROR
31981                       ,p_module   => l_log_module);
31982         END IF;
31983       END IF;
31984    END IF;
31985    --
31986    --
31987    ------------------------------------------------------------------------------------------------
31988    -- 4219869 Business Flow
31989    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31990    -- Prior Entry.  Currently, the following code is always generated.
31991    ------------------------------------------------------------------------------------------------
31992    XLA_AE_LINES_PKG.ValidateCurrentLine;
31993 
31994    ------------------------------------------------------------------------------------
31995    -- 4219869 Business Flow
31996    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31997    ------------------------------------------------------------------------------------
31998    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31999 
32000    ----------------------------------------------------------------------------------
32001    -- 4219869 Business Flow
32002    -- Update journal entry status -- Need to generate this within IF <condition>
32003    ----------------------------------------------------------------------------------
32004    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32005          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32006          ,p_balance_type_code => l_balance_type_code
32007          );
32008 
32009    -------------------------------------------------------------------------------------------
32010    -- 4262811 - Generate the Accrual Reversal lines
32011    -------------------------------------------------------------------------------------------
32012    BEGIN
32013       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32014                               (g_array_event(p_event_id).array_value_num('header_index'));
32015       IF l_acc_rev_flag IS NULL THEN
32019       WHEN OTHERS THEN
32016          l_acc_rev_flag := 'N';
32017       END IF;
32018    EXCEPTION
32020          l_acc_rev_flag := 'N';
32021    END;
32022    --
32023    IF (l_acc_rev_flag = 'Y') THEN
32024 
32025        -- 4645092  ------------------------------------------------------------------------------
32026        -- To allow MPA report to determine if it should generate report process
32027        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32028        ------------------------------------------------------------------------------------------
32029 
32030        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32031        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32032    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
32033    -- call ADRs
32034    -- Bug 4922099
32035    --
32036    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32037         (NVL(l_actual_upg_option, 'N') = 'O') OR
32038         (NVL(l_enc_upg_option, 'N') = 'O')
32039       )
32040    THEN
32041    NULL;
32042    --
32043    --
32044    
32045   l_ccid := AcctDerRule_22(
32046            p_application_id           => p_application_id
32047          , p_ae_header_id             => l_ae_header_id 
32048 , p_source_13 => p_source_13
32049          , x_transaction_coa_id       => l_adr_transaction_coa_id
32050          , x_accounting_coa_id        => l_adr_accounting_coa_id
32051          , x_value_type_code          => l_adr_value_type_code
32052          , p_side                     => 'NA'
32053    );
32054 
32055    xla_ae_lines_pkg.set_ccid(
32056     p_code_combination_id          => l_ccid
32057   , p_value_type_code              => l_adr_value_type_code
32058   , p_transaction_coa_id           => l_adr_transaction_coa_id
32059   , p_accounting_coa_id            => l_adr_accounting_coa_id
32060   , p_adr_code                     => 'AP_CASH'
32061   , p_adr_type_code                => 'S'
32062   , p_component_type               => l_component_type
32063   , p_component_code               => l_component_code
32064   , p_component_type_code          => l_component_type_code
32065   , p_component_appl_id            => l_component_appl_id
32066   , p_amb_context_code             => l_amb_context_code
32067   , p_side                         => 'NA'
32068   );
32069 
32070 
32071    --
32072    --
32073    END IF;
32074 
32075        --
32076        -- Update the line information that should be overwritten
32077        --
32078        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32079                                          p_header_num   => 1);
32080        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
32081 
32082        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32083 
32084        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
32085           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32086        END IF;
32087 
32088       --
32089       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32090       --
32091       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32092           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
32093       ELSE
32094           ---------------------------------------------------------------------------------------------------
32095           -- 4262811a Switch Sign
32096           ---------------------------------------------------------------------------------------------------
32097           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
32098           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32099                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32100           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32101                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32102           -- 5132302
32103           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32104                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32105 
32106       END IF;
32107 
32108       -- 4955764
32109       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32110       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32111 
32112 
32113       XLA_AE_LINES_PKG.ValidateCurrentLine;
32114       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32115 
32116       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32117                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32118                ,p_balance_type_code => l_balance_type_code);
32119 
32120    END IF;
32121 
32122    -----------------------------------------------------------------------------------------
32123    -- 4262811 Multiperiod Accounting
32124    -----------------------------------------------------------------------------------------
32125      -- No MPA option is assigned.
32126 
32127 
32128 END IF;
32129 END IF;
32130 --
32131 
32132 --
32136       ,p_level    => C_LEVEL_PROCEDURE
32133 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32134    trace
32135       (p_msg      => 'END of AcctLineType_74'
32137       ,p_module   => l_log_module);
32138 END IF;
32139 --
32140 EXCEPTION
32141   WHEN xla_exceptions_pkg.application_exception THEN
32142       RAISE;
32143   WHEN OTHERS THEN
32144        xla_exceptions_pkg.raise_message
32145            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_74');
32146 END AcctLineType_74;
32147 --
32148 
32149 ---------------------------------------
32150 --
32151 -- PRIVATE FUNCTION
32152 --         AcctLineType_75
32153 --
32154 ---------------------------------------
32155 PROCEDURE AcctLineType_75 (
32156   p_application_id        IN NUMBER
32157  ,p_event_id              IN NUMBER
32158  ,p_calculate_acctd_flag  IN VARCHAR2
32159  ,p_calculate_g_l_flag    IN VARCHAR2
32160  ,p_actual_flag           IN OUT VARCHAR2
32161  ,p_balance_type_code     OUT VARCHAR2
32162  ,p_gain_or_loss_ref      OUT VARCHAR2
32163  
32164 --Payment Currency Code
32165  , p_source_12            IN VARCHAR2
32166 --Bank Cash Account
32167  , p_source_13            IN NUMBER
32168 --Automatic Offsets Value
32169  , p_source_16            IN VARCHAR2
32170  , p_source_16_meaning    IN VARCHAR2
32171 --Payment Distribution (Payment Rate) Ledger Amount
32172  , p_source_21            IN NUMBER
32173 --When to Account for Payment Option
32174  , p_source_50            IN VARCHAR2
32175 --Payment Distribution Type
32176  , p_source_51            IN VARCHAR2
32177  , p_source_51_meaning    IN VARCHAR2
32178 --Accounting Reversal Indicator
32179  , p_source_52            IN VARCHAR2
32180 --Payment Distribution Amount
32181  , p_source_53            IN NUMBER
32182 --Business Flow Accounts Payable Application Identifier
32183  , p_source_54            IN NUMBER
32184 --Payment Distribution Identifier
32185  , p_source_59            IN NUMBER
32186 --Distribution Link Type
32187  , p_source_60            IN VARCHAR2
32188 --Override Accounted Amount Indicator
32189  , p_source_64            IN VARCHAR2
32190  , p_source_64_meaning    IN VARCHAR2
32191 --Payment Supplier Identifier
32192  , p_source_65            IN NUMBER
32193 --Payment Supplier Site Identifier
32194  , p_source_66            IN NUMBER
32195 --Third Party Type
32196  , p_source_67            IN VARCHAR2
32197 --Payment Distribution Reversed Identifier
32198  , p_source_68            IN NUMBER
32199 --Invoice Distribution Tax Line Identifier
32200  , p_source_69            IN NUMBER
32201 --Invoice Distribution Summary Tax Line Identifier
32202  , p_source_70            IN NUMBER
32203 --Payment Type
32204  , p_source_71            IN VARCHAR2
32205  , p_source_71_meaning    IN VARCHAR2
32206 --Business Flow Invoice Distribution Type
32207  , p_source_73            IN VARCHAR2
32208 --Business Flow Invoice Entity Code
32209  , p_source_74            IN VARCHAR2
32210 --Business Flow Invoice Distribution Identifier
32211  , p_source_75            IN NUMBER
32212 --Business Flow Invoice Identifier
32213  , p_source_76            IN NUMBER
32214 --Invoice Distribution Tax Distribution Identifier from Tax
32215  , p_source_77            IN NUMBER
32216 --Pooled Bank Account Option
32217  , p_source_117            IN VARCHAR2
32218  , p_source_117_meaning    IN VARCHAR2
32219 --Payment Maturity Date
32220  , p_source_118            IN DATE
32221 --Payment Exchange Date
32222  , p_source_121            IN DATE
32223 --Payment Exchange Rate
32224  , p_source_122            IN NUMBER
32225 --Payment Exchange Rate Type
32226  , p_source_123            IN VARCHAR2
32227 )
32228 IS
32229 
32230 l_component_type              VARCHAR2(80);
32231 l_component_code              VARCHAR2(30);
32232 l_component_type_code         VARCHAR2(1);
32233 l_component_appl_id           INTEGER;
32234 l_amb_context_code            VARCHAR2(30);
32235 l_entity_code                 VARCHAR2(30);
32236 l_event_class_code            VARCHAR2(30);
32237 l_ae_header_id                NUMBER;
32238 l_event_type_code             VARCHAR2(30);
32239 l_line_definition_code        VARCHAR2(30);
32240 l_line_definition_owner_code  VARCHAR2(1);
32241 --
32242 -- adr variables
32243 l_segment                     VARCHAR2(30);
32244 l_ccid                        NUMBER;
32245 l_adr_transaction_coa_id      NUMBER;
32246 l_adr_accounting_coa_id       NUMBER;
32247 l_adr_flexfield_segment_code  VARCHAR2(30);
32248 l_adr_flex_value_set_id       NUMBER;
32249 l_adr_value_type_code         VARCHAR2(30);
32250 l_adr_value_combination_id    NUMBER;
32251 l_adr_value_segment_code      VARCHAR2(30);
32252 
32253 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
32254 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
32255 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
32256 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
32257 
32258 -- 4262811 Variables ------------------------------------------------------------------------------------------
32259 l_entered_amt_idx             NUMBER;
32260 l_accted_amt_idx              NUMBER;
32261 l_acc_rev_flag                VARCHAR2(1);
32262 l_accrual_line_num            NUMBER;
32263 l_tmp_amt                     NUMBER;
32264 l_acc_rev_natural_side_code   VARCHAR2(1);
32265 
32266 l_num_entries                 NUMBER;
32267 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
32271 l_recog_line_1                NUMBER;
32268 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
32269 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
32270 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
32272 l_recog_line_2                NUMBER;
32273 
32274 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
32275 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
32276 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
32277 
32278 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32279 
32280 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
32281 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
32282 
32283 ---------------------------------------------------------------------------------------------------------------
32284 
32285 
32286 --
32287 -- bulk performance
32288 --
32289 l_balance_type_code           VARCHAR2(1);
32290 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
32291 l_log_module                  VARCHAR2(240);
32292 
32293 --
32294 -- Upgrade strategy
32295 --
32296 l_actual_upg_option           VARCHAR2(1);
32297 l_enc_upg_option           VARCHAR2(1);
32298 
32299 --
32300 BEGIN
32301 --
32302 IF g_log_enabled THEN
32303       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
32304 END IF;
32305 --
32306 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32307 
32308       trace
32309          (p_msg      => 'BEGIN of AcctLineType_75'
32310          ,p_level    => C_LEVEL_PROCEDURE
32311          ,p_module   => l_log_module);
32312 
32313 END IF;
32314 --
32315 l_component_type             := 'AMB_JLT';
32316 l_component_code             := 'AP_CASH_REF_AOS_AS';
32317 l_component_type_code        := 'S';
32318 l_component_appl_id          :=  200;
32319 l_amb_context_code           := 'DEFAULT';
32320 l_entity_code                := 'AP_PAYMENTS';
32321 l_event_class_code           := 'REFUNDS';
32322 l_event_type_code            := 'REFUNDS_ALL';
32323 l_line_definition_owner_code := 'S';
32324 l_line_definition_code       := 'CASH_REFUNDS_ALL';
32325 --
32326 l_balance_type_code          := 'A';
32327 l_segment                     := NULL;
32328 l_ccid                        := NULL;
32329 l_adr_transaction_coa_id      := NULL;
32330 l_adr_accounting_coa_id       := NULL;
32331 l_adr_flexfield_segment_code  := NULL;
32332 l_adr_flex_value_set_id       := NULL;
32333 l_adr_value_type_code         := NULL;
32334 l_adr_value_combination_id    := NULL;
32335 l_adr_value_segment_code      := NULL;
32336 
32337 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
32338 l_bflow_class_code           := '';    -- 4219869 Business Flow
32339 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
32340 l_budgetary_control_flag     := 'N';
32341 
32342 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
32343 l_bflow_applied_to_amt       := NULL; -- 5132302
32344 l_entered_amt_idx            := NULL;          -- 4262811
32345 l_accted_amt_idx             := NULL;          -- 4262811
32346 l_acc_rev_flag               := NULL;          -- 4262811
32347 l_accrual_line_num           := NULL;          -- 4262811
32348 l_tmp_amt                    := NULL;          -- 4262811
32349 --
32350  
32351 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32352     l_balance_type_code <> 'B' THEN
32353 IF NVL(p_source_50,'
32354 ') =  'ISSUE_ISSUE' AND 
32355 (NVL(p_source_117,'
32356 ') =  'Y' AND 
32357 NVL(p_source_16,'
32358 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
32359 p_source_118 IS NULL AND 
32360 NVL(p_source_51,'
32361 ') =  'CASH' AND 
32362 NVL(p_source_71,'
32363 ') =  'R'
32364  THEN 
32365 
32366    --
32367    XLA_AE_LINES_PKG.SetNewLine;
32368 
32369    p_balance_type_code          := l_balance_type_code;
32370    -- set the flag so later we will know whether the gain loss line needs to be created
32371    
32372    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32373      p_actual_flag :='A';
32374    END IF;
32375 
32376    --
32377    -- bulk performance
32378    --
32379    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32380                                       p_header_num   => 0); -- 4262811
32381    --
32382    -- set accounting line options
32383    --
32384    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32385            p_natural_side_code          => 'C'
32386          , p_gain_or_loss_flag          => 'N'
32387          , p_gl_transfer_mode_code      => 'S'
32388          , p_acct_entry_type_code       => 'A'
32389          , p_switch_side_flag           => 'Y'
32390          , p_merge_duplicate_code       => 'A'
32391          );
32392    --
32393    l_acc_rev_natural_side_code := 'D';  -- 4262811
32394    -- 
32395    --
32396    -- set accounting line type info
32397    --
32398    xla_ae_lines_pkg.SetAcctLineType
32399       (p_component_type             => l_component_type
32400       ,p_event_type_code            => l_event_type_code
32401       ,p_line_definition_owner_code => l_line_definition_owner_code
32405       ,p_accounting_line_appl_id    => l_component_appl_id
32402       ,p_line_definition_code       => l_line_definition_code
32403       ,p_accounting_line_code       => l_component_code
32404       ,p_accounting_line_type_code  => l_component_type_code
32406       ,p_amb_context_code           => l_amb_context_code
32407       ,p_entity_code                => l_entity_code
32408       ,p_event_class_code           => l_event_class_code);
32409    --
32410    -- set accounting class
32411    --
32412    xla_ae_lines_pkg.SetAcctClass(
32413            p_accounting_class_code  => 'CASH'
32414          , p_ae_header_id           => l_ae_header_id
32415          );
32416 
32417    --
32418    -- set rounding class
32419    --
32420    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32421                       'CASH';
32422 
32423    --
32424    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32425    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32426    --
32427    -- bulk performance
32428    --
32429    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32430 
32431    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32432       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32433 
32434    -- 4955764
32435    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32436       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32437 
32438    -- 4458381 Public Sector Enh
32439    
32440    --
32441    -- set accounting attributes for the line type
32442    --
32443    l_entered_amt_idx := 9;
32444    l_accted_amt_idx  := 14;
32445    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
32446    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32447    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
32448    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
32449    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
32450    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32451    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
32452    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
32453    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
32454    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
32455    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
32456    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32457    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
32458    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
32459    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
32460    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
32461    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
32462    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
32463    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
32464    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
32465    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
32466    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
32467    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
32468    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
32469    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
32470    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
32471    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
32472    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
32473    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
32474    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
32475    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
32476    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
32477    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
32478    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
32479    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
32480    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
32481    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
32482    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
32483    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
32484    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
32485    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
32486    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
32487    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
32488    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
32489    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
32490    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
32491    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
32492 
32493    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32494    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32495 
32496    ---------------------------------------------------------------------------------------------------------------
32497    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32501    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32498    ---------------------------------------------------------------------------------------------------------------
32499    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32500 
32502    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32503 
32504    IF xla_accounting_cache_pkg.GetValueChar
32505          (p_source_code         => 'LEDGER_CATEGORY_CODE'
32506          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32507    AND l_bflow_method_code = 'PRIOR_ENTRY'
32508 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32509    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32510          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32511        )
32512    THEN
32513          xla_ae_lines_pkg.BflowUpgEntry
32514            (p_business_method_code    => l_bflow_method_code
32515            ,p_business_class_code     => l_bflow_class_code
32516            ,p_balance_type            => l_balance_type_code);
32517    ELSE
32518       NULL;
32519 XLA_AE_LINES_PKG.business_flow_validation(
32520                                 p_business_method_code     => l_bflow_method_code
32521                                ,p_business_class_code      => l_bflow_class_code
32522                                ,p_inherit_description_flag => l_inherit_desc_flag);
32523    END IF;
32524 
32525    --
32526    -- call analytical criteria
32527    --
32528    
32529    --
32530    -- call description
32531    --
32532    -- No description or it is inherited.
32533    --
32534    -- call ADRs
32535    -- Bug 4922099
32536    --
32537    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32538         (NVL(l_actual_upg_option, 'N') = 'O') OR
32539         (NVL(l_enc_upg_option, 'N') = 'O')
32540       )
32541    THEN
32542    NULL;
32543    --
32544    --
32545    
32546    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
32547      p_code_combination_id      => TO_NUMBER(C_NUM)
32548    , p_value_type_code          => NULL
32549    , p_transaction_coa_id       => null
32550    , p_accounting_coa_id        => null
32551    , p_adr_code                 => NULL
32552    , p_adr_type_code            => NULL
32553    , p_component_type           => l_component_type
32554    , p_component_code           => l_component_code
32555    , p_component_type_code      => l_component_type_code
32556    , p_component_appl_id        => l_component_appl_id
32557    , p_amb_context_code         => l_amb_context_code
32558    , p_side                     => NULL
32559    );
32560 
32561    
32562   -- initialise segments
32563   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32564   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32565   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32566   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32567   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32568   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32569   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32570   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32571   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32572   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32573   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32574   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32575   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32576   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32577   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32578   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32579   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32580   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32581   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32582   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32583   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32584   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32585   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32586   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32587   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32588   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32589   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32590   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32591   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32592   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32593   --
32594 
32595    --
32596 
32597 
32598    l_segment := AcctDerRule_3(
32602          , x_transaction_coa_id       => l_adr_transaction_coa_id
32599            p_application_id           => p_application_id
32600          , p_ae_header_id             => l_ae_header_id 
32601 , p_source_13 => p_source_13
32603          , x_accounting_coa_id        => l_adr_accounting_coa_id
32604          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
32605          , x_flex_value_set_id        => l_adr_flex_value_set_id
32606          , x_value_type_code          => l_adr_value_type_code
32607          , x_value_combination_id     => l_adr_value_combination_id
32608          , x_value_segment_code       => l_adr_value_segment_code
32609          , p_side                     => 'NA'
32610          , p_override_seg_flag        => 'Y'
32611    );
32612 
32613    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
32614 
32615       xla_ae_lines_pkg.set_segment(
32616           p_to_segment_code         => 'GL_ACCOUNT'
32617         , p_segment_value           => l_segment
32618         , p_from_segment_code       => l_adr_value_segment_code
32619         , p_from_combination_id     => l_adr_value_combination_id
32620         , p_value_type_code         => l_adr_value_type_code
32621         , p_transaction_coa_id      => l_adr_transaction_coa_id
32622         , p_accounting_coa_id       => l_adr_accounting_coa_id
32623         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
32624         , p_flex_value_set_id       => l_adr_flex_value_set_id
32625         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
32626         , p_adr_type_code           => 'S'
32627         , p_component_type          => l_component_type
32628         , p_component_code          => l_component_code
32629         , p_component_type_code     => l_component_type_code
32630         , p_component_appl_id       => l_component_appl_id
32631         , p_amb_context_code        => l_amb_context_code
32632         , p_entity_code             => 'AP_PAYMENTS'
32633         , p_event_class_code        => 'REFUNDS'
32634         , p_side                    => 'NA'
32635         );
32636 
32637   END IF;
32638 
32639    --
32640    --
32641    END IF;
32642    --
32643    -- Bug 4922099
32644    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32645           (NVL(l_enc_upg_option, 'N') = 'O')
32646         ) AND
32647         (l_bflow_method_code = 'PRIOR_ENTRY')
32648       )
32649    THEN
32650       IF
32651       --
32652       1 = 2
32653       --
32654       THEN
32655       xla_accounting_err_pkg.build_message
32656                                     (p_appli_s_name            => 'XLA'
32657                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32658                                     ,p_token_1                 => 'LINE_NUMBER'
32659                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
32660                                     ,p_token_2                 => 'LINE_TYPE_NAME'
32661                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
32662                                                                              l_component_type
32663                                                                             ,l_component_code
32664                                                                             ,l_component_type_code
32665                                                                             ,l_component_appl_id
32666                                                                             ,l_amb_context_code
32667                                                                             ,l_entity_code
32668                                                                             ,l_event_class_code
32669                                                                            )
32670                                     ,p_token_3                 => 'OWNER'
32671                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
32672                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
32673                                                                           ,p_lookup_code    => l_component_type_code
32674                                                                          )
32675                                     ,p_token_4                 => 'PRODUCT_NAME'
32676                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32677                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32678                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32679                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32680                                     ,p_ae_header_id            =>  NULL
32681                                        );
32682 
32683         IF (C_LEVEL_ERROR>= g_log_level) THEN
32684                  trace
32685                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32686                       ,p_level    => C_LEVEL_ERROR
32687                       ,p_module   => l_log_module);
32688         END IF;
32689       END IF;
32690    END IF;
32691    --
32692    --
32693    ------------------------------------------------------------------------------------------------
32694    -- 4219869 Business Flow
32695    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32696    -- Prior Entry.  Currently, the following code is always generated.
32700    ------------------------------------------------------------------------------------
32697    ------------------------------------------------------------------------------------------------
32698    XLA_AE_LINES_PKG.ValidateCurrentLine;
32699 
32701    -- 4219869 Business Flow
32702    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32703    ------------------------------------------------------------------------------------
32704    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32705 
32706    ----------------------------------------------------------------------------------
32707    -- 4219869 Business Flow
32708    -- Update journal entry status -- Need to generate this within IF <condition>
32709    ----------------------------------------------------------------------------------
32710    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32711          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32712          ,p_balance_type_code => l_balance_type_code
32713          );
32714 
32715    -------------------------------------------------------------------------------------------
32716    -- 4262811 - Generate the Accrual Reversal lines
32717    -------------------------------------------------------------------------------------------
32718    BEGIN
32719       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32720                               (g_array_event(p_event_id).array_value_num('header_index'));
32721       IF l_acc_rev_flag IS NULL THEN
32722          l_acc_rev_flag := 'N';
32723       END IF;
32724    EXCEPTION
32725       WHEN OTHERS THEN
32726          l_acc_rev_flag := 'N';
32727    END;
32728    --
32729    IF (l_acc_rev_flag = 'Y') THEN
32730 
32731        -- 4645092  ------------------------------------------------------------------------------
32732        -- To allow MPA report to determine if it should generate report process
32733        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32734        ------------------------------------------------------------------------------------------
32735 
32736        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32737        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32738    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
32739    -- call ADRs
32740    -- Bug 4922099
32741    --
32742    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32743         (NVL(l_actual_upg_option, 'N') = 'O') OR
32744         (NVL(l_enc_upg_option, 'N') = 'O')
32745       )
32746    THEN
32747    NULL;
32748    --
32749    --
32750    
32751    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
32752      p_code_combination_id      => TO_NUMBER(C_NUM)
32753    , p_value_type_code          => NULL
32754    , p_transaction_coa_id       => null
32755    , p_accounting_coa_id        => null
32756    , p_adr_code                 => NULL
32757    , p_adr_type_code            => NULL
32758    , p_component_type           => l_component_type
32759    , p_component_code           => l_component_code
32760    , p_component_type_code      => l_component_type_code
32761    , p_component_appl_id        => l_component_appl_id
32762    , p_amb_context_code         => l_amb_context_code
32763    , p_side                     => NULL
32764    );
32765 
32766    
32767   -- initialise segments
32768   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32769   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32770   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32771   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32772   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32773   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32774   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32775   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32776   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32777   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32778   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32779   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32780   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32781   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32782   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32783   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32784   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32785   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32786   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32787   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32788   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32789   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32790   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32791   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32792   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32796   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32793   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32794   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32795   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32797   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32798   --
32799 
32800    --
32801 
32802 
32803    l_segment := AcctDerRule_3(
32804            p_application_id           => p_application_id
32805          , p_ae_header_id             => l_ae_header_id 
32806 , p_source_13 => p_source_13
32807          , x_transaction_coa_id       => l_adr_transaction_coa_id
32808          , x_accounting_coa_id        => l_adr_accounting_coa_id
32809          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
32810          , x_flex_value_set_id        => l_adr_flex_value_set_id
32811          , x_value_type_code          => l_adr_value_type_code
32812          , x_value_combination_id     => l_adr_value_combination_id
32813          , x_value_segment_code       => l_adr_value_segment_code
32814          , p_side                     => 'NA'
32815          , p_override_seg_flag        => 'Y'
32816    );
32817 
32818    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
32819 
32820       xla_ae_lines_pkg.set_segment(
32821           p_to_segment_code         => 'GL_ACCOUNT'
32822         , p_segment_value           => l_segment
32823         , p_from_segment_code       => l_adr_value_segment_code
32824         , p_from_combination_id     => l_adr_value_combination_id
32825         , p_value_type_code         => l_adr_value_type_code
32826         , p_transaction_coa_id      => l_adr_transaction_coa_id
32827         , p_accounting_coa_id       => l_adr_accounting_coa_id
32828         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
32829         , p_flex_value_set_id       => l_adr_flex_value_set_id
32830         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
32831         , p_adr_type_code           => 'S'
32832         , p_component_type          => l_component_type
32833         , p_component_code          => l_component_code
32834         , p_component_type_code     => l_component_type_code
32835         , p_component_appl_id       => l_component_appl_id
32836         , p_amb_context_code        => l_amb_context_code
32837         , p_entity_code             => 'AP_PAYMENTS'
32838         , p_event_class_code        => 'REFUNDS'
32839         , p_side                    => 'NA'
32840         );
32841 
32842   END IF;
32843 
32844    --
32845    --
32846    END IF;
32847 
32848        --
32849        -- Update the line information that should be overwritten
32850        --
32851        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32852                                          p_header_num   => 1);
32853        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
32854 
32855        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32856 
32857        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
32858           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32859        END IF;
32860 
32861       --
32862       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32863       --
32864       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32865           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
32866       ELSE
32867           ---------------------------------------------------------------------------------------------------
32868           -- 4262811a Switch Sign
32869           ---------------------------------------------------------------------------------------------------
32870           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
32871           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32872                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32873           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32874                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32875           -- 5132302
32876           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32877                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32878 
32879       END IF;
32880 
32881       -- 4955764
32882       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32883       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32884 
32885 
32886       XLA_AE_LINES_PKG.ValidateCurrentLine;
32887       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32888 
32889       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32890                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32891                ,p_balance_type_code => l_balance_type_code);
32892 
32893    END IF;
32894 
32898      -- No MPA option is assigned.
32895    -----------------------------------------------------------------------------------------
32896    -- 4262811 Multiperiod Accounting
32897    -----------------------------------------------------------------------------------------
32899 
32900 
32901 END IF;
32902 END IF;
32903 --
32904 
32905 --
32906 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32907    trace
32908       (p_msg      => 'END of AcctLineType_75'
32909       ,p_level    => C_LEVEL_PROCEDURE
32910       ,p_module   => l_log_module);
32911 END IF;
32912 --
32913 EXCEPTION
32914   WHEN xla_exceptions_pkg.application_exception THEN
32915       RAISE;
32916   WHEN OTHERS THEN
32917        xla_exceptions_pkg.raise_message
32918            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_75');
32919 END AcctLineType_75;
32920 --
32921 
32922 ---------------------------------------
32923 --
32924 -- PRIVATE FUNCTION
32925 --         AcctLineType_76
32926 --
32927 ---------------------------------------
32928 PROCEDURE AcctLineType_76 (
32929   p_application_id        IN NUMBER
32930  ,p_event_id              IN NUMBER
32931  ,p_calculate_acctd_flag  IN VARCHAR2
32932  ,p_calculate_g_l_flag    IN VARCHAR2
32933  ,p_actual_flag           IN OUT VARCHAR2
32934  ,p_balance_type_code     OUT VARCHAR2
32935  ,p_gain_or_loss_ref      OUT VARCHAR2
32936  
32937 --Payment Currency Code
32938  , p_source_12            IN VARCHAR2
32939 --Bank Cash Account
32940  , p_source_13            IN NUMBER
32941 --Automatic Offsets Value
32942  , p_source_16            IN VARCHAR2
32943  , p_source_16_meaning    IN VARCHAR2
32944 --Payment Distribution (Payment Rate) Ledger Amount
32945  , p_source_21            IN NUMBER
32946 --When to Account for Payment Option
32947  , p_source_50            IN VARCHAR2
32948 --Payment Distribution Type
32949  , p_source_51            IN VARCHAR2
32950  , p_source_51_meaning    IN VARCHAR2
32951 --Accounting Reversal Indicator
32952  , p_source_52            IN VARCHAR2
32953 --Payment Distribution Amount
32954  , p_source_53            IN NUMBER
32955 --Business Flow Accounts Payable Application Identifier
32956  , p_source_54            IN NUMBER
32957 --Payment Distribution Identifier
32958  , p_source_59            IN NUMBER
32959 --Distribution Link Type
32960  , p_source_60            IN VARCHAR2
32961 --Override Accounted Amount Indicator
32962  , p_source_64            IN VARCHAR2
32963  , p_source_64_meaning    IN VARCHAR2
32964 --Payment Supplier Identifier
32965  , p_source_65            IN NUMBER
32966 --Payment Supplier Site Identifier
32967  , p_source_66            IN NUMBER
32968 --Third Party Type
32969  , p_source_67            IN VARCHAR2
32970 --Payment Distribution Reversed Identifier
32971  , p_source_68            IN NUMBER
32972 --Invoice Distribution Tax Line Identifier
32973  , p_source_69            IN NUMBER
32974 --Invoice Distribution Summary Tax Line Identifier
32975  , p_source_70            IN NUMBER
32976 --Payment Type
32977  , p_source_71            IN VARCHAR2
32978  , p_source_71_meaning    IN VARCHAR2
32979 --Business Flow Invoice Distribution Type
32980  , p_source_73            IN VARCHAR2
32981 --Business Flow Invoice Entity Code
32982  , p_source_74            IN VARCHAR2
32983 --Business Flow Invoice Distribution Identifier
32984  , p_source_75            IN NUMBER
32985 --Business Flow Invoice Identifier
32986  , p_source_76            IN NUMBER
32987 --Invoice Distribution Tax Distribution Identifier from Tax
32988  , p_source_77            IN NUMBER
32989 --Pooled Bank Account Option
32990  , p_source_117            IN VARCHAR2
32991  , p_source_117_meaning    IN VARCHAR2
32992 --Payment Maturity Date
32993  , p_source_118            IN DATE
32994 --Payment Exchange Date
32995  , p_source_121            IN DATE
32996 --Payment Exchange Rate
32997  , p_source_122            IN NUMBER
32998 --Payment Exchange Rate Type
32999  , p_source_123            IN VARCHAR2
33000 )
33001 IS
33002 
33003 l_component_type              VARCHAR2(80);
33004 l_component_code              VARCHAR2(30);
33005 l_component_type_code         VARCHAR2(1);
33006 l_component_appl_id           INTEGER;
33007 l_amb_context_code            VARCHAR2(30);
33008 l_entity_code                 VARCHAR2(30);
33009 l_event_class_code            VARCHAR2(30);
33010 l_ae_header_id                NUMBER;
33011 l_event_type_code             VARCHAR2(30);
33012 l_line_definition_code        VARCHAR2(30);
33013 l_line_definition_owner_code  VARCHAR2(1);
33014 --
33015 -- adr variables
33016 l_segment                     VARCHAR2(30);
33017 l_ccid                        NUMBER;
33018 l_adr_transaction_coa_id      NUMBER;
33019 l_adr_accounting_coa_id       NUMBER;
33020 l_adr_flexfield_segment_code  VARCHAR2(30);
33021 l_adr_flex_value_set_id       NUMBER;
33022 l_adr_value_type_code         VARCHAR2(30);
33023 l_adr_value_combination_id    NUMBER;
33024 l_adr_value_segment_code      VARCHAR2(30);
33025 
33026 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
33027 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
33028 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
33029 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
33030 
33034 l_acc_rev_flag                VARCHAR2(1);
33031 -- 4262811 Variables ------------------------------------------------------------------------------------------
33032 l_entered_amt_idx             NUMBER;
33033 l_accted_amt_idx              NUMBER;
33035 l_accrual_line_num            NUMBER;
33036 l_tmp_amt                     NUMBER;
33037 l_acc_rev_natural_side_code   VARCHAR2(1);
33038 
33039 l_num_entries                 NUMBER;
33040 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
33041 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
33042 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
33043 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
33044 l_recog_line_1                NUMBER;
33045 l_recog_line_2                NUMBER;
33046 
33047 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
33048 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
33049 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
33050 
33051 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33052 
33053 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
33054 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
33055 
33056 ---------------------------------------------------------------------------------------------------------------
33057 
33058 
33059 --
33060 -- bulk performance
33061 --
33062 l_balance_type_code           VARCHAR2(1);
33063 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
33064 l_log_module                  VARCHAR2(240);
33065 
33066 --
33067 -- Upgrade strategy
33068 --
33069 l_actual_upg_option           VARCHAR2(1);
33070 l_enc_upg_option           VARCHAR2(1);
33071 
33072 --
33073 BEGIN
33074 --
33075 IF g_log_enabled THEN
33076       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
33077 END IF;
33078 --
33079 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33080 
33081       trace
33082          (p_msg      => 'BEGIN of AcctLineType_76'
33083          ,p_level    => C_LEVEL_PROCEDURE
33084          ,p_module   => l_log_module);
33085 
33086 END IF;
33087 --
33088 l_component_type             := 'AMB_JLT';
33089 l_component_code             := 'AP_CASH_REF_AOS_BS';
33090 l_component_type_code        := 'S';
33091 l_component_appl_id          :=  200;
33092 l_amb_context_code           := 'DEFAULT';
33093 l_entity_code                := 'AP_PAYMENTS';
33094 l_event_class_code           := 'REFUNDS';
33095 l_event_type_code            := 'REFUNDS_ALL';
33096 l_line_definition_owner_code := 'S';
33097 l_line_definition_code       := 'CASH_REFUNDS_ALL';
33098 --
33099 l_balance_type_code          := 'A';
33100 l_segment                     := NULL;
33101 l_ccid                        := NULL;
33102 l_adr_transaction_coa_id      := NULL;
33103 l_adr_accounting_coa_id       := NULL;
33104 l_adr_flexfield_segment_code  := NULL;
33105 l_adr_flex_value_set_id       := NULL;
33106 l_adr_value_type_code         := NULL;
33107 l_adr_value_combination_id    := NULL;
33108 l_adr_value_segment_code      := NULL;
33109 
33110 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
33111 l_bflow_class_code           := '';    -- 4219869 Business Flow
33112 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
33113 l_budgetary_control_flag     := 'N';
33114 
33115 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
33116 l_bflow_applied_to_amt       := NULL; -- 5132302
33117 l_entered_amt_idx            := NULL;          -- 4262811
33118 l_accted_amt_idx             := NULL;          -- 4262811
33119 l_acc_rev_flag               := NULL;          -- 4262811
33120 l_accrual_line_num           := NULL;          -- 4262811
33121 l_tmp_amt                    := NULL;          -- 4262811
33122 --
33123  
33124 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33125     l_balance_type_code <> 'B' THEN
33126 IF NVL(p_source_50,'
33127 ') =  'ISSUE_ISSUE' AND 
33128 (NVL(p_source_117,'
33129 ') =  'Y' AND 
33130 NVL(p_source_16,'
33131 ') =  'BALANCING_SEGMENT') AND 
33132 p_source_118 IS NULL AND 
33133 NVL(p_source_51,'
33134 ') =  'CASH' AND 
33135 NVL(p_source_71,'
33136 ') =  'R'
33137  THEN 
33138 
33139    --
33140    XLA_AE_LINES_PKG.SetNewLine;
33141 
33142    p_balance_type_code          := l_balance_type_code;
33143    -- set the flag so later we will know whether the gain loss line needs to be created
33144    
33145    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33146      p_actual_flag :='A';
33147    END IF;
33148 
33149    --
33150    -- bulk performance
33151    --
33152    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33153                                       p_header_num   => 0); -- 4262811
33154    --
33155    -- set accounting line options
33156    --
33157    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33158            p_natural_side_code          => 'C'
33159          , p_gain_or_loss_flag          => 'N'
33160          , p_gl_transfer_mode_code      => 'S'
33161          , p_acct_entry_type_code       => 'A'
33162          , p_switch_side_flag           => 'Y'
33163          , p_merge_duplicate_code       => 'A'
33164          );
33168    --
33165    --
33166    l_acc_rev_natural_side_code := 'D';  -- 4262811
33167    -- 
33169    -- set accounting line type info
33170    --
33171    xla_ae_lines_pkg.SetAcctLineType
33172       (p_component_type             => l_component_type
33173       ,p_event_type_code            => l_event_type_code
33174       ,p_line_definition_owner_code => l_line_definition_owner_code
33175       ,p_line_definition_code       => l_line_definition_code
33176       ,p_accounting_line_code       => l_component_code
33177       ,p_accounting_line_type_code  => l_component_type_code
33178       ,p_accounting_line_appl_id    => l_component_appl_id
33179       ,p_amb_context_code           => l_amb_context_code
33180       ,p_entity_code                => l_entity_code
33181       ,p_event_class_code           => l_event_class_code);
33182    --
33183    -- set accounting class
33184    --
33185    xla_ae_lines_pkg.SetAcctClass(
33186            p_accounting_class_code  => 'CASH'
33187          , p_ae_header_id           => l_ae_header_id
33188          );
33189 
33190    --
33191    -- set rounding class
33192    --
33193    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33194                       'CASH';
33195 
33196    --
33197    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33198    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33199    --
33200    -- bulk performance
33201    --
33202    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33203 
33204    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33205       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33206 
33207    -- 4955764
33208    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33209       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33210 
33211    -- 4458381 Public Sector Enh
33212    
33213    --
33214    -- set accounting attributes for the line type
33215    --
33216    l_entered_amt_idx := 9;
33217    l_accted_amt_idx  := 14;
33218    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
33219    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33220    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
33221    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33222    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
33223    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33224    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
33225    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33226    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
33227    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33228    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
33229    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33230    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
33231    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
33232    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
33233    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
33234    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
33235    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
33236    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
33237    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
33238    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
33239    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
33240    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
33241    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
33242    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
33243    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
33244    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
33245    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
33246    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
33247    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
33248    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
33249    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33250    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
33251    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33252    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
33253    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33254    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
33255    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
33256    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
33257    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
33258    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
33259    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
33260    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
33261    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
33262    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
33263    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
33264    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
33265 
33266    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33267    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33268 
33272    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33269    ---------------------------------------------------------------------------------------------------------------
33270    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33271    ---------------------------------------------------------------------------------------------------------------
33273 
33274    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33275    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33276 
33277    IF xla_accounting_cache_pkg.GetValueChar
33278          (p_source_code         => 'LEDGER_CATEGORY_CODE'
33279          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33280    AND l_bflow_method_code = 'PRIOR_ENTRY'
33281 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33282    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33283          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33284        )
33285    THEN
33286          xla_ae_lines_pkg.BflowUpgEntry
33287            (p_business_method_code    => l_bflow_method_code
33288            ,p_business_class_code     => l_bflow_class_code
33289            ,p_balance_type            => l_balance_type_code);
33290    ELSE
33291       NULL;
33292 XLA_AE_LINES_PKG.business_flow_validation(
33293                                 p_business_method_code     => l_bflow_method_code
33294                                ,p_business_class_code      => l_bflow_class_code
33295                                ,p_inherit_description_flag => l_inherit_desc_flag);
33296    END IF;
33297 
33298    --
33299    -- call analytical criteria
33300    --
33301    
33302    --
33303    -- call description
33304    --
33305    -- No description or it is inherited.
33306    --
33307    -- call ADRs
33308    -- Bug 4922099
33309    --
33310    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33311         (NVL(l_actual_upg_option, 'N') = 'O') OR
33312         (NVL(l_enc_upg_option, 'N') = 'O')
33313       )
33314    THEN
33315    NULL;
33316    --
33317    --
33318    
33319   l_ccid := AcctDerRule_22(
33320            p_application_id           => p_application_id
33321          , p_ae_header_id             => l_ae_header_id 
33322 , p_source_13 => p_source_13
33323          , x_transaction_coa_id       => l_adr_transaction_coa_id
33324          , x_accounting_coa_id        => l_adr_accounting_coa_id
33325          , x_value_type_code          => l_adr_value_type_code
33326          , p_side                     => 'NA'
33327    );
33328 
33329    xla_ae_lines_pkg.set_ccid(
33330     p_code_combination_id          => l_ccid
33331   , p_value_type_code              => l_adr_value_type_code
33332   , p_transaction_coa_id           => l_adr_transaction_coa_id
33333   , p_accounting_coa_id            => l_adr_accounting_coa_id
33334   , p_adr_code                     => 'AP_CASH'
33335   , p_adr_type_code                => 'S'
33336   , p_component_type               => l_component_type
33337   , p_component_code               => l_component_code
33338   , p_component_type_code          => l_component_type_code
33339   , p_component_appl_id            => l_component_appl_id
33340   , p_amb_context_code             => l_amb_context_code
33341   , p_side                         => 'NA'
33342   );
33343 
33344 
33345    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
33346      p_to_segment_code         => 'GL_BALANCING'
33347    , p_segment_value           => C_CHAR
33348    , p_from_segment_code       => NULL
33349    , p_from_combination_id     => NULL
33350    , p_value_type_code         => NULL
33351    , p_transaction_coa_id      => null
33352    , p_accounting_coa_id       => null
33353    , p_flexfield_segment_code  => NULL
33354    , p_flex_value_set_id       => NULL
33355    , p_adr_code                => NULL
33356    , p_adr_type_code           => NULL
33357    , p_component_type          => l_component_type
33358    , p_component_code          => l_component_code
33359    , p_component_type_code     => l_component_type_code
33360    , p_component_appl_id       => l_component_appl_id
33361    , p_amb_context_code        => l_amb_context_code
33362    , p_entity_code             => 'AP_PAYMENTS'
33363    , p_event_class_code        => 'REFUNDS'
33364    , p_side                    => 'NA'
33365    );
33366    --
33367 
33368 
33369    --
33370    --
33371    END IF;
33372    --
33373    -- Bug 4922099
33374    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33375           (NVL(l_enc_upg_option, 'N') = 'O')
33376         ) AND
33377         (l_bflow_method_code = 'PRIOR_ENTRY')
33378       )
33379    THEN
33380       IF
33381       --
33382       1 = 2
33383       --
33384       THEN
33385       xla_accounting_err_pkg.build_message
33386                                     (p_appli_s_name            => 'XLA'
33387                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33388                                     ,p_token_1                 => 'LINE_NUMBER'
33389                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
33390                                     ,p_token_2                 => 'LINE_TYPE_NAME'
33391                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
33395                                                                             ,l_component_appl_id
33392                                                                              l_component_type
33393                                                                             ,l_component_code
33394                                                                             ,l_component_type_code
33396                                                                             ,l_amb_context_code
33397                                                                             ,l_entity_code
33398                                                                             ,l_event_class_code
33399                                                                            )
33400                                     ,p_token_3                 => 'OWNER'
33401                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
33402                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
33403                                                                           ,p_lookup_code    => l_component_type_code
33404                                                                          )
33405                                     ,p_token_4                 => 'PRODUCT_NAME'
33406                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33407                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33408                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33409                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33410                                     ,p_ae_header_id            =>  NULL
33411                                        );
33412 
33413         IF (C_LEVEL_ERROR>= g_log_level) THEN
33414                  trace
33415                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33416                       ,p_level    => C_LEVEL_ERROR
33417                       ,p_module   => l_log_module);
33418         END IF;
33419       END IF;
33420    END IF;
33421    --
33422    --
33423    ------------------------------------------------------------------------------------------------
33424    -- 4219869 Business Flow
33425    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33426    -- Prior Entry.  Currently, the following code is always generated.
33427    ------------------------------------------------------------------------------------------------
33428    XLA_AE_LINES_PKG.ValidateCurrentLine;
33429 
33430    ------------------------------------------------------------------------------------
33431    -- 4219869 Business Flow
33432    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33433    ------------------------------------------------------------------------------------
33434    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33435 
33436    ----------------------------------------------------------------------------------
33437    -- 4219869 Business Flow
33438    -- Update journal entry status -- Need to generate this within IF <condition>
33439    ----------------------------------------------------------------------------------
33440    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33441          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33442          ,p_balance_type_code => l_balance_type_code
33443          );
33444 
33445    -------------------------------------------------------------------------------------------
33446    -- 4262811 - Generate the Accrual Reversal lines
33447    -------------------------------------------------------------------------------------------
33448    BEGIN
33449       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33450                               (g_array_event(p_event_id).array_value_num('header_index'));
33451       IF l_acc_rev_flag IS NULL THEN
33452          l_acc_rev_flag := 'N';
33453       END IF;
33454    EXCEPTION
33455       WHEN OTHERS THEN
33456          l_acc_rev_flag := 'N';
33457    END;
33458    --
33459    IF (l_acc_rev_flag = 'Y') THEN
33460 
33461        -- 4645092  ------------------------------------------------------------------------------
33462        -- To allow MPA report to determine if it should generate report process
33463        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33464        ------------------------------------------------------------------------------------------
33465 
33466        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33467        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33468    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
33469    -- call ADRs
33470    -- Bug 4922099
33471    --
33472    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33473         (NVL(l_actual_upg_option, 'N') = 'O') OR
33474         (NVL(l_enc_upg_option, 'N') = 'O')
33475       )
33476    THEN
33477    NULL;
33478    --
33479    --
33480    
33481   l_ccid := AcctDerRule_22(
33482            p_application_id           => p_application_id
33483          , p_ae_header_id             => l_ae_header_id 
33484 , p_source_13 => p_source_13
33485          , x_transaction_coa_id       => l_adr_transaction_coa_id
33486          , x_accounting_coa_id        => l_adr_accounting_coa_id
33490 
33487          , x_value_type_code          => l_adr_value_type_code
33488          , p_side                     => 'NA'
33489    );
33491    xla_ae_lines_pkg.set_ccid(
33492     p_code_combination_id          => l_ccid
33493   , p_value_type_code              => l_adr_value_type_code
33494   , p_transaction_coa_id           => l_adr_transaction_coa_id
33495   , p_accounting_coa_id            => l_adr_accounting_coa_id
33496   , p_adr_code                     => 'AP_CASH'
33497   , p_adr_type_code                => 'S'
33498   , p_component_type               => l_component_type
33499   , p_component_code               => l_component_code
33500   , p_component_type_code          => l_component_type_code
33501   , p_component_appl_id            => l_component_appl_id
33502   , p_amb_context_code             => l_amb_context_code
33503   , p_side                         => 'NA'
33504   );
33505 
33506 
33507    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
33508      p_to_segment_code         => 'GL_BALANCING'
33509    , p_segment_value           => C_CHAR
33510    , p_from_segment_code       => NULL
33511    , p_from_combination_id     => NULL
33512    , p_value_type_code         => NULL
33513    , p_transaction_coa_id      => null
33514    , p_accounting_coa_id       => null
33515    , p_flexfield_segment_code  => NULL
33516    , p_flex_value_set_id       => NULL
33517    , p_adr_code                => NULL
33518    , p_adr_type_code           => NULL
33519    , p_component_type          => l_component_type
33520    , p_component_code          => l_component_code
33521    , p_component_type_code     => l_component_type_code
33522    , p_component_appl_id       => l_component_appl_id
33523    , p_amb_context_code        => l_amb_context_code
33524    , p_entity_code             => 'AP_PAYMENTS'
33525    , p_event_class_code        => 'REFUNDS'
33526    , p_side                    => 'NA'
33527    );
33528    --
33529 
33530 
33531    --
33532    --
33533    END IF;
33534 
33535        --
33536        -- Update the line information that should be overwritten
33537        --
33538        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33539                                          p_header_num   => 1);
33540        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
33541 
33542        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33543 
33544        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
33545           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33546        END IF;
33547 
33548       --
33549       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33550       --
33551       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33552           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
33553       ELSE
33554           ---------------------------------------------------------------------------------------------------
33555           -- 4262811a Switch Sign
33556           ---------------------------------------------------------------------------------------------------
33557           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
33558           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33559                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33560           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33561                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33562           -- 5132302
33563           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33564                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33565 
33566       END IF;
33567 
33568       -- 4955764
33569       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33570       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33571 
33572 
33573       XLA_AE_LINES_PKG.ValidateCurrentLine;
33574       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33575 
33576       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33577                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33578                ,p_balance_type_code => l_balance_type_code);
33579 
33580    END IF;
33581 
33582    -----------------------------------------------------------------------------------------
33583    -- 4262811 Multiperiod Accounting
33584    -----------------------------------------------------------------------------------------
33585      -- No MPA option is assigned.
33586 
33587 
33588 END IF;
33589 END IF;
33590 --
33591 
33592 --
33593 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33594    trace
33595       (p_msg      => 'END of AcctLineType_76'
33596       ,p_level    => C_LEVEL_PROCEDURE
33597       ,p_module   => l_log_module);
33598 END IF;
33599 --
33600 EXCEPTION
33601   WHEN xla_exceptions_pkg.application_exception THEN
33602       RAISE;
33606 END AcctLineType_76;
33603   WHEN OTHERS THEN
33604        xla_exceptions_pkg.raise_message
33605            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_76');
33607 --
33608 
33609 ---------------------------------------
33610 --
33611 -- PRIVATE FUNCTION
33612 --         AcctLineType_77
33613 --
33614 ---------------------------------------
33615 PROCEDURE AcctLineType_77 (
33616   p_application_id        IN NUMBER
33617  ,p_event_id              IN NUMBER
33618  ,p_calculate_acctd_flag  IN VARCHAR2
33619  ,p_calculate_g_l_flag    IN VARCHAR2
33620  ,p_actual_flag           IN OUT VARCHAR2
33621  ,p_balance_type_code     OUT VARCHAR2
33622  ,p_gain_or_loss_ref      OUT VARCHAR2
33623  
33624 --Payment Currency Code
33625  , p_source_12            IN VARCHAR2
33626 --System Discount Account
33627  , p_source_14            IN NUMBER
33628 --Discount Distribution Method
33629  , p_source_15            IN VARCHAR2
33630  , p_source_15_meaning    IN VARCHAR2
33631 --Automatic Offsets Value
33632  , p_source_16            IN VARCHAR2
33633  , p_source_16_meaning    IN VARCHAR2
33634 --Payment Distribution (Payment Rate) Ledger Amount
33635  , p_source_21            IN NUMBER
33636 --Invoice Distribution Account
33637  , p_source_29            IN NUMBER
33638 --Invoice Distribution Type
33639  , p_source_32            IN VARCHAR2
33640  , p_source_32_meaning    IN VARCHAR2
33641 --Discount Account
33642  , p_source_39            IN NUMBER
33643 --Purchase Order Charge Account
33644  , p_source_40            IN NUMBER
33645 --Purchase Order Variance Account
33646  , p_source_41            IN NUMBER
33647 --When to Account for Payment Option
33648  , p_source_50            IN VARCHAR2
33649 --Payment Distribution Type
33650  , p_source_51            IN VARCHAR2
33651  , p_source_51_meaning    IN VARCHAR2
33652 --Accounting Reversal Indicator
33653  , p_source_52            IN VARCHAR2
33654 --Payment Distribution Amount
33655  , p_source_53            IN NUMBER
33656 --Business Flow Accounts Payable Application Identifier
33657  , p_source_54            IN NUMBER
33658 --Business Flow Payment Distribution Type
33659  , p_source_55            IN VARCHAR2
33660 --Business Flow Payment Entity Code
33661  , p_source_56            IN VARCHAR2
33662 --Business Flow Payment Distribution Identifier
33663  , p_source_57            IN NUMBER
33664 --Business Flow Payment Identifier
33665  , p_source_58            IN NUMBER
33666 --Payment Distribution Identifier
33667  , p_source_59            IN NUMBER
33668 --Distribution Link Type
33669  , p_source_60            IN VARCHAR2
33670 --Override Accounted Amount Indicator
33671  , p_source_64            IN VARCHAR2
33672  , p_source_64_meaning    IN VARCHAR2
33673 --Payment Supplier Identifier
33674  , p_source_65            IN NUMBER
33675 --Payment Supplier Site Identifier
33676  , p_source_66            IN NUMBER
33677 --Third Party Type
33678  , p_source_67            IN VARCHAR2
33679 --Payment Distribution Reversed Identifier
33680  , p_source_68            IN NUMBER
33681 --Invoice Distribution Tax Line Identifier
33682  , p_source_69            IN NUMBER
33683 --Invoice Distribution Summary Tax Line Identifier
33684  , p_source_70            IN NUMBER
33685 --Payment Exchange Date
33686  , p_source_121            IN DATE
33687 --Payment Exchange Rate
33688  , p_source_122            IN NUMBER
33689 --Payment Exchange Rate Type
33690  , p_source_123            IN VARCHAR2
33691 )
33692 IS
33693 
33694 l_component_type              VARCHAR2(80);
33695 l_component_code              VARCHAR2(30);
33696 l_component_type_code         VARCHAR2(1);
33697 l_component_appl_id           INTEGER;
33698 l_amb_context_code            VARCHAR2(30);
33699 l_entity_code                 VARCHAR2(30);
33700 l_event_class_code            VARCHAR2(30);
33701 l_ae_header_id                NUMBER;
33702 l_event_type_code             VARCHAR2(30);
33703 l_line_definition_code        VARCHAR2(30);
33704 l_line_definition_owner_code  VARCHAR2(1);
33705 --
33706 -- adr variables
33707 l_segment                     VARCHAR2(30);
33708 l_ccid                        NUMBER;
33709 l_adr_transaction_coa_id      NUMBER;
33710 l_adr_accounting_coa_id       NUMBER;
33711 l_adr_flexfield_segment_code  VARCHAR2(30);
33712 l_adr_flex_value_set_id       NUMBER;
33713 l_adr_value_type_code         VARCHAR2(30);
33714 l_adr_value_combination_id    NUMBER;
33715 l_adr_value_segment_code      VARCHAR2(30);
33716 
33717 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
33718 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
33719 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
33720 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
33721 
33722 -- 4262811 Variables ------------------------------------------------------------------------------------------
33723 l_entered_amt_idx             NUMBER;
33724 l_accted_amt_idx              NUMBER;
33725 l_acc_rev_flag                VARCHAR2(1);
33726 l_accrual_line_num            NUMBER;
33727 l_tmp_amt                     NUMBER;
33728 l_acc_rev_natural_side_code   VARCHAR2(1);
33729 
33730 l_num_entries                 NUMBER;
33731 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
33732 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
33733 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
33737 
33734 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
33735 l_recog_line_1                NUMBER;
33736 l_recog_line_2                NUMBER;
33738 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
33739 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
33740 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
33741 
33742 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33743 
33744 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
33745 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
33746 
33747 ---------------------------------------------------------------------------------------------------------------
33748 
33749 
33750 --
33751 -- bulk performance
33752 --
33753 l_balance_type_code           VARCHAR2(1);
33754 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
33755 l_log_module                  VARCHAR2(240);
33756 
33757 --
33758 -- Upgrade strategy
33759 --
33760 l_actual_upg_option           VARCHAR2(1);
33761 l_enc_upg_option           VARCHAR2(1);
33762 
33763 --
33764 BEGIN
33765 --
33766 IF g_log_enabled THEN
33767       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
33768 END IF;
33769 --
33770 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33771 
33772       trace
33773          (p_msg      => 'BEGIN of AcctLineType_77'
33774          ,p_level    => C_LEVEL_PROCEDURE
33775          ,p_module   => l_log_module);
33776 
33777 END IF;
33778 --
33779 l_component_type             := 'AMB_JLT';
33780 l_component_code             := 'AP_DISCOUNT_CASH_CLEAR';
33781 l_component_type_code        := 'S';
33782 l_component_appl_id          :=  200;
33783 l_amb_context_code           := 'DEFAULT';
33784 l_entity_code                := 'AP_PAYMENTS';
33785 l_event_class_code           := 'RECONCILED PAYMENTS';
33786 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
33787 l_line_definition_owner_code := 'S';
33788 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
33789 --
33790 l_balance_type_code          := 'A';
33791 l_segment                     := NULL;
33792 l_ccid                        := NULL;
33793 l_adr_transaction_coa_id      := NULL;
33794 l_adr_accounting_coa_id       := NULL;
33795 l_adr_flexfield_segment_code  := NULL;
33796 l_adr_flex_value_set_id       := NULL;
33797 l_adr_value_type_code         := NULL;
33798 l_adr_value_combination_id    := NULL;
33799 l_adr_value_segment_code      := NULL;
33800 
33801 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
33802 l_bflow_class_code           := '';    -- 4219869 Business Flow
33803 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
33804 l_budgetary_control_flag     := 'N';
33805 
33806 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
33807 l_bflow_applied_to_amt       := NULL; -- 5132302
33808 l_entered_amt_idx            := NULL;          -- 4262811
33809 l_accted_amt_idx             := NULL;          -- 4262811
33810 l_acc_rev_flag               := NULL;          -- 4262811
33811 l_accrual_line_num           := NULL;          -- 4262811
33812 l_tmp_amt                    := NULL;          -- 4262811
33813 --
33814  
33815 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33816     l_balance_type_code <> 'B' THEN
33817 IF NVL(p_source_50,'
33818 ') =  'CLEAR_CLEAR' AND 
33819 NVL(p_source_51,'
33820 ') =  'DISCOUNT' AND 
33821 (NVL(p_source_32,'
33822 ') =  'ITEM' OR 
33823 NVL(p_source_32,'
33824 ') =  'MISCELLANEOUS' OR 
33825 NVL(p_source_32,'
33826 ') =  'FREIGHT' OR 
33827 NVL(p_source_32,'
33828 ') =  'REC_TAX' OR 
33829 NVL(p_source_32,'
33830 ') =  'NONREC_TAX' OR 
33831 NVL(p_source_32,'
33832 ') =  'TIPV' OR 
33833 NVL(p_source_32,'
33834 ') =  'TRV' OR 
33835 NVL(p_source_32,'
33836 ') =  'IPV' OR 
33837 NVL(p_source_32,'
33838 ') =  'ACCRUAL' OR 
33839 NVL(p_source_32,'
33840 ') =  'RETROACCRUAL' OR 
33841 NVL(p_source_32,'
33842 ') =  'RETROEXPENSE')
33843  THEN 
33844 
33845    --
33846    XLA_AE_LINES_PKG.SetNewLine;
33847 
33848    p_balance_type_code          := l_balance_type_code;
33849    -- set the flag so later we will know whether the gain loss line needs to be created
33850    
33851    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33852      p_actual_flag :='A';
33853    END IF;
33854 
33855    --
33856    -- bulk performance
33857    --
33858    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33859                                       p_header_num   => 0); -- 4262811
33860    --
33861    -- set accounting line options
33862    --
33863    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33864            p_natural_side_code          => 'C'
33865          , p_gain_or_loss_flag          => 'N'
33866          , p_gl_transfer_mode_code      => 'S'
33867          , p_acct_entry_type_code       => 'A'
33868          , p_switch_side_flag           => 'Y'
33869          , p_merge_duplicate_code       => 'A'
33870          );
33871    --
33872    l_acc_rev_natural_side_code := 'D';  -- 4262811
33873    -- 
33874    --
33875    -- set accounting line type info
33876    --
33877    xla_ae_lines_pkg.SetAcctLineType
33881       ,p_line_definition_code       => l_line_definition_code
33878       (p_component_type             => l_component_type
33879       ,p_event_type_code            => l_event_type_code
33880       ,p_line_definition_owner_code => l_line_definition_owner_code
33882       ,p_accounting_line_code       => l_component_code
33883       ,p_accounting_line_type_code  => l_component_type_code
33884       ,p_accounting_line_appl_id    => l_component_appl_id
33885       ,p_amb_context_code           => l_amb_context_code
33886       ,p_entity_code                => l_entity_code
33887       ,p_event_class_code           => l_event_class_code);
33888    --
33889    -- set accounting class
33890    --
33891    xla_ae_lines_pkg.SetAcctClass(
33892            p_accounting_class_code  => 'DISCOUNT'
33893          , p_ae_header_id           => l_ae_header_id
33894          );
33895 
33896    --
33897    -- set rounding class
33898    --
33899    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33900                       'DISCOUNT';
33901 
33902    --
33903    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33904    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33905    --
33906    -- bulk performance
33907    --
33908    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33909 
33910    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33911       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33912 
33913    -- 4955764
33914    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33915       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33916 
33917    -- 4458381 Public Sector Enh
33918    
33919    --
33920    -- set accounting attributes for the line type
33921    --
33922    l_entered_amt_idx := 10;
33923    l_accted_amt_idx  := 15;
33924    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
33925    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33926    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
33927    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
33928    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
33929    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
33930    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
33931    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33932    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
33933    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
33934    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
33935    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
33936    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
33937    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33938    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
33939    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
33940    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
33941    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
33942    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
33943    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
33944    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
33945    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
33946    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
33947    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
33948    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
33949    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
33950    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
33951    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
33952    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
33953    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
33954    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
33955    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
33956    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
33957    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
33958    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
33959    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
33960    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
33961    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
33962    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
33963    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
33964    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
33965    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
33966    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
33967    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
33968    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
33969    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
33970    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
33971    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
33972    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
33973 
33974    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33975    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33976 
33980    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33977    ---------------------------------------------------------------------------------------------------------------
33978    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33979    ---------------------------------------------------------------------------------------------------------------
33981 
33982    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33983    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33984 
33985    IF xla_accounting_cache_pkg.GetValueChar
33986          (p_source_code         => 'LEDGER_CATEGORY_CODE'
33987          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33988    AND l_bflow_method_code = 'PRIOR_ENTRY'
33989 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33990    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33991          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33992        )
33993    THEN
33994          xla_ae_lines_pkg.BflowUpgEntry
33995            (p_business_method_code    => l_bflow_method_code
33996            ,p_business_class_code     => l_bflow_class_code
33997            ,p_balance_type            => l_balance_type_code);
33998    ELSE
33999       NULL;
34000 -- No business flow processing for business flow method of NONE.
34001    END IF;
34002 
34003    --
34004    -- call analytical criteria
34005    --
34006    
34007    --
34008    -- call description
34009    --
34010    -- No description or it is inherited.
34011    --
34012    -- call ADRs
34013    -- Bug 4922099
34014    --
34015    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34016         (NVL(l_actual_upg_option, 'N') = 'O') OR
34017         (NVL(l_enc_upg_option, 'N') = 'O')
34018       )
34019    THEN
34020    NULL;
34021    --
34022    --
34023    
34024   l_ccid := AcctDerRule_23(
34025            p_application_id           => p_application_id
34026          , p_ae_header_id             => l_ae_header_id 
34027 , p_source_14 => p_source_14
34028 , p_source_15 => p_source_15
34029 , p_source_15_meaning => p_source_15_meaning
34030 , p_source_16 => p_source_16
34031 , p_source_16_meaning => p_source_16_meaning
34032 , p_source_29 => p_source_29
34033 , p_source_32 => p_source_32
34034 , p_source_32_meaning => p_source_32_meaning
34035 , p_source_39 => p_source_39
34036 , p_source_40 => p_source_40
34037 , p_source_41 => p_source_41
34038          , x_transaction_coa_id       => l_adr_transaction_coa_id
34039          , x_accounting_coa_id        => l_adr_accounting_coa_id
34040          , x_value_type_code          => l_adr_value_type_code
34041          , p_side                     => 'NA'
34042    );
34043 
34044    xla_ae_lines_pkg.set_ccid(
34045     p_code_combination_id          => l_ccid
34046   , p_value_type_code              => l_adr_value_type_code
34047   , p_transaction_coa_id           => l_adr_transaction_coa_id
34048   , p_accounting_coa_id            => l_adr_accounting_coa_id
34049   , p_adr_code                     => 'AP_DISCOUNT'
34050   , p_adr_type_code                => 'S'
34051   , p_component_type               => l_component_type
34052   , p_component_code               => l_component_code
34053   , p_component_type_code          => l_component_type_code
34054   , p_component_appl_id            => l_component_appl_id
34055   , p_amb_context_code             => l_amb_context_code
34056   , p_side                         => 'NA'
34057   );
34058 
34059 
34060    l_segment := AcctDerRule_4(
34061            p_application_id           => p_application_id
34062          , p_ae_header_id             => l_ae_header_id 
34063 , p_source_14 => p_source_14
34064 , p_source_15 => p_source_15
34065 , p_source_15_meaning => p_source_15_meaning
34066 , p_source_16 => p_source_16
34067 , p_source_16_meaning => p_source_16_meaning
34068          , x_transaction_coa_id       => l_adr_transaction_coa_id
34069          , x_accounting_coa_id        => l_adr_accounting_coa_id
34070          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
34071          , x_flex_value_set_id        => l_adr_flex_value_set_id
34072          , x_value_type_code          => l_adr_value_type_code
34073          , x_value_combination_id     => l_adr_value_combination_id
34074          , x_value_segment_code       => l_adr_value_segment_code
34075          , p_side                     => 'NA'
34076          , p_override_seg_flag        => 'Y'
34077    );
34078 
34079    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
34080 
34081       xla_ae_lines_pkg.set_segment(
34082           p_to_segment_code         => 'GL_ACCOUNT'
34083         , p_segment_value           => l_segment
34084         , p_from_segment_code       => l_adr_value_segment_code
34085         , p_from_combination_id     => l_adr_value_combination_id
34086         , p_value_type_code         => l_adr_value_type_code
34087         , p_transaction_coa_id      => l_adr_transaction_coa_id
34088         , p_accounting_coa_id       => l_adr_accounting_coa_id
34089         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
34090         , p_flex_value_set_id       => l_adr_flex_value_set_id
34091         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
34092         , p_adr_type_code           => 'S'
34096         , p_component_appl_id       => l_component_appl_id
34093         , p_component_type          => l_component_type
34094         , p_component_code          => l_component_code
34095         , p_component_type_code     => l_component_type_code
34097         , p_amb_context_code        => l_amb_context_code
34098         , p_entity_code             => 'AP_PAYMENTS'
34099         , p_event_class_code        => 'RECONCILED PAYMENTS'
34100         , p_side                    => 'NA'
34101         );
34102 
34103   END IF;
34104 
34105    l_segment := AcctDerRule_16(
34106            p_application_id           => p_application_id
34107          , p_ae_header_id             => l_ae_header_id 
34108 , p_source_16 => p_source_16
34109 , p_source_16_meaning => p_source_16_meaning
34110 , p_source_29 => p_source_29
34111          , x_transaction_coa_id       => l_adr_transaction_coa_id
34112          , x_accounting_coa_id        => l_adr_accounting_coa_id
34113          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
34114          , x_flex_value_set_id        => l_adr_flex_value_set_id
34115          , x_value_type_code          => l_adr_value_type_code
34116          , x_value_combination_id     => l_adr_value_combination_id
34117          , x_value_segment_code       => l_adr_value_segment_code
34118          , p_side                     => 'NA'
34119          , p_override_seg_flag        => 'Y'
34120    );
34121 
34122    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
34123 
34124       xla_ae_lines_pkg.set_segment(
34125           p_to_segment_code         => 'GL_BALANCING'
34126         , p_segment_value           => l_segment
34127         , p_from_segment_code       => l_adr_value_segment_code
34128         , p_from_combination_id     => l_adr_value_combination_id
34129         , p_value_type_code         => l_adr_value_type_code
34130         , p_transaction_coa_id      => l_adr_transaction_coa_id
34131         , p_accounting_coa_id       => l_adr_accounting_coa_id
34132         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
34133         , p_flex_value_set_id       => l_adr_flex_value_set_id
34134         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
34135         , p_adr_type_code           => 'S'
34136         , p_component_type          => l_component_type
34137         , p_component_code          => l_component_code
34138         , p_component_type_code     => l_component_type_code
34139         , p_component_appl_id       => l_component_appl_id
34140         , p_amb_context_code        => l_amb_context_code
34141         , p_entity_code             => 'AP_PAYMENTS'
34142         , p_event_class_code        => 'RECONCILED PAYMENTS'
34143         , p_side                    => 'NA'
34144         );
34145 
34146   END IF;
34147 
34148    --
34149    --
34150    END IF;
34151    --
34152    -- Bug 4922099
34153    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34154           (NVL(l_enc_upg_option, 'N') = 'O')
34155         ) AND
34156         (l_bflow_method_code = 'PRIOR_ENTRY')
34157       )
34158    THEN
34159       IF
34160       --
34161       1 = 2
34162       --
34163       THEN
34164       xla_accounting_err_pkg.build_message
34165                                     (p_appli_s_name            => 'XLA'
34166                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34167                                     ,p_token_1                 => 'LINE_NUMBER'
34168                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
34169                                     ,p_token_2                 => 'LINE_TYPE_NAME'
34170                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
34171                                                                              l_component_type
34172                                                                             ,l_component_code
34173                                                                             ,l_component_type_code
34174                                                                             ,l_component_appl_id
34175                                                                             ,l_amb_context_code
34176                                                                             ,l_entity_code
34177                                                                             ,l_event_class_code
34178                                                                            )
34179                                     ,p_token_3                 => 'OWNER'
34180                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
34181                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
34182                                                                           ,p_lookup_code    => l_component_type_code
34183                                                                          )
34184                                     ,p_token_4                 => 'PRODUCT_NAME'
34185                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34186                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34187                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34188                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34192         IF (C_LEVEL_ERROR>= g_log_level) THEN
34189                                     ,p_ae_header_id            =>  NULL
34190                                        );
34191 
34193                  trace
34194                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34195                       ,p_level    => C_LEVEL_ERROR
34196                       ,p_module   => l_log_module);
34197         END IF;
34198       END IF;
34199    END IF;
34200    --
34201    --
34202    ------------------------------------------------------------------------------------------------
34203    -- 4219869 Business Flow
34204    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34205    -- Prior Entry.  Currently, the following code is always generated.
34206    ------------------------------------------------------------------------------------------------
34207    XLA_AE_LINES_PKG.ValidateCurrentLine;
34208 
34209    ------------------------------------------------------------------------------------
34210    -- 4219869 Business Flow
34211    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34212    ------------------------------------------------------------------------------------
34213    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34214 
34215    ----------------------------------------------------------------------------------
34216    -- 4219869 Business Flow
34217    -- Update journal entry status -- Need to generate this within IF <condition>
34218    ----------------------------------------------------------------------------------
34219    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34220          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34221          ,p_balance_type_code => l_balance_type_code
34222          );
34223 
34224    -------------------------------------------------------------------------------------------
34225    -- 4262811 - Generate the Accrual Reversal lines
34226    -------------------------------------------------------------------------------------------
34227    BEGIN
34228       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34229                               (g_array_event(p_event_id).array_value_num('header_index'));
34230       IF l_acc_rev_flag IS NULL THEN
34231          l_acc_rev_flag := 'N';
34232       END IF;
34233    EXCEPTION
34234       WHEN OTHERS THEN
34235          l_acc_rev_flag := 'N';
34236    END;
34237    --
34238    IF (l_acc_rev_flag = 'Y') THEN
34239 
34240        -- 4645092  ------------------------------------------------------------------------------
34241        -- To allow MPA report to determine if it should generate report process
34242        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34243        ------------------------------------------------------------------------------------------
34244 
34245        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34246        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34247    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
34248    -- call ADRs
34249    -- Bug 4922099
34250    --
34251    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34252         (NVL(l_actual_upg_option, 'N') = 'O') OR
34253         (NVL(l_enc_upg_option, 'N') = 'O')
34254       )
34255    THEN
34256    NULL;
34257    --
34258    --
34259    
34260   l_ccid := AcctDerRule_23(
34261            p_application_id           => p_application_id
34262          , p_ae_header_id             => l_ae_header_id 
34263 , p_source_14 => p_source_14
34264 , p_source_15 => p_source_15
34265 , p_source_15_meaning => p_source_15_meaning
34266 , p_source_16 => p_source_16
34267 , p_source_16_meaning => p_source_16_meaning
34268 , p_source_29 => p_source_29
34269 , p_source_32 => p_source_32
34270 , p_source_32_meaning => p_source_32_meaning
34271 , p_source_39 => p_source_39
34272 , p_source_40 => p_source_40
34273 , p_source_41 => p_source_41
34274          , x_transaction_coa_id       => l_adr_transaction_coa_id
34275          , x_accounting_coa_id        => l_adr_accounting_coa_id
34276          , x_value_type_code          => l_adr_value_type_code
34277          , p_side                     => 'NA'
34278    );
34279 
34280    xla_ae_lines_pkg.set_ccid(
34281     p_code_combination_id          => l_ccid
34282   , p_value_type_code              => l_adr_value_type_code
34283   , p_transaction_coa_id           => l_adr_transaction_coa_id
34284   , p_accounting_coa_id            => l_adr_accounting_coa_id
34285   , p_adr_code                     => 'AP_DISCOUNT'
34286   , p_adr_type_code                => 'S'
34287   , p_component_type               => l_component_type
34288   , p_component_code               => l_component_code
34289   , p_component_type_code          => l_component_type_code
34290   , p_component_appl_id            => l_component_appl_id
34291   , p_amb_context_code             => l_amb_context_code
34292   , p_side                         => 'NA'
34293   );
34294 
34295 
34296    l_segment := AcctDerRule_4(
34297            p_application_id           => p_application_id
34298          , p_ae_header_id             => l_ae_header_id 
34299 , p_source_14 => p_source_14
34300 , p_source_15 => p_source_15
34301 , p_source_15_meaning => p_source_15_meaning
34302 , p_source_16 => p_source_16
34303 , p_source_16_meaning => p_source_16_meaning
34304          , x_transaction_coa_id       => l_adr_transaction_coa_id
34308          , x_value_type_code          => l_adr_value_type_code
34305          , x_accounting_coa_id        => l_adr_accounting_coa_id
34306          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
34307          , x_flex_value_set_id        => l_adr_flex_value_set_id
34309          , x_value_combination_id     => l_adr_value_combination_id
34310          , x_value_segment_code       => l_adr_value_segment_code
34311          , p_side                     => 'NA'
34312          , p_override_seg_flag        => 'Y'
34313    );
34314 
34315    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
34316 
34317       xla_ae_lines_pkg.set_segment(
34318           p_to_segment_code         => 'GL_ACCOUNT'
34319         , p_segment_value           => l_segment
34320         , p_from_segment_code       => l_adr_value_segment_code
34321         , p_from_combination_id     => l_adr_value_combination_id
34322         , p_value_type_code         => l_adr_value_type_code
34323         , p_transaction_coa_id      => l_adr_transaction_coa_id
34324         , p_accounting_coa_id       => l_adr_accounting_coa_id
34325         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
34326         , p_flex_value_set_id       => l_adr_flex_value_set_id
34327         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
34328         , p_adr_type_code           => 'S'
34329         , p_component_type          => l_component_type
34330         , p_component_code          => l_component_code
34331         , p_component_type_code     => l_component_type_code
34332         , p_component_appl_id       => l_component_appl_id
34333         , p_amb_context_code        => l_amb_context_code
34334         , p_entity_code             => 'AP_PAYMENTS'
34335         , p_event_class_code        => 'RECONCILED PAYMENTS'
34336         , p_side                    => 'NA'
34337         );
34338 
34339   END IF;
34340 
34341    l_segment := AcctDerRule_16(
34342            p_application_id           => p_application_id
34343          , p_ae_header_id             => l_ae_header_id 
34344 , p_source_16 => p_source_16
34345 , p_source_16_meaning => p_source_16_meaning
34346 , p_source_29 => p_source_29
34347          , x_transaction_coa_id       => l_adr_transaction_coa_id
34348          , x_accounting_coa_id        => l_adr_accounting_coa_id
34349          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
34350          , x_flex_value_set_id        => l_adr_flex_value_set_id
34351          , x_value_type_code          => l_adr_value_type_code
34352          , x_value_combination_id     => l_adr_value_combination_id
34353          , x_value_segment_code       => l_adr_value_segment_code
34354          , p_side                     => 'NA'
34355          , p_override_seg_flag        => 'Y'
34356    );
34357 
34358    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
34359 
34360       xla_ae_lines_pkg.set_segment(
34361           p_to_segment_code         => 'GL_BALANCING'
34362         , p_segment_value           => l_segment
34363         , p_from_segment_code       => l_adr_value_segment_code
34364         , p_from_combination_id     => l_adr_value_combination_id
34365         , p_value_type_code         => l_adr_value_type_code
34366         , p_transaction_coa_id      => l_adr_transaction_coa_id
34367         , p_accounting_coa_id       => l_adr_accounting_coa_id
34368         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
34369         , p_flex_value_set_id       => l_adr_flex_value_set_id
34370         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
34371         , p_adr_type_code           => 'S'
34372         , p_component_type          => l_component_type
34373         , p_component_code          => l_component_code
34374         , p_component_type_code     => l_component_type_code
34375         , p_component_appl_id       => l_component_appl_id
34376         , p_amb_context_code        => l_amb_context_code
34377         , p_entity_code             => 'AP_PAYMENTS'
34378         , p_event_class_code        => 'RECONCILED PAYMENTS'
34379         , p_side                    => 'NA'
34380         );
34381 
34382   END IF;
34383 
34384    --
34385    --
34386    END IF;
34387 
34388        --
34389        -- Update the line information that should be overwritten
34390        --
34391        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34392                                          p_header_num   => 1);
34393        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
34394 
34395        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34396 
34397        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
34398           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34399        END IF;
34400 
34401       --
34402       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34403       --
34404       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34405           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
34406       ELSE
34407           ---------------------------------------------------------------------------------------------------
34408           -- 4262811a Switch Sign
34409           ---------------------------------------------------------------------------------------------------
34410           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
34414                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34411           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34412                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34413           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34415           -- 5132302
34416           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34417                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34418 
34419       END IF;
34420 
34421       -- 4955764
34422       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34423       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34424 
34425 
34426       XLA_AE_LINES_PKG.ValidateCurrentLine;
34427       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34428 
34429       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34430                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34431                ,p_balance_type_code => l_balance_type_code);
34432 
34433    END IF;
34434 
34435    -----------------------------------------------------------------------------------------
34436    -- 4262811 Multiperiod Accounting
34437    -----------------------------------------------------------------------------------------
34438      -- No MPA option is assigned.
34439 
34440 
34441 END IF;
34442 END IF;
34443 --
34444 
34445 --
34446 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34447    trace
34448       (p_msg      => 'END of AcctLineType_77'
34449       ,p_level    => C_LEVEL_PROCEDURE
34450       ,p_module   => l_log_module);
34451 END IF;
34452 --
34453 EXCEPTION
34454   WHEN xla_exceptions_pkg.application_exception THEN
34455       RAISE;
34456   WHEN OTHERS THEN
34457        xla_exceptions_pkg.raise_message
34458            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_77');
34459 END AcctLineType_77;
34460 --
34461 
34462 ---------------------------------------
34463 --
34464 -- PRIVATE FUNCTION
34465 --         AcctLineType_78
34466 --
34467 ---------------------------------------
34468 PROCEDURE AcctLineType_78 (
34469   p_application_id        IN NUMBER
34470  ,p_event_id              IN NUMBER
34471  ,p_calculate_acctd_flag  IN VARCHAR2
34472  ,p_calculate_g_l_flag    IN VARCHAR2
34473  ,p_actual_flag           IN OUT VARCHAR2
34474  ,p_balance_type_code     OUT VARCHAR2
34475  ,p_gain_or_loss_ref      OUT VARCHAR2
34476  
34477 --Payment Currency Code
34478  , p_source_12            IN VARCHAR2
34479 --System Discount Account
34480  , p_source_14            IN NUMBER
34481 --Discount Distribution Method
34482  , p_source_15            IN VARCHAR2
34483  , p_source_15_meaning    IN VARCHAR2
34484 --Automatic Offsets Value
34485  , p_source_16            IN VARCHAR2
34486  , p_source_16_meaning    IN VARCHAR2
34487 --Payment Distribution (Payment Rate) Ledger Amount
34488  , p_source_21            IN NUMBER
34489 --Invoice Distribution Account
34490  , p_source_29            IN NUMBER
34491 --Invoice Distribution Type
34492  , p_source_32            IN VARCHAR2
34493  , p_source_32_meaning    IN VARCHAR2
34494 --Discount Account
34495  , p_source_39            IN NUMBER
34496 --Purchase Order Charge Account
34497  , p_source_40            IN NUMBER
34498 --Purchase Order Variance Account
34499  , p_source_41            IN NUMBER
34500 --When to Account for Payment Option
34501  , p_source_50            IN VARCHAR2
34502 --Payment Distribution Type
34503  , p_source_51            IN VARCHAR2
34504  , p_source_51_meaning    IN VARCHAR2
34505 --Accounting Reversal Indicator
34506  , p_source_52            IN VARCHAR2
34507 --Payment Distribution Amount
34508  , p_source_53            IN NUMBER
34509 --Business Flow Accounts Payable Application Identifier
34510  , p_source_54            IN NUMBER
34511 --Payment Distribution Identifier
34512  , p_source_59            IN NUMBER
34513 --Distribution Link Type
34514  , p_source_60            IN VARCHAR2
34515 --Override Accounted Amount Indicator
34516  , p_source_64            IN VARCHAR2
34517  , p_source_64_meaning    IN VARCHAR2
34518 --Payment Supplier Identifier
34519  , p_source_65            IN NUMBER
34520 --Payment Supplier Site Identifier
34521  , p_source_66            IN NUMBER
34522 --Third Party Type
34523  , p_source_67            IN VARCHAR2
34524 --Payment Distribution Reversed Identifier
34525  , p_source_68            IN NUMBER
34526 --Invoice Distribution Tax Line Identifier
34527  , p_source_69            IN NUMBER
34528 --Invoice Distribution Summary Tax Line Identifier
34529  , p_source_70            IN NUMBER
34530 --Payment Type
34531  , p_source_71            IN VARCHAR2
34532  , p_source_71_meaning    IN VARCHAR2
34533 --Invoice Distribution Amount of the Payment Distribution
34534  , p_source_72            IN NUMBER
34535 --Business Flow Invoice Distribution Type
34536  , p_source_73            IN VARCHAR2
34537 --Business Flow Invoice Entity Code
34538  , p_source_74            IN VARCHAR2
34539 --Business Flow Invoice Distribution Identifier
34540  , p_source_75            IN NUMBER
34541 --Business Flow Invoice Identifier
34542  , p_source_76            IN NUMBER
34546  , p_source_121            IN DATE
34543 --Invoice Distribution Tax Distribution Identifier from Tax
34544  , p_source_77            IN NUMBER
34545 --Payment Exchange Date
34547 --Payment Exchange Rate
34548  , p_source_122            IN NUMBER
34549 --Payment Exchange Rate Type
34550  , p_source_123            IN VARCHAR2
34551 )
34552 IS
34553 
34554 l_component_type              VARCHAR2(80);
34555 l_component_code              VARCHAR2(30);
34556 l_component_type_code         VARCHAR2(1);
34557 l_component_appl_id           INTEGER;
34558 l_amb_context_code            VARCHAR2(30);
34559 l_entity_code                 VARCHAR2(30);
34560 l_event_class_code            VARCHAR2(30);
34561 l_ae_header_id                NUMBER;
34562 l_event_type_code             VARCHAR2(30);
34563 l_line_definition_code        VARCHAR2(30);
34564 l_line_definition_owner_code  VARCHAR2(1);
34565 --
34566 -- adr variables
34567 l_segment                     VARCHAR2(30);
34568 l_ccid                        NUMBER;
34569 l_adr_transaction_coa_id      NUMBER;
34570 l_adr_accounting_coa_id       NUMBER;
34571 l_adr_flexfield_segment_code  VARCHAR2(30);
34572 l_adr_flex_value_set_id       NUMBER;
34573 l_adr_value_type_code         VARCHAR2(30);
34574 l_adr_value_combination_id    NUMBER;
34575 l_adr_value_segment_code      VARCHAR2(30);
34576 
34577 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
34578 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
34579 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
34580 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
34581 
34582 -- 4262811 Variables ------------------------------------------------------------------------------------------
34583 l_entered_amt_idx             NUMBER;
34584 l_accted_amt_idx              NUMBER;
34585 l_acc_rev_flag                VARCHAR2(1);
34586 l_accrual_line_num            NUMBER;
34587 l_tmp_amt                     NUMBER;
34588 l_acc_rev_natural_side_code   VARCHAR2(1);
34589 
34590 l_num_entries                 NUMBER;
34591 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
34592 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
34593 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
34594 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
34595 l_recog_line_1                NUMBER;
34596 l_recog_line_2                NUMBER;
34597 
34598 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
34599 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
34600 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
34601 
34602 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34603 
34604 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
34605 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
34606 
34607 ---------------------------------------------------------------------------------------------------------------
34608 
34609 
34610 --
34611 -- bulk performance
34612 --
34613 l_balance_type_code           VARCHAR2(1);
34614 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
34615 l_log_module                  VARCHAR2(240);
34616 
34617 --
34618 -- Upgrade strategy
34619 --
34620 l_actual_upg_option           VARCHAR2(1);
34621 l_enc_upg_option           VARCHAR2(1);
34622 
34623 --
34624 BEGIN
34625 --
34626 IF g_log_enabled THEN
34627       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
34628 END IF;
34629 --
34630 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34631 
34632       trace
34633          (p_msg      => 'BEGIN of AcctLineType_78'
34634          ,p_level    => C_LEVEL_PROCEDURE
34635          ,p_module   => l_log_module);
34636 
34637 END IF;
34638 --
34639 l_component_type             := 'AMB_JLT';
34640 l_component_code             := 'AP_DISCOUNT_CASH_PMT';
34641 l_component_type_code        := 'S';
34642 l_component_appl_id          :=  200;
34643 l_amb_context_code           := 'DEFAULT';
34644 l_entity_code                := 'AP_PAYMENTS';
34645 l_event_class_code           := 'PAYMENTS';
34646 l_event_type_code            := 'PAYMENTS_ALL';
34647 l_line_definition_owner_code := 'S';
34648 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
34649 --
34650 l_balance_type_code          := 'A';
34651 l_segment                     := NULL;
34652 l_ccid                        := NULL;
34653 l_adr_transaction_coa_id      := NULL;
34654 l_adr_accounting_coa_id       := NULL;
34655 l_adr_flexfield_segment_code  := NULL;
34656 l_adr_flex_value_set_id       := NULL;
34657 l_adr_value_type_code         := NULL;
34658 l_adr_value_combination_id    := NULL;
34659 l_adr_value_segment_code      := NULL;
34660 
34661 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
34662 l_bflow_class_code           := '';    -- 4219869 Business Flow
34663 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
34664 l_budgetary_control_flag     := 'N';
34665 
34666 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
34667 l_bflow_applied_to_amt       := NULL; -- 5132302
34668 l_entered_amt_idx            := NULL;          -- 4262811
34669 l_accted_amt_idx             := NULL;          -- 4262811
34670 l_acc_rev_flag               := NULL;          -- 4262811
34671 l_accrual_line_num           := NULL;          -- 4262811
34675 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34672 l_tmp_amt                    := NULL;          -- 4262811
34673 --
34674  
34676     l_balance_type_code <> 'B' THEN
34677 IF NVL(p_source_50,'
34678 ') <>  'CLEAR_CLEAR' AND 
34679 NVL(p_source_51,'
34680 ') =  'DISCOUNT' AND 
34681 NVL(p_source_71,'
34682 ') <>  'R'
34683  THEN 
34684 
34685    --
34686    XLA_AE_LINES_PKG.SetNewLine;
34687 
34688    p_balance_type_code          := l_balance_type_code;
34689    -- set the flag so later we will know whether the gain loss line needs to be created
34690    
34691    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34692      p_actual_flag :='A';
34693    END IF;
34694 
34695    --
34696    -- bulk performance
34697    --
34698    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34699                                       p_header_num   => 0); -- 4262811
34700    --
34701    -- set accounting line options
34702    --
34703    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34704            p_natural_side_code          => 'C'
34705          , p_gain_or_loss_flag          => 'N'
34706          , p_gl_transfer_mode_code      => 'S'
34707          , p_acct_entry_type_code       => 'A'
34708          , p_switch_side_flag           => 'Y'
34709          , p_merge_duplicate_code       => 'A'
34710          );
34711    --
34712    l_acc_rev_natural_side_code := 'D';  -- 4262811
34713    -- 
34714    --
34715    -- set accounting line type info
34716    --
34717    xla_ae_lines_pkg.SetAcctLineType
34718       (p_component_type             => l_component_type
34719       ,p_event_type_code            => l_event_type_code
34720       ,p_line_definition_owner_code => l_line_definition_owner_code
34721       ,p_line_definition_code       => l_line_definition_code
34722       ,p_accounting_line_code       => l_component_code
34723       ,p_accounting_line_type_code  => l_component_type_code
34724       ,p_accounting_line_appl_id    => l_component_appl_id
34725       ,p_amb_context_code           => l_amb_context_code
34726       ,p_entity_code                => l_entity_code
34727       ,p_event_class_code           => l_event_class_code);
34728    --
34729    -- set accounting class
34730    --
34731    xla_ae_lines_pkg.SetAcctClass(
34732            p_accounting_class_code  => 'DISCOUNT'
34733          , p_ae_header_id           => l_ae_header_id
34734          );
34735 
34736    --
34737    -- set rounding class
34738    --
34739    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34740                       'DISCOUNT';
34741 
34742    --
34743    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34744    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34745    --
34746    -- bulk performance
34747    --
34748    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34749 
34750    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34751       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34752 
34753    -- 4955764
34754    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34755       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34756 
34757    -- 4458381 Public Sector Enh
34758    
34759    --
34760    -- set accounting attributes for the line type
34761    --
34762    l_entered_amt_idx := 10;
34763    l_accted_amt_idx  := 15;
34764    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
34765    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34766    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
34767    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
34768    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
34769    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
34770    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
34771    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
34772    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
34773    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
34774    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
34775    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
34776    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
34777    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
34778    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
34779    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
34780    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
34781    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
34782    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
34783    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
34784    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
34785    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
34786    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
34787    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
34788    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
34792    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
34789    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
34790    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
34791    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
34793    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
34794    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
34795    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
34796    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
34797    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
34798    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
34799    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
34800    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
34801    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
34802    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
34803    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
34804    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
34805    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
34806    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
34807    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
34808    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
34809    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
34810    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
34811    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
34812    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
34813 
34814    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34815    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34816 
34817    ---------------------------------------------------------------------------------------------------------------
34818    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34819    ---------------------------------------------------------------------------------------------------------------
34820    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34821 
34822    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34823    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34824 
34825    IF xla_accounting_cache_pkg.GetValueChar
34826          (p_source_code         => 'LEDGER_CATEGORY_CODE'
34827          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34828    AND l_bflow_method_code = 'PRIOR_ENTRY'
34829 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34830    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34831          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34832        )
34833    THEN
34834          xla_ae_lines_pkg.BflowUpgEntry
34835            (p_business_method_code    => l_bflow_method_code
34836            ,p_business_class_code     => l_bflow_class_code
34837            ,p_balance_type            => l_balance_type_code);
34838    ELSE
34839       NULL;
34840 -- No business flow processing for business flow method of NONE.
34841    END IF;
34842 
34843    --
34844    -- call analytical criteria
34845    --
34846    
34847    --
34848    -- call description
34849    --
34850    -- No description or it is inherited.
34851    --
34852    -- call ADRs
34853    -- Bug 4922099
34854    --
34855    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34856         (NVL(l_actual_upg_option, 'N') = 'O') OR
34857         (NVL(l_enc_upg_option, 'N') = 'O')
34858       )
34859    THEN
34860    NULL;
34861    --
34862    --
34863    
34864   l_ccid := AcctDerRule_23(
34865            p_application_id           => p_application_id
34866          , p_ae_header_id             => l_ae_header_id 
34867 , p_source_14 => p_source_14
34868 , p_source_15 => p_source_15
34869 , p_source_15_meaning => p_source_15_meaning
34870 , p_source_16 => p_source_16
34871 , p_source_16_meaning => p_source_16_meaning
34872 , p_source_29 => p_source_29
34873 , p_source_32 => p_source_32
34874 , p_source_32_meaning => p_source_32_meaning
34875 , p_source_39 => p_source_39
34876 , p_source_40 => p_source_40
34877 , p_source_41 => p_source_41
34878          , x_transaction_coa_id       => l_adr_transaction_coa_id
34879          , x_accounting_coa_id        => l_adr_accounting_coa_id
34880          , x_value_type_code          => l_adr_value_type_code
34881          , p_side                     => 'NA'
34882    );
34883 
34884    xla_ae_lines_pkg.set_ccid(
34885     p_code_combination_id          => l_ccid
34886   , p_value_type_code              => l_adr_value_type_code
34887   , p_transaction_coa_id           => l_adr_transaction_coa_id
34888   , p_accounting_coa_id            => l_adr_accounting_coa_id
34889   , p_adr_code                     => 'AP_DISCOUNT'
34890   , p_adr_type_code                => 'S'
34891   , p_component_type               => l_component_type
34892   , p_component_code               => l_component_code
34893   , p_component_type_code          => l_component_type_code
34894   , p_component_appl_id            => l_component_appl_id
34895   , p_amb_context_code             => l_amb_context_code
34896   , p_side                         => 'NA'
34897   );
34898 
34899 
34900    l_segment := AcctDerRule_15(
34904 , p_source_15_meaning => p_source_15_meaning
34901            p_application_id           => p_application_id
34902          , p_ae_header_id             => l_ae_header_id 
34903 , p_source_15 => p_source_15
34905 , p_source_16 => p_source_16
34906 , p_source_16_meaning => p_source_16_meaning
34907 , p_source_29 => p_source_29
34908          , x_transaction_coa_id       => l_adr_transaction_coa_id
34909          , x_accounting_coa_id        => l_adr_accounting_coa_id
34910          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
34911          , x_flex_value_set_id        => l_adr_flex_value_set_id
34912          , x_value_type_code          => l_adr_value_type_code
34913          , x_value_combination_id     => l_adr_value_combination_id
34914          , x_value_segment_code       => l_adr_value_segment_code
34915          , p_side                     => 'NA'
34916          , p_override_seg_flag        => 'Y'
34917    );
34918 
34919    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
34920 
34921       xla_ae_lines_pkg.set_segment(
34922           p_to_segment_code         => 'GL_BALANCING'
34923         , p_segment_value           => l_segment
34924         , p_from_segment_code       => l_adr_value_segment_code
34925         , p_from_combination_id     => l_adr_value_combination_id
34926         , p_value_type_code         => l_adr_value_type_code
34927         , p_transaction_coa_id      => l_adr_transaction_coa_id
34928         , p_accounting_coa_id       => l_adr_accounting_coa_id
34929         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
34930         , p_flex_value_set_id       => l_adr_flex_value_set_id
34931         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
34932         , p_adr_type_code           => 'S'
34933         , p_component_type          => l_component_type
34934         , p_component_code          => l_component_code
34935         , p_component_type_code     => l_component_type_code
34936         , p_component_appl_id       => l_component_appl_id
34937         , p_amb_context_code        => l_amb_context_code
34938         , p_entity_code             => 'AP_PAYMENTS'
34939         , p_event_class_code        => 'PAYMENTS'
34940         , p_side                    => 'NA'
34941         );
34942 
34943   END IF;
34944 
34945    l_segment := AcctDerRule_4(
34946            p_application_id           => p_application_id
34947          , p_ae_header_id             => l_ae_header_id 
34948 , p_source_14 => p_source_14
34949 , p_source_15 => p_source_15
34950 , p_source_15_meaning => p_source_15_meaning
34951 , p_source_16 => p_source_16
34952 , p_source_16_meaning => p_source_16_meaning
34953          , x_transaction_coa_id       => l_adr_transaction_coa_id
34954          , x_accounting_coa_id        => l_adr_accounting_coa_id
34955          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
34956          , x_flex_value_set_id        => l_adr_flex_value_set_id
34957          , x_value_type_code          => l_adr_value_type_code
34958          , x_value_combination_id     => l_adr_value_combination_id
34959          , x_value_segment_code       => l_adr_value_segment_code
34960          , p_side                     => 'NA'
34961          , p_override_seg_flag        => 'Y'
34962    );
34963 
34964    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
34965 
34966       xla_ae_lines_pkg.set_segment(
34967           p_to_segment_code         => 'GL_ACCOUNT'
34968         , p_segment_value           => l_segment
34969         , p_from_segment_code       => l_adr_value_segment_code
34970         , p_from_combination_id     => l_adr_value_combination_id
34971         , p_value_type_code         => l_adr_value_type_code
34972         , p_transaction_coa_id      => l_adr_transaction_coa_id
34973         , p_accounting_coa_id       => l_adr_accounting_coa_id
34974         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
34975         , p_flex_value_set_id       => l_adr_flex_value_set_id
34976         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
34977         , p_adr_type_code           => 'S'
34978         , p_component_type          => l_component_type
34979         , p_component_code          => l_component_code
34980         , p_component_type_code     => l_component_type_code
34981         , p_component_appl_id       => l_component_appl_id
34982         , p_amb_context_code        => l_amb_context_code
34983         , p_entity_code             => 'AP_PAYMENTS'
34984         , p_event_class_code        => 'PAYMENTS'
34985         , p_side                    => 'NA'
34986         );
34987 
34988   END IF;
34989 
34990    --
34991    --
34992    END IF;
34993    --
34994    -- Bug 4922099
34995    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34996           (NVL(l_enc_upg_option, 'N') = 'O')
34997         ) AND
34998         (l_bflow_method_code = 'PRIOR_ENTRY')
34999       )
35000    THEN
35001       IF
35002       --
35003       1 = 2
35004       --
35005       THEN
35006       xla_accounting_err_pkg.build_message
35007                                     (p_appli_s_name            => 'XLA'
35008                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35009                                     ,p_token_1                 => 'LINE_NUMBER'
35010                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
35011                                     ,p_token_2                 => 'LINE_TYPE_NAME'
35015                                                                             ,l_component_type_code
35012                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
35013                                                                              l_component_type
35014                                                                             ,l_component_code
35016                                                                             ,l_component_appl_id
35017                                                                             ,l_amb_context_code
35018                                                                             ,l_entity_code
35019                                                                             ,l_event_class_code
35020                                                                            )
35021                                     ,p_token_3                 => 'OWNER'
35022                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
35023                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
35024                                                                           ,p_lookup_code    => l_component_type_code
35025                                                                          )
35026                                     ,p_token_4                 => 'PRODUCT_NAME'
35027                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35028                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35029                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35030                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35031                                     ,p_ae_header_id            =>  NULL
35032                                        );
35033 
35034         IF (C_LEVEL_ERROR>= g_log_level) THEN
35035                  trace
35036                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35037                       ,p_level    => C_LEVEL_ERROR
35038                       ,p_module   => l_log_module);
35039         END IF;
35040       END IF;
35041    END IF;
35042    --
35043    --
35044    ------------------------------------------------------------------------------------------------
35045    -- 4219869 Business Flow
35046    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35047    -- Prior Entry.  Currently, the following code is always generated.
35048    ------------------------------------------------------------------------------------------------
35049    XLA_AE_LINES_PKG.ValidateCurrentLine;
35050 
35051    ------------------------------------------------------------------------------------
35052    -- 4219869 Business Flow
35053    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35054    ------------------------------------------------------------------------------------
35055    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35056 
35057    ----------------------------------------------------------------------------------
35058    -- 4219869 Business Flow
35059    -- Update journal entry status -- Need to generate this within IF <condition>
35060    ----------------------------------------------------------------------------------
35061    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35062          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35063          ,p_balance_type_code => l_balance_type_code
35064          );
35065 
35066    -------------------------------------------------------------------------------------------
35067    -- 4262811 - Generate the Accrual Reversal lines
35068    -------------------------------------------------------------------------------------------
35069    BEGIN
35070       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35071                               (g_array_event(p_event_id).array_value_num('header_index'));
35072       IF l_acc_rev_flag IS NULL THEN
35073          l_acc_rev_flag := 'N';
35074       END IF;
35075    EXCEPTION
35076       WHEN OTHERS THEN
35077          l_acc_rev_flag := 'N';
35078    END;
35079    --
35080    IF (l_acc_rev_flag = 'Y') THEN
35081 
35082        -- 4645092  ------------------------------------------------------------------------------
35083        -- To allow MPA report to determine if it should generate report process
35084        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35085        ------------------------------------------------------------------------------------------
35086 
35087        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35088        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35089    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
35090    -- call ADRs
35091    -- Bug 4922099
35092    --
35093    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35094         (NVL(l_actual_upg_option, 'N') = 'O') OR
35095         (NVL(l_enc_upg_option, 'N') = 'O')
35096       )
35097    THEN
35098    NULL;
35099    --
35100    --
35101    
35102   l_ccid := AcctDerRule_23(
35103            p_application_id           => p_application_id
35104          , p_ae_header_id             => l_ae_header_id 
35105 , p_source_14 => p_source_14
35106 , p_source_15 => p_source_15
35107 , p_source_15_meaning => p_source_15_meaning
35108 , p_source_16 => p_source_16
35109 , p_source_16_meaning => p_source_16_meaning
35110 , p_source_29 => p_source_29
35114 , p_source_40 => p_source_40
35111 , p_source_32 => p_source_32
35112 , p_source_32_meaning => p_source_32_meaning
35113 , p_source_39 => p_source_39
35115 , p_source_41 => p_source_41
35116          , x_transaction_coa_id       => l_adr_transaction_coa_id
35117          , x_accounting_coa_id        => l_adr_accounting_coa_id
35118          , x_value_type_code          => l_adr_value_type_code
35119          , p_side                     => 'NA'
35120    );
35121 
35122    xla_ae_lines_pkg.set_ccid(
35123     p_code_combination_id          => l_ccid
35124   , p_value_type_code              => l_adr_value_type_code
35125   , p_transaction_coa_id           => l_adr_transaction_coa_id
35126   , p_accounting_coa_id            => l_adr_accounting_coa_id
35127   , p_adr_code                     => 'AP_DISCOUNT'
35128   , p_adr_type_code                => 'S'
35129   , p_component_type               => l_component_type
35130   , p_component_code               => l_component_code
35131   , p_component_type_code          => l_component_type_code
35132   , p_component_appl_id            => l_component_appl_id
35133   , p_amb_context_code             => l_amb_context_code
35134   , p_side                         => 'NA'
35135   );
35136 
35137 
35138    l_segment := AcctDerRule_15(
35139            p_application_id           => p_application_id
35140          , p_ae_header_id             => l_ae_header_id 
35141 , p_source_15 => p_source_15
35142 , p_source_15_meaning => p_source_15_meaning
35143 , p_source_16 => p_source_16
35144 , p_source_16_meaning => p_source_16_meaning
35145 , p_source_29 => p_source_29
35146          , x_transaction_coa_id       => l_adr_transaction_coa_id
35147          , x_accounting_coa_id        => l_adr_accounting_coa_id
35148          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
35149          , x_flex_value_set_id        => l_adr_flex_value_set_id
35150          , x_value_type_code          => l_adr_value_type_code
35151          , x_value_combination_id     => l_adr_value_combination_id
35152          , x_value_segment_code       => l_adr_value_segment_code
35153          , p_side                     => 'NA'
35154          , p_override_seg_flag        => 'Y'
35155    );
35156 
35157    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
35158 
35159       xla_ae_lines_pkg.set_segment(
35160           p_to_segment_code         => 'GL_BALANCING'
35161         , p_segment_value           => l_segment
35162         , p_from_segment_code       => l_adr_value_segment_code
35163         , p_from_combination_id     => l_adr_value_combination_id
35164         , p_value_type_code         => l_adr_value_type_code
35165         , p_transaction_coa_id      => l_adr_transaction_coa_id
35166         , p_accounting_coa_id       => l_adr_accounting_coa_id
35167         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
35168         , p_flex_value_set_id       => l_adr_flex_value_set_id
35169         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
35170         , p_adr_type_code           => 'S'
35171         , p_component_type          => l_component_type
35172         , p_component_code          => l_component_code
35173         , p_component_type_code     => l_component_type_code
35174         , p_component_appl_id       => l_component_appl_id
35175         , p_amb_context_code        => l_amb_context_code
35176         , p_entity_code             => 'AP_PAYMENTS'
35177         , p_event_class_code        => 'PAYMENTS'
35178         , p_side                    => 'NA'
35179         );
35180 
35181   END IF;
35182 
35183    l_segment := AcctDerRule_4(
35184            p_application_id           => p_application_id
35185          , p_ae_header_id             => l_ae_header_id 
35186 , p_source_14 => p_source_14
35187 , p_source_15 => p_source_15
35188 , p_source_15_meaning => p_source_15_meaning
35189 , p_source_16 => p_source_16
35190 , p_source_16_meaning => p_source_16_meaning
35191          , x_transaction_coa_id       => l_adr_transaction_coa_id
35192          , x_accounting_coa_id        => l_adr_accounting_coa_id
35193          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
35194          , x_flex_value_set_id        => l_adr_flex_value_set_id
35195          , x_value_type_code          => l_adr_value_type_code
35196          , x_value_combination_id     => l_adr_value_combination_id
35197          , x_value_segment_code       => l_adr_value_segment_code
35198          , p_side                     => 'NA'
35199          , p_override_seg_flag        => 'Y'
35200    );
35201 
35202    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
35203 
35204       xla_ae_lines_pkg.set_segment(
35205           p_to_segment_code         => 'GL_ACCOUNT'
35206         , p_segment_value           => l_segment
35207         , p_from_segment_code       => l_adr_value_segment_code
35208         , p_from_combination_id     => l_adr_value_combination_id
35209         , p_value_type_code         => l_adr_value_type_code
35210         , p_transaction_coa_id      => l_adr_transaction_coa_id
35211         , p_accounting_coa_id       => l_adr_accounting_coa_id
35212         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
35213         , p_flex_value_set_id       => l_adr_flex_value_set_id
35214         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
35215         , p_adr_type_code           => 'S'
35216         , p_component_type          => l_component_type
35217         , p_component_code          => l_component_code
35218         , p_component_type_code     => l_component_type_code
35222         , p_event_class_code        => 'PAYMENTS'
35219         , p_component_appl_id       => l_component_appl_id
35220         , p_amb_context_code        => l_amb_context_code
35221         , p_entity_code             => 'AP_PAYMENTS'
35223         , p_side                    => 'NA'
35224         );
35225 
35226   END IF;
35227 
35228    --
35229    --
35230    END IF;
35231 
35232        --
35233        -- Update the line information that should be overwritten
35234        --
35235        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35236                                          p_header_num   => 1);
35237        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
35238 
35239        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35240 
35241        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
35242           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35243        END IF;
35244 
35245       --
35246       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35247       --
35248       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35249           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
35250       ELSE
35251           ---------------------------------------------------------------------------------------------------
35252           -- 4262811a Switch Sign
35253           ---------------------------------------------------------------------------------------------------
35254           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
35255           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35256                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35257           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35258                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35259           -- 5132302
35260           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35261                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35262 
35263       END IF;
35264 
35265       -- 4955764
35266       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35267       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35268 
35269 
35270       XLA_AE_LINES_PKG.ValidateCurrentLine;
35271       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35272 
35273       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35274                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35275                ,p_balance_type_code => l_balance_type_code);
35276 
35277    END IF;
35278 
35279    -----------------------------------------------------------------------------------------
35280    -- 4262811 Multiperiod Accounting
35281    -----------------------------------------------------------------------------------------
35282      -- No MPA option is assigned.
35283 
35284 
35285 END IF;
35286 END IF;
35287 --
35288 
35289 --
35290 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35291    trace
35292       (p_msg      => 'END of AcctLineType_78'
35293       ,p_level    => C_LEVEL_PROCEDURE
35294       ,p_module   => l_log_module);
35295 END IF;
35296 --
35297 EXCEPTION
35298   WHEN xla_exceptions_pkg.application_exception THEN
35299       RAISE;
35300   WHEN OTHERS THEN
35301        xla_exceptions_pkg.raise_message
35302            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_78');
35303 END AcctLineType_78;
35304 --
35305 
35306 ---------------------------------------
35307 --
35308 -- PRIVATE FUNCTION
35309 --         AcctLineType_79
35310 --
35311 ---------------------------------------
35312 PROCEDURE AcctLineType_79 (
35313   p_application_id        IN NUMBER
35314  ,p_event_id              IN NUMBER
35315  ,p_calculate_acctd_flag  IN VARCHAR2
35316  ,p_calculate_g_l_flag    IN VARCHAR2
35317  ,p_actual_flag           IN OUT VARCHAR2
35318  ,p_balance_type_code     OUT VARCHAR2
35319  ,p_gain_or_loss_ref      OUT VARCHAR2
35320  
35321 --Payment Currency Code
35322  , p_source_12            IN VARCHAR2
35323 --System Discount Account
35324  , p_source_14            IN NUMBER
35325 --Discount Distribution Method
35326  , p_source_15            IN VARCHAR2
35327  , p_source_15_meaning    IN VARCHAR2
35328 --Automatic Offsets Value
35329  , p_source_16            IN VARCHAR2
35330  , p_source_16_meaning    IN VARCHAR2
35331 --Payment Distribution (Payment Rate) Ledger Amount
35332  , p_source_21            IN NUMBER
35333 --Invoice Distribution Account
35334  , p_source_29            IN NUMBER
35335 --Invoice Distribution Type
35336  , p_source_32            IN VARCHAR2
35337  , p_source_32_meaning    IN VARCHAR2
35338 --Discount Account
35339  , p_source_39            IN NUMBER
35340 --Purchase Order Charge Account
35341  , p_source_40            IN NUMBER
35342 --Purchase Order Variance Account
35343  , p_source_41            IN NUMBER
35344 --When to Account for Payment Option
35348  , p_source_51_meaning    IN VARCHAR2
35345  , p_source_50            IN VARCHAR2
35346 --Payment Distribution Type
35347  , p_source_51            IN VARCHAR2
35349 --Accounting Reversal Indicator
35350  , p_source_52            IN VARCHAR2
35351 --Payment Distribution Amount
35352  , p_source_53            IN NUMBER
35353 --Business Flow Accounts Payable Application Identifier
35354  , p_source_54            IN NUMBER
35355 --Payment Distribution Identifier
35356  , p_source_59            IN NUMBER
35357 --Distribution Link Type
35358  , p_source_60            IN VARCHAR2
35359 --Override Accounted Amount Indicator
35360  , p_source_64            IN VARCHAR2
35361  , p_source_64_meaning    IN VARCHAR2
35362 --Payment Supplier Identifier
35363  , p_source_65            IN NUMBER
35364 --Payment Supplier Site Identifier
35365  , p_source_66            IN NUMBER
35366 --Third Party Type
35367  , p_source_67            IN VARCHAR2
35368 --Payment Distribution Reversed Identifier
35369  , p_source_68            IN NUMBER
35370 --Invoice Distribution Tax Line Identifier
35371  , p_source_69            IN NUMBER
35372 --Invoice Distribution Summary Tax Line Identifier
35373  , p_source_70            IN NUMBER
35374 --Payment Type
35375  , p_source_71            IN VARCHAR2
35376  , p_source_71_meaning    IN VARCHAR2
35377 --Business Flow Invoice Distribution Type
35378  , p_source_73            IN VARCHAR2
35379 --Business Flow Invoice Entity Code
35380  , p_source_74            IN VARCHAR2
35381 --Business Flow Invoice Distribution Identifier
35382  , p_source_75            IN NUMBER
35383 --Business Flow Invoice Identifier
35384  , p_source_76            IN NUMBER
35385 --Invoice Distribution Tax Distribution Identifier from Tax
35386  , p_source_77            IN NUMBER
35387 --Payment Exchange Date
35388  , p_source_121            IN DATE
35389 --Payment Exchange Rate
35390  , p_source_122            IN NUMBER
35391 --Payment Exchange Rate Type
35392  , p_source_123            IN VARCHAR2
35393 )
35394 IS
35395 
35396 l_component_type              VARCHAR2(80);
35397 l_component_code              VARCHAR2(30);
35398 l_component_type_code         VARCHAR2(1);
35399 l_component_appl_id           INTEGER;
35400 l_amb_context_code            VARCHAR2(30);
35401 l_entity_code                 VARCHAR2(30);
35402 l_event_class_code            VARCHAR2(30);
35403 l_ae_header_id                NUMBER;
35404 l_event_type_code             VARCHAR2(30);
35405 l_line_definition_code        VARCHAR2(30);
35406 l_line_definition_owner_code  VARCHAR2(1);
35407 --
35408 -- adr variables
35409 l_segment                     VARCHAR2(30);
35410 l_ccid                        NUMBER;
35411 l_adr_transaction_coa_id      NUMBER;
35412 l_adr_accounting_coa_id       NUMBER;
35413 l_adr_flexfield_segment_code  VARCHAR2(30);
35414 l_adr_flex_value_set_id       NUMBER;
35415 l_adr_value_type_code         VARCHAR2(30);
35416 l_adr_value_combination_id    NUMBER;
35417 l_adr_value_segment_code      VARCHAR2(30);
35418 
35419 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
35420 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
35421 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
35422 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
35423 
35424 -- 4262811 Variables ------------------------------------------------------------------------------------------
35425 l_entered_amt_idx             NUMBER;
35426 l_accted_amt_idx              NUMBER;
35427 l_acc_rev_flag                VARCHAR2(1);
35428 l_accrual_line_num            NUMBER;
35429 l_tmp_amt                     NUMBER;
35430 l_acc_rev_natural_side_code   VARCHAR2(1);
35431 
35432 l_num_entries                 NUMBER;
35433 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
35434 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
35435 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
35436 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
35437 l_recog_line_1                NUMBER;
35438 l_recog_line_2                NUMBER;
35439 
35440 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
35441 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
35442 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
35443 
35444 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35445 
35446 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
35447 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
35448 
35449 ---------------------------------------------------------------------------------------------------------------
35450 
35451 
35452 --
35453 -- bulk performance
35454 --
35455 l_balance_type_code           VARCHAR2(1);
35456 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
35457 l_log_module                  VARCHAR2(240);
35458 
35459 --
35460 -- Upgrade strategy
35461 --
35462 l_actual_upg_option           VARCHAR2(1);
35463 l_enc_upg_option           VARCHAR2(1);
35464 
35465 --
35466 BEGIN
35467 --
35468 IF g_log_enabled THEN
35469       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
35470 END IF;
35471 --
35472 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35476          ,p_level    => C_LEVEL_PROCEDURE
35473 
35474       trace
35475          (p_msg      => 'BEGIN of AcctLineType_79'
35477          ,p_module   => l_log_module);
35478 
35479 END IF;
35480 --
35481 l_component_type             := 'AMB_JLT';
35482 l_component_code             := 'AP_DISCOUNT_CASH_REF';
35483 l_component_type_code        := 'S';
35484 l_component_appl_id          :=  200;
35485 l_amb_context_code           := 'DEFAULT';
35486 l_entity_code                := 'AP_PAYMENTS';
35487 l_event_class_code           := 'REFUNDS';
35488 l_event_type_code            := 'REFUNDS_ALL';
35489 l_line_definition_owner_code := 'S';
35490 l_line_definition_code       := 'CASH_REFUNDS_ALL';
35491 --
35492 l_balance_type_code          := 'A';
35493 l_segment                     := NULL;
35494 l_ccid                        := NULL;
35495 l_adr_transaction_coa_id      := NULL;
35496 l_adr_accounting_coa_id       := NULL;
35497 l_adr_flexfield_segment_code  := NULL;
35498 l_adr_flex_value_set_id       := NULL;
35499 l_adr_value_type_code         := NULL;
35500 l_adr_value_combination_id    := NULL;
35501 l_adr_value_segment_code      := NULL;
35502 
35503 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
35504 l_bflow_class_code           := '';    -- 4219869 Business Flow
35505 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
35506 l_budgetary_control_flag     := 'N';
35507 
35508 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
35509 l_bflow_applied_to_amt       := NULL; -- 5132302
35510 l_entered_amt_idx            := NULL;          -- 4262811
35511 l_accted_amt_idx             := NULL;          -- 4262811
35512 l_acc_rev_flag               := NULL;          -- 4262811
35513 l_accrual_line_num           := NULL;          -- 4262811
35514 l_tmp_amt                    := NULL;          -- 4262811
35515 --
35516  
35517 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35518     l_balance_type_code <> 'B' THEN
35519 IF NVL(p_source_50,'
35520 ') <>  'CLEAR_CLEAR' AND 
35521 NVL(p_source_51,'
35522 ') =  'DISCOUNT' AND 
35523 NVL(p_source_71,'
35524 ') =  'R'
35525  THEN 
35526 
35527    --
35528    XLA_AE_LINES_PKG.SetNewLine;
35529 
35530    p_balance_type_code          := l_balance_type_code;
35531    -- set the flag so later we will know whether the gain loss line needs to be created
35532    
35533    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35534      p_actual_flag :='A';
35535    END IF;
35536 
35537    --
35538    -- bulk performance
35539    --
35540    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35541                                       p_header_num   => 0); -- 4262811
35542    --
35543    -- set accounting line options
35544    --
35545    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35546            p_natural_side_code          => 'C'
35547          , p_gain_or_loss_flag          => 'N'
35548          , p_gl_transfer_mode_code      => 'S'
35549          , p_acct_entry_type_code       => 'A'
35550          , p_switch_side_flag           => 'Y'
35551          , p_merge_duplicate_code       => 'A'
35552          );
35553    --
35554    l_acc_rev_natural_side_code := 'D';  -- 4262811
35555    -- 
35556    --
35557    -- set accounting line type info
35558    --
35559    xla_ae_lines_pkg.SetAcctLineType
35560       (p_component_type             => l_component_type
35561       ,p_event_type_code            => l_event_type_code
35562       ,p_line_definition_owner_code => l_line_definition_owner_code
35563       ,p_line_definition_code       => l_line_definition_code
35564       ,p_accounting_line_code       => l_component_code
35565       ,p_accounting_line_type_code  => l_component_type_code
35566       ,p_accounting_line_appl_id    => l_component_appl_id
35567       ,p_amb_context_code           => l_amb_context_code
35568       ,p_entity_code                => l_entity_code
35569       ,p_event_class_code           => l_event_class_code);
35570    --
35571    -- set accounting class
35572    --
35573    xla_ae_lines_pkg.SetAcctClass(
35574            p_accounting_class_code  => 'DISCOUNT'
35575          , p_ae_header_id           => l_ae_header_id
35576          );
35577 
35578    --
35579    -- set rounding class
35580    --
35581    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35582                       'DISCOUNT';
35583 
35584    --
35585    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35586    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35587    --
35588    -- bulk performance
35589    --
35590    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35591 
35592    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35593       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35594 
35595    -- 4955764
35596    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35597       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35598 
35599    -- 4458381 Public Sector Enh
35600    
35601    --
35602    -- set accounting attributes for the line type
35603    --
35607    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35604    l_entered_amt_idx := 9;
35605    l_accted_amt_idx  := 14;
35606    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
35608    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
35609    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
35610    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
35611    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35612    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
35613    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
35614    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
35615    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
35616    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
35617    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35618    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
35619    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
35620    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
35621    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
35622    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
35623    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
35624    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
35625    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
35626    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
35627    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
35628    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
35629    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
35630    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
35631    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
35632    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
35633    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
35634    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
35635    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
35636    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
35637    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
35638    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
35639    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
35640    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
35641    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
35642    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
35643    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
35644    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
35645    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
35646    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
35647    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
35648    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
35649    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
35650    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
35651    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
35652    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
35653 
35654    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35655    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35656 
35657    ---------------------------------------------------------------------------------------------------------------
35658    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35659    ---------------------------------------------------------------------------------------------------------------
35660    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35661 
35662    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35663    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35664 
35665    IF xla_accounting_cache_pkg.GetValueChar
35666          (p_source_code         => 'LEDGER_CATEGORY_CODE'
35667          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35668    AND l_bflow_method_code = 'PRIOR_ENTRY'
35669 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35670    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35671          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35672        )
35673    THEN
35674          xla_ae_lines_pkg.BflowUpgEntry
35675            (p_business_method_code    => l_bflow_method_code
35676            ,p_business_class_code     => l_bflow_class_code
35677            ,p_balance_type            => l_balance_type_code);
35678    ELSE
35679       NULL;
35680 -- No business flow processing for business flow method of NONE.
35681    END IF;
35682 
35683    --
35684    -- call analytical criteria
35685    --
35686    
35687    --
35688    -- call description
35689    --
35690    -- No description or it is inherited.
35691    --
35692    -- call ADRs
35693    -- Bug 4922099
35694    --
35695    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35696         (NVL(l_actual_upg_option, 'N') = 'O') OR
35697         (NVL(l_enc_upg_option, 'N') = 'O')
35698       )
35699    THEN
35700    NULL;
35701    --
35702    --
35703    
35704   l_ccid := AcctDerRule_23(
35705            p_application_id           => p_application_id
35709 , p_source_15_meaning => p_source_15_meaning
35706          , p_ae_header_id             => l_ae_header_id 
35707 , p_source_14 => p_source_14
35708 , p_source_15 => p_source_15
35710 , p_source_16 => p_source_16
35711 , p_source_16_meaning => p_source_16_meaning
35712 , p_source_29 => p_source_29
35713 , p_source_32 => p_source_32
35714 , p_source_32_meaning => p_source_32_meaning
35715 , p_source_39 => p_source_39
35716 , p_source_40 => p_source_40
35717 , p_source_41 => p_source_41
35718          , x_transaction_coa_id       => l_adr_transaction_coa_id
35719          , x_accounting_coa_id        => l_adr_accounting_coa_id
35720          , x_value_type_code          => l_adr_value_type_code
35721          , p_side                     => 'NA'
35722    );
35723 
35724    xla_ae_lines_pkg.set_ccid(
35725     p_code_combination_id          => l_ccid
35726   , p_value_type_code              => l_adr_value_type_code
35727   , p_transaction_coa_id           => l_adr_transaction_coa_id
35728   , p_accounting_coa_id            => l_adr_accounting_coa_id
35729   , p_adr_code                     => 'AP_DISCOUNT'
35730   , p_adr_type_code                => 'S'
35731   , p_component_type               => l_component_type
35732   , p_component_code               => l_component_code
35733   , p_component_type_code          => l_component_type_code
35734   , p_component_appl_id            => l_component_appl_id
35735   , p_amb_context_code             => l_amb_context_code
35736   , p_side                         => 'NA'
35737   );
35738 
35739 
35740    l_segment := AcctDerRule_15(
35741            p_application_id           => p_application_id
35742          , p_ae_header_id             => l_ae_header_id 
35743 , p_source_15 => p_source_15
35744 , p_source_15_meaning => p_source_15_meaning
35745 , p_source_16 => p_source_16
35746 , p_source_16_meaning => p_source_16_meaning
35747 , p_source_29 => p_source_29
35748          , x_transaction_coa_id       => l_adr_transaction_coa_id
35749          , x_accounting_coa_id        => l_adr_accounting_coa_id
35750          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
35751          , x_flex_value_set_id        => l_adr_flex_value_set_id
35752          , x_value_type_code          => l_adr_value_type_code
35753          , x_value_combination_id     => l_adr_value_combination_id
35754          , x_value_segment_code       => l_adr_value_segment_code
35755          , p_side                     => 'NA'
35756          , p_override_seg_flag        => 'Y'
35757    );
35758 
35759    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
35760 
35761       xla_ae_lines_pkg.set_segment(
35762           p_to_segment_code         => 'GL_BALANCING'
35763         , p_segment_value           => l_segment
35764         , p_from_segment_code       => l_adr_value_segment_code
35765         , p_from_combination_id     => l_adr_value_combination_id
35766         , p_value_type_code         => l_adr_value_type_code
35767         , p_transaction_coa_id      => l_adr_transaction_coa_id
35768         , p_accounting_coa_id       => l_adr_accounting_coa_id
35769         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
35770         , p_flex_value_set_id       => l_adr_flex_value_set_id
35771         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
35772         , p_adr_type_code           => 'S'
35773         , p_component_type          => l_component_type
35774         , p_component_code          => l_component_code
35775         , p_component_type_code     => l_component_type_code
35776         , p_component_appl_id       => l_component_appl_id
35777         , p_amb_context_code        => l_amb_context_code
35778         , p_entity_code             => 'AP_PAYMENTS'
35779         , p_event_class_code        => 'REFUNDS'
35780         , p_side                    => 'NA'
35781         );
35782 
35783   END IF;
35784 
35785    l_segment := AcctDerRule_4(
35786            p_application_id           => p_application_id
35787          , p_ae_header_id             => l_ae_header_id 
35788 , p_source_14 => p_source_14
35789 , p_source_15 => p_source_15
35790 , p_source_15_meaning => p_source_15_meaning
35791 , p_source_16 => p_source_16
35792 , p_source_16_meaning => p_source_16_meaning
35793          , x_transaction_coa_id       => l_adr_transaction_coa_id
35794          , x_accounting_coa_id        => l_adr_accounting_coa_id
35795          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
35796          , x_flex_value_set_id        => l_adr_flex_value_set_id
35797          , x_value_type_code          => l_adr_value_type_code
35798          , x_value_combination_id     => l_adr_value_combination_id
35799          , x_value_segment_code       => l_adr_value_segment_code
35800          , p_side                     => 'NA'
35801          , p_override_seg_flag        => 'Y'
35802    );
35803 
35804    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
35805 
35806       xla_ae_lines_pkg.set_segment(
35807           p_to_segment_code         => 'GL_ACCOUNT'
35808         , p_segment_value           => l_segment
35809         , p_from_segment_code       => l_adr_value_segment_code
35810         , p_from_combination_id     => l_adr_value_combination_id
35811         , p_value_type_code         => l_adr_value_type_code
35812         , p_transaction_coa_id      => l_adr_transaction_coa_id
35813         , p_accounting_coa_id       => l_adr_accounting_coa_id
35814         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
35815         , p_flex_value_set_id       => l_adr_flex_value_set_id
35819         , p_component_code          => l_component_code
35816         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
35817         , p_adr_type_code           => 'S'
35818         , p_component_type          => l_component_type
35820         , p_component_type_code     => l_component_type_code
35821         , p_component_appl_id       => l_component_appl_id
35822         , p_amb_context_code        => l_amb_context_code
35823         , p_entity_code             => 'AP_PAYMENTS'
35824         , p_event_class_code        => 'REFUNDS'
35825         , p_side                    => 'NA'
35826         );
35827 
35828   END IF;
35829 
35830    --
35831    --
35832    END IF;
35833    --
35834    -- Bug 4922099
35835    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35836           (NVL(l_enc_upg_option, 'N') = 'O')
35837         ) AND
35838         (l_bflow_method_code = 'PRIOR_ENTRY')
35839       )
35840    THEN
35841       IF
35842       --
35843       1 = 2
35844       --
35845       THEN
35846       xla_accounting_err_pkg.build_message
35847                                     (p_appli_s_name            => 'XLA'
35848                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35849                                     ,p_token_1                 => 'LINE_NUMBER'
35850                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
35851                                     ,p_token_2                 => 'LINE_TYPE_NAME'
35852                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
35853                                                                              l_component_type
35854                                                                             ,l_component_code
35855                                                                             ,l_component_type_code
35856                                                                             ,l_component_appl_id
35857                                                                             ,l_amb_context_code
35858                                                                             ,l_entity_code
35859                                                                             ,l_event_class_code
35860                                                                            )
35861                                     ,p_token_3                 => 'OWNER'
35862                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
35863                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
35864                                                                           ,p_lookup_code    => l_component_type_code
35865                                                                          )
35866                                     ,p_token_4                 => 'PRODUCT_NAME'
35867                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35868                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35869                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35870                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35871                                     ,p_ae_header_id            =>  NULL
35872                                        );
35873 
35874         IF (C_LEVEL_ERROR>= g_log_level) THEN
35875                  trace
35876                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35877                       ,p_level    => C_LEVEL_ERROR
35878                       ,p_module   => l_log_module);
35879         END IF;
35880       END IF;
35881    END IF;
35882    --
35883    --
35884    ------------------------------------------------------------------------------------------------
35885    -- 4219869 Business Flow
35886    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35887    -- Prior Entry.  Currently, the following code is always generated.
35888    ------------------------------------------------------------------------------------------------
35889    XLA_AE_LINES_PKG.ValidateCurrentLine;
35890 
35891    ------------------------------------------------------------------------------------
35892    -- 4219869 Business Flow
35893    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35894    ------------------------------------------------------------------------------------
35895    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35896 
35897    ----------------------------------------------------------------------------------
35898    -- 4219869 Business Flow
35899    -- Update journal entry status -- Need to generate this within IF <condition>
35900    ----------------------------------------------------------------------------------
35901    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35902          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35903          ,p_balance_type_code => l_balance_type_code
35904          );
35905 
35906    -------------------------------------------------------------------------------------------
35907    -- 4262811 - Generate the Accrual Reversal lines
35908    -------------------------------------------------------------------------------------------
35909    BEGIN
35910       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35911                               (g_array_event(p_event_id).array_value_num('header_index'));
35915    EXCEPTION
35912       IF l_acc_rev_flag IS NULL THEN
35913          l_acc_rev_flag := 'N';
35914       END IF;
35916       WHEN OTHERS THEN
35917          l_acc_rev_flag := 'N';
35918    END;
35919    --
35920    IF (l_acc_rev_flag = 'Y') THEN
35921 
35922        -- 4645092  ------------------------------------------------------------------------------
35923        -- To allow MPA report to determine if it should generate report process
35924        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35925        ------------------------------------------------------------------------------------------
35926 
35927        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35928        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35929    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
35930    -- call ADRs
35931    -- Bug 4922099
35932    --
35933    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35934         (NVL(l_actual_upg_option, 'N') = 'O') OR
35935         (NVL(l_enc_upg_option, 'N') = 'O')
35936       )
35937    THEN
35938    NULL;
35939    --
35940    --
35941    
35942   l_ccid := AcctDerRule_23(
35943            p_application_id           => p_application_id
35944          , p_ae_header_id             => l_ae_header_id 
35945 , p_source_14 => p_source_14
35946 , p_source_15 => p_source_15
35947 , p_source_15_meaning => p_source_15_meaning
35948 , p_source_16 => p_source_16
35949 , p_source_16_meaning => p_source_16_meaning
35950 , p_source_29 => p_source_29
35951 , p_source_32 => p_source_32
35952 , p_source_32_meaning => p_source_32_meaning
35953 , p_source_39 => p_source_39
35954 , p_source_40 => p_source_40
35955 , p_source_41 => p_source_41
35956          , x_transaction_coa_id       => l_adr_transaction_coa_id
35957          , x_accounting_coa_id        => l_adr_accounting_coa_id
35958          , x_value_type_code          => l_adr_value_type_code
35959          , p_side                     => 'NA'
35960    );
35961 
35962    xla_ae_lines_pkg.set_ccid(
35963     p_code_combination_id          => l_ccid
35964   , p_value_type_code              => l_adr_value_type_code
35965   , p_transaction_coa_id           => l_adr_transaction_coa_id
35966   , p_accounting_coa_id            => l_adr_accounting_coa_id
35967   , p_adr_code                     => 'AP_DISCOUNT'
35968   , p_adr_type_code                => 'S'
35969   , p_component_type               => l_component_type
35970   , p_component_code               => l_component_code
35971   , p_component_type_code          => l_component_type_code
35972   , p_component_appl_id            => l_component_appl_id
35973   , p_amb_context_code             => l_amb_context_code
35974   , p_side                         => 'NA'
35975   );
35976 
35977 
35978    l_segment := AcctDerRule_15(
35979            p_application_id           => p_application_id
35980          , p_ae_header_id             => l_ae_header_id 
35981 , p_source_15 => p_source_15
35982 , p_source_15_meaning => p_source_15_meaning
35983 , p_source_16 => p_source_16
35984 , p_source_16_meaning => p_source_16_meaning
35985 , p_source_29 => p_source_29
35986          , x_transaction_coa_id       => l_adr_transaction_coa_id
35987          , x_accounting_coa_id        => l_adr_accounting_coa_id
35988          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
35989          , x_flex_value_set_id        => l_adr_flex_value_set_id
35990          , x_value_type_code          => l_adr_value_type_code
35991          , x_value_combination_id     => l_adr_value_combination_id
35992          , x_value_segment_code       => l_adr_value_segment_code
35993          , p_side                     => 'NA'
35994          , p_override_seg_flag        => 'Y'
35995    );
35996 
35997    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
35998 
35999       xla_ae_lines_pkg.set_segment(
36000           p_to_segment_code         => 'GL_BALANCING'
36001         , p_segment_value           => l_segment
36002         , p_from_segment_code       => l_adr_value_segment_code
36003         , p_from_combination_id     => l_adr_value_combination_id
36004         , p_value_type_code         => l_adr_value_type_code
36005         , p_transaction_coa_id      => l_adr_transaction_coa_id
36006         , p_accounting_coa_id       => l_adr_accounting_coa_id
36007         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
36008         , p_flex_value_set_id       => l_adr_flex_value_set_id
36009         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
36010         , p_adr_type_code           => 'S'
36011         , p_component_type          => l_component_type
36012         , p_component_code          => l_component_code
36013         , p_component_type_code     => l_component_type_code
36014         , p_component_appl_id       => l_component_appl_id
36015         , p_amb_context_code        => l_amb_context_code
36016         , p_entity_code             => 'AP_PAYMENTS'
36017         , p_event_class_code        => 'REFUNDS'
36018         , p_side                    => 'NA'
36019         );
36020 
36021   END IF;
36022 
36023    l_segment := AcctDerRule_4(
36024            p_application_id           => p_application_id
36025          , p_ae_header_id             => l_ae_header_id 
36026 , p_source_14 => p_source_14
36027 , p_source_15 => p_source_15
36028 , p_source_15_meaning => p_source_15_meaning
36029 , p_source_16 => p_source_16
36030 , p_source_16_meaning => p_source_16_meaning
36034          , x_flex_value_set_id        => l_adr_flex_value_set_id
36031          , x_transaction_coa_id       => l_adr_transaction_coa_id
36032          , x_accounting_coa_id        => l_adr_accounting_coa_id
36033          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
36035          , x_value_type_code          => l_adr_value_type_code
36036          , x_value_combination_id     => l_adr_value_combination_id
36037          , x_value_segment_code       => l_adr_value_segment_code
36038          , p_side                     => 'NA'
36039          , p_override_seg_flag        => 'Y'
36040    );
36041 
36042    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
36043 
36044       xla_ae_lines_pkg.set_segment(
36045           p_to_segment_code         => 'GL_ACCOUNT'
36046         , p_segment_value           => l_segment
36047         , p_from_segment_code       => l_adr_value_segment_code
36048         , p_from_combination_id     => l_adr_value_combination_id
36049         , p_value_type_code         => l_adr_value_type_code
36050         , p_transaction_coa_id      => l_adr_transaction_coa_id
36051         , p_accounting_coa_id       => l_adr_accounting_coa_id
36052         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
36053         , p_flex_value_set_id       => l_adr_flex_value_set_id
36054         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
36055         , p_adr_type_code           => 'S'
36056         , p_component_type          => l_component_type
36057         , p_component_code          => l_component_code
36058         , p_component_type_code     => l_component_type_code
36059         , p_component_appl_id       => l_component_appl_id
36060         , p_amb_context_code        => l_amb_context_code
36061         , p_entity_code             => 'AP_PAYMENTS'
36062         , p_event_class_code        => 'REFUNDS'
36063         , p_side                    => 'NA'
36064         );
36065 
36066   END IF;
36067 
36068    --
36069    --
36070    END IF;
36071 
36072        --
36073        -- Update the line information that should be overwritten
36074        --
36075        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36076                                          p_header_num   => 1);
36077        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
36078 
36079        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36080 
36081        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
36082           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36083        END IF;
36084 
36085       --
36086       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36087       --
36088       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36089           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
36090       ELSE
36091           ---------------------------------------------------------------------------------------------------
36092           -- 4262811a Switch Sign
36093           ---------------------------------------------------------------------------------------------------
36094           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
36095           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36096                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36097           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36098                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36099           -- 5132302
36100           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36101                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36102 
36103       END IF;
36104 
36105       -- 4955764
36106       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36107       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36108 
36109 
36110       XLA_AE_LINES_PKG.ValidateCurrentLine;
36111       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36112 
36113       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36114                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36115                ,p_balance_type_code => l_balance_type_code);
36116 
36117    END IF;
36118 
36119    -----------------------------------------------------------------------------------------
36120    -- 4262811 Multiperiod Accounting
36121    -----------------------------------------------------------------------------------------
36122      -- No MPA option is assigned.
36123 
36124 
36125 END IF;
36126 END IF;
36127 --
36128 
36129 --
36130 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36131    trace
36132       (p_msg      => 'END of AcctLineType_79'
36133       ,p_level    => C_LEVEL_PROCEDURE
36134       ,p_module   => l_log_module);
36135 END IF;
36136 --
36137 EXCEPTION
36138   WHEN xla_exceptions_pkg.application_exception THEN
36139       RAISE;
36140   WHEN OTHERS THEN
36141        xla_exceptions_pkg.raise_message
36145 
36142            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_79');
36143 END AcctLineType_79;
36144 --
36146 ---------------------------------------
36147 --
36148 -- PRIVATE FUNCTION
36149 --         AcctLineType_80
36150 --
36151 ---------------------------------------
36152 PROCEDURE AcctLineType_80 (
36153   p_application_id        IN NUMBER
36154  ,p_event_id              IN NUMBER
36155  ,p_calculate_acctd_flag  IN VARCHAR2
36156  ,p_calculate_g_l_flag    IN VARCHAR2
36157  ,p_actual_flag           IN OUT VARCHAR2
36158  ,p_balance_type_code     OUT VARCHAR2
36159  ,p_gain_or_loss_ref      OUT VARCHAR2
36160  
36161 --Payment Currency Code
36162  , p_source_12            IN VARCHAR2
36163 --Automatic Offsets Value
36164  , p_source_16            IN VARCHAR2
36165  , p_source_16_meaning    IN VARCHAR2
36166 --Purchase Order Rate Variance Gain Account
36167  , p_source_17            IN NUMBER
36168 --Destination Type of the PO Distribution
36169  , p_source_19            IN VARCHAR2
36170  , p_source_19_meaning    IN VARCHAR2
36171 --Purchase Order Rate Variance Loss Account
36172  , p_source_20            IN NUMBER
36173 --Payment Distribution (Payment Rate) Ledger Amount
36174  , p_source_21            IN NUMBER
36175 --Payment Distribution (Cleared Rate) Ledger Amount
36176  , p_source_22            IN NUMBER
36177 --Invoice Distribution Account
36178  , p_source_29            IN NUMBER
36179 --Automatic Offsets Flag
36180  , p_source_42            IN VARCHAR2
36181  , p_source_42_meaning    IN VARCHAR2
36182 --When to Account for Payment Option
36183  , p_source_50            IN VARCHAR2
36184 --Payment Distribution Type
36185  , p_source_51            IN VARCHAR2
36186  , p_source_51_meaning    IN VARCHAR2
36187 --Accounting Reversal Indicator
36188  , p_source_52            IN VARCHAR2
36189 --Payment Distribution Amount
36190  , p_source_53            IN NUMBER
36191 --Business Flow Accounts Payable Application Identifier
36192  , p_source_54            IN NUMBER
36193 --Business Flow Payment Distribution Type
36194  , p_source_55            IN VARCHAR2
36195 --Business Flow Payment Entity Code
36196  , p_source_56            IN VARCHAR2
36197 --Business Flow Payment Distribution Identifier
36198  , p_source_57            IN NUMBER
36199 --Business Flow Payment Identifier
36200  , p_source_58            IN NUMBER
36201 --Payment Distribution Identifier
36202  , p_source_59            IN NUMBER
36203 --Distribution Link Type
36204  , p_source_60            IN VARCHAR2
36205 --Override Accounted Amount Indicator
36206  , p_source_64            IN VARCHAR2
36207  , p_source_64_meaning    IN VARCHAR2
36208 --Payment Supplier Identifier
36209  , p_source_65            IN NUMBER
36210 --Payment Supplier Site Identifier
36211  , p_source_66            IN NUMBER
36212 --Third Party Type
36213  , p_source_67            IN VARCHAR2
36214 --Payment Distribution Reversed Identifier
36215  , p_source_68            IN NUMBER
36216 --Invoice Distribution Tax Line Identifier
36217  , p_source_69            IN NUMBER
36218 --Invoice Distribution Summary Tax Line Identifier
36219  , p_source_70            IN NUMBER
36220 --Accrue on Receipt Option
36221  , p_source_111            IN VARCHAR2
36222  , p_source_111_meaning    IN VARCHAR2
36223 --Cleared Exchange Date
36224  , p_source_114            IN DATE
36225 --Cleared Exchange Rate
36226  , p_source_115            IN NUMBER
36227 --Cleared Exchange Rate Type
36228  , p_source_116            IN VARCHAR2
36229 )
36230 IS
36231 
36232 l_component_type              VARCHAR2(80);
36233 l_component_code              VARCHAR2(30);
36234 l_component_type_code         VARCHAR2(1);
36235 l_component_appl_id           INTEGER;
36236 l_amb_context_code            VARCHAR2(30);
36237 l_entity_code                 VARCHAR2(30);
36238 l_event_class_code            VARCHAR2(30);
36239 l_ae_header_id                NUMBER;
36240 l_event_type_code             VARCHAR2(30);
36241 l_line_definition_code        VARCHAR2(30);
36242 l_line_definition_owner_code  VARCHAR2(1);
36243 --
36244 -- adr variables
36245 l_segment                     VARCHAR2(30);
36246 l_ccid                        NUMBER;
36247 l_adr_transaction_coa_id      NUMBER;
36248 l_adr_accounting_coa_id       NUMBER;
36249 l_adr_flexfield_segment_code  VARCHAR2(30);
36250 l_adr_flex_value_set_id       NUMBER;
36251 l_adr_value_type_code         VARCHAR2(30);
36252 l_adr_value_combination_id    NUMBER;
36253 l_adr_value_segment_code      VARCHAR2(30);
36254 
36255 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
36256 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
36257 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
36258 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
36259 
36260 -- 4262811 Variables ------------------------------------------------------------------------------------------
36261 l_entered_amt_idx             NUMBER;
36262 l_accted_amt_idx              NUMBER;
36263 l_acc_rev_flag                VARCHAR2(1);
36264 l_accrual_line_num            NUMBER;
36265 l_tmp_amt                     NUMBER;
36266 l_acc_rev_natural_side_code   VARCHAR2(1);
36267 
36268 l_num_entries                 NUMBER;
36269 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
36270 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
36274 l_recog_line_2                NUMBER;
36271 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
36272 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
36273 l_recog_line_1                NUMBER;
36275 
36276 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
36277 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
36278 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
36279 
36280 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36281 
36282 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
36283 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
36284 
36285 ---------------------------------------------------------------------------------------------------------------
36286 
36287 
36288 --
36289 -- bulk performance
36290 --
36291 l_balance_type_code           VARCHAR2(1);
36292 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
36293 l_log_module                  VARCHAR2(240);
36294 
36295 --
36296 -- Upgrade strategy
36297 --
36298 l_actual_upg_option           VARCHAR2(1);
36299 l_enc_upg_option           VARCHAR2(1);
36300 
36301 --
36302 BEGIN
36303 --
36304 IF g_log_enabled THEN
36305       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
36306 END IF;
36307 --
36308 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36309 
36310       trace
36311          (p_msg      => 'BEGIN of AcctLineType_80'
36312          ,p_level    => C_LEVEL_PROCEDURE
36313          ,p_module   => l_log_module);
36314 
36315 END IF;
36316 --
36317 l_component_type             := 'AMB_JLT';
36318 l_component_code             := 'AP_EX_RATE_VAR_CLEAR';
36319 l_component_type_code        := 'S';
36320 l_component_appl_id          :=  200;
36321 l_amb_context_code           := 'DEFAULT';
36322 l_entity_code                := 'AP_PAYMENTS';
36323 l_event_class_code           := 'RECONCILED PAYMENTS';
36324 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
36325 l_line_definition_owner_code := 'S';
36326 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
36327 --
36328 l_balance_type_code          := 'A';
36329 l_segment                     := NULL;
36330 l_ccid                        := NULL;
36331 l_adr_transaction_coa_id      := NULL;
36332 l_adr_accounting_coa_id       := NULL;
36333 l_adr_flexfield_segment_code  := NULL;
36334 l_adr_flex_value_set_id       := NULL;
36335 l_adr_value_type_code         := NULL;
36336 l_adr_value_combination_id    := NULL;
36337 l_adr_value_segment_code      := NULL;
36338 
36339 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
36340 l_bflow_class_code           := '';    -- 4219869 Business Flow
36341 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
36342 l_budgetary_control_flag     := 'N';
36343 
36344 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
36345 l_bflow_applied_to_amt       := NULL; -- 5132302
36346 l_entered_amt_idx            := NULL;          -- 4262811
36347 l_accted_amt_idx             := NULL;          -- 4262811
36348 l_acc_rev_flag               := NULL;          -- 4262811
36349 l_accrual_line_num           := NULL;          -- 4262811
36350 l_tmp_amt                    := NULL;          -- 4262811
36351 --
36352 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
36353             (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
36354                return;
36355   END IF;
36356   
36357 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36358     l_balance_type_code <> 'B' THEN
36359 IF NVL(p_source_50,'
36360 ') =  'CLEAR_CLEAR' AND 
36361 NVL(p_source_51,'
36362 ') =  'EXCHANGE RATE VARIANCE' AND 
36363 NVL(p_source_111,'
36364 ') =  'Y'
36365  THEN 
36366 
36367    --
36368    XLA_AE_LINES_PKG.SetNewLine;
36369 
36370    p_balance_type_code          := l_balance_type_code;
36371    -- set the flag so later we will know whether the gain loss line needs to be created
36372    
36373    IF(l_balance_type_code = 'A' ) THEN
36374      p_actual_flag :='G';
36375    END IF;
36376 
36377    --
36378    -- bulk performance
36379    --
36380    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36381                                       p_header_num   => 0); -- 4262811
36382    --
36383    -- set accounting line options
36384    --
36385    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36386            p_natural_side_code          => 'D'
36387          , p_gain_or_loss_flag          => 'Y'
36388          , p_gl_transfer_mode_code      => 'S'
36389          , p_acct_entry_type_code       => 'A'
36390          , p_switch_side_flag           => 'Y'
36391          , p_merge_duplicate_code       => 'A'
36392          );
36393    --
36394    l_acc_rev_natural_side_code := 'C';  -- 4262811
36395    -- 
36396    --
36397    -- set accounting line type info
36398    --
36399    xla_ae_lines_pkg.SetAcctLineType
36400       (p_component_type             => l_component_type
36401       ,p_event_type_code            => l_event_type_code
36402       ,p_line_definition_owner_code => l_line_definition_owner_code
36403       ,p_line_definition_code       => l_line_definition_code
36407       ,p_amb_context_code           => l_amb_context_code
36404       ,p_accounting_line_code       => l_component_code
36405       ,p_accounting_line_type_code  => l_component_type_code
36406       ,p_accounting_line_appl_id    => l_component_appl_id
36408       ,p_entity_code                => l_entity_code
36409       ,p_event_class_code           => l_event_class_code);
36410    --
36411    -- set accounting class
36412    --
36413    xla_ae_lines_pkg.SetAcctClass(
36414            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
36415          , p_ae_header_id           => l_ae_header_id
36416          );
36417 
36418    --
36419    -- set rounding class
36420    --
36421    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36422                       'EXCHANGE_RATE_VARIANCE';
36423 
36424    --
36425    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36426    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36427    --
36428    -- bulk performance
36429    --
36430    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36431 
36432    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36433       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36434 
36435    -- 4955764
36436    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36437       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36438 
36439    -- 4458381 Public Sector Enh
36440    
36441    --
36442    -- set accounting attributes for the line type
36443    --
36444    l_entered_amt_idx := 10;
36445    l_accted_amt_idx  := 15;
36446    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
36447    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36448    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
36449    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
36450    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
36451    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
36452    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
36453    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36454    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
36455    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
36456    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
36457    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
36458    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
36459    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36460    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
36461    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
36462    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
36463    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
36464    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
36465    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
36466    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
36467    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
36468    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
36469    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
36470    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
36471    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
36472    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
36473    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
36474    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
36475    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
36476    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
36477    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
36478    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
36479    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
36480    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
36481    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
36482    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
36483    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
36484    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
36485    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
36486    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
36487    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
36488    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
36489    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
36490    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
36491    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
36492    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
36493    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
36494    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
36495 
36496    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36497    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36498 
36499    ---------------------------------------------------------------------------------------------------------------
36500    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36504    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36501    ---------------------------------------------------------------------------------------------------------------
36502    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36503 
36505    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36506 
36507    IF xla_accounting_cache_pkg.GetValueChar
36508          (p_source_code         => 'LEDGER_CATEGORY_CODE'
36509          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36510    AND l_bflow_method_code = 'PRIOR_ENTRY'
36511 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36512    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36513          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36514        )
36515    THEN
36516          xla_ae_lines_pkg.BflowUpgEntry
36517            (p_business_method_code    => l_bflow_method_code
36518            ,p_business_class_code     => l_bflow_class_code
36519            ,p_balance_type            => l_balance_type_code);
36520    ELSE
36521       NULL;
36522 -- No business flow processing for business flow method of NONE.
36523    END IF;
36524 
36525    --
36526    -- call analytical criteria
36527    --
36528    
36529    --
36530    -- call description
36531    --
36532    -- No description or it is inherited.
36533    --
36534    -- call ADRs
36535    -- Bug 4922099
36536    --
36537    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36538         (NVL(l_actual_upg_option, 'N') = 'O') OR
36539         (NVL(l_enc_upg_option, 'N') = 'O')
36540       )
36541    THEN
36542    NULL;
36543    --
36544    --
36545    
36546   l_ccid := AcctDerRule_24(
36547            p_application_id           => p_application_id
36548          , p_ae_header_id             => l_ae_header_id 
36549 , p_source_16 => p_source_16
36550 , p_source_16_meaning => p_source_16_meaning
36551 , p_source_17 => p_source_17
36552 , p_source_19 => p_source_19
36553 , p_source_19_meaning => p_source_19_meaning
36554 , p_source_20 => p_source_20
36555 , p_source_21 => p_source_21
36556 , p_source_22 => p_source_22
36557 , p_source_29 => p_source_29
36558 , p_source_42 => p_source_42
36559 , p_source_42_meaning => p_source_42_meaning
36560          , x_transaction_coa_id       => l_adr_transaction_coa_id
36561          , x_accounting_coa_id        => l_adr_accounting_coa_id
36562          , x_value_type_code          => l_adr_value_type_code
36563          , p_side                     => 'NA'
36564    );
36565 
36566    xla_ae_lines_pkg.set_ccid(
36567     p_code_combination_id          => l_ccid
36568   , p_value_type_code              => l_adr_value_type_code
36569   , p_transaction_coa_id           => l_adr_transaction_coa_id
36570   , p_accounting_coa_id            => l_adr_accounting_coa_id
36571   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
36572   , p_adr_type_code                => 'S'
36573   , p_component_type               => l_component_type
36574   , p_component_code               => l_component_code
36575   , p_component_type_code          => l_component_type_code
36576   , p_component_appl_id            => l_component_appl_id
36577   , p_amb_context_code             => l_amb_context_code
36578   , p_side                         => 'NA'
36579   );
36580 
36581 
36582    l_segment := AcctDerRule_6(
36583            p_application_id           => p_application_id
36584          , p_ae_header_id             => l_ae_header_id 
36585 , p_source_16 => p_source_16
36586 , p_source_16_meaning => p_source_16_meaning
36587 , p_source_17 => p_source_17
36588 , p_source_19 => p_source_19
36589 , p_source_19_meaning => p_source_19_meaning
36590 , p_source_20 => p_source_20
36591 , p_source_21 => p_source_21
36592 , p_source_22 => p_source_22
36593          , x_transaction_coa_id       => l_adr_transaction_coa_id
36594          , x_accounting_coa_id        => l_adr_accounting_coa_id
36595          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
36596          , x_flex_value_set_id        => l_adr_flex_value_set_id
36597          , x_value_type_code          => l_adr_value_type_code
36598          , x_value_combination_id     => l_adr_value_combination_id
36599          , x_value_segment_code       => l_adr_value_segment_code
36600          , p_side                     => 'NA'
36601          , p_override_seg_flag        => 'Y'
36602    );
36603 
36604    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
36605 
36606       xla_ae_lines_pkg.set_segment(
36607           p_to_segment_code         => 'GL_ACCOUNT'
36608         , p_segment_value           => l_segment
36609         , p_from_segment_code       => l_adr_value_segment_code
36610         , p_from_combination_id     => l_adr_value_combination_id
36611         , p_value_type_code         => l_adr_value_type_code
36612         , p_transaction_coa_id      => l_adr_transaction_coa_id
36613         , p_accounting_coa_id       => l_adr_accounting_coa_id
36614         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
36615         , p_flex_value_set_id       => l_adr_flex_value_set_id
36616         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
36617         , p_adr_type_code           => 'S'
36618         , p_component_type          => l_component_type
36619         , p_component_code          => l_component_code
36620         , p_component_type_code     => l_component_type_code
36624         , p_event_class_code        => 'RECONCILED PAYMENTS'
36621         , p_component_appl_id       => l_component_appl_id
36622         , p_amb_context_code        => l_amb_context_code
36623         , p_entity_code             => 'AP_PAYMENTS'
36625         , p_side                    => 'NA'
36626         );
36627 
36628   END IF;
36629 
36630    l_segment := AcctDerRule_17(
36631            p_application_id           => p_application_id
36632          , p_ae_header_id             => l_ae_header_id 
36633 , p_source_16 => p_source_16
36634 , p_source_16_meaning => p_source_16_meaning
36635 , p_source_19 => p_source_19
36636 , p_source_19_meaning => p_source_19_meaning
36637 , p_source_29 => p_source_29
36638          , x_transaction_coa_id       => l_adr_transaction_coa_id
36639          , x_accounting_coa_id        => l_adr_accounting_coa_id
36640          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
36641          , x_flex_value_set_id        => l_adr_flex_value_set_id
36642          , x_value_type_code          => l_adr_value_type_code
36643          , x_value_combination_id     => l_adr_value_combination_id
36644          , x_value_segment_code       => l_adr_value_segment_code
36645          , p_side                     => 'NA'
36646          , p_override_seg_flag        => 'Y'
36647    );
36648 
36649    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
36650 
36651       xla_ae_lines_pkg.set_segment(
36652           p_to_segment_code         => 'GL_BALANCING'
36653         , p_segment_value           => l_segment
36654         , p_from_segment_code       => l_adr_value_segment_code
36655         , p_from_combination_id     => l_adr_value_combination_id
36656         , p_value_type_code         => l_adr_value_type_code
36657         , p_transaction_coa_id      => l_adr_transaction_coa_id
36658         , p_accounting_coa_id       => l_adr_accounting_coa_id
36659         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
36660         , p_flex_value_set_id       => l_adr_flex_value_set_id
36661         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
36662         , p_adr_type_code           => 'S'
36663         , p_component_type          => l_component_type
36664         , p_component_code          => l_component_code
36665         , p_component_type_code     => l_component_type_code
36666         , p_component_appl_id       => l_component_appl_id
36667         , p_amb_context_code        => l_amb_context_code
36668         , p_entity_code             => 'AP_PAYMENTS'
36669         , p_event_class_code        => 'RECONCILED PAYMENTS'
36670         , p_side                    => 'NA'
36671         );
36672 
36673   END IF;
36674 
36675    --
36676    --
36677    END IF;
36678    --
36679    -- Bug 4922099
36680    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36681           (NVL(l_enc_upg_option, 'N') = 'O')
36682         ) AND
36683         (l_bflow_method_code = 'PRIOR_ENTRY')
36684       )
36685    THEN
36686       IF
36687       --
36688       1 = 2
36689       --
36690       THEN
36691       xla_accounting_err_pkg.build_message
36692                                     (p_appli_s_name            => 'XLA'
36693                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36694                                     ,p_token_1                 => 'LINE_NUMBER'
36695                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
36696                                     ,p_token_2                 => 'LINE_TYPE_NAME'
36697                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
36698                                                                              l_component_type
36699                                                                             ,l_component_code
36700                                                                             ,l_component_type_code
36701                                                                             ,l_component_appl_id
36702                                                                             ,l_amb_context_code
36703                                                                             ,l_entity_code
36704                                                                             ,l_event_class_code
36705                                                                            )
36706                                     ,p_token_3                 => 'OWNER'
36707                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
36708                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
36709                                                                           ,p_lookup_code    => l_component_type_code
36710                                                                          )
36711                                     ,p_token_4                 => 'PRODUCT_NAME'
36712                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36713                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36714                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36715                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36716                                     ,p_ae_header_id            =>  NULL
36717                                        );
36718 
36722                       ,p_level    => C_LEVEL_ERROR
36719         IF (C_LEVEL_ERROR>= g_log_level) THEN
36720                  trace
36721                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36723                       ,p_module   => l_log_module);
36724         END IF;
36725       END IF;
36726    END IF;
36727    --
36728    --
36729    ------------------------------------------------------------------------------------------------
36730    -- 4219869 Business Flow
36731    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36732    -- Prior Entry.  Currently, the following code is always generated.
36733    ------------------------------------------------------------------------------------------------
36734    XLA_AE_LINES_PKG.ValidateCurrentLine;
36735 
36736    ------------------------------------------------------------------------------------
36737    -- 4219869 Business Flow
36738    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36739    ------------------------------------------------------------------------------------
36740    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36741 
36742    ----------------------------------------------------------------------------------
36743    -- 4219869 Business Flow
36744    -- Update journal entry status -- Need to generate this within IF <condition>
36745    ----------------------------------------------------------------------------------
36746    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36747          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36748          ,p_balance_type_code => l_balance_type_code
36749          );
36750 
36751    -------------------------------------------------------------------------------------------
36752    -- 4262811 - Generate the Accrual Reversal lines
36753    -------------------------------------------------------------------------------------------
36754    BEGIN
36755       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36756                               (g_array_event(p_event_id).array_value_num('header_index'));
36757       IF l_acc_rev_flag IS NULL THEN
36758          l_acc_rev_flag := 'N';
36759       END IF;
36760    EXCEPTION
36761       WHEN OTHERS THEN
36762          l_acc_rev_flag := 'N';
36763    END;
36764    --
36765    IF (l_acc_rev_flag = 'Y') THEN
36766 
36767        -- 4645092  ------------------------------------------------------------------------------
36768        -- To allow MPA report to determine if it should generate report process
36769        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36770        ------------------------------------------------------------------------------------------
36771 
36772        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36773        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36774    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
36775    -- call ADRs
36776    -- Bug 4922099
36777    --
36778    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36779         (NVL(l_actual_upg_option, 'N') = 'O') OR
36780         (NVL(l_enc_upg_option, 'N') = 'O')
36781       )
36782    THEN
36783    NULL;
36784    --
36785    --
36786    
36787   l_ccid := AcctDerRule_24(
36788            p_application_id           => p_application_id
36789          , p_ae_header_id             => l_ae_header_id 
36790 , p_source_16 => p_source_16
36791 , p_source_16_meaning => p_source_16_meaning
36792 , p_source_17 => p_source_17
36793 , p_source_19 => p_source_19
36794 , p_source_19_meaning => p_source_19_meaning
36795 , p_source_20 => p_source_20
36796 , p_source_21 => p_source_21
36797 , p_source_22 => p_source_22
36798 , p_source_29 => p_source_29
36799 , p_source_42 => p_source_42
36800 , p_source_42_meaning => p_source_42_meaning
36801          , x_transaction_coa_id       => l_adr_transaction_coa_id
36802          , x_accounting_coa_id        => l_adr_accounting_coa_id
36803          , x_value_type_code          => l_adr_value_type_code
36804          , p_side                     => 'NA'
36805    );
36806 
36807    xla_ae_lines_pkg.set_ccid(
36808     p_code_combination_id          => l_ccid
36809   , p_value_type_code              => l_adr_value_type_code
36810   , p_transaction_coa_id           => l_adr_transaction_coa_id
36811   , p_accounting_coa_id            => l_adr_accounting_coa_id
36812   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
36813   , p_adr_type_code                => 'S'
36814   , p_component_type               => l_component_type
36815   , p_component_code               => l_component_code
36816   , p_component_type_code          => l_component_type_code
36817   , p_component_appl_id            => l_component_appl_id
36818   , p_amb_context_code             => l_amb_context_code
36819   , p_side                         => 'NA'
36820   );
36821 
36822 
36823    l_segment := AcctDerRule_6(
36824            p_application_id           => p_application_id
36825          , p_ae_header_id             => l_ae_header_id 
36826 , p_source_16 => p_source_16
36827 , p_source_16_meaning => p_source_16_meaning
36828 , p_source_17 => p_source_17
36829 , p_source_19 => p_source_19
36830 , p_source_19_meaning => p_source_19_meaning
36831 , p_source_20 => p_source_20
36832 , p_source_21 => p_source_21
36833 , p_source_22 => p_source_22
36834          , x_transaction_coa_id       => l_adr_transaction_coa_id
36838          , x_value_type_code          => l_adr_value_type_code
36835          , x_accounting_coa_id        => l_adr_accounting_coa_id
36836          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
36837          , x_flex_value_set_id        => l_adr_flex_value_set_id
36839          , x_value_combination_id     => l_adr_value_combination_id
36840          , x_value_segment_code       => l_adr_value_segment_code
36841          , p_side                     => 'NA'
36842          , p_override_seg_flag        => 'Y'
36843    );
36844 
36845    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
36846 
36847       xla_ae_lines_pkg.set_segment(
36848           p_to_segment_code         => 'GL_ACCOUNT'
36849         , p_segment_value           => l_segment
36850         , p_from_segment_code       => l_adr_value_segment_code
36851         , p_from_combination_id     => l_adr_value_combination_id
36852         , p_value_type_code         => l_adr_value_type_code
36853         , p_transaction_coa_id      => l_adr_transaction_coa_id
36854         , p_accounting_coa_id       => l_adr_accounting_coa_id
36855         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
36856         , p_flex_value_set_id       => l_adr_flex_value_set_id
36857         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
36858         , p_adr_type_code           => 'S'
36859         , p_component_type          => l_component_type
36860         , p_component_code          => l_component_code
36861         , p_component_type_code     => l_component_type_code
36862         , p_component_appl_id       => l_component_appl_id
36863         , p_amb_context_code        => l_amb_context_code
36864         , p_entity_code             => 'AP_PAYMENTS'
36865         , p_event_class_code        => 'RECONCILED PAYMENTS'
36866         , p_side                    => 'NA'
36867         );
36868 
36869   END IF;
36870 
36871    l_segment := AcctDerRule_17(
36872            p_application_id           => p_application_id
36873          , p_ae_header_id             => l_ae_header_id 
36874 , p_source_16 => p_source_16
36875 , p_source_16_meaning => p_source_16_meaning
36876 , p_source_19 => p_source_19
36877 , p_source_19_meaning => p_source_19_meaning
36878 , p_source_29 => p_source_29
36879          , x_transaction_coa_id       => l_adr_transaction_coa_id
36880          , x_accounting_coa_id        => l_adr_accounting_coa_id
36881          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
36882          , x_flex_value_set_id        => l_adr_flex_value_set_id
36883          , x_value_type_code          => l_adr_value_type_code
36884          , x_value_combination_id     => l_adr_value_combination_id
36885          , x_value_segment_code       => l_adr_value_segment_code
36886          , p_side                     => 'NA'
36887          , p_override_seg_flag        => 'Y'
36888    );
36889 
36890    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
36891 
36892       xla_ae_lines_pkg.set_segment(
36893           p_to_segment_code         => 'GL_BALANCING'
36894         , p_segment_value           => l_segment
36895         , p_from_segment_code       => l_adr_value_segment_code
36896         , p_from_combination_id     => l_adr_value_combination_id
36897         , p_value_type_code         => l_adr_value_type_code
36898         , p_transaction_coa_id      => l_adr_transaction_coa_id
36899         , p_accounting_coa_id       => l_adr_accounting_coa_id
36900         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
36901         , p_flex_value_set_id       => l_adr_flex_value_set_id
36902         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
36903         , p_adr_type_code           => 'S'
36904         , p_component_type          => l_component_type
36905         , p_component_code          => l_component_code
36906         , p_component_type_code     => l_component_type_code
36907         , p_component_appl_id       => l_component_appl_id
36908         , p_amb_context_code        => l_amb_context_code
36909         , p_entity_code             => 'AP_PAYMENTS'
36910         , p_event_class_code        => 'RECONCILED PAYMENTS'
36911         , p_side                    => 'NA'
36912         );
36913 
36914   END IF;
36915 
36916    --
36917    --
36918    END IF;
36919 
36920        --
36921        -- Update the line information that should be overwritten
36922        --
36923        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36924                                          p_header_num   => 1);
36925        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
36926 
36927        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36928 
36929        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
36930           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36931        END IF;
36932 
36933       --
36934       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36935       --
36936       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36937           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
36938       ELSE
36939           ---------------------------------------------------------------------------------------------------
36940           -- 4262811a Switch Sign
36944                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36941           ---------------------------------------------------------------------------------------------------
36942           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
36943           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36945           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36946                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36947           -- 5132302
36948           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36949                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36950 
36951       END IF;
36952 
36953       -- 4955764
36954       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36955       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36956 
36957 
36958       XLA_AE_LINES_PKG.ValidateCurrentLine;
36959       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36960 
36961       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36962                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36963                ,p_balance_type_code => l_balance_type_code);
36964 
36965    END IF;
36966 
36967    -----------------------------------------------------------------------------------------
36968    -- 4262811 Multiperiod Accounting
36969    -----------------------------------------------------------------------------------------
36970      -- No MPA option is assigned.
36971 
36972 
36973 END IF;
36974 END IF;
36975 --
36976 
36977 --
36978 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36979    trace
36980       (p_msg      => 'END of AcctLineType_80'
36981       ,p_level    => C_LEVEL_PROCEDURE
36982       ,p_module   => l_log_module);
36983 END IF;
36984 --
36985 EXCEPTION
36986   WHEN xla_exceptions_pkg.application_exception THEN
36987       RAISE;
36988   WHEN OTHERS THEN
36989        xla_exceptions_pkg.raise_message
36990            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_80');
36991 END AcctLineType_80;
36992 --
36993 
36994 ---------------------------------------
36995 --
36996 -- PRIVATE FUNCTION
36997 --         AcctLineType_81
36998 --
36999 ---------------------------------------
37000 PROCEDURE AcctLineType_81 (
37001   p_application_id        IN NUMBER
37002  ,p_event_id              IN NUMBER
37003  ,p_calculate_acctd_flag  IN VARCHAR2
37004  ,p_calculate_g_l_flag    IN VARCHAR2
37005  ,p_actual_flag           IN OUT VARCHAR2
37006  ,p_balance_type_code     OUT VARCHAR2
37007  ,p_gain_or_loss_ref      OUT VARCHAR2
37008  
37009 --Automatic Offsets Value
37010  , p_source_16            IN VARCHAR2
37011  , p_source_16_meaning    IN VARCHAR2
37012 --Purchase Order Rate Variance Gain Account
37013  , p_source_17            IN NUMBER
37014 --Invoice Distribution Ledger Amount
37015  , p_source_18            IN NUMBER
37016 --Destination Type of the PO Distribution
37017  , p_source_19            IN VARCHAR2
37018  , p_source_19_meaning    IN VARCHAR2
37019 --Purchase Order Rate Variance Loss Account
37020  , p_source_20            IN NUMBER
37021 --Invoice Distribution Account
37022  , p_source_29            IN NUMBER
37023 --Automatic Offsets Flag
37024  , p_source_42            IN VARCHAR2
37025  , p_source_42_meaning    IN VARCHAR2
37026 --When to Account for Payment Option
37027  , p_source_50            IN VARCHAR2
37028 --Accounting Reversal Indicator
37029  , p_source_52            IN VARCHAR2
37030 --Business Flow Accounts Payable Application Identifier
37031  , p_source_54            IN NUMBER
37032 --Distribution Link Type
37033  , p_source_60            IN VARCHAR2
37034 --Override Accounted Amount Indicator
37035  , p_source_64            IN VARCHAR2
37036  , p_source_64_meaning    IN VARCHAR2
37037 --Third Party Type
37038  , p_source_67            IN VARCHAR2
37039 --Invoice Distribution Tax Line Identifier
37040  , p_source_69            IN NUMBER
37041 --Invoice Distribution Summary Tax Line Identifier
37042  , p_source_70            IN NUMBER
37043 --Invoice Distribution Tax Distribution Identifier from Tax
37044  , p_source_77            IN NUMBER
37045 --Prepayment Distribution Type
37046  , p_source_78            IN VARCHAR2
37047 --Recipient Invoice Distribution Type
37048  , p_source_79            IN VARCHAR2
37049  , p_source_79_meaning    IN VARCHAR2
37050 --Prepayment Application Distribution Identifier
37051  , p_source_82            IN NUMBER
37052 --Invoice Identifier
37053  , p_source_83            IN NUMBER
37054 --Business Flow Prepayment Invoice Distribution Type
37055  , p_source_84            IN VARCHAR2
37056 --Business Flow Prepayment Invoice Entity Code
37057  , p_source_85            IN VARCHAR2
37058 --Business Flow Prepayment Invoice Distribution Identifier
37059  , p_source_86            IN NUMBER
37060 --Business Flow Prepayment Invoice Identifier
37061  , p_source_87            IN NUMBER
37062 --Upgrade Encumbrance Credit Account Class
37063  , p_source_88            IN VARCHAR2
37064 --Payables Encumbrance Upgrade Credit Account
37065  , p_source_89            IN NUMBER
37066 --Payables Encumbrance Upgrade Credit Amount
37070 --Payables Encumbrance Upgrade Credit Base Amount
37067  , p_source_90            IN NUMBER
37068 --Invoice Currency Code
37069  , p_source_91            IN VARCHAR2
37071  , p_source_92            IN NUMBER
37072 --Upgrade Encumbrance Debit Account Class
37073  , p_source_93            IN VARCHAR2
37074 --Payables Encumbrance Upgrade Debit Account
37075  , p_source_94            IN NUMBER
37076 --Payables Encumbrance Upgrade Debit Amount
37077  , p_source_95            IN NUMBER
37078 --Payables Encumbrance Upgrade Debit Base Amount
37079  , p_source_96            IN NUMBER
37080 --Payables Encumbrance Upgrade Option
37081  , p_source_97            IN VARCHAR2
37082 --Prepayment Distribution Amount
37083  , p_source_98            IN NUMBER
37084 --Prepayment Clearing Currency Code
37085  , p_source_99            IN VARCHAR2
37086 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
37087  , p_source_100            IN NUMBER
37088 --Deferred Accounting End Date
37089  , p_source_101            IN DATE
37090 --Deferred Accounting Option
37091  , p_source_102            IN VARCHAR2
37092 --Deferred Accounting Start Date
37093  , p_source_103            IN DATE
37094 --Invoice Supplier Identifier
37095  , p_source_104            IN NUMBER
37096 --Invoice Supplier Site Identifier
37097  , p_source_105            IN NUMBER
37098 --Identifier of the Prepayment Application Reversed
37099  , p_source_106            IN NUMBER
37100 --Payables Upgrade Credit Encumbrance Type Identifier
37101  , p_source_107            IN NUMBER
37102 --Payables Upgrade Debit Encumbrance Type Identifier
37103  , p_source_108            IN NUMBER
37104 --Accrue on Receipt Option
37105  , p_source_111            IN VARCHAR2
37106  , p_source_111_meaning    IN VARCHAR2
37107 --Prepayment Clearing Exchange Date
37108  , p_source_125            IN DATE
37109 --Prepayment Clearing Exchange Rate
37110  , p_source_126            IN NUMBER
37111 --Prepayment Clearing Exchange Rate Type
37112  , p_source_127            IN VARCHAR2
37113 )
37114 IS
37115 
37116 l_component_type              VARCHAR2(80);
37117 l_component_code              VARCHAR2(30);
37118 l_component_type_code         VARCHAR2(1);
37119 l_component_appl_id           INTEGER;
37120 l_amb_context_code            VARCHAR2(30);
37121 l_entity_code                 VARCHAR2(30);
37122 l_event_class_code            VARCHAR2(30);
37123 l_ae_header_id                NUMBER;
37124 l_event_type_code             VARCHAR2(30);
37125 l_line_definition_code        VARCHAR2(30);
37126 l_line_definition_owner_code  VARCHAR2(1);
37127 --
37128 -- adr variables
37129 l_segment                     VARCHAR2(30);
37130 l_ccid                        NUMBER;
37131 l_adr_transaction_coa_id      NUMBER;
37132 l_adr_accounting_coa_id       NUMBER;
37133 l_adr_flexfield_segment_code  VARCHAR2(30);
37134 l_adr_flex_value_set_id       NUMBER;
37135 l_adr_value_type_code         VARCHAR2(30);
37136 l_adr_value_combination_id    NUMBER;
37137 l_adr_value_segment_code      VARCHAR2(30);
37138 
37139 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
37140 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
37141 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
37142 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
37143 
37144 -- 4262811 Variables ------------------------------------------------------------------------------------------
37145 l_entered_amt_idx             NUMBER;
37146 l_accted_amt_idx              NUMBER;
37147 l_acc_rev_flag                VARCHAR2(1);
37148 l_accrual_line_num            NUMBER;
37149 l_tmp_amt                     NUMBER;
37150 l_acc_rev_natural_side_code   VARCHAR2(1);
37151 
37152 l_num_entries                 NUMBER;
37153 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
37154 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
37155 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
37156 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
37157 l_recog_line_1                NUMBER;
37158 l_recog_line_2                NUMBER;
37159 
37160 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
37161 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
37162 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
37163 
37164 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37165 
37166 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
37167 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
37168 
37169 ---------------------------------------------------------------------------------------------------------------
37170 
37171 
37172 --
37173 -- bulk performance
37174 --
37175 l_balance_type_code           VARCHAR2(1);
37176 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
37177 l_log_module                  VARCHAR2(240);
37178 
37179 --
37180 -- Upgrade strategy
37181 --
37182 l_actual_upg_option           VARCHAR2(1);
37183 l_enc_upg_option           VARCHAR2(1);
37184 
37185 --
37186 BEGIN
37187 --
37188 IF g_log_enabled THEN
37189       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
37190 END IF;
37191 --
37192 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37193 
37194       trace
37195          (p_msg      => 'BEGIN of AcctLineType_81'
37196          ,p_level    => C_LEVEL_PROCEDURE
37200 --
37197          ,p_module   => l_log_module);
37198 
37199 END IF;
37201 l_component_type             := 'AMB_JLT';
37202 l_component_code             := 'AP_EX_RATE_VAR_CLR_RATE';
37203 l_component_type_code        := 'S';
37204 l_component_appl_id          :=  200;
37205 l_amb_context_code           := 'DEFAULT';
37206 l_entity_code                := 'AP_INVOICES';
37207 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
37208 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
37209 l_line_definition_owner_code := 'S';
37210 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
37211 --
37212 l_balance_type_code          := 'A';
37213 l_segment                     := NULL;
37214 l_ccid                        := NULL;
37215 l_adr_transaction_coa_id      := NULL;
37216 l_adr_accounting_coa_id       := NULL;
37217 l_adr_flexfield_segment_code  := NULL;
37218 l_adr_flex_value_set_id       := NULL;
37219 l_adr_value_type_code         := NULL;
37220 l_adr_value_combination_id    := NULL;
37221 l_adr_value_segment_code      := NULL;
37222 
37223 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
37224 l_bflow_class_code           := '';    -- 4219869 Business Flow
37225 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
37226 l_budgetary_control_flag     := 'N';
37227 
37228 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
37229 l_bflow_applied_to_amt       := NULL; -- 5132302
37230 l_entered_amt_idx            := NULL;          -- 4262811
37231 l_accted_amt_idx             := NULL;          -- 4262811
37232 l_acc_rev_flag               := NULL;          -- 4262811
37233 l_accrual_line_num           := NULL;          -- 4262811
37234 l_tmp_amt                    := NULL;          -- 4262811
37235 --
37236 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
37237             (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
37238                return;
37239   END IF;
37240   
37241 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37242     l_balance_type_code <> 'B' THEN
37243 IF NVL(p_source_50,'
37244 ') =  'CLEAR_CLEAR' AND 
37245 (NVL(p_source_78,'
37246 ') =  'PREPAY APPL' OR 
37247 NVL(p_source_78,'
37248 ') =  'PREPAY APPL NONREC TAX' OR 
37249 NVL(p_source_78,'
37250 ') =  'PREPAY APPL REC TAX') AND 
37251 NVL(p_source_79,'
37252 ') =  'ERV' AND 
37253 NVL(p_source_111,'
37254 ') =  'Y'
37255  THEN 
37256 
37257    --
37258    XLA_AE_LINES_PKG.SetNewLine;
37259 
37260    p_balance_type_code          := l_balance_type_code;
37261    -- set the flag so later we will know whether the gain loss line needs to be created
37262    
37263    IF(l_balance_type_code = 'A' ) THEN
37264      p_actual_flag :='G';
37265    END IF;
37266 
37267    --
37268    -- bulk performance
37269    --
37270    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37271                                       p_header_num   => 0); -- 4262811
37272    --
37273    -- set accounting line options
37274    --
37275    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37276            p_natural_side_code          => 'C'
37277          , p_gain_or_loss_flag          => 'Y'
37278          , p_gl_transfer_mode_code      => 'S'
37279          , p_acct_entry_type_code       => 'A'
37280          , p_switch_side_flag           => 'Y'
37281          , p_merge_duplicate_code       => 'A'
37282          );
37283    --
37284    l_acc_rev_natural_side_code := 'D';  -- 4262811
37285    -- 
37286    --
37287    -- set accounting line type info
37288    --
37289    xla_ae_lines_pkg.SetAcctLineType
37290       (p_component_type             => l_component_type
37291       ,p_event_type_code            => l_event_type_code
37292       ,p_line_definition_owner_code => l_line_definition_owner_code
37293       ,p_line_definition_code       => l_line_definition_code
37294       ,p_accounting_line_code       => l_component_code
37295       ,p_accounting_line_type_code  => l_component_type_code
37296       ,p_accounting_line_appl_id    => l_component_appl_id
37297       ,p_amb_context_code           => l_amb_context_code
37298       ,p_entity_code                => l_entity_code
37299       ,p_event_class_code           => l_event_class_code);
37300    --
37301    -- set accounting class
37302    --
37303    xla_ae_lines_pkg.SetAcctClass(
37304            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
37305          , p_ae_header_id           => l_ae_header_id
37306          );
37307 
37308    --
37309    -- set rounding class
37310    --
37311    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37312                       'EXCHANGE_RATE_VARIANCE';
37313 
37314    --
37315    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37316    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37317    --
37318    -- bulk performance
37319    --
37320    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37321 
37322    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37326    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37323       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37324 
37325    -- 4955764
37327       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37328 
37329    -- 4458381 Public Sector Enh
37330    
37331    --
37332    -- set accounting attributes for the line type
37333    --
37334    l_entered_amt_idx := 25;
37335    l_accted_amt_idx  := 30;
37336    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
37337    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37338    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
37339    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
37340    l_rec_acct_attrs.array_num_value(2)  := 
37341 xla_ae_sources_pkg.GetSystemSourceNum(
37342    p_source_code           => 'XLA_EVENT_APPL_ID'
37343  , p_source_type_code      => 'Y'
37344  , p_source_application_id =>  602
37345 );
37346    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
37347    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
37348    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
37349    l_rec_acct_attrs.array_char_value(4)  := 
37350 xla_ae_sources_pkg.GetSystemSourceChar(
37351    p_source_code           => 'XLA_ENTITY_CODE'
37352  , p_source_type_code      => 'Y'
37353  , p_source_application_id =>  602
37354 );
37355    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
37356    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
37357    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
37358    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
37359    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
37360    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
37361    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37362    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
37363    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
37364    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
37365    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
37366    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
37367    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37368    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
37369    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
37370    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
37371    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
37372    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
37373    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
37374    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
37375    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
37376    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
37377    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
37378    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
37379    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
37380    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
37381    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
37382    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
37383    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
37384    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
37385    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
37386    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
37387    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
37388    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
37389    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
37390    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
37391    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
37392    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
37393    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
37394    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
37395    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
37396    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
37397    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
37398    l_rec_acct_attrs.array_char_value(26)  := p_source_99;
37399    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
37400    l_rec_acct_attrs.array_date_value(27)  := p_source_125;
37401    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
37402    l_rec_acct_attrs.array_num_value(28)  := p_source_126;
37403    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
37404    l_rec_acct_attrs.array_char_value(29)  := p_source_127;
37405    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
37406    l_rec_acct_attrs.array_num_value(30)  := p_source_100;
37407    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
37408    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
37409    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
37410    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
37411    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
37412    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
37413    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
37414    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
37418    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
37415    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
37416    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
37417    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
37419    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
37420    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
37421    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
37422    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
37423    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
37424    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
37425    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
37426    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
37427    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
37428    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
37429    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
37430    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
37431    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
37432    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
37433    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
37434    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
37435 
37436    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37437    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37438 
37439    ---------------------------------------------------------------------------------------------------------------
37440    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37441    ---------------------------------------------------------------------------------------------------------------
37442    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37443 
37444    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37445    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37446 
37447    IF xla_accounting_cache_pkg.GetValueChar
37448          (p_source_code         => 'LEDGER_CATEGORY_CODE'
37449          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37450    AND l_bflow_method_code = 'PRIOR_ENTRY'
37451 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37452    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37453          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37454        )
37455    THEN
37456          xla_ae_lines_pkg.BflowUpgEntry
37457            (p_business_method_code    => l_bflow_method_code
37458            ,p_business_class_code     => l_bflow_class_code
37459            ,p_balance_type            => l_balance_type_code);
37460    ELSE
37461       NULL;
37462 -- No business flow processing for business flow method of NONE.
37463    END IF;
37464 
37465    --
37466    -- call analytical criteria
37467    --
37468    
37469    --
37470    -- call description
37471    --
37472    -- No description or it is inherited.
37473    --
37474    -- call ADRs
37475    -- Bug 4922099
37476    --
37477    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37478         (NVL(l_actual_upg_option, 'N') = 'O') OR
37479         (NVL(l_enc_upg_option, 'N') = 'O')
37480       )
37481    THEN
37482    NULL;
37483    --
37484    --
37485    
37486   l_ccid := AcctDerRule_25(
37487            p_application_id           => p_application_id
37488          , p_ae_header_id             => l_ae_header_id 
37489 , p_source_16 => p_source_16
37490 , p_source_16_meaning => p_source_16_meaning
37491 , p_source_17 => p_source_17
37492 , p_source_18 => p_source_18
37493 , p_source_19 => p_source_19
37494 , p_source_19_meaning => p_source_19_meaning
37495 , p_source_20 => p_source_20
37496 , p_source_29 => p_source_29
37497 , p_source_42 => p_source_42
37498 , p_source_42_meaning => p_source_42_meaning
37499          , x_transaction_coa_id       => l_adr_transaction_coa_id
37500          , x_accounting_coa_id        => l_adr_accounting_coa_id
37501          , x_value_type_code          => l_adr_value_type_code
37502          , p_side                     => 'NA'
37503    );
37504 
37505    xla_ae_lines_pkg.set_ccid(
37506     p_code_combination_id          => l_ccid
37507   , p_value_type_code              => l_adr_value_type_code
37508   , p_transaction_coa_id           => l_adr_transaction_coa_id
37509   , p_accounting_coa_id            => l_adr_accounting_coa_id
37510   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
37511   , p_adr_type_code                => 'S'
37512   , p_component_type               => l_component_type
37513   , p_component_code               => l_component_code
37514   , p_component_type_code          => l_component_type_code
37515   , p_component_appl_id            => l_component_appl_id
37516   , p_amb_context_code             => l_amb_context_code
37517   , p_side                         => 'NA'
37518   );
37519 
37520 
37521    l_segment := AcctDerRule_5(
37522            p_application_id           => p_application_id
37523          , p_ae_header_id             => l_ae_header_id 
37524 , p_source_16 => p_source_16
37525 , p_source_16_meaning => p_source_16_meaning
37526 , p_source_17 => p_source_17
37527 , p_source_18 => p_source_18
37531          , x_transaction_coa_id       => l_adr_transaction_coa_id
37528 , p_source_19 => p_source_19
37529 , p_source_19_meaning => p_source_19_meaning
37530 , p_source_20 => p_source_20
37532          , x_accounting_coa_id        => l_adr_accounting_coa_id
37533          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
37534          , x_flex_value_set_id        => l_adr_flex_value_set_id
37535          , x_value_type_code          => l_adr_value_type_code
37536          , x_value_combination_id     => l_adr_value_combination_id
37537          , x_value_segment_code       => l_adr_value_segment_code
37538          , p_side                     => 'NA'
37539          , p_override_seg_flag        => 'Y'
37540    );
37541 
37542    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
37543 
37544       xla_ae_lines_pkg.set_segment(
37545           p_to_segment_code         => 'GL_ACCOUNT'
37546         , p_segment_value           => l_segment
37547         , p_from_segment_code       => l_adr_value_segment_code
37548         , p_from_combination_id     => l_adr_value_combination_id
37549         , p_value_type_code         => l_adr_value_type_code
37550         , p_transaction_coa_id      => l_adr_transaction_coa_id
37551         , p_accounting_coa_id       => l_adr_accounting_coa_id
37552         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
37553         , p_flex_value_set_id       => l_adr_flex_value_set_id
37554         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
37555         , p_adr_type_code           => 'S'
37556         , p_component_type          => l_component_type
37557         , p_component_code          => l_component_code
37558         , p_component_type_code     => l_component_type_code
37559         , p_component_appl_id       => l_component_appl_id
37560         , p_amb_context_code        => l_amb_context_code
37561         , p_entity_code             => 'AP_INVOICES'
37562         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
37563         , p_side                    => 'NA'
37564         );
37565 
37566   END IF;
37567 
37568    l_segment := AcctDerRule_17(
37569            p_application_id           => p_application_id
37570          , p_ae_header_id             => l_ae_header_id 
37571 , p_source_16 => p_source_16
37572 , p_source_16_meaning => p_source_16_meaning
37573 , p_source_19 => p_source_19
37574 , p_source_19_meaning => p_source_19_meaning
37575 , p_source_29 => p_source_29
37576          , x_transaction_coa_id       => l_adr_transaction_coa_id
37577          , x_accounting_coa_id        => l_adr_accounting_coa_id
37578          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
37579          , x_flex_value_set_id        => l_adr_flex_value_set_id
37580          , x_value_type_code          => l_adr_value_type_code
37581          , x_value_combination_id     => l_adr_value_combination_id
37582          , x_value_segment_code       => l_adr_value_segment_code
37583          , p_side                     => 'NA'
37584          , p_override_seg_flag        => 'Y'
37585    );
37586 
37587    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
37588 
37589       xla_ae_lines_pkg.set_segment(
37590           p_to_segment_code         => 'GL_BALANCING'
37591         , p_segment_value           => l_segment
37592         , p_from_segment_code       => l_adr_value_segment_code
37593         , p_from_combination_id     => l_adr_value_combination_id
37594         , p_value_type_code         => l_adr_value_type_code
37595         , p_transaction_coa_id      => l_adr_transaction_coa_id
37596         , p_accounting_coa_id       => l_adr_accounting_coa_id
37597         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
37598         , p_flex_value_set_id       => l_adr_flex_value_set_id
37599         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
37600         , p_adr_type_code           => 'S'
37601         , p_component_type          => l_component_type
37602         , p_component_code          => l_component_code
37603         , p_component_type_code     => l_component_type_code
37604         , p_component_appl_id       => l_component_appl_id
37605         , p_amb_context_code        => l_amb_context_code
37606         , p_entity_code             => 'AP_INVOICES'
37607         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
37608         , p_side                    => 'NA'
37609         );
37610 
37611   END IF;
37612 
37613    --
37614    --
37615    END IF;
37616    --
37617    -- Bug 4922099
37618    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37619           (NVL(l_enc_upg_option, 'N') = 'O')
37620         ) AND
37621         (l_bflow_method_code = 'PRIOR_ENTRY')
37622       )
37623    THEN
37624       IF
37625       --
37626       1 = 2
37627       --
37628       THEN
37629       xla_accounting_err_pkg.build_message
37630                                     (p_appli_s_name            => 'XLA'
37631                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37632                                     ,p_token_1                 => 'LINE_NUMBER'
37633                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
37634                                     ,p_token_2                 => 'LINE_TYPE_NAME'
37635                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
37636                                                                              l_component_type
37637                                                                             ,l_component_code
37641                                                                             ,l_entity_code
37638                                                                             ,l_component_type_code
37639                                                                             ,l_component_appl_id
37640                                                                             ,l_amb_context_code
37642                                                                             ,l_event_class_code
37643                                                                            )
37644                                     ,p_token_3                 => 'OWNER'
37645                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
37646                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
37647                                                                           ,p_lookup_code    => l_component_type_code
37648                                                                          )
37649                                     ,p_token_4                 => 'PRODUCT_NAME'
37650                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37651                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37652                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37653                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37654                                     ,p_ae_header_id            =>  NULL
37655                                        );
37656 
37657         IF (C_LEVEL_ERROR>= g_log_level) THEN
37658                  trace
37659                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37660                       ,p_level    => C_LEVEL_ERROR
37661                       ,p_module   => l_log_module);
37662         END IF;
37663       END IF;
37664    END IF;
37665    --
37666    --
37667    ------------------------------------------------------------------------------------------------
37668    -- 4219869 Business Flow
37669    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37670    -- Prior Entry.  Currently, the following code is always generated.
37671    ------------------------------------------------------------------------------------------------
37672    XLA_AE_LINES_PKG.ValidateCurrentLine;
37673 
37674    ------------------------------------------------------------------------------------
37675    -- 4219869 Business Flow
37676    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37677    ------------------------------------------------------------------------------------
37678    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37679 
37680    ----------------------------------------------------------------------------------
37681    -- 4219869 Business Flow
37682    -- Update journal entry status -- Need to generate this within IF <condition>
37683    ----------------------------------------------------------------------------------
37684    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37685          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37686          ,p_balance_type_code => l_balance_type_code
37687          );
37688 
37689    -------------------------------------------------------------------------------------------
37690    -- 4262811 - Generate the Accrual Reversal lines
37691    -------------------------------------------------------------------------------------------
37692    BEGIN
37693       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37694                               (g_array_event(p_event_id).array_value_num('header_index'));
37695       IF l_acc_rev_flag IS NULL THEN
37696          l_acc_rev_flag := 'N';
37697       END IF;
37698    EXCEPTION
37699       WHEN OTHERS THEN
37700          l_acc_rev_flag := 'N';
37701    END;
37702    --
37703    IF (l_acc_rev_flag = 'Y') THEN
37704 
37705        -- 4645092  ------------------------------------------------------------------------------
37706        -- To allow MPA report to determine if it should generate report process
37707        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37708        ------------------------------------------------------------------------------------------
37709 
37710        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37711        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37712    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
37713    -- call ADRs
37714    -- Bug 4922099
37715    --
37716    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37717         (NVL(l_actual_upg_option, 'N') = 'O') OR
37718         (NVL(l_enc_upg_option, 'N') = 'O')
37719       )
37720    THEN
37721    NULL;
37722    --
37723    --
37724    
37725   l_ccid := AcctDerRule_25(
37726            p_application_id           => p_application_id
37727          , p_ae_header_id             => l_ae_header_id 
37728 , p_source_16 => p_source_16
37729 , p_source_16_meaning => p_source_16_meaning
37730 , p_source_17 => p_source_17
37731 , p_source_18 => p_source_18
37732 , p_source_19 => p_source_19
37733 , p_source_19_meaning => p_source_19_meaning
37734 , p_source_20 => p_source_20
37735 , p_source_29 => p_source_29
37736 , p_source_42 => p_source_42
37737 , p_source_42_meaning => p_source_42_meaning
37741          , p_side                     => 'NA'
37738          , x_transaction_coa_id       => l_adr_transaction_coa_id
37739          , x_accounting_coa_id        => l_adr_accounting_coa_id
37740          , x_value_type_code          => l_adr_value_type_code
37742    );
37743 
37744    xla_ae_lines_pkg.set_ccid(
37745     p_code_combination_id          => l_ccid
37746   , p_value_type_code              => l_adr_value_type_code
37747   , p_transaction_coa_id           => l_adr_transaction_coa_id
37748   , p_accounting_coa_id            => l_adr_accounting_coa_id
37749   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
37750   , p_adr_type_code                => 'S'
37751   , p_component_type               => l_component_type
37752   , p_component_code               => l_component_code
37753   , p_component_type_code          => l_component_type_code
37754   , p_component_appl_id            => l_component_appl_id
37755   , p_amb_context_code             => l_amb_context_code
37756   , p_side                         => 'NA'
37757   );
37758 
37759 
37760    l_segment := AcctDerRule_5(
37761            p_application_id           => p_application_id
37762          , p_ae_header_id             => l_ae_header_id 
37763 , p_source_16 => p_source_16
37764 , p_source_16_meaning => p_source_16_meaning
37765 , p_source_17 => p_source_17
37766 , p_source_18 => p_source_18
37767 , p_source_19 => p_source_19
37768 , p_source_19_meaning => p_source_19_meaning
37769 , p_source_20 => p_source_20
37770          , x_transaction_coa_id       => l_adr_transaction_coa_id
37771          , x_accounting_coa_id        => l_adr_accounting_coa_id
37772          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
37773          , x_flex_value_set_id        => l_adr_flex_value_set_id
37774          , x_value_type_code          => l_adr_value_type_code
37775          , x_value_combination_id     => l_adr_value_combination_id
37776          , x_value_segment_code       => l_adr_value_segment_code
37777          , p_side                     => 'NA'
37778          , p_override_seg_flag        => 'Y'
37779    );
37780 
37781    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
37782 
37783       xla_ae_lines_pkg.set_segment(
37784           p_to_segment_code         => 'GL_ACCOUNT'
37785         , p_segment_value           => l_segment
37786         , p_from_segment_code       => l_adr_value_segment_code
37787         , p_from_combination_id     => l_adr_value_combination_id
37788         , p_value_type_code         => l_adr_value_type_code
37789         , p_transaction_coa_id      => l_adr_transaction_coa_id
37790         , p_accounting_coa_id       => l_adr_accounting_coa_id
37791         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
37792         , p_flex_value_set_id       => l_adr_flex_value_set_id
37793         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
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_entity_code             => 'AP_INVOICES'
37801         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
37802         , p_side                    => 'NA'
37803         );
37804 
37805   END IF;
37806 
37807    l_segment := AcctDerRule_17(
37808            p_application_id           => p_application_id
37809          , p_ae_header_id             => l_ae_header_id 
37810 , p_source_16 => p_source_16
37811 , p_source_16_meaning => p_source_16_meaning
37812 , p_source_19 => p_source_19
37813 , p_source_19_meaning => p_source_19_meaning
37814 , p_source_29 => p_source_29
37815          , x_transaction_coa_id       => l_adr_transaction_coa_id
37816          , x_accounting_coa_id        => l_adr_accounting_coa_id
37817          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
37818          , x_flex_value_set_id        => l_adr_flex_value_set_id
37819          , x_value_type_code          => l_adr_value_type_code
37820          , x_value_combination_id     => l_adr_value_combination_id
37821          , x_value_segment_code       => l_adr_value_segment_code
37822          , p_side                     => 'NA'
37823          , p_override_seg_flag        => 'Y'
37824    );
37825 
37826    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
37827 
37828       xla_ae_lines_pkg.set_segment(
37829           p_to_segment_code         => 'GL_BALANCING'
37830         , p_segment_value           => l_segment
37831         , p_from_segment_code       => l_adr_value_segment_code
37832         , p_from_combination_id     => l_adr_value_combination_id
37833         , p_value_type_code         => l_adr_value_type_code
37834         , p_transaction_coa_id      => l_adr_transaction_coa_id
37835         , p_accounting_coa_id       => l_adr_accounting_coa_id
37836         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
37837         , p_flex_value_set_id       => l_adr_flex_value_set_id
37838         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
37839         , p_adr_type_code           => 'S'
37840         , p_component_type          => l_component_type
37841         , p_component_code          => l_component_code
37842         , p_component_type_code     => l_component_type_code
37843         , p_component_appl_id       => l_component_appl_id
37844         , p_amb_context_code        => l_amb_context_code
37848         );
37845         , p_entity_code             => 'AP_INVOICES'
37846         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
37847         , p_side                    => 'NA'
37849 
37850   END IF;
37851 
37852    --
37853    --
37854    END IF;
37855 
37856        --
37857        -- Update the line information that should be overwritten
37858        --
37859        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37860                                          p_header_num   => 1);
37861        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
37862 
37863        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37864 
37865        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
37866           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37867        END IF;
37868 
37869       --
37870       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37871       --
37872       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37873           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
37874       ELSE
37875           ---------------------------------------------------------------------------------------------------
37876           -- 4262811a Switch Sign
37877           ---------------------------------------------------------------------------------------------------
37878           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
37879           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37880                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37881           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37882                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37883           -- 5132302
37884           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37885                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37886 
37887       END IF;
37888 
37889       -- 4955764
37890       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37891       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37892 
37893 
37894       XLA_AE_LINES_PKG.ValidateCurrentLine;
37895       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37896 
37897       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37898                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37899                ,p_balance_type_code => l_balance_type_code);
37900 
37901    END IF;
37902 
37903    -----------------------------------------------------------------------------------------
37904    -- 4262811 Multiperiod Accounting
37905    -----------------------------------------------------------------------------------------
37906      -- No MPA option is assigned.
37907 
37908 
37909 END IF;
37910 END IF;
37911 --
37912 
37913 --
37914 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37915    trace
37916       (p_msg      => 'END of AcctLineType_81'
37917       ,p_level    => C_LEVEL_PROCEDURE
37918       ,p_module   => l_log_module);
37919 END IF;
37920 --
37921 EXCEPTION
37922   WHEN xla_exceptions_pkg.application_exception THEN
37923       RAISE;
37924   WHEN OTHERS THEN
37925        xla_exceptions_pkg.raise_message
37926            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_81');
37927 END AcctLineType_81;
37928 --
37929 
37930 ---------------------------------------
37931 --
37932 -- PRIVATE FUNCTION
37933 --         AcctLineType_82
37934 --
37935 ---------------------------------------
37936 PROCEDURE AcctLineType_82 (
37937   p_application_id        IN NUMBER
37938  ,p_event_id              IN NUMBER
37939  ,p_calculate_acctd_flag  IN VARCHAR2
37940  ,p_calculate_g_l_flag    IN VARCHAR2
37941  ,p_actual_flag           IN OUT VARCHAR2
37942  ,p_balance_type_code     OUT VARCHAR2
37943  ,p_gain_or_loss_ref      OUT VARCHAR2
37944  
37945 --Payment Currency Code
37946  , p_source_12            IN VARCHAR2
37947 --Automatic Offsets Value
37948  , p_source_16            IN VARCHAR2
37949  , p_source_16_meaning    IN VARCHAR2
37950 --Purchase Order Rate Variance Gain Account
37951  , p_source_17            IN NUMBER
37952 --Destination Type of the PO Distribution
37953  , p_source_19            IN VARCHAR2
37954  , p_source_19_meaning    IN VARCHAR2
37955 --Purchase Order Rate Variance Loss Account
37956  , p_source_20            IN NUMBER
37957 --Payment Distribution (Payment Rate) Ledger Amount
37958  , p_source_21            IN NUMBER
37959 --Payment Distribution (Cleared Rate) Ledger Amount
37960  , p_source_22            IN NUMBER
37961 --Invoice Distribution Account
37962  , p_source_29            IN NUMBER
37963 --Automatic Offsets Flag
37964  , p_source_42            IN VARCHAR2
37965  , p_source_42_meaning    IN VARCHAR2
37966 --When to Account for Payment Option
37967  , p_source_50            IN VARCHAR2
37971 --Accounting Reversal Indicator
37968 --Payment Distribution Type
37969  , p_source_51            IN VARCHAR2
37970  , p_source_51_meaning    IN VARCHAR2
37972  , p_source_52            IN VARCHAR2
37973 --Payment Distribution Amount
37974  , p_source_53            IN NUMBER
37975 --Business Flow Accounts Payable Application Identifier
37976  , p_source_54            IN NUMBER
37977 --Payment Distribution Identifier
37978  , p_source_59            IN NUMBER
37979 --Distribution Link Type
37980  , p_source_60            IN VARCHAR2
37981 --Override Accounted Amount Indicator
37982  , p_source_64            IN VARCHAR2
37983  , p_source_64_meaning    IN VARCHAR2
37984 --Payment Supplier Identifier
37985  , p_source_65            IN NUMBER
37986 --Payment Supplier Site Identifier
37987  , p_source_66            IN NUMBER
37988 --Third Party Type
37989  , p_source_67            IN VARCHAR2
37990 --Payment Distribution Reversed Identifier
37991  , p_source_68            IN NUMBER
37992 --Invoice Distribution Tax Line Identifier
37993  , p_source_69            IN NUMBER
37994 --Invoice Distribution Summary Tax Line Identifier
37995  , p_source_70            IN NUMBER
37996 --Payment Type
37997  , p_source_71            IN VARCHAR2
37998  , p_source_71_meaning    IN VARCHAR2
37999 --Invoice Distribution Amount of the Payment Distribution
38000  , p_source_72            IN NUMBER
38001 --Business Flow Invoice Distribution Type
38002  , p_source_73            IN VARCHAR2
38003 --Business Flow Invoice Entity Code
38004  , p_source_74            IN VARCHAR2
38005 --Business Flow Invoice Distribution Identifier
38006  , p_source_75            IN NUMBER
38007 --Business Flow Invoice Identifier
38008  , p_source_76            IN NUMBER
38009 --Invoice Distribution Tax Distribution Identifier from Tax
38010  , p_source_77            IN NUMBER
38011 --Accrue on Receipt Option
38012  , p_source_111            IN VARCHAR2
38013  , p_source_111_meaning    IN VARCHAR2
38014 --Payment Exchange Date
38015  , p_source_121            IN DATE
38016 --Payment Exchange Rate
38017  , p_source_122            IN NUMBER
38018 --Payment Exchange Rate Type
38019  , p_source_123            IN VARCHAR2
38020 )
38021 IS
38022 
38023 l_component_type              VARCHAR2(80);
38024 l_component_code              VARCHAR2(30);
38025 l_component_type_code         VARCHAR2(1);
38026 l_component_appl_id           INTEGER;
38027 l_amb_context_code            VARCHAR2(30);
38028 l_entity_code                 VARCHAR2(30);
38029 l_event_class_code            VARCHAR2(30);
38030 l_ae_header_id                NUMBER;
38031 l_event_type_code             VARCHAR2(30);
38032 l_line_definition_code        VARCHAR2(30);
38033 l_line_definition_owner_code  VARCHAR2(1);
38034 --
38035 -- adr variables
38036 l_segment                     VARCHAR2(30);
38037 l_ccid                        NUMBER;
38038 l_adr_transaction_coa_id      NUMBER;
38039 l_adr_accounting_coa_id       NUMBER;
38040 l_adr_flexfield_segment_code  VARCHAR2(30);
38041 l_adr_flex_value_set_id       NUMBER;
38042 l_adr_value_type_code         VARCHAR2(30);
38043 l_adr_value_combination_id    NUMBER;
38044 l_adr_value_segment_code      VARCHAR2(30);
38045 
38046 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
38047 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
38048 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
38049 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
38050 
38051 -- 4262811 Variables ------------------------------------------------------------------------------------------
38052 l_entered_amt_idx             NUMBER;
38053 l_accted_amt_idx              NUMBER;
38054 l_acc_rev_flag                VARCHAR2(1);
38055 l_accrual_line_num            NUMBER;
38056 l_tmp_amt                     NUMBER;
38057 l_acc_rev_natural_side_code   VARCHAR2(1);
38058 
38059 l_num_entries                 NUMBER;
38060 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
38061 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
38062 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
38063 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
38064 l_recog_line_1                NUMBER;
38065 l_recog_line_2                NUMBER;
38066 
38067 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
38068 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
38069 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
38070 
38071 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38072 
38073 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
38074 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
38075 
38076 ---------------------------------------------------------------------------------------------------------------
38077 
38078 
38079 --
38080 -- bulk performance
38081 --
38082 l_balance_type_code           VARCHAR2(1);
38083 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
38084 l_log_module                  VARCHAR2(240);
38085 
38086 --
38087 -- Upgrade strategy
38088 --
38089 l_actual_upg_option           VARCHAR2(1);
38090 l_enc_upg_option           VARCHAR2(1);
38091 
38092 --
38096       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
38093 BEGIN
38094 --
38095 IF g_log_enabled THEN
38097 END IF;
38098 --
38099 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38100 
38101       trace
38102          (p_msg      => 'BEGIN of AcctLineType_82'
38103          ,p_level    => C_LEVEL_PROCEDURE
38104          ,p_module   => l_log_module);
38105 
38106 END IF;
38107 --
38108 l_component_type             := 'AMB_JLT';
38109 l_component_code             := 'AP_EX_RATE_VAR_PMT';
38110 l_component_type_code        := 'S';
38111 l_component_appl_id          :=  200;
38112 l_amb_context_code           := 'DEFAULT';
38113 l_entity_code                := 'AP_PAYMENTS';
38114 l_event_class_code           := 'PAYMENTS';
38115 l_event_type_code            := 'PAYMENTS_ALL';
38116 l_line_definition_owner_code := 'S';
38117 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
38118 --
38119 l_balance_type_code          := 'A';
38120 l_segment                     := NULL;
38121 l_ccid                        := NULL;
38122 l_adr_transaction_coa_id      := NULL;
38123 l_adr_accounting_coa_id       := NULL;
38124 l_adr_flexfield_segment_code  := NULL;
38125 l_adr_flex_value_set_id       := NULL;
38126 l_adr_value_type_code         := NULL;
38127 l_adr_value_combination_id    := NULL;
38128 l_adr_value_segment_code      := NULL;
38129 
38130 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
38131 l_bflow_class_code           := '';    -- 4219869 Business Flow
38132 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
38133 l_budgetary_control_flag     := 'N';
38134 
38135 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
38136 l_bflow_applied_to_amt       := NULL; -- 5132302
38137 l_entered_amt_idx            := NULL;          -- 4262811
38138 l_accted_amt_idx             := NULL;          -- 4262811
38139 l_acc_rev_flag               := NULL;          -- 4262811
38140 l_accrual_line_num           := NULL;          -- 4262811
38141 l_tmp_amt                    := NULL;          -- 4262811
38142 --
38143 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
38144             (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
38145                return;
38146   END IF;
38147   
38148 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38149     l_balance_type_code <> 'B' THEN
38150 IF NVL(p_source_50,'
38151 ') <>  'CLEAR_CLEAR' AND 
38152 NVL(p_source_51,'
38153 ') =  'EXCHANGE RATE VARIANCE' AND 
38154 NVL(p_source_111,'
38155 ') =  'Y' AND 
38156 NVL(p_source_71,'
38157 ') <>  'R'
38158  THEN 
38159 
38160    --
38161    XLA_AE_LINES_PKG.SetNewLine;
38162 
38163    p_balance_type_code          := l_balance_type_code;
38164    -- set the flag so later we will know whether the gain loss line needs to be created
38165    
38166    IF(l_balance_type_code = 'A' ) THEN
38167      p_actual_flag :='G';
38168    END IF;
38169 
38170    --
38171    -- bulk performance
38172    --
38173    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38174                                       p_header_num   => 0); -- 4262811
38175    --
38176    -- set accounting line options
38177    --
38178    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38179            p_natural_side_code          => 'D'
38180          , p_gain_or_loss_flag          => 'Y'
38181          , p_gl_transfer_mode_code      => 'S'
38182          , p_acct_entry_type_code       => 'A'
38183          , p_switch_side_flag           => 'Y'
38184          , p_merge_duplicate_code       => 'A'
38185          );
38186    --
38187    l_acc_rev_natural_side_code := 'C';  -- 4262811
38188    -- 
38189    --
38190    -- set accounting line type info
38191    --
38192    xla_ae_lines_pkg.SetAcctLineType
38193       (p_component_type             => l_component_type
38194       ,p_event_type_code            => l_event_type_code
38195       ,p_line_definition_owner_code => l_line_definition_owner_code
38196       ,p_line_definition_code       => l_line_definition_code
38197       ,p_accounting_line_code       => l_component_code
38198       ,p_accounting_line_type_code  => l_component_type_code
38199       ,p_accounting_line_appl_id    => l_component_appl_id
38200       ,p_amb_context_code           => l_amb_context_code
38201       ,p_entity_code                => l_entity_code
38202       ,p_event_class_code           => l_event_class_code);
38203    --
38204    -- set accounting class
38205    --
38206    xla_ae_lines_pkg.SetAcctClass(
38207            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
38208          , p_ae_header_id           => l_ae_header_id
38209          );
38210 
38211    --
38212    -- set rounding class
38213    --
38214    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38215                       'EXCHANGE_RATE_VARIANCE';
38216 
38217    --
38218    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38219    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38220    --
38221    -- bulk performance
38222    --
38223    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38224 
38228    -- 4955764
38225    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38226       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38227 
38229    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38230       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38231 
38232    -- 4458381 Public Sector Enh
38233    
38234    --
38235    -- set accounting attributes for the line type
38236    --
38237    l_entered_amt_idx := 10;
38238    l_accted_amt_idx  := 15;
38239    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
38240    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38241    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
38242    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
38243    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
38244    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
38245    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
38246    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38247    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
38248    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
38249    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
38250    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
38251    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
38252    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38253    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
38254    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
38255    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
38256    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
38257    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
38258    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
38259    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
38260    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
38261    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
38262    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
38263    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
38264    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
38265    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
38266    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
38267    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
38268    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
38269    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
38270    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
38271    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
38272    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
38273    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
38274    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
38275    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
38276    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
38277    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
38278    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
38279    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
38280    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
38281    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
38282    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
38283    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
38284    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
38285    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
38286    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
38287    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
38288 
38289    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38290    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38291 
38292    ---------------------------------------------------------------------------------------------------------------
38293    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38294    ---------------------------------------------------------------------------------------------------------------
38295    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38296 
38297    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38298    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38299 
38300    IF xla_accounting_cache_pkg.GetValueChar
38301          (p_source_code         => 'LEDGER_CATEGORY_CODE'
38302          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38303    AND l_bflow_method_code = 'PRIOR_ENTRY'
38304 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38305    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38306          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38307        )
38308    THEN
38309          xla_ae_lines_pkg.BflowUpgEntry
38310            (p_business_method_code    => l_bflow_method_code
38311            ,p_business_class_code     => l_bflow_class_code
38312            ,p_balance_type            => l_balance_type_code);
38313    ELSE
38314       NULL;
38315 -- No business flow processing for business flow method of NONE.
38319    -- call analytical criteria
38316    END IF;
38317 
38318    --
38320    --
38321    
38322    --
38323    -- call description
38324    --
38325    -- No description or it is inherited.
38326    --
38327    -- call ADRs
38328    -- Bug 4922099
38329    --
38330    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38331         (NVL(l_actual_upg_option, 'N') = 'O') OR
38332         (NVL(l_enc_upg_option, 'N') = 'O')
38333       )
38334    THEN
38335    NULL;
38336    --
38337    --
38338    
38339   l_ccid := AcctDerRule_24(
38340            p_application_id           => p_application_id
38341          , p_ae_header_id             => l_ae_header_id 
38342 , p_source_16 => p_source_16
38343 , p_source_16_meaning => p_source_16_meaning
38344 , p_source_17 => p_source_17
38345 , p_source_19 => p_source_19
38346 , p_source_19_meaning => p_source_19_meaning
38347 , p_source_20 => p_source_20
38348 , p_source_21 => p_source_21
38349 , p_source_22 => p_source_22
38350 , p_source_29 => p_source_29
38351 , p_source_42 => p_source_42
38352 , p_source_42_meaning => p_source_42_meaning
38353          , x_transaction_coa_id       => l_adr_transaction_coa_id
38354          , x_accounting_coa_id        => l_adr_accounting_coa_id
38355          , x_value_type_code          => l_adr_value_type_code
38356          , p_side                     => 'NA'
38357    );
38358 
38359    xla_ae_lines_pkg.set_ccid(
38360     p_code_combination_id          => l_ccid
38361   , p_value_type_code              => l_adr_value_type_code
38362   , p_transaction_coa_id           => l_adr_transaction_coa_id
38363   , p_accounting_coa_id            => l_adr_accounting_coa_id
38364   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
38365   , p_adr_type_code                => 'S'
38366   , p_component_type               => l_component_type
38367   , p_component_code               => l_component_code
38368   , p_component_type_code          => l_component_type_code
38369   , p_component_appl_id            => l_component_appl_id
38370   , p_amb_context_code             => l_amb_context_code
38371   , p_side                         => 'NA'
38372   );
38373 
38374 
38375    l_segment := AcctDerRule_6(
38376            p_application_id           => p_application_id
38377          , p_ae_header_id             => l_ae_header_id 
38378 , p_source_16 => p_source_16
38379 , p_source_16_meaning => p_source_16_meaning
38380 , p_source_17 => p_source_17
38381 , p_source_19 => p_source_19
38382 , p_source_19_meaning => p_source_19_meaning
38383 , p_source_20 => p_source_20
38384 , p_source_21 => p_source_21
38385 , p_source_22 => p_source_22
38386          , x_transaction_coa_id       => l_adr_transaction_coa_id
38387          , x_accounting_coa_id        => l_adr_accounting_coa_id
38388          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
38389          , x_flex_value_set_id        => l_adr_flex_value_set_id
38390          , x_value_type_code          => l_adr_value_type_code
38391          , x_value_combination_id     => l_adr_value_combination_id
38392          , x_value_segment_code       => l_adr_value_segment_code
38393          , p_side                     => 'NA'
38394          , p_override_seg_flag        => 'Y'
38395    );
38396 
38397    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
38398 
38399       xla_ae_lines_pkg.set_segment(
38400           p_to_segment_code         => 'GL_ACCOUNT'
38401         , p_segment_value           => l_segment
38402         , p_from_segment_code       => l_adr_value_segment_code
38403         , p_from_combination_id     => l_adr_value_combination_id
38404         , p_value_type_code         => l_adr_value_type_code
38405         , p_transaction_coa_id      => l_adr_transaction_coa_id
38406         , p_accounting_coa_id       => l_adr_accounting_coa_id
38407         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
38408         , p_flex_value_set_id       => l_adr_flex_value_set_id
38409         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
38410         , p_adr_type_code           => 'S'
38411         , p_component_type          => l_component_type
38412         , p_component_code          => l_component_code
38413         , p_component_type_code     => l_component_type_code
38414         , p_component_appl_id       => l_component_appl_id
38415         , p_amb_context_code        => l_amb_context_code
38416         , p_entity_code             => 'AP_PAYMENTS'
38417         , p_event_class_code        => 'PAYMENTS'
38418         , p_side                    => 'NA'
38419         );
38420 
38421   END IF;
38422 
38423    l_segment := AcctDerRule_17(
38424            p_application_id           => p_application_id
38425          , p_ae_header_id             => l_ae_header_id 
38426 , p_source_16 => p_source_16
38427 , p_source_16_meaning => p_source_16_meaning
38428 , p_source_19 => p_source_19
38429 , p_source_19_meaning => p_source_19_meaning
38430 , p_source_29 => p_source_29
38431          , x_transaction_coa_id       => l_adr_transaction_coa_id
38432          , x_accounting_coa_id        => l_adr_accounting_coa_id
38433          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
38434          , x_flex_value_set_id        => l_adr_flex_value_set_id
38435          , x_value_type_code          => l_adr_value_type_code
38436          , x_value_combination_id     => l_adr_value_combination_id
38437          , x_value_segment_code       => l_adr_value_segment_code
38438          , p_side                     => 'NA'
38439          , p_override_seg_flag        => 'Y'
38440    );
38444       xla_ae_lines_pkg.set_segment(
38441 
38442    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
38443 
38445           p_to_segment_code         => 'GL_BALANCING'
38446         , p_segment_value           => l_segment
38447         , p_from_segment_code       => l_adr_value_segment_code
38448         , p_from_combination_id     => l_adr_value_combination_id
38449         , p_value_type_code         => l_adr_value_type_code
38450         , p_transaction_coa_id      => l_adr_transaction_coa_id
38451         , p_accounting_coa_id       => l_adr_accounting_coa_id
38452         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
38453         , p_flex_value_set_id       => l_adr_flex_value_set_id
38454         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
38455         , p_adr_type_code           => 'S'
38456         , p_component_type          => l_component_type
38457         , p_component_code          => l_component_code
38458         , p_component_type_code     => l_component_type_code
38459         , p_component_appl_id       => l_component_appl_id
38460         , p_amb_context_code        => l_amb_context_code
38461         , p_entity_code             => 'AP_PAYMENTS'
38462         , p_event_class_code        => 'PAYMENTS'
38463         , p_side                    => 'NA'
38464         );
38465 
38466   END IF;
38467 
38468    --
38469    --
38470    END IF;
38471    --
38472    -- Bug 4922099
38473    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38474           (NVL(l_enc_upg_option, 'N') = 'O')
38475         ) AND
38476         (l_bflow_method_code = 'PRIOR_ENTRY')
38477       )
38478    THEN
38479       IF
38480       --
38481       1 = 2
38482       --
38483       THEN
38484       xla_accounting_err_pkg.build_message
38485                                     (p_appli_s_name            => 'XLA'
38486                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38487                                     ,p_token_1                 => 'LINE_NUMBER'
38488                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
38489                                     ,p_token_2                 => 'LINE_TYPE_NAME'
38490                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
38491                                                                              l_component_type
38492                                                                             ,l_component_code
38493                                                                             ,l_component_type_code
38494                                                                             ,l_component_appl_id
38495                                                                             ,l_amb_context_code
38496                                                                             ,l_entity_code
38497                                                                             ,l_event_class_code
38498                                                                            )
38499                                     ,p_token_3                 => 'OWNER'
38500                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
38501                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
38502                                                                           ,p_lookup_code    => l_component_type_code
38503                                                                          )
38504                                     ,p_token_4                 => 'PRODUCT_NAME'
38505                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38506                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38507                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38508                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38509                                     ,p_ae_header_id            =>  NULL
38510                                        );
38511 
38512         IF (C_LEVEL_ERROR>= g_log_level) THEN
38513                  trace
38514                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38515                       ,p_level    => C_LEVEL_ERROR
38516                       ,p_module   => l_log_module);
38517         END IF;
38518       END IF;
38519    END IF;
38520    --
38521    --
38522    ------------------------------------------------------------------------------------------------
38523    -- 4219869 Business Flow
38524    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38525    -- Prior Entry.  Currently, the following code is always generated.
38526    ------------------------------------------------------------------------------------------------
38527    XLA_AE_LINES_PKG.ValidateCurrentLine;
38528 
38529    ------------------------------------------------------------------------------------
38530    -- 4219869 Business Flow
38531    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38532    ------------------------------------------------------------------------------------
38533    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38534 
38535    ----------------------------------------------------------------------------------
38536    -- 4219869 Business Flow
38540          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38537    -- Update journal entry status -- Need to generate this within IF <condition>
38538    ----------------------------------------------------------------------------------
38539    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38541          ,p_balance_type_code => l_balance_type_code
38542          );
38543 
38544    -------------------------------------------------------------------------------------------
38545    -- 4262811 - Generate the Accrual Reversal lines
38546    -------------------------------------------------------------------------------------------
38547    BEGIN
38548       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38549                               (g_array_event(p_event_id).array_value_num('header_index'));
38550       IF l_acc_rev_flag IS NULL THEN
38551          l_acc_rev_flag := 'N';
38552       END IF;
38553    EXCEPTION
38554       WHEN OTHERS THEN
38555          l_acc_rev_flag := 'N';
38556    END;
38557    --
38558    IF (l_acc_rev_flag = 'Y') THEN
38559 
38560        -- 4645092  ------------------------------------------------------------------------------
38561        -- To allow MPA report to determine if it should generate report process
38562        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38563        ------------------------------------------------------------------------------------------
38564 
38565        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38566        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38567    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
38568    -- call ADRs
38569    -- Bug 4922099
38570    --
38571    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38572         (NVL(l_actual_upg_option, 'N') = 'O') OR
38573         (NVL(l_enc_upg_option, 'N') = 'O')
38574       )
38575    THEN
38576    NULL;
38577    --
38578    --
38579    
38580   l_ccid := AcctDerRule_24(
38581            p_application_id           => p_application_id
38582          , p_ae_header_id             => l_ae_header_id 
38583 , p_source_16 => p_source_16
38584 , p_source_16_meaning => p_source_16_meaning
38585 , p_source_17 => p_source_17
38586 , p_source_19 => p_source_19
38587 , p_source_19_meaning => p_source_19_meaning
38588 , p_source_20 => p_source_20
38589 , p_source_21 => p_source_21
38590 , p_source_22 => p_source_22
38591 , p_source_29 => p_source_29
38592 , p_source_42 => p_source_42
38593 , p_source_42_meaning => p_source_42_meaning
38594          , x_transaction_coa_id       => l_adr_transaction_coa_id
38595          , x_accounting_coa_id        => l_adr_accounting_coa_id
38596          , x_value_type_code          => l_adr_value_type_code
38597          , p_side                     => 'NA'
38598    );
38599 
38600    xla_ae_lines_pkg.set_ccid(
38601     p_code_combination_id          => l_ccid
38602   , p_value_type_code              => l_adr_value_type_code
38603   , p_transaction_coa_id           => l_adr_transaction_coa_id
38604   , p_accounting_coa_id            => l_adr_accounting_coa_id
38605   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
38606   , p_adr_type_code                => 'S'
38607   , p_component_type               => l_component_type
38608   , p_component_code               => l_component_code
38609   , p_component_type_code          => l_component_type_code
38610   , p_component_appl_id            => l_component_appl_id
38611   , p_amb_context_code             => l_amb_context_code
38612   , p_side                         => 'NA'
38613   );
38614 
38615 
38616    l_segment := AcctDerRule_6(
38617            p_application_id           => p_application_id
38618          , p_ae_header_id             => l_ae_header_id 
38619 , p_source_16 => p_source_16
38620 , p_source_16_meaning => p_source_16_meaning
38621 , p_source_17 => p_source_17
38622 , p_source_19 => p_source_19
38623 , p_source_19_meaning => p_source_19_meaning
38624 , p_source_20 => p_source_20
38625 , p_source_21 => p_source_21
38626 , p_source_22 => p_source_22
38627          , x_transaction_coa_id       => l_adr_transaction_coa_id
38628          , x_accounting_coa_id        => l_adr_accounting_coa_id
38629          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
38630          , x_flex_value_set_id        => l_adr_flex_value_set_id
38631          , x_value_type_code          => l_adr_value_type_code
38632          , x_value_combination_id     => l_adr_value_combination_id
38633          , x_value_segment_code       => l_adr_value_segment_code
38634          , p_side                     => 'NA'
38635          , p_override_seg_flag        => 'Y'
38636    );
38637 
38638    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
38639 
38640       xla_ae_lines_pkg.set_segment(
38641           p_to_segment_code         => 'GL_ACCOUNT'
38642         , p_segment_value           => l_segment
38643         , p_from_segment_code       => l_adr_value_segment_code
38644         , p_from_combination_id     => l_adr_value_combination_id
38645         , p_value_type_code         => l_adr_value_type_code
38646         , p_transaction_coa_id      => l_adr_transaction_coa_id
38647         , p_accounting_coa_id       => l_adr_accounting_coa_id
38648         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
38649         , p_flex_value_set_id       => l_adr_flex_value_set_id
38650         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
38654         , p_component_type_code     => l_component_type_code
38651         , p_adr_type_code           => 'S'
38652         , p_component_type          => l_component_type
38653         , p_component_code          => l_component_code
38655         , p_component_appl_id       => l_component_appl_id
38656         , p_amb_context_code        => l_amb_context_code
38657         , p_entity_code             => 'AP_PAYMENTS'
38658         , p_event_class_code        => 'PAYMENTS'
38659         , p_side                    => 'NA'
38660         );
38661 
38662   END IF;
38663 
38664    l_segment := AcctDerRule_17(
38665            p_application_id           => p_application_id
38666          , p_ae_header_id             => l_ae_header_id 
38667 , p_source_16 => p_source_16
38668 , p_source_16_meaning => p_source_16_meaning
38669 , p_source_19 => p_source_19
38670 , p_source_19_meaning => p_source_19_meaning
38671 , p_source_29 => p_source_29
38672          , x_transaction_coa_id       => l_adr_transaction_coa_id
38673          , x_accounting_coa_id        => l_adr_accounting_coa_id
38674          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
38675          , x_flex_value_set_id        => l_adr_flex_value_set_id
38676          , x_value_type_code          => l_adr_value_type_code
38677          , x_value_combination_id     => l_adr_value_combination_id
38678          , x_value_segment_code       => l_adr_value_segment_code
38679          , p_side                     => 'NA'
38680          , p_override_seg_flag        => 'Y'
38681    );
38682 
38683    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
38684 
38685       xla_ae_lines_pkg.set_segment(
38686           p_to_segment_code         => 'GL_BALANCING'
38687         , p_segment_value           => l_segment
38688         , p_from_segment_code       => l_adr_value_segment_code
38689         , p_from_combination_id     => l_adr_value_combination_id
38690         , p_value_type_code         => l_adr_value_type_code
38691         , p_transaction_coa_id      => l_adr_transaction_coa_id
38692         , p_accounting_coa_id       => l_adr_accounting_coa_id
38693         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
38694         , p_flex_value_set_id       => l_adr_flex_value_set_id
38695         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
38696         , p_adr_type_code           => 'S'
38697         , p_component_type          => l_component_type
38698         , p_component_code          => l_component_code
38699         , p_component_type_code     => l_component_type_code
38700         , p_component_appl_id       => l_component_appl_id
38701         , p_amb_context_code        => l_amb_context_code
38702         , p_entity_code             => 'AP_PAYMENTS'
38703         , p_event_class_code        => 'PAYMENTS'
38704         , p_side                    => 'NA'
38705         );
38706 
38707   END IF;
38708 
38709    --
38710    --
38711    END IF;
38712 
38713        --
38714        -- Update the line information that should be overwritten
38715        --
38716        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38717                                          p_header_num   => 1);
38718        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
38719 
38720        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38721 
38722        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
38723           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38724        END IF;
38725 
38726       --
38727       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38728       --
38729       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38730           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
38731       ELSE
38732           ---------------------------------------------------------------------------------------------------
38733           -- 4262811a Switch Sign
38734           ---------------------------------------------------------------------------------------------------
38735           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
38736           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38737                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38738           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38739                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38740           -- 5132302
38741           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38742                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38743 
38744       END IF;
38745 
38746       -- 4955764
38747       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38748       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38749 
38750 
38751       XLA_AE_LINES_PKG.ValidateCurrentLine;
38752       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38753 
38754       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38755                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38759 
38756                ,p_balance_type_code => l_balance_type_code);
38757 
38758    END IF;
38760    -----------------------------------------------------------------------------------------
38761    -- 4262811 Multiperiod Accounting
38762    -----------------------------------------------------------------------------------------
38763      -- No MPA option is assigned.
38764 
38765 
38766 END IF;
38767 END IF;
38768 --
38769 
38770 --
38771 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38772    trace
38773       (p_msg      => 'END of AcctLineType_82'
38774       ,p_level    => C_LEVEL_PROCEDURE
38775       ,p_module   => l_log_module);
38776 END IF;
38777 --
38778 EXCEPTION
38779   WHEN xla_exceptions_pkg.application_exception THEN
38780       RAISE;
38781   WHEN OTHERS THEN
38782        xla_exceptions_pkg.raise_message
38783            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_82');
38784 END AcctLineType_82;
38785 --
38786 
38787 ---------------------------------------
38788 --
38789 -- PRIVATE FUNCTION
38790 --         AcctLineType_83
38791 --
38792 ---------------------------------------
38793 PROCEDURE AcctLineType_83 (
38794   p_application_id        IN NUMBER
38795  ,p_event_id              IN NUMBER
38796  ,p_calculate_acctd_flag  IN VARCHAR2
38797  ,p_calculate_g_l_flag    IN VARCHAR2
38798  ,p_actual_flag           IN OUT VARCHAR2
38799  ,p_balance_type_code     OUT VARCHAR2
38800  ,p_gain_or_loss_ref      OUT VARCHAR2
38801  
38802 --Automatic Offsets Value
38803  , p_source_16            IN VARCHAR2
38804  , p_source_16_meaning    IN VARCHAR2
38805 --Purchase Order Rate Variance Gain Account
38806  , p_source_17            IN NUMBER
38807 --Invoice Distribution Ledger Amount
38808  , p_source_18            IN NUMBER
38809 --Destination Type of the PO Distribution
38810  , p_source_19            IN VARCHAR2
38811  , p_source_19_meaning    IN VARCHAR2
38812 --Purchase Order Rate Variance Loss Account
38813  , p_source_20            IN NUMBER
38814 --Invoice Distribution Account
38815  , p_source_29            IN NUMBER
38816 --Automatic Offsets Flag
38817  , p_source_42            IN VARCHAR2
38818  , p_source_42_meaning    IN VARCHAR2
38819 --When to Account for Payment Option
38820  , p_source_50            IN VARCHAR2
38821 --Accounting Reversal Indicator
38822  , p_source_52            IN VARCHAR2
38823 --Business Flow Accounts Payable Application Identifier
38824  , p_source_54            IN NUMBER
38825 --Distribution Link Type
38826  , p_source_60            IN VARCHAR2
38827 --Override Accounted Amount Indicator
38828  , p_source_64            IN VARCHAR2
38829  , p_source_64_meaning    IN VARCHAR2
38830 --Third Party Type
38831  , p_source_67            IN VARCHAR2
38832 --Invoice Distribution Tax Line Identifier
38833  , p_source_69            IN NUMBER
38834 --Invoice Distribution Summary Tax Line Identifier
38835  , p_source_70            IN NUMBER
38836 --Invoice Distribution Tax Distribution Identifier from Tax
38837  , p_source_77            IN NUMBER
38838 --Prepayment Distribution Type
38839  , p_source_78            IN VARCHAR2
38840 --Recipient Invoice Distribution Type
38841  , p_source_79            IN VARCHAR2
38842  , p_source_79_meaning    IN VARCHAR2
38843 --Prepayment Application Distribution Identifier
38844  , p_source_82            IN NUMBER
38845 --Invoice Identifier
38846  , p_source_83            IN NUMBER
38847 --Business Flow Prepayment Invoice Distribution Type
38848  , p_source_84            IN VARCHAR2
38849 --Business Flow Prepayment Invoice Entity Code
38850  , p_source_85            IN VARCHAR2
38851 --Business Flow Prepayment Invoice Distribution Identifier
38852  , p_source_86            IN NUMBER
38853 --Business Flow Prepayment Invoice Identifier
38854  , p_source_87            IN NUMBER
38855 --Upgrade Encumbrance Credit Account Class
38856  , p_source_88            IN VARCHAR2
38857 --Payables Encumbrance Upgrade Credit Account
38858  , p_source_89            IN NUMBER
38859 --Payables Encumbrance Upgrade Credit Amount
38860  , p_source_90            IN NUMBER
38861 --Invoice Currency Code
38862  , p_source_91            IN VARCHAR2
38863 --Payables Encumbrance Upgrade Credit Base Amount
38864  , p_source_92            IN NUMBER
38865 --Upgrade Encumbrance Debit Account Class
38866  , p_source_93            IN VARCHAR2
38867 --Payables Encumbrance Upgrade Debit Account
38868  , p_source_94            IN NUMBER
38869 --Payables Encumbrance Upgrade Debit Amount
38870  , p_source_95            IN NUMBER
38871 --Payables Encumbrance Upgrade Debit Base Amount
38872  , p_source_96            IN NUMBER
38873 --Payables Encumbrance Upgrade Option
38874  , p_source_97            IN VARCHAR2
38875 --Prepayment Distribution Amount
38876  , p_source_98            IN NUMBER
38877 --Deferred Accounting End Date
38878  , p_source_101            IN DATE
38879 --Deferred Accounting Option
38880  , p_source_102            IN VARCHAR2
38881 --Deferred Accounting Start Date
38882  , p_source_103            IN DATE
38883 --Invoice Supplier Identifier
38884  , p_source_104            IN NUMBER
38885 --Invoice Supplier Site Identifier
38886  , p_source_105            IN NUMBER
38887 --Identifier of the Prepayment Application Reversed
38888  , p_source_106            IN NUMBER
38889 --Payables Upgrade Credit Encumbrance Type Identifier
38890  , p_source_107            IN NUMBER
38894  , p_source_109            IN VARCHAR2
38891 --Payables Upgrade Debit Encumbrance Type Identifier
38892  , p_source_108            IN NUMBER
38893 --Prepayment Payment Currency Code
38895 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
38896  , p_source_110            IN NUMBER
38897 --Accrue on Receipt Option
38898  , p_source_111            IN VARCHAR2
38899  , p_source_111_meaning    IN VARCHAR2
38900 --Prepayment Payment Exchange Date
38901  , p_source_128            IN DATE
38902 --Prepayment Payment Exchange Rate
38903  , p_source_129            IN NUMBER
38904 --Prepayment Payment Exchange Rate Type
38905  , p_source_130            IN VARCHAR2
38906 )
38907 IS
38908 
38909 l_component_type              VARCHAR2(80);
38910 l_component_code              VARCHAR2(30);
38911 l_component_type_code         VARCHAR2(1);
38912 l_component_appl_id           INTEGER;
38913 l_amb_context_code            VARCHAR2(30);
38914 l_entity_code                 VARCHAR2(30);
38915 l_event_class_code            VARCHAR2(30);
38916 l_ae_header_id                NUMBER;
38917 l_event_type_code             VARCHAR2(30);
38918 l_line_definition_code        VARCHAR2(30);
38919 l_line_definition_owner_code  VARCHAR2(1);
38920 --
38921 -- adr variables
38922 l_segment                     VARCHAR2(30);
38923 l_ccid                        NUMBER;
38924 l_adr_transaction_coa_id      NUMBER;
38925 l_adr_accounting_coa_id       NUMBER;
38926 l_adr_flexfield_segment_code  VARCHAR2(30);
38927 l_adr_flex_value_set_id       NUMBER;
38928 l_adr_value_type_code         VARCHAR2(30);
38929 l_adr_value_combination_id    NUMBER;
38930 l_adr_value_segment_code      VARCHAR2(30);
38931 
38932 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
38933 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
38934 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
38935 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
38936 
38937 -- 4262811 Variables ------------------------------------------------------------------------------------------
38938 l_entered_amt_idx             NUMBER;
38939 l_accted_amt_idx              NUMBER;
38940 l_acc_rev_flag                VARCHAR2(1);
38941 l_accrual_line_num            NUMBER;
38942 l_tmp_amt                     NUMBER;
38943 l_acc_rev_natural_side_code   VARCHAR2(1);
38944 
38945 l_num_entries                 NUMBER;
38946 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
38947 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
38948 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
38949 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
38950 l_recog_line_1                NUMBER;
38951 l_recog_line_2                NUMBER;
38952 
38953 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
38954 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
38955 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
38956 
38957 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38958 
38959 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
38960 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
38961 
38962 ---------------------------------------------------------------------------------------------------------------
38963 
38964 
38965 --
38966 -- bulk performance
38967 --
38968 l_balance_type_code           VARCHAR2(1);
38969 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
38970 l_log_module                  VARCHAR2(240);
38971 
38972 --
38973 -- Upgrade strategy
38974 --
38975 l_actual_upg_option           VARCHAR2(1);
38976 l_enc_upg_option           VARCHAR2(1);
38977 
38978 --
38979 BEGIN
38980 --
38981 IF g_log_enabled THEN
38982       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
38983 END IF;
38984 --
38985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38986 
38987       trace
38988          (p_msg      => 'BEGIN of AcctLineType_83'
38989          ,p_level    => C_LEVEL_PROCEDURE
38990          ,p_module   => l_log_module);
38991 
38992 END IF;
38993 --
38994 l_component_type             := 'AMB_JLT';
38995 l_component_code             := 'AP_EX_RATE_VAR_PREPAY_PAY_RATE';
38996 l_component_type_code        := 'S';
38997 l_component_appl_id          :=  200;
38998 l_amb_context_code           := 'DEFAULT';
38999 l_entity_code                := 'AP_INVOICES';
39000 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
39001 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
39002 l_line_definition_owner_code := 'S';
39003 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
39004 --
39005 l_balance_type_code          := 'A';
39006 l_segment                     := NULL;
39007 l_ccid                        := NULL;
39008 l_adr_transaction_coa_id      := NULL;
39009 l_adr_accounting_coa_id       := NULL;
39010 l_adr_flexfield_segment_code  := NULL;
39011 l_adr_flex_value_set_id       := NULL;
39012 l_adr_value_type_code         := NULL;
39013 l_adr_value_combination_id    := NULL;
39014 l_adr_value_segment_code      := NULL;
39015 
39016 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
39017 l_bflow_class_code           := '';    -- 4219869 Business Flow
39018 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
39019 l_budgetary_control_flag     := 'N';
39020 
39024 l_accted_amt_idx             := NULL;          -- 4262811
39021 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
39022 l_bflow_applied_to_amt       := NULL; -- 5132302
39023 l_entered_amt_idx            := NULL;          -- 4262811
39025 l_acc_rev_flag               := NULL;          -- 4262811
39026 l_accrual_line_num           := NULL;          -- 4262811
39027 l_tmp_amt                    := NULL;          -- 4262811
39028 --
39029 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
39030             (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
39031                return;
39032   END IF;
39033   
39034 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39035     l_balance_type_code <> 'B' THEN
39036 IF NVL(p_source_50,'
39037 ') <>  'CLEAR_CLEAR' AND 
39038 (NVL(p_source_78,'
39039 ') =  'PREPAY APPL' OR 
39040 NVL(p_source_78,'
39041 ') =  'PREPAY APPL NONREC TAX' OR 
39042 NVL(p_source_78,'
39043 ') =  'PREPAY APPL REC TAX') AND 
39044 NVL(p_source_79,'
39045 ') =  'ERV' AND 
39046 NVL(p_source_111,'
39047 ') =  'Y'
39048  THEN 
39049 
39050    --
39051    XLA_AE_LINES_PKG.SetNewLine;
39052 
39053    p_balance_type_code          := l_balance_type_code;
39054    -- set the flag so later we will know whether the gain loss line needs to be created
39055    
39056    IF(l_balance_type_code = 'A' ) THEN
39057      p_actual_flag :='G';
39058    END IF;
39059 
39060    --
39061    -- bulk performance
39062    --
39063    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39064                                       p_header_num   => 0); -- 4262811
39065    --
39066    -- set accounting line options
39067    --
39068    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39069            p_natural_side_code          => 'C'
39070          , p_gain_or_loss_flag          => 'Y'
39071          , p_gl_transfer_mode_code      => 'S'
39072          , p_acct_entry_type_code       => 'A'
39073          , p_switch_side_flag           => 'Y'
39074          , p_merge_duplicate_code       => 'A'
39075          );
39076    --
39077    l_acc_rev_natural_side_code := 'D';  -- 4262811
39078    -- 
39079    --
39080    -- set accounting line type info
39081    --
39082    xla_ae_lines_pkg.SetAcctLineType
39083       (p_component_type             => l_component_type
39084       ,p_event_type_code            => l_event_type_code
39085       ,p_line_definition_owner_code => l_line_definition_owner_code
39086       ,p_line_definition_code       => l_line_definition_code
39087       ,p_accounting_line_code       => l_component_code
39088       ,p_accounting_line_type_code  => l_component_type_code
39089       ,p_accounting_line_appl_id    => l_component_appl_id
39090       ,p_amb_context_code           => l_amb_context_code
39091       ,p_entity_code                => l_entity_code
39092       ,p_event_class_code           => l_event_class_code);
39093    --
39094    -- set accounting class
39095    --
39096    xla_ae_lines_pkg.SetAcctClass(
39097            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
39098          , p_ae_header_id           => l_ae_header_id
39099          );
39100 
39101    --
39102    -- set rounding class
39103    --
39104    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39105                       'EXCHANGE_RATE_VARIANCE';
39106 
39107    --
39108    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39109    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39110    --
39111    -- bulk performance
39112    --
39113    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39114 
39115    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39116       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39117 
39118    -- 4955764
39119    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39120       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39121 
39122    -- 4458381 Public Sector Enh
39123    
39124    --
39125    -- set accounting attributes for the line type
39126    --
39127    l_entered_amt_idx := 25;
39128    l_accted_amt_idx  := 30;
39129    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
39130    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39131    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
39132    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
39133    l_rec_acct_attrs.array_num_value(2)  := 
39134 xla_ae_sources_pkg.GetSystemSourceNum(
39135    p_source_code           => 'XLA_EVENT_APPL_ID'
39136  , p_source_type_code      => 'Y'
39137  , p_source_application_id =>  602
39138 );
39139    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
39140    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
39141    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
39142    l_rec_acct_attrs.array_char_value(4)  := 
39143 xla_ae_sources_pkg.GetSystemSourceChar(
39144    p_source_code           => 'XLA_ENTITY_CODE'
39148    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
39145  , p_source_type_code      => 'Y'
39146  , p_source_application_id =>  602
39147 );
39149    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
39150    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
39151    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
39152    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
39153    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
39154    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39155    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
39156    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
39157    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
39158    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
39159    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
39160    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39161    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
39162    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
39163    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
39164    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
39165    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
39166    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
39167    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
39168    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
39169    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
39170    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
39171    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
39172    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
39173    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
39174    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
39175    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
39176    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
39177    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
39178    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
39179    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
39180    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
39181    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
39182    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
39183    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
39184    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
39185    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
39186    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
39187    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
39188    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
39189    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
39190    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
39191    l_rec_acct_attrs.array_char_value(26)  := p_source_109;
39192    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
39193    l_rec_acct_attrs.array_date_value(27)  := p_source_128;
39194    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
39195    l_rec_acct_attrs.array_num_value(28)  := p_source_129;
39196    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
39197    l_rec_acct_attrs.array_char_value(29)  := p_source_130;
39198    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
39199    l_rec_acct_attrs.array_num_value(30)  := p_source_110;
39200    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
39201    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
39202    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
39203    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
39204    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
39205    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
39206    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
39207    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
39208    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
39209    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
39210    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
39211    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
39212    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
39213    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
39214    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
39215    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
39216    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
39217    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
39218    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
39219    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
39220    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
39221    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
39222    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
39223    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
39224    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
39225    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
39226    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
39227    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
39228 
39229    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39233    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39230    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39231 
39232    ---------------------------------------------------------------------------------------------------------------
39234    ---------------------------------------------------------------------------------------------------------------
39235    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39236 
39237    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39238    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39239 
39240    IF xla_accounting_cache_pkg.GetValueChar
39241          (p_source_code         => 'LEDGER_CATEGORY_CODE'
39242          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39243    AND l_bflow_method_code = 'PRIOR_ENTRY'
39244 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39245    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39246          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39247        )
39248    THEN
39249          xla_ae_lines_pkg.BflowUpgEntry
39250            (p_business_method_code    => l_bflow_method_code
39251            ,p_business_class_code     => l_bflow_class_code
39252            ,p_balance_type            => l_balance_type_code);
39253    ELSE
39254       NULL;
39255 -- No business flow processing for business flow method of NONE.
39256    END IF;
39257 
39258    --
39259    -- call analytical criteria
39260    --
39261    
39262    --
39263    -- call description
39264    --
39265    -- No description or it is inherited.
39266    --
39267    -- call ADRs
39268    -- Bug 4922099
39269    --
39270    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39271         (NVL(l_actual_upg_option, 'N') = 'O') OR
39272         (NVL(l_enc_upg_option, 'N') = 'O')
39273       )
39274    THEN
39275    NULL;
39276    --
39277    --
39278    
39279   l_ccid := AcctDerRule_25(
39280            p_application_id           => p_application_id
39281          , p_ae_header_id             => l_ae_header_id 
39282 , p_source_16 => p_source_16
39283 , p_source_16_meaning => p_source_16_meaning
39284 , p_source_17 => p_source_17
39285 , p_source_18 => p_source_18
39286 , p_source_19 => p_source_19
39287 , p_source_19_meaning => p_source_19_meaning
39288 , p_source_20 => p_source_20
39289 , p_source_29 => p_source_29
39290 , p_source_42 => p_source_42
39291 , p_source_42_meaning => p_source_42_meaning
39292          , x_transaction_coa_id       => l_adr_transaction_coa_id
39293          , x_accounting_coa_id        => l_adr_accounting_coa_id
39294          , x_value_type_code          => l_adr_value_type_code
39295          , p_side                     => 'NA'
39296    );
39297 
39298    xla_ae_lines_pkg.set_ccid(
39299     p_code_combination_id          => l_ccid
39300   , p_value_type_code              => l_adr_value_type_code
39301   , p_transaction_coa_id           => l_adr_transaction_coa_id
39302   , p_accounting_coa_id            => l_adr_accounting_coa_id
39303   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
39304   , p_adr_type_code                => 'S'
39305   , p_component_type               => l_component_type
39306   , p_component_code               => l_component_code
39307   , p_component_type_code          => l_component_type_code
39308   , p_component_appl_id            => l_component_appl_id
39309   , p_amb_context_code             => l_amb_context_code
39310   , p_side                         => 'NA'
39311   );
39312 
39313 
39314    l_segment := AcctDerRule_5(
39315            p_application_id           => p_application_id
39316          , p_ae_header_id             => l_ae_header_id 
39317 , p_source_16 => p_source_16
39318 , p_source_16_meaning => p_source_16_meaning
39319 , p_source_17 => p_source_17
39320 , p_source_18 => p_source_18
39321 , p_source_19 => p_source_19
39322 , p_source_19_meaning => p_source_19_meaning
39323 , p_source_20 => p_source_20
39324          , x_transaction_coa_id       => l_adr_transaction_coa_id
39325          , x_accounting_coa_id        => l_adr_accounting_coa_id
39326          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39327          , x_flex_value_set_id        => l_adr_flex_value_set_id
39328          , x_value_type_code          => l_adr_value_type_code
39329          , x_value_combination_id     => l_adr_value_combination_id
39330          , x_value_segment_code       => l_adr_value_segment_code
39331          , p_side                     => 'NA'
39332          , p_override_seg_flag        => 'Y'
39333    );
39334 
39335    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39336 
39337       xla_ae_lines_pkg.set_segment(
39338           p_to_segment_code         => 'GL_ACCOUNT'
39339         , p_segment_value           => l_segment
39340         , p_from_segment_code       => l_adr_value_segment_code
39341         , p_from_combination_id     => l_adr_value_combination_id
39342         , p_value_type_code         => l_adr_value_type_code
39343         , p_transaction_coa_id      => l_adr_transaction_coa_id
39344         , p_accounting_coa_id       => l_adr_accounting_coa_id
39345         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39349         , p_component_type          => l_component_type
39346         , p_flex_value_set_id       => l_adr_flex_value_set_id
39347         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
39348         , p_adr_type_code           => 'S'
39350         , p_component_code          => l_component_code
39351         , p_component_type_code     => l_component_type_code
39352         , p_component_appl_id       => l_component_appl_id
39353         , p_amb_context_code        => l_amb_context_code
39354         , p_entity_code             => 'AP_INVOICES'
39355         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
39356         , p_side                    => 'NA'
39357         );
39358 
39359   END IF;
39360 
39361    l_segment := AcctDerRule_17(
39362            p_application_id           => p_application_id
39363          , p_ae_header_id             => l_ae_header_id 
39364 , p_source_16 => p_source_16
39365 , p_source_16_meaning => p_source_16_meaning
39366 , p_source_19 => p_source_19
39367 , p_source_19_meaning => p_source_19_meaning
39368 , p_source_29 => p_source_29
39369          , x_transaction_coa_id       => l_adr_transaction_coa_id
39370          , x_accounting_coa_id        => l_adr_accounting_coa_id
39371          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39372          , x_flex_value_set_id        => l_adr_flex_value_set_id
39373          , x_value_type_code          => l_adr_value_type_code
39374          , x_value_combination_id     => l_adr_value_combination_id
39375          , x_value_segment_code       => l_adr_value_segment_code
39376          , p_side                     => 'NA'
39377          , p_override_seg_flag        => 'Y'
39378    );
39379 
39380    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39381 
39382       xla_ae_lines_pkg.set_segment(
39383           p_to_segment_code         => 'GL_BALANCING'
39384         , p_segment_value           => l_segment
39385         , p_from_segment_code       => l_adr_value_segment_code
39386         , p_from_combination_id     => l_adr_value_combination_id
39387         , p_value_type_code         => l_adr_value_type_code
39388         , p_transaction_coa_id      => l_adr_transaction_coa_id
39389         , p_accounting_coa_id       => l_adr_accounting_coa_id
39390         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39391         , p_flex_value_set_id       => l_adr_flex_value_set_id
39392         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
39393         , p_adr_type_code           => 'S'
39394         , p_component_type          => l_component_type
39395         , p_component_code          => l_component_code
39396         , p_component_type_code     => l_component_type_code
39397         , p_component_appl_id       => l_component_appl_id
39398         , p_amb_context_code        => l_amb_context_code
39399         , p_entity_code             => 'AP_INVOICES'
39400         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
39401         , p_side                    => 'NA'
39402         );
39403 
39404   END IF;
39405 
39406    --
39407    --
39408    END IF;
39409    --
39410    -- Bug 4922099
39411    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39412           (NVL(l_enc_upg_option, 'N') = 'O')
39413         ) AND
39414         (l_bflow_method_code = 'PRIOR_ENTRY')
39415       )
39416    THEN
39417       IF
39418       --
39419       1 = 2
39420       --
39421       THEN
39422       xla_accounting_err_pkg.build_message
39423                                     (p_appli_s_name            => 'XLA'
39424                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39425                                     ,p_token_1                 => 'LINE_NUMBER'
39426                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
39427                                     ,p_token_2                 => 'LINE_TYPE_NAME'
39428                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
39429                                                                              l_component_type
39430                                                                             ,l_component_code
39431                                                                             ,l_component_type_code
39432                                                                             ,l_component_appl_id
39433                                                                             ,l_amb_context_code
39434                                                                             ,l_entity_code
39435                                                                             ,l_event_class_code
39436                                                                            )
39437                                     ,p_token_3                 => 'OWNER'
39438                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
39439                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
39440                                                                           ,p_lookup_code    => l_component_type_code
39441                                                                          )
39442                                     ,p_token_4                 => 'PRODUCT_NAME'
39443                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39444                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39448                                        );
39445                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39446                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39447                                     ,p_ae_header_id            =>  NULL
39449 
39450         IF (C_LEVEL_ERROR>= g_log_level) THEN
39451                  trace
39452                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39453                       ,p_level    => C_LEVEL_ERROR
39454                       ,p_module   => l_log_module);
39455         END IF;
39456       END IF;
39457    END IF;
39458    --
39459    --
39460    ------------------------------------------------------------------------------------------------
39461    -- 4219869 Business Flow
39462    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39463    -- Prior Entry.  Currently, the following code is always generated.
39464    ------------------------------------------------------------------------------------------------
39465    XLA_AE_LINES_PKG.ValidateCurrentLine;
39466 
39467    ------------------------------------------------------------------------------------
39468    -- 4219869 Business Flow
39469    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39470    ------------------------------------------------------------------------------------
39471    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39472 
39473    ----------------------------------------------------------------------------------
39474    -- 4219869 Business Flow
39475    -- Update journal entry status -- Need to generate this within IF <condition>
39476    ----------------------------------------------------------------------------------
39477    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39478          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39479          ,p_balance_type_code => l_balance_type_code
39480          );
39481 
39482    -------------------------------------------------------------------------------------------
39483    -- 4262811 - Generate the Accrual Reversal lines
39484    -------------------------------------------------------------------------------------------
39485    BEGIN
39486       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39487                               (g_array_event(p_event_id).array_value_num('header_index'));
39488       IF l_acc_rev_flag IS NULL THEN
39489          l_acc_rev_flag := 'N';
39490       END IF;
39491    EXCEPTION
39492       WHEN OTHERS THEN
39493          l_acc_rev_flag := 'N';
39494    END;
39495    --
39496    IF (l_acc_rev_flag = 'Y') THEN
39497 
39498        -- 4645092  ------------------------------------------------------------------------------
39499        -- To allow MPA report to determine if it should generate report process
39500        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39501        ------------------------------------------------------------------------------------------
39502 
39503        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39504        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39505    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
39506    -- call ADRs
39507    -- Bug 4922099
39508    --
39509    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39510         (NVL(l_actual_upg_option, 'N') = 'O') OR
39511         (NVL(l_enc_upg_option, 'N') = 'O')
39512       )
39513    THEN
39514    NULL;
39515    --
39516    --
39517    
39518   l_ccid := AcctDerRule_25(
39519            p_application_id           => p_application_id
39520          , p_ae_header_id             => l_ae_header_id 
39521 , p_source_16 => p_source_16
39522 , p_source_16_meaning => p_source_16_meaning
39523 , p_source_17 => p_source_17
39524 , p_source_18 => p_source_18
39525 , p_source_19 => p_source_19
39526 , p_source_19_meaning => p_source_19_meaning
39527 , p_source_20 => p_source_20
39528 , p_source_29 => p_source_29
39529 , p_source_42 => p_source_42
39530 , p_source_42_meaning => p_source_42_meaning
39531          , x_transaction_coa_id       => l_adr_transaction_coa_id
39532          , x_accounting_coa_id        => l_adr_accounting_coa_id
39533          , x_value_type_code          => l_adr_value_type_code
39534          , p_side                     => 'NA'
39535    );
39536 
39537    xla_ae_lines_pkg.set_ccid(
39538     p_code_combination_id          => l_ccid
39539   , p_value_type_code              => l_adr_value_type_code
39540   , p_transaction_coa_id           => l_adr_transaction_coa_id
39541   , p_accounting_coa_id            => l_adr_accounting_coa_id
39542   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
39543   , p_adr_type_code                => 'S'
39544   , p_component_type               => l_component_type
39545   , p_component_code               => l_component_code
39546   , p_component_type_code          => l_component_type_code
39547   , p_component_appl_id            => l_component_appl_id
39548   , p_amb_context_code             => l_amb_context_code
39549   , p_side                         => 'NA'
39550   );
39551 
39552 
39553    l_segment := AcctDerRule_5(
39554            p_application_id           => p_application_id
39555          , p_ae_header_id             => l_ae_header_id 
39556 , p_source_16 => p_source_16
39557 , p_source_16_meaning => p_source_16_meaning
39561 , p_source_19_meaning => p_source_19_meaning
39558 , p_source_17 => p_source_17
39559 , p_source_18 => p_source_18
39560 , p_source_19 => p_source_19
39562 , p_source_20 => p_source_20
39563          , x_transaction_coa_id       => l_adr_transaction_coa_id
39564          , x_accounting_coa_id        => l_adr_accounting_coa_id
39565          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39566          , x_flex_value_set_id        => l_adr_flex_value_set_id
39567          , x_value_type_code          => l_adr_value_type_code
39568          , x_value_combination_id     => l_adr_value_combination_id
39569          , x_value_segment_code       => l_adr_value_segment_code
39570          , p_side                     => 'NA'
39571          , p_override_seg_flag        => 'Y'
39572    );
39573 
39574    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39575 
39576       xla_ae_lines_pkg.set_segment(
39577           p_to_segment_code         => 'GL_ACCOUNT'
39578         , p_segment_value           => l_segment
39579         , p_from_segment_code       => l_adr_value_segment_code
39580         , p_from_combination_id     => l_adr_value_combination_id
39581         , p_value_type_code         => l_adr_value_type_code
39582         , p_transaction_coa_id      => l_adr_transaction_coa_id
39583         , p_accounting_coa_id       => l_adr_accounting_coa_id
39584         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39585         , p_flex_value_set_id       => l_adr_flex_value_set_id
39586         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
39587         , p_adr_type_code           => 'S'
39588         , p_component_type          => l_component_type
39589         , p_component_code          => l_component_code
39590         , p_component_type_code     => l_component_type_code
39591         , p_component_appl_id       => l_component_appl_id
39592         , p_amb_context_code        => l_amb_context_code
39593         , p_entity_code             => 'AP_INVOICES'
39594         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
39595         , p_side                    => 'NA'
39596         );
39597 
39598   END IF;
39599 
39600    l_segment := AcctDerRule_17(
39601            p_application_id           => p_application_id
39602          , p_ae_header_id             => l_ae_header_id 
39603 , p_source_16 => p_source_16
39604 , p_source_16_meaning => p_source_16_meaning
39605 , p_source_19 => p_source_19
39606 , p_source_19_meaning => p_source_19_meaning
39607 , p_source_29 => p_source_29
39608          , x_transaction_coa_id       => l_adr_transaction_coa_id
39609          , x_accounting_coa_id        => l_adr_accounting_coa_id
39610          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39611          , x_flex_value_set_id        => l_adr_flex_value_set_id
39612          , x_value_type_code          => l_adr_value_type_code
39613          , x_value_combination_id     => l_adr_value_combination_id
39614          , x_value_segment_code       => l_adr_value_segment_code
39615          , p_side                     => 'NA'
39616          , p_override_seg_flag        => 'Y'
39617    );
39618 
39619    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39620 
39621       xla_ae_lines_pkg.set_segment(
39622           p_to_segment_code         => 'GL_BALANCING'
39623         , p_segment_value           => l_segment
39624         , p_from_segment_code       => l_adr_value_segment_code
39625         , p_from_combination_id     => l_adr_value_combination_id
39626         , p_value_type_code         => l_adr_value_type_code
39627         , p_transaction_coa_id      => l_adr_transaction_coa_id
39628         , p_accounting_coa_id       => l_adr_accounting_coa_id
39629         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39630         , p_flex_value_set_id       => l_adr_flex_value_set_id
39631         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
39632         , p_adr_type_code           => 'S'
39633         , p_component_type          => l_component_type
39634         , p_component_code          => l_component_code
39635         , p_component_type_code     => l_component_type_code
39636         , p_component_appl_id       => l_component_appl_id
39637         , p_amb_context_code        => l_amb_context_code
39638         , p_entity_code             => 'AP_INVOICES'
39639         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
39640         , p_side                    => 'NA'
39641         );
39642 
39643   END IF;
39644 
39645    --
39646    --
39647    END IF;
39648 
39649        --
39650        -- Update the line information that should be overwritten
39651        --
39652        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39653                                          p_header_num   => 1);
39654        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
39655 
39656        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39657 
39658        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
39659           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39660        END IF;
39661 
39662       --
39663       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39664       --
39665       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39666           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
39667       ELSE
39671           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
39668           ---------------------------------------------------------------------------------------------------
39669           -- 4262811a Switch Sign
39670           ---------------------------------------------------------------------------------------------------
39672           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39673                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39674           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39675                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39676           -- 5132302
39677           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39678                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39679 
39680       END IF;
39681 
39682       -- 4955764
39683       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39684       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39685 
39686 
39687       XLA_AE_LINES_PKG.ValidateCurrentLine;
39688       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39689 
39690       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39691                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39692                ,p_balance_type_code => l_balance_type_code);
39693 
39694    END IF;
39695 
39696    -----------------------------------------------------------------------------------------
39697    -- 4262811 Multiperiod Accounting
39698    -----------------------------------------------------------------------------------------
39699      -- No MPA option is assigned.
39700 
39701 
39702 END IF;
39703 END IF;
39704 --
39705 
39706 --
39707 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39708    trace
39709       (p_msg      => 'END of AcctLineType_83'
39710       ,p_level    => C_LEVEL_PROCEDURE
39711       ,p_module   => l_log_module);
39712 END IF;
39713 --
39714 EXCEPTION
39715   WHEN xla_exceptions_pkg.application_exception THEN
39716       RAISE;
39717   WHEN OTHERS THEN
39718        xla_exceptions_pkg.raise_message
39719            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_83');
39720 END AcctLineType_83;
39721 --
39722 
39723 ---------------------------------------
39724 --
39725 -- PRIVATE FUNCTION
39726 --         AcctLineType_84
39727 --
39728 ---------------------------------------
39729 PROCEDURE AcctLineType_84 (
39730   p_application_id        IN NUMBER
39731  ,p_event_id              IN NUMBER
39732  ,p_calculate_acctd_flag  IN VARCHAR2
39733  ,p_calculate_g_l_flag    IN VARCHAR2
39734  ,p_actual_flag           IN OUT VARCHAR2
39735  ,p_balance_type_code     OUT VARCHAR2
39736  ,p_gain_or_loss_ref      OUT VARCHAR2
39737  
39738 --Payment Currency Code
39739  , p_source_12            IN VARCHAR2
39740 --Automatic Offsets Value
39741  , p_source_16            IN VARCHAR2
39742  , p_source_16_meaning    IN VARCHAR2
39743 --Purchase Order Rate Variance Gain Account
39744  , p_source_17            IN NUMBER
39745 --Destination Type of the PO Distribution
39746  , p_source_19            IN VARCHAR2
39747  , p_source_19_meaning    IN VARCHAR2
39748 --Purchase Order Rate Variance Loss Account
39749  , p_source_20            IN NUMBER
39750 --Payment Distribution (Payment Rate) Ledger Amount
39751  , p_source_21            IN NUMBER
39752 --Payment Distribution (Cleared Rate) Ledger Amount
39753  , p_source_22            IN NUMBER
39754 --Invoice Distribution Account
39755  , p_source_29            IN NUMBER
39756 --Automatic Offsets Flag
39757  , p_source_42            IN VARCHAR2
39758  , p_source_42_meaning    IN VARCHAR2
39759 --When to Account for Payment Option
39760  , p_source_50            IN VARCHAR2
39761 --Payment Distribution Type
39762  , p_source_51            IN VARCHAR2
39763  , p_source_51_meaning    IN VARCHAR2
39764 --Accounting Reversal Indicator
39765  , p_source_52            IN VARCHAR2
39766 --Payment Distribution Amount
39767  , p_source_53            IN NUMBER
39768 --Business Flow Accounts Payable Application Identifier
39769  , p_source_54            IN NUMBER
39770 --Payment Distribution Identifier
39771  , p_source_59            IN NUMBER
39772 --Distribution Link Type
39773  , p_source_60            IN VARCHAR2
39774 --Override Accounted Amount Indicator
39775  , p_source_64            IN VARCHAR2
39776  , p_source_64_meaning    IN VARCHAR2
39777 --Payment Supplier Identifier
39778  , p_source_65            IN NUMBER
39779 --Payment Supplier Site Identifier
39780  , p_source_66            IN NUMBER
39781 --Third Party Type
39782  , p_source_67            IN VARCHAR2
39783 --Payment Distribution Reversed Identifier
39784  , p_source_68            IN NUMBER
39785 --Invoice Distribution Tax Line Identifier
39786  , p_source_69            IN NUMBER
39787 --Invoice Distribution Summary Tax Line Identifier
39788  , p_source_70            IN NUMBER
39789 --Payment Type
39790  , p_source_71            IN VARCHAR2
39791  , p_source_71_meaning    IN VARCHAR2
39792 --Business Flow Invoice Distribution Type
39793  , p_source_73            IN VARCHAR2
39797  , p_source_75            IN NUMBER
39794 --Business Flow Invoice Entity Code
39795  , p_source_74            IN VARCHAR2
39796 --Business Flow Invoice Distribution Identifier
39798 --Business Flow Invoice Identifier
39799  , p_source_76            IN NUMBER
39800 --Invoice Distribution Tax Distribution Identifier from Tax
39801  , p_source_77            IN NUMBER
39802 --Accrue on Receipt Option
39803  , p_source_111            IN VARCHAR2
39804  , p_source_111_meaning    IN VARCHAR2
39805 --Payment Exchange Date
39806  , p_source_121            IN DATE
39807 --Payment Exchange Rate
39808  , p_source_122            IN NUMBER
39809 --Payment Exchange Rate Type
39810  , p_source_123            IN VARCHAR2
39811 )
39812 IS
39813 
39814 l_component_type              VARCHAR2(80);
39815 l_component_code              VARCHAR2(30);
39816 l_component_type_code         VARCHAR2(1);
39817 l_component_appl_id           INTEGER;
39818 l_amb_context_code            VARCHAR2(30);
39819 l_entity_code                 VARCHAR2(30);
39820 l_event_class_code            VARCHAR2(30);
39821 l_ae_header_id                NUMBER;
39822 l_event_type_code             VARCHAR2(30);
39823 l_line_definition_code        VARCHAR2(30);
39824 l_line_definition_owner_code  VARCHAR2(1);
39825 --
39826 -- adr variables
39827 l_segment                     VARCHAR2(30);
39828 l_ccid                        NUMBER;
39829 l_adr_transaction_coa_id      NUMBER;
39830 l_adr_accounting_coa_id       NUMBER;
39831 l_adr_flexfield_segment_code  VARCHAR2(30);
39832 l_adr_flex_value_set_id       NUMBER;
39833 l_adr_value_type_code         VARCHAR2(30);
39834 l_adr_value_combination_id    NUMBER;
39835 l_adr_value_segment_code      VARCHAR2(30);
39836 
39837 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
39838 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
39839 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
39840 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
39841 
39842 -- 4262811 Variables ------------------------------------------------------------------------------------------
39843 l_entered_amt_idx             NUMBER;
39844 l_accted_amt_idx              NUMBER;
39845 l_acc_rev_flag                VARCHAR2(1);
39846 l_accrual_line_num            NUMBER;
39847 l_tmp_amt                     NUMBER;
39848 l_acc_rev_natural_side_code   VARCHAR2(1);
39849 
39850 l_num_entries                 NUMBER;
39851 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
39852 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
39853 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
39854 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
39855 l_recog_line_1                NUMBER;
39856 l_recog_line_2                NUMBER;
39857 
39858 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
39859 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
39860 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
39861 
39862 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39863 
39864 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
39865 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
39866 
39867 ---------------------------------------------------------------------------------------------------------------
39868 
39869 
39870 --
39871 -- bulk performance
39872 --
39873 l_balance_type_code           VARCHAR2(1);
39874 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
39875 l_log_module                  VARCHAR2(240);
39876 
39877 --
39878 -- Upgrade strategy
39879 --
39880 l_actual_upg_option           VARCHAR2(1);
39881 l_enc_upg_option           VARCHAR2(1);
39882 
39883 --
39884 BEGIN
39885 --
39886 IF g_log_enabled THEN
39887       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
39888 END IF;
39889 --
39890 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39891 
39892       trace
39893          (p_msg      => 'BEGIN of AcctLineType_84'
39894          ,p_level    => C_LEVEL_PROCEDURE
39895          ,p_module   => l_log_module);
39896 
39897 END IF;
39898 --
39899 l_component_type             := 'AMB_JLT';
39900 l_component_code             := 'AP_EX_RATE_VAR_REF';
39901 l_component_type_code        := 'S';
39902 l_component_appl_id          :=  200;
39903 l_amb_context_code           := 'DEFAULT';
39904 l_entity_code                := 'AP_PAYMENTS';
39905 l_event_class_code           := 'REFUNDS';
39906 l_event_type_code            := 'REFUNDS_ALL';
39907 l_line_definition_owner_code := 'S';
39908 l_line_definition_code       := 'CASH_REFUNDS_ALL';
39909 --
39910 l_balance_type_code          := 'A';
39911 l_segment                     := NULL;
39912 l_ccid                        := NULL;
39913 l_adr_transaction_coa_id      := NULL;
39914 l_adr_accounting_coa_id       := NULL;
39915 l_adr_flexfield_segment_code  := NULL;
39916 l_adr_flex_value_set_id       := NULL;
39917 l_adr_value_type_code         := NULL;
39918 l_adr_value_combination_id    := NULL;
39919 l_adr_value_segment_code      := NULL;
39920 
39921 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
39922 l_bflow_class_code           := '';    -- 4219869 Business Flow
39926 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
39923 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
39924 l_budgetary_control_flag     := 'N';
39925 
39927 l_bflow_applied_to_amt       := NULL; -- 5132302
39928 l_entered_amt_idx            := NULL;          -- 4262811
39929 l_accted_amt_idx             := NULL;          -- 4262811
39930 l_acc_rev_flag               := NULL;          -- 4262811
39931 l_accrual_line_num           := NULL;          -- 4262811
39932 l_tmp_amt                    := NULL;          -- 4262811
39933 --
39934 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
39935             (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
39936                return;
39937   END IF;
39938   
39939 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39940     l_balance_type_code <> 'B' THEN
39941 IF NVL(p_source_50,'
39942 ') <>  'CLEAR_CLEAR' AND 
39943 NVL(p_source_51,'
39944 ') =  'EXCHANGE RATE VARIANCE' AND 
39945 NVL(p_source_111,'
39946 ') =  'Y' AND 
39947 NVL(p_source_71,'
39948 ') =  'R'
39949  THEN 
39950 
39951    --
39952    XLA_AE_LINES_PKG.SetNewLine;
39953 
39954    p_balance_type_code          := l_balance_type_code;
39955    -- set the flag so later we will know whether the gain loss line needs to be created
39956    
39957    IF(l_balance_type_code = 'A' ) THEN
39958      p_actual_flag :='G';
39959    END IF;
39960 
39961    --
39962    -- bulk performance
39963    --
39964    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39965                                       p_header_num   => 0); -- 4262811
39966    --
39967    -- set accounting line options
39968    --
39969    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39970            p_natural_side_code          => 'D'
39971          , p_gain_or_loss_flag          => 'Y'
39972          , p_gl_transfer_mode_code      => 'S'
39973          , p_acct_entry_type_code       => 'A'
39974          , p_switch_side_flag           => 'Y'
39975          , p_merge_duplicate_code       => 'A'
39976          );
39977    --
39978    l_acc_rev_natural_side_code := 'C';  -- 4262811
39979    -- 
39980    --
39981    -- set accounting line type info
39982    --
39983    xla_ae_lines_pkg.SetAcctLineType
39984       (p_component_type             => l_component_type
39985       ,p_event_type_code            => l_event_type_code
39986       ,p_line_definition_owner_code => l_line_definition_owner_code
39987       ,p_line_definition_code       => l_line_definition_code
39988       ,p_accounting_line_code       => l_component_code
39989       ,p_accounting_line_type_code  => l_component_type_code
39990       ,p_accounting_line_appl_id    => l_component_appl_id
39991       ,p_amb_context_code           => l_amb_context_code
39992       ,p_entity_code                => l_entity_code
39993       ,p_event_class_code           => l_event_class_code);
39994    --
39995    -- set accounting class
39996    --
39997    xla_ae_lines_pkg.SetAcctClass(
39998            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
39999          , p_ae_header_id           => l_ae_header_id
40000          );
40001 
40002    --
40003    -- set rounding class
40004    --
40005    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40006                       'EXCHANGE_RATE_VARIANCE';
40007 
40008    --
40009    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40010    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40011    --
40012    -- bulk performance
40013    --
40014    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40015 
40016    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40017       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40018 
40019    -- 4955764
40020    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40021       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40022 
40023    -- 4458381 Public Sector Enh
40024    
40025    --
40026    -- set accounting attributes for the line type
40027    --
40028    l_entered_amt_idx := 9;
40029    l_accted_amt_idx  := 14;
40030    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
40031    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40032    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
40033    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
40034    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
40035    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40036    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
40037    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
40038    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
40039    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
40040    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
40041    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40045    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
40042    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
40043    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
40044    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
40046    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
40047    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
40048    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
40049    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
40050    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
40051    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
40052    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
40053    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
40054    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
40055    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
40056    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
40057    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
40058    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
40059    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
40060    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
40061    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
40062    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
40063    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
40064    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
40065    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
40066    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
40067    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
40068    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
40069    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
40070    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
40071    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
40072    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
40073    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
40074    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
40075    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
40076    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
40077 
40078    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40079    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40080 
40081    ---------------------------------------------------------------------------------------------------------------
40082    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40083    ---------------------------------------------------------------------------------------------------------------
40084    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40085 
40086    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40087    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40088 
40089    IF xla_accounting_cache_pkg.GetValueChar
40090          (p_source_code         => 'LEDGER_CATEGORY_CODE'
40091          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40092    AND l_bflow_method_code = 'PRIOR_ENTRY'
40093 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40094    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40095          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40096        )
40097    THEN
40098          xla_ae_lines_pkg.BflowUpgEntry
40099            (p_business_method_code    => l_bflow_method_code
40100            ,p_business_class_code     => l_bflow_class_code
40101            ,p_balance_type            => l_balance_type_code);
40102    ELSE
40103       NULL;
40104 -- No business flow processing for business flow method of NONE.
40105    END IF;
40106 
40107    --
40108    -- call analytical criteria
40109    --
40110    
40111    --
40112    -- call description
40113    --
40114    -- No description or it is inherited.
40115    --
40116    -- call ADRs
40117    -- Bug 4922099
40118    --
40119    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40120         (NVL(l_actual_upg_option, 'N') = 'O') OR
40121         (NVL(l_enc_upg_option, 'N') = 'O')
40122       )
40123    THEN
40124    NULL;
40125    --
40126    --
40127    
40128   l_ccid := AcctDerRule_24(
40129            p_application_id           => p_application_id
40130          , p_ae_header_id             => l_ae_header_id 
40131 , p_source_16 => p_source_16
40132 , p_source_16_meaning => p_source_16_meaning
40133 , p_source_17 => p_source_17
40134 , p_source_19 => p_source_19
40135 , p_source_19_meaning => p_source_19_meaning
40136 , p_source_20 => p_source_20
40137 , p_source_21 => p_source_21
40138 , p_source_22 => p_source_22
40139 , p_source_29 => p_source_29
40140 , p_source_42 => p_source_42
40141 , p_source_42_meaning => p_source_42_meaning
40142          , x_transaction_coa_id       => l_adr_transaction_coa_id
40143          , x_accounting_coa_id        => l_adr_accounting_coa_id
40144          , x_value_type_code          => l_adr_value_type_code
40145          , p_side                     => 'NA'
40146    );
40147 
40148    xla_ae_lines_pkg.set_ccid(
40149     p_code_combination_id          => l_ccid
40153   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
40150   , p_value_type_code              => l_adr_value_type_code
40151   , p_transaction_coa_id           => l_adr_transaction_coa_id
40152   , p_accounting_coa_id            => l_adr_accounting_coa_id
40154   , p_adr_type_code                => 'S'
40155   , p_component_type               => l_component_type
40156   , p_component_code               => l_component_code
40157   , p_component_type_code          => l_component_type_code
40158   , p_component_appl_id            => l_component_appl_id
40159   , p_amb_context_code             => l_amb_context_code
40160   , p_side                         => 'NA'
40161   );
40162 
40163 
40164    l_segment := AcctDerRule_6(
40165            p_application_id           => p_application_id
40166          , p_ae_header_id             => l_ae_header_id 
40167 , p_source_16 => p_source_16
40168 , p_source_16_meaning => p_source_16_meaning
40169 , p_source_17 => p_source_17
40170 , p_source_19 => p_source_19
40171 , p_source_19_meaning => p_source_19_meaning
40172 , p_source_20 => p_source_20
40173 , p_source_21 => p_source_21
40174 , p_source_22 => p_source_22
40175          , x_transaction_coa_id       => l_adr_transaction_coa_id
40176          , x_accounting_coa_id        => l_adr_accounting_coa_id
40177          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
40178          , x_flex_value_set_id        => l_adr_flex_value_set_id
40179          , x_value_type_code          => l_adr_value_type_code
40180          , x_value_combination_id     => l_adr_value_combination_id
40181          , x_value_segment_code       => l_adr_value_segment_code
40182          , p_side                     => 'NA'
40183          , p_override_seg_flag        => 'Y'
40184    );
40185 
40186    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
40187 
40188       xla_ae_lines_pkg.set_segment(
40189           p_to_segment_code         => 'GL_ACCOUNT'
40190         , p_segment_value           => l_segment
40191         , p_from_segment_code       => l_adr_value_segment_code
40192         , p_from_combination_id     => l_adr_value_combination_id
40193         , p_value_type_code         => l_adr_value_type_code
40194         , p_transaction_coa_id      => l_adr_transaction_coa_id
40195         , p_accounting_coa_id       => l_adr_accounting_coa_id
40196         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
40197         , p_flex_value_set_id       => l_adr_flex_value_set_id
40198         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
40199         , p_adr_type_code           => 'S'
40200         , p_component_type          => l_component_type
40201         , p_component_code          => l_component_code
40202         , p_component_type_code     => l_component_type_code
40203         , p_component_appl_id       => l_component_appl_id
40204         , p_amb_context_code        => l_amb_context_code
40205         , p_entity_code             => 'AP_PAYMENTS'
40206         , p_event_class_code        => 'REFUNDS'
40207         , p_side                    => 'NA'
40208         );
40209 
40210   END IF;
40211 
40212    l_segment := AcctDerRule_17(
40213            p_application_id           => p_application_id
40214          , p_ae_header_id             => l_ae_header_id 
40215 , p_source_16 => p_source_16
40216 , p_source_16_meaning => p_source_16_meaning
40217 , p_source_19 => p_source_19
40218 , p_source_19_meaning => p_source_19_meaning
40219 , p_source_29 => p_source_29
40220          , x_transaction_coa_id       => l_adr_transaction_coa_id
40221          , x_accounting_coa_id        => l_adr_accounting_coa_id
40222          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
40223          , x_flex_value_set_id        => l_adr_flex_value_set_id
40224          , x_value_type_code          => l_adr_value_type_code
40225          , x_value_combination_id     => l_adr_value_combination_id
40226          , x_value_segment_code       => l_adr_value_segment_code
40227          , p_side                     => 'NA'
40228          , p_override_seg_flag        => 'Y'
40229    );
40230 
40231    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
40232 
40233       xla_ae_lines_pkg.set_segment(
40234           p_to_segment_code         => 'GL_BALANCING'
40235         , p_segment_value           => l_segment
40236         , p_from_segment_code       => l_adr_value_segment_code
40237         , p_from_combination_id     => l_adr_value_combination_id
40238         , p_value_type_code         => l_adr_value_type_code
40239         , p_transaction_coa_id      => l_adr_transaction_coa_id
40240         , p_accounting_coa_id       => l_adr_accounting_coa_id
40241         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
40242         , p_flex_value_set_id       => l_adr_flex_value_set_id
40243         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
40244         , p_adr_type_code           => 'S'
40245         , p_component_type          => l_component_type
40246         , p_component_code          => l_component_code
40247         , p_component_type_code     => l_component_type_code
40248         , p_component_appl_id       => l_component_appl_id
40249         , p_amb_context_code        => l_amb_context_code
40250         , p_entity_code             => 'AP_PAYMENTS'
40251         , p_event_class_code        => 'REFUNDS'
40252         , p_side                    => 'NA'
40253         );
40254 
40255   END IF;
40256 
40257    --
40258    --
40259    END IF;
40260    --
40261    -- Bug 4922099
40265         (l_bflow_method_code = 'PRIOR_ENTRY')
40262    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40263           (NVL(l_enc_upg_option, 'N') = 'O')
40264         ) AND
40266       )
40267    THEN
40268       IF
40269       --
40270       1 = 2
40271       --
40272       THEN
40273       xla_accounting_err_pkg.build_message
40274                                     (p_appli_s_name            => 'XLA'
40275                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40276                                     ,p_token_1                 => 'LINE_NUMBER'
40277                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
40278                                     ,p_token_2                 => 'LINE_TYPE_NAME'
40279                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
40280                                                                              l_component_type
40281                                                                             ,l_component_code
40282                                                                             ,l_component_type_code
40283                                                                             ,l_component_appl_id
40284                                                                             ,l_amb_context_code
40285                                                                             ,l_entity_code
40286                                                                             ,l_event_class_code
40287                                                                            )
40288                                     ,p_token_3                 => 'OWNER'
40289                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
40290                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
40291                                                                           ,p_lookup_code    => l_component_type_code
40292                                                                          )
40293                                     ,p_token_4                 => 'PRODUCT_NAME'
40294                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40295                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40296                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40297                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40298                                     ,p_ae_header_id            =>  NULL
40299                                        );
40300 
40301         IF (C_LEVEL_ERROR>= g_log_level) THEN
40302                  trace
40303                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40304                       ,p_level    => C_LEVEL_ERROR
40305                       ,p_module   => l_log_module);
40306         END IF;
40307       END IF;
40308    END IF;
40309    --
40310    --
40311    ------------------------------------------------------------------------------------------------
40312    -- 4219869 Business Flow
40313    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40314    -- Prior Entry.  Currently, the following code is always generated.
40315    ------------------------------------------------------------------------------------------------
40316    XLA_AE_LINES_PKG.ValidateCurrentLine;
40317 
40318    ------------------------------------------------------------------------------------
40319    -- 4219869 Business Flow
40320    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40321    ------------------------------------------------------------------------------------
40322    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40323 
40324    ----------------------------------------------------------------------------------
40325    -- 4219869 Business Flow
40326    -- Update journal entry status -- Need to generate this within IF <condition>
40327    ----------------------------------------------------------------------------------
40328    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40329          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40330          ,p_balance_type_code => l_balance_type_code
40331          );
40332 
40333    -------------------------------------------------------------------------------------------
40334    -- 4262811 - Generate the Accrual Reversal lines
40335    -------------------------------------------------------------------------------------------
40336    BEGIN
40337       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40338                               (g_array_event(p_event_id).array_value_num('header_index'));
40339       IF l_acc_rev_flag IS NULL THEN
40340          l_acc_rev_flag := 'N';
40341       END IF;
40342    EXCEPTION
40343       WHEN OTHERS THEN
40344          l_acc_rev_flag := 'N';
40345    END;
40346    --
40347    IF (l_acc_rev_flag = 'Y') THEN
40348 
40349        -- 4645092  ------------------------------------------------------------------------------
40350        -- To allow MPA report to determine if it should generate report process
40351        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40352        ------------------------------------------------------------------------------------------
40353 
40354        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40355        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40359    --
40356    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
40357    -- call ADRs
40358    -- Bug 4922099
40360    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40361         (NVL(l_actual_upg_option, 'N') = 'O') OR
40362         (NVL(l_enc_upg_option, 'N') = 'O')
40363       )
40364    THEN
40365    NULL;
40366    --
40367    --
40368    
40369   l_ccid := AcctDerRule_24(
40370            p_application_id           => p_application_id
40371          , p_ae_header_id             => l_ae_header_id 
40372 , p_source_16 => p_source_16
40373 , p_source_16_meaning => p_source_16_meaning
40374 , p_source_17 => p_source_17
40375 , p_source_19 => p_source_19
40376 , p_source_19_meaning => p_source_19_meaning
40377 , p_source_20 => p_source_20
40378 , p_source_21 => p_source_21
40379 , p_source_22 => p_source_22
40380 , p_source_29 => p_source_29
40381 , p_source_42 => p_source_42
40382 , p_source_42_meaning => p_source_42_meaning
40383          , x_transaction_coa_id       => l_adr_transaction_coa_id
40384          , x_accounting_coa_id        => l_adr_accounting_coa_id
40385          , x_value_type_code          => l_adr_value_type_code
40386          , p_side                     => 'NA'
40387    );
40388 
40389    xla_ae_lines_pkg.set_ccid(
40390     p_code_combination_id          => l_ccid
40391   , p_value_type_code              => l_adr_value_type_code
40392   , p_transaction_coa_id           => l_adr_transaction_coa_id
40393   , p_accounting_coa_id            => l_adr_accounting_coa_id
40394   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
40395   , p_adr_type_code                => 'S'
40396   , p_component_type               => l_component_type
40397   , p_component_code               => l_component_code
40398   , p_component_type_code          => l_component_type_code
40399   , p_component_appl_id            => l_component_appl_id
40400   , p_amb_context_code             => l_amb_context_code
40401   , p_side                         => 'NA'
40402   );
40403 
40404 
40405    l_segment := AcctDerRule_6(
40406            p_application_id           => p_application_id
40407          , p_ae_header_id             => l_ae_header_id 
40408 , p_source_16 => p_source_16
40409 , p_source_16_meaning => p_source_16_meaning
40410 , p_source_17 => p_source_17
40411 , p_source_19 => p_source_19
40412 , p_source_19_meaning => p_source_19_meaning
40413 , p_source_20 => p_source_20
40414 , p_source_21 => p_source_21
40415 , p_source_22 => p_source_22
40416          , x_transaction_coa_id       => l_adr_transaction_coa_id
40417          , x_accounting_coa_id        => l_adr_accounting_coa_id
40418          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
40419          , x_flex_value_set_id        => l_adr_flex_value_set_id
40420          , x_value_type_code          => l_adr_value_type_code
40421          , x_value_combination_id     => l_adr_value_combination_id
40422          , x_value_segment_code       => l_adr_value_segment_code
40423          , p_side                     => 'NA'
40424          , p_override_seg_flag        => 'Y'
40425    );
40426 
40427    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
40428 
40429       xla_ae_lines_pkg.set_segment(
40430           p_to_segment_code         => 'GL_ACCOUNT'
40431         , p_segment_value           => l_segment
40432         , p_from_segment_code       => l_adr_value_segment_code
40433         , p_from_combination_id     => l_adr_value_combination_id
40434         , p_value_type_code         => l_adr_value_type_code
40435         , p_transaction_coa_id      => l_adr_transaction_coa_id
40436         , p_accounting_coa_id       => l_adr_accounting_coa_id
40437         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
40438         , p_flex_value_set_id       => l_adr_flex_value_set_id
40439         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
40440         , p_adr_type_code           => 'S'
40441         , p_component_type          => l_component_type
40442         , p_component_code          => l_component_code
40443         , p_component_type_code     => l_component_type_code
40444         , p_component_appl_id       => l_component_appl_id
40445         , p_amb_context_code        => l_amb_context_code
40446         , p_entity_code             => 'AP_PAYMENTS'
40447         , p_event_class_code        => 'REFUNDS'
40448         , p_side                    => 'NA'
40449         );
40450 
40451   END IF;
40452 
40453    l_segment := AcctDerRule_17(
40454            p_application_id           => p_application_id
40455          , p_ae_header_id             => l_ae_header_id 
40456 , p_source_16 => p_source_16
40457 , p_source_16_meaning => p_source_16_meaning
40458 , p_source_19 => p_source_19
40459 , p_source_19_meaning => p_source_19_meaning
40460 , p_source_29 => p_source_29
40461          , x_transaction_coa_id       => l_adr_transaction_coa_id
40462          , x_accounting_coa_id        => l_adr_accounting_coa_id
40463          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
40464          , x_flex_value_set_id        => l_adr_flex_value_set_id
40465          , x_value_type_code          => l_adr_value_type_code
40466          , x_value_combination_id     => l_adr_value_combination_id
40467          , x_value_segment_code       => l_adr_value_segment_code
40468          , p_side                     => 'NA'
40469          , p_override_seg_flag        => 'Y'
40470    );
40471 
40475           p_to_segment_code         => 'GL_BALANCING'
40472    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
40473 
40474       xla_ae_lines_pkg.set_segment(
40476         , p_segment_value           => l_segment
40477         , p_from_segment_code       => l_adr_value_segment_code
40478         , p_from_combination_id     => l_adr_value_combination_id
40479         , p_value_type_code         => l_adr_value_type_code
40480         , p_transaction_coa_id      => l_adr_transaction_coa_id
40481         , p_accounting_coa_id       => l_adr_accounting_coa_id
40482         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
40483         , p_flex_value_set_id       => l_adr_flex_value_set_id
40484         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
40485         , p_adr_type_code           => 'S'
40486         , p_component_type          => l_component_type
40487         , p_component_code          => l_component_code
40488         , p_component_type_code     => l_component_type_code
40489         , p_component_appl_id       => l_component_appl_id
40490         , p_amb_context_code        => l_amb_context_code
40491         , p_entity_code             => 'AP_PAYMENTS'
40492         , p_event_class_code        => 'REFUNDS'
40493         , p_side                    => 'NA'
40494         );
40495 
40496   END IF;
40497 
40498    --
40499    --
40500    END IF;
40501 
40502        --
40503        -- Update the line information that should be overwritten
40504        --
40505        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40506                                          p_header_num   => 1);
40507        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
40508 
40509        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40510 
40511        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
40512           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40513        END IF;
40514 
40515       --
40516       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40517       --
40518       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40519           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
40520       ELSE
40521           ---------------------------------------------------------------------------------------------------
40522           -- 4262811a Switch Sign
40523           ---------------------------------------------------------------------------------------------------
40524           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
40525           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40526                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40527           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40528                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40529           -- 5132302
40530           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40531                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40532 
40533       END IF;
40534 
40535       -- 4955764
40536       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40537       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40538 
40539 
40540       XLA_AE_LINES_PKG.ValidateCurrentLine;
40541       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40542 
40543       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40544                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40545                ,p_balance_type_code => l_balance_type_code);
40546 
40547    END IF;
40548 
40549    -----------------------------------------------------------------------------------------
40550    -- 4262811 Multiperiod Accounting
40551    -----------------------------------------------------------------------------------------
40552      -- No MPA option is assigned.
40553 
40554 
40555 END IF;
40556 END IF;
40557 --
40558 
40559 --
40560 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40561    trace
40562       (p_msg      => 'END of AcctLineType_84'
40563       ,p_level    => C_LEVEL_PROCEDURE
40564       ,p_module   => l_log_module);
40565 END IF;
40566 --
40567 EXCEPTION
40568   WHEN xla_exceptions_pkg.application_exception THEN
40569       RAISE;
40570   WHEN OTHERS THEN
40571        xla_exceptions_pkg.raise_message
40572            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_84');
40573 END AcctLineType_84;
40574 --
40575 
40576 ---------------------------------------
40577 --
40578 -- PRIVATE FUNCTION
40579 --         AcctLineType_85
40580 --
40581 ---------------------------------------
40582 PROCEDURE AcctLineType_85 (
40583   p_application_id        IN NUMBER
40584  ,p_event_id              IN NUMBER
40585  ,p_calculate_acctd_flag  IN VARCHAR2
40586  ,p_calculate_g_l_flag    IN VARCHAR2
40587  ,p_actual_flag           IN OUT VARCHAR2
40588  ,p_balance_type_code     OUT VARCHAR2
40592  , p_source_16            IN VARCHAR2
40589  ,p_gain_or_loss_ref      OUT VARCHAR2
40590  
40591 --Automatic Offsets Value
40593  , p_source_16_meaning    IN VARCHAR2
40594 --Invoice Distribution Account
40595  , p_source_29            IN NUMBER
40596 --Payables Options Rounding Account
40597  , p_source_49            IN NUMBER
40598 --When to Account for Payment Option
40599  , p_source_50            IN VARCHAR2
40600 --Accounting Reversal Indicator
40601  , p_source_52            IN VARCHAR2
40602 --Business Flow Accounts Payable Application Identifier
40603  , p_source_54            IN NUMBER
40604 --Distribution Link Type
40605  , p_source_60            IN VARCHAR2
40606 --Override Accounted Amount Indicator
40607  , p_source_64            IN VARCHAR2
40608  , p_source_64_meaning    IN VARCHAR2
40609 --Third Party Type
40610  , p_source_67            IN VARCHAR2
40611 --Invoice Distribution Tax Line Identifier
40612  , p_source_69            IN NUMBER
40613 --Invoice Distribution Summary Tax Line Identifier
40614  , p_source_70            IN NUMBER
40615 --Invoice Distribution Tax Distribution Identifier from Tax
40616  , p_source_77            IN NUMBER
40617 --Prepayment Distribution Type
40618  , p_source_78            IN VARCHAR2
40619 --Prepayment Application Distribution Identifier
40620  , p_source_82            IN NUMBER
40621 --Invoice Identifier
40622  , p_source_83            IN NUMBER
40623 --Business Flow Prepayment Invoice Distribution Type
40624  , p_source_84            IN VARCHAR2
40625 --Business Flow Prepayment Invoice Entity Code
40626  , p_source_85            IN VARCHAR2
40627 --Business Flow Prepayment Invoice Distribution Identifier
40628  , p_source_86            IN NUMBER
40629 --Business Flow Prepayment Invoice Identifier
40630  , p_source_87            IN NUMBER
40631 --Upgrade Encumbrance Credit Account Class
40632  , p_source_88            IN VARCHAR2
40633 --Payables Encumbrance Upgrade Credit Account
40634  , p_source_89            IN NUMBER
40635 --Payables Encumbrance Upgrade Credit Amount
40636  , p_source_90            IN NUMBER
40637 --Invoice Currency Code
40638  , p_source_91            IN VARCHAR2
40639 --Payables Encumbrance Upgrade Credit Base Amount
40640  , p_source_92            IN NUMBER
40641 --Upgrade Encumbrance Debit Account Class
40642  , p_source_93            IN VARCHAR2
40643 --Payables Encumbrance Upgrade Debit Account
40644  , p_source_94            IN NUMBER
40645 --Payables Encumbrance Upgrade Debit Amount
40646  , p_source_95            IN NUMBER
40647 --Payables Encumbrance Upgrade Debit Base Amount
40648  , p_source_96            IN NUMBER
40649 --Payables Encumbrance Upgrade Option
40650  , p_source_97            IN VARCHAR2
40651 --Prepayment Distribution Amount
40652  , p_source_98            IN NUMBER
40653 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
40654  , p_source_100            IN NUMBER
40655 --Deferred Accounting End Date
40656  , p_source_101            IN DATE
40657 --Deferred Accounting Option
40658  , p_source_102            IN VARCHAR2
40659 --Deferred Accounting Start Date
40660  , p_source_103            IN DATE
40661 --Invoice Supplier Identifier
40662  , p_source_104            IN NUMBER
40663 --Invoice Supplier Site Identifier
40664  , p_source_105            IN NUMBER
40665 --Identifier of the Prepayment Application Reversed
40666  , p_source_106            IN NUMBER
40667 --Payables Upgrade Credit Encumbrance Type Identifier
40668  , p_source_107            IN NUMBER
40669 --Payables Upgrade Debit Encumbrance Type Identifier
40670  , p_source_108            IN NUMBER
40671 --Invoice Exchange Date
40672  , p_source_131            IN DATE
40673 --Invoice Exchange Rate
40674  , p_source_132            IN NUMBER
40675 --Invoice Exchange Rate Type
40676  , p_source_133            IN VARCHAR2
40677 )
40678 IS
40679 
40680 l_component_type              VARCHAR2(80);
40681 l_component_code              VARCHAR2(30);
40682 l_component_type_code         VARCHAR2(1);
40683 l_component_appl_id           INTEGER;
40684 l_amb_context_code            VARCHAR2(30);
40685 l_entity_code                 VARCHAR2(30);
40686 l_event_class_code            VARCHAR2(30);
40687 l_ae_header_id                NUMBER;
40688 l_event_type_code             VARCHAR2(30);
40689 l_line_definition_code        VARCHAR2(30);
40690 l_line_definition_owner_code  VARCHAR2(1);
40691 --
40692 -- adr variables
40693 l_segment                     VARCHAR2(30);
40694 l_ccid                        NUMBER;
40695 l_adr_transaction_coa_id      NUMBER;
40696 l_adr_accounting_coa_id       NUMBER;
40697 l_adr_flexfield_segment_code  VARCHAR2(30);
40698 l_adr_flex_value_set_id       NUMBER;
40699 l_adr_value_type_code         VARCHAR2(30);
40700 l_adr_value_combination_id    NUMBER;
40701 l_adr_value_segment_code      VARCHAR2(30);
40702 
40703 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
40704 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
40705 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
40706 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
40707 
40708 -- 4262811 Variables ------------------------------------------------------------------------------------------
40709 l_entered_amt_idx             NUMBER;
40710 l_accted_amt_idx              NUMBER;
40711 l_acc_rev_flag                VARCHAR2(1);
40712 l_accrual_line_num            NUMBER;
40716 l_num_entries                 NUMBER;
40713 l_tmp_amt                     NUMBER;
40714 l_acc_rev_natural_side_code   VARCHAR2(1);
40715 
40717 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
40718 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
40719 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
40720 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
40721 l_recog_line_1                NUMBER;
40722 l_recog_line_2                NUMBER;
40723 
40724 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
40725 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
40726 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
40727 
40728 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40729 
40730 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
40731 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
40732 
40733 ---------------------------------------------------------------------------------------------------------------
40734 
40735 
40736 --
40737 -- bulk performance
40738 --
40739 l_balance_type_code           VARCHAR2(1);
40740 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
40741 l_log_module                  VARCHAR2(240);
40742 
40743 --
40744 -- Upgrade strategy
40745 --
40746 l_actual_upg_option           VARCHAR2(1);
40747 l_enc_upg_option           VARCHAR2(1);
40748 
40749 --
40750 BEGIN
40751 --
40752 IF g_log_enabled THEN
40753       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
40754 END IF;
40755 --
40756 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40757 
40758       trace
40759          (p_msg      => 'BEGIN of AcctLineType_85'
40760          ,p_level    => C_LEVEL_PROCEDURE
40761          ,p_module   => l_log_module);
40762 
40763 END IF;
40764 --
40765 l_component_type             := 'AMB_JLT';
40766 l_component_code             := 'AP_FINAL_APP_ROUND_PP_CLR_RATE';
40767 l_component_type_code        := 'S';
40768 l_component_appl_id          :=  200;
40769 l_amb_context_code           := 'DEFAULT';
40770 l_entity_code                := 'AP_INVOICES';
40771 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
40772 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
40773 l_line_definition_owner_code := 'S';
40774 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
40775 --
40776 l_balance_type_code          := 'A';
40777 l_segment                     := NULL;
40778 l_ccid                        := NULL;
40779 l_adr_transaction_coa_id      := NULL;
40780 l_adr_accounting_coa_id       := NULL;
40781 l_adr_flexfield_segment_code  := NULL;
40782 l_adr_flex_value_set_id       := NULL;
40783 l_adr_value_type_code         := NULL;
40784 l_adr_value_combination_id    := NULL;
40785 l_adr_value_segment_code      := NULL;
40786 
40787 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
40788 l_bflow_class_code           := '';    -- 4219869 Business Flow
40789 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
40790 l_budgetary_control_flag     := 'N';
40791 
40792 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
40793 l_bflow_applied_to_amt       := NULL; -- 5132302
40794 l_entered_amt_idx            := NULL;          -- 4262811
40795 l_accted_amt_idx             := NULL;          -- 4262811
40796 l_acc_rev_flag               := NULL;          -- 4262811
40797 l_accrual_line_num           := NULL;          -- 4262811
40798 l_tmp_amt                    := NULL;          -- 4262811
40799 --
40800  
40801 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40802     l_balance_type_code <> 'B' THEN
40803 IF NVL(p_source_50,'
40804 ') <>  'CLEAR_CLEAR' AND 
40805 NVL(p_source_78,'
40806 ') =  'FINAL APPLICATION ROUNDING'
40807  THEN 
40808 
40809    --
40810    XLA_AE_LINES_PKG.SetNewLine;
40811 
40812    p_balance_type_code          := l_balance_type_code;
40813    -- set the flag so later we will know whether the gain loss line needs to be created
40814    
40815    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40816      p_actual_flag :='A';
40817    END IF;
40818 
40819    --
40820    -- bulk performance
40821    --
40822    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40823                                       p_header_num   => 0); -- 4262811
40824    --
40825    -- set accounting line options
40826    --
40827    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40828            p_natural_side_code          => 'C'
40829          , p_gain_or_loss_flag          => 'N'
40830          , p_gl_transfer_mode_code      => 'S'
40831          , p_acct_entry_type_code       => 'A'
40832          , p_switch_side_flag           => 'Y'
40833          , p_merge_duplicate_code       => 'A'
40834          );
40835    --
40836    l_acc_rev_natural_side_code := 'D';  -- 4262811
40837    -- 
40838    --
40839    -- set accounting line type info
40840    --
40841    xla_ae_lines_pkg.SetAcctLineType
40842       (p_component_type             => l_component_type
40843       ,p_event_type_code            => l_event_type_code
40844       ,p_line_definition_owner_code => l_line_definition_owner_code
40845       ,p_line_definition_code       => l_line_definition_code
40849       ,p_amb_context_code           => l_amb_context_code
40846       ,p_accounting_line_code       => l_component_code
40847       ,p_accounting_line_type_code  => l_component_type_code
40848       ,p_accounting_line_appl_id    => l_component_appl_id
40850       ,p_entity_code                => l_entity_code
40851       ,p_event_class_code           => l_event_class_code);
40852    --
40853    -- set accounting class
40854    --
40855    xla_ae_lines_pkg.SetAcctClass(
40856            p_accounting_class_code  => 'ROUNDING'
40857          , p_ae_header_id           => l_ae_header_id
40858          );
40859 
40860    --
40861    -- set rounding class
40862    --
40863    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40864                       'ROUNDING';
40865 
40866    --
40867    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40868    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40869    --
40870    -- bulk performance
40871    --
40872    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40873 
40874    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40875       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40876 
40877    -- 4955764
40878    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40879       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40880 
40881    -- 4458381 Public Sector Enh
40882    
40883    --
40884    -- set accounting attributes for the line type
40885    --
40886    l_entered_amt_idx := 25;
40887    l_accted_amt_idx  := 30;
40888    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
40889    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40890    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
40891    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
40892    l_rec_acct_attrs.array_num_value(2)  := 
40893 xla_ae_sources_pkg.GetSystemSourceNum(
40894    p_source_code           => 'XLA_EVENT_APPL_ID'
40895  , p_source_type_code      => 'Y'
40896  , p_source_application_id =>  602
40897 );
40898    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
40899    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
40900    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
40901    l_rec_acct_attrs.array_char_value(4)  := 
40902 xla_ae_sources_pkg.GetSystemSourceChar(
40903    p_source_code           => 'XLA_ENTITY_CODE'
40904  , p_source_type_code      => 'Y'
40905  , p_source_application_id =>  602
40906 );
40907    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
40908    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
40909    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
40910    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
40911    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
40912    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
40913    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40914    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
40915    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
40916    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
40917    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
40918    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
40919    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40920    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
40921    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
40922    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
40923    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
40924    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
40925    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
40926    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
40927    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
40928    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
40929    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
40930    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
40931    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
40932    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
40933    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
40934    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
40935    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
40936    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
40937    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
40938    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
40939    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
40940    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
40941    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
40942    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
40943    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
40944    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
40945    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
40946    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
40950    l_rec_acct_attrs.array_char_value(26)  := p_source_91;
40947    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
40948    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
40949    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
40951    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
40952    l_rec_acct_attrs.array_date_value(27)  := p_source_131;
40953    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
40954    l_rec_acct_attrs.array_num_value(28)  := p_source_132;
40955    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
40956    l_rec_acct_attrs.array_char_value(29)  := p_source_133;
40957    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
40958    l_rec_acct_attrs.array_num_value(30)  := p_source_100;
40959    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
40960    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
40961    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
40962    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
40963    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
40964    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
40965    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
40966    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
40967    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
40968    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
40969    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
40970    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
40971    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
40972    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
40973    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
40974    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
40975    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
40976    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
40977    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
40978    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
40979    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
40980    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
40981    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
40982    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
40983    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
40984    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
40985    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
40986    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
40987 
40988    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40989    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40990 
40991    ---------------------------------------------------------------------------------------------------------------
40992    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40993    ---------------------------------------------------------------------------------------------------------------
40994    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40995 
40996    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40997    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40998 
40999    IF xla_accounting_cache_pkg.GetValueChar
41000          (p_source_code         => 'LEDGER_CATEGORY_CODE'
41001          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41002    AND l_bflow_method_code = 'PRIOR_ENTRY'
41003 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41004    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41005          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41006        )
41007    THEN
41008          xla_ae_lines_pkg.BflowUpgEntry
41009            (p_business_method_code    => l_bflow_method_code
41010            ,p_business_class_code     => l_bflow_class_code
41011            ,p_balance_type            => l_balance_type_code);
41012    ELSE
41013       NULL;
41014 -- No business flow processing for business flow method of NONE.
41015    END IF;
41016 
41017    --
41018    -- call analytical criteria
41019    --
41020    
41021    --
41022    -- call description
41023    --
41024    -- No description or it is inherited.
41025    --
41026    -- call ADRs
41027    -- Bug 4922099
41028    --
41029    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41030         (NVL(l_actual_upg_option, 'N') = 'O') OR
41031         (NVL(l_enc_upg_option, 'N') = 'O')
41032       )
41033    THEN
41034    NULL;
41035    --
41036    --
41037    
41038   l_ccid := AcctDerRule_37(
41039            p_application_id           => p_application_id
41040          , p_ae_header_id             => l_ae_header_id 
41041 , p_source_16 => p_source_16
41042 , p_source_16_meaning => p_source_16_meaning
41043 , p_source_29 => p_source_29
41044 , p_source_49 => p_source_49
41045          , x_transaction_coa_id       => l_adr_transaction_coa_id
41046          , x_accounting_coa_id        => l_adr_accounting_coa_id
41047          , x_value_type_code          => l_adr_value_type_code
41048          , p_side                     => 'NA'
41049    );
41050 
41051    xla_ae_lines_pkg.set_ccid(
41052     p_code_combination_id          => l_ccid
41053   , p_value_type_code              => l_adr_value_type_code
41057   , p_adr_type_code                => 'S'
41054   , p_transaction_coa_id           => l_adr_transaction_coa_id
41055   , p_accounting_coa_id            => l_adr_accounting_coa_id
41056   , p_adr_code                     => 'AP_ROUNDING'
41058   , p_component_type               => l_component_type
41059   , p_component_code               => l_component_code
41060   , p_component_type_code          => l_component_type_code
41061   , p_component_appl_id            => l_component_appl_id
41062   , p_amb_context_code             => l_amb_context_code
41063   , p_side                         => 'NA'
41064   );
41065 
41066 
41067    --
41068    --
41069    END IF;
41070    --
41071    -- Bug 4922099
41072    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41073           (NVL(l_enc_upg_option, 'N') = 'O')
41074         ) AND
41075         (l_bflow_method_code = 'PRIOR_ENTRY')
41076       )
41077    THEN
41078       IF
41079       --
41080       1 = 2
41081       --
41082       THEN
41083       xla_accounting_err_pkg.build_message
41084                                     (p_appli_s_name            => 'XLA'
41085                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41086                                     ,p_token_1                 => 'LINE_NUMBER'
41087                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
41088                                     ,p_token_2                 => 'LINE_TYPE_NAME'
41089                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
41090                                                                              l_component_type
41091                                                                             ,l_component_code
41092                                                                             ,l_component_type_code
41093                                                                             ,l_component_appl_id
41094                                                                             ,l_amb_context_code
41095                                                                             ,l_entity_code
41096                                                                             ,l_event_class_code
41097                                                                            )
41098                                     ,p_token_3                 => 'OWNER'
41099                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
41100                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
41101                                                                           ,p_lookup_code    => l_component_type_code
41102                                                                          )
41103                                     ,p_token_4                 => 'PRODUCT_NAME'
41104                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41105                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41106                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41107                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41108                                     ,p_ae_header_id            =>  NULL
41109                                        );
41110 
41111         IF (C_LEVEL_ERROR>= g_log_level) THEN
41112                  trace
41113                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41114                       ,p_level    => C_LEVEL_ERROR
41115                       ,p_module   => l_log_module);
41116         END IF;
41117       END IF;
41118    END IF;
41119    --
41120    --
41121    ------------------------------------------------------------------------------------------------
41122    -- 4219869 Business Flow
41123    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41124    -- Prior Entry.  Currently, the following code is always generated.
41125    ------------------------------------------------------------------------------------------------
41126    XLA_AE_LINES_PKG.ValidateCurrentLine;
41127 
41128    ------------------------------------------------------------------------------------
41129    -- 4219869 Business Flow
41130    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41131    ------------------------------------------------------------------------------------
41132    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41133 
41134    ----------------------------------------------------------------------------------
41135    -- 4219869 Business Flow
41136    -- Update journal entry status -- Need to generate this within IF <condition>
41137    ----------------------------------------------------------------------------------
41138    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41139          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41140          ,p_balance_type_code => l_balance_type_code
41141          );
41142 
41143    -------------------------------------------------------------------------------------------
41144    -- 4262811 - Generate the Accrual Reversal lines
41145    -------------------------------------------------------------------------------------------
41146    BEGIN
41147       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41151       END IF;
41148                               (g_array_event(p_event_id).array_value_num('header_index'));
41149       IF l_acc_rev_flag IS NULL THEN
41150          l_acc_rev_flag := 'N';
41152    EXCEPTION
41153       WHEN OTHERS THEN
41154          l_acc_rev_flag := 'N';
41155    END;
41156    --
41157    IF (l_acc_rev_flag = 'Y') THEN
41158 
41159        -- 4645092  ------------------------------------------------------------------------------
41160        -- To allow MPA report to determine if it should generate report process
41161        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41162        ------------------------------------------------------------------------------------------
41163 
41164        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41165        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41166    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
41167    -- call ADRs
41168    -- Bug 4922099
41169    --
41170    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41171         (NVL(l_actual_upg_option, 'N') = 'O') OR
41172         (NVL(l_enc_upg_option, 'N') = 'O')
41173       )
41174    THEN
41175    NULL;
41176    --
41177    --
41178    
41179   l_ccid := AcctDerRule_37(
41180            p_application_id           => p_application_id
41181          , p_ae_header_id             => l_ae_header_id 
41182 , p_source_16 => p_source_16
41183 , p_source_16_meaning => p_source_16_meaning
41184 , p_source_29 => p_source_29
41185 , p_source_49 => p_source_49
41186          , x_transaction_coa_id       => l_adr_transaction_coa_id
41187          , x_accounting_coa_id        => l_adr_accounting_coa_id
41188          , x_value_type_code          => l_adr_value_type_code
41189          , p_side                     => 'NA'
41190    );
41191 
41192    xla_ae_lines_pkg.set_ccid(
41193     p_code_combination_id          => l_ccid
41194   , p_value_type_code              => l_adr_value_type_code
41195   , p_transaction_coa_id           => l_adr_transaction_coa_id
41196   , p_accounting_coa_id            => l_adr_accounting_coa_id
41197   , p_adr_code                     => 'AP_ROUNDING'
41198   , p_adr_type_code                => 'S'
41199   , p_component_type               => l_component_type
41200   , p_component_code               => l_component_code
41201   , p_component_type_code          => l_component_type_code
41202   , p_component_appl_id            => l_component_appl_id
41203   , p_amb_context_code             => l_amb_context_code
41204   , p_side                         => 'NA'
41205   );
41206 
41207 
41208    --
41209    --
41210    END IF;
41211 
41212        --
41213        -- Update the line information that should be overwritten
41214        --
41215        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41216                                          p_header_num   => 1);
41217        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
41218 
41219        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41220 
41221        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
41222           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41223        END IF;
41224 
41225       --
41226       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41227       --
41228       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41229           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
41230       ELSE
41231           ---------------------------------------------------------------------------------------------------
41232           -- 4262811a Switch Sign
41233           ---------------------------------------------------------------------------------------------------
41234           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
41235           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41236                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41237           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41238                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41239           -- 5132302
41240           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41241                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41242 
41243       END IF;
41244 
41245       -- 4955764
41246       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41247       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41248 
41249 
41250       XLA_AE_LINES_PKG.ValidateCurrentLine;
41251       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41252 
41253       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41254                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41255                ,p_balance_type_code => l_balance_type_code);
41256 
41257    END IF;
41258 
41259    -----------------------------------------------------------------------------------------
41263 
41260    -- 4262811 Multiperiod Accounting
41261    -----------------------------------------------------------------------------------------
41262      -- No MPA option is assigned.
41264 
41265 END IF;
41266 END IF;
41267 --
41268 
41269 --
41270 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41271    trace
41272       (p_msg      => 'END of AcctLineType_85'
41273       ,p_level    => C_LEVEL_PROCEDURE
41274       ,p_module   => l_log_module);
41275 END IF;
41276 --
41277 EXCEPTION
41278   WHEN xla_exceptions_pkg.application_exception THEN
41279       RAISE;
41280   WHEN OTHERS THEN
41281        xla_exceptions_pkg.raise_message
41282            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_85');
41283 END AcctLineType_85;
41284 --
41285 
41286 ---------------------------------------
41287 --
41288 -- PRIVATE FUNCTION
41289 --         AcctLineType_86
41290 --
41291 ---------------------------------------
41292 PROCEDURE AcctLineType_86 (
41293   p_application_id        IN NUMBER
41294  ,p_event_id              IN NUMBER
41295  ,p_calculate_acctd_flag  IN VARCHAR2
41296  ,p_calculate_g_l_flag    IN VARCHAR2
41297  ,p_actual_flag           IN OUT VARCHAR2
41298  ,p_balance_type_code     OUT VARCHAR2
41299  ,p_gain_or_loss_ref      OUT VARCHAR2
41300  
41301 --Automatic Offsets Value
41302  , p_source_16            IN VARCHAR2
41303  , p_source_16_meaning    IN VARCHAR2
41304 --Invoice Distribution Account
41305  , p_source_29            IN NUMBER
41306 --Payables Options Rounding Account
41307  , p_source_49            IN NUMBER
41308 --When to Account for Payment Option
41309  , p_source_50            IN VARCHAR2
41310 --Accounting Reversal Indicator
41311  , p_source_52            IN VARCHAR2
41312 --Business Flow Accounts Payable Application Identifier
41313  , p_source_54            IN NUMBER
41314 --Distribution Link Type
41315  , p_source_60            IN VARCHAR2
41316 --Override Accounted Amount Indicator
41317  , p_source_64            IN VARCHAR2
41318  , p_source_64_meaning    IN VARCHAR2
41319 --Third Party Type
41320  , p_source_67            IN VARCHAR2
41321 --Invoice Distribution Tax Line Identifier
41322  , p_source_69            IN NUMBER
41323 --Invoice Distribution Summary Tax Line Identifier
41324  , p_source_70            IN NUMBER
41325 --Invoice Distribution Tax Distribution Identifier from Tax
41326  , p_source_77            IN NUMBER
41327 --Prepayment Distribution Type
41328  , p_source_78            IN VARCHAR2
41329 --Prepayment Application Distribution Identifier
41330  , p_source_82            IN NUMBER
41331 --Invoice Identifier
41332  , p_source_83            IN NUMBER
41333 --Business Flow Prepayment Invoice Distribution Type
41334  , p_source_84            IN VARCHAR2
41335 --Business Flow Prepayment Invoice Entity Code
41336  , p_source_85            IN VARCHAR2
41337 --Business Flow Prepayment Invoice Distribution Identifier
41338  , p_source_86            IN NUMBER
41339 --Business Flow Prepayment Invoice Identifier
41340  , p_source_87            IN NUMBER
41341 --Upgrade Encumbrance Credit Account Class
41342  , p_source_88            IN VARCHAR2
41343 --Payables Encumbrance Upgrade Credit Account
41344  , p_source_89            IN NUMBER
41345 --Payables Encumbrance Upgrade Credit Amount
41346  , p_source_90            IN NUMBER
41347 --Invoice Currency Code
41348  , p_source_91            IN VARCHAR2
41349 --Payables Encumbrance Upgrade Credit Base Amount
41350  , p_source_92            IN NUMBER
41351 --Upgrade Encumbrance Debit Account Class
41352  , p_source_93            IN VARCHAR2
41353 --Payables Encumbrance Upgrade Debit Account
41354  , p_source_94            IN NUMBER
41355 --Payables Encumbrance Upgrade Debit Amount
41356  , p_source_95            IN NUMBER
41357 --Payables Encumbrance Upgrade Debit Base Amount
41358  , p_source_96            IN NUMBER
41359 --Payables Encumbrance Upgrade Option
41360  , p_source_97            IN VARCHAR2
41361 --Prepayment Distribution Amount
41362  , p_source_98            IN NUMBER
41363 --Deferred Accounting End Date
41364  , p_source_101            IN DATE
41365 --Deferred Accounting Option
41366  , p_source_102            IN VARCHAR2
41367 --Deferred Accounting Start Date
41368  , p_source_103            IN DATE
41369 --Invoice Supplier Identifier
41370  , p_source_104            IN NUMBER
41371 --Invoice Supplier Site Identifier
41372  , p_source_105            IN NUMBER
41373 --Identifier of the Prepayment Application Reversed
41374  , p_source_106            IN NUMBER
41375 --Payables Upgrade Credit Encumbrance Type Identifier
41376  , p_source_107            IN NUMBER
41377 --Payables Upgrade Debit Encumbrance Type Identifier
41378  , p_source_108            IN NUMBER
41379 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
41380  , p_source_110            IN NUMBER
41381 --Invoice Exchange Date
41382  , p_source_131            IN DATE
41383 --Invoice Exchange Rate
41384  , p_source_132            IN NUMBER
41385 --Invoice Exchange Rate Type
41386  , p_source_133            IN VARCHAR2
41387 )
41388 IS
41389 
41390 l_component_type              VARCHAR2(80);
41391 l_component_code              VARCHAR2(30);
41392 l_component_type_code         VARCHAR2(1);
41393 l_component_appl_id           INTEGER;
41394 l_amb_context_code            VARCHAR2(30);
41395 l_entity_code                 VARCHAR2(30);
41399 l_line_definition_code        VARCHAR2(30);
41396 l_event_class_code            VARCHAR2(30);
41397 l_ae_header_id                NUMBER;
41398 l_event_type_code             VARCHAR2(30);
41400 l_line_definition_owner_code  VARCHAR2(1);
41401 --
41402 -- adr variables
41403 l_segment                     VARCHAR2(30);
41404 l_ccid                        NUMBER;
41405 l_adr_transaction_coa_id      NUMBER;
41406 l_adr_accounting_coa_id       NUMBER;
41407 l_adr_flexfield_segment_code  VARCHAR2(30);
41408 l_adr_flex_value_set_id       NUMBER;
41409 l_adr_value_type_code         VARCHAR2(30);
41410 l_adr_value_combination_id    NUMBER;
41411 l_adr_value_segment_code      VARCHAR2(30);
41412 
41413 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
41414 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
41415 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
41416 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
41417 
41418 -- 4262811 Variables ------------------------------------------------------------------------------------------
41419 l_entered_amt_idx             NUMBER;
41420 l_accted_amt_idx              NUMBER;
41421 l_acc_rev_flag                VARCHAR2(1);
41422 l_accrual_line_num            NUMBER;
41423 l_tmp_amt                     NUMBER;
41424 l_acc_rev_natural_side_code   VARCHAR2(1);
41425 
41426 l_num_entries                 NUMBER;
41427 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
41428 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
41429 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
41430 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
41431 l_recog_line_1                NUMBER;
41432 l_recog_line_2                NUMBER;
41433 
41434 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
41435 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
41436 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
41437 
41438 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41439 
41440 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
41441 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
41442 
41443 ---------------------------------------------------------------------------------------------------------------
41444 
41445 
41446 --
41447 -- bulk performance
41448 --
41449 l_balance_type_code           VARCHAR2(1);
41450 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
41451 l_log_module                  VARCHAR2(240);
41452 
41453 --
41454 -- Upgrade strategy
41455 --
41456 l_actual_upg_option           VARCHAR2(1);
41457 l_enc_upg_option           VARCHAR2(1);
41458 
41459 --
41460 BEGIN
41461 --
41462 IF g_log_enabled THEN
41463       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_86';
41464 END IF;
41465 --
41466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41467 
41468       trace
41469          (p_msg      => 'BEGIN of AcctLineType_86'
41470          ,p_level    => C_LEVEL_PROCEDURE
41471          ,p_module   => l_log_module);
41472 
41473 END IF;
41474 --
41475 l_component_type             := 'AMB_JLT';
41476 l_component_code             := 'AP_FINAL_APP_ROUND_PP_PAY_RATE';
41477 l_component_type_code        := 'S';
41478 l_component_appl_id          :=  200;
41479 l_amb_context_code           := 'DEFAULT';
41480 l_entity_code                := 'AP_INVOICES';
41481 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
41482 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
41483 l_line_definition_owner_code := 'S';
41484 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
41485 --
41486 l_balance_type_code          := 'A';
41487 l_segment                     := NULL;
41488 l_ccid                        := NULL;
41489 l_adr_transaction_coa_id      := NULL;
41490 l_adr_accounting_coa_id       := NULL;
41491 l_adr_flexfield_segment_code  := NULL;
41492 l_adr_flex_value_set_id       := NULL;
41493 l_adr_value_type_code         := NULL;
41494 l_adr_value_combination_id    := NULL;
41495 l_adr_value_segment_code      := NULL;
41496 
41497 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
41498 l_bflow_class_code           := '';    -- 4219869 Business Flow
41499 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
41500 l_budgetary_control_flag     := 'N';
41501 
41502 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
41503 l_bflow_applied_to_amt       := NULL; -- 5132302
41504 l_entered_amt_idx            := NULL;          -- 4262811
41505 l_accted_amt_idx             := NULL;          -- 4262811
41506 l_acc_rev_flag               := NULL;          -- 4262811
41507 l_accrual_line_num           := NULL;          -- 4262811
41508 l_tmp_amt                    := NULL;          -- 4262811
41509 --
41510  
41511 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41512     l_balance_type_code <> 'B' THEN
41513 IF NVL(p_source_50,'
41514 ') <>  'CLEAR_CLEAR' AND 
41515 NVL(p_source_78,'
41516 ') =  'FINAL APPLICATION ROUNDING'
41517  THEN 
41518 
41519    --
41520    XLA_AE_LINES_PKG.SetNewLine;
41521 
41522    p_balance_type_code          := l_balance_type_code;
41523    -- set the flag so later we will know whether the gain loss line needs to be created
41524    
41528 
41525    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41526      p_actual_flag :='A';
41527    END IF;
41529    --
41530    -- bulk performance
41531    --
41532    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41533                                       p_header_num   => 0); -- 4262811
41534    --
41535    -- set accounting line options
41536    --
41537    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41538            p_natural_side_code          => 'C'
41539          , p_gain_or_loss_flag          => 'N'
41540          , p_gl_transfer_mode_code      => 'S'
41541          , p_acct_entry_type_code       => 'A'
41542          , p_switch_side_flag           => 'Y'
41543          , p_merge_duplicate_code       => 'A'
41544          );
41545    --
41546    l_acc_rev_natural_side_code := 'D';  -- 4262811
41547    -- 
41548    --
41549    -- set accounting line type info
41550    --
41551    xla_ae_lines_pkg.SetAcctLineType
41552       (p_component_type             => l_component_type
41553       ,p_event_type_code            => l_event_type_code
41554       ,p_line_definition_owner_code => l_line_definition_owner_code
41555       ,p_line_definition_code       => l_line_definition_code
41556       ,p_accounting_line_code       => l_component_code
41557       ,p_accounting_line_type_code  => l_component_type_code
41558       ,p_accounting_line_appl_id    => l_component_appl_id
41559       ,p_amb_context_code           => l_amb_context_code
41560       ,p_entity_code                => l_entity_code
41561       ,p_event_class_code           => l_event_class_code);
41562    --
41563    -- set accounting class
41564    --
41565    xla_ae_lines_pkg.SetAcctClass(
41566            p_accounting_class_code  => 'ROUNDING'
41567          , p_ae_header_id           => l_ae_header_id
41568          );
41569 
41570    --
41571    -- set rounding class
41572    --
41573    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41574                       'ROUNDING';
41575 
41576    --
41577    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41578    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41579    --
41580    -- bulk performance
41581    --
41582    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41583 
41584    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41585       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41586 
41587    -- 4955764
41588    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41589       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41590 
41591    -- 4458381 Public Sector Enh
41592    
41593    --
41594    -- set accounting attributes for the line type
41595    --
41596    l_entered_amt_idx := 25;
41597    l_accted_amt_idx  := 30;
41598    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
41599    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41600    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
41601    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
41602    l_rec_acct_attrs.array_num_value(2)  := 
41603 xla_ae_sources_pkg.GetSystemSourceNum(
41604    p_source_code           => 'XLA_EVENT_APPL_ID'
41605  , p_source_type_code      => 'Y'
41606  , p_source_application_id =>  602
41607 );
41608    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
41609    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
41610    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
41611    l_rec_acct_attrs.array_char_value(4)  := 
41612 xla_ae_sources_pkg.GetSystemSourceChar(
41613    p_source_code           => 'XLA_ENTITY_CODE'
41614  , p_source_type_code      => 'Y'
41615  , p_source_application_id =>  602
41616 );
41617    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
41618    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
41619    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
41620    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
41621    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
41622    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
41623    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41624    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
41625    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
41626    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
41627    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
41628    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
41629    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41630    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
41631    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
41632    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
41633    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
41634    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
41635    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
41636    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
41637    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
41641    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
41638    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
41639    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
41640    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
41642    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
41643    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
41644    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
41645    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
41646    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
41647    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
41648    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
41649    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
41650    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
41651    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
41652    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
41653    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
41654    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
41655    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
41656    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
41657    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
41658    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
41659    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
41660    l_rec_acct_attrs.array_char_value(26)  := p_source_91;
41661    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
41662    l_rec_acct_attrs.array_date_value(27)  := p_source_131;
41663    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
41664    l_rec_acct_attrs.array_num_value(28)  := p_source_132;
41665    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
41666    l_rec_acct_attrs.array_char_value(29)  := p_source_133;
41667    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
41668    l_rec_acct_attrs.array_num_value(30)  := p_source_110;
41669    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
41670    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
41671    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
41672    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
41673    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
41674    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
41675    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
41676    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
41677    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
41678    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
41679    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
41680    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
41681    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
41682    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
41683    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
41684    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
41685    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
41686    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
41687    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
41688    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
41689    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
41690    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
41691    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
41692    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
41693    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
41694    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
41695    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
41696    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
41697 
41698    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41699    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41700 
41701    ---------------------------------------------------------------------------------------------------------------
41702    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41703    ---------------------------------------------------------------------------------------------------------------
41704    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41705 
41706    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41707    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41708 
41709    IF xla_accounting_cache_pkg.GetValueChar
41710          (p_source_code         => 'LEDGER_CATEGORY_CODE'
41711          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41712    AND l_bflow_method_code = 'PRIOR_ENTRY'
41713 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41714    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41715          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41716        )
41717    THEN
41718          xla_ae_lines_pkg.BflowUpgEntry
41719            (p_business_method_code    => l_bflow_method_code
41720            ,p_business_class_code     => l_bflow_class_code
41721            ,p_balance_type            => l_balance_type_code);
41722    ELSE
41723       NULL;
41724 -- No business flow processing for business flow method of NONE.
41728    -- call analytical criteria
41725    END IF;
41726 
41727    --
41729    --
41730    
41731    --
41732    -- call description
41733    --
41734    -- No description or it is inherited.
41735    --
41736    -- call ADRs
41737    -- Bug 4922099
41738    --
41739    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41740         (NVL(l_actual_upg_option, 'N') = 'O') OR
41741         (NVL(l_enc_upg_option, 'N') = 'O')
41742       )
41743    THEN
41744    NULL;
41745    --
41746    --
41747    
41748   l_ccid := AcctDerRule_37(
41749            p_application_id           => p_application_id
41750          , p_ae_header_id             => l_ae_header_id 
41751 , p_source_16 => p_source_16
41752 , p_source_16_meaning => p_source_16_meaning
41753 , p_source_29 => p_source_29
41754 , p_source_49 => p_source_49
41755          , x_transaction_coa_id       => l_adr_transaction_coa_id
41756          , x_accounting_coa_id        => l_adr_accounting_coa_id
41757          , x_value_type_code          => l_adr_value_type_code
41758          , p_side                     => 'NA'
41759    );
41760 
41761    xla_ae_lines_pkg.set_ccid(
41762     p_code_combination_id          => l_ccid
41763   , p_value_type_code              => l_adr_value_type_code
41764   , p_transaction_coa_id           => l_adr_transaction_coa_id
41765   , p_accounting_coa_id            => l_adr_accounting_coa_id
41766   , p_adr_code                     => 'AP_ROUNDING'
41767   , p_adr_type_code                => 'S'
41768   , p_component_type               => l_component_type
41769   , p_component_code               => l_component_code
41770   , p_component_type_code          => l_component_type_code
41771   , p_component_appl_id            => l_component_appl_id
41772   , p_amb_context_code             => l_amb_context_code
41773   , p_side                         => 'NA'
41774   );
41775 
41776 
41777    --
41778    --
41779    END IF;
41780    --
41781    -- Bug 4922099
41782    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41783           (NVL(l_enc_upg_option, 'N') = 'O')
41784         ) AND
41785         (l_bflow_method_code = 'PRIOR_ENTRY')
41786       )
41787    THEN
41788       IF
41789       --
41790       1 = 2
41791       --
41792       THEN
41793       xla_accounting_err_pkg.build_message
41794                                     (p_appli_s_name            => 'XLA'
41795                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41796                                     ,p_token_1                 => 'LINE_NUMBER'
41797                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
41798                                     ,p_token_2                 => 'LINE_TYPE_NAME'
41799                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
41800                                                                              l_component_type
41801                                                                             ,l_component_code
41802                                                                             ,l_component_type_code
41803                                                                             ,l_component_appl_id
41804                                                                             ,l_amb_context_code
41805                                                                             ,l_entity_code
41806                                                                             ,l_event_class_code
41807                                                                            )
41808                                     ,p_token_3                 => 'OWNER'
41809                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
41810                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
41811                                                                           ,p_lookup_code    => l_component_type_code
41812                                                                          )
41813                                     ,p_token_4                 => 'PRODUCT_NAME'
41814                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41815                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41816                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41817                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41818                                     ,p_ae_header_id            =>  NULL
41819                                        );
41820 
41821         IF (C_LEVEL_ERROR>= g_log_level) THEN
41822                  trace
41823                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41824                       ,p_level    => C_LEVEL_ERROR
41825                       ,p_module   => l_log_module);
41826         END IF;
41827       END IF;
41828    END IF;
41829    --
41830    --
41831    ------------------------------------------------------------------------------------------------
41832    -- 4219869 Business Flow
41833    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41834    -- Prior Entry.  Currently, the following code is always generated.
41838    ------------------------------------------------------------------------------------
41835    ------------------------------------------------------------------------------------------------
41836    XLA_AE_LINES_PKG.ValidateCurrentLine;
41837 
41839    -- 4219869 Business Flow
41840    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41841    ------------------------------------------------------------------------------------
41842    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41843 
41844    ----------------------------------------------------------------------------------
41845    -- 4219869 Business Flow
41846    -- Update journal entry status -- Need to generate this within IF <condition>
41847    ----------------------------------------------------------------------------------
41848    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41849          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41850          ,p_balance_type_code => l_balance_type_code
41851          );
41852 
41853    -------------------------------------------------------------------------------------------
41854    -- 4262811 - Generate the Accrual Reversal lines
41855    -------------------------------------------------------------------------------------------
41856    BEGIN
41857       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41858                               (g_array_event(p_event_id).array_value_num('header_index'));
41859       IF l_acc_rev_flag IS NULL THEN
41860          l_acc_rev_flag := 'N';
41861       END IF;
41862    EXCEPTION
41863       WHEN OTHERS THEN
41864          l_acc_rev_flag := 'N';
41865    END;
41866    --
41867    IF (l_acc_rev_flag = 'Y') THEN
41868 
41869        -- 4645092  ------------------------------------------------------------------------------
41870        -- To allow MPA report to determine if it should generate report process
41871        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41872        ------------------------------------------------------------------------------------------
41873 
41874        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41875        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41876    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
41877    -- call ADRs
41878    -- Bug 4922099
41879    --
41880    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41881         (NVL(l_actual_upg_option, 'N') = 'O') OR
41882         (NVL(l_enc_upg_option, 'N') = 'O')
41883       )
41884    THEN
41885    NULL;
41886    --
41887    --
41888    
41889   l_ccid := AcctDerRule_37(
41890            p_application_id           => p_application_id
41891          , p_ae_header_id             => l_ae_header_id 
41892 , p_source_16 => p_source_16
41893 , p_source_16_meaning => p_source_16_meaning
41894 , p_source_29 => p_source_29
41895 , p_source_49 => p_source_49
41896          , x_transaction_coa_id       => l_adr_transaction_coa_id
41897          , x_accounting_coa_id        => l_adr_accounting_coa_id
41898          , x_value_type_code          => l_adr_value_type_code
41899          , p_side                     => 'NA'
41900    );
41901 
41902    xla_ae_lines_pkg.set_ccid(
41903     p_code_combination_id          => l_ccid
41904   , p_value_type_code              => l_adr_value_type_code
41905   , p_transaction_coa_id           => l_adr_transaction_coa_id
41906   , p_accounting_coa_id            => l_adr_accounting_coa_id
41907   , p_adr_code                     => 'AP_ROUNDING'
41908   , p_adr_type_code                => 'S'
41909   , p_component_type               => l_component_type
41910   , p_component_code               => l_component_code
41911   , p_component_type_code          => l_component_type_code
41912   , p_component_appl_id            => l_component_appl_id
41913   , p_amb_context_code             => l_amb_context_code
41914   , p_side                         => 'NA'
41915   );
41916 
41917 
41918    --
41919    --
41920    END IF;
41921 
41922        --
41923        -- Update the line information that should be overwritten
41924        --
41925        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41926                                          p_header_num   => 1);
41927        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
41928 
41929        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41930 
41931        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
41932           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41933        END IF;
41934 
41935       --
41936       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41937       --
41938       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41939           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
41940       ELSE
41941           ---------------------------------------------------------------------------------------------------
41942           -- 4262811a Switch Sign
41943           ---------------------------------------------------------------------------------------------------
41944           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
41948                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41945           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41946                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41947           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41949           -- 5132302
41950           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41951                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41952 
41953       END IF;
41954 
41955       -- 4955764
41956       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41957       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41958 
41959 
41960       XLA_AE_LINES_PKG.ValidateCurrentLine;
41961       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41962 
41963       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41964                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41965                ,p_balance_type_code => l_balance_type_code);
41966 
41967    END IF;
41968 
41969    -----------------------------------------------------------------------------------------
41970    -- 4262811 Multiperiod Accounting
41971    -----------------------------------------------------------------------------------------
41972      -- No MPA option is assigned.
41973 
41974 
41975 END IF;
41976 END IF;
41977 --
41978 
41979 --
41980 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41981    trace
41982       (p_msg      => 'END of AcctLineType_86'
41983       ,p_level    => C_LEVEL_PROCEDURE
41984       ,p_module   => l_log_module);
41985 END IF;
41986 --
41987 EXCEPTION
41988   WHEN xla_exceptions_pkg.application_exception THEN
41989       RAISE;
41990   WHEN OTHERS THEN
41991        xla_exceptions_pkg.raise_message
41992            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_86');
41993 END AcctLineType_86;
41994 --
41995 
41996 ---------------------------------------
41997 --
41998 -- PRIVATE FUNCTION
41999 --         AcctLineType_87
42000 --
42001 ---------------------------------------
42002 PROCEDURE AcctLineType_87 (
42003   p_application_id        IN NUMBER
42004  ,p_event_id              IN NUMBER
42005  ,p_calculate_acctd_flag  IN VARCHAR2
42006  ,p_calculate_g_l_flag    IN VARCHAR2
42007  ,p_actual_flag           IN OUT VARCHAR2
42008  ,p_balance_type_code     OUT VARCHAR2
42009  ,p_gain_or_loss_ref      OUT VARCHAR2
42010  
42011 --Payment Currency Code
42012  , p_source_12            IN VARCHAR2
42013 --Payment Distribution (Cleared Rate) Ledger Amount
42014  , p_source_22            IN NUMBER
42015 --Invoice Distribution Account
42016  , p_source_29            IN NUMBER
42017 --Invoice Distribution Type
42018  , p_source_32            IN VARCHAR2
42019  , p_source_32_meaning    IN VARCHAR2
42020 --When to Account for Payment Option
42021  , p_source_50            IN VARCHAR2
42022 --Payment Distribution Type
42023  , p_source_51            IN VARCHAR2
42024  , p_source_51_meaning    IN VARCHAR2
42025 --Accounting Reversal Indicator
42026  , p_source_52            IN VARCHAR2
42027 --Payment Distribution Amount
42028  , p_source_53            IN NUMBER
42029 --Business Flow Accounts Payable Application Identifier
42030  , p_source_54            IN NUMBER
42031 --Business Flow Payment Distribution Type
42032  , p_source_55            IN VARCHAR2
42033 --Business Flow Payment Entity Code
42034  , p_source_56            IN VARCHAR2
42035 --Business Flow Payment Distribution Identifier
42036  , p_source_57            IN NUMBER
42037 --Business Flow Payment Identifier
42038  , p_source_58            IN NUMBER
42039 --Payment Distribution Identifier
42040  , p_source_59            IN NUMBER
42041 --Distribution Link Type
42042  , p_source_60            IN VARCHAR2
42043 --Override Accounted Amount Indicator
42044  , p_source_64            IN VARCHAR2
42045  , p_source_64_meaning    IN VARCHAR2
42046 --Payment Supplier Identifier
42047  , p_source_65            IN NUMBER
42048 --Payment Supplier Site Identifier
42049  , p_source_66            IN NUMBER
42050 --Third Party Type
42051  , p_source_67            IN VARCHAR2
42052 --Payment Distribution Reversed Identifier
42053  , p_source_68            IN NUMBER
42054 --Invoice Distribution Tax Line Identifier
42055  , p_source_69            IN NUMBER
42056 --Invoice Distribution Summary Tax Line Identifier
42057  , p_source_70            IN NUMBER
42058 --Cleared Exchange Date
42059  , p_source_114            IN DATE
42060 --Cleared Exchange Rate
42061  , p_source_115            IN NUMBER
42062 --Cleared Exchange Rate Type
42063  , p_source_116            IN VARCHAR2
42064 )
42065 IS
42066 
42067 l_component_type              VARCHAR2(80);
42068 l_component_code              VARCHAR2(30);
42069 l_component_type_code         VARCHAR2(1);
42070 l_component_appl_id           INTEGER;
42071 l_amb_context_code            VARCHAR2(30);
42072 l_entity_code                 VARCHAR2(30);
42073 l_event_class_code            VARCHAR2(30);
42074 l_ae_header_id                NUMBER;
42075 l_event_type_code             VARCHAR2(30);
42076 l_line_definition_code        VARCHAR2(30);
42077 l_line_definition_owner_code  VARCHAR2(1);
42078 --
42079 -- adr variables
42083 l_adr_accounting_coa_id       NUMBER;
42080 l_segment                     VARCHAR2(30);
42081 l_ccid                        NUMBER;
42082 l_adr_transaction_coa_id      NUMBER;
42084 l_adr_flexfield_segment_code  VARCHAR2(30);
42085 l_adr_flex_value_set_id       NUMBER;
42086 l_adr_value_type_code         VARCHAR2(30);
42087 l_adr_value_combination_id    NUMBER;
42088 l_adr_value_segment_code      VARCHAR2(30);
42089 
42090 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
42091 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
42092 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
42093 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
42094 
42095 -- 4262811 Variables ------------------------------------------------------------------------------------------
42096 l_entered_amt_idx             NUMBER;
42097 l_accted_amt_idx              NUMBER;
42098 l_acc_rev_flag                VARCHAR2(1);
42099 l_accrual_line_num            NUMBER;
42100 l_tmp_amt                     NUMBER;
42101 l_acc_rev_natural_side_code   VARCHAR2(1);
42102 
42103 l_num_entries                 NUMBER;
42104 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
42105 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
42106 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
42107 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
42108 l_recog_line_1                NUMBER;
42109 l_recog_line_2                NUMBER;
42110 
42111 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
42112 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
42113 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
42114 
42115 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42116 
42117 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
42118 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
42119 
42120 ---------------------------------------------------------------------------------------------------------------
42121 
42122 
42123 --
42124 -- bulk performance
42125 --
42126 l_balance_type_code           VARCHAR2(1);
42127 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
42128 l_log_module                  VARCHAR2(240);
42129 
42130 --
42131 -- Upgrade strategy
42132 --
42133 l_actual_upg_option           VARCHAR2(1);
42134 l_enc_upg_option           VARCHAR2(1);
42135 
42136 --
42137 BEGIN
42138 --
42139 IF g_log_enabled THEN
42140       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_87';
42141 END IF;
42142 --
42143 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42144 
42145       trace
42146          (p_msg      => 'BEGIN of AcctLineType_87'
42147          ,p_level    => C_LEVEL_PROCEDURE
42148          ,p_module   => l_log_module);
42149 
42150 END IF;
42151 --
42152 l_component_type             := 'AMB_JLT';
42153 l_component_code             := 'AP_FREIGHT_EXPENSE_CLEAR';
42154 l_component_type_code        := 'S';
42155 l_component_appl_id          :=  200;
42156 l_amb_context_code           := 'DEFAULT';
42157 l_entity_code                := 'AP_PAYMENTS';
42158 l_event_class_code           := 'RECONCILED PAYMENTS';
42159 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
42160 l_line_definition_owner_code := 'S';
42161 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
42162 --
42163 l_balance_type_code          := 'A';
42164 l_segment                     := NULL;
42165 l_ccid                        := NULL;
42166 l_adr_transaction_coa_id      := NULL;
42167 l_adr_accounting_coa_id       := NULL;
42168 l_adr_flexfield_segment_code  := NULL;
42169 l_adr_flex_value_set_id       := NULL;
42170 l_adr_value_type_code         := NULL;
42171 l_adr_value_combination_id    := NULL;
42172 l_adr_value_segment_code      := NULL;
42173 
42174 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
42175 l_bflow_class_code           := '';    -- 4219869 Business Flow
42176 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
42177 l_budgetary_control_flag     := 'N';
42178 
42179 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
42180 l_bflow_applied_to_amt       := NULL; -- 5132302
42181 l_entered_amt_idx            := NULL;          -- 4262811
42182 l_accted_amt_idx             := NULL;          -- 4262811
42183 l_acc_rev_flag               := NULL;          -- 4262811
42184 l_accrual_line_num           := NULL;          -- 4262811
42185 l_tmp_amt                    := NULL;          -- 4262811
42186 --
42187  
42188 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42189     l_balance_type_code <> 'B' THEN
42190 IF NVL(p_source_50,'
42191 ') =  'CLEAR_CLEAR' AND 
42192 NVL(p_source_32,'
42193 ') =  'FREIGHT' AND 
42194 (NVL(p_source_51,'
42195 ') =  'CASH' OR 
42196 NVL(p_source_51,'
42197 ') =  'AWT' OR 
42198 NVL(p_source_51,'
42199 ') =  'DISCOUNT')
42200  THEN 
42201 
42202    --
42203    XLA_AE_LINES_PKG.SetNewLine;
42204 
42205    p_balance_type_code          := l_balance_type_code;
42206    -- set the flag so later we will know whether the gain loss line needs to be created
42207    
42208    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42209      p_actual_flag :='A';
42213    -- bulk performance
42210    END IF;
42211 
42212    --
42214    --
42215    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42216                                       p_header_num   => 0); -- 4262811
42217    --
42218    -- set accounting line options
42219    --
42220    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42221            p_natural_side_code          => 'D'
42222          , p_gain_or_loss_flag          => 'N'
42223          , p_gl_transfer_mode_code      => 'S'
42224          , p_acct_entry_type_code       => 'A'
42225          , p_switch_side_flag           => 'Y'
42226          , p_merge_duplicate_code       => 'A'
42227          );
42228    --
42229    l_acc_rev_natural_side_code := 'C';  -- 4262811
42230    -- 
42231    --
42232    -- set accounting line type info
42233    --
42234    xla_ae_lines_pkg.SetAcctLineType
42235       (p_component_type             => l_component_type
42236       ,p_event_type_code            => l_event_type_code
42237       ,p_line_definition_owner_code => l_line_definition_owner_code
42238       ,p_line_definition_code       => l_line_definition_code
42239       ,p_accounting_line_code       => l_component_code
42240       ,p_accounting_line_type_code  => l_component_type_code
42241       ,p_accounting_line_appl_id    => l_component_appl_id
42242       ,p_amb_context_code           => l_amb_context_code
42243       ,p_entity_code                => l_entity_code
42244       ,p_event_class_code           => l_event_class_code);
42245    --
42246    -- set accounting class
42247    --
42248    xla_ae_lines_pkg.SetAcctClass(
42249            p_accounting_class_code  => 'FREIGHT'
42250          , p_ae_header_id           => l_ae_header_id
42251          );
42252 
42253    --
42254    -- set rounding class
42255    --
42256    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42257                       'FREIGHT';
42258 
42259    --
42260    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42261    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42262    --
42263    -- bulk performance
42264    --
42265    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42266 
42267    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42268       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42269 
42270    -- 4955764
42271    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42272       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42273 
42274    -- 4458381 Public Sector Enh
42275    
42276    --
42277    -- set accounting attributes for the line type
42278    --
42279    l_entered_amt_idx := 10;
42280    l_accted_amt_idx  := 15;
42281    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
42282    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42283    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
42284    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
42285    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
42286    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
42287    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
42288    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42289    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
42290    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
42291    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
42292    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
42293    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
42294    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42295    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
42296    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
42297    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
42298    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
42299    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
42300    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
42301    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
42302    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
42303    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
42304    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
42305    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
42306    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
42307    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
42308    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
42309    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
42310    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
42311    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
42312    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
42313    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
42314    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
42315    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
42316    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
42317    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
42318    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
42322    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
42319    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
42320    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
42321    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
42323    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
42324    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
42325    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
42326    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
42327    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
42328    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
42329    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
42330 
42331    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42332    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42333 
42334    ---------------------------------------------------------------------------------------------------------------
42335    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42336    ---------------------------------------------------------------------------------------------------------------
42337    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42338 
42339    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42340    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42341 
42342    IF xla_accounting_cache_pkg.GetValueChar
42343          (p_source_code         => 'LEDGER_CATEGORY_CODE'
42344          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42345    AND l_bflow_method_code = 'PRIOR_ENTRY'
42346 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42347    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42348          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42349        )
42350    THEN
42351          xla_ae_lines_pkg.BflowUpgEntry
42352            (p_business_method_code    => l_bflow_method_code
42353            ,p_business_class_code     => l_bflow_class_code
42354            ,p_balance_type            => l_balance_type_code);
42355    ELSE
42356       NULL;
42357 -- No business flow processing for business flow method of NONE.
42358    END IF;
42359 
42360    --
42361    -- call analytical criteria
42362    --
42363    
42364    --
42365    -- call description
42366    --
42367    -- No description or it is inherited.
42368    --
42369    -- call ADRs
42370    -- Bug 4922099
42371    --
42372    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42373         (NVL(l_actual_upg_option, 'N') = 'O') OR
42374         (NVL(l_enc_upg_option, 'N') = 'O')
42375       )
42376    THEN
42377    NULL;
42378    --
42379    --
42380    
42381   l_ccid := AcctDerRule_28(
42382            p_application_id           => p_application_id
42383          , p_ae_header_id             => l_ae_header_id 
42384 , p_source_29 => p_source_29
42385          , x_transaction_coa_id       => l_adr_transaction_coa_id
42386          , x_accounting_coa_id        => l_adr_accounting_coa_id
42387          , x_value_type_code          => l_adr_value_type_code
42388          , p_side                     => 'NA'
42389    );
42390 
42391    xla_ae_lines_pkg.set_ccid(
42392     p_code_combination_id          => l_ccid
42393   , p_value_type_code              => l_adr_value_type_code
42394   , p_transaction_coa_id           => l_adr_transaction_coa_id
42395   , p_accounting_coa_id            => l_adr_accounting_coa_id
42396   , p_adr_code                     => 'AP_INVOICE_DIST'
42397   , p_adr_type_code                => 'S'
42398   , p_component_type               => l_component_type
42399   , p_component_code               => l_component_code
42400   , p_component_type_code          => l_component_type_code
42401   , p_component_appl_id            => l_component_appl_id
42402   , p_amb_context_code             => l_amb_context_code
42403   , p_side                         => 'NA'
42404   );
42405 
42406 
42407    --
42408    --
42409    END IF;
42410    --
42411    -- Bug 4922099
42412    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42413           (NVL(l_enc_upg_option, 'N') = 'O')
42414         ) AND
42415         (l_bflow_method_code = 'PRIOR_ENTRY')
42416       )
42417    THEN
42418       IF
42419       --
42420       1 = 2
42421       --
42422       THEN
42423       xla_accounting_err_pkg.build_message
42424                                     (p_appli_s_name            => 'XLA'
42425                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42426                                     ,p_token_1                 => 'LINE_NUMBER'
42427                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
42428                                     ,p_token_2                 => 'LINE_TYPE_NAME'
42429                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
42430                                                                              l_component_type
42431                                                                             ,l_component_code
42435                                                                             ,l_entity_code
42432                                                                             ,l_component_type_code
42433                                                                             ,l_component_appl_id
42434                                                                             ,l_amb_context_code
42436                                                                             ,l_event_class_code
42437                                                                            )
42438                                     ,p_token_3                 => 'OWNER'
42439                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
42440                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
42441                                                                           ,p_lookup_code    => l_component_type_code
42442                                                                          )
42443                                     ,p_token_4                 => 'PRODUCT_NAME'
42444                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42445                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42446                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42447                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42448                                     ,p_ae_header_id            =>  NULL
42449                                        );
42450 
42451         IF (C_LEVEL_ERROR>= g_log_level) THEN
42452                  trace
42453                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42454                       ,p_level    => C_LEVEL_ERROR
42455                       ,p_module   => l_log_module);
42456         END IF;
42457       END IF;
42458    END IF;
42459    --
42460    --
42461    ------------------------------------------------------------------------------------------------
42462    -- 4219869 Business Flow
42463    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42464    -- Prior Entry.  Currently, the following code is always generated.
42465    ------------------------------------------------------------------------------------------------
42466    XLA_AE_LINES_PKG.ValidateCurrentLine;
42467 
42468    ------------------------------------------------------------------------------------
42469    -- 4219869 Business Flow
42470    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42471    ------------------------------------------------------------------------------------
42472    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42473 
42474    ----------------------------------------------------------------------------------
42475    -- 4219869 Business Flow
42476    -- Update journal entry status -- Need to generate this within IF <condition>
42477    ----------------------------------------------------------------------------------
42478    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42479          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42480          ,p_balance_type_code => l_balance_type_code
42481          );
42482 
42483    -------------------------------------------------------------------------------------------
42484    -- 4262811 - Generate the Accrual Reversal lines
42485    -------------------------------------------------------------------------------------------
42486    BEGIN
42487       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42488                               (g_array_event(p_event_id).array_value_num('header_index'));
42489       IF l_acc_rev_flag IS NULL THEN
42490          l_acc_rev_flag := 'N';
42491       END IF;
42492    EXCEPTION
42493       WHEN OTHERS THEN
42494          l_acc_rev_flag := 'N';
42495    END;
42496    --
42497    IF (l_acc_rev_flag = 'Y') THEN
42498 
42499        -- 4645092  ------------------------------------------------------------------------------
42500        -- To allow MPA report to determine if it should generate report process
42501        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42502        ------------------------------------------------------------------------------------------
42503 
42504        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42505        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42506    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
42507    -- call ADRs
42508    -- Bug 4922099
42509    --
42510    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42511         (NVL(l_actual_upg_option, 'N') = 'O') OR
42512         (NVL(l_enc_upg_option, 'N') = 'O')
42513       )
42514    THEN
42515    NULL;
42516    --
42517    --
42518    
42519   l_ccid := AcctDerRule_28(
42520            p_application_id           => p_application_id
42521          , p_ae_header_id             => l_ae_header_id 
42522 , p_source_29 => p_source_29
42523          , x_transaction_coa_id       => l_adr_transaction_coa_id
42524          , x_accounting_coa_id        => l_adr_accounting_coa_id
42525          , x_value_type_code          => l_adr_value_type_code
42526          , p_side                     => 'NA'
42527    );
42528 
42529    xla_ae_lines_pkg.set_ccid(
42533   , p_accounting_coa_id            => l_adr_accounting_coa_id
42530     p_code_combination_id          => l_ccid
42531   , p_value_type_code              => l_adr_value_type_code
42532   , p_transaction_coa_id           => l_adr_transaction_coa_id
42534   , p_adr_code                     => 'AP_INVOICE_DIST'
42535   , p_adr_type_code                => 'S'
42536   , p_component_type               => l_component_type
42537   , p_component_code               => l_component_code
42538   , p_component_type_code          => l_component_type_code
42539   , p_component_appl_id            => l_component_appl_id
42540   , p_amb_context_code             => l_amb_context_code
42541   , p_side                         => 'NA'
42542   );
42543 
42544 
42545    --
42546    --
42547    END IF;
42548 
42549        --
42550        -- Update the line information that should be overwritten
42551        --
42552        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42553                                          p_header_num   => 1);
42554        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
42555 
42556        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42557 
42558        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
42559           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42560        END IF;
42561 
42562       --
42563       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42564       --
42565       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42566           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
42567       ELSE
42568           ---------------------------------------------------------------------------------------------------
42569           -- 4262811a Switch Sign
42570           ---------------------------------------------------------------------------------------------------
42571           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
42572           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42573                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42574           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42575                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42576           -- 5132302
42577           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42578                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42579 
42580       END IF;
42581 
42582       -- 4955764
42583       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42584       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42585 
42586 
42587       XLA_AE_LINES_PKG.ValidateCurrentLine;
42588       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42589 
42590       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42591                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42592                ,p_balance_type_code => l_balance_type_code);
42593 
42594    END IF;
42595 
42596    -----------------------------------------------------------------------------------------
42597    -- 4262811 Multiperiod Accounting
42598    -----------------------------------------------------------------------------------------
42599      -- No MPA option is assigned.
42600 
42601 
42602 END IF;
42603 END IF;
42604 --
42605 
42606 --
42607 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42608    trace
42609       (p_msg      => 'END of AcctLineType_87'
42610       ,p_level    => C_LEVEL_PROCEDURE
42611       ,p_module   => l_log_module);
42612 END IF;
42613 --
42614 EXCEPTION
42615   WHEN xla_exceptions_pkg.application_exception THEN
42616       RAISE;
42617   WHEN OTHERS THEN
42618        xla_exceptions_pkg.raise_message
42619            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_87');
42620 END AcctLineType_87;
42621 --
42622 
42623 ---------------------------------------
42624 --
42625 -- PRIVATE FUNCTION
42626 --         AcctLineType_88
42627 --
42628 ---------------------------------------
42629 PROCEDURE AcctLineType_88 (
42630   p_application_id        IN NUMBER
42631  ,p_event_id              IN NUMBER
42632  ,p_calculate_acctd_flag  IN VARCHAR2
42633  ,p_calculate_g_l_flag    IN VARCHAR2
42634  ,p_actual_flag           IN OUT VARCHAR2
42635  ,p_balance_type_code     OUT VARCHAR2
42636  ,p_gain_or_loss_ref      OUT VARCHAR2
42637  
42638 --Payment Currency Code
42639  , p_source_12            IN VARCHAR2
42640 --Payment Distribution (Payment Rate) Ledger Amount
42641  , p_source_21            IN NUMBER
42642 --Invoice Distribution Account
42643  , p_source_29            IN NUMBER
42644 --Invoice Distribution Type
42645  , p_source_32            IN VARCHAR2
42646  , p_source_32_meaning    IN VARCHAR2
42647 --When to Account for Payment Option
42648  , p_source_50            IN VARCHAR2
42649 --Payment Distribution Type
42650  , p_source_51            IN VARCHAR2
42651  , p_source_51_meaning    IN VARCHAR2
42652 --Accounting Reversal Indicator
42656 --Business Flow Accounts Payable Application Identifier
42653  , p_source_52            IN VARCHAR2
42654 --Payment Distribution Amount
42655  , p_source_53            IN NUMBER
42657  , p_source_54            IN NUMBER
42658 --Payment Distribution Identifier
42659  , p_source_59            IN NUMBER
42660 --Distribution Link Type
42661  , p_source_60            IN VARCHAR2
42662 --Override Accounted Amount Indicator
42663  , p_source_64            IN VARCHAR2
42664  , p_source_64_meaning    IN VARCHAR2
42665 --Payment Supplier Identifier
42666  , p_source_65            IN NUMBER
42667 --Payment Supplier Site Identifier
42668  , p_source_66            IN NUMBER
42669 --Third Party Type
42670  , p_source_67            IN VARCHAR2
42671 --Payment Distribution Reversed Identifier
42672  , p_source_68            IN NUMBER
42673 --Invoice Distribution Tax Line Identifier
42674  , p_source_69            IN NUMBER
42675 --Invoice Distribution Summary Tax Line Identifier
42676  , p_source_70            IN NUMBER
42677 --Payment Type
42678  , p_source_71            IN VARCHAR2
42679  , p_source_71_meaning    IN VARCHAR2
42680 --Invoice Distribution Amount of the Payment Distribution
42681  , p_source_72            IN NUMBER
42682 --Business Flow Invoice Distribution Type
42683  , p_source_73            IN VARCHAR2
42684 --Business Flow Invoice Entity Code
42685  , p_source_74            IN VARCHAR2
42686 --Business Flow Invoice Distribution Identifier
42687  , p_source_75            IN NUMBER
42688 --Business Flow Invoice Identifier
42689  , p_source_76            IN NUMBER
42690 --Invoice Distribution Tax Distribution Identifier from Tax
42691  , p_source_77            IN NUMBER
42692 --Payment Exchange Date
42693  , p_source_121            IN DATE
42694 --Payment Exchange Rate
42695  , p_source_122            IN NUMBER
42696 --Payment Exchange Rate Type
42697  , p_source_123            IN VARCHAR2
42698 )
42699 IS
42700 
42701 l_component_type              VARCHAR2(80);
42702 l_component_code              VARCHAR2(30);
42703 l_component_type_code         VARCHAR2(1);
42704 l_component_appl_id           INTEGER;
42705 l_amb_context_code            VARCHAR2(30);
42706 l_entity_code                 VARCHAR2(30);
42707 l_event_class_code            VARCHAR2(30);
42708 l_ae_header_id                NUMBER;
42709 l_event_type_code             VARCHAR2(30);
42710 l_line_definition_code        VARCHAR2(30);
42711 l_line_definition_owner_code  VARCHAR2(1);
42712 --
42713 -- adr variables
42714 l_segment                     VARCHAR2(30);
42715 l_ccid                        NUMBER;
42716 l_adr_transaction_coa_id      NUMBER;
42717 l_adr_accounting_coa_id       NUMBER;
42718 l_adr_flexfield_segment_code  VARCHAR2(30);
42719 l_adr_flex_value_set_id       NUMBER;
42720 l_adr_value_type_code         VARCHAR2(30);
42721 l_adr_value_combination_id    NUMBER;
42722 l_adr_value_segment_code      VARCHAR2(30);
42723 
42724 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
42725 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
42726 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
42727 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
42728 
42729 -- 4262811 Variables ------------------------------------------------------------------------------------------
42730 l_entered_amt_idx             NUMBER;
42731 l_accted_amt_idx              NUMBER;
42732 l_acc_rev_flag                VARCHAR2(1);
42733 l_accrual_line_num            NUMBER;
42734 l_tmp_amt                     NUMBER;
42735 l_acc_rev_natural_side_code   VARCHAR2(1);
42736 
42737 l_num_entries                 NUMBER;
42738 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
42739 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
42740 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
42741 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
42742 l_recog_line_1                NUMBER;
42743 l_recog_line_2                NUMBER;
42744 
42745 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
42746 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
42747 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
42748 
42749 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42750 
42751 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
42752 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
42753 
42754 ---------------------------------------------------------------------------------------------------------------
42755 
42756 
42757 --
42758 -- bulk performance
42759 --
42760 l_balance_type_code           VARCHAR2(1);
42761 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
42762 l_log_module                  VARCHAR2(240);
42763 
42764 --
42765 -- Upgrade strategy
42766 --
42767 l_actual_upg_option           VARCHAR2(1);
42768 l_enc_upg_option           VARCHAR2(1);
42769 
42770 --
42771 BEGIN
42772 --
42773 IF g_log_enabled THEN
42774       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_88';
42775 END IF;
42776 --
42777 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42778 
42779       trace
42780          (p_msg      => 'BEGIN of AcctLineType_88'
42781          ,p_level    => C_LEVEL_PROCEDURE
42785 --
42782          ,p_module   => l_log_module);
42783 
42784 END IF;
42786 l_component_type             := 'AMB_JLT';
42787 l_component_code             := 'AP_FREIGHT_EXPENSE_PMT';
42788 l_component_type_code        := 'S';
42789 l_component_appl_id          :=  200;
42790 l_amb_context_code           := 'DEFAULT';
42791 l_entity_code                := 'AP_PAYMENTS';
42792 l_event_class_code           := 'PAYMENTS';
42793 l_event_type_code            := 'PAYMENTS_ALL';
42794 l_line_definition_owner_code := 'S';
42795 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
42796 --
42797 l_balance_type_code          := 'A';
42798 l_segment                     := NULL;
42799 l_ccid                        := NULL;
42800 l_adr_transaction_coa_id      := NULL;
42801 l_adr_accounting_coa_id       := NULL;
42802 l_adr_flexfield_segment_code  := NULL;
42803 l_adr_flex_value_set_id       := NULL;
42804 l_adr_value_type_code         := NULL;
42805 l_adr_value_combination_id    := NULL;
42806 l_adr_value_segment_code      := NULL;
42807 
42808 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
42809 l_bflow_class_code           := '';    -- 4219869 Business Flow
42810 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
42811 l_budgetary_control_flag     := 'N';
42812 
42813 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
42814 l_bflow_applied_to_amt       := NULL; -- 5132302
42815 l_entered_amt_idx            := NULL;          -- 4262811
42816 l_accted_amt_idx             := NULL;          -- 4262811
42817 l_acc_rev_flag               := NULL;          -- 4262811
42818 l_accrual_line_num           := NULL;          -- 4262811
42819 l_tmp_amt                    := NULL;          -- 4262811
42820 --
42821  
42822 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42823     l_balance_type_code <> 'B' THEN
42824 IF NVL(p_source_50,'
42825 ') <>  'CLEAR_CLEAR' AND 
42826 NVL(p_source_32,'
42827 ') =  'FREIGHT' AND 
42828 (NVL(p_source_51,'
42829 ') =  'CASH' OR 
42830 NVL(p_source_51,'
42831 ') =  'AWT' OR 
42832 NVL(p_source_51,'
42833 ') =  'DISCOUNT') AND 
42834 NVL(p_source_71,'
42835 ') <>  'R'
42836  THEN 
42837 
42838    --
42839    XLA_AE_LINES_PKG.SetNewLine;
42840 
42841    p_balance_type_code          := l_balance_type_code;
42842    -- set the flag so later we will know whether the gain loss line needs to be created
42843    
42844    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42845      p_actual_flag :='A';
42846    END IF;
42847 
42848    --
42849    -- bulk performance
42850    --
42851    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42852                                       p_header_num   => 0); -- 4262811
42853    --
42854    -- set accounting line options
42855    --
42856    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42857            p_natural_side_code          => 'D'
42858          , p_gain_or_loss_flag          => 'N'
42859          , p_gl_transfer_mode_code      => 'S'
42860          , p_acct_entry_type_code       => 'A'
42861          , p_switch_side_flag           => 'Y'
42862          , p_merge_duplicate_code       => 'A'
42863          );
42864    --
42865    l_acc_rev_natural_side_code := 'C';  -- 4262811
42866    -- 
42867    --
42868    -- set accounting line type info
42869    --
42870    xla_ae_lines_pkg.SetAcctLineType
42871       (p_component_type             => l_component_type
42872       ,p_event_type_code            => l_event_type_code
42873       ,p_line_definition_owner_code => l_line_definition_owner_code
42874       ,p_line_definition_code       => l_line_definition_code
42875       ,p_accounting_line_code       => l_component_code
42876       ,p_accounting_line_type_code  => l_component_type_code
42877       ,p_accounting_line_appl_id    => l_component_appl_id
42878       ,p_amb_context_code           => l_amb_context_code
42879       ,p_entity_code                => l_entity_code
42880       ,p_event_class_code           => l_event_class_code);
42881    --
42882    -- set accounting class
42883    --
42884    xla_ae_lines_pkg.SetAcctClass(
42885            p_accounting_class_code  => 'FREIGHT'
42886          , p_ae_header_id           => l_ae_header_id
42887          );
42888 
42889    --
42890    -- set rounding class
42891    --
42892    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42893                       'FREIGHT';
42894 
42895    --
42896    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42897    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42898    --
42899    -- bulk performance
42900    --
42901    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42902 
42903    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42904       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42905 
42906    -- 4955764
42907    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42908       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42909 
42910    -- 4458381 Public Sector Enh
42911    
42912    --
42913    -- set accounting attributes for the line type
42914    --
42915    l_entered_amt_idx := 10;
42916    l_accted_amt_idx  := 15;
42920    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
42917    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
42918    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42919    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
42921    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
42922    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
42923    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
42924    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42925    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
42926    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
42927    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
42928    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
42929    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
42930    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42931    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
42932    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
42933    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
42934    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
42935    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
42936    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
42937    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
42938    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
42939    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
42940    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
42941    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
42942    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
42943    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
42944    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
42945    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
42946    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
42947    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
42948    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
42949    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
42950    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
42951    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
42952    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
42953    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
42954    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
42955    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
42956    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
42957    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
42958    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
42959    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
42960    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
42961    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
42962    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
42963    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
42964    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
42965    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
42966 
42967    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42968    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42969 
42970    ---------------------------------------------------------------------------------------------------------------
42971    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42972    ---------------------------------------------------------------------------------------------------------------
42973    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42974 
42975    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42976    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42977 
42978    IF xla_accounting_cache_pkg.GetValueChar
42979          (p_source_code         => 'LEDGER_CATEGORY_CODE'
42980          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42981    AND l_bflow_method_code = 'PRIOR_ENTRY'
42982 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42983    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42984          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42985        )
42986    THEN
42987          xla_ae_lines_pkg.BflowUpgEntry
42988            (p_business_method_code    => l_bflow_method_code
42989            ,p_business_class_code     => l_bflow_class_code
42990            ,p_balance_type            => l_balance_type_code);
42991    ELSE
42992       NULL;
42993 -- No business flow processing for business flow method of NONE.
42994    END IF;
42995 
42996    --
42997    -- call analytical criteria
42998    --
42999    
43000    --
43001    -- call description
43002    --
43003    -- No description or it is inherited.
43004    --
43005    -- call ADRs
43006    -- Bug 4922099
43007    --
43008    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43009         (NVL(l_actual_upg_option, 'N') = 'O') OR
43010         (NVL(l_enc_upg_option, 'N') = 'O')
43011       )
43012    THEN
43016    
43013    NULL;
43014    --
43015    --
43017   l_ccid := AcctDerRule_28(
43018            p_application_id           => p_application_id
43019          , p_ae_header_id             => l_ae_header_id 
43020 , p_source_29 => p_source_29
43021          , x_transaction_coa_id       => l_adr_transaction_coa_id
43022          , x_accounting_coa_id        => l_adr_accounting_coa_id
43023          , x_value_type_code          => l_adr_value_type_code
43024          , p_side                     => 'NA'
43025    );
43026 
43027    xla_ae_lines_pkg.set_ccid(
43028     p_code_combination_id          => l_ccid
43029   , p_value_type_code              => l_adr_value_type_code
43030   , p_transaction_coa_id           => l_adr_transaction_coa_id
43031   , p_accounting_coa_id            => l_adr_accounting_coa_id
43032   , p_adr_code                     => 'AP_INVOICE_DIST'
43033   , p_adr_type_code                => 'S'
43034   , p_component_type               => l_component_type
43035   , p_component_code               => l_component_code
43036   , p_component_type_code          => l_component_type_code
43037   , p_component_appl_id            => l_component_appl_id
43038   , p_amb_context_code             => l_amb_context_code
43039   , p_side                         => 'NA'
43040   );
43041 
43042 
43043    --
43044    --
43045    END IF;
43046    --
43047    -- Bug 4922099
43048    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43049           (NVL(l_enc_upg_option, 'N') = 'O')
43050         ) AND
43051         (l_bflow_method_code = 'PRIOR_ENTRY')
43052       )
43053    THEN
43054       IF
43055       --
43056       1 = 2
43057       --
43058       THEN
43059       xla_accounting_err_pkg.build_message
43060                                     (p_appli_s_name            => 'XLA'
43061                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43062                                     ,p_token_1                 => 'LINE_NUMBER'
43063                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
43064                                     ,p_token_2                 => 'LINE_TYPE_NAME'
43065                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
43066                                                                              l_component_type
43067                                                                             ,l_component_code
43068                                                                             ,l_component_type_code
43069                                                                             ,l_component_appl_id
43070                                                                             ,l_amb_context_code
43071                                                                             ,l_entity_code
43072                                                                             ,l_event_class_code
43073                                                                            )
43074                                     ,p_token_3                 => 'OWNER'
43075                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
43076                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
43077                                                                           ,p_lookup_code    => l_component_type_code
43078                                                                          )
43079                                     ,p_token_4                 => 'PRODUCT_NAME'
43080                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43081                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43082                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43083                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43084                                     ,p_ae_header_id            =>  NULL
43085                                        );
43086 
43087         IF (C_LEVEL_ERROR>= g_log_level) THEN
43088                  trace
43089                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43090                       ,p_level    => C_LEVEL_ERROR
43091                       ,p_module   => l_log_module);
43092         END IF;
43093       END IF;
43094    END IF;
43095    --
43096    --
43097    ------------------------------------------------------------------------------------------------
43098    -- 4219869 Business Flow
43099    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43100    -- Prior Entry.  Currently, the following code is always generated.
43101    ------------------------------------------------------------------------------------------------
43102    XLA_AE_LINES_PKG.ValidateCurrentLine;
43103 
43104    ------------------------------------------------------------------------------------
43105    -- 4219869 Business Flow
43106    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43107    ------------------------------------------------------------------------------------
43108    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43109 
43110    ----------------------------------------------------------------------------------
43111    -- 4219869 Business Flow
43112    -- Update journal entry status -- Need to generate this within IF <condition>
43116          ,p_balance_type_code => l_balance_type_code
43113    ----------------------------------------------------------------------------------
43114    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43115          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43117          );
43118 
43119    -------------------------------------------------------------------------------------------
43120    -- 4262811 - Generate the Accrual Reversal lines
43121    -------------------------------------------------------------------------------------------
43122    BEGIN
43123       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43124                               (g_array_event(p_event_id).array_value_num('header_index'));
43125       IF l_acc_rev_flag IS NULL THEN
43126          l_acc_rev_flag := 'N';
43127       END IF;
43128    EXCEPTION
43129       WHEN OTHERS THEN
43130          l_acc_rev_flag := 'N';
43131    END;
43132    --
43133    IF (l_acc_rev_flag = 'Y') THEN
43134 
43135        -- 4645092  ------------------------------------------------------------------------------
43136        -- To allow MPA report to determine if it should generate report process
43137        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43138        ------------------------------------------------------------------------------------------
43139 
43140        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43141        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43142    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
43143    -- call ADRs
43144    -- Bug 4922099
43145    --
43146    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43147         (NVL(l_actual_upg_option, 'N') = 'O') OR
43148         (NVL(l_enc_upg_option, 'N') = 'O')
43149       )
43150    THEN
43151    NULL;
43152    --
43153    --
43154    
43155   l_ccid := AcctDerRule_28(
43156            p_application_id           => p_application_id
43157          , p_ae_header_id             => l_ae_header_id 
43158 , p_source_29 => p_source_29
43159          , x_transaction_coa_id       => l_adr_transaction_coa_id
43160          , x_accounting_coa_id        => l_adr_accounting_coa_id
43161          , x_value_type_code          => l_adr_value_type_code
43162          , p_side                     => 'NA'
43163    );
43164 
43165    xla_ae_lines_pkg.set_ccid(
43166     p_code_combination_id          => l_ccid
43167   , p_value_type_code              => l_adr_value_type_code
43168   , p_transaction_coa_id           => l_adr_transaction_coa_id
43169   , p_accounting_coa_id            => l_adr_accounting_coa_id
43170   , p_adr_code                     => 'AP_INVOICE_DIST'
43171   , p_adr_type_code                => 'S'
43172   , p_component_type               => l_component_type
43173   , p_component_code               => l_component_code
43174   , p_component_type_code          => l_component_type_code
43175   , p_component_appl_id            => l_component_appl_id
43176   , p_amb_context_code             => l_amb_context_code
43177   , p_side                         => 'NA'
43178   );
43179 
43180 
43181    --
43182    --
43183    END IF;
43184 
43185        --
43186        -- Update the line information that should be overwritten
43187        --
43188        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43189                                          p_header_num   => 1);
43190        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
43191 
43192        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43193 
43194        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
43195           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43196        END IF;
43197 
43198       --
43199       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43200       --
43201       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43202           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
43203       ELSE
43204           ---------------------------------------------------------------------------------------------------
43205           -- 4262811a Switch Sign
43206           ---------------------------------------------------------------------------------------------------
43207           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
43208           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43209                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43210           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43211                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43212           -- 5132302
43213           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43214                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43215 
43216       END IF;
43217 
43218       -- 4955764
43219       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43220       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43221 
43222 
43226       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43223       XLA_AE_LINES_PKG.ValidateCurrentLine;
43224       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43225 
43227                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43228                ,p_balance_type_code => l_balance_type_code);
43229 
43230    END IF;
43231 
43232    -----------------------------------------------------------------------------------------
43233    -- 4262811 Multiperiod Accounting
43234    -----------------------------------------------------------------------------------------
43235      -- No MPA option is assigned.
43236 
43237 
43238 END IF;
43239 END IF;
43240 --
43241 
43242 --
43243 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43244    trace
43245       (p_msg      => 'END of AcctLineType_88'
43246       ,p_level    => C_LEVEL_PROCEDURE
43247       ,p_module   => l_log_module);
43248 END IF;
43249 --
43250 EXCEPTION
43251   WHEN xla_exceptions_pkg.application_exception THEN
43252       RAISE;
43253   WHEN OTHERS THEN
43254        xla_exceptions_pkg.raise_message
43255            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_88');
43256 END AcctLineType_88;
43257 --
43258 
43259 ---------------------------------------
43260 --
43261 -- PRIVATE FUNCTION
43262 --         AcctLineType_89
43263 --
43264 ---------------------------------------
43265 PROCEDURE AcctLineType_89 (
43266   p_application_id        IN NUMBER
43267  ,p_event_id              IN NUMBER
43268  ,p_calculate_acctd_flag  IN VARCHAR2
43269  ,p_calculate_g_l_flag    IN VARCHAR2
43270  ,p_actual_flag           IN OUT VARCHAR2
43271  ,p_balance_type_code     OUT VARCHAR2
43272  ,p_gain_or_loss_ref      OUT VARCHAR2
43273  
43274 --Payment Currency Code
43275  , p_source_12            IN VARCHAR2
43276 --Payment Distribution (Payment Rate) Ledger Amount
43277  , p_source_21            IN NUMBER
43278 --Invoice Distribution Account
43279  , p_source_29            IN NUMBER
43280 --Invoice Distribution Type
43281  , p_source_32            IN VARCHAR2
43282  , p_source_32_meaning    IN VARCHAR2
43283 --When to Account for Payment Option
43284  , p_source_50            IN VARCHAR2
43285 --Payment Distribution Type
43286  , p_source_51            IN VARCHAR2
43287  , p_source_51_meaning    IN VARCHAR2
43288 --Accounting Reversal Indicator
43289  , p_source_52            IN VARCHAR2
43290 --Payment Distribution Amount
43291  , p_source_53            IN NUMBER
43292 --Business Flow Accounts Payable Application Identifier
43293  , p_source_54            IN NUMBER
43294 --Payment Distribution Identifier
43295  , p_source_59            IN NUMBER
43296 --Distribution Link Type
43297  , p_source_60            IN VARCHAR2
43298 --Override Accounted Amount Indicator
43299  , p_source_64            IN VARCHAR2
43300  , p_source_64_meaning    IN VARCHAR2
43301 --Payment Supplier Identifier
43302  , p_source_65            IN NUMBER
43303 --Payment Supplier Site Identifier
43304  , p_source_66            IN NUMBER
43305 --Third Party Type
43306  , p_source_67            IN VARCHAR2
43307 --Payment Distribution Reversed Identifier
43308  , p_source_68            IN NUMBER
43309 --Invoice Distribution Tax Line Identifier
43310  , p_source_69            IN NUMBER
43311 --Invoice Distribution Summary Tax Line Identifier
43312  , p_source_70            IN NUMBER
43313 --Payment Type
43314  , p_source_71            IN VARCHAR2
43315  , p_source_71_meaning    IN VARCHAR2
43316 --Business Flow Invoice Distribution Type
43317  , p_source_73            IN VARCHAR2
43318 --Business Flow Invoice Entity Code
43319  , p_source_74            IN VARCHAR2
43320 --Business Flow Invoice Distribution Identifier
43321  , p_source_75            IN NUMBER
43322 --Business Flow Invoice Identifier
43323  , p_source_76            IN NUMBER
43324 --Invoice Distribution Tax Distribution Identifier from Tax
43325  , p_source_77            IN NUMBER
43326 --Payment Exchange Date
43327  , p_source_121            IN DATE
43328 --Payment Exchange Rate
43329  , p_source_122            IN NUMBER
43330 --Payment Exchange Rate Type
43331  , p_source_123            IN VARCHAR2
43332 )
43333 IS
43334 
43335 l_component_type              VARCHAR2(80);
43336 l_component_code              VARCHAR2(30);
43337 l_component_type_code         VARCHAR2(1);
43338 l_component_appl_id           INTEGER;
43339 l_amb_context_code            VARCHAR2(30);
43340 l_entity_code                 VARCHAR2(30);
43341 l_event_class_code            VARCHAR2(30);
43342 l_ae_header_id                NUMBER;
43343 l_event_type_code             VARCHAR2(30);
43344 l_line_definition_code        VARCHAR2(30);
43345 l_line_definition_owner_code  VARCHAR2(1);
43346 --
43347 -- adr variables
43348 l_segment                     VARCHAR2(30);
43349 l_ccid                        NUMBER;
43350 l_adr_transaction_coa_id      NUMBER;
43351 l_adr_accounting_coa_id       NUMBER;
43352 l_adr_flexfield_segment_code  VARCHAR2(30);
43353 l_adr_flex_value_set_id       NUMBER;
43354 l_adr_value_type_code         VARCHAR2(30);
43355 l_adr_value_combination_id    NUMBER;
43356 l_adr_value_segment_code      VARCHAR2(30);
43357 
43358 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
43359 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
43360 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
43364 l_entered_amt_idx             NUMBER;
43361 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
43362 
43363 -- 4262811 Variables ------------------------------------------------------------------------------------------
43365 l_accted_amt_idx              NUMBER;
43366 l_acc_rev_flag                VARCHAR2(1);
43367 l_accrual_line_num            NUMBER;
43368 l_tmp_amt                     NUMBER;
43369 l_acc_rev_natural_side_code   VARCHAR2(1);
43370 
43371 l_num_entries                 NUMBER;
43372 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
43373 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
43374 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
43375 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
43376 l_recog_line_1                NUMBER;
43377 l_recog_line_2                NUMBER;
43378 
43379 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
43380 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
43381 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
43382 
43383 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43384 
43385 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
43386 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
43387 
43388 ---------------------------------------------------------------------------------------------------------------
43389 
43390 
43391 --
43392 -- bulk performance
43393 --
43394 l_balance_type_code           VARCHAR2(1);
43395 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
43396 l_log_module                  VARCHAR2(240);
43397 
43398 --
43399 -- Upgrade strategy
43400 --
43401 l_actual_upg_option           VARCHAR2(1);
43402 l_enc_upg_option           VARCHAR2(1);
43403 
43404 --
43405 BEGIN
43406 --
43407 IF g_log_enabled THEN
43408       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_89';
43409 END IF;
43410 --
43411 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43412 
43413       trace
43414          (p_msg      => 'BEGIN of AcctLineType_89'
43415          ,p_level    => C_LEVEL_PROCEDURE
43416          ,p_module   => l_log_module);
43417 
43418 END IF;
43419 --
43420 l_component_type             := 'AMB_JLT';
43421 l_component_code             := 'AP_FREIGHT_EXPENSE_REF';
43422 l_component_type_code        := 'S';
43423 l_component_appl_id          :=  200;
43424 l_amb_context_code           := 'DEFAULT';
43425 l_entity_code                := 'AP_PAYMENTS';
43426 l_event_class_code           := 'REFUNDS';
43427 l_event_type_code            := 'REFUNDS_ALL';
43428 l_line_definition_owner_code := 'S';
43429 l_line_definition_code       := 'CASH_REFUNDS_ALL';
43430 --
43431 l_balance_type_code          := 'A';
43432 l_segment                     := NULL;
43433 l_ccid                        := NULL;
43434 l_adr_transaction_coa_id      := NULL;
43435 l_adr_accounting_coa_id       := NULL;
43436 l_adr_flexfield_segment_code  := NULL;
43437 l_adr_flex_value_set_id       := NULL;
43438 l_adr_value_type_code         := NULL;
43439 l_adr_value_combination_id    := NULL;
43440 l_adr_value_segment_code      := NULL;
43441 
43442 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
43443 l_bflow_class_code           := '';    -- 4219869 Business Flow
43444 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
43445 l_budgetary_control_flag     := 'N';
43446 
43447 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
43448 l_bflow_applied_to_amt       := NULL; -- 5132302
43449 l_entered_amt_idx            := NULL;          -- 4262811
43450 l_accted_amt_idx             := NULL;          -- 4262811
43451 l_acc_rev_flag               := NULL;          -- 4262811
43452 l_accrual_line_num           := NULL;          -- 4262811
43453 l_tmp_amt                    := NULL;          -- 4262811
43454 --
43455  
43456 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43457     l_balance_type_code <> 'B' THEN
43458 IF NVL(p_source_50,'
43459 ') <>  'CLEAR_CLEAR' AND 
43460 NVL(p_source_32,'
43461 ') =  'FREIGHT' AND 
43462 (NVL(p_source_51,'
43463 ') =  'CASH' OR 
43464 NVL(p_source_51,'
43465 ') =  'DISCOUNT') AND 
43466 NVL(p_source_71,'
43467 ') =  'R'
43468  THEN 
43469 
43470    --
43471    XLA_AE_LINES_PKG.SetNewLine;
43472 
43473    p_balance_type_code          := l_balance_type_code;
43474    -- set the flag so later we will know whether the gain loss line needs to be created
43475    
43476    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43477      p_actual_flag :='A';
43478    END IF;
43479 
43480    --
43481    -- bulk performance
43482    --
43483    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43484                                       p_header_num   => 0); -- 4262811
43485    --
43486    -- set accounting line options
43487    --
43488    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43489            p_natural_side_code          => 'D'
43490          , p_gain_or_loss_flag          => 'N'
43491          , p_gl_transfer_mode_code      => 'S'
43492          , p_acct_entry_type_code       => 'A'
43493          , p_switch_side_flag           => 'Y'
43494          , p_merge_duplicate_code       => 'A'
43495          );
43496    --
43500    -- set accounting line type info
43497    l_acc_rev_natural_side_code := 'C';  -- 4262811
43498    -- 
43499    --
43501    --
43502    xla_ae_lines_pkg.SetAcctLineType
43503       (p_component_type             => l_component_type
43504       ,p_event_type_code            => l_event_type_code
43505       ,p_line_definition_owner_code => l_line_definition_owner_code
43506       ,p_line_definition_code       => l_line_definition_code
43507       ,p_accounting_line_code       => l_component_code
43508       ,p_accounting_line_type_code  => l_component_type_code
43509       ,p_accounting_line_appl_id    => l_component_appl_id
43510       ,p_amb_context_code           => l_amb_context_code
43511       ,p_entity_code                => l_entity_code
43512       ,p_event_class_code           => l_event_class_code);
43513    --
43514    -- set accounting class
43515    --
43516    xla_ae_lines_pkg.SetAcctClass(
43517            p_accounting_class_code  => 'FREIGHT'
43518          , p_ae_header_id           => l_ae_header_id
43519          );
43520 
43521    --
43522    -- set rounding class
43523    --
43524    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43525                       'FREIGHT';
43526 
43527    --
43528    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43529    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43530    --
43531    -- bulk performance
43532    --
43533    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43534 
43535    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43536       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43537 
43538    -- 4955764
43539    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43540       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43541 
43542    -- 4458381 Public Sector Enh
43543    
43544    --
43545    -- set accounting attributes for the line type
43546    --
43547    l_entered_amt_idx := 9;
43548    l_accted_amt_idx  := 14;
43549    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
43550    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43551    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
43552    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
43553    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
43554    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43555    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
43556    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
43557    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
43558    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
43559    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
43560    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43561    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
43562    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
43563    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
43564    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
43565    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
43566    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
43567    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
43568    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
43569    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
43570    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
43571    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
43572    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
43573    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
43574    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
43575    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
43576    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
43577    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
43578    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
43579    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
43580    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
43581    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
43582    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
43583    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
43584    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
43585    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
43586    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
43587    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
43588    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
43589    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
43590    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
43591    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
43592    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
43593    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
43594    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
43595    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
43596 
43597    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43601    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43598    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43599 
43600    ---------------------------------------------------------------------------------------------------------------
43602    ---------------------------------------------------------------------------------------------------------------
43603    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43604 
43605    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43606    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43607 
43608    IF xla_accounting_cache_pkg.GetValueChar
43609          (p_source_code         => 'LEDGER_CATEGORY_CODE'
43610          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43611    AND l_bflow_method_code = 'PRIOR_ENTRY'
43612 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43613    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43614          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43615        )
43616    THEN
43617          xla_ae_lines_pkg.BflowUpgEntry
43618            (p_business_method_code    => l_bflow_method_code
43619            ,p_business_class_code     => l_bflow_class_code
43620            ,p_balance_type            => l_balance_type_code);
43621    ELSE
43622       NULL;
43623 -- No business flow processing for business flow method of NONE.
43624    END IF;
43625 
43626    --
43627    -- call analytical criteria
43628    --
43629    
43630    --
43631    -- call description
43632    --
43633    -- No description or it is inherited.
43634    --
43635    -- call ADRs
43636    -- Bug 4922099
43637    --
43638    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43639         (NVL(l_actual_upg_option, 'N') = 'O') OR
43640         (NVL(l_enc_upg_option, 'N') = 'O')
43641       )
43642    THEN
43643    NULL;
43644    --
43645    --
43646    
43647   l_ccid := AcctDerRule_28(
43648            p_application_id           => p_application_id
43649          , p_ae_header_id             => l_ae_header_id 
43650 , p_source_29 => p_source_29
43651          , x_transaction_coa_id       => l_adr_transaction_coa_id
43652          , x_accounting_coa_id        => l_adr_accounting_coa_id
43653          , x_value_type_code          => l_adr_value_type_code
43654          , p_side                     => 'NA'
43655    );
43656 
43657    xla_ae_lines_pkg.set_ccid(
43658     p_code_combination_id          => l_ccid
43659   , p_value_type_code              => l_adr_value_type_code
43660   , p_transaction_coa_id           => l_adr_transaction_coa_id
43661   , p_accounting_coa_id            => l_adr_accounting_coa_id
43662   , p_adr_code                     => 'AP_INVOICE_DIST'
43663   , p_adr_type_code                => 'S'
43664   , p_component_type               => l_component_type
43665   , p_component_code               => l_component_code
43666   , p_component_type_code          => l_component_type_code
43667   , p_component_appl_id            => l_component_appl_id
43668   , p_amb_context_code             => l_amb_context_code
43669   , p_side                         => 'NA'
43670   );
43671 
43672 
43673    --
43674    --
43675    END IF;
43676    --
43677    -- Bug 4922099
43678    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43679           (NVL(l_enc_upg_option, 'N') = 'O')
43680         ) AND
43681         (l_bflow_method_code = 'PRIOR_ENTRY')
43682       )
43683    THEN
43684       IF
43685       --
43686       1 = 2
43687       --
43688       THEN
43689       xla_accounting_err_pkg.build_message
43690                                     (p_appli_s_name            => 'XLA'
43691                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43692                                     ,p_token_1                 => 'LINE_NUMBER'
43693                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
43694                                     ,p_token_2                 => 'LINE_TYPE_NAME'
43695                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
43696                                                                              l_component_type
43697                                                                             ,l_component_code
43698                                                                             ,l_component_type_code
43699                                                                             ,l_component_appl_id
43700                                                                             ,l_amb_context_code
43701                                                                             ,l_entity_code
43702                                                                             ,l_event_class_code
43703                                                                            )
43704                                     ,p_token_3                 => 'OWNER'
43705                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
43706                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
43707                                                                           ,p_lookup_code    => l_component_type_code
43711                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43708                                                                          )
43709                                     ,p_token_4                 => 'PRODUCT_NAME'
43710                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43712                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43713                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43714                                     ,p_ae_header_id            =>  NULL
43715                                        );
43716 
43717         IF (C_LEVEL_ERROR>= g_log_level) THEN
43718                  trace
43719                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43720                       ,p_level    => C_LEVEL_ERROR
43721                       ,p_module   => l_log_module);
43722         END IF;
43723       END IF;
43724    END IF;
43725    --
43726    --
43727    ------------------------------------------------------------------------------------------------
43728    -- 4219869 Business Flow
43729    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43730    -- Prior Entry.  Currently, the following code is always generated.
43731    ------------------------------------------------------------------------------------------------
43732    XLA_AE_LINES_PKG.ValidateCurrentLine;
43733 
43734    ------------------------------------------------------------------------------------
43735    -- 4219869 Business Flow
43736    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43737    ------------------------------------------------------------------------------------
43738    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43739 
43740    ----------------------------------------------------------------------------------
43741    -- 4219869 Business Flow
43742    -- Update journal entry status -- Need to generate this within IF <condition>
43743    ----------------------------------------------------------------------------------
43744    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43745          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43746          ,p_balance_type_code => l_balance_type_code
43747          );
43748 
43749    -------------------------------------------------------------------------------------------
43750    -- 4262811 - Generate the Accrual Reversal lines
43751    -------------------------------------------------------------------------------------------
43752    BEGIN
43753       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43754                               (g_array_event(p_event_id).array_value_num('header_index'));
43755       IF l_acc_rev_flag IS NULL THEN
43756          l_acc_rev_flag := 'N';
43757       END IF;
43758    EXCEPTION
43759       WHEN OTHERS THEN
43760          l_acc_rev_flag := 'N';
43761    END;
43762    --
43763    IF (l_acc_rev_flag = 'Y') THEN
43764 
43765        -- 4645092  ------------------------------------------------------------------------------
43766        -- To allow MPA report to determine if it should generate report process
43767        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43768        ------------------------------------------------------------------------------------------
43769 
43770        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43771        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43772    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
43773    -- call ADRs
43774    -- Bug 4922099
43775    --
43776    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43777         (NVL(l_actual_upg_option, 'N') = 'O') OR
43778         (NVL(l_enc_upg_option, 'N') = 'O')
43779       )
43780    THEN
43781    NULL;
43782    --
43783    --
43784    
43785   l_ccid := AcctDerRule_28(
43786            p_application_id           => p_application_id
43787          , p_ae_header_id             => l_ae_header_id 
43788 , p_source_29 => p_source_29
43789          , x_transaction_coa_id       => l_adr_transaction_coa_id
43790          , x_accounting_coa_id        => l_adr_accounting_coa_id
43791          , x_value_type_code          => l_adr_value_type_code
43792          , p_side                     => 'NA'
43793    );
43794 
43795    xla_ae_lines_pkg.set_ccid(
43796     p_code_combination_id          => l_ccid
43797   , p_value_type_code              => l_adr_value_type_code
43798   , p_transaction_coa_id           => l_adr_transaction_coa_id
43799   , p_accounting_coa_id            => l_adr_accounting_coa_id
43800   , p_adr_code                     => 'AP_INVOICE_DIST'
43801   , p_adr_type_code                => 'S'
43802   , p_component_type               => l_component_type
43803   , p_component_code               => l_component_code
43804   , p_component_type_code          => l_component_type_code
43805   , p_component_appl_id            => l_component_appl_id
43806   , p_amb_context_code             => l_amb_context_code
43807   , p_side                         => 'NA'
43808   );
43809 
43810 
43811    --
43812    --
43813    END IF;
43814 
43815        --
43816        -- Update the line information that should be overwritten
43817        --
43818        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43822        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43819                                          p_header_num   => 1);
43820        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
43821 
43823 
43824        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
43825           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43826        END IF;
43827 
43828       --
43829       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43830       --
43831       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43832           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
43833       ELSE
43834           ---------------------------------------------------------------------------------------------------
43835           -- 4262811a Switch Sign
43836           ---------------------------------------------------------------------------------------------------
43837           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
43838           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43839                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43840           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43841                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43842           -- 5132302
43843           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43844                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43845 
43846       END IF;
43847 
43848       -- 4955764
43849       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43850       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43851 
43852 
43853       XLA_AE_LINES_PKG.ValidateCurrentLine;
43854       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43855 
43856       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43857                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43858                ,p_balance_type_code => l_balance_type_code);
43859 
43860    END IF;
43861 
43862    -----------------------------------------------------------------------------------------
43863    -- 4262811 Multiperiod Accounting
43864    -----------------------------------------------------------------------------------------
43865      -- No MPA option is assigned.
43866 
43867 
43868 END IF;
43869 END IF;
43870 --
43871 
43872 --
43873 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43874    trace
43875       (p_msg      => 'END of AcctLineType_89'
43876       ,p_level    => C_LEVEL_PROCEDURE
43877       ,p_module   => l_log_module);
43878 END IF;
43879 --
43880 EXCEPTION
43881   WHEN xla_exceptions_pkg.application_exception THEN
43882       RAISE;
43883   WHEN OTHERS THEN
43884        xla_exceptions_pkg.raise_message
43885            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_89');
43886 END AcctLineType_89;
43887 --
43888 
43889 ---------------------------------------
43890 --
43891 -- PRIVATE FUNCTION
43892 --         AcctLineType_90
43893 --
43894 ---------------------------------------
43895 PROCEDURE AcctLineType_90 (
43896   p_application_id        IN NUMBER
43897  ,p_event_id              IN NUMBER
43898  ,p_calculate_acctd_flag  IN VARCHAR2
43899  ,p_calculate_g_l_flag    IN VARCHAR2
43900  ,p_actual_flag           IN OUT VARCHAR2
43901  ,p_balance_type_code     OUT VARCHAR2
43902  ,p_gain_or_loss_ref      OUT VARCHAR2
43903  
43904 --Recipient Invoice Distribution Account
43905  , p_source_48            IN NUMBER
43906 --When to Account for Payment Option
43907  , p_source_50            IN VARCHAR2
43908 --Accounting Reversal Indicator
43909  , p_source_52            IN VARCHAR2
43910 --Business Flow Accounts Payable Application Identifier
43911  , p_source_54            IN NUMBER
43912 --Distribution Link Type
43913  , p_source_60            IN VARCHAR2
43914 --Override Accounted Amount Indicator
43915  , p_source_64            IN VARCHAR2
43916  , p_source_64_meaning    IN VARCHAR2
43917 --Third Party Type
43918  , p_source_67            IN VARCHAR2
43919 --Invoice Distribution Tax Line Identifier
43920  , p_source_69            IN NUMBER
43921 --Invoice Distribution Summary Tax Line Identifier
43922  , p_source_70            IN NUMBER
43923 --Invoice Distribution Tax Distribution Identifier from Tax
43924  , p_source_77            IN NUMBER
43925 --Prepayment Distribution Type
43926  , p_source_78            IN VARCHAR2
43927 --Recipient Invoice Distribution Type
43928  , p_source_79            IN VARCHAR2
43929  , p_source_79_meaning    IN VARCHAR2
43930 --Prepayment Application Distribution Identifier
43931  , p_source_82            IN NUMBER
43932 --Invoice Identifier
43933  , p_source_83            IN NUMBER
43934 --Business Flow Prepayment Invoice Distribution Type
43935  , p_source_84            IN VARCHAR2
43936 --Business Flow Prepayment Invoice Entity Code
43937  , p_source_85            IN VARCHAR2
43938 --Business Flow Prepayment Invoice Distribution Identifier
43939  , p_source_86            IN NUMBER
43943  , p_source_88            IN VARCHAR2
43940 --Business Flow Prepayment Invoice Identifier
43941  , p_source_87            IN NUMBER
43942 --Upgrade Encumbrance Credit Account Class
43944 --Payables Encumbrance Upgrade Credit Account
43945  , p_source_89            IN NUMBER
43946 --Payables Encumbrance Upgrade Credit Amount
43947  , p_source_90            IN NUMBER
43948 --Invoice Currency Code
43949  , p_source_91            IN VARCHAR2
43950 --Payables Encumbrance Upgrade Credit Base Amount
43951  , p_source_92            IN NUMBER
43952 --Upgrade Encumbrance Debit Account Class
43953  , p_source_93            IN VARCHAR2
43954 --Payables Encumbrance Upgrade Debit Account
43955  , p_source_94            IN NUMBER
43956 --Payables Encumbrance Upgrade Debit Amount
43957  , p_source_95            IN NUMBER
43958 --Payables Encumbrance Upgrade Debit Base Amount
43959  , p_source_96            IN NUMBER
43960 --Payables Encumbrance Upgrade Option
43961  , p_source_97            IN VARCHAR2
43962 --Prepayment Distribution Amount
43963  , p_source_98            IN NUMBER
43964 --Prepayment Clearing Currency Code
43965  , p_source_99            IN VARCHAR2
43966 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
43967  , p_source_100            IN NUMBER
43968 --Deferred Accounting End Date
43969  , p_source_101            IN DATE
43970 --Deferred Accounting Option
43971  , p_source_102            IN VARCHAR2
43972 --Deferred Accounting Start Date
43973  , p_source_103            IN DATE
43974 --Invoice Supplier Identifier
43975  , p_source_104            IN NUMBER
43976 --Invoice Supplier Site Identifier
43977  , p_source_105            IN NUMBER
43978 --Identifier of the Prepayment Application Reversed
43979  , p_source_106            IN NUMBER
43980 --Payables Upgrade Credit Encumbrance Type Identifier
43981  , p_source_107            IN NUMBER
43982 --Payables Upgrade Debit Encumbrance Type Identifier
43983  , p_source_108            IN NUMBER
43984 --Prepayment Clearing Exchange Date
43985  , p_source_125            IN DATE
43986 --Prepayment Clearing Exchange Rate
43987  , p_source_126            IN NUMBER
43988 --Prepayment Clearing Exchange Rate Type
43989  , p_source_127            IN VARCHAR2
43990 )
43991 IS
43992 
43993 l_component_type              VARCHAR2(80);
43994 l_component_code              VARCHAR2(30);
43995 l_component_type_code         VARCHAR2(1);
43996 l_component_appl_id           INTEGER;
43997 l_amb_context_code            VARCHAR2(30);
43998 l_entity_code                 VARCHAR2(30);
43999 l_event_class_code            VARCHAR2(30);
44000 l_ae_header_id                NUMBER;
44001 l_event_type_code             VARCHAR2(30);
44002 l_line_definition_code        VARCHAR2(30);
44003 l_line_definition_owner_code  VARCHAR2(1);
44004 --
44005 -- adr variables
44006 l_segment                     VARCHAR2(30);
44007 l_ccid                        NUMBER;
44008 l_adr_transaction_coa_id      NUMBER;
44009 l_adr_accounting_coa_id       NUMBER;
44010 l_adr_flexfield_segment_code  VARCHAR2(30);
44011 l_adr_flex_value_set_id       NUMBER;
44012 l_adr_value_type_code         VARCHAR2(30);
44013 l_adr_value_combination_id    NUMBER;
44014 l_adr_value_segment_code      VARCHAR2(30);
44015 
44016 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
44017 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
44018 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
44019 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
44020 
44021 -- 4262811 Variables ------------------------------------------------------------------------------------------
44022 l_entered_amt_idx             NUMBER;
44023 l_accted_amt_idx              NUMBER;
44024 l_acc_rev_flag                VARCHAR2(1);
44025 l_accrual_line_num            NUMBER;
44026 l_tmp_amt                     NUMBER;
44027 l_acc_rev_natural_side_code   VARCHAR2(1);
44028 
44029 l_num_entries                 NUMBER;
44030 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
44031 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
44032 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
44033 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
44034 l_recog_line_1                NUMBER;
44035 l_recog_line_2                NUMBER;
44036 
44037 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
44038 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
44039 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
44040 
44041 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44042 
44043 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
44044 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
44045 
44046 ---------------------------------------------------------------------------------------------------------------
44047 
44048 
44049 --
44050 -- bulk performance
44051 --
44052 l_balance_type_code           VARCHAR2(1);
44053 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
44054 l_log_module                  VARCHAR2(240);
44055 
44056 --
44057 -- Upgrade strategy
44058 --
44059 l_actual_upg_option           VARCHAR2(1);
44060 l_enc_upg_option           VARCHAR2(1);
44061 
44062 --
44063 BEGIN
44064 --
44065 IF g_log_enabled THEN
44069 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44066       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_90';
44067 END IF;
44068 --
44070 
44071       trace
44072          (p_msg      => 'BEGIN of AcctLineType_90'
44073          ,p_level    => C_LEVEL_PROCEDURE
44074          ,p_module   => l_log_module);
44075 
44076 END IF;
44077 --
44078 l_component_type             := 'AMB_JLT';
44079 l_component_code             := 'AP_FREIGHT_PREPAY_CLR_RATE_APP';
44080 l_component_type_code        := 'S';
44081 l_component_appl_id          :=  200;
44082 l_amb_context_code           := 'DEFAULT';
44083 l_entity_code                := 'AP_INVOICES';
44084 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
44085 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
44086 l_line_definition_owner_code := 'S';
44087 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
44088 --
44089 l_balance_type_code          := 'A';
44090 l_segment                     := NULL;
44091 l_ccid                        := NULL;
44092 l_adr_transaction_coa_id      := NULL;
44093 l_adr_accounting_coa_id       := NULL;
44094 l_adr_flexfield_segment_code  := NULL;
44095 l_adr_flex_value_set_id       := NULL;
44096 l_adr_value_type_code         := NULL;
44097 l_adr_value_combination_id    := NULL;
44098 l_adr_value_segment_code      := NULL;
44099 
44100 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
44101 l_bflow_class_code           := '';    -- 4219869 Business Flow
44102 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
44103 l_budgetary_control_flag     := 'N';
44104 
44105 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
44106 l_bflow_applied_to_amt       := NULL; -- 5132302
44107 l_entered_amt_idx            := NULL;          -- 4262811
44108 l_accted_amt_idx             := NULL;          -- 4262811
44109 l_acc_rev_flag               := NULL;          -- 4262811
44110 l_accrual_line_num           := NULL;          -- 4262811
44111 l_tmp_amt                    := NULL;          -- 4262811
44112 --
44113  
44114 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44115     l_balance_type_code <> 'B' THEN
44116 IF NVL(p_source_50,'
44117 ') =  'CLEAR_CLEAR' AND 
44118 (NVL(p_source_78,'
44119 ') =  'PREPAY APPL' OR 
44120 NVL(p_source_78,'
44121 ') =  'PREPAY APPL NONREC TAX' OR 
44122 NVL(p_source_78,'
44123 ') =  'PREPAY APPL REC TAX') AND 
44124 NVL(p_source_79,'
44125 ') =  'FREIGHT'
44126  THEN 
44127 
44128    --
44129    XLA_AE_LINES_PKG.SetNewLine;
44130 
44131    p_balance_type_code          := l_balance_type_code;
44132    -- set the flag so later we will know whether the gain loss line needs to be created
44133    
44134    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44135      p_actual_flag :='A';
44136    END IF;
44137 
44138    --
44139    -- bulk performance
44140    --
44141    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44142                                       p_header_num   => 0); -- 4262811
44143    --
44144    -- set accounting line options
44145    --
44146    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44147            p_natural_side_code          => 'C'
44148          , p_gain_or_loss_flag          => 'N'
44149          , p_gl_transfer_mode_code      => 'S'
44150          , p_acct_entry_type_code       => 'A'
44151          , p_switch_side_flag           => 'Y'
44152          , p_merge_duplicate_code       => 'A'
44153          );
44154    --
44155    l_acc_rev_natural_side_code := 'D';  -- 4262811
44156    -- 
44157    --
44158    -- set accounting line type info
44159    --
44160    xla_ae_lines_pkg.SetAcctLineType
44161       (p_component_type             => l_component_type
44162       ,p_event_type_code            => l_event_type_code
44163       ,p_line_definition_owner_code => l_line_definition_owner_code
44164       ,p_line_definition_code       => l_line_definition_code
44165       ,p_accounting_line_code       => l_component_code
44166       ,p_accounting_line_type_code  => l_component_type_code
44167       ,p_accounting_line_appl_id    => l_component_appl_id
44168       ,p_amb_context_code           => l_amb_context_code
44169       ,p_entity_code                => l_entity_code
44170       ,p_event_class_code           => l_event_class_code);
44171    --
44172    -- set accounting class
44173    --
44174    xla_ae_lines_pkg.SetAcctClass(
44175            p_accounting_class_code  => 'FREIGHT'
44176          , p_ae_header_id           => l_ae_header_id
44177          );
44178 
44179    --
44180    -- set rounding class
44181    --
44182    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44183                       'FREIGHT';
44184 
44185    --
44186    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44187    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44188    --
44189    -- bulk performance
44190    --
44191    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44192 
44193    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44194       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44195 
44196    -- 4955764
44200    -- 4458381 Public Sector Enh
44197    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44198       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44199 
44201    
44202    --
44203    -- set accounting attributes for the line type
44204    --
44205    l_entered_amt_idx := 25;
44206    l_accted_amt_idx  := 30;
44207    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
44208    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44209    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
44210    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
44211    l_rec_acct_attrs.array_num_value(2)  := 
44212 xla_ae_sources_pkg.GetSystemSourceNum(
44213    p_source_code           => 'XLA_EVENT_APPL_ID'
44214  , p_source_type_code      => 'Y'
44215  , p_source_application_id =>  602
44216 );
44217    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
44218    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
44219    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
44220    l_rec_acct_attrs.array_char_value(4)  := 
44221 xla_ae_sources_pkg.GetSystemSourceChar(
44222    p_source_code           => 'XLA_ENTITY_CODE'
44223  , p_source_type_code      => 'Y'
44224  , p_source_application_id =>  602
44225 );
44226    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
44227    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
44228    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
44229    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
44230    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
44231    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
44232    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44233    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
44234    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
44235    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
44236    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
44237    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
44238    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44239    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
44240    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
44241    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
44242    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
44243    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
44244    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
44245    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
44246    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
44247    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
44248    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
44249    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
44250    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
44251    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
44252    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
44253    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
44254    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
44255    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
44256    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
44257    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
44258    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
44259    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
44260    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
44261    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
44262    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
44263    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
44264    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
44265    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
44266    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
44267    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
44268    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
44269    l_rec_acct_attrs.array_char_value(26)  := p_source_99;
44270    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
44271    l_rec_acct_attrs.array_date_value(27)  := p_source_125;
44272    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
44273    l_rec_acct_attrs.array_num_value(28)  := p_source_126;
44274    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
44275    l_rec_acct_attrs.array_char_value(29)  := p_source_127;
44276    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
44277    l_rec_acct_attrs.array_num_value(30)  := p_source_100;
44278    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
44279    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
44280    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
44281    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
44282    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
44283    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
44284    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
44285    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
44286    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
44290    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
44287    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
44288    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
44289    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
44291    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
44292    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
44293    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
44294    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
44295    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
44296    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
44297    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
44298    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
44299    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
44300    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
44301    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
44302    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
44303    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
44304    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
44305    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
44306 
44307    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44308    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44309 
44310    ---------------------------------------------------------------------------------------------------------------
44311    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44312    ---------------------------------------------------------------------------------------------------------------
44313    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44314 
44315    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44316    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44317 
44318    IF xla_accounting_cache_pkg.GetValueChar
44319          (p_source_code         => 'LEDGER_CATEGORY_CODE'
44320          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44321    AND l_bflow_method_code = 'PRIOR_ENTRY'
44322 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44323    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44324          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44325        )
44326    THEN
44327          xla_ae_lines_pkg.BflowUpgEntry
44328            (p_business_method_code    => l_bflow_method_code
44329            ,p_business_class_code     => l_bflow_class_code
44330            ,p_balance_type            => l_balance_type_code);
44331    ELSE
44332       NULL;
44333 -- No business flow processing for business flow method of NONE.
44334    END IF;
44335 
44336    --
44337    -- call analytical criteria
44338    --
44339    
44340    --
44341    -- call description
44342    --
44343    -- No description or it is inherited.
44344    --
44345    -- call ADRs
44346    -- Bug 4922099
44347    --
44348    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44349         (NVL(l_actual_upg_option, 'N') = 'O') OR
44350         (NVL(l_enc_upg_option, 'N') = 'O')
44351       )
44352    THEN
44353    NULL;
44354    --
44355    --
44356    
44357   l_ccid := AcctDerRule_35(
44358            p_application_id           => p_application_id
44359          , p_ae_header_id             => l_ae_header_id 
44360 , p_source_48 => p_source_48
44361          , x_transaction_coa_id       => l_adr_transaction_coa_id
44362          , x_accounting_coa_id        => l_adr_accounting_coa_id
44363          , x_value_type_code          => l_adr_value_type_code
44364          , p_side                     => 'NA'
44365    );
44366 
44367    xla_ae_lines_pkg.set_ccid(
44368     p_code_combination_id          => l_ccid
44369   , p_value_type_code              => l_adr_value_type_code
44370   , p_transaction_coa_id           => l_adr_transaction_coa_id
44371   , p_accounting_coa_id            => l_adr_accounting_coa_id
44372   , p_adr_code                     => 'AP_RECP_INV_DIST'
44373   , p_adr_type_code                => 'S'
44374   , p_component_type               => l_component_type
44375   , p_component_code               => l_component_code
44376   , p_component_type_code          => l_component_type_code
44377   , p_component_appl_id            => l_component_appl_id
44378   , p_amb_context_code             => l_amb_context_code
44379   , p_side                         => 'NA'
44380   );
44381 
44382 
44383    --
44384    --
44385    END IF;
44386    --
44387    -- Bug 4922099
44388    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44389           (NVL(l_enc_upg_option, 'N') = 'O')
44390         ) AND
44391         (l_bflow_method_code = 'PRIOR_ENTRY')
44392       )
44393    THEN
44394       IF
44395       --
44396       1 = 2
44397       --
44398       THEN
44399       xla_accounting_err_pkg.build_message
44400                                     (p_appli_s_name            => 'XLA'
44401                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44402                                     ,p_token_1                 => 'LINE_NUMBER'
44406                                                                              l_component_type
44403                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
44404                                     ,p_token_2                 => 'LINE_TYPE_NAME'
44405                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
44407                                                                             ,l_component_code
44408                                                                             ,l_component_type_code
44409                                                                             ,l_component_appl_id
44410                                                                             ,l_amb_context_code
44411                                                                             ,l_entity_code
44412                                                                             ,l_event_class_code
44413                                                                            )
44414                                     ,p_token_3                 => 'OWNER'
44415                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
44416                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
44417                                                                           ,p_lookup_code    => l_component_type_code
44418                                                                          )
44419                                     ,p_token_4                 => 'PRODUCT_NAME'
44420                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44421                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44422                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44423                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44424                                     ,p_ae_header_id            =>  NULL
44425                                        );
44426 
44427         IF (C_LEVEL_ERROR>= g_log_level) THEN
44428                  trace
44429                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44430                       ,p_level    => C_LEVEL_ERROR
44431                       ,p_module   => l_log_module);
44432         END IF;
44433       END IF;
44434    END IF;
44435    --
44436    --
44437    ------------------------------------------------------------------------------------------------
44438    -- 4219869 Business Flow
44439    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44440    -- Prior Entry.  Currently, the following code is always generated.
44441    ------------------------------------------------------------------------------------------------
44442    XLA_AE_LINES_PKG.ValidateCurrentLine;
44443 
44444    ------------------------------------------------------------------------------------
44445    -- 4219869 Business Flow
44446    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44447    ------------------------------------------------------------------------------------
44448    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44449 
44450    ----------------------------------------------------------------------------------
44451    -- 4219869 Business Flow
44452    -- Update journal entry status -- Need to generate this within IF <condition>
44453    ----------------------------------------------------------------------------------
44454    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44455          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44456          ,p_balance_type_code => l_balance_type_code
44457          );
44458 
44459    -------------------------------------------------------------------------------------------
44460    -- 4262811 - Generate the Accrual Reversal lines
44461    -------------------------------------------------------------------------------------------
44462    BEGIN
44463       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44464                               (g_array_event(p_event_id).array_value_num('header_index'));
44465       IF l_acc_rev_flag IS NULL THEN
44466          l_acc_rev_flag := 'N';
44467       END IF;
44468    EXCEPTION
44469       WHEN OTHERS THEN
44470          l_acc_rev_flag := 'N';
44471    END;
44472    --
44473    IF (l_acc_rev_flag = 'Y') THEN
44474 
44475        -- 4645092  ------------------------------------------------------------------------------
44476        -- To allow MPA report to determine if it should generate report process
44477        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44478        ------------------------------------------------------------------------------------------
44479 
44480        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44481        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44482    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
44483    -- call ADRs
44484    -- Bug 4922099
44485    --
44486    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44487         (NVL(l_actual_upg_option, 'N') = 'O') OR
44488         (NVL(l_enc_upg_option, 'N') = 'O')
44489       )
44490    THEN
44491    NULL;
44492    --
44493    --
44494    
44495   l_ccid := AcctDerRule_35(
44496            p_application_id           => p_application_id
44497          , p_ae_header_id             => l_ae_header_id 
44501          , x_value_type_code          => l_adr_value_type_code
44498 , p_source_48 => p_source_48
44499          , x_transaction_coa_id       => l_adr_transaction_coa_id
44500          , x_accounting_coa_id        => l_adr_accounting_coa_id
44502          , p_side                     => 'NA'
44503    );
44504 
44505    xla_ae_lines_pkg.set_ccid(
44506     p_code_combination_id          => l_ccid
44507   , p_value_type_code              => l_adr_value_type_code
44508   , p_transaction_coa_id           => l_adr_transaction_coa_id
44509   , p_accounting_coa_id            => l_adr_accounting_coa_id
44510   , p_adr_code                     => 'AP_RECP_INV_DIST'
44511   , p_adr_type_code                => 'S'
44512   , p_component_type               => l_component_type
44513   , p_component_code               => l_component_code
44514   , p_component_type_code          => l_component_type_code
44515   , p_component_appl_id            => l_component_appl_id
44516   , p_amb_context_code             => l_amb_context_code
44517   , p_side                         => 'NA'
44518   );
44519 
44520 
44521    --
44522    --
44523    END IF;
44524 
44525        --
44526        -- Update the line information that should be overwritten
44527        --
44528        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44529                                          p_header_num   => 1);
44530        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
44531 
44532        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44533 
44534        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
44535           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44536        END IF;
44537 
44538       --
44539       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44540       --
44541       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44542           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
44543       ELSE
44544           ---------------------------------------------------------------------------------------------------
44545           -- 4262811a Switch Sign
44546           ---------------------------------------------------------------------------------------------------
44547           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
44548           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44549                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44550           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44551                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44552           -- 5132302
44553           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44554                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44555 
44556       END IF;
44557 
44558       -- 4955764
44559       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44560       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44561 
44562 
44563       XLA_AE_LINES_PKG.ValidateCurrentLine;
44564       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44565 
44566       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44567                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44568                ,p_balance_type_code => l_balance_type_code);
44569 
44570    END IF;
44571 
44572    -----------------------------------------------------------------------------------------
44573    -- 4262811 Multiperiod Accounting
44574    -----------------------------------------------------------------------------------------
44575      -- No MPA option is assigned.
44576 
44577 
44578 END IF;
44579 END IF;
44580 --
44581 
44582 --
44583 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44584    trace
44585       (p_msg      => 'END of AcctLineType_90'
44586       ,p_level    => C_LEVEL_PROCEDURE
44587       ,p_module   => l_log_module);
44588 END IF;
44589 --
44590 EXCEPTION
44591   WHEN xla_exceptions_pkg.application_exception THEN
44592       RAISE;
44593   WHEN OTHERS THEN
44594        xla_exceptions_pkg.raise_message
44595            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_90');
44596 END AcctLineType_90;
44597 --
44598 
44599 ---------------------------------------
44600 --
44601 -- PRIVATE FUNCTION
44602 --         AcctLineType_91
44603 --
44604 ---------------------------------------
44605 PROCEDURE AcctLineType_91 (
44606   p_application_id        IN NUMBER
44607  ,p_event_id              IN NUMBER
44608  ,p_calculate_acctd_flag  IN VARCHAR2
44609  ,p_calculate_g_l_flag    IN VARCHAR2
44610  ,p_actual_flag           IN OUT VARCHAR2
44611  ,p_balance_type_code     OUT VARCHAR2
44612  ,p_gain_or_loss_ref      OUT VARCHAR2
44613  
44614 --Recipient Invoice Distribution Account
44615  , p_source_48            IN NUMBER
44616 --When to Account for Payment Option
44617  , p_source_50            IN VARCHAR2
44618 --Accounting Reversal Indicator
44622 --Distribution Link Type
44619  , p_source_52            IN VARCHAR2
44620 --Business Flow Accounts Payable Application Identifier
44621  , p_source_54            IN NUMBER
44623  , p_source_60            IN VARCHAR2
44624 --Override Accounted Amount Indicator
44625  , p_source_64            IN VARCHAR2
44626  , p_source_64_meaning    IN VARCHAR2
44627 --Third Party Type
44628  , p_source_67            IN VARCHAR2
44629 --Invoice Distribution Tax Line Identifier
44630  , p_source_69            IN NUMBER
44631 --Invoice Distribution Summary Tax Line Identifier
44632  , p_source_70            IN NUMBER
44633 --Invoice Distribution Tax Distribution Identifier from Tax
44634  , p_source_77            IN NUMBER
44635 --Prepayment Distribution Type
44636  , p_source_78            IN VARCHAR2
44637 --Recipient Invoice Distribution Type
44638  , p_source_79            IN VARCHAR2
44639  , p_source_79_meaning    IN VARCHAR2
44640 --Prepayment Application Distribution Identifier
44641  , p_source_82            IN NUMBER
44642 --Invoice Identifier
44643  , p_source_83            IN NUMBER
44644 --Business Flow Prepayment Invoice Distribution Type
44645  , p_source_84            IN VARCHAR2
44646 --Business Flow Prepayment Invoice Entity Code
44647  , p_source_85            IN VARCHAR2
44648 --Business Flow Prepayment Invoice Distribution Identifier
44649  , p_source_86            IN NUMBER
44650 --Business Flow Prepayment Invoice Identifier
44651  , p_source_87            IN NUMBER
44652 --Upgrade Encumbrance Credit Account Class
44653  , p_source_88            IN VARCHAR2
44654 --Payables Encumbrance Upgrade Credit Account
44655  , p_source_89            IN NUMBER
44656 --Payables Encumbrance Upgrade Credit Amount
44657  , p_source_90            IN NUMBER
44658 --Invoice Currency Code
44659  , p_source_91            IN VARCHAR2
44660 --Payables Encumbrance Upgrade Credit Base Amount
44661  , p_source_92            IN NUMBER
44662 --Upgrade Encumbrance Debit Account Class
44663  , p_source_93            IN VARCHAR2
44664 --Payables Encumbrance Upgrade Debit Account
44665  , p_source_94            IN NUMBER
44666 --Payables Encumbrance Upgrade Debit Amount
44667  , p_source_95            IN NUMBER
44668 --Payables Encumbrance Upgrade Debit Base Amount
44669  , p_source_96            IN NUMBER
44670 --Payables Encumbrance Upgrade Option
44671  , p_source_97            IN VARCHAR2
44672 --Prepayment Distribution Amount
44673  , p_source_98            IN NUMBER
44674 --Deferred Accounting End Date
44675  , p_source_101            IN DATE
44676 --Deferred Accounting Option
44677  , p_source_102            IN VARCHAR2
44678 --Deferred Accounting Start Date
44679  , p_source_103            IN DATE
44680 --Invoice Supplier Identifier
44681  , p_source_104            IN NUMBER
44682 --Invoice Supplier Site Identifier
44683  , p_source_105            IN NUMBER
44684 --Identifier of the Prepayment Application Reversed
44685  , p_source_106            IN NUMBER
44686 --Payables Upgrade Credit Encumbrance Type Identifier
44687  , p_source_107            IN NUMBER
44688 --Payables Upgrade Debit Encumbrance Type Identifier
44689  , p_source_108            IN NUMBER
44690 --Prepayment Payment Currency Code
44691  , p_source_109            IN VARCHAR2
44692 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
44693  , p_source_110            IN NUMBER
44694 --Prepayment Payment Exchange Date
44695  , p_source_128            IN DATE
44696 --Prepayment Payment Exchange Rate
44697  , p_source_129            IN NUMBER
44698 --Prepayment Payment Exchange Rate Type
44699  , p_source_130            IN VARCHAR2
44700 )
44701 IS
44702 
44703 l_component_type              VARCHAR2(80);
44704 l_component_code              VARCHAR2(30);
44705 l_component_type_code         VARCHAR2(1);
44706 l_component_appl_id           INTEGER;
44707 l_amb_context_code            VARCHAR2(30);
44708 l_entity_code                 VARCHAR2(30);
44709 l_event_class_code            VARCHAR2(30);
44710 l_ae_header_id                NUMBER;
44711 l_event_type_code             VARCHAR2(30);
44712 l_line_definition_code        VARCHAR2(30);
44713 l_line_definition_owner_code  VARCHAR2(1);
44714 --
44715 -- adr variables
44716 l_segment                     VARCHAR2(30);
44717 l_ccid                        NUMBER;
44718 l_adr_transaction_coa_id      NUMBER;
44719 l_adr_accounting_coa_id       NUMBER;
44720 l_adr_flexfield_segment_code  VARCHAR2(30);
44721 l_adr_flex_value_set_id       NUMBER;
44722 l_adr_value_type_code         VARCHAR2(30);
44723 l_adr_value_combination_id    NUMBER;
44724 l_adr_value_segment_code      VARCHAR2(30);
44725 
44726 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
44727 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
44728 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
44729 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
44730 
44731 -- 4262811 Variables ------------------------------------------------------------------------------------------
44732 l_entered_amt_idx             NUMBER;
44733 l_accted_amt_idx              NUMBER;
44734 l_acc_rev_flag                VARCHAR2(1);
44735 l_accrual_line_num            NUMBER;
44736 l_tmp_amt                     NUMBER;
44737 l_acc_rev_natural_side_code   VARCHAR2(1);
44738 
44739 l_num_entries                 NUMBER;
44740 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
44744 l_recog_line_1                NUMBER;
44741 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
44742 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
44743 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
44745 l_recog_line_2                NUMBER;
44746 
44747 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
44748 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
44749 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
44750 
44751 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44752 
44753 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
44754 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
44755 
44756 ---------------------------------------------------------------------------------------------------------------
44757 
44758 
44759 --
44760 -- bulk performance
44761 --
44762 l_balance_type_code           VARCHAR2(1);
44763 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
44764 l_log_module                  VARCHAR2(240);
44765 
44766 --
44767 -- Upgrade strategy
44768 --
44769 l_actual_upg_option           VARCHAR2(1);
44770 l_enc_upg_option           VARCHAR2(1);
44771 
44772 --
44773 BEGIN
44774 --
44775 IF g_log_enabled THEN
44776       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_91';
44777 END IF;
44778 --
44779 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44780 
44781       trace
44782          (p_msg      => 'BEGIN of AcctLineType_91'
44783          ,p_level    => C_LEVEL_PROCEDURE
44784          ,p_module   => l_log_module);
44785 
44786 END IF;
44787 --
44788 l_component_type             := 'AMB_JLT';
44789 l_component_code             := 'AP_FREIGHT_PREPAY_PAY_RATE_APP';
44790 l_component_type_code        := 'S';
44791 l_component_appl_id          :=  200;
44792 l_amb_context_code           := 'DEFAULT';
44793 l_entity_code                := 'AP_INVOICES';
44794 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
44795 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
44796 l_line_definition_owner_code := 'S';
44797 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
44798 --
44799 l_balance_type_code          := 'A';
44800 l_segment                     := NULL;
44801 l_ccid                        := NULL;
44802 l_adr_transaction_coa_id      := NULL;
44803 l_adr_accounting_coa_id       := NULL;
44804 l_adr_flexfield_segment_code  := NULL;
44805 l_adr_flex_value_set_id       := NULL;
44806 l_adr_value_type_code         := NULL;
44807 l_adr_value_combination_id    := NULL;
44808 l_adr_value_segment_code      := NULL;
44809 
44810 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
44811 l_bflow_class_code           := '';    -- 4219869 Business Flow
44812 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
44813 l_budgetary_control_flag     := 'N';
44814 
44815 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
44816 l_bflow_applied_to_amt       := NULL; -- 5132302
44817 l_entered_amt_idx            := NULL;          -- 4262811
44818 l_accted_amt_idx             := NULL;          -- 4262811
44819 l_acc_rev_flag               := NULL;          -- 4262811
44820 l_accrual_line_num           := NULL;          -- 4262811
44821 l_tmp_amt                    := NULL;          -- 4262811
44822 --
44823  
44824 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44825     l_balance_type_code <> 'B' THEN
44826 IF NVL(p_source_50,'
44827 ') <>  'CLEAR_CLEAR' AND 
44828 (NVL(p_source_78,'
44829 ') =  'PREPAY APPL' OR 
44830 NVL(p_source_78,'
44831 ') =  'PREPAY APPL NONREC TAX' OR 
44832 NVL(p_source_78,'
44833 ') =  'PREPAY APPL REC TAX') AND 
44834 NVL(p_source_79,'
44835 ') =  'FREIGHT'
44836  THEN 
44837 
44838    --
44839    XLA_AE_LINES_PKG.SetNewLine;
44840 
44841    p_balance_type_code          := l_balance_type_code;
44842    -- set the flag so later we will know whether the gain loss line needs to be created
44843    
44844    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44845      p_actual_flag :='A';
44846    END IF;
44847 
44848    --
44849    -- bulk performance
44850    --
44851    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44852                                       p_header_num   => 0); -- 4262811
44853    --
44854    -- set accounting line options
44855    --
44856    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44857            p_natural_side_code          => 'C'
44858          , p_gain_or_loss_flag          => 'N'
44859          , p_gl_transfer_mode_code      => 'S'
44860          , p_acct_entry_type_code       => 'A'
44861          , p_switch_side_flag           => 'Y'
44862          , p_merge_duplicate_code       => 'A'
44863          );
44864    --
44865    l_acc_rev_natural_side_code := 'D';  -- 4262811
44866    -- 
44867    --
44868    -- set accounting line type info
44869    --
44870    xla_ae_lines_pkg.SetAcctLineType
44871       (p_component_type             => l_component_type
44872       ,p_event_type_code            => l_event_type_code
44873       ,p_line_definition_owner_code => l_line_definition_owner_code
44877       ,p_accounting_line_appl_id    => l_component_appl_id
44874       ,p_line_definition_code       => l_line_definition_code
44875       ,p_accounting_line_code       => l_component_code
44876       ,p_accounting_line_type_code  => l_component_type_code
44878       ,p_amb_context_code           => l_amb_context_code
44879       ,p_entity_code                => l_entity_code
44880       ,p_event_class_code           => l_event_class_code);
44881    --
44882    -- set accounting class
44883    --
44884    xla_ae_lines_pkg.SetAcctClass(
44885            p_accounting_class_code  => 'FREIGHT'
44886          , p_ae_header_id           => l_ae_header_id
44887          );
44888 
44889    --
44890    -- set rounding class
44891    --
44892    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44893                       'FREIGHT';
44894 
44895    --
44896    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44897    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44898    --
44899    -- bulk performance
44900    --
44901    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44902 
44903    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44904       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44905 
44906    -- 4955764
44907    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44908       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44909 
44910    -- 4458381 Public Sector Enh
44911    
44912    --
44913    -- set accounting attributes for the line type
44914    --
44915    l_entered_amt_idx := 25;
44916    l_accted_amt_idx  := 30;
44917    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
44918    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44919    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
44920    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
44921    l_rec_acct_attrs.array_num_value(2)  := 
44922 xla_ae_sources_pkg.GetSystemSourceNum(
44923    p_source_code           => 'XLA_EVENT_APPL_ID'
44924  , p_source_type_code      => 'Y'
44925  , p_source_application_id =>  602
44926 );
44927    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
44928    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
44929    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
44930    l_rec_acct_attrs.array_char_value(4)  := 
44931 xla_ae_sources_pkg.GetSystemSourceChar(
44932    p_source_code           => 'XLA_ENTITY_CODE'
44933  , p_source_type_code      => 'Y'
44934  , p_source_application_id =>  602
44935 );
44936    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
44937    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
44938    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
44939    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
44940    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
44941    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
44942    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44943    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
44944    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
44945    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
44946    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
44947    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
44948    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44949    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
44950    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
44951    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
44952    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
44953    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
44954    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
44955    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
44956    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
44957    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
44958    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
44959    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
44960    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
44961    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
44962    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
44963    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
44964    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
44965    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
44966    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
44967    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
44968    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
44969    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
44970    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
44971    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
44972    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
44973    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
44974    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
44978    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
44975    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
44976    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
44977    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
44979    l_rec_acct_attrs.array_char_value(26)  := p_source_109;
44980    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
44981    l_rec_acct_attrs.array_date_value(27)  := p_source_128;
44982    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
44983    l_rec_acct_attrs.array_num_value(28)  := p_source_129;
44984    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
44985    l_rec_acct_attrs.array_char_value(29)  := p_source_130;
44986    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
44987    l_rec_acct_attrs.array_num_value(30)  := p_source_110;
44988    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
44989    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
44990    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
44991    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
44992    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
44993    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
44994    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
44995    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
44996    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
44997    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
44998    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
44999    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
45000    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
45001    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
45002    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
45003    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
45004    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
45005    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
45006    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
45007    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
45008    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
45009    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
45010    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
45011    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
45012    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
45013    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
45014    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
45015    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
45016 
45017    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45018    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45019 
45020    ---------------------------------------------------------------------------------------------------------------
45021    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45022    ---------------------------------------------------------------------------------------------------------------
45023    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45024 
45025    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45026    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45027 
45028    IF xla_accounting_cache_pkg.GetValueChar
45029          (p_source_code         => 'LEDGER_CATEGORY_CODE'
45030          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45031    AND l_bflow_method_code = 'PRIOR_ENTRY'
45032 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45033    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45034          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45035        )
45036    THEN
45037          xla_ae_lines_pkg.BflowUpgEntry
45038            (p_business_method_code    => l_bflow_method_code
45039            ,p_business_class_code     => l_bflow_class_code
45040            ,p_balance_type            => l_balance_type_code);
45041    ELSE
45042       NULL;
45043 -- No business flow processing for business flow method of NONE.
45044    END IF;
45045 
45046    --
45047    -- call analytical criteria
45048    --
45049    
45050    --
45051    -- call description
45052    --
45053    -- No description or it is inherited.
45054    --
45055    -- call ADRs
45056    -- Bug 4922099
45057    --
45058    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45059         (NVL(l_actual_upg_option, 'N') = 'O') OR
45060         (NVL(l_enc_upg_option, 'N') = 'O')
45061       )
45062    THEN
45063    NULL;
45064    --
45065    --
45066    
45067   l_ccid := AcctDerRule_35(
45068            p_application_id           => p_application_id
45069          , p_ae_header_id             => l_ae_header_id 
45070 , p_source_48 => p_source_48
45071          , x_transaction_coa_id       => l_adr_transaction_coa_id
45072          , x_accounting_coa_id        => l_adr_accounting_coa_id
45073          , x_value_type_code          => l_adr_value_type_code
45074          , p_side                     => 'NA'
45075    );
45076 
45077    xla_ae_lines_pkg.set_ccid(
45078     p_code_combination_id          => l_ccid
45079   , p_value_type_code              => l_adr_value_type_code
45083   , p_adr_type_code                => 'S'
45080   , p_transaction_coa_id           => l_adr_transaction_coa_id
45081   , p_accounting_coa_id            => l_adr_accounting_coa_id
45082   , p_adr_code                     => 'AP_RECP_INV_DIST'
45084   , p_component_type               => l_component_type
45085   , p_component_code               => l_component_code
45086   , p_component_type_code          => l_component_type_code
45087   , p_component_appl_id            => l_component_appl_id
45088   , p_amb_context_code             => l_amb_context_code
45089   , p_side                         => 'NA'
45090   );
45091 
45092 
45093    --
45094    --
45095    END IF;
45096    --
45097    -- Bug 4922099
45098    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45099           (NVL(l_enc_upg_option, 'N') = 'O')
45100         ) AND
45101         (l_bflow_method_code = 'PRIOR_ENTRY')
45102       )
45103    THEN
45104       IF
45105       --
45106       1 = 2
45107       --
45108       THEN
45109       xla_accounting_err_pkg.build_message
45110                                     (p_appli_s_name            => 'XLA'
45111                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45112                                     ,p_token_1                 => 'LINE_NUMBER'
45113                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
45114                                     ,p_token_2                 => 'LINE_TYPE_NAME'
45115                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
45116                                                                              l_component_type
45117                                                                             ,l_component_code
45118                                                                             ,l_component_type_code
45119                                                                             ,l_component_appl_id
45120                                                                             ,l_amb_context_code
45121                                                                             ,l_entity_code
45122                                                                             ,l_event_class_code
45123                                                                            )
45124                                     ,p_token_3                 => 'OWNER'
45125                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
45126                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
45127                                                                           ,p_lookup_code    => l_component_type_code
45128                                                                          )
45129                                     ,p_token_4                 => 'PRODUCT_NAME'
45130                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45131                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45132                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45133                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45134                                     ,p_ae_header_id            =>  NULL
45135                                        );
45136 
45137         IF (C_LEVEL_ERROR>= g_log_level) THEN
45138                  trace
45139                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45140                       ,p_level    => C_LEVEL_ERROR
45141                       ,p_module   => l_log_module);
45142         END IF;
45143       END IF;
45144    END IF;
45145    --
45146    --
45147    ------------------------------------------------------------------------------------------------
45148    -- 4219869 Business Flow
45149    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45150    -- Prior Entry.  Currently, the following code is always generated.
45151    ------------------------------------------------------------------------------------------------
45152    XLA_AE_LINES_PKG.ValidateCurrentLine;
45153 
45154    ------------------------------------------------------------------------------------
45155    -- 4219869 Business Flow
45156    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45157    ------------------------------------------------------------------------------------
45158    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45159 
45160    ----------------------------------------------------------------------------------
45161    -- 4219869 Business Flow
45162    -- Update journal entry status -- Need to generate this within IF <condition>
45163    ----------------------------------------------------------------------------------
45164    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45165          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45166          ,p_balance_type_code => l_balance_type_code
45167          );
45168 
45169    -------------------------------------------------------------------------------------------
45170    -- 4262811 - Generate the Accrual Reversal lines
45171    -------------------------------------------------------------------------------------------
45172    BEGIN
45173       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45177       END IF;
45174                               (g_array_event(p_event_id).array_value_num('header_index'));
45175       IF l_acc_rev_flag IS NULL THEN
45176          l_acc_rev_flag := 'N';
45178    EXCEPTION
45179       WHEN OTHERS THEN
45180          l_acc_rev_flag := 'N';
45181    END;
45182    --
45183    IF (l_acc_rev_flag = 'Y') THEN
45184 
45185        -- 4645092  ------------------------------------------------------------------------------
45186        -- To allow MPA report to determine if it should generate report process
45187        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45188        ------------------------------------------------------------------------------------------
45189 
45190        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45191        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45192    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
45193    -- call ADRs
45194    -- Bug 4922099
45195    --
45196    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45197         (NVL(l_actual_upg_option, 'N') = 'O') OR
45198         (NVL(l_enc_upg_option, 'N') = 'O')
45199       )
45200    THEN
45201    NULL;
45202    --
45203    --
45204    
45205   l_ccid := AcctDerRule_35(
45206            p_application_id           => p_application_id
45207          , p_ae_header_id             => l_ae_header_id 
45208 , p_source_48 => p_source_48
45209          , x_transaction_coa_id       => l_adr_transaction_coa_id
45210          , x_accounting_coa_id        => l_adr_accounting_coa_id
45211          , x_value_type_code          => l_adr_value_type_code
45212          , p_side                     => 'NA'
45213    );
45214 
45215    xla_ae_lines_pkg.set_ccid(
45216     p_code_combination_id          => l_ccid
45217   , p_value_type_code              => l_adr_value_type_code
45218   , p_transaction_coa_id           => l_adr_transaction_coa_id
45219   , p_accounting_coa_id            => l_adr_accounting_coa_id
45220   , p_adr_code                     => 'AP_RECP_INV_DIST'
45221   , p_adr_type_code                => 'S'
45222   , p_component_type               => l_component_type
45223   , p_component_code               => l_component_code
45224   , p_component_type_code          => l_component_type_code
45225   , p_component_appl_id            => l_component_appl_id
45226   , p_amb_context_code             => l_amb_context_code
45227   , p_side                         => 'NA'
45228   );
45229 
45230 
45231    --
45232    --
45233    END IF;
45234 
45235        --
45236        -- Update the line information that should be overwritten
45237        --
45238        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45239                                          p_header_num   => 1);
45240        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
45241 
45242        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45243 
45244        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
45245           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45246        END IF;
45247 
45248       --
45249       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45250       --
45251       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45252           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
45253       ELSE
45254           ---------------------------------------------------------------------------------------------------
45255           -- 4262811a Switch Sign
45256           ---------------------------------------------------------------------------------------------------
45257           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
45258           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45259                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45260           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45261                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45262           -- 5132302
45263           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45264                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45265 
45266       END IF;
45267 
45268       -- 4955764
45269       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45270       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45271 
45272 
45273       XLA_AE_LINES_PKG.ValidateCurrentLine;
45274       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45275 
45276       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45277                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45278                ,p_balance_type_code => l_balance_type_code);
45279 
45280    END IF;
45281 
45282    -----------------------------------------------------------------------------------------
45283    -- 4262811 Multiperiod Accounting
45284    -----------------------------------------------------------------------------------------
45285      -- No MPA option is assigned.
45286 
45287 
45288 END IF;
45289 END IF;
45290 --
45291 
45295       (p_msg      => 'END of AcctLineType_91'
45292 --
45293 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45294    trace
45296       ,p_level    => C_LEVEL_PROCEDURE
45297       ,p_module   => l_log_module);
45298 END IF;
45299 --
45300 EXCEPTION
45301   WHEN xla_exceptions_pkg.application_exception THEN
45302       RAISE;
45303   WHEN OTHERS THEN
45304        xla_exceptions_pkg.raise_message
45305            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_91');
45306 END AcctLineType_91;
45307 --
45308 
45309 ---------------------------------------
45310 --
45311 -- PRIVATE FUNCTION
45312 --         AcctLineType_92
45313 --
45314 ---------------------------------------
45315 PROCEDURE AcctLineType_92 (
45316   p_application_id        IN NUMBER
45317  ,p_event_id              IN NUMBER
45318  ,p_calculate_acctd_flag  IN VARCHAR2
45319  ,p_calculate_g_l_flag    IN VARCHAR2
45320  ,p_actual_flag           IN OUT VARCHAR2
45321  ,p_balance_type_code     OUT VARCHAR2
45322  ,p_gain_or_loss_ref      OUT VARCHAR2
45323  
45324 --Payment Currency Code
45325  , p_source_12            IN VARCHAR2
45326 --Automatic Offsets Value
45327  , p_source_16            IN VARCHAR2
45328  , p_source_16_meaning    IN VARCHAR2
45329 --Payment Distribution (Payment Rate) Ledger Amount
45330  , p_source_21            IN NUMBER
45331 --Bank Future Dated Payment Account
45332  , p_source_23            IN NUMBER
45333 --Future Dated Payment Account Source Option
45334  , p_source_24            IN VARCHAR2
45335  , p_source_24_meaning    IN VARCHAR2
45336 --Financials Options Future Dated Payment Account
45337  , p_source_25            IN NUMBER
45338 --Supplier Site Future Dated Payment Account
45339  , p_source_26            IN NUMBER
45340 --Invoice Distribution Account
45341  , p_source_29            IN NUMBER
45342 --When to Account for Payment Option
45343  , p_source_50            IN VARCHAR2
45344 --Payment Distribution Type
45345  , p_source_51            IN VARCHAR2
45346  , p_source_51_meaning    IN VARCHAR2
45347 --Accounting Reversal Indicator
45348  , p_source_52            IN VARCHAR2
45349 --Payment Distribution Amount
45350  , p_source_53            IN NUMBER
45351 --Business Flow Accounts Payable Application Identifier
45352  , p_source_54            IN NUMBER
45353 --Payment Distribution Identifier
45354  , p_source_59            IN NUMBER
45355 --Distribution Link Type
45356  , p_source_60            IN VARCHAR2
45357 --Override Accounted Amount Indicator
45358  , p_source_64            IN VARCHAR2
45359  , p_source_64_meaning    IN VARCHAR2
45360 --Payment Supplier Identifier
45361  , p_source_65            IN NUMBER
45362 --Payment Supplier Site Identifier
45363  , p_source_66            IN NUMBER
45364 --Third Party Type
45365  , p_source_67            IN VARCHAR2
45366 --Payment Distribution Reversed Identifier
45367  , p_source_68            IN NUMBER
45368 --Invoice Distribution Tax Line Identifier
45369  , p_source_69            IN NUMBER
45370 --Invoice Distribution Summary Tax Line Identifier
45371  , p_source_70            IN NUMBER
45372 --Invoice Distribution Amount of the Payment Distribution
45373  , p_source_72            IN NUMBER
45374 --Business Flow Invoice Distribution Type
45375  , p_source_73            IN VARCHAR2
45376 --Business Flow Invoice Entity Code
45377  , p_source_74            IN VARCHAR2
45378 --Business Flow Invoice Distribution Identifier
45379  , p_source_75            IN NUMBER
45380 --Business Flow Invoice Identifier
45381  , p_source_76            IN NUMBER
45382 --Invoice Distribution Tax Distribution Identifier from Tax
45383  , p_source_77            IN NUMBER
45384 --Payment Maturity Date
45385  , p_source_118            IN DATE
45386 --Payment Processing Type
45387  , p_source_120            IN VARCHAR2
45388 --Payment Exchange Date
45389  , p_source_121            IN DATE
45390 --Payment Exchange Rate
45391  , p_source_122            IN NUMBER
45392 --Payment Exchange Rate Type
45393  , p_source_123            IN VARCHAR2
45394 )
45395 IS
45396 
45397 l_component_type              VARCHAR2(80);
45398 l_component_code              VARCHAR2(30);
45399 l_component_type_code         VARCHAR2(1);
45400 l_component_appl_id           INTEGER;
45401 l_amb_context_code            VARCHAR2(30);
45402 l_entity_code                 VARCHAR2(30);
45403 l_event_class_code            VARCHAR2(30);
45404 l_ae_header_id                NUMBER;
45405 l_event_type_code             VARCHAR2(30);
45406 l_line_definition_code        VARCHAR2(30);
45407 l_line_definition_owner_code  VARCHAR2(1);
45408 --
45409 -- adr variables
45410 l_segment                     VARCHAR2(30);
45411 l_ccid                        NUMBER;
45412 l_adr_transaction_coa_id      NUMBER;
45413 l_adr_accounting_coa_id       NUMBER;
45414 l_adr_flexfield_segment_code  VARCHAR2(30);
45415 l_adr_flex_value_set_id       NUMBER;
45416 l_adr_value_type_code         VARCHAR2(30);
45417 l_adr_value_combination_id    NUMBER;
45418 l_adr_value_segment_code      VARCHAR2(30);
45419 
45420 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
45421 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
45422 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
45423 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
45424 
45428 l_acc_rev_flag                VARCHAR2(1);
45425 -- 4262811 Variables ------------------------------------------------------------------------------------------
45426 l_entered_amt_idx             NUMBER;
45427 l_accted_amt_idx              NUMBER;
45429 l_accrual_line_num            NUMBER;
45430 l_tmp_amt                     NUMBER;
45431 l_acc_rev_natural_side_code   VARCHAR2(1);
45432 
45433 l_num_entries                 NUMBER;
45434 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
45435 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
45436 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
45437 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
45438 l_recog_line_1                NUMBER;
45439 l_recog_line_2                NUMBER;
45440 
45441 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
45442 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
45443 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
45444 
45445 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45446 
45447 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
45448 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
45449 
45450 ---------------------------------------------------------------------------------------------------------------
45451 
45452 
45453 --
45454 -- bulk performance
45455 --
45456 l_balance_type_code           VARCHAR2(1);
45457 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
45458 l_log_module                  VARCHAR2(240);
45459 
45460 --
45461 -- Upgrade strategy
45462 --
45463 l_actual_upg_option           VARCHAR2(1);
45464 l_enc_upg_option           VARCHAR2(1);
45465 
45466 --
45467 BEGIN
45468 --
45469 IF g_log_enabled THEN
45470       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_92';
45471 END IF;
45472 --
45473 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45474 
45475       trace
45476          (p_msg      => 'BEGIN of AcctLineType_92'
45477          ,p_level    => C_LEVEL_PROCEDURE
45478          ,p_module   => l_log_module);
45479 
45480 END IF;
45481 --
45482 l_component_type             := 'AMB_JLT';
45483 l_component_code             := 'AP_FUTURE_DATED_PMT';
45484 l_component_type_code        := 'S';
45485 l_component_appl_id          :=  200;
45486 l_amb_context_code           := 'DEFAULT';
45487 l_entity_code                := 'AP_PAYMENTS';
45488 l_event_class_code           := 'PAYMENTS';
45489 l_event_type_code            := 'PAYMENTS_ALL';
45490 l_line_definition_owner_code := 'S';
45491 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
45492 --
45493 l_balance_type_code          := 'A';
45494 l_segment                     := NULL;
45495 l_ccid                        := NULL;
45496 l_adr_transaction_coa_id      := NULL;
45497 l_adr_accounting_coa_id       := NULL;
45498 l_adr_flexfield_segment_code  := NULL;
45499 l_adr_flex_value_set_id       := NULL;
45500 l_adr_value_type_code         := NULL;
45501 l_adr_value_combination_id    := NULL;
45502 l_adr_value_segment_code      := NULL;
45503 
45504 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
45505 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
45506 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
45507 l_budgetary_control_flag     := 'N';
45508 
45509 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
45510 l_bflow_applied_to_amt       := NULL; -- 5132302
45511 l_entered_amt_idx            := NULL;          -- 4262811
45512 l_accted_amt_idx             := NULL;          -- 4262811
45513 l_acc_rev_flag               := NULL;          -- 4262811
45514 l_accrual_line_num           := NULL;          -- 4262811
45515 l_tmp_amt                    := NULL;          -- 4262811
45516 --
45517  
45518 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45519     l_balance_type_code <> 'B' THEN
45520 IF NVL(p_source_50,'
45521 ') <>  'CLEAR_CLEAR' AND 
45522 NVL(p_source_50,'
45523 ') <>  'ALWAYS_CLEAR' AND 
45524 NVL(p_source_51,'
45525 ') =  'CASH' AND 
45526 p_source_118 IS NOT NULL AND 
45527 NVL(p_source_120,'
45528 ') <>  'PAYMENTCARD'
45529  THEN 
45530 
45531    --
45532    XLA_AE_LINES_PKG.SetNewLine;
45533 
45534    p_balance_type_code          := l_balance_type_code;
45535    -- set the flag so later we will know whether the gain loss line needs to be created
45536    
45537    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45538      p_actual_flag :='A';
45539    END IF;
45540 
45541    --
45542    -- bulk performance
45543    --
45544    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45545                                       p_header_num   => 0); -- 4262811
45546    --
45547    -- set accounting line options
45548    --
45549    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45550            p_natural_side_code          => 'C'
45551          , p_gain_or_loss_flag          => 'N'
45552          , p_gl_transfer_mode_code      => 'S'
45553          , p_acct_entry_type_code       => 'A'
45554          , p_switch_side_flag           => 'Y'
45555          , p_merge_duplicate_code       => 'A'
45556          );
45560    --
45557    --
45558    l_acc_rev_natural_side_code := 'D';  -- 4262811
45559    -- 
45561    -- set accounting line type info
45562    --
45563    xla_ae_lines_pkg.SetAcctLineType
45564       (p_component_type             => l_component_type
45565       ,p_event_type_code            => l_event_type_code
45566       ,p_line_definition_owner_code => l_line_definition_owner_code
45567       ,p_line_definition_code       => l_line_definition_code
45568       ,p_accounting_line_code       => l_component_code
45569       ,p_accounting_line_type_code  => l_component_type_code
45570       ,p_accounting_line_appl_id    => l_component_appl_id
45571       ,p_amb_context_code           => l_amb_context_code
45572       ,p_entity_code                => l_entity_code
45573       ,p_event_class_code           => l_event_class_code);
45574    --
45575    -- set accounting class
45576    --
45577    xla_ae_lines_pkg.SetAcctClass(
45578            p_accounting_class_code  => 'FUTURE_DATED_PMT'
45579          , p_ae_header_id           => l_ae_header_id
45580          );
45581 
45582    --
45583    -- set rounding class
45584    --
45585    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45586                       'FUTURE_DATED_PMT';
45587 
45588    --
45589    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45590    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45591    --
45592    -- bulk performance
45593    --
45594    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45595 
45596    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45597       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45598 
45599    -- 4955764
45600    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45601       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45602 
45603    -- 4458381 Public Sector Enh
45604    
45605    --
45606    -- set accounting attributes for the line type
45607    --
45608    l_entered_amt_idx := 10;
45609    l_accted_amt_idx  := 15;
45610    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
45611    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45612    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
45613    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
45614    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
45615    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
45616    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
45617    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45618    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
45619    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
45620    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
45621    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
45622    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
45623    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45624    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
45625    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
45626    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
45627    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
45628    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
45629    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
45630    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
45631    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
45632    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
45633    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
45634    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
45635    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
45636    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
45637    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
45638    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
45639    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
45640    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
45641    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
45642    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
45643    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
45644    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
45645    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
45646    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
45647    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
45648    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
45649    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
45650    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
45651    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
45652    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
45653    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
45654    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
45655    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
45656    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
45657    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
45661    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45658    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
45659 
45660    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45662 
45663    ---------------------------------------------------------------------------------------------------------------
45664    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45665    ---------------------------------------------------------------------------------------------------------------
45666    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45667 
45668    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45669    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45670 
45671    IF xla_accounting_cache_pkg.GetValueChar
45672          (p_source_code         => 'LEDGER_CATEGORY_CODE'
45673          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45674    AND l_bflow_method_code = 'PRIOR_ENTRY'
45675 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45676    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45677          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45678        )
45679    THEN
45680          xla_ae_lines_pkg.BflowUpgEntry
45681            (p_business_method_code    => l_bflow_method_code
45682            ,p_business_class_code     => l_bflow_class_code
45683            ,p_balance_type            => l_balance_type_code);
45684    ELSE
45685       NULL;
45686 -- No business flow processing for business flow method of NONE.
45687    END IF;
45688 
45689    --
45690    -- call analytical criteria
45691    --
45692    
45693    --
45694    -- call description
45695    --
45696    -- No description or it is inherited.
45697    --
45698    -- call ADRs
45699    -- Bug 4922099
45700    --
45701    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45702         (NVL(l_actual_upg_option, 'N') = 'O') OR
45703         (NVL(l_enc_upg_option, 'N') = 'O')
45704       )
45705    THEN
45706    NULL;
45707    --
45708    --
45709    
45710   l_ccid := AcctDerRule_26(
45711            p_application_id           => p_application_id
45712          , p_ae_header_id             => l_ae_header_id 
45713 , p_source_16 => p_source_16
45714 , p_source_16_meaning => p_source_16_meaning
45715 , p_source_23 => p_source_23
45716 , p_source_24 => p_source_24
45717 , p_source_24_meaning => p_source_24_meaning
45718 , p_source_25 => p_source_25
45719 , p_source_26 => p_source_26
45720 , p_source_29 => p_source_29
45721          , x_transaction_coa_id       => l_adr_transaction_coa_id
45722          , x_accounting_coa_id        => l_adr_accounting_coa_id
45723          , x_value_type_code          => l_adr_value_type_code
45724          , p_side                     => 'NA'
45725    );
45726 
45727    xla_ae_lines_pkg.set_ccid(
45728     p_code_combination_id          => l_ccid
45729   , p_value_type_code              => l_adr_value_type_code
45730   , p_transaction_coa_id           => l_adr_transaction_coa_id
45731   , p_accounting_coa_id            => l_adr_accounting_coa_id
45732   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
45733   , p_adr_type_code                => 'S'
45734   , p_component_type               => l_component_type
45735   , p_component_code               => l_component_code
45736   , p_component_type_code          => l_component_type_code
45737   , p_component_appl_id            => l_component_appl_id
45738   , p_amb_context_code             => l_amb_context_code
45739   , p_side                         => 'NA'
45740   );
45741 
45742 
45743    l_segment := AcctDerRule_9(
45744            p_application_id           => p_application_id
45745          , p_ae_header_id             => l_ae_header_id 
45746 , p_source_16 => p_source_16
45747 , p_source_16_meaning => p_source_16_meaning
45748 , p_source_23 => p_source_23
45749 , p_source_24 => p_source_24
45750 , p_source_24_meaning => p_source_24_meaning
45751 , p_source_25 => p_source_25
45752 , p_source_26 => p_source_26
45753          , x_transaction_coa_id       => l_adr_transaction_coa_id
45754          , x_accounting_coa_id        => l_adr_accounting_coa_id
45755          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
45756          , x_flex_value_set_id        => l_adr_flex_value_set_id
45757          , x_value_type_code          => l_adr_value_type_code
45758          , x_value_combination_id     => l_adr_value_combination_id
45759          , x_value_segment_code       => l_adr_value_segment_code
45760          , p_side                     => 'NA'
45761          , p_override_seg_flag        => 'Y'
45762    );
45763 
45764    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
45765 
45766       xla_ae_lines_pkg.set_segment(
45767           p_to_segment_code         => 'GL_ACCOUNT'
45768         , p_segment_value           => l_segment
45769         , p_from_segment_code       => l_adr_value_segment_code
45770         , p_from_combination_id     => l_adr_value_combination_id
45771         , p_value_type_code         => l_adr_value_type_code
45772         , p_transaction_coa_id      => l_adr_transaction_coa_id
45773         , p_accounting_coa_id       => l_adr_accounting_coa_id
45774         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
45775         , p_flex_value_set_id       => l_adr_flex_value_set_id
45779         , p_component_code          => l_component_code
45776         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
45777         , p_adr_type_code           => 'S'
45778         , p_component_type          => l_component_type
45780         , p_component_type_code     => l_component_type_code
45781         , p_component_appl_id       => l_component_appl_id
45782         , p_amb_context_code        => l_amb_context_code
45783         , p_entity_code             => 'AP_PAYMENTS'
45784         , p_event_class_code        => 'PAYMENTS'
45785         , p_side                    => 'NA'
45786         );
45787 
45788   END IF;
45789 
45790    l_segment := AcctDerRule_16(
45791            p_application_id           => p_application_id
45792          , p_ae_header_id             => l_ae_header_id 
45793 , p_source_16 => p_source_16
45794 , p_source_16_meaning => p_source_16_meaning
45795 , p_source_29 => p_source_29
45796          , x_transaction_coa_id       => l_adr_transaction_coa_id
45797          , x_accounting_coa_id        => l_adr_accounting_coa_id
45798          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
45799          , x_flex_value_set_id        => l_adr_flex_value_set_id
45800          , x_value_type_code          => l_adr_value_type_code
45801          , x_value_combination_id     => l_adr_value_combination_id
45802          , x_value_segment_code       => l_adr_value_segment_code
45803          , p_side                     => 'NA'
45804          , p_override_seg_flag        => 'Y'
45805    );
45806 
45807    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
45808 
45809       xla_ae_lines_pkg.set_segment(
45810           p_to_segment_code         => 'GL_BALANCING'
45811         , p_segment_value           => l_segment
45812         , p_from_segment_code       => l_adr_value_segment_code
45813         , p_from_combination_id     => l_adr_value_combination_id
45814         , p_value_type_code         => l_adr_value_type_code
45815         , p_transaction_coa_id      => l_adr_transaction_coa_id
45816         , p_accounting_coa_id       => l_adr_accounting_coa_id
45817         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
45818         , p_flex_value_set_id       => l_adr_flex_value_set_id
45819         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
45820         , p_adr_type_code           => 'S'
45821         , p_component_type          => l_component_type
45822         , p_component_code          => l_component_code
45823         , p_component_type_code     => l_component_type_code
45824         , p_component_appl_id       => l_component_appl_id
45825         , p_amb_context_code        => l_amb_context_code
45826         , p_entity_code             => 'AP_PAYMENTS'
45827         , p_event_class_code        => 'PAYMENTS'
45828         , p_side                    => 'NA'
45829         );
45830 
45831   END IF;
45832 
45833    --
45834    --
45835    END IF;
45836    --
45837    -- Bug 4922099
45838    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45839           (NVL(l_enc_upg_option, 'N') = 'O')
45840         ) AND
45841         (l_bflow_method_code = 'PRIOR_ENTRY')
45842       )
45843    THEN
45844       IF
45845       --
45846       1 = 2
45847       --
45848       THEN
45849       xla_accounting_err_pkg.build_message
45850                                     (p_appli_s_name            => 'XLA'
45851                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45852                                     ,p_token_1                 => 'LINE_NUMBER'
45853                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
45854                                     ,p_token_2                 => 'LINE_TYPE_NAME'
45855                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
45856                                                                              l_component_type
45857                                                                             ,l_component_code
45858                                                                             ,l_component_type_code
45859                                                                             ,l_component_appl_id
45860                                                                             ,l_amb_context_code
45861                                                                             ,l_entity_code
45862                                                                             ,l_event_class_code
45863                                                                            )
45864                                     ,p_token_3                 => 'OWNER'
45865                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
45866                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
45867                                                                           ,p_lookup_code    => l_component_type_code
45868                                                                          )
45869                                     ,p_token_4                 => 'PRODUCT_NAME'
45870                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45871                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45872                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45873                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45877         IF (C_LEVEL_ERROR>= g_log_level) THEN
45874                                     ,p_ae_header_id            =>  NULL
45875                                        );
45876 
45878                  trace
45879                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45880                       ,p_level    => C_LEVEL_ERROR
45881                       ,p_module   => l_log_module);
45882         END IF;
45883       END IF;
45884    END IF;
45885    --
45886    --
45887    ------------------------------------------------------------------------------------------------
45888    -- 4219869 Business Flow
45889    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45890    -- Prior Entry.  Currently, the following code is always generated.
45891    ------------------------------------------------------------------------------------------------
45892    XLA_AE_LINES_PKG.ValidateCurrentLine;
45893 
45894    ------------------------------------------------------------------------------------
45895    -- 4219869 Business Flow
45896    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45897    ------------------------------------------------------------------------------------
45898    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45899 
45900    ----------------------------------------------------------------------------------
45901    -- 4219869 Business Flow
45902    -- Update journal entry status -- Need to generate this within IF <condition>
45903    ----------------------------------------------------------------------------------
45904    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45905          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45906          ,p_balance_type_code => l_balance_type_code
45907          );
45908 
45909    -------------------------------------------------------------------------------------------
45910    -- 4262811 - Generate the Accrual Reversal lines
45911    -------------------------------------------------------------------------------------------
45912    BEGIN
45913       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45914                               (g_array_event(p_event_id).array_value_num('header_index'));
45915       IF l_acc_rev_flag IS NULL THEN
45916          l_acc_rev_flag := 'N';
45917       END IF;
45918    EXCEPTION
45919       WHEN OTHERS THEN
45920          l_acc_rev_flag := 'N';
45921    END;
45922    --
45923    IF (l_acc_rev_flag = 'Y') THEN
45924 
45925        -- 4645092  ------------------------------------------------------------------------------
45926        -- To allow MPA report to determine if it should generate report process
45927        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45928        ------------------------------------------------------------------------------------------
45929 
45930        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45931        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45932    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
45933    -- call ADRs
45934    -- Bug 4922099
45935    --
45936    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45937         (NVL(l_actual_upg_option, 'N') = 'O') OR
45938         (NVL(l_enc_upg_option, 'N') = 'O')
45939       )
45940    THEN
45941    NULL;
45942    --
45943    --
45944    
45945   l_ccid := AcctDerRule_26(
45946            p_application_id           => p_application_id
45947          , p_ae_header_id             => l_ae_header_id 
45948 , p_source_16 => p_source_16
45949 , p_source_16_meaning => p_source_16_meaning
45950 , p_source_23 => p_source_23
45951 , p_source_24 => p_source_24
45952 , p_source_24_meaning => p_source_24_meaning
45953 , p_source_25 => p_source_25
45954 , p_source_26 => p_source_26
45955 , p_source_29 => p_source_29
45956          , x_transaction_coa_id       => l_adr_transaction_coa_id
45957          , x_accounting_coa_id        => l_adr_accounting_coa_id
45958          , x_value_type_code          => l_adr_value_type_code
45959          , p_side                     => 'NA'
45960    );
45961 
45962    xla_ae_lines_pkg.set_ccid(
45963     p_code_combination_id          => l_ccid
45964   , p_value_type_code              => l_adr_value_type_code
45965   , p_transaction_coa_id           => l_adr_transaction_coa_id
45966   , p_accounting_coa_id            => l_adr_accounting_coa_id
45967   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
45968   , p_adr_type_code                => 'S'
45969   , p_component_type               => l_component_type
45970   , p_component_code               => l_component_code
45971   , p_component_type_code          => l_component_type_code
45972   , p_component_appl_id            => l_component_appl_id
45973   , p_amb_context_code             => l_amb_context_code
45974   , p_side                         => 'NA'
45975   );
45976 
45977 
45978    l_segment := AcctDerRule_9(
45979            p_application_id           => p_application_id
45980          , p_ae_header_id             => l_ae_header_id 
45981 , p_source_16 => p_source_16
45982 , p_source_16_meaning => p_source_16_meaning
45983 , p_source_23 => p_source_23
45984 , p_source_24 => p_source_24
45985 , p_source_24_meaning => p_source_24_meaning
45986 , p_source_25 => p_source_25
45987 , p_source_26 => p_source_26
45988          , x_transaction_coa_id       => l_adr_transaction_coa_id
45989          , x_accounting_coa_id        => l_adr_accounting_coa_id
45990          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
45994          , x_value_segment_code       => l_adr_value_segment_code
45991          , x_flex_value_set_id        => l_adr_flex_value_set_id
45992          , x_value_type_code          => l_adr_value_type_code
45993          , x_value_combination_id     => l_adr_value_combination_id
45995          , p_side                     => 'NA'
45996          , p_override_seg_flag        => 'Y'
45997    );
45998 
45999    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
46000 
46001       xla_ae_lines_pkg.set_segment(
46002           p_to_segment_code         => 'GL_ACCOUNT'
46003         , p_segment_value           => l_segment
46004         , p_from_segment_code       => l_adr_value_segment_code
46005         , p_from_combination_id     => l_adr_value_combination_id
46006         , p_value_type_code         => l_adr_value_type_code
46007         , p_transaction_coa_id      => l_adr_transaction_coa_id
46008         , p_accounting_coa_id       => l_adr_accounting_coa_id
46009         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
46010         , p_flex_value_set_id       => l_adr_flex_value_set_id
46011         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
46012         , p_adr_type_code           => 'S'
46013         , p_component_type          => l_component_type
46014         , p_component_code          => l_component_code
46015         , p_component_type_code     => l_component_type_code
46016         , p_component_appl_id       => l_component_appl_id
46017         , p_amb_context_code        => l_amb_context_code
46018         , p_entity_code             => 'AP_PAYMENTS'
46019         , p_event_class_code        => 'PAYMENTS'
46020         , p_side                    => 'NA'
46021         );
46022 
46023   END IF;
46024 
46025    l_segment := AcctDerRule_16(
46026            p_application_id           => p_application_id
46027          , p_ae_header_id             => l_ae_header_id 
46028 , p_source_16 => p_source_16
46029 , p_source_16_meaning => p_source_16_meaning
46030 , p_source_29 => p_source_29
46031          , x_transaction_coa_id       => l_adr_transaction_coa_id
46032          , x_accounting_coa_id        => l_adr_accounting_coa_id
46033          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
46034          , x_flex_value_set_id        => l_adr_flex_value_set_id
46035          , x_value_type_code          => l_adr_value_type_code
46036          , x_value_combination_id     => l_adr_value_combination_id
46037          , x_value_segment_code       => l_adr_value_segment_code
46038          , p_side                     => 'NA'
46039          , p_override_seg_flag        => 'Y'
46040    );
46041 
46042    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
46043 
46044       xla_ae_lines_pkg.set_segment(
46045           p_to_segment_code         => 'GL_BALANCING'
46046         , p_segment_value           => l_segment
46047         , p_from_segment_code       => l_adr_value_segment_code
46048         , p_from_combination_id     => l_adr_value_combination_id
46049         , p_value_type_code         => l_adr_value_type_code
46050         , p_transaction_coa_id      => l_adr_transaction_coa_id
46051         , p_accounting_coa_id       => l_adr_accounting_coa_id
46052         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
46053         , p_flex_value_set_id       => l_adr_flex_value_set_id
46054         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
46055         , p_adr_type_code           => 'S'
46056         , p_component_type          => l_component_type
46057         , p_component_code          => l_component_code
46058         , p_component_type_code     => l_component_type_code
46059         , p_component_appl_id       => l_component_appl_id
46060         , p_amb_context_code        => l_amb_context_code
46061         , p_entity_code             => 'AP_PAYMENTS'
46062         , p_event_class_code        => 'PAYMENTS'
46063         , p_side                    => 'NA'
46064         );
46065 
46066   END IF;
46067 
46068    --
46069    --
46070    END IF;
46071 
46072        --
46073        -- Update the line information that should be overwritten
46074        --
46075        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46076                                          p_header_num   => 1);
46077        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
46078 
46079        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46080 
46081        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
46082           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46083        END IF;
46084 
46085       --
46086       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46087       --
46088       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46089           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
46090       ELSE
46091           ---------------------------------------------------------------------------------------------------
46092           -- 4262811a Switch Sign
46093           ---------------------------------------------------------------------------------------------------
46094           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
46098                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46095           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46096                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46097           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46099           -- 5132302
46100           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46101                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46102 
46103       END IF;
46104 
46105       -- 4955764
46106       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46107       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46108 
46109 
46110       XLA_AE_LINES_PKG.ValidateCurrentLine;
46111       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46112 
46113       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46114                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46115                ,p_balance_type_code => l_balance_type_code);
46116 
46117    END IF;
46118 
46119    -----------------------------------------------------------------------------------------
46120    -- 4262811 Multiperiod Accounting
46121    -----------------------------------------------------------------------------------------
46122      -- No MPA option is assigned.
46123 
46124 
46125 END IF;
46126 END IF;
46127 --
46128 
46129 --
46130 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46131    trace
46132       (p_msg      => 'END of AcctLineType_92'
46133       ,p_level    => C_LEVEL_PROCEDURE
46134       ,p_module   => l_log_module);
46135 END IF;
46136 --
46137 EXCEPTION
46138   WHEN xla_exceptions_pkg.application_exception THEN
46139       RAISE;
46140   WHEN OTHERS THEN
46141        xla_exceptions_pkg.raise_message
46142            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_92');
46143 END AcctLineType_92;
46144 --
46145 
46146 ---------------------------------------
46147 --
46148 -- PRIVATE FUNCTION
46149 --         AcctLineType_93
46150 --
46151 ---------------------------------------
46152 PROCEDURE AcctLineType_93 (
46153   p_application_id        IN NUMBER
46154  ,p_event_id              IN NUMBER
46155  ,p_calculate_acctd_flag  IN VARCHAR2
46156  ,p_calculate_g_l_flag    IN VARCHAR2
46157  ,p_actual_flag           IN OUT VARCHAR2
46158  ,p_balance_type_code     OUT VARCHAR2
46159  ,p_gain_or_loss_ref      OUT VARCHAR2
46160  
46161 --Payment Currency Code
46162  , p_source_12            IN VARCHAR2
46163 --Payment Distribution (Payment Rate) Ledger Amount
46164  , p_source_21            IN NUMBER
46165 --When to Account for Payment Option
46166  , p_source_50            IN VARCHAR2
46167 --Payment Distribution Type
46168  , p_source_51            IN VARCHAR2
46169  , p_source_51_meaning    IN VARCHAR2
46170 --Accounting Reversal Indicator
46171  , p_source_52            IN VARCHAR2
46172 --Payment Distribution Amount
46173  , p_source_53            IN NUMBER
46174 --Business Flow Accounts Payable Application Identifier
46175  , p_source_54            IN NUMBER
46176 --Business Flow Payment Distribution Type
46177  , p_source_55            IN VARCHAR2
46178 --Business Flow Payment Entity Code
46179  , p_source_56            IN VARCHAR2
46180 --Business Flow Payment Distribution Identifier
46181  , p_source_57            IN NUMBER
46182 --Business Flow Payment Identifier
46183  , p_source_58            IN NUMBER
46184 --Payment Distribution Identifier
46185  , p_source_59            IN NUMBER
46186 --Distribution Link Type
46187  , p_source_60            IN VARCHAR2
46188 --Override Accounted Amount Indicator
46189  , p_source_64            IN VARCHAR2
46190  , p_source_64_meaning    IN VARCHAR2
46191 --Third Party Type
46192  , p_source_67            IN VARCHAR2
46193 --Payment Distribution Reversed Identifier
46194  , p_source_68            IN NUMBER
46195 --Payment Maturity Date
46196  , p_source_118            IN DATE
46197 )
46198 IS
46199 
46200 l_component_type              VARCHAR2(80);
46201 l_component_code              VARCHAR2(30);
46202 l_component_type_code         VARCHAR2(1);
46203 l_component_appl_id           INTEGER;
46204 l_amb_context_code            VARCHAR2(30);
46205 l_entity_code                 VARCHAR2(30);
46206 l_event_class_code            VARCHAR2(30);
46207 l_ae_header_id                NUMBER;
46208 l_event_type_code             VARCHAR2(30);
46209 l_line_definition_code        VARCHAR2(30);
46210 l_line_definition_owner_code  VARCHAR2(1);
46211 --
46212 -- adr variables
46213 l_segment                     VARCHAR2(30);
46214 l_ccid                        NUMBER;
46215 l_adr_transaction_coa_id      NUMBER;
46216 l_adr_accounting_coa_id       NUMBER;
46217 l_adr_flexfield_segment_code  VARCHAR2(30);
46218 l_adr_flex_value_set_id       NUMBER;
46219 l_adr_value_type_code         VARCHAR2(30);
46220 l_adr_value_combination_id    NUMBER;
46221 l_adr_value_segment_code      VARCHAR2(30);
46222 
46223 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
46224 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
46228 -- 4262811 Variables ------------------------------------------------------------------------------------------
46225 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
46226 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
46227 
46229 l_entered_amt_idx             NUMBER;
46230 l_accted_amt_idx              NUMBER;
46231 l_acc_rev_flag                VARCHAR2(1);
46232 l_accrual_line_num            NUMBER;
46233 l_tmp_amt                     NUMBER;
46234 l_acc_rev_natural_side_code   VARCHAR2(1);
46235 
46236 l_num_entries                 NUMBER;
46237 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
46238 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
46239 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
46240 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
46241 l_recog_line_1                NUMBER;
46242 l_recog_line_2                NUMBER;
46243 
46244 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
46245 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
46246 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
46247 
46248 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46249 
46250 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
46251 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
46252 
46253 ---------------------------------------------------------------------------------------------------------------
46254 
46255 
46256 --
46257 -- bulk performance
46258 --
46259 l_balance_type_code           VARCHAR2(1);
46260 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
46261 l_log_module                  VARCHAR2(240);
46262 
46263 --
46264 -- Upgrade strategy
46265 --
46266 l_actual_upg_option           VARCHAR2(1);
46267 l_enc_upg_option           VARCHAR2(1);
46268 
46269 --
46270 BEGIN
46271 --
46272 IF g_log_enabled THEN
46273       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_93';
46274 END IF;
46275 --
46276 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46277 
46278       trace
46279          (p_msg      => 'BEGIN of AcctLineType_93'
46280          ,p_level    => C_LEVEL_PROCEDURE
46281          ,p_module   => l_log_module);
46282 
46283 END IF;
46284 --
46285 l_component_type             := 'AMB_JLT';
46286 l_component_code             := 'AP_FUTURE_DATED_PMT_MAT';
46287 l_component_type_code        := 'S';
46288 l_component_appl_id          :=  200;
46289 l_amb_context_code           := 'DEFAULT';
46290 l_entity_code                := 'AP_PAYMENTS';
46291 l_event_class_code           := 'FUTURE DATED PAYMENTS';
46292 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
46293 l_line_definition_owner_code := 'S';
46294 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
46295 --
46296 l_balance_type_code          := 'A';
46297 l_segment                     := NULL;
46298 l_ccid                        := NULL;
46299 l_adr_transaction_coa_id      := NULL;
46300 l_adr_accounting_coa_id       := NULL;
46301 l_adr_flexfield_segment_code  := NULL;
46302 l_adr_flex_value_set_id       := NULL;
46303 l_adr_value_type_code         := NULL;
46304 l_adr_value_combination_id    := NULL;
46305 l_adr_value_segment_code      := NULL;
46306 
46307 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
46308 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
46309 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
46310 l_budgetary_control_flag     := 'N';
46311 
46312 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
46313 l_bflow_applied_to_amt       := NULL; -- 5132302
46314 l_entered_amt_idx            := NULL;          -- 4262811
46315 l_accted_amt_idx             := NULL;          -- 4262811
46316 l_acc_rev_flag               := NULL;          -- 4262811
46317 l_accrual_line_num           := NULL;          -- 4262811
46318 l_tmp_amt                    := NULL;          -- 4262811
46319 --
46320  
46321 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46322     l_balance_type_code <> 'B' THEN
46323 IF NVL(p_source_50,'
46324 ') <>  'CLEAR_CLEAR' AND 
46325 p_source_118 IS NOT NULL AND 
46326 (NVL(p_source_51,'
46327 ') =  'CASH' OR 
46328 NVL(p_source_51,'
46329 ') =  'ROUNDING')
46330  THEN 
46331 
46332    --
46333    XLA_AE_LINES_PKG.SetNewLine;
46334 
46335    p_balance_type_code          := l_balance_type_code;
46336    -- set the flag so later we will know whether the gain loss line needs to be created
46337    
46338    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46339      p_actual_flag :='A';
46340    END IF;
46341 
46342    --
46343    -- bulk performance
46344    --
46345    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46346                                       p_header_num   => 0); -- 4262811
46347    --
46348    -- set accounting line options
46349    --
46350    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46351            p_natural_side_code          => 'D'
46352          , p_gain_or_loss_flag          => 'N'
46353          , p_gl_transfer_mode_code      => 'S'
46354          , p_acct_entry_type_code       => 'A'
46358    --
46355          , p_switch_side_flag           => 'Y'
46356          , p_merge_duplicate_code       => 'A'
46357          );
46359    l_acc_rev_natural_side_code := 'C';  -- 4262811
46360    -- 
46361    --
46362    -- set accounting line type info
46363    --
46364    xla_ae_lines_pkg.SetAcctLineType
46365       (p_component_type             => l_component_type
46366       ,p_event_type_code            => l_event_type_code
46367       ,p_line_definition_owner_code => l_line_definition_owner_code
46368       ,p_line_definition_code       => l_line_definition_code
46369       ,p_accounting_line_code       => l_component_code
46370       ,p_accounting_line_type_code  => l_component_type_code
46371       ,p_accounting_line_appl_id    => l_component_appl_id
46372       ,p_amb_context_code           => l_amb_context_code
46373       ,p_entity_code                => l_entity_code
46374       ,p_event_class_code           => l_event_class_code);
46375    --
46376    -- set accounting class
46377    --
46378    xla_ae_lines_pkg.SetAcctClass(
46379            p_accounting_class_code  => 'FUTURE_DATED_PMT'
46380          , p_ae_header_id           => l_ae_header_id
46381          );
46382 
46383    --
46384    -- set rounding class
46385    --
46386    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46387                       'FUTURE_DATED_PMT';
46388 
46389    --
46390    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46391    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46392    --
46393    -- bulk performance
46394    --
46395    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46396 
46397    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46398       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46399 
46400    -- 4955764
46401    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46402       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46403 
46404    -- 4458381 Public Sector Enh
46405    
46406    --
46407    -- set accounting attributes for the line type
46408    --
46409    l_entered_amt_idx := 9;
46410    l_accted_amt_idx  := 11;
46411    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
46412    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46413    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
46414    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
46415    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
46416    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46417    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
46418    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
46419    l_rec_acct_attrs.array_char_value(4)  := p_source_56;
46420    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
46421    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
46422    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46423    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
46424    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
46425    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
46426    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
46427    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
46428    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
46429    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
46430    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
46431    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
46432    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
46433    l_rec_acct_attrs.array_num_value(11)  := p_source_21;
46434    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
46435    l_rec_acct_attrs.array_char_value(12)  := p_source_64;
46436    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
46437    l_rec_acct_attrs.array_char_value(13)  := p_source_67;
46438    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
46439    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_68);
46440    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
46441    l_rec_acct_attrs.array_char_value(15)  := p_source_60;
46442 
46443    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46444    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46445 
46446    ---------------------------------------------------------------------------------------------------------------
46447    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46448    ---------------------------------------------------------------------------------------------------------------
46449    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46450 
46451    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46452    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46453 
46454    IF xla_accounting_cache_pkg.GetValueChar
46455          (p_source_code         => 'LEDGER_CATEGORY_CODE'
46456          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46460          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46457    AND l_bflow_method_code = 'PRIOR_ENTRY'
46458 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46459    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46461        )
46462    THEN
46463          xla_ae_lines_pkg.BflowUpgEntry
46464            (p_business_method_code    => l_bflow_method_code
46465            ,p_business_class_code     => l_bflow_class_code
46466            ,p_balance_type            => l_balance_type_code);
46467    ELSE
46468       NULL;
46469 XLA_AE_LINES_PKG.business_flow_validation(
46470                                 p_business_method_code     => l_bflow_method_code
46471                                ,p_business_class_code      => l_bflow_class_code
46472                                ,p_inherit_description_flag => l_inherit_desc_flag);
46473    END IF;
46474 
46475    --
46476    -- call analytical criteria
46477    --
46478    -- Inherited Analytical Criteria for business flow method of Prior Entry.
46479    --
46480    -- call description
46481    --
46482    -- No description or it is inherited.
46483    --
46484    -- call ADRs
46485    -- Bug 4922099
46486    --
46487    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46488         (NVL(l_actual_upg_option, 'N') = 'O') OR
46489         (NVL(l_enc_upg_option, 'N') = 'O')
46490       )
46491    THEN
46492    NULL;
46493    --
46494    --
46495    
46496    --
46497    --
46498    END IF;
46499    --
46500    -- Bug 4922099
46501    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46502           (NVL(l_enc_upg_option, 'N') = 'O')
46503         ) AND
46504         (l_bflow_method_code = 'PRIOR_ENTRY')
46505       )
46506    THEN
46507       IF
46508       --
46509       1 = 1
46510       --
46511       THEN
46512       xla_accounting_err_pkg.build_message
46513                                     (p_appli_s_name            => 'XLA'
46514                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46515                                     ,p_token_1                 => 'LINE_NUMBER'
46516                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
46517                                     ,p_token_2                 => 'LINE_TYPE_NAME'
46518                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
46519                                                                              l_component_type
46520                                                                             ,l_component_code
46521                                                                             ,l_component_type_code
46522                                                                             ,l_component_appl_id
46523                                                                             ,l_amb_context_code
46524                                                                             ,l_entity_code
46525                                                                             ,l_event_class_code
46526                                                                            )
46527                                     ,p_token_3                 => 'OWNER'
46528                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
46529                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
46530                                                                           ,p_lookup_code    => l_component_type_code
46531                                                                          )
46532                                     ,p_token_4                 => 'PRODUCT_NAME'
46533                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46534                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46535                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46536                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46537                                     ,p_ae_header_id            =>  NULL
46538                                        );
46539 
46540         IF (C_LEVEL_ERROR>= g_log_level) THEN
46541                  trace
46542                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46543                       ,p_level    => C_LEVEL_ERROR
46544                       ,p_module   => l_log_module);
46545         END IF;
46546       END IF;
46547    END IF;
46548    --
46549    --
46550    ------------------------------------------------------------------------------------------------
46551    -- 4219869 Business Flow
46552    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46553    -- Prior Entry.  Currently, the following code is always generated.
46554    ------------------------------------------------------------------------------------------------
46555    -- No ValidateCurrentLine for business flow method of Prior Entry
46556 
46557    ------------------------------------------------------------------------------------
46558    -- 4219869 Business Flow
46559    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46560    ------------------------------------------------------------------------------------
46561    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46562 
46563    ----------------------------------------------------------------------------------
46567    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46564    -- 4219869 Business Flow
46565    -- Update journal entry status -- Need to generate this within IF <condition>
46566    ----------------------------------------------------------------------------------
46568          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46569          ,p_balance_type_code => l_balance_type_code
46570          );
46571 
46572    -------------------------------------------------------------------------------------------
46573    -- 4262811 - Generate the Accrual Reversal lines
46574    -------------------------------------------------------------------------------------------
46575    BEGIN
46576       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46577                               (g_array_event(p_event_id).array_value_num('header_index'));
46578       IF l_acc_rev_flag IS NULL THEN
46579          l_acc_rev_flag := 'N';
46580       END IF;
46581    EXCEPTION
46582       WHEN OTHERS THEN
46583          l_acc_rev_flag := 'N';
46584    END;
46585    --
46586    IF (l_acc_rev_flag = 'Y') THEN
46587 
46588        -- 4645092  ------------------------------------------------------------------------------
46589        -- To allow MPA report to determine if it should generate report process
46590        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46591        ------------------------------------------------------------------------------------------
46592 
46593        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46594        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46595    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
46596    -- call ADRs
46597    -- Bug 4922099
46598    --
46599    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46600         (NVL(l_actual_upg_option, 'N') = 'O') OR
46601         (NVL(l_enc_upg_option, 'N') = 'O')
46602       )
46603    THEN
46604    NULL;
46605    --
46606    --
46607    
46608    --
46609    --
46610    END IF;
46611 
46612        --
46613        -- Update the line information that should be overwritten
46614        --
46615        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46616                                          p_header_num   => 1);
46617        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
46618 
46619        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46620 
46621        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
46622           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46623        END IF;
46624 
46625       --
46626       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46627       --
46628       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46629           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
46630       ELSE
46631           ---------------------------------------------------------------------------------------------------
46632           -- 4262811a Switch Sign
46633           ---------------------------------------------------------------------------------------------------
46634           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
46635           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46636                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46637           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46638                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46639           -- 5132302
46640           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46641                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46642 
46643       END IF;
46644 
46645       -- 4955764
46646       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46647       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46648 
46649 
46650       XLA_AE_LINES_PKG.ValidateCurrentLine;
46651       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46652 
46653       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46654                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46655                ,p_balance_type_code => l_balance_type_code);
46656 
46657    END IF;
46658 
46659    -----------------------------------------------------------------------------------------
46660    -- 4262811 Multiperiod Accounting
46661    -----------------------------------------------------------------------------------------
46662      -- No MPA option is assigned.
46663 
46664 
46665 END IF;
46666 END IF;
46667 --
46668 
46669 --
46670 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46671    trace
46672       (p_msg      => 'END of AcctLineType_93'
46673       ,p_level    => C_LEVEL_PROCEDURE
46674       ,p_module   => l_log_module);
46675 END IF;
46676 --
46677 EXCEPTION
46678   WHEN xla_exceptions_pkg.application_exception THEN
46679       RAISE;
46683 END AcctLineType_93;
46680   WHEN OTHERS THEN
46681        xla_exceptions_pkg.raise_message
46682            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_93');
46684 --
46685 
46686 ---------------------------------------
46687 --
46688 -- PRIVATE FUNCTION
46689 --         AcctLineType_94
46690 --
46691 ---------------------------------------
46692 PROCEDURE AcctLineType_94 (
46693   p_application_id        IN NUMBER
46694  ,p_event_id              IN NUMBER
46695  ,p_calculate_acctd_flag  IN VARCHAR2
46696  ,p_calculate_g_l_flag    IN VARCHAR2
46697  ,p_actual_flag           IN OUT VARCHAR2
46698  ,p_balance_type_code     OUT VARCHAR2
46699  ,p_gain_or_loss_ref      OUT VARCHAR2
46700  
46701 --Payment Currency Code
46702  , p_source_12            IN VARCHAR2
46703 --Automatic Offsets Value
46704  , p_source_16            IN VARCHAR2
46705  , p_source_16_meaning    IN VARCHAR2
46706 --Payment Distribution (Payment Rate) Ledger Amount
46707  , p_source_21            IN NUMBER
46708 --Invoice Distribution Account
46709  , p_source_29            IN NUMBER
46710 --Payables Options Rounding Account
46711  , p_source_49            IN NUMBER
46712 --When to Account for Payment Option
46713  , p_source_50            IN VARCHAR2
46714 --Payment Distribution Type
46715  , p_source_51            IN VARCHAR2
46716  , p_source_51_meaning    IN VARCHAR2
46717 --Accounting Reversal Indicator
46718  , p_source_52            IN VARCHAR2
46719 --Payment Distribution Amount
46720  , p_source_53            IN NUMBER
46721 --Business Flow Accounts Payable Application Identifier
46722  , p_source_54            IN NUMBER
46723 --Business Flow Payment Distribution Type
46724  , p_source_55            IN VARCHAR2
46725 --Business Flow Payment Entity Code
46726  , p_source_56            IN VARCHAR2
46727 --Business Flow Payment Distribution Identifier
46728  , p_source_57            IN NUMBER
46729 --Business Flow Payment Identifier
46730  , p_source_58            IN NUMBER
46731 --Payment Distribution Identifier
46732  , p_source_59            IN NUMBER
46733 --Distribution Link Type
46734  , p_source_60            IN VARCHAR2
46735 --Override Accounted Amount Indicator
46736  , p_source_64            IN VARCHAR2
46737  , p_source_64_meaning    IN VARCHAR2
46738 --Payment Supplier Identifier
46739  , p_source_65            IN NUMBER
46740 --Payment Supplier Site Identifier
46741  , p_source_66            IN NUMBER
46742 --Third Party Type
46743  , p_source_67            IN VARCHAR2
46744 --Payment Distribution Reversed Identifier
46745  , p_source_68            IN NUMBER
46746 --Payment Exchange Date
46747  , p_source_121            IN DATE
46748 --Payment Exchange Rate
46749  , p_source_122            IN NUMBER
46750 --Payment Exchange Rate Type
46751  , p_source_123            IN VARCHAR2
46752 )
46753 IS
46754 
46755 l_component_type              VARCHAR2(80);
46756 l_component_code              VARCHAR2(30);
46757 l_component_type_code         VARCHAR2(1);
46758 l_component_appl_id           INTEGER;
46759 l_amb_context_code            VARCHAR2(30);
46760 l_entity_code                 VARCHAR2(30);
46761 l_event_class_code            VARCHAR2(30);
46762 l_ae_header_id                NUMBER;
46763 l_event_type_code             VARCHAR2(30);
46764 l_line_definition_code        VARCHAR2(30);
46765 l_line_definition_owner_code  VARCHAR2(1);
46766 --
46767 -- adr variables
46768 l_segment                     VARCHAR2(30);
46769 l_ccid                        NUMBER;
46770 l_adr_transaction_coa_id      NUMBER;
46771 l_adr_accounting_coa_id       NUMBER;
46772 l_adr_flexfield_segment_code  VARCHAR2(30);
46773 l_adr_flex_value_set_id       NUMBER;
46774 l_adr_value_type_code         VARCHAR2(30);
46775 l_adr_value_combination_id    NUMBER;
46776 l_adr_value_segment_code      VARCHAR2(30);
46777 
46778 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
46779 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
46780 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
46781 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
46782 
46783 -- 4262811 Variables ------------------------------------------------------------------------------------------
46784 l_entered_amt_idx             NUMBER;
46785 l_accted_amt_idx              NUMBER;
46786 l_acc_rev_flag                VARCHAR2(1);
46787 l_accrual_line_num            NUMBER;
46788 l_tmp_amt                     NUMBER;
46789 l_acc_rev_natural_side_code   VARCHAR2(1);
46790 
46791 l_num_entries                 NUMBER;
46792 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
46793 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
46794 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
46795 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
46796 l_recog_line_1                NUMBER;
46797 l_recog_line_2                NUMBER;
46798 
46799 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
46800 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
46801 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
46802 
46803 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46804 
46805 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
46809 
46806 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
46807 
46808 ---------------------------------------------------------------------------------------------------------------
46810 
46811 --
46812 -- bulk performance
46813 --
46814 l_balance_type_code           VARCHAR2(1);
46815 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
46816 l_log_module                  VARCHAR2(240);
46817 
46818 --
46819 -- Upgrade strategy
46820 --
46821 l_actual_upg_option           VARCHAR2(1);
46822 l_enc_upg_option           VARCHAR2(1);
46823 
46824 --
46825 BEGIN
46826 --
46827 IF g_log_enabled THEN
46828       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_94';
46829 END IF;
46830 --
46831 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46832 
46833       trace
46834          (p_msg      => 'BEGIN of AcctLineType_94'
46835          ,p_level    => C_LEVEL_PROCEDURE
46836          ,p_module   => l_log_module);
46837 
46838 END IF;
46839 --
46840 l_component_type             := 'AMB_JLT';
46841 l_component_code             := 'AP_FUTURE_PMT_ROUNDING_MAT';
46842 l_component_type_code        := 'S';
46843 l_component_appl_id          :=  200;
46844 l_amb_context_code           := 'DEFAULT';
46845 l_entity_code                := 'AP_PAYMENTS';
46846 l_event_class_code           := 'FUTURE DATED PAYMENTS';
46847 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
46848 l_line_definition_owner_code := 'S';
46849 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
46850 --
46851 l_balance_type_code          := 'A';
46852 l_segment                     := NULL;
46853 l_ccid                        := NULL;
46854 l_adr_transaction_coa_id      := NULL;
46855 l_adr_accounting_coa_id       := NULL;
46856 l_adr_flexfield_segment_code  := NULL;
46857 l_adr_flex_value_set_id       := NULL;
46858 l_adr_value_type_code         := NULL;
46859 l_adr_value_combination_id    := NULL;
46860 l_adr_value_segment_code      := NULL;
46861 
46862 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
46863 l_bflow_class_code           := '';    -- 4219869 Business Flow
46864 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
46865 l_budgetary_control_flag     := 'N';
46866 
46867 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
46868 l_bflow_applied_to_amt       := NULL; -- 5132302
46869 l_entered_amt_idx            := NULL;          -- 4262811
46870 l_accted_amt_idx             := NULL;          -- 4262811
46871 l_acc_rev_flag               := NULL;          -- 4262811
46872 l_accrual_line_num           := NULL;          -- 4262811
46873 l_tmp_amt                    := NULL;          -- 4262811
46874 --
46875  
46876 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46877     l_balance_type_code <> 'B' THEN
46878 IF NVL(p_source_50,'
46879 ') <>  'CLEAR_CLEAR' AND 
46880 NVL(p_source_51,'
46881 ') =  'FUTURE PAYMENT ROUNDING'
46882  THEN 
46883 
46884    --
46885    XLA_AE_LINES_PKG.SetNewLine;
46886 
46887    p_balance_type_code          := l_balance_type_code;
46888    -- set the flag so later we will know whether the gain loss line needs to be created
46889    
46890    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46891      p_actual_flag :='A';
46892    END IF;
46893 
46894    --
46895    -- bulk performance
46896    --
46897    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46898                                       p_header_num   => 0); -- 4262811
46899    --
46900    -- set accounting line options
46901    --
46902    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46903            p_natural_side_code          => 'D'
46904          , p_gain_or_loss_flag          => 'N'
46905          , p_gl_transfer_mode_code      => 'S'
46906          , p_acct_entry_type_code       => 'A'
46907          , p_switch_side_flag           => 'Y'
46908          , p_merge_duplicate_code       => 'A'
46909          );
46910    --
46911    l_acc_rev_natural_side_code := 'C';  -- 4262811
46912    -- 
46913    --
46914    -- set accounting line type info
46915    --
46916    xla_ae_lines_pkg.SetAcctLineType
46917       (p_component_type             => l_component_type
46918       ,p_event_type_code            => l_event_type_code
46919       ,p_line_definition_owner_code => l_line_definition_owner_code
46920       ,p_line_definition_code       => l_line_definition_code
46921       ,p_accounting_line_code       => l_component_code
46922       ,p_accounting_line_type_code  => l_component_type_code
46923       ,p_accounting_line_appl_id    => l_component_appl_id
46924       ,p_amb_context_code           => l_amb_context_code
46925       ,p_entity_code                => l_entity_code
46926       ,p_event_class_code           => l_event_class_code);
46927    --
46928    -- set accounting class
46929    --
46930    xla_ae_lines_pkg.SetAcctClass(
46931            p_accounting_class_code  => 'ROUNDING'
46932          , p_ae_header_id           => l_ae_header_id
46933          );
46934 
46935    --
46936    -- set rounding class
46937    --
46938    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46939                       'ROUNDING';
46940 
46941    --
46945    -- bulk performance
46942    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46943    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46944    --
46946    --
46947    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46948 
46949    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46950       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46951 
46952    -- 4955764
46953    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46954       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46955 
46956    -- 4458381 Public Sector Enh
46957    
46958    --
46959    -- set accounting attributes for the line type
46960    --
46961    l_entered_amt_idx := 9;
46962    l_accted_amt_idx  := 14;
46963    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
46964    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46965    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
46966    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
46967    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
46968    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46969    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
46970    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
46971    l_rec_acct_attrs.array_char_value(4)  := p_source_56;
46972    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
46973    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
46974    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46975    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
46976    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
46977    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
46978    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
46979    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
46980    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
46981    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
46982    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
46983    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
46984    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
46985    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
46986    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
46987    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
46988    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
46989    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
46990    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
46991    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
46992    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
46993    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
46994    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
46995    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
46996    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
46997    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
46998    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
46999    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
47000    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
47001    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
47002    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
47003    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
47004 
47005    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47006    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47007 
47008    ---------------------------------------------------------------------------------------------------------------
47009    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47010    ---------------------------------------------------------------------------------------------------------------
47011    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47012 
47013    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47014    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47015 
47016    IF xla_accounting_cache_pkg.GetValueChar
47017          (p_source_code         => 'LEDGER_CATEGORY_CODE'
47018          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47019    AND l_bflow_method_code = 'PRIOR_ENTRY'
47020 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47021    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47022          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47023        )
47024    THEN
47025          xla_ae_lines_pkg.BflowUpgEntry
47026            (p_business_method_code    => l_bflow_method_code
47027            ,p_business_class_code     => l_bflow_class_code
47028            ,p_balance_type            => l_balance_type_code);
47029    ELSE
47030       NULL;
47031 -- No business flow processing for business flow method of NONE.
47032    END IF;
47033 
47034    --
47035    -- call analytical criteria
47036    --
47037    
47038    --
47039    -- call description
47040    --
47044    -- Bug 4922099
47041    -- No description or it is inherited.
47042    --
47043    -- call ADRs
47045    --
47046    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47047         (NVL(l_actual_upg_option, 'N') = 'O') OR
47048         (NVL(l_enc_upg_option, 'N') = 'O')
47049       )
47050    THEN
47051    NULL;
47052    --
47053    --
47054    
47055   l_ccid := AcctDerRule_37(
47056            p_application_id           => p_application_id
47057          , p_ae_header_id             => l_ae_header_id 
47058 , p_source_16 => p_source_16
47059 , p_source_16_meaning => p_source_16_meaning
47060 , p_source_29 => p_source_29
47061 , p_source_49 => p_source_49
47062          , x_transaction_coa_id       => l_adr_transaction_coa_id
47063          , x_accounting_coa_id        => l_adr_accounting_coa_id
47064          , x_value_type_code          => l_adr_value_type_code
47065          , p_side                     => 'NA'
47066    );
47067 
47068    xla_ae_lines_pkg.set_ccid(
47069     p_code_combination_id          => l_ccid
47070   , p_value_type_code              => l_adr_value_type_code
47071   , p_transaction_coa_id           => l_adr_transaction_coa_id
47072   , p_accounting_coa_id            => l_adr_accounting_coa_id
47073   , p_adr_code                     => 'AP_ROUNDING'
47074   , p_adr_type_code                => 'S'
47075   , p_component_type               => l_component_type
47076   , p_component_code               => l_component_code
47077   , p_component_type_code          => l_component_type_code
47078   , p_component_appl_id            => l_component_appl_id
47079   , p_amb_context_code             => l_amb_context_code
47080   , p_side                         => 'NA'
47081   );
47082 
47083 
47084    --
47085    --
47086    END IF;
47087    --
47088    -- Bug 4922099
47089    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47090           (NVL(l_enc_upg_option, 'N') = 'O')
47091         ) AND
47092         (l_bflow_method_code = 'PRIOR_ENTRY')
47093       )
47094    THEN
47095       IF
47096       --
47097       1 = 2
47098       --
47099       THEN
47100       xla_accounting_err_pkg.build_message
47101                                     (p_appli_s_name            => 'XLA'
47102                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47103                                     ,p_token_1                 => 'LINE_NUMBER'
47104                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
47105                                     ,p_token_2                 => 'LINE_TYPE_NAME'
47106                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
47107                                                                              l_component_type
47108                                                                             ,l_component_code
47109                                                                             ,l_component_type_code
47110                                                                             ,l_component_appl_id
47111                                                                             ,l_amb_context_code
47112                                                                             ,l_entity_code
47113                                                                             ,l_event_class_code
47114                                                                            )
47115                                     ,p_token_3                 => 'OWNER'
47116                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
47117                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
47118                                                                           ,p_lookup_code    => l_component_type_code
47119                                                                          )
47120                                     ,p_token_4                 => 'PRODUCT_NAME'
47121                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47122                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47123                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47124                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47125                                     ,p_ae_header_id            =>  NULL
47126                                        );
47127 
47128         IF (C_LEVEL_ERROR>= g_log_level) THEN
47129                  trace
47130                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47131                       ,p_level    => C_LEVEL_ERROR
47132                       ,p_module   => l_log_module);
47133         END IF;
47134       END IF;
47135    END IF;
47136    --
47137    --
47138    ------------------------------------------------------------------------------------------------
47139    -- 4219869 Business Flow
47140    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47141    -- Prior Entry.  Currently, the following code is always generated.
47142    ------------------------------------------------------------------------------------------------
47143    XLA_AE_LINES_PKG.ValidateCurrentLine;
47144 
47145    ------------------------------------------------------------------------------------
47146    -- 4219869 Business Flow
47150 
47147    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47148    ------------------------------------------------------------------------------------
47149    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47151    ----------------------------------------------------------------------------------
47152    -- 4219869 Business Flow
47153    -- Update journal entry status -- Need to generate this within IF <condition>
47154    ----------------------------------------------------------------------------------
47155    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47156          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47157          ,p_balance_type_code => l_balance_type_code
47158          );
47159 
47160    -------------------------------------------------------------------------------------------
47161    -- 4262811 - Generate the Accrual Reversal lines
47162    -------------------------------------------------------------------------------------------
47163    BEGIN
47164       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47165                               (g_array_event(p_event_id).array_value_num('header_index'));
47166       IF l_acc_rev_flag IS NULL THEN
47167          l_acc_rev_flag := 'N';
47168       END IF;
47169    EXCEPTION
47170       WHEN OTHERS THEN
47171          l_acc_rev_flag := 'N';
47172    END;
47173    --
47174    IF (l_acc_rev_flag = 'Y') THEN
47175 
47176        -- 4645092  ------------------------------------------------------------------------------
47177        -- To allow MPA report to determine if it should generate report process
47178        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47179        ------------------------------------------------------------------------------------------
47180 
47181        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47182        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47183    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
47184    -- call ADRs
47185    -- Bug 4922099
47186    --
47187    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47188         (NVL(l_actual_upg_option, 'N') = 'O') OR
47189         (NVL(l_enc_upg_option, 'N') = 'O')
47190       )
47191    THEN
47192    NULL;
47193    --
47194    --
47195    
47196   l_ccid := AcctDerRule_37(
47197            p_application_id           => p_application_id
47198          , p_ae_header_id             => l_ae_header_id 
47199 , p_source_16 => p_source_16
47200 , p_source_16_meaning => p_source_16_meaning
47201 , p_source_29 => p_source_29
47202 , p_source_49 => p_source_49
47203          , x_transaction_coa_id       => l_adr_transaction_coa_id
47204          , x_accounting_coa_id        => l_adr_accounting_coa_id
47205          , x_value_type_code          => l_adr_value_type_code
47206          , p_side                     => 'NA'
47207    );
47208 
47209    xla_ae_lines_pkg.set_ccid(
47210     p_code_combination_id          => l_ccid
47211   , p_value_type_code              => l_adr_value_type_code
47212   , p_transaction_coa_id           => l_adr_transaction_coa_id
47213   , p_accounting_coa_id            => l_adr_accounting_coa_id
47214   , p_adr_code                     => 'AP_ROUNDING'
47215   , p_adr_type_code                => 'S'
47216   , p_component_type               => l_component_type
47217   , p_component_code               => l_component_code
47218   , p_component_type_code          => l_component_type_code
47219   , p_component_appl_id            => l_component_appl_id
47220   , p_amb_context_code             => l_amb_context_code
47221   , p_side                         => 'NA'
47222   );
47223 
47224 
47225    --
47226    --
47227    END IF;
47228 
47229        --
47230        -- Update the line information that should be overwritten
47231        --
47232        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47233                                          p_header_num   => 1);
47234        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
47235 
47236        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47237 
47238        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
47239           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47240        END IF;
47241 
47242       --
47243       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47244       --
47245       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47246           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
47247       ELSE
47248           ---------------------------------------------------------------------------------------------------
47249           -- 4262811a Switch Sign
47250           ---------------------------------------------------------------------------------------------------
47251           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
47252           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47253                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47254           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47258                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47255                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47256           -- 5132302
47257           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47259 
47260       END IF;
47261 
47262       -- 4955764
47263       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47264       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47265 
47266 
47267       XLA_AE_LINES_PKG.ValidateCurrentLine;
47268       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47269 
47270       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47271                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47272                ,p_balance_type_code => l_balance_type_code);
47273 
47274    END IF;
47275 
47276    -----------------------------------------------------------------------------------------
47277    -- 4262811 Multiperiod Accounting
47278    -----------------------------------------------------------------------------------------
47279      -- No MPA option is assigned.
47280 
47281 
47282 END IF;
47283 END IF;
47284 --
47285 
47286 --
47287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47288    trace
47289       (p_msg      => 'END of AcctLineType_94'
47290       ,p_level    => C_LEVEL_PROCEDURE
47291       ,p_module   => l_log_module);
47292 END IF;
47293 --
47294 EXCEPTION
47295   WHEN xla_exceptions_pkg.application_exception THEN
47296       RAISE;
47297   WHEN OTHERS THEN
47298        xla_exceptions_pkg.raise_message
47299            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_94');
47300 END AcctLineType_94;
47301 --
47302 
47303 ---------------------------------------
47304 --
47305 -- PRIVATE FUNCTION
47306 --         AcctLineType_95
47307 --
47308 ---------------------------------------
47309 PROCEDURE AcctLineType_95 (
47310   p_application_id        IN NUMBER
47311  ,p_event_id              IN NUMBER
47312  ,p_calculate_acctd_flag  IN VARCHAR2
47313  ,p_calculate_g_l_flag    IN VARCHAR2
47314  ,p_actual_flag           IN OUT VARCHAR2
47315  ,p_balance_type_code     OUT VARCHAR2
47316  ,p_gain_or_loss_ref      OUT VARCHAR2
47317  
47318 --Automatic Offsets Value
47319  , p_source_16            IN VARCHAR2
47320  , p_source_16_meaning    IN VARCHAR2
47321 --Invoice Distribution Account
47322  , p_source_29            IN NUMBER
47323 --Internal Realized Gain Account
47324  , p_source_44            IN NUMBER
47325 --Bank Gain Account
47326  , p_source_45            IN NUMBER
47327 --Internal Realized Loss Account
47328  , p_source_46            IN NUMBER
47329 --Bank Loss Account
47330  , p_source_47            IN NUMBER
47331 --When to Account for Payment Option
47332  , p_source_50            IN VARCHAR2
47333 --Payment Distribution Type
47334  , p_source_51            IN VARCHAR2
47335  , p_source_51_meaning    IN VARCHAR2
47336 --Accounting Reversal Indicator
47337  , p_source_52            IN VARCHAR2
47338 --Payment Distribution Amount
47339  , p_source_53            IN NUMBER
47340 --Business Flow Accounts Payable Application Identifier
47341  , p_source_54            IN NUMBER
47342 --Business Flow Payment Distribution Type
47343  , p_source_55            IN VARCHAR2
47344 --Business Flow Payment Entity Code
47345  , p_source_56            IN VARCHAR2
47346 --Business Flow Payment Distribution Identifier
47347  , p_source_57            IN NUMBER
47348 --Business Flow Payment Identifier
47349  , p_source_58            IN NUMBER
47350 --Payment Distribution Identifier
47351  , p_source_59            IN NUMBER
47352 --Distribution Link Type
47353  , p_source_60            IN VARCHAR2
47354 --Override Accounted Amount Indicator
47355  , p_source_64            IN VARCHAR2
47356  , p_source_64_meaning    IN VARCHAR2
47357 --Payment Supplier Identifier
47358  , p_source_65            IN NUMBER
47359 --Payment Supplier Site Identifier
47360  , p_source_66            IN NUMBER
47361 --Third Party Type
47362  , p_source_67            IN VARCHAR2
47363 --Payment Distribution Reversed Identifier
47364  , p_source_68            IN NUMBER
47365 --Invoice Distribution Tax Line Identifier
47366  , p_source_69            IN NUMBER
47367 --Invoice Distribution Summary Tax Line Identifier
47368  , p_source_70            IN NUMBER
47369 --Payment Maturity Date
47370  , p_source_118            IN DATE
47371 --Invoice/Clearing Ledger Amount Difference
47372  , p_source_134            IN NUMBER
47373 )
47374 IS
47375 
47376 l_component_type              VARCHAR2(80);
47377 l_component_code              VARCHAR2(30);
47378 l_component_type_code         VARCHAR2(1);
47379 l_component_appl_id           INTEGER;
47380 l_amb_context_code            VARCHAR2(30);
47381 l_entity_code                 VARCHAR2(30);
47382 l_event_class_code            VARCHAR2(30);
47383 l_ae_header_id                NUMBER;
47384 l_event_type_code             VARCHAR2(30);
47385 l_line_definition_code        VARCHAR2(30);
47386 l_line_definition_owner_code  VARCHAR2(1);
47387 --
47388 -- adr variables
47389 l_segment                     VARCHAR2(30);
47390 l_ccid                        NUMBER;
47394 l_adr_flex_value_set_id       NUMBER;
47391 l_adr_transaction_coa_id      NUMBER;
47392 l_adr_accounting_coa_id       NUMBER;
47393 l_adr_flexfield_segment_code  VARCHAR2(30);
47395 l_adr_value_type_code         VARCHAR2(30);
47396 l_adr_value_combination_id    NUMBER;
47397 l_adr_value_segment_code      VARCHAR2(30);
47398 
47399 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
47400 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
47401 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
47402 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
47403 
47404 -- 4262811 Variables ------------------------------------------------------------------------------------------
47405 l_entered_amt_idx             NUMBER;
47406 l_accted_amt_idx              NUMBER;
47407 l_acc_rev_flag                VARCHAR2(1);
47408 l_accrual_line_num            NUMBER;
47409 l_tmp_amt                     NUMBER;
47410 l_acc_rev_natural_side_code   VARCHAR2(1);
47411 
47412 l_num_entries                 NUMBER;
47413 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
47414 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
47415 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
47416 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
47417 l_recog_line_1                NUMBER;
47418 l_recog_line_2                NUMBER;
47419 
47420 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
47421 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
47422 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
47423 
47424 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47425 
47426 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
47427 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
47428 
47429 ---------------------------------------------------------------------------------------------------------------
47430 
47431 
47432 --
47433 -- bulk performance
47434 --
47435 l_balance_type_code           VARCHAR2(1);
47436 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
47437 l_log_module                  VARCHAR2(240);
47438 
47439 --
47440 -- Upgrade strategy
47441 --
47442 l_actual_upg_option           VARCHAR2(1);
47443 l_enc_upg_option           VARCHAR2(1);
47444 
47445 --
47446 BEGIN
47447 --
47448 IF g_log_enabled THEN
47449       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_95';
47450 END IF;
47451 --
47452 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47453 
47454       trace
47455          (p_msg      => 'BEGIN of AcctLineType_95'
47456          ,p_level    => C_LEVEL_PROCEDURE
47457          ,p_module   => l_log_module);
47458 
47459 END IF;
47460 --
47461 l_component_type             := 'AMB_JLT';
47462 l_component_code             := 'AP_GAIN_LOSS_PAY_CLEAR';
47463 l_component_type_code        := 'S';
47464 l_component_appl_id          :=  200;
47465 l_amb_context_code           := 'DEFAULT';
47466 l_entity_code                := 'AP_PAYMENTS';
47467 l_event_class_code           := 'RECONCILED PAYMENTS';
47468 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
47469 l_line_definition_owner_code := 'S';
47470 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
47471 --
47472 l_balance_type_code          := 'A';
47473 l_segment                     := NULL;
47474 l_ccid                        := NULL;
47475 l_adr_transaction_coa_id      := NULL;
47476 l_adr_accounting_coa_id       := NULL;
47477 l_adr_flexfield_segment_code  := NULL;
47478 l_adr_flex_value_set_id       := NULL;
47479 l_adr_value_type_code         := NULL;
47480 l_adr_value_combination_id    := NULL;
47481 l_adr_value_segment_code      := NULL;
47482 
47483 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
47484 l_bflow_class_code           := '';    -- 4219869 Business Flow
47485 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
47486 l_budgetary_control_flag     := 'N';
47487 
47488 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
47489 l_bflow_applied_to_amt       := NULL; -- 5132302
47490 l_entered_amt_idx            := NULL;          -- 4262811
47491 l_accted_amt_idx             := NULL;          -- 4262811
47492 l_acc_rev_flag               := NULL;          -- 4262811
47493 l_accrual_line_num           := NULL;          -- 4262811
47494 l_tmp_amt                    := NULL;          -- 4262811
47495 --
47496 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
47497             (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
47498                return;
47499   END IF;
47500   
47501 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47502     l_balance_type_code <> 'B' THEN
47503 IF (NVL(p_source_50,'
47504 ') =  'CLEAR_CLEAR' OR 
47505 NVL(p_source_50,'
47506 ') =  'ALWAYS_CLEAR' OR 
47507 NVL(p_source_50,'
47508 ') =  'ALWAYS_ALWAYS') AND 
47509 p_source_118 IS NULL AND 
47510 NVL(p_source_51,'
47511 ') <>  'EXCHANGE RATE VARIANCE' AND 
47512 NVL(p_source_51,'
47516 NVL(p_source_51,'
47513 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
47514 NVL(p_source_51,'
47515 ') <>  'BANK CHARGE' AND 
47517 ') <>  'BANK ERROR'
47518  THEN 
47519 
47520    --
47521    XLA_AE_LINES_PKG.SetNewLine;
47522 
47523    p_balance_type_code          := l_balance_type_code;
47524    -- set the flag so later we will know whether the gain loss line needs to be created
47525    
47526    IF(l_balance_type_code = 'A' ) THEN
47527      p_actual_flag :='G';
47528    END IF;
47529 
47530    --
47531    -- bulk performance
47532    --
47533    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47534                                       p_header_num   => 0); -- 4262811
47535    --
47536    -- set accounting line options
47537    --
47538    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47539            p_natural_side_code          => 'G'
47540          , p_gain_or_loss_flag          => 'N'
47541          , p_gl_transfer_mode_code      => 'S'
47542          , p_acct_entry_type_code       => 'A'
47543          , p_switch_side_flag           => ''
47544          , p_merge_duplicate_code       => 'A'
47545          );
47546    --
47547    l_acc_rev_natural_side_code := 'C';  -- 4262811
47548    -- 
47549    --
47550    -- set accounting line type info
47551    --
47552    xla_ae_lines_pkg.SetAcctLineType
47553       (p_component_type             => l_component_type
47554       ,p_event_type_code            => l_event_type_code
47555       ,p_line_definition_owner_code => l_line_definition_owner_code
47556       ,p_line_definition_code       => l_line_definition_code
47557       ,p_accounting_line_code       => l_component_code
47558       ,p_accounting_line_type_code  => l_component_type_code
47559       ,p_accounting_line_appl_id    => l_component_appl_id
47560       ,p_amb_context_code           => l_amb_context_code
47561       ,p_entity_code                => l_entity_code
47562       ,p_event_class_code           => l_event_class_code);
47563    --
47564    -- set accounting class
47565    --
47566    xla_ae_lines_pkg.SetAcctClass(
47567            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
47568          , p_ae_header_id           => l_ae_header_id
47569          );
47570 
47571    --
47572    -- set rounding class
47573    --
47574    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47575                       'EXCHANGE_GAIN_LOSS';
47576 
47577    --
47578    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47579    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47580    --
47581    -- bulk performance
47582    --
47583    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47584 
47585    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47586       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47587 
47588    -- 4955764
47589    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47590       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47591 
47592    -- 4458381 Public Sector Enh
47593    
47594    --
47595    -- set accounting attributes for the line type
47596    --
47597    l_entered_amt_idx := NULL;
47598    l_accted_amt_idx  := 10;
47599    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
47600    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47601    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
47602    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
47603    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
47604    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
47605    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
47606    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47607    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
47608    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
47609    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
47610    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
47611    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
47612    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47613    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
47614    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
47615    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
47616    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
47617    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
47618    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
47619    l_rec_acct_attrs.array_num_value(10)  := p_source_134;
47620    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
47621    l_rec_acct_attrs.array_char_value(11)  := p_source_64;
47622    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
47623    l_rec_acct_attrs.array_num_value(12)  := p_source_65;
47624    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
47625    l_rec_acct_attrs.array_num_value(13)  := p_source_66;
47626    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
47627    l_rec_acct_attrs.array_char_value(14)  := p_source_67;
47628    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
47629    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_68);
47633    l_rec_acct_attrs.array_num_value(17)  := p_source_69;
47630    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
47631    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
47632    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
47634    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
47635    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
47636    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
47637    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
47638 
47639    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47640    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47641 
47642    ---------------------------------------------------------------------------------------------------------------
47643    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47644    ---------------------------------------------------------------------------------------------------------------
47645    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47646 
47647    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47648    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47649 
47650    IF xla_accounting_cache_pkg.GetValueChar
47651          (p_source_code         => 'LEDGER_CATEGORY_CODE'
47652          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47653    AND l_bflow_method_code = 'PRIOR_ENTRY'
47654 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47655    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47656          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47657        )
47658    THEN
47659          xla_ae_lines_pkg.BflowUpgEntry
47660            (p_business_method_code    => l_bflow_method_code
47661            ,p_business_class_code     => l_bflow_class_code
47662            ,p_balance_type            => l_balance_type_code);
47663    ELSE
47664       NULL;
47665 -- No business flow processing for business flow method of NONE.
47666    END IF;
47667 
47668    --
47669    -- call analytical criteria
47670    --
47671    
47672    --
47673    -- call description
47674    --
47675    -- No description or it is inherited.
47676    --
47677    -- call ADRs
47678    -- Bug 4922099
47679    --
47680    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47681         (NVL(l_actual_upg_option, 'N') = 'O') OR
47682         (NVL(l_enc_upg_option, 'N') = 'O')
47683       )
47684    THEN
47685    NULL;
47686    --
47687    --
47688    
47689   l_ccid := AcctDerRule_33(
47690            p_application_id           => p_application_id
47691          , p_ae_header_id             => l_ae_header_id 
47692 , p_source_16 => p_source_16
47693 , p_source_16_meaning => p_source_16_meaning
47694 , p_source_29 => p_source_29
47695 , p_source_44 => p_source_44
47696 , p_source_45 => p_source_45
47697          , x_transaction_coa_id       => l_adr_transaction_coa_id
47698          , x_accounting_coa_id        => l_adr_accounting_coa_id
47699          , x_value_type_code          => l_adr_value_type_code
47700          , p_side                     => 'CREDIT'
47701    );
47702 
47703    xla_ae_lines_pkg.set_ccid(
47704     p_code_combination_id          => l_ccid
47705   , p_value_type_code              => l_adr_value_type_code
47706   , p_transaction_coa_id           => l_adr_transaction_coa_id
47707   , p_accounting_coa_id            => l_adr_accounting_coa_id
47708   , p_adr_code                     => 'AP_REAL_GAIN'
47709   , p_adr_type_code                => 'S'
47710   , p_component_type               => l_component_type
47711   , p_component_code               => l_component_code
47712   , p_component_type_code          => l_component_type_code
47713   , p_component_appl_id            => l_component_appl_id
47714   , p_amb_context_code             => l_amb_context_code
47715   , p_side                         => 'CREDIT'
47716   );
47717 
47718 
47719   l_ccid := AcctDerRule_34(
47720            p_application_id           => p_application_id
47721          , p_ae_header_id             => l_ae_header_id 
47722 , p_source_16 => p_source_16
47723 , p_source_16_meaning => p_source_16_meaning
47724 , p_source_29 => p_source_29
47725 , p_source_46 => p_source_46
47726 , p_source_47 => p_source_47
47727          , x_transaction_coa_id       => l_adr_transaction_coa_id
47728          , x_accounting_coa_id        => l_adr_accounting_coa_id
47729          , x_value_type_code          => l_adr_value_type_code
47730          , p_side                     => 'DEBIT'
47731    );
47732 
47733    xla_ae_lines_pkg.set_ccid(
47734     p_code_combination_id          => l_ccid
47735   , p_value_type_code              => l_adr_value_type_code
47736   , p_transaction_coa_id           => l_adr_transaction_coa_id
47737   , p_accounting_coa_id            => l_adr_accounting_coa_id
47738   , p_adr_code                     => 'AP_REAL_LOSS'
47739   , p_adr_type_code                => 'S'
47740   , p_component_type               => l_component_type
47741   , p_component_code               => l_component_code
47742   , p_component_type_code          => l_component_type_code
47743   , p_component_appl_id            => l_component_appl_id
47744   , p_amb_context_code             => l_amb_context_code
47748 
47745   , p_side                         => 'DEBIT'
47746   );
47747 
47749    --
47750    --
47751    END IF;
47752    --
47753    -- Bug 4922099
47754    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47755           (NVL(l_enc_upg_option, 'N') = 'O')
47756         ) AND
47757         (l_bflow_method_code = 'PRIOR_ENTRY')
47758       )
47759    THEN
47760       IF
47761       --
47762       1 = 2
47763       --
47764       THEN
47765       xla_accounting_err_pkg.build_message
47766                                     (p_appli_s_name            => 'XLA'
47767                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47768                                     ,p_token_1                 => 'LINE_NUMBER'
47769                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
47770                                     ,p_token_2                 => 'LINE_TYPE_NAME'
47771                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
47772                                                                              l_component_type
47773                                                                             ,l_component_code
47774                                                                             ,l_component_type_code
47775                                                                             ,l_component_appl_id
47776                                                                             ,l_amb_context_code
47777                                                                             ,l_entity_code
47778                                                                             ,l_event_class_code
47779                                                                            )
47780                                     ,p_token_3                 => 'OWNER'
47781                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
47782                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
47783                                                                           ,p_lookup_code    => l_component_type_code
47784                                                                          )
47785                                     ,p_token_4                 => 'PRODUCT_NAME'
47786                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47787                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47788                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47789                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47790                                     ,p_ae_header_id            =>  NULL
47791                                        );
47792 
47793         IF (C_LEVEL_ERROR>= g_log_level) THEN
47794                  trace
47795                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47796                       ,p_level    => C_LEVEL_ERROR
47797                       ,p_module   => l_log_module);
47798         END IF;
47799       END IF;
47800    END IF;
47801    --
47802    --
47803    ------------------------------------------------------------------------------------------------
47804    -- 4219869 Business Flow
47805    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47806    -- Prior Entry.  Currently, the following code is always generated.
47807    ------------------------------------------------------------------------------------------------
47808    XLA_AE_LINES_PKG.ValidateCurrentLine;
47809 
47810    ------------------------------------------------------------------------------------
47811    -- 4219869 Business Flow
47812    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47813    ------------------------------------------------------------------------------------
47814    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47815 
47816    ----------------------------------------------------------------------------------
47817    -- 4219869 Business Flow
47818    -- Update journal entry status -- Need to generate this within IF <condition>
47819    ----------------------------------------------------------------------------------
47820    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47821          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47822          ,p_balance_type_code => l_balance_type_code
47823          );
47824 
47825    -------------------------------------------------------------------------------------------
47826    -- 4262811 - Generate the Accrual Reversal lines
47827    -------------------------------------------------------------------------------------------
47828    BEGIN
47829       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47830                               (g_array_event(p_event_id).array_value_num('header_index'));
47831       IF l_acc_rev_flag IS NULL THEN
47832          l_acc_rev_flag := 'N';
47833       END IF;
47834    EXCEPTION
47835       WHEN OTHERS THEN
47836          l_acc_rev_flag := 'N';
47837    END;
47838    --
47839    IF (l_acc_rev_flag = 'Y') THEN
47840 
47841        -- 4645092  ------------------------------------------------------------------------------
47842        -- To allow MPA report to determine if it should generate report process
47846        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47843        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47844        ------------------------------------------------------------------------------------------
47845 
47847        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47848    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
47849    -- call ADRs
47850    -- Bug 4922099
47851    --
47852    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47853         (NVL(l_actual_upg_option, 'N') = 'O') OR
47854         (NVL(l_enc_upg_option, 'N') = 'O')
47855       )
47856    THEN
47857    NULL;
47858    --
47859    --
47860    
47861   l_ccid := AcctDerRule_33(
47862            p_application_id           => p_application_id
47863          , p_ae_header_id             => l_ae_header_id 
47864 , p_source_16 => p_source_16
47865 , p_source_16_meaning => p_source_16_meaning
47866 , p_source_29 => p_source_29
47867 , p_source_44 => p_source_44
47868 , p_source_45 => p_source_45
47869          , x_transaction_coa_id       => l_adr_transaction_coa_id
47870          , x_accounting_coa_id        => l_adr_accounting_coa_id
47871          , x_value_type_code          => l_adr_value_type_code
47872          , p_side                     => 'CREDIT'
47873    );
47874 
47875    xla_ae_lines_pkg.set_ccid(
47876     p_code_combination_id          => l_ccid
47877   , p_value_type_code              => l_adr_value_type_code
47878   , p_transaction_coa_id           => l_adr_transaction_coa_id
47879   , p_accounting_coa_id            => l_adr_accounting_coa_id
47880   , p_adr_code                     => 'AP_REAL_GAIN'
47881   , p_adr_type_code                => 'S'
47882   , p_component_type               => l_component_type
47883   , p_component_code               => l_component_code
47884   , p_component_type_code          => l_component_type_code
47885   , p_component_appl_id            => l_component_appl_id
47886   , p_amb_context_code             => l_amb_context_code
47887   , p_side                         => 'CREDIT'
47888   );
47889 
47890 
47891   l_ccid := AcctDerRule_34(
47892            p_application_id           => p_application_id
47893          , p_ae_header_id             => l_ae_header_id 
47894 , p_source_16 => p_source_16
47895 , p_source_16_meaning => p_source_16_meaning
47896 , p_source_29 => p_source_29
47897 , p_source_46 => p_source_46
47898 , p_source_47 => p_source_47
47899          , x_transaction_coa_id       => l_adr_transaction_coa_id
47900          , x_accounting_coa_id        => l_adr_accounting_coa_id
47901          , x_value_type_code          => l_adr_value_type_code
47902          , p_side                     => 'DEBIT'
47903    );
47904 
47905    xla_ae_lines_pkg.set_ccid(
47906     p_code_combination_id          => l_ccid
47907   , p_value_type_code              => l_adr_value_type_code
47908   , p_transaction_coa_id           => l_adr_transaction_coa_id
47909   , p_accounting_coa_id            => l_adr_accounting_coa_id
47910   , p_adr_code                     => 'AP_REAL_LOSS'
47911   , p_adr_type_code                => 'S'
47912   , p_component_type               => l_component_type
47913   , p_component_code               => l_component_code
47914   , p_component_type_code          => l_component_type_code
47915   , p_component_appl_id            => l_component_appl_id
47916   , p_amb_context_code             => l_amb_context_code
47917   , p_side                         => 'DEBIT'
47918   );
47919 
47920 
47921    --
47922    --
47923    END IF;
47924 
47925        --
47926        -- Update the line information that should be overwritten
47927        --
47928        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47929                                          p_header_num   => 1);
47930        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
47931 
47932        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47933 
47934        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
47935           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47936        END IF;
47937 
47938       --
47939       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47940       --
47941       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47942           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
47943       ELSE
47944           ---------------------------------------------------------------------------------------------------
47945           -- 4262811a Switch Sign
47946           ---------------------------------------------------------------------------------------------------
47947           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
47948           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47949                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47950           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47951                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47952           -- 5132302
47956       END IF;
47953           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47954                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47955 
47957 
47958       -- 4955764
47959       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47960       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47961 
47962 
47963       XLA_AE_LINES_PKG.ValidateCurrentLine;
47964       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47965 
47966       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47967                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47968                ,p_balance_type_code => l_balance_type_code);
47969 
47970    END IF;
47971 
47972    -----------------------------------------------------------------------------------------
47973    -- 4262811 Multiperiod Accounting
47974    -----------------------------------------------------------------------------------------
47975      -- No MPA option is assigned.
47976 
47977 
47978 END IF;
47979 END IF;
47980 --
47981 
47982 --
47983 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47984    trace
47985       (p_msg      => 'END of AcctLineType_95'
47986       ,p_level    => C_LEVEL_PROCEDURE
47987       ,p_module   => l_log_module);
47988 END IF;
47989 --
47990 EXCEPTION
47991   WHEN xla_exceptions_pkg.application_exception THEN
47992       RAISE;
47993   WHEN OTHERS THEN
47994        xla_exceptions_pkg.raise_message
47995            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_95');
47996 END AcctLineType_95;
47997 --
47998 
47999 ---------------------------------------
48000 --
48001 -- PRIVATE FUNCTION
48002 --         AcctLineType_96
48003 --
48004 ---------------------------------------
48005 PROCEDURE AcctLineType_96 (
48006   p_application_id        IN NUMBER
48007  ,p_event_id              IN NUMBER
48008  ,p_calculate_acctd_flag  IN VARCHAR2
48009  ,p_calculate_g_l_flag    IN VARCHAR2
48010  ,p_actual_flag           IN OUT VARCHAR2
48011  ,p_balance_type_code     OUT VARCHAR2
48012  ,p_gain_or_loss_ref      OUT VARCHAR2
48013  
48014 --Automatic Offsets Value
48015  , p_source_16            IN VARCHAR2
48016  , p_source_16_meaning    IN VARCHAR2
48017 --Invoice Distribution Account
48018  , p_source_29            IN NUMBER
48019 --Internal Realized Gain Account
48020  , p_source_44            IN NUMBER
48021 --Bank Gain Account
48022  , p_source_45            IN NUMBER
48023 --Internal Realized Loss Account
48024  , p_source_46            IN NUMBER
48025 --Bank Loss Account
48026  , p_source_47            IN NUMBER
48027 --When to Account for Payment Option
48028  , p_source_50            IN VARCHAR2
48029 --Payment Distribution Type
48030  , p_source_51            IN VARCHAR2
48031  , p_source_51_meaning    IN VARCHAR2
48032 --Accounting Reversal Indicator
48033  , p_source_52            IN VARCHAR2
48034 --Business Flow Accounts Payable Application Identifier
48035  , p_source_54            IN NUMBER
48036 --Business Flow Payment Distribution Type
48037  , p_source_55            IN VARCHAR2
48038 --Business Flow Payment Entity Code
48039  , p_source_56            IN VARCHAR2
48040 --Business Flow Payment Distribution Identifier
48041  , p_source_57            IN NUMBER
48042 --Business Flow Payment Identifier
48043  , p_source_58            IN NUMBER
48044 --Payment Distribution Identifier
48045  , p_source_59            IN NUMBER
48046 --Distribution Link Type
48047  , p_source_60            IN VARCHAR2
48048 --Override Accounted Amount Indicator
48049  , p_source_64            IN VARCHAR2
48050  , p_source_64_meaning    IN VARCHAR2
48051 --Payment Supplier Identifier
48052  , p_source_65            IN NUMBER
48053 --Payment Supplier Site Identifier
48054  , p_source_66            IN NUMBER
48055 --Third Party Type
48056  , p_source_67            IN VARCHAR2
48057 --Payment Distribution Reversed Identifier
48058  , p_source_68            IN NUMBER
48059 --Payment Maturity Date
48060  , p_source_118            IN DATE
48061 --Payment/Maturity Ledger Amount Difference
48062  , p_source_135            IN NUMBER
48063 )
48064 IS
48065 
48066 l_component_type              VARCHAR2(80);
48067 l_component_code              VARCHAR2(30);
48068 l_component_type_code         VARCHAR2(1);
48069 l_component_appl_id           INTEGER;
48070 l_amb_context_code            VARCHAR2(30);
48071 l_entity_code                 VARCHAR2(30);
48072 l_event_class_code            VARCHAR2(30);
48073 l_ae_header_id                NUMBER;
48074 l_event_type_code             VARCHAR2(30);
48075 l_line_definition_code        VARCHAR2(30);
48076 l_line_definition_owner_code  VARCHAR2(1);
48077 --
48078 -- adr variables
48079 l_segment                     VARCHAR2(30);
48080 l_ccid                        NUMBER;
48081 l_adr_transaction_coa_id      NUMBER;
48082 l_adr_accounting_coa_id       NUMBER;
48083 l_adr_flexfield_segment_code  VARCHAR2(30);
48084 l_adr_flex_value_set_id       NUMBER;
48085 l_adr_value_type_code         VARCHAR2(30);
48086 l_adr_value_combination_id    NUMBER;
48087 l_adr_value_segment_code      VARCHAR2(30);
48088 
48089 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
48093 
48090 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
48091 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
48092 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
48094 -- 4262811 Variables ------------------------------------------------------------------------------------------
48095 l_entered_amt_idx             NUMBER;
48096 l_accted_amt_idx              NUMBER;
48097 l_acc_rev_flag                VARCHAR2(1);
48098 l_accrual_line_num            NUMBER;
48099 l_tmp_amt                     NUMBER;
48100 l_acc_rev_natural_side_code   VARCHAR2(1);
48101 
48102 l_num_entries                 NUMBER;
48103 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
48104 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
48105 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
48106 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
48107 l_recog_line_1                NUMBER;
48108 l_recog_line_2                NUMBER;
48109 
48110 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
48111 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
48112 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
48113 
48114 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48115 
48116 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
48117 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
48118 
48119 ---------------------------------------------------------------------------------------------------------------
48120 
48121 
48122 --
48123 -- bulk performance
48124 --
48125 l_balance_type_code           VARCHAR2(1);
48126 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
48127 l_log_module                  VARCHAR2(240);
48128 
48129 --
48130 -- Upgrade strategy
48131 --
48132 l_actual_upg_option           VARCHAR2(1);
48133 l_enc_upg_option           VARCHAR2(1);
48134 
48135 --
48136 BEGIN
48137 --
48138 IF g_log_enabled THEN
48139       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_96';
48140 END IF;
48141 --
48142 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48143 
48144       trace
48145          (p_msg      => 'BEGIN of AcctLineType_96'
48146          ,p_level    => C_LEVEL_PROCEDURE
48147          ,p_module   => l_log_module);
48148 
48149 END IF;
48150 --
48151 l_component_type             := 'AMB_JLT';
48152 l_component_code             := 'AP_GAIN_LOSS_PMT_MAT';
48153 l_component_type_code        := 'S';
48154 l_component_appl_id          :=  200;
48155 l_amb_context_code           := 'DEFAULT';
48156 l_entity_code                := 'AP_PAYMENTS';
48157 l_event_class_code           := 'FUTURE DATED PAYMENTS';
48158 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
48159 l_line_definition_owner_code := 'S';
48160 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
48161 --
48162 l_balance_type_code          := 'A';
48163 l_segment                     := NULL;
48164 l_ccid                        := NULL;
48165 l_adr_transaction_coa_id      := NULL;
48166 l_adr_accounting_coa_id       := NULL;
48167 l_adr_flexfield_segment_code  := NULL;
48168 l_adr_flex_value_set_id       := NULL;
48169 l_adr_value_type_code         := NULL;
48170 l_adr_value_combination_id    := NULL;
48171 l_adr_value_segment_code      := NULL;
48172 
48173 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
48174 l_bflow_class_code           := '';    -- 4219869 Business Flow
48175 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
48176 l_budgetary_control_flag     := 'N';
48177 
48178 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
48179 l_bflow_applied_to_amt       := NULL; -- 5132302
48180 l_entered_amt_idx            := NULL;          -- 4262811
48181 l_accted_amt_idx             := NULL;          -- 4262811
48182 l_acc_rev_flag               := NULL;          -- 4262811
48183 l_accrual_line_num           := NULL;          -- 4262811
48184 l_tmp_amt                    := NULL;          -- 4262811
48185 --
48186 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
48187             (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
48188                return;
48189   END IF;
48190   
48191 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48192     l_balance_type_code <> 'B' THEN
48193 IF (NVL(p_source_50,'
48194 ') =  'ALWAYS_ALWAYS' OR 
48195 NVL(p_source_50,'
48196 ') =  'ALWAYS_ISSUE') AND 
48197 p_source_118 IS NOT NULL AND 
48198 NVL(p_source_51,'
48199 ') <>  'EXCHANGE RATE VARIANCE' AND 
48200 NVL(p_source_51,'
48201 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
48202 NVL(p_source_51,'
48203 ') <>  'BANK CHARGE' AND 
48204 NVL(p_source_51,'
48205 ') <>  'BANK ERROR'
48206  THEN 
48207 
48208    --
48209    XLA_AE_LINES_PKG.SetNewLine;
48210 
48211    p_balance_type_code          := l_balance_type_code;
48212    -- set the flag so later we will know whether the gain loss line needs to be created
48213    
48214    IF(l_balance_type_code = 'A' ) THEN
48215      p_actual_flag :='G';
48216    END IF;
48217 
48218    --
48219    -- bulk performance
48220    --
48224    -- set accounting line options
48221    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48222                                       p_header_num   => 0); -- 4262811
48223    --
48225    --
48226    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48227            p_natural_side_code          => 'G'
48228          , p_gain_or_loss_flag          => 'N'
48229          , p_gl_transfer_mode_code      => 'S'
48230          , p_acct_entry_type_code       => 'A'
48231          , p_switch_side_flag           => ''
48232          , p_merge_duplicate_code       => 'A'
48233          );
48234    --
48235    l_acc_rev_natural_side_code := 'C';  -- 4262811
48236    -- 
48237    --
48238    -- set accounting line type info
48239    --
48240    xla_ae_lines_pkg.SetAcctLineType
48241       (p_component_type             => l_component_type
48242       ,p_event_type_code            => l_event_type_code
48243       ,p_line_definition_owner_code => l_line_definition_owner_code
48244       ,p_line_definition_code       => l_line_definition_code
48245       ,p_accounting_line_code       => l_component_code
48246       ,p_accounting_line_type_code  => l_component_type_code
48247       ,p_accounting_line_appl_id    => l_component_appl_id
48248       ,p_amb_context_code           => l_amb_context_code
48249       ,p_entity_code                => l_entity_code
48250       ,p_event_class_code           => l_event_class_code);
48251    --
48252    -- set accounting class
48253    --
48254    xla_ae_lines_pkg.SetAcctClass(
48255            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
48256          , p_ae_header_id           => l_ae_header_id
48257          );
48258 
48259    --
48260    -- set rounding class
48261    --
48262    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48263                       'EXCHANGE_GAIN_LOSS';
48264 
48265    --
48266    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48267    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48268    --
48269    -- bulk performance
48270    --
48271    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48272 
48273    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48274       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48275 
48276    -- 4955764
48277    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48278       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48279 
48280    -- 4458381 Public Sector Enh
48281    
48282    --
48283    -- set accounting attributes for the line type
48284    --
48285    l_entered_amt_idx := NULL;
48286    l_accted_amt_idx  := 9;
48287    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
48288    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48289    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
48290    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
48291    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
48292    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48293    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
48294    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
48295    l_rec_acct_attrs.array_char_value(4)  := p_source_56;
48296    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
48297    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
48298    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48299    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
48300    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
48301    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
48302    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
48303    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
48304    l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
48305    l_rec_acct_attrs.array_num_value(9)  := p_source_135;
48306    l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
48307    l_rec_acct_attrs.array_char_value(10)  := p_source_64;
48308    l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
48309    l_rec_acct_attrs.array_num_value(11)  := p_source_65;
48310    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
48311    l_rec_acct_attrs.array_num_value(12)  := p_source_66;
48312    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
48313    l_rec_acct_attrs.array_char_value(13)  := p_source_67;
48314    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
48315    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_68);
48316    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
48317    l_rec_acct_attrs.array_char_value(15)  := p_source_60;
48318 
48319    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48320    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48321 
48322    ---------------------------------------------------------------------------------------------------------------
48323    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48324    ---------------------------------------------------------------------------------------------------------------
48328    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48325    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48326 
48327    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48329 
48330    IF xla_accounting_cache_pkg.GetValueChar
48331          (p_source_code         => 'LEDGER_CATEGORY_CODE'
48332          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48333    AND l_bflow_method_code = 'PRIOR_ENTRY'
48334 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48335    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48336          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48337        )
48338    THEN
48339          xla_ae_lines_pkg.BflowUpgEntry
48340            (p_business_method_code    => l_bflow_method_code
48341            ,p_business_class_code     => l_bflow_class_code
48342            ,p_balance_type            => l_balance_type_code);
48343    ELSE
48344       NULL;
48345 -- No business flow processing for business flow method of NONE.
48346    END IF;
48347 
48348    --
48349    -- call analytical criteria
48350    --
48351    
48352    --
48353    -- call description
48354    --
48355    -- No description or it is inherited.
48356    --
48357    -- call ADRs
48358    -- Bug 4922099
48359    --
48360    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48361         (NVL(l_actual_upg_option, 'N') = 'O') OR
48362         (NVL(l_enc_upg_option, 'N') = 'O')
48363       )
48364    THEN
48365    NULL;
48366    --
48367    --
48368    
48369   l_ccid := AcctDerRule_33(
48370            p_application_id           => p_application_id
48371          , p_ae_header_id             => l_ae_header_id 
48372 , p_source_16 => p_source_16
48373 , p_source_16_meaning => p_source_16_meaning
48374 , p_source_29 => p_source_29
48375 , p_source_44 => p_source_44
48376 , p_source_45 => p_source_45
48377          , x_transaction_coa_id       => l_adr_transaction_coa_id
48378          , x_accounting_coa_id        => l_adr_accounting_coa_id
48379          , x_value_type_code          => l_adr_value_type_code
48380          , p_side                     => 'CREDIT'
48381    );
48382 
48383    xla_ae_lines_pkg.set_ccid(
48384     p_code_combination_id          => l_ccid
48385   , p_value_type_code              => l_adr_value_type_code
48386   , p_transaction_coa_id           => l_adr_transaction_coa_id
48387   , p_accounting_coa_id            => l_adr_accounting_coa_id
48388   , p_adr_code                     => 'AP_REAL_GAIN'
48389   , p_adr_type_code                => 'S'
48390   , p_component_type               => l_component_type
48391   , p_component_code               => l_component_code
48392   , p_component_type_code          => l_component_type_code
48393   , p_component_appl_id            => l_component_appl_id
48394   , p_amb_context_code             => l_amb_context_code
48395   , p_side                         => 'CREDIT'
48396   );
48397 
48398 
48399   l_ccid := AcctDerRule_34(
48400            p_application_id           => p_application_id
48401          , p_ae_header_id             => l_ae_header_id 
48402 , p_source_16 => p_source_16
48403 , p_source_16_meaning => p_source_16_meaning
48404 , p_source_29 => p_source_29
48405 , p_source_46 => p_source_46
48406 , p_source_47 => p_source_47
48407          , x_transaction_coa_id       => l_adr_transaction_coa_id
48408          , x_accounting_coa_id        => l_adr_accounting_coa_id
48409          , x_value_type_code          => l_adr_value_type_code
48410          , p_side                     => 'DEBIT'
48411    );
48412 
48413    xla_ae_lines_pkg.set_ccid(
48414     p_code_combination_id          => l_ccid
48415   , p_value_type_code              => l_adr_value_type_code
48416   , p_transaction_coa_id           => l_adr_transaction_coa_id
48417   , p_accounting_coa_id            => l_adr_accounting_coa_id
48418   , p_adr_code                     => 'AP_REAL_LOSS'
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_side                         => 'DEBIT'
48426   );
48427 
48428 
48429    --
48430    --
48431    END IF;
48432    --
48433    -- Bug 4922099
48434    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48435           (NVL(l_enc_upg_option, 'N') = 'O')
48436         ) AND
48437         (l_bflow_method_code = 'PRIOR_ENTRY')
48438       )
48439    THEN
48440       IF
48441       --
48442       1 = 2
48443       --
48444       THEN
48445       xla_accounting_err_pkg.build_message
48446                                     (p_appli_s_name            => 'XLA'
48447                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48448                                     ,p_token_1                 => 'LINE_NUMBER'
48449                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
48450                                     ,p_token_2                 => 'LINE_TYPE_NAME'
48454                                                                             ,l_component_type_code
48451                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
48452                                                                              l_component_type
48453                                                                             ,l_component_code
48455                                                                             ,l_component_appl_id
48456                                                                             ,l_amb_context_code
48457                                                                             ,l_entity_code
48458                                                                             ,l_event_class_code
48459                                                                            )
48460                                     ,p_token_3                 => 'OWNER'
48461                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
48462                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
48463                                                                           ,p_lookup_code    => l_component_type_code
48464                                                                          )
48465                                     ,p_token_4                 => 'PRODUCT_NAME'
48466                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48467                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48468                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48469                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48470                                     ,p_ae_header_id            =>  NULL
48471                                        );
48472 
48473         IF (C_LEVEL_ERROR>= g_log_level) THEN
48474                  trace
48475                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48476                       ,p_level    => C_LEVEL_ERROR
48477                       ,p_module   => l_log_module);
48478         END IF;
48479       END IF;
48480    END IF;
48481    --
48482    --
48483    ------------------------------------------------------------------------------------------------
48484    -- 4219869 Business Flow
48485    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48486    -- Prior Entry.  Currently, the following code is always generated.
48487    ------------------------------------------------------------------------------------------------
48488    XLA_AE_LINES_PKG.ValidateCurrentLine;
48489 
48490    ------------------------------------------------------------------------------------
48491    -- 4219869 Business Flow
48492    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48493    ------------------------------------------------------------------------------------
48494    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48495 
48496    ----------------------------------------------------------------------------------
48497    -- 4219869 Business Flow
48498    -- Update journal entry status -- Need to generate this within IF <condition>
48499    ----------------------------------------------------------------------------------
48500    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48501          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48502          ,p_balance_type_code => l_balance_type_code
48503          );
48504 
48505    -------------------------------------------------------------------------------------------
48506    -- 4262811 - Generate the Accrual Reversal lines
48507    -------------------------------------------------------------------------------------------
48508    BEGIN
48509       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48510                               (g_array_event(p_event_id).array_value_num('header_index'));
48511       IF l_acc_rev_flag IS NULL THEN
48512          l_acc_rev_flag := 'N';
48513       END IF;
48514    EXCEPTION
48515       WHEN OTHERS THEN
48516          l_acc_rev_flag := 'N';
48517    END;
48518    --
48519    IF (l_acc_rev_flag = 'Y') THEN
48520 
48521        -- 4645092  ------------------------------------------------------------------------------
48522        -- To allow MPA report to determine if it should generate report process
48523        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48524        ------------------------------------------------------------------------------------------
48525 
48526        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48527        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48528    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
48529    -- call ADRs
48530    -- Bug 4922099
48531    --
48532    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48533         (NVL(l_actual_upg_option, 'N') = 'O') OR
48534         (NVL(l_enc_upg_option, 'N') = 'O')
48535       )
48536    THEN
48537    NULL;
48538    --
48539    --
48540    
48541   l_ccid := AcctDerRule_33(
48542            p_application_id           => p_application_id
48543          , p_ae_header_id             => l_ae_header_id 
48544 , p_source_16 => p_source_16
48545 , p_source_16_meaning => p_source_16_meaning
48549          , x_transaction_coa_id       => l_adr_transaction_coa_id
48546 , p_source_29 => p_source_29
48547 , p_source_44 => p_source_44
48548 , p_source_45 => p_source_45
48550          , x_accounting_coa_id        => l_adr_accounting_coa_id
48551          , x_value_type_code          => l_adr_value_type_code
48552          , p_side                     => 'CREDIT'
48553    );
48554 
48555    xla_ae_lines_pkg.set_ccid(
48556     p_code_combination_id          => l_ccid
48557   , p_value_type_code              => l_adr_value_type_code
48558   , p_transaction_coa_id           => l_adr_transaction_coa_id
48559   , p_accounting_coa_id            => l_adr_accounting_coa_id
48560   , p_adr_code                     => 'AP_REAL_GAIN'
48561   , p_adr_type_code                => 'S'
48562   , p_component_type               => l_component_type
48563   , p_component_code               => l_component_code
48564   , p_component_type_code          => l_component_type_code
48565   , p_component_appl_id            => l_component_appl_id
48566   , p_amb_context_code             => l_amb_context_code
48567   , p_side                         => 'CREDIT'
48568   );
48569 
48570 
48571   l_ccid := AcctDerRule_34(
48572            p_application_id           => p_application_id
48573          , p_ae_header_id             => l_ae_header_id 
48574 , p_source_16 => p_source_16
48575 , p_source_16_meaning => p_source_16_meaning
48576 , p_source_29 => p_source_29
48577 , p_source_46 => p_source_46
48578 , p_source_47 => p_source_47
48579          , x_transaction_coa_id       => l_adr_transaction_coa_id
48580          , x_accounting_coa_id        => l_adr_accounting_coa_id
48581          , x_value_type_code          => l_adr_value_type_code
48582          , p_side                     => 'DEBIT'
48583    );
48584 
48585    xla_ae_lines_pkg.set_ccid(
48586     p_code_combination_id          => l_ccid
48587   , p_value_type_code              => l_adr_value_type_code
48588   , p_transaction_coa_id           => l_adr_transaction_coa_id
48589   , p_accounting_coa_id            => l_adr_accounting_coa_id
48590   , p_adr_code                     => 'AP_REAL_LOSS'
48591   , p_adr_type_code                => 'S'
48592   , p_component_type               => l_component_type
48593   , p_component_code               => l_component_code
48594   , p_component_type_code          => l_component_type_code
48595   , p_component_appl_id            => l_component_appl_id
48596   , p_amb_context_code             => l_amb_context_code
48597   , p_side                         => 'DEBIT'
48598   );
48599 
48600 
48601    --
48602    --
48603    END IF;
48604 
48605        --
48606        -- Update the line information that should be overwritten
48607        --
48608        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48609                                          p_header_num   => 1);
48610        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
48611 
48612        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48613 
48614        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
48615           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48616        END IF;
48617 
48618       --
48619       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48620       --
48621       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48622           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
48623       ELSE
48624           ---------------------------------------------------------------------------------------------------
48625           -- 4262811a Switch Sign
48626           ---------------------------------------------------------------------------------------------------
48627           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
48628           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48629                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48630           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48631                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48632           -- 5132302
48633           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48634                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48635 
48636       END IF;
48637 
48638       -- 4955764
48639       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48640       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48641 
48642 
48643       XLA_AE_LINES_PKG.ValidateCurrentLine;
48644       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48645 
48646       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48647                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48648                ,p_balance_type_code => l_balance_type_code);
48649 
48650    END IF;
48651 
48652    -----------------------------------------------------------------------------------------
48653    -- 4262811 Multiperiod Accounting
48657 
48654    -----------------------------------------------------------------------------------------
48655      -- No MPA option is assigned.
48656 
48658 END IF;
48659 END IF;
48660 --
48661 
48662 --
48663 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48664    trace
48665       (p_msg      => 'END of AcctLineType_96'
48666       ,p_level    => C_LEVEL_PROCEDURE
48667       ,p_module   => l_log_module);
48668 END IF;
48669 --
48670 EXCEPTION
48671   WHEN xla_exceptions_pkg.application_exception THEN
48672       RAISE;
48673   WHEN OTHERS THEN
48674        xla_exceptions_pkg.raise_message
48675            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_96');
48676 END AcctLineType_96;
48677 --
48678 
48679 ---------------------------------------
48680 --
48681 -- PRIVATE FUNCTION
48682 --         AcctLineType_97
48683 --
48684 ---------------------------------------
48685 PROCEDURE AcctLineType_97 (
48686   p_application_id        IN NUMBER
48687  ,p_event_id              IN NUMBER
48688  ,p_calculate_acctd_flag  IN VARCHAR2
48689  ,p_calculate_g_l_flag    IN VARCHAR2
48690  ,p_actual_flag           IN OUT VARCHAR2
48691  ,p_balance_type_code     OUT VARCHAR2
48692  ,p_gain_or_loss_ref      OUT VARCHAR2
48693  
48694 --Payment Currency Code
48695  , p_source_12            IN VARCHAR2
48696 --Automatic Offsets Value
48697  , p_source_16            IN VARCHAR2
48698  , p_source_16_meaning    IN VARCHAR2
48699 --Invoice Distribution Account
48700  , p_source_29            IN NUMBER
48701 --Internal Realized Gain Account
48702  , p_source_44            IN NUMBER
48703 --Bank Gain Account
48704  , p_source_45            IN NUMBER
48705 --When to Account for Payment Option
48706  , p_source_50            IN VARCHAR2
48707 --Payment Distribution Type
48708  , p_source_51            IN VARCHAR2
48709  , p_source_51_meaning    IN VARCHAR2
48710 --Accounting Reversal Indicator
48711  , p_source_52            IN VARCHAR2
48712 --Payment Distribution Amount
48713  , p_source_53            IN NUMBER
48714 --Business Flow Accounts Payable Application Identifier
48715  , p_source_54            IN NUMBER
48716 --Business Flow Payment Distribution Type
48717  , p_source_55            IN VARCHAR2
48718 --Business Flow Payment Entity Code
48719  , p_source_56            IN VARCHAR2
48720 --Business Flow Payment Distribution Identifier
48721  , p_source_57            IN NUMBER
48722 --Business Flow Payment Identifier
48723  , p_source_58            IN NUMBER
48724 --Payment Distribution Identifier
48725  , p_source_59            IN NUMBER
48726 --Distribution Link Type
48727  , p_source_60            IN VARCHAR2
48728 --Override Accounted Amount Indicator
48729  , p_source_64            IN VARCHAR2
48730  , p_source_64_meaning    IN VARCHAR2
48731 --Payment Supplier Identifier
48732  , p_source_65            IN NUMBER
48733 --Payment Supplier Site Identifier
48734  , p_source_66            IN NUMBER
48735 --Third Party Type
48736  , p_source_67            IN VARCHAR2
48737 --Payment Distribution Reversed Identifier
48738  , p_source_68            IN NUMBER
48739 --Invoice Distribution Tax Line Identifier
48740  , p_source_69            IN NUMBER
48741 --Invoice Distribution Summary Tax Line Identifier
48742  , p_source_70            IN NUMBER
48743 --Cleared Exchange Date
48744  , p_source_114            IN DATE
48745 --Cleared Exchange Rate
48746  , p_source_115            IN NUMBER
48747 --Cleared Exchange Rate Type
48748  , p_source_116            IN VARCHAR2
48749 --Payment Maturity Date
48750  , p_source_118            IN DATE
48751 --Gain or Loss Indicator between Maturity and Clearing
48752  , p_source_136            IN VARCHAR2
48753 --Maturity/Clearing Ledger Amount Difference
48754  , p_source_137            IN NUMBER
48755 )
48756 IS
48757 
48758 l_component_type              VARCHAR2(80);
48759 l_component_code              VARCHAR2(30);
48760 l_component_type_code         VARCHAR2(1);
48761 l_component_appl_id           INTEGER;
48762 l_amb_context_code            VARCHAR2(30);
48763 l_entity_code                 VARCHAR2(30);
48764 l_event_class_code            VARCHAR2(30);
48765 l_ae_header_id                NUMBER;
48766 l_event_type_code             VARCHAR2(30);
48767 l_line_definition_code        VARCHAR2(30);
48768 l_line_definition_owner_code  VARCHAR2(1);
48769 --
48770 -- adr variables
48771 l_segment                     VARCHAR2(30);
48772 l_ccid                        NUMBER;
48773 l_adr_transaction_coa_id      NUMBER;
48774 l_adr_accounting_coa_id       NUMBER;
48775 l_adr_flexfield_segment_code  VARCHAR2(30);
48776 l_adr_flex_value_set_id       NUMBER;
48777 l_adr_value_type_code         VARCHAR2(30);
48778 l_adr_value_combination_id    NUMBER;
48779 l_adr_value_segment_code      VARCHAR2(30);
48780 
48781 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
48782 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
48783 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
48784 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
48785 
48786 -- 4262811 Variables ------------------------------------------------------------------------------------------
48787 l_entered_amt_idx             NUMBER;
48788 l_accted_amt_idx              NUMBER;
48789 l_acc_rev_flag                VARCHAR2(1);
48790 l_accrual_line_num            NUMBER;
48791 l_tmp_amt                     NUMBER;
48792 l_acc_rev_natural_side_code   VARCHAR2(1);
48796 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
48793 
48794 l_num_entries                 NUMBER;
48795 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
48797 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
48798 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
48799 l_recog_line_1                NUMBER;
48800 l_recog_line_2                NUMBER;
48801 
48802 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
48803 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
48804 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
48805 
48806 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48807 
48808 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
48809 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
48810 
48811 ---------------------------------------------------------------------------------------------------------------
48812 
48813 
48814 --
48815 -- bulk performance
48816 --
48817 l_balance_type_code           VARCHAR2(1);
48818 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
48819 l_log_module                  VARCHAR2(240);
48820 
48821 --
48822 -- Upgrade strategy
48823 --
48824 l_actual_upg_option           VARCHAR2(1);
48825 l_enc_upg_option           VARCHAR2(1);
48826 
48827 --
48828 BEGIN
48829 --
48830 IF g_log_enabled THEN
48831       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_97';
48832 END IF;
48833 --
48834 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48835 
48836       trace
48837          (p_msg      => 'BEGIN of AcctLineType_97'
48838          ,p_level    => C_LEVEL_PROCEDURE
48839          ,p_module   => l_log_module);
48840 
48841 END IF;
48842 --
48843 l_component_type             := 'AMB_JLT';
48844 l_component_code             := 'AP_GAIN_MAT_CLEAR';
48845 l_component_type_code        := 'S';
48846 l_component_appl_id          :=  200;
48847 l_amb_context_code           := 'DEFAULT';
48848 l_entity_code                := 'AP_PAYMENTS';
48849 l_event_class_code           := 'RECONCILED PAYMENTS';
48850 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
48851 l_line_definition_owner_code := 'S';
48852 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
48853 --
48854 l_balance_type_code          := 'A';
48855 l_segment                     := NULL;
48856 l_ccid                        := NULL;
48857 l_adr_transaction_coa_id      := NULL;
48858 l_adr_accounting_coa_id       := NULL;
48859 l_adr_flexfield_segment_code  := NULL;
48860 l_adr_flex_value_set_id       := NULL;
48861 l_adr_value_type_code         := NULL;
48862 l_adr_value_combination_id    := NULL;
48863 l_adr_value_segment_code      := NULL;
48864 
48865 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
48866 l_bflow_class_code           := '';    -- 4219869 Business Flow
48867 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
48868 l_budgetary_control_flag     := 'N';
48869 
48870 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
48871 l_bflow_applied_to_amt       := NULL; -- 5132302
48872 l_entered_amt_idx            := NULL;          -- 4262811
48873 l_accted_amt_idx             := NULL;          -- 4262811
48874 l_acc_rev_flag               := NULL;          -- 4262811
48875 l_accrual_line_num           := NULL;          -- 4262811
48876 l_tmp_amt                    := NULL;          -- 4262811
48877 --
48878 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
48879             (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
48880                return;
48881   END IF;
48882   
48883 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48884     l_balance_type_code <> 'B' THEN
48885 IF NVL(p_source_50,'
48886 ') =  'ALWAYS_ALWAYS' AND 
48887 p_source_118 IS NOT NULL AND 
48888 NVL(p_source_136,'
48889 ') =  'GAIN' AND 
48890 NVL(p_source_51,'
48891 ') <>  'EXCHANGE RATE VARIANCE' AND 
48892 NVL(p_source_51,'
48893 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
48894 NVL(p_source_51,'
48895 ') <>  'BANK CHARGE' AND 
48896 NVL(p_source_51,'
48897 ') <>  'BANK ERROR'
48898  THEN 
48899 
48900    --
48901    XLA_AE_LINES_PKG.SetNewLine;
48902 
48903    p_balance_type_code          := l_balance_type_code;
48904    -- set the flag so later we will know whether the gain loss line needs to be created
48905    
48906    IF(l_balance_type_code = 'A' ) THEN
48907      p_actual_flag :='G';
48908    END IF;
48909 
48910    --
48911    -- bulk performance
48912    --
48913    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48914                                       p_header_num   => 0); -- 4262811
48915    --
48916    -- set accounting line options
48917    --
48918    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48919            p_natural_side_code          => 'C'
48920          , p_gain_or_loss_flag          => 'Y'
48921          , p_gl_transfer_mode_code      => 'S'
48922          , p_acct_entry_type_code       => 'A'
48923          , p_switch_side_flag           => 'Y'
48924          , p_merge_duplicate_code       => 'A'
48928    -- 
48925          );
48926    --
48927    l_acc_rev_natural_side_code := 'D';  -- 4262811
48929    --
48930    -- set accounting line type info
48931    --
48932    xla_ae_lines_pkg.SetAcctLineType
48933       (p_component_type             => l_component_type
48934       ,p_event_type_code            => l_event_type_code
48935       ,p_line_definition_owner_code => l_line_definition_owner_code
48936       ,p_line_definition_code       => l_line_definition_code
48937       ,p_accounting_line_code       => l_component_code
48938       ,p_accounting_line_type_code  => l_component_type_code
48939       ,p_accounting_line_appl_id    => l_component_appl_id
48940       ,p_amb_context_code           => l_amb_context_code
48941       ,p_entity_code                => l_entity_code
48942       ,p_event_class_code           => l_event_class_code);
48943    --
48944    -- set accounting class
48945    --
48946    xla_ae_lines_pkg.SetAcctClass(
48947            p_accounting_class_code  => 'GAIN'
48948          , p_ae_header_id           => l_ae_header_id
48949          );
48950 
48951    --
48952    -- set rounding class
48953    --
48954    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48955                       'GAIN';
48956 
48957    --
48958    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48959    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48960    --
48961    -- bulk performance
48962    --
48963    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48964 
48965    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48966       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48967 
48968    -- 4955764
48969    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48970       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48971 
48972    -- 4458381 Public Sector Enh
48973    
48974    --
48975    -- set accounting attributes for the line type
48976    --
48977    l_entered_amt_idx := 10;
48978    l_accted_amt_idx  := 15;
48979    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
48980    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48981    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
48982    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
48983    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
48984    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
48985    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
48986    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48987    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
48988    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
48989    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
48990    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
48991    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
48992    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48993    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
48994    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
48995    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
48996    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
48997    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
48998    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
48999    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
49000    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
49001    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
49002    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
49003    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
49004    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
49005    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
49006    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
49007    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
49008    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
49009    l_rec_acct_attrs.array_num_value(15)  := p_source_137;
49010    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
49011    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
49012    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
49013    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
49014    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
49015    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
49016    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
49017    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
49018    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
49019    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
49020    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
49021    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
49022    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
49023    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
49024    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
49025    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
49026    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
49027    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
49028 
49032    ---------------------------------------------------------------------------------------------------------------
49029    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49030    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49031 
49033    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49034    ---------------------------------------------------------------------------------------------------------------
49035    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49036 
49037    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49038    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49039 
49040    IF xla_accounting_cache_pkg.GetValueChar
49041          (p_source_code         => 'LEDGER_CATEGORY_CODE'
49042          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49043    AND l_bflow_method_code = 'PRIOR_ENTRY'
49044 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49045    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49046          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49047        )
49048    THEN
49049          xla_ae_lines_pkg.BflowUpgEntry
49050            (p_business_method_code    => l_bflow_method_code
49051            ,p_business_class_code     => l_bflow_class_code
49052            ,p_balance_type            => l_balance_type_code);
49053    ELSE
49054       NULL;
49055 -- No business flow processing for business flow method of NONE.
49056    END IF;
49057 
49058    --
49059    -- call analytical criteria
49060    --
49061    
49062    --
49063    -- call description
49064    --
49065    -- No description or it is inherited.
49066    --
49067    -- call ADRs
49068    -- Bug 4922099
49069    --
49070    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49071         (NVL(l_actual_upg_option, 'N') = 'O') OR
49072         (NVL(l_enc_upg_option, 'N') = 'O')
49073       )
49074    THEN
49075    NULL;
49076    --
49077    --
49078    
49079   l_ccid := AcctDerRule_33(
49080            p_application_id           => p_application_id
49081          , p_ae_header_id             => l_ae_header_id 
49082 , p_source_16 => p_source_16
49083 , p_source_16_meaning => p_source_16_meaning
49084 , p_source_29 => p_source_29
49085 , p_source_44 => p_source_44
49086 , p_source_45 => p_source_45
49087          , x_transaction_coa_id       => l_adr_transaction_coa_id
49088          , x_accounting_coa_id        => l_adr_accounting_coa_id
49089          , x_value_type_code          => l_adr_value_type_code
49090          , p_side                     => 'NA'
49091    );
49092 
49093    xla_ae_lines_pkg.set_ccid(
49094     p_code_combination_id          => l_ccid
49095   , p_value_type_code              => l_adr_value_type_code
49096   , p_transaction_coa_id           => l_adr_transaction_coa_id
49097   , p_accounting_coa_id            => l_adr_accounting_coa_id
49098   , p_adr_code                     => 'AP_REAL_GAIN'
49099   , p_adr_type_code                => 'S'
49100   , p_component_type               => l_component_type
49101   , p_component_code               => l_component_code
49102   , p_component_type_code          => l_component_type_code
49103   , p_component_appl_id            => l_component_appl_id
49104   , p_amb_context_code             => l_amb_context_code
49105   , p_side                         => 'NA'
49106   );
49107 
49108 
49109    --
49110    --
49111    END IF;
49112    --
49113    -- Bug 4922099
49114    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49115           (NVL(l_enc_upg_option, 'N') = 'O')
49116         ) AND
49117         (l_bflow_method_code = 'PRIOR_ENTRY')
49118       )
49119    THEN
49120       IF
49121       --
49122       1 = 2
49123       --
49124       THEN
49125       xla_accounting_err_pkg.build_message
49126                                     (p_appli_s_name            => 'XLA'
49127                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49128                                     ,p_token_1                 => 'LINE_NUMBER'
49129                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
49130                                     ,p_token_2                 => 'LINE_TYPE_NAME'
49131                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
49132                                                                              l_component_type
49133                                                                             ,l_component_code
49134                                                                             ,l_component_type_code
49135                                                                             ,l_component_appl_id
49136                                                                             ,l_amb_context_code
49137                                                                             ,l_entity_code
49138                                                                             ,l_event_class_code
49139                                                                            )
49140                                     ,p_token_3                 => 'OWNER'
49144                                                                          )
49141                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
49142                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
49143                                                                           ,p_lookup_code    => l_component_type_code
49145                                     ,p_token_4                 => 'PRODUCT_NAME'
49146                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49147                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49148                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49149                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49150                                     ,p_ae_header_id            =>  NULL
49151                                        );
49152 
49153         IF (C_LEVEL_ERROR>= g_log_level) THEN
49154                  trace
49155                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49156                       ,p_level    => C_LEVEL_ERROR
49157                       ,p_module   => l_log_module);
49158         END IF;
49159       END IF;
49160    END IF;
49161    --
49162    --
49163    ------------------------------------------------------------------------------------------------
49164    -- 4219869 Business Flow
49165    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49166    -- Prior Entry.  Currently, the following code is always generated.
49167    ------------------------------------------------------------------------------------------------
49168    XLA_AE_LINES_PKG.ValidateCurrentLine;
49169 
49170    ------------------------------------------------------------------------------------
49171    -- 4219869 Business Flow
49172    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49173    ------------------------------------------------------------------------------------
49174    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49175 
49176    ----------------------------------------------------------------------------------
49177    -- 4219869 Business Flow
49178    -- Update journal entry status -- Need to generate this within IF <condition>
49179    ----------------------------------------------------------------------------------
49180    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49181          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49182          ,p_balance_type_code => l_balance_type_code
49183          );
49184 
49185    -------------------------------------------------------------------------------------------
49186    -- 4262811 - Generate the Accrual Reversal lines
49187    -------------------------------------------------------------------------------------------
49188    BEGIN
49189       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49190                               (g_array_event(p_event_id).array_value_num('header_index'));
49191       IF l_acc_rev_flag IS NULL THEN
49192          l_acc_rev_flag := 'N';
49193       END IF;
49194    EXCEPTION
49195       WHEN OTHERS THEN
49196          l_acc_rev_flag := 'N';
49197    END;
49198    --
49199    IF (l_acc_rev_flag = 'Y') THEN
49200 
49201        -- 4645092  ------------------------------------------------------------------------------
49202        -- To allow MPA report to determine if it should generate report process
49203        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49204        ------------------------------------------------------------------------------------------
49205 
49206        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49207        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49208    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
49209    -- call ADRs
49210    -- Bug 4922099
49211    --
49212    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49213         (NVL(l_actual_upg_option, 'N') = 'O') OR
49214         (NVL(l_enc_upg_option, 'N') = 'O')
49215       )
49216    THEN
49217    NULL;
49218    --
49219    --
49220    
49221   l_ccid := AcctDerRule_33(
49222            p_application_id           => p_application_id
49223          , p_ae_header_id             => l_ae_header_id 
49224 , p_source_16 => p_source_16
49225 , p_source_16_meaning => p_source_16_meaning
49226 , p_source_29 => p_source_29
49227 , p_source_44 => p_source_44
49228 , p_source_45 => p_source_45
49229          , x_transaction_coa_id       => l_adr_transaction_coa_id
49230          , x_accounting_coa_id        => l_adr_accounting_coa_id
49231          , x_value_type_code          => l_adr_value_type_code
49232          , p_side                     => 'NA'
49233    );
49234 
49235    xla_ae_lines_pkg.set_ccid(
49236     p_code_combination_id          => l_ccid
49237   , p_value_type_code              => l_adr_value_type_code
49238   , p_transaction_coa_id           => l_adr_transaction_coa_id
49239   , p_accounting_coa_id            => l_adr_accounting_coa_id
49240   , p_adr_code                     => 'AP_REAL_GAIN'
49241   , p_adr_type_code                => 'S'
49242   , p_component_type               => l_component_type
49243   , p_component_code               => l_component_code
49247   , p_side                         => 'NA'
49244   , p_component_type_code          => l_component_type_code
49245   , p_component_appl_id            => l_component_appl_id
49246   , p_amb_context_code             => l_amb_context_code
49248   );
49249 
49250 
49251    --
49252    --
49253    END IF;
49254 
49255        --
49256        -- Update the line information that should be overwritten
49257        --
49258        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49259                                          p_header_num   => 1);
49260        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
49261 
49262        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49263 
49264        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
49265           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49266        END IF;
49267 
49268       --
49269       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49270       --
49271       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49272           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
49273       ELSE
49274           ---------------------------------------------------------------------------------------------------
49275           -- 4262811a Switch Sign
49276           ---------------------------------------------------------------------------------------------------
49277           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
49278           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49279                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49280           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49281                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49282           -- 5132302
49283           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49284                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49285 
49286       END IF;
49287 
49288       -- 4955764
49289       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49290       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49291 
49292 
49293       XLA_AE_LINES_PKG.ValidateCurrentLine;
49294       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49295 
49296       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49297                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49298                ,p_balance_type_code => l_balance_type_code);
49299 
49300    END IF;
49301 
49302    -----------------------------------------------------------------------------------------
49303    -- 4262811 Multiperiod Accounting
49304    -----------------------------------------------------------------------------------------
49305      -- No MPA option is assigned.
49306 
49307 
49308 END IF;
49309 END IF;
49310 --
49311 
49312 --
49313 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49314    trace
49315       (p_msg      => 'END of AcctLineType_97'
49316       ,p_level    => C_LEVEL_PROCEDURE
49317       ,p_module   => l_log_module);
49318 END IF;
49319 --
49320 EXCEPTION
49321   WHEN xla_exceptions_pkg.application_exception THEN
49322       RAISE;
49323   WHEN OTHERS THEN
49324        xla_exceptions_pkg.raise_message
49325            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_97');
49326 END AcctLineType_97;
49327 --
49328 
49329 ---------------------------------------
49330 --
49331 -- PRIVATE FUNCTION
49332 --         AcctLineType_98
49333 --
49334 ---------------------------------------
49335 PROCEDURE AcctLineType_98 (
49336   p_application_id        IN NUMBER
49337  ,p_event_id              IN NUMBER
49338  ,p_calculate_acctd_flag  IN VARCHAR2
49339  ,p_calculate_g_l_flag    IN VARCHAR2
49340  ,p_actual_flag           IN OUT VARCHAR2
49341  ,p_balance_type_code     OUT VARCHAR2
49342  ,p_gain_or_loss_ref      OUT VARCHAR2
49343  
49344 --Payment Currency Code
49345  , p_source_12            IN VARCHAR2
49346 --Automatic Offsets Value
49347  , p_source_16            IN VARCHAR2
49348  , p_source_16_meaning    IN VARCHAR2
49349 --Invoice Distribution Account
49350  , p_source_29            IN NUMBER
49351 --Internal Realized Gain Account
49352  , p_source_44            IN NUMBER
49353 --Bank Gain Account
49354  , p_source_45            IN NUMBER
49355 --When to Account for Payment Option
49356  , p_source_50            IN VARCHAR2
49357 --Payment Distribution Type
49358  , p_source_51            IN VARCHAR2
49359  , p_source_51_meaning    IN VARCHAR2
49360 --Accounting Reversal Indicator
49361  , p_source_52            IN VARCHAR2
49362 --Payment Distribution Amount
49363  , p_source_53            IN NUMBER
49364 --Business Flow Accounts Payable Application Identifier
49365  , p_source_54            IN NUMBER
49366 --Business Flow Payment Distribution Type
49367  , p_source_55            IN VARCHAR2
49368 --Business Flow Payment Entity Code
49369  , p_source_56            IN VARCHAR2
49373  , p_source_58            IN NUMBER
49370 --Business Flow Payment Distribution Identifier
49371  , p_source_57            IN NUMBER
49372 --Business Flow Payment Identifier
49374 --Payment Distribution Identifier
49375  , p_source_59            IN NUMBER
49376 --Distribution Link Type
49377  , p_source_60            IN VARCHAR2
49378 --Override Accounted Amount Indicator
49379  , p_source_64            IN VARCHAR2
49380  , p_source_64_meaning    IN VARCHAR2
49381 --Payment Supplier Identifier
49382  , p_source_65            IN NUMBER
49383 --Payment Supplier Site Identifier
49384  , p_source_66            IN NUMBER
49385 --Third Party Type
49386  , p_source_67            IN VARCHAR2
49387 --Payment Distribution Reversed Identifier
49388  , p_source_68            IN NUMBER
49389 --Invoice Distribution Tax Line Identifier
49390  , p_source_69            IN NUMBER
49391 --Invoice Distribution Summary Tax Line Identifier
49392  , p_source_70            IN NUMBER
49393 --Cleared Exchange Date
49394  , p_source_114            IN DATE
49395 --Cleared Exchange Rate
49396  , p_source_115            IN NUMBER
49397 --Cleared Exchange Rate Type
49398  , p_source_116            IN VARCHAR2
49399 --Payment Maturity Date
49400  , p_source_118            IN DATE
49401 --Gain or Loss Indicator between Payment and Clearing
49402  , p_source_138            IN VARCHAR2
49403 --Payment/Clearing Ledger Amount Difference
49404  , p_source_139            IN NUMBER
49405 )
49406 IS
49407 
49408 l_component_type              VARCHAR2(80);
49409 l_component_code              VARCHAR2(30);
49410 l_component_type_code         VARCHAR2(1);
49411 l_component_appl_id           INTEGER;
49412 l_amb_context_code            VARCHAR2(30);
49413 l_entity_code                 VARCHAR2(30);
49414 l_event_class_code            VARCHAR2(30);
49415 l_ae_header_id                NUMBER;
49416 l_event_type_code             VARCHAR2(30);
49417 l_line_definition_code        VARCHAR2(30);
49418 l_line_definition_owner_code  VARCHAR2(1);
49419 --
49420 -- adr variables
49421 l_segment                     VARCHAR2(30);
49422 l_ccid                        NUMBER;
49423 l_adr_transaction_coa_id      NUMBER;
49424 l_adr_accounting_coa_id       NUMBER;
49425 l_adr_flexfield_segment_code  VARCHAR2(30);
49426 l_adr_flex_value_set_id       NUMBER;
49427 l_adr_value_type_code         VARCHAR2(30);
49428 l_adr_value_combination_id    NUMBER;
49429 l_adr_value_segment_code      VARCHAR2(30);
49430 
49431 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
49432 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
49433 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
49434 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
49435 
49436 -- 4262811 Variables ------------------------------------------------------------------------------------------
49437 l_entered_amt_idx             NUMBER;
49438 l_accted_amt_idx              NUMBER;
49439 l_acc_rev_flag                VARCHAR2(1);
49440 l_accrual_line_num            NUMBER;
49441 l_tmp_amt                     NUMBER;
49442 l_acc_rev_natural_side_code   VARCHAR2(1);
49443 
49444 l_num_entries                 NUMBER;
49445 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
49446 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
49447 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
49448 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
49449 l_recog_line_1                NUMBER;
49450 l_recog_line_2                NUMBER;
49451 
49452 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
49453 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
49454 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
49455 
49456 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49457 
49458 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
49459 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
49460 
49461 ---------------------------------------------------------------------------------------------------------------
49462 
49463 
49464 --
49465 -- bulk performance
49466 --
49467 l_balance_type_code           VARCHAR2(1);
49468 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
49469 l_log_module                  VARCHAR2(240);
49470 
49471 --
49472 -- Upgrade strategy
49473 --
49474 l_actual_upg_option           VARCHAR2(1);
49475 l_enc_upg_option           VARCHAR2(1);
49476 
49477 --
49478 BEGIN
49479 --
49480 IF g_log_enabled THEN
49481       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_98';
49482 END IF;
49483 --
49484 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49485 
49486       trace
49487          (p_msg      => 'BEGIN of AcctLineType_98'
49488          ,p_level    => C_LEVEL_PROCEDURE
49489          ,p_module   => l_log_module);
49490 
49491 END IF;
49492 --
49493 l_component_type             := 'AMB_JLT';
49494 l_component_code             := 'AP_GAIN_PMT_CLEAR';
49495 l_component_type_code        := 'S';
49496 l_component_appl_id          :=  200;
49497 l_amb_context_code           := 'DEFAULT';
49498 l_entity_code                := 'AP_PAYMENTS';
49499 l_event_class_code           := 'RECONCILED PAYMENTS';
49503 --
49500 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
49501 l_line_definition_owner_code := 'S';
49502 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
49504 l_balance_type_code          := 'A';
49505 l_segment                     := NULL;
49506 l_ccid                        := NULL;
49507 l_adr_transaction_coa_id      := NULL;
49508 l_adr_accounting_coa_id       := NULL;
49509 l_adr_flexfield_segment_code  := NULL;
49510 l_adr_flex_value_set_id       := NULL;
49511 l_adr_value_type_code         := NULL;
49512 l_adr_value_combination_id    := NULL;
49513 l_adr_value_segment_code      := NULL;
49514 
49515 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
49516 l_bflow_class_code           := '';    -- 4219869 Business Flow
49517 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
49518 l_budgetary_control_flag     := 'N';
49519 
49520 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
49521 l_bflow_applied_to_amt       := NULL; -- 5132302
49522 l_entered_amt_idx            := NULL;          -- 4262811
49523 l_accted_amt_idx             := NULL;          -- 4262811
49524 l_acc_rev_flag               := NULL;          -- 4262811
49525 l_accrual_line_num           := NULL;          -- 4262811
49526 l_tmp_amt                    := NULL;          -- 4262811
49527 --
49528 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
49529             (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
49530                return;
49531   END IF;
49532   
49533 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49534     l_balance_type_code <> 'B' THEN
49535 IF NVL(p_source_50,'
49536 ') =  'ALWAYS_ALWAYS' AND 
49537 p_source_118 IS NULL AND 
49538 NVL(p_source_138,'
49539 ') =  'GAIN' AND 
49540 NVL(p_source_51,'
49541 ') <>  'EXCHANGE RATE VARIANCE' AND 
49542 NVL(p_source_51,'
49543 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
49544 NVL(p_source_51,'
49545 ') <>  'BANK CHARGE' AND 
49546 NVL(p_source_51,'
49547 ') <>  'BANK ERROR' AND 
49548 NVL(p_source_51,'
49549 ') <>  'AWT'
49550  THEN 
49551 
49552    --
49553    XLA_AE_LINES_PKG.SetNewLine;
49554 
49555    p_balance_type_code          := l_balance_type_code;
49556    -- set the flag so later we will know whether the gain loss line needs to be created
49557    
49558    IF(l_balance_type_code = 'A' ) THEN
49559      p_actual_flag :='G';
49560    END IF;
49561 
49562    --
49563    -- bulk performance
49564    --
49565    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49566                                       p_header_num   => 0); -- 4262811
49567    --
49568    -- set accounting line options
49569    --
49570    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49571            p_natural_side_code          => 'C'
49572          , p_gain_or_loss_flag          => 'Y'
49573          , p_gl_transfer_mode_code      => 'S'
49574          , p_acct_entry_type_code       => 'A'
49575          , p_switch_side_flag           => 'Y'
49576          , p_merge_duplicate_code       => 'A'
49577          );
49578    --
49579    l_acc_rev_natural_side_code := 'D';  -- 4262811
49580    -- 
49581    --
49582    -- set accounting line type info
49583    --
49584    xla_ae_lines_pkg.SetAcctLineType
49585       (p_component_type             => l_component_type
49586       ,p_event_type_code            => l_event_type_code
49587       ,p_line_definition_owner_code => l_line_definition_owner_code
49588       ,p_line_definition_code       => l_line_definition_code
49589       ,p_accounting_line_code       => l_component_code
49590       ,p_accounting_line_type_code  => l_component_type_code
49591       ,p_accounting_line_appl_id    => l_component_appl_id
49592       ,p_amb_context_code           => l_amb_context_code
49593       ,p_entity_code                => l_entity_code
49594       ,p_event_class_code           => l_event_class_code);
49595    --
49596    -- set accounting class
49597    --
49598    xla_ae_lines_pkg.SetAcctClass(
49599            p_accounting_class_code  => 'GAIN'
49600          , p_ae_header_id           => l_ae_header_id
49601          );
49602 
49603    --
49604    -- set rounding class
49605    --
49606    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49607                       'GAIN';
49608 
49609    --
49610    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49611    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49612    --
49613    -- bulk performance
49614    --
49615    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49616 
49617    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49618       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49619 
49620    -- 4955764
49621    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49622       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49623 
49624    -- 4458381 Public Sector Enh
49625    
49626    --
49627    -- set accounting attributes for the line type
49628    --
49629    l_entered_amt_idx := 10;
49630    l_accted_amt_idx  := 15;
49634    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
49631    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
49632    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49633    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
49635    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
49636    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
49637    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
49638    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49639    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
49640    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
49641    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
49642    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
49643    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
49644    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49645    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
49646    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
49647    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
49648    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
49649    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
49650    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
49651    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
49652    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
49653    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
49654    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
49655    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
49656    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
49657    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
49658    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
49659    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
49660    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
49661    l_rec_acct_attrs.array_num_value(15)  := p_source_139;
49662    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
49663    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
49664    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
49665    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
49666    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
49667    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
49668    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
49669    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
49670    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
49671    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
49672    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
49673    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
49674    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
49675    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
49676    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
49677    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
49678    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
49679    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
49680 
49681    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49682    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49683 
49684    ---------------------------------------------------------------------------------------------------------------
49685    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49686    ---------------------------------------------------------------------------------------------------------------
49687    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49688 
49689    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49690    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49691 
49692    IF xla_accounting_cache_pkg.GetValueChar
49693          (p_source_code         => 'LEDGER_CATEGORY_CODE'
49694          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49695    AND l_bflow_method_code = 'PRIOR_ENTRY'
49696 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49697    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49698          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49699        )
49700    THEN
49701          xla_ae_lines_pkg.BflowUpgEntry
49702            (p_business_method_code    => l_bflow_method_code
49703            ,p_business_class_code     => l_bflow_class_code
49704            ,p_balance_type            => l_balance_type_code);
49705    ELSE
49706       NULL;
49707 -- No business flow processing for business flow method of NONE.
49708    END IF;
49709 
49710    --
49711    -- call analytical criteria
49712    --
49713    
49714    --
49715    -- call description
49716    --
49717    -- No description or it is inherited.
49718    --
49719    -- call ADRs
49720    -- Bug 4922099
49721    --
49722    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49723         (NVL(l_actual_upg_option, 'N') = 'O') OR
49724         (NVL(l_enc_upg_option, 'N') = 'O')
49725       )
49726    THEN
49727    NULL;
49728    --
49732            p_application_id           => p_application_id
49729    --
49730    
49731   l_ccid := AcctDerRule_33(
49733          , p_ae_header_id             => l_ae_header_id 
49734 , p_source_16 => p_source_16
49735 , p_source_16_meaning => p_source_16_meaning
49736 , p_source_29 => p_source_29
49737 , p_source_44 => p_source_44
49738 , p_source_45 => p_source_45
49739          , x_transaction_coa_id       => l_adr_transaction_coa_id
49740          , x_accounting_coa_id        => l_adr_accounting_coa_id
49741          , x_value_type_code          => l_adr_value_type_code
49742          , p_side                     => 'NA'
49743    );
49744 
49745    xla_ae_lines_pkg.set_ccid(
49746     p_code_combination_id          => l_ccid
49747   , p_value_type_code              => l_adr_value_type_code
49748   , p_transaction_coa_id           => l_adr_transaction_coa_id
49749   , p_accounting_coa_id            => l_adr_accounting_coa_id
49750   , p_adr_code                     => 'AP_REAL_GAIN'
49751   , p_adr_type_code                => 'S'
49752   , p_component_type               => l_component_type
49753   , p_component_code               => l_component_code
49754   , p_component_type_code          => l_component_type_code
49755   , p_component_appl_id            => l_component_appl_id
49756   , p_amb_context_code             => l_amb_context_code
49757   , p_side                         => 'NA'
49758   );
49759 
49760 
49761    --
49762    --
49763    END IF;
49764    --
49765    -- Bug 4922099
49766    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49767           (NVL(l_enc_upg_option, 'N') = 'O')
49768         ) AND
49769         (l_bflow_method_code = 'PRIOR_ENTRY')
49770       )
49771    THEN
49772       IF
49773       --
49774       1 = 2
49775       --
49776       THEN
49777       xla_accounting_err_pkg.build_message
49778                                     (p_appli_s_name            => 'XLA'
49779                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49780                                     ,p_token_1                 => 'LINE_NUMBER'
49781                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
49782                                     ,p_token_2                 => 'LINE_TYPE_NAME'
49783                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
49784                                                                              l_component_type
49785                                                                             ,l_component_code
49786                                                                             ,l_component_type_code
49787                                                                             ,l_component_appl_id
49788                                                                             ,l_amb_context_code
49789                                                                             ,l_entity_code
49790                                                                             ,l_event_class_code
49791                                                                            )
49792                                     ,p_token_3                 => 'OWNER'
49793                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
49794                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
49795                                                                           ,p_lookup_code    => l_component_type_code
49796                                                                          )
49797                                     ,p_token_4                 => 'PRODUCT_NAME'
49798                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49799                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49800                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49801                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49802                                     ,p_ae_header_id            =>  NULL
49803                                        );
49804 
49805         IF (C_LEVEL_ERROR>= g_log_level) THEN
49806                  trace
49807                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49808                       ,p_level    => C_LEVEL_ERROR
49809                       ,p_module   => l_log_module);
49810         END IF;
49811       END IF;
49812    END IF;
49813    --
49814    --
49815    ------------------------------------------------------------------------------------------------
49816    -- 4219869 Business Flow
49817    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49818    -- Prior Entry.  Currently, the following code is always generated.
49819    ------------------------------------------------------------------------------------------------
49820    XLA_AE_LINES_PKG.ValidateCurrentLine;
49821 
49822    ------------------------------------------------------------------------------------
49823    -- 4219869 Business Flow
49824    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49825    ------------------------------------------------------------------------------------
49826    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49827 
49831    ----------------------------------------------------------------------------------
49828    ----------------------------------------------------------------------------------
49829    -- 4219869 Business Flow
49830    -- Update journal entry status -- Need to generate this within IF <condition>
49832    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49833          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49834          ,p_balance_type_code => l_balance_type_code
49835          );
49836 
49837    -------------------------------------------------------------------------------------------
49838    -- 4262811 - Generate the Accrual Reversal lines
49839    -------------------------------------------------------------------------------------------
49840    BEGIN
49841       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49842                               (g_array_event(p_event_id).array_value_num('header_index'));
49843       IF l_acc_rev_flag IS NULL THEN
49844          l_acc_rev_flag := 'N';
49845       END IF;
49846    EXCEPTION
49847       WHEN OTHERS THEN
49848          l_acc_rev_flag := 'N';
49849    END;
49850    --
49851    IF (l_acc_rev_flag = 'Y') THEN
49852 
49853        -- 4645092  ------------------------------------------------------------------------------
49854        -- To allow MPA report to determine if it should generate report process
49855        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49856        ------------------------------------------------------------------------------------------
49857 
49858        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49859        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49860    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
49861    -- call ADRs
49862    -- Bug 4922099
49863    --
49864    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49865         (NVL(l_actual_upg_option, 'N') = 'O') OR
49866         (NVL(l_enc_upg_option, 'N') = 'O')
49867       )
49868    THEN
49869    NULL;
49870    --
49871    --
49872    
49873   l_ccid := AcctDerRule_33(
49874            p_application_id           => p_application_id
49875          , p_ae_header_id             => l_ae_header_id 
49876 , p_source_16 => p_source_16
49877 , p_source_16_meaning => p_source_16_meaning
49878 , p_source_29 => p_source_29
49879 , p_source_44 => p_source_44
49880 , p_source_45 => p_source_45
49881          , x_transaction_coa_id       => l_adr_transaction_coa_id
49882          , x_accounting_coa_id        => l_adr_accounting_coa_id
49883          , x_value_type_code          => l_adr_value_type_code
49884          , p_side                     => 'NA'
49885    );
49886 
49887    xla_ae_lines_pkg.set_ccid(
49888     p_code_combination_id          => l_ccid
49889   , p_value_type_code              => l_adr_value_type_code
49890   , p_transaction_coa_id           => l_adr_transaction_coa_id
49891   , p_accounting_coa_id            => l_adr_accounting_coa_id
49892   , p_adr_code                     => 'AP_REAL_GAIN'
49893   , p_adr_type_code                => 'S'
49894   , p_component_type               => l_component_type
49895   , p_component_code               => l_component_code
49896   , p_component_type_code          => l_component_type_code
49897   , p_component_appl_id            => l_component_appl_id
49898   , p_amb_context_code             => l_amb_context_code
49899   , p_side                         => 'NA'
49900   );
49901 
49902 
49903    --
49904    --
49905    END IF;
49906 
49907        --
49908        -- Update the line information that should be overwritten
49909        --
49910        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49911                                          p_header_num   => 1);
49912        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
49913 
49914        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49915 
49916        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
49917           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49918        END IF;
49919 
49920       --
49921       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49922       --
49923       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49924           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
49925       ELSE
49926           ---------------------------------------------------------------------------------------------------
49927           -- 4262811a Switch Sign
49928           ---------------------------------------------------------------------------------------------------
49929           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
49930           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49931                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49932           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49933                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49934           -- 5132302
49935           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49939 
49936                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49937 
49938       END IF;
49940       -- 4955764
49941       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49942       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49943 
49944 
49945       XLA_AE_LINES_PKG.ValidateCurrentLine;
49946       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49947 
49948       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49949                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49950                ,p_balance_type_code => l_balance_type_code);
49951 
49952    END IF;
49953 
49954    -----------------------------------------------------------------------------------------
49955    -- 4262811 Multiperiod Accounting
49956    -----------------------------------------------------------------------------------------
49957      -- No MPA option is assigned.
49958 
49959 
49960 END IF;
49961 END IF;
49962 --
49963 
49964 --
49965 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49966    trace
49967       (p_msg      => 'END of AcctLineType_98'
49968       ,p_level    => C_LEVEL_PROCEDURE
49969       ,p_module   => l_log_module);
49970 END IF;
49971 --
49972 EXCEPTION
49973   WHEN xla_exceptions_pkg.application_exception THEN
49974       RAISE;
49975   WHEN OTHERS THEN
49976        xla_exceptions_pkg.raise_message
49977            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_98');
49978 END AcctLineType_98;
49979 --
49980 
49981 ---------------------------------------
49982 --
49983 -- PRIVATE FUNCTION
49984 --         AcctLineType_99
49985 --
49986 ---------------------------------------
49987 PROCEDURE AcctLineType_99 (
49988   p_application_id        IN NUMBER
49989  ,p_event_id              IN NUMBER
49990  ,p_calculate_acctd_flag  IN VARCHAR2
49991  ,p_calculate_g_l_flag    IN VARCHAR2
49992  ,p_actual_flag           IN OUT VARCHAR2
49993  ,p_balance_type_code     OUT VARCHAR2
49994  ,p_gain_or_loss_ref      OUT VARCHAR2
49995  
49996 --Payment Currency Code
49997  , p_source_12            IN VARCHAR2
49998 --Automatic Offsets Value
49999  , p_source_16            IN VARCHAR2
50000  , p_source_16_meaning    IN VARCHAR2
50001 --Invoice Distribution Account
50002  , p_source_29            IN NUMBER
50003 --Internal Realized Gain Account
50004  , p_source_44            IN NUMBER
50005 --Bank Gain Account
50006  , p_source_45            IN NUMBER
50007 --When to Account for Payment Option
50008  , p_source_50            IN VARCHAR2
50009 --Payment Distribution Type
50010  , p_source_51            IN VARCHAR2
50011  , p_source_51_meaning    IN VARCHAR2
50012 --Accounting Reversal Indicator
50013  , p_source_52            IN VARCHAR2
50014 --Payment Distribution Amount
50015  , p_source_53            IN NUMBER
50016 --Business Flow Accounts Payable Application Identifier
50017  , p_source_54            IN NUMBER
50018 --Business Flow Payment Distribution Type
50019  , p_source_55            IN VARCHAR2
50020 --Business Flow Payment Entity Code
50021  , p_source_56            IN VARCHAR2
50022 --Business Flow Payment Distribution Identifier
50023  , p_source_57            IN NUMBER
50024 --Business Flow Payment Identifier
50025  , p_source_58            IN NUMBER
50026 --Payment Distribution Identifier
50027  , p_source_59            IN NUMBER
50028 --Distribution Link Type
50029  , p_source_60            IN VARCHAR2
50030 --Override Accounted Amount Indicator
50031  , p_source_64            IN VARCHAR2
50032  , p_source_64_meaning    IN VARCHAR2
50033 --Payment Supplier Identifier
50034  , p_source_65            IN NUMBER
50035 --Payment Supplier Site Identifier
50036  , p_source_66            IN NUMBER
50037 --Third Party Type
50038  , p_source_67            IN VARCHAR2
50039 --Payment Distribution Reversed Identifier
50040  , p_source_68            IN NUMBER
50041 --Payment Maturity Date
50042  , p_source_118            IN DATE
50043 --Payment Exchange Date
50044  , p_source_121            IN DATE
50045 --Payment Exchange Rate
50046  , p_source_122            IN NUMBER
50047 --Payment Exchange Rate Type
50048  , p_source_123            IN VARCHAR2
50049 --Payment/Maturity Ledger Amount Difference
50050  , p_source_135            IN NUMBER
50051 --Gain or Loss Indicator between Payment and Maturity
50052  , p_source_140            IN VARCHAR2
50053 )
50054 IS
50055 
50056 l_component_type              VARCHAR2(80);
50057 l_component_code              VARCHAR2(30);
50058 l_component_type_code         VARCHAR2(1);
50059 l_component_appl_id           INTEGER;
50060 l_amb_context_code            VARCHAR2(30);
50061 l_entity_code                 VARCHAR2(30);
50062 l_event_class_code            VARCHAR2(30);
50063 l_ae_header_id                NUMBER;
50064 l_event_type_code             VARCHAR2(30);
50065 l_line_definition_code        VARCHAR2(30);
50066 l_line_definition_owner_code  VARCHAR2(1);
50067 --
50068 -- adr variables
50069 l_segment                     VARCHAR2(30);
50070 l_ccid                        NUMBER;
50071 l_adr_transaction_coa_id      NUMBER;
50072 l_adr_accounting_coa_id       NUMBER;
50073 l_adr_flexfield_segment_code  VARCHAR2(30);
50074 l_adr_flex_value_set_id       NUMBER;
50075 l_adr_value_type_code         VARCHAR2(30);
50076 l_adr_value_combination_id    NUMBER;
50080 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
50077 l_adr_value_segment_code      VARCHAR2(30);
50078 
50079 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
50081 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
50082 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
50083 
50084 -- 4262811 Variables ------------------------------------------------------------------------------------------
50085 l_entered_amt_idx             NUMBER;
50086 l_accted_amt_idx              NUMBER;
50087 l_acc_rev_flag                VARCHAR2(1);
50088 l_accrual_line_num            NUMBER;
50089 l_tmp_amt                     NUMBER;
50090 l_acc_rev_natural_side_code   VARCHAR2(1);
50091 
50092 l_num_entries                 NUMBER;
50093 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
50094 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
50095 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
50096 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
50097 l_recog_line_1                NUMBER;
50098 l_recog_line_2                NUMBER;
50099 
50100 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
50101 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
50102 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
50103 
50104 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50105 
50106 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
50107 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
50108 
50109 ---------------------------------------------------------------------------------------------------------------
50110 
50111 
50112 --
50113 -- bulk performance
50114 --
50115 l_balance_type_code           VARCHAR2(1);
50116 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
50117 l_log_module                  VARCHAR2(240);
50118 
50119 --
50120 -- Upgrade strategy
50121 --
50122 l_actual_upg_option           VARCHAR2(1);
50123 l_enc_upg_option           VARCHAR2(1);
50124 
50125 --
50126 BEGIN
50127 --
50128 IF g_log_enabled THEN
50129       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_99';
50130 END IF;
50131 --
50132 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50133 
50134       trace
50135          (p_msg      => 'BEGIN of AcctLineType_99'
50136          ,p_level    => C_LEVEL_PROCEDURE
50137          ,p_module   => l_log_module);
50138 
50139 END IF;
50140 --
50141 l_component_type             := 'AMB_JLT';
50142 l_component_code             := 'AP_GAIN_PMT_MAT';
50143 l_component_type_code        := 'S';
50144 l_component_appl_id          :=  200;
50145 l_amb_context_code           := 'DEFAULT';
50146 l_entity_code                := 'AP_PAYMENTS';
50147 l_event_class_code           := 'FUTURE DATED PAYMENTS';
50148 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
50149 l_line_definition_owner_code := 'S';
50150 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
50151 --
50152 l_balance_type_code          := 'A';
50153 l_segment                     := NULL;
50154 l_ccid                        := NULL;
50155 l_adr_transaction_coa_id      := NULL;
50156 l_adr_accounting_coa_id       := NULL;
50157 l_adr_flexfield_segment_code  := NULL;
50158 l_adr_flex_value_set_id       := NULL;
50159 l_adr_value_type_code         := NULL;
50160 l_adr_value_combination_id    := NULL;
50161 l_adr_value_segment_code      := NULL;
50162 
50163 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
50164 l_bflow_class_code           := '';    -- 4219869 Business Flow
50165 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
50166 l_budgetary_control_flag     := 'N';
50167 
50168 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
50169 l_bflow_applied_to_amt       := NULL; -- 5132302
50170 l_entered_amt_idx            := NULL;          -- 4262811
50171 l_accted_amt_idx             := NULL;          -- 4262811
50172 l_acc_rev_flag               := NULL;          -- 4262811
50173 l_accrual_line_num           := NULL;          -- 4262811
50174 l_tmp_amt                    := NULL;          -- 4262811
50175 --
50176 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
50177             (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
50178                return;
50179   END IF;
50180   
50181 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50182     l_balance_type_code <> 'B' THEN
50183 IF (NVL(p_source_50,'
50184 ') =  'ALWAYS_ALWAYS' OR 
50185 NVL(p_source_50,'
50186 ') =  'ISSUE_ISSUE') AND 
50187 p_source_118 IS NOT NULL AND 
50188 NVL(p_source_140,'
50189 ') =  'GAIN' AND 
50190 NVL(p_source_51,'
50191 ') <>  'EXCHANGE RATE VARIANCE' AND 
50192 NVL(p_source_51,'
50193 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
50194 NVL(p_source_51,'
50195 ') <>  'BANK CHARGE' AND 
50196 NVL(p_source_51,'
50197 ') <>  'BANK ERROR' AND 
50198 NVL(p_source_51,'
50199 ') <>  'AWT'
50200  THEN 
50201 
50202    --
50203    XLA_AE_LINES_PKG.SetNewLine;
50204 
50205    p_balance_type_code          := l_balance_type_code;
50209      p_actual_flag :='G';
50206    -- set the flag so later we will know whether the gain loss line needs to be created
50207    
50208    IF(l_balance_type_code = 'A' ) THEN
50210    END IF;
50211 
50212    --
50213    -- bulk performance
50214    --
50215    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50216                                       p_header_num   => 0); -- 4262811
50217    --
50218    -- set accounting line options
50219    --
50220    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50221            p_natural_side_code          => 'C'
50222          , p_gain_or_loss_flag          => 'Y'
50223          , p_gl_transfer_mode_code      => 'S'
50224          , p_acct_entry_type_code       => 'A'
50225          , p_switch_side_flag           => 'Y'
50226          , p_merge_duplicate_code       => 'A'
50227          );
50228    --
50229    l_acc_rev_natural_side_code := 'D';  -- 4262811
50230    -- 
50231    --
50232    -- set accounting line type info
50233    --
50234    xla_ae_lines_pkg.SetAcctLineType
50235       (p_component_type             => l_component_type
50236       ,p_event_type_code            => l_event_type_code
50237       ,p_line_definition_owner_code => l_line_definition_owner_code
50238       ,p_line_definition_code       => l_line_definition_code
50239       ,p_accounting_line_code       => l_component_code
50240       ,p_accounting_line_type_code  => l_component_type_code
50241       ,p_accounting_line_appl_id    => l_component_appl_id
50242       ,p_amb_context_code           => l_amb_context_code
50243       ,p_entity_code                => l_entity_code
50244       ,p_event_class_code           => l_event_class_code);
50245    --
50246    -- set accounting class
50247    --
50248    xla_ae_lines_pkg.SetAcctClass(
50249            p_accounting_class_code  => 'GAIN'
50250          , p_ae_header_id           => l_ae_header_id
50251          );
50252 
50253    --
50254    -- set rounding class
50255    --
50256    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50257                       'GAIN';
50258 
50259    --
50260    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50261    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50262    --
50263    -- bulk performance
50264    --
50265    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50266 
50267    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50268       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50269 
50270    -- 4955764
50271    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50272       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50273 
50274    -- 4458381 Public Sector Enh
50275    
50276    --
50277    -- set accounting attributes for the line type
50278    --
50279    l_entered_amt_idx := 9;
50280    l_accted_amt_idx  := 14;
50281    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
50282    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
50283    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
50284    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
50285    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
50286    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50287    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
50288    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
50289    l_rec_acct_attrs.array_char_value(4)  := p_source_56;
50290    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
50291    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
50292    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50293    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
50294    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
50295    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
50296    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
50297    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
50298    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
50299    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
50300    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
50301    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
50302    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
50303    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
50304    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
50305    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
50306    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
50307    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
50308    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
50309    l_rec_acct_attrs.array_num_value(14)  := p_source_135;
50310    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
50311    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
50312    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
50313    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
50314    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
50315    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
50316    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
50320    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
50317    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
50318    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
50319    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
50321    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
50322 
50323    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50324    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50325 
50326    ---------------------------------------------------------------------------------------------------------------
50327    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50328    ---------------------------------------------------------------------------------------------------------------
50329    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50330 
50331    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50332    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50333 
50334    IF xla_accounting_cache_pkg.GetValueChar
50335          (p_source_code         => 'LEDGER_CATEGORY_CODE'
50336          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50337    AND l_bflow_method_code = 'PRIOR_ENTRY'
50338 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50339    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50340          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50341        )
50342    THEN
50343          xla_ae_lines_pkg.BflowUpgEntry
50344            (p_business_method_code    => l_bflow_method_code
50345            ,p_business_class_code     => l_bflow_class_code
50346            ,p_balance_type            => l_balance_type_code);
50347    ELSE
50348       NULL;
50349 -- No business flow processing for business flow method of NONE.
50350    END IF;
50351 
50352    --
50353    -- call analytical criteria
50354    --
50355    
50356    --
50357    -- call description
50358    --
50359    -- No description or it is inherited.
50360    --
50361    -- call ADRs
50362    -- Bug 4922099
50363    --
50364    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50365         (NVL(l_actual_upg_option, 'N') = 'O') OR
50366         (NVL(l_enc_upg_option, 'N') = 'O')
50367       )
50368    THEN
50369    NULL;
50370    --
50371    --
50372    
50373   l_ccid := AcctDerRule_33(
50374            p_application_id           => p_application_id
50375          , p_ae_header_id             => l_ae_header_id 
50376 , p_source_16 => p_source_16
50377 , p_source_16_meaning => p_source_16_meaning
50378 , p_source_29 => p_source_29
50379 , p_source_44 => p_source_44
50380 , p_source_45 => p_source_45
50381          , x_transaction_coa_id       => l_adr_transaction_coa_id
50382          , x_accounting_coa_id        => l_adr_accounting_coa_id
50383          , x_value_type_code          => l_adr_value_type_code
50384          , p_side                     => 'NA'
50385    );
50386 
50387    xla_ae_lines_pkg.set_ccid(
50388     p_code_combination_id          => l_ccid
50389   , p_value_type_code              => l_adr_value_type_code
50390   , p_transaction_coa_id           => l_adr_transaction_coa_id
50391   , p_accounting_coa_id            => l_adr_accounting_coa_id
50392   , p_adr_code                     => 'AP_REAL_GAIN'
50393   , p_adr_type_code                => 'S'
50394   , p_component_type               => l_component_type
50395   , p_component_code               => l_component_code
50396   , p_component_type_code          => l_component_type_code
50397   , p_component_appl_id            => l_component_appl_id
50398   , p_amb_context_code             => l_amb_context_code
50399   , p_side                         => 'NA'
50400   );
50401 
50402 
50403    --
50404    --
50405    END IF;
50406    --
50407    -- Bug 4922099
50408    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50409           (NVL(l_enc_upg_option, 'N') = 'O')
50410         ) AND
50411         (l_bflow_method_code = 'PRIOR_ENTRY')
50412       )
50413    THEN
50414       IF
50415       --
50416       1 = 2
50417       --
50418       THEN
50419       xla_accounting_err_pkg.build_message
50420                                     (p_appli_s_name            => 'XLA'
50421                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50422                                     ,p_token_1                 => 'LINE_NUMBER'
50423                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
50424                                     ,p_token_2                 => 'LINE_TYPE_NAME'
50425                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
50426                                                                              l_component_type
50427                                                                             ,l_component_code
50428                                                                             ,l_component_type_code
50429                                                                             ,l_component_appl_id
50430                                                                             ,l_amb_context_code
50434                                     ,p_token_3                 => 'OWNER'
50431                                                                             ,l_entity_code
50432                                                                             ,l_event_class_code
50433                                                                            )
50435                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
50436                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
50437                                                                           ,p_lookup_code    => l_component_type_code
50438                                                                          )
50439                                     ,p_token_4                 => 'PRODUCT_NAME'
50440                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50441                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50442                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50443                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50444                                     ,p_ae_header_id            =>  NULL
50445                                        );
50446 
50447         IF (C_LEVEL_ERROR>= g_log_level) THEN
50448                  trace
50449                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50450                       ,p_level    => C_LEVEL_ERROR
50451                       ,p_module   => l_log_module);
50452         END IF;
50453       END IF;
50454    END IF;
50455    --
50456    --
50457    ------------------------------------------------------------------------------------------------
50458    -- 4219869 Business Flow
50459    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50460    -- Prior Entry.  Currently, the following code is always generated.
50461    ------------------------------------------------------------------------------------------------
50462    XLA_AE_LINES_PKG.ValidateCurrentLine;
50463 
50464    ------------------------------------------------------------------------------------
50465    -- 4219869 Business Flow
50466    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50467    ------------------------------------------------------------------------------------
50468    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50469 
50470    ----------------------------------------------------------------------------------
50471    -- 4219869 Business Flow
50472    -- Update journal entry status -- Need to generate this within IF <condition>
50473    ----------------------------------------------------------------------------------
50474    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50475          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50476          ,p_balance_type_code => l_balance_type_code
50477          );
50478 
50479    -------------------------------------------------------------------------------------------
50480    -- 4262811 - Generate the Accrual Reversal lines
50481    -------------------------------------------------------------------------------------------
50482    BEGIN
50483       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50484                               (g_array_event(p_event_id).array_value_num('header_index'));
50485       IF l_acc_rev_flag IS NULL THEN
50486          l_acc_rev_flag := 'N';
50487       END IF;
50488    EXCEPTION
50489       WHEN OTHERS THEN
50490          l_acc_rev_flag := 'N';
50491    END;
50492    --
50493    IF (l_acc_rev_flag = 'Y') THEN
50494 
50495        -- 4645092  ------------------------------------------------------------------------------
50496        -- To allow MPA report to determine if it should generate report process
50497        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50498        ------------------------------------------------------------------------------------------
50499 
50500        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50501        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50502    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
50503    -- call ADRs
50504    -- Bug 4922099
50505    --
50506    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50507         (NVL(l_actual_upg_option, 'N') = 'O') OR
50508         (NVL(l_enc_upg_option, 'N') = 'O')
50509       )
50510    THEN
50511    NULL;
50512    --
50513    --
50514    
50515   l_ccid := AcctDerRule_33(
50516            p_application_id           => p_application_id
50517          , p_ae_header_id             => l_ae_header_id 
50518 , p_source_16 => p_source_16
50519 , p_source_16_meaning => p_source_16_meaning
50520 , p_source_29 => p_source_29
50521 , p_source_44 => p_source_44
50522 , p_source_45 => p_source_45
50523          , x_transaction_coa_id       => l_adr_transaction_coa_id
50524          , x_accounting_coa_id        => l_adr_accounting_coa_id
50525          , x_value_type_code          => l_adr_value_type_code
50526          , p_side                     => 'NA'
50527    );
50528 
50529    xla_ae_lines_pkg.set_ccid(
50530     p_code_combination_id          => l_ccid
50531   , p_value_type_code              => l_adr_value_type_code
50532   , p_transaction_coa_id           => l_adr_transaction_coa_id
50536   , p_component_type               => l_component_type
50533   , p_accounting_coa_id            => l_adr_accounting_coa_id
50534   , p_adr_code                     => 'AP_REAL_GAIN'
50535   , p_adr_type_code                => 'S'
50537   , p_component_code               => l_component_code
50538   , p_component_type_code          => l_component_type_code
50539   , p_component_appl_id            => l_component_appl_id
50540   , p_amb_context_code             => l_amb_context_code
50541   , p_side                         => 'NA'
50542   );
50543 
50544 
50545    --
50546    --
50547    END IF;
50548 
50549        --
50550        -- Update the line information that should be overwritten
50551        --
50552        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50553                                          p_header_num   => 1);
50554        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
50555 
50556        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50557 
50558        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
50559           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50560        END IF;
50561 
50562       --
50563       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50564       --
50565       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50566           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
50567       ELSE
50568           ---------------------------------------------------------------------------------------------------
50569           -- 4262811a Switch Sign
50570           ---------------------------------------------------------------------------------------------------
50571           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
50572           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50573                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50574           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50575                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50576           -- 5132302
50577           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50578                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50579 
50580       END IF;
50581 
50582       -- 4955764
50583       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50584       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50585 
50586 
50587       XLA_AE_LINES_PKG.ValidateCurrentLine;
50588       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50589 
50590       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50591                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50592                ,p_balance_type_code => l_balance_type_code);
50593 
50594    END IF;
50595 
50596    -----------------------------------------------------------------------------------------
50597    -- 4262811 Multiperiod Accounting
50598    -----------------------------------------------------------------------------------------
50599      -- No MPA option is assigned.
50600 
50601 
50602 END IF;
50603 END IF;
50604 --
50605 
50606 --
50607 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50608    trace
50609       (p_msg      => 'END of AcctLineType_99'
50610       ,p_level    => C_LEVEL_PROCEDURE
50611       ,p_module   => l_log_module);
50612 END IF;
50613 --
50614 EXCEPTION
50615   WHEN xla_exceptions_pkg.application_exception THEN
50616       RAISE;
50617   WHEN OTHERS THEN
50618        xla_exceptions_pkg.raise_message
50619            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_99');
50620 END AcctLineType_99;
50621 --
50622 
50623 ---------------------------------------
50624 --
50625 -- PRIVATE FUNCTION
50626 --         AcctLineType_100
50627 --
50628 ---------------------------------------
50629 PROCEDURE AcctLineType_100 (
50630   p_application_id        IN NUMBER
50631  ,p_event_id              IN NUMBER
50632  ,p_calculate_acctd_flag  IN VARCHAR2
50633  ,p_calculate_g_l_flag    IN VARCHAR2
50634  ,p_actual_flag           IN OUT VARCHAR2
50635  ,p_balance_type_code     OUT VARCHAR2
50636  ,p_gain_or_loss_ref      OUT VARCHAR2
50637  
50638 --Payment Currency Code
50639  , p_source_12            IN VARCHAR2
50640 --Payment Distribution (Cleared Rate) Ledger Amount
50641  , p_source_22            IN NUMBER
50642 --Interest Account
50643  , p_source_27            IN NUMBER
50644 --Prorate Interest Invoice Across Distributions Option
50645  , p_source_28            IN VARCHAR2
50646 --Invoice Distribution Account
50647  , p_source_29            IN NUMBER
50648 --Invoice Distribution Type
50649  , p_source_32            IN VARCHAR2
50650  , p_source_32_meaning    IN VARCHAR2
50651 --When to Account for Payment Option
50652  , p_source_50            IN VARCHAR2
50653 --Payment Distribution Type
50654  , p_source_51            IN VARCHAR2
50658 --Payment Distribution Amount
50655  , p_source_51_meaning    IN VARCHAR2
50656 --Accounting Reversal Indicator
50657  , p_source_52            IN VARCHAR2
50659  , p_source_53            IN NUMBER
50660 --Business Flow Accounts Payable Application Identifier
50661  , p_source_54            IN NUMBER
50662 --Business Flow Payment Distribution Type
50663  , p_source_55            IN VARCHAR2
50664 --Business Flow Payment Entity Code
50665  , p_source_56            IN VARCHAR2
50666 --Business Flow Payment Distribution Identifier
50667  , p_source_57            IN NUMBER
50668 --Business Flow Payment Identifier
50669  , p_source_58            IN NUMBER
50670 --Payment Distribution Identifier
50671  , p_source_59            IN NUMBER
50672 --Distribution Link Type
50673  , p_source_60            IN VARCHAR2
50674 --Override Accounted Amount Indicator
50675  , p_source_64            IN VARCHAR2
50676  , p_source_64_meaning    IN VARCHAR2
50677 --Payment Supplier Identifier
50678  , p_source_65            IN NUMBER
50679 --Payment Supplier Site Identifier
50680  , p_source_66            IN NUMBER
50681 --Third Party Type
50682  , p_source_67            IN VARCHAR2
50683 --Payment Distribution Reversed Identifier
50684  , p_source_68            IN NUMBER
50685 --Invoice Distribution Tax Line Identifier
50686  , p_source_69            IN NUMBER
50687 --Invoice Distribution Summary Tax Line Identifier
50688  , p_source_70            IN NUMBER
50689 --Payment Type
50690  , p_source_71            IN VARCHAR2
50691  , p_source_71_meaning    IN VARCHAR2
50692 --Invoice Type Paid
50693  , p_source_112            IN VARCHAR2
50694  , p_source_112_meaning    IN VARCHAR2
50695 --Cleared Exchange Date
50696  , p_source_114            IN DATE
50697 --Cleared Exchange Rate
50698  , p_source_115            IN NUMBER
50699 --Cleared Exchange Rate Type
50700  , p_source_116            IN VARCHAR2
50701 )
50702 IS
50703 
50704 l_component_type              VARCHAR2(80);
50705 l_component_code              VARCHAR2(30);
50706 l_component_type_code         VARCHAR2(1);
50707 l_component_appl_id           INTEGER;
50708 l_amb_context_code            VARCHAR2(30);
50709 l_entity_code                 VARCHAR2(30);
50710 l_event_class_code            VARCHAR2(30);
50711 l_ae_header_id                NUMBER;
50712 l_event_type_code             VARCHAR2(30);
50713 l_line_definition_code        VARCHAR2(30);
50714 l_line_definition_owner_code  VARCHAR2(1);
50715 --
50716 -- adr variables
50717 l_segment                     VARCHAR2(30);
50718 l_ccid                        NUMBER;
50719 l_adr_transaction_coa_id      NUMBER;
50720 l_adr_accounting_coa_id       NUMBER;
50721 l_adr_flexfield_segment_code  VARCHAR2(30);
50722 l_adr_flex_value_set_id       NUMBER;
50723 l_adr_value_type_code         VARCHAR2(30);
50724 l_adr_value_combination_id    NUMBER;
50725 l_adr_value_segment_code      VARCHAR2(30);
50726 
50727 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
50728 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
50729 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
50730 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
50731 
50732 -- 4262811 Variables ------------------------------------------------------------------------------------------
50733 l_entered_amt_idx             NUMBER;
50734 l_accted_amt_idx              NUMBER;
50735 l_acc_rev_flag                VARCHAR2(1);
50736 l_accrual_line_num            NUMBER;
50737 l_tmp_amt                     NUMBER;
50738 l_acc_rev_natural_side_code   VARCHAR2(1);
50739 
50740 l_num_entries                 NUMBER;
50741 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
50742 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
50743 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
50744 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
50745 l_recog_line_1                NUMBER;
50746 l_recog_line_2                NUMBER;
50747 
50748 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
50749 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
50750 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
50751 
50752 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50753 
50754 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
50755 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
50756 
50757 ---------------------------------------------------------------------------------------------------------------
50758 
50759 
50760 --
50761 -- bulk performance
50762 --
50763 l_balance_type_code           VARCHAR2(1);
50764 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
50765 l_log_module                  VARCHAR2(240);
50766 
50767 --
50768 -- Upgrade strategy
50769 --
50770 l_actual_upg_option           VARCHAR2(1);
50771 l_enc_upg_option           VARCHAR2(1);
50772 
50773 --
50774 BEGIN
50775 --
50776 IF g_log_enabled THEN
50777       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_100';
50778 END IF;
50779 --
50780 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50781 
50782       trace
50783          (p_msg      => 'BEGIN of AcctLineType_100'
50784          ,p_level    => C_LEVEL_PROCEDURE
50785          ,p_module   => l_log_module);
50786 
50787 END IF;
50791 l_component_type_code        := 'S';
50788 --
50789 l_component_type             := 'AMB_JLT';
50790 l_component_code             := 'AP_INTEREST_EXPENSE_CLEAR';
50792 l_component_appl_id          :=  200;
50793 l_amb_context_code           := 'DEFAULT';
50794 l_entity_code                := 'AP_PAYMENTS';
50795 l_event_class_code           := 'RECONCILED PAYMENTS';
50796 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
50797 l_line_definition_owner_code := 'S';
50798 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
50799 --
50800 l_balance_type_code          := 'A';
50801 l_segment                     := NULL;
50802 l_ccid                        := NULL;
50803 l_adr_transaction_coa_id      := NULL;
50804 l_adr_accounting_coa_id       := NULL;
50805 l_adr_flexfield_segment_code  := NULL;
50806 l_adr_flex_value_set_id       := NULL;
50807 l_adr_value_type_code         := NULL;
50808 l_adr_value_combination_id    := NULL;
50809 l_adr_value_segment_code      := NULL;
50810 
50811 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
50812 l_bflow_class_code           := '';    -- 4219869 Business Flow
50813 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
50814 l_budgetary_control_flag     := 'N';
50815 
50816 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
50817 l_bflow_applied_to_amt       := NULL; -- 5132302
50818 l_entered_amt_idx            := NULL;          -- 4262811
50819 l_accted_amt_idx             := NULL;          -- 4262811
50820 l_acc_rev_flag               := NULL;          -- 4262811
50821 l_accrual_line_num           := NULL;          -- 4262811
50822 l_tmp_amt                    := NULL;          -- 4262811
50823 --
50824  
50825 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50826     l_balance_type_code <> 'B' THEN
50827 IF NVL(p_source_50,'
50828 ') =  'CLEAR_CLEAR' AND 
50829 NVL(p_source_32,'
50830 ') =  'ITEM' AND 
50831 NVL(p_source_112,'
50832 ') =  'INTEREST' AND 
50833 (NVL(p_source_51,'
50834 ') =  'CASH' OR 
50835 NVL(p_source_51,'
50836 ') =  'DISCOUNT') AND 
50837 NVL(p_source_71,'
50838 ') <>  'R'
50839  THEN 
50840 
50841    --
50842    XLA_AE_LINES_PKG.SetNewLine;
50843 
50844    p_balance_type_code          := l_balance_type_code;
50845    -- set the flag so later we will know whether the gain loss line needs to be created
50846    
50847    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50848      p_actual_flag :='A';
50849    END IF;
50850 
50851    --
50852    -- bulk performance
50853    --
50854    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50855                                       p_header_num   => 0); -- 4262811
50856    --
50857    -- set accounting line options
50858    --
50859    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50860            p_natural_side_code          => 'D'
50861          , p_gain_or_loss_flag          => 'N'
50862          , p_gl_transfer_mode_code      => 'S'
50863          , p_acct_entry_type_code       => 'A'
50864          , p_switch_side_flag           => 'Y'
50865          , p_merge_duplicate_code       => 'A'
50866          );
50867    --
50868    l_acc_rev_natural_side_code := 'C';  -- 4262811
50869    -- 
50870    --
50871    -- set accounting line type info
50872    --
50873    xla_ae_lines_pkg.SetAcctLineType
50874       (p_component_type             => l_component_type
50875       ,p_event_type_code            => l_event_type_code
50876       ,p_line_definition_owner_code => l_line_definition_owner_code
50877       ,p_line_definition_code       => l_line_definition_code
50878       ,p_accounting_line_code       => l_component_code
50879       ,p_accounting_line_type_code  => l_component_type_code
50880       ,p_accounting_line_appl_id    => l_component_appl_id
50881       ,p_amb_context_code           => l_amb_context_code
50882       ,p_entity_code                => l_entity_code
50883       ,p_event_class_code           => l_event_class_code);
50884    --
50885    -- set accounting class
50886    --
50887    xla_ae_lines_pkg.SetAcctClass(
50888            p_accounting_class_code  => 'INTEREST_EXPENSE'
50889          , p_ae_header_id           => l_ae_header_id
50890          );
50891 
50892    --
50893    -- set rounding class
50894    --
50895    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50896                       'INTEREST_EXPENSE';
50897 
50898    --
50899    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50900    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50901    --
50902    -- bulk performance
50903    --
50904    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50905 
50906    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50907       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50908 
50909    -- 4955764
50910    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50911       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50912 
50913    -- 4458381 Public Sector Enh
50914    
50915    --
50916    -- set accounting attributes for the line type
50917    --
50918    l_entered_amt_idx := 10;
50919    l_accted_amt_idx  := 15;
50923    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
50920    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
50921    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
50922    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
50924    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
50925    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
50926    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
50927    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50928    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
50929    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
50930    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
50931    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
50932    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
50933    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50934    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
50935    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
50936    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
50937    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
50938    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
50939    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
50940    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
50941    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
50942    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
50943    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
50944    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
50945    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
50946    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
50947    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
50948    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
50949    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
50950    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
50951    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
50952    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
50953    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
50954    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
50955    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
50956    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
50957    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
50958    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
50959    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
50960    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
50961    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
50962    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
50963    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
50964    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
50965    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
50966    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
50967    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
50968    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
50969 
50970    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50971    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50972 
50973    ---------------------------------------------------------------------------------------------------------------
50974    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50975    ---------------------------------------------------------------------------------------------------------------
50976    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50977 
50978    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50979    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50980 
50981    IF xla_accounting_cache_pkg.GetValueChar
50982          (p_source_code         => 'LEDGER_CATEGORY_CODE'
50983          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50984    AND l_bflow_method_code = 'PRIOR_ENTRY'
50985 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50986    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50987          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50988        )
50989    THEN
50990          xla_ae_lines_pkg.BflowUpgEntry
50991            (p_business_method_code    => l_bflow_method_code
50992            ,p_business_class_code     => l_bflow_class_code
50993            ,p_balance_type            => l_balance_type_code);
50994    ELSE
50995       NULL;
50996 -- No business flow processing for business flow method of NONE.
50997    END IF;
50998 
50999    --
51000    -- call analytical criteria
51001    --
51002    
51003    --
51004    -- call description
51005    --
51006    -- No description or it is inherited.
51007    --
51008    -- call ADRs
51009    -- Bug 4922099
51010    --
51011    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51012         (NVL(l_actual_upg_option, 'N') = 'O') OR
51013         (NVL(l_enc_upg_option, 'N') = 'O')
51014       )
51015    THEN
51016    NULL;
51017    --
51018    --
51019    
51020   l_ccid := AcctDerRule_27(
51024 , p_source_28 => p_source_28
51021            p_application_id           => p_application_id
51022          , p_ae_header_id             => l_ae_header_id 
51023 , p_source_27 => p_source_27
51025 , p_source_29 => p_source_29
51026          , x_transaction_coa_id       => l_adr_transaction_coa_id
51027          , x_accounting_coa_id        => l_adr_accounting_coa_id
51028          , x_value_type_code          => l_adr_value_type_code
51029          , p_side                     => 'NA'
51030    );
51031 
51032    xla_ae_lines_pkg.set_ccid(
51033     p_code_combination_id          => l_ccid
51034   , p_value_type_code              => l_adr_value_type_code
51035   , p_transaction_coa_id           => l_adr_transaction_coa_id
51036   , p_accounting_coa_id            => l_adr_accounting_coa_id
51037   , p_adr_code                     => 'AP_INTEREST'
51038   , p_adr_type_code                => 'S'
51039   , p_component_type               => l_component_type
51040   , p_component_code               => l_component_code
51041   , p_component_type_code          => l_component_type_code
51042   , p_component_appl_id            => l_component_appl_id
51043   , p_amb_context_code             => l_amb_context_code
51044   , p_side                         => 'NA'
51045   );
51046 
51047 
51048    l_segment := AcctDerRule_10(
51049            p_application_id           => p_application_id
51050          , p_ae_header_id             => l_ae_header_id 
51051 , p_source_27 => p_source_27
51052 , p_source_28 => p_source_28
51053          , x_transaction_coa_id       => l_adr_transaction_coa_id
51054          , x_accounting_coa_id        => l_adr_accounting_coa_id
51055          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51056          , x_flex_value_set_id        => l_adr_flex_value_set_id
51057          , x_value_type_code          => l_adr_value_type_code
51058          , x_value_combination_id     => l_adr_value_combination_id
51059          , x_value_segment_code       => l_adr_value_segment_code
51060          , p_side                     => 'NA'
51061          , p_override_seg_flag        => 'Y'
51062    );
51063 
51064    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51065 
51066       xla_ae_lines_pkg.set_segment(
51067           p_to_segment_code         => 'GL_ACCOUNT'
51068         , p_segment_value           => l_segment
51069         , p_from_segment_code       => l_adr_value_segment_code
51070         , p_from_combination_id     => l_adr_value_combination_id
51071         , p_value_type_code         => l_adr_value_type_code
51072         , p_transaction_coa_id      => l_adr_transaction_coa_id
51073         , p_accounting_coa_id       => l_adr_accounting_coa_id
51074         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51075         , p_flex_value_set_id       => l_adr_flex_value_set_id
51076         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
51077         , p_adr_type_code           => 'S'
51078         , p_component_type          => l_component_type
51079         , p_component_code          => l_component_code
51080         , p_component_type_code     => l_component_type_code
51081         , p_component_appl_id       => l_component_appl_id
51082         , p_amb_context_code        => l_amb_context_code
51083         , p_entity_code             => 'AP_PAYMENTS'
51084         , p_event_class_code        => 'RECONCILED PAYMENTS'
51085         , p_side                    => 'NA'
51086         );
51087 
51088   END IF;
51089 
51090    --
51091    --
51092    END IF;
51093    --
51094    -- Bug 4922099
51095    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51096           (NVL(l_enc_upg_option, 'N') = 'O')
51097         ) AND
51098         (l_bflow_method_code = 'PRIOR_ENTRY')
51099       )
51100    THEN
51101       IF
51102       --
51103       1 = 2
51104       --
51105       THEN
51106       xla_accounting_err_pkg.build_message
51107                                     (p_appli_s_name            => 'XLA'
51108                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51109                                     ,p_token_1                 => 'LINE_NUMBER'
51110                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
51111                                     ,p_token_2                 => 'LINE_TYPE_NAME'
51112                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
51113                                                                              l_component_type
51114                                                                             ,l_component_code
51115                                                                             ,l_component_type_code
51116                                                                             ,l_component_appl_id
51117                                                                             ,l_amb_context_code
51118                                                                             ,l_entity_code
51119                                                                             ,l_event_class_code
51120                                                                            )
51121                                     ,p_token_3                 => 'OWNER'
51122                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
51123                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
51127                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51124                                                                           ,p_lookup_code    => l_component_type_code
51125                                                                          )
51126                                     ,p_token_4                 => 'PRODUCT_NAME'
51128                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51129                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51130                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51131                                     ,p_ae_header_id            =>  NULL
51132                                        );
51133 
51134         IF (C_LEVEL_ERROR>= g_log_level) THEN
51135                  trace
51136                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51137                       ,p_level    => C_LEVEL_ERROR
51138                       ,p_module   => l_log_module);
51139         END IF;
51140       END IF;
51141    END IF;
51142    --
51143    --
51144    ------------------------------------------------------------------------------------------------
51145    -- 4219869 Business Flow
51146    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51147    -- Prior Entry.  Currently, the following code is always generated.
51148    ------------------------------------------------------------------------------------------------
51149    XLA_AE_LINES_PKG.ValidateCurrentLine;
51150 
51151    ------------------------------------------------------------------------------------
51152    -- 4219869 Business Flow
51153    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51154    ------------------------------------------------------------------------------------
51155    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51156 
51157    ----------------------------------------------------------------------------------
51158    -- 4219869 Business Flow
51159    -- Update journal entry status -- Need to generate this within IF <condition>
51160    ----------------------------------------------------------------------------------
51161    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51162          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51163          ,p_balance_type_code => l_balance_type_code
51164          );
51165 
51166    -------------------------------------------------------------------------------------------
51167    -- 4262811 - Generate the Accrual Reversal lines
51168    -------------------------------------------------------------------------------------------
51169    BEGIN
51170       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51171                               (g_array_event(p_event_id).array_value_num('header_index'));
51172       IF l_acc_rev_flag IS NULL THEN
51173          l_acc_rev_flag := 'N';
51174       END IF;
51175    EXCEPTION
51176       WHEN OTHERS THEN
51177          l_acc_rev_flag := 'N';
51178    END;
51179    --
51180    IF (l_acc_rev_flag = 'Y') THEN
51181 
51182        -- 4645092  ------------------------------------------------------------------------------
51183        -- To allow MPA report to determine if it should generate report process
51184        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51185        ------------------------------------------------------------------------------------------
51186 
51187        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51188        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51189    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
51190    -- call ADRs
51191    -- Bug 4922099
51192    --
51193    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51194         (NVL(l_actual_upg_option, 'N') = 'O') OR
51195         (NVL(l_enc_upg_option, 'N') = 'O')
51196       )
51197    THEN
51198    NULL;
51199    --
51200    --
51201    
51202   l_ccid := AcctDerRule_27(
51203            p_application_id           => p_application_id
51204          , p_ae_header_id             => l_ae_header_id 
51205 , p_source_27 => p_source_27
51206 , p_source_28 => p_source_28
51207 , p_source_29 => p_source_29
51208          , x_transaction_coa_id       => l_adr_transaction_coa_id
51209          , x_accounting_coa_id        => l_adr_accounting_coa_id
51210          , x_value_type_code          => l_adr_value_type_code
51211          , p_side                     => 'NA'
51212    );
51213 
51214    xla_ae_lines_pkg.set_ccid(
51215     p_code_combination_id          => l_ccid
51216   , p_value_type_code              => l_adr_value_type_code
51217   , p_transaction_coa_id           => l_adr_transaction_coa_id
51218   , p_accounting_coa_id            => l_adr_accounting_coa_id
51219   , p_adr_code                     => 'AP_INTEREST'
51220   , p_adr_type_code                => 'S'
51221   , p_component_type               => l_component_type
51222   , p_component_code               => l_component_code
51223   , p_component_type_code          => l_component_type_code
51224   , p_component_appl_id            => l_component_appl_id
51225   , p_amb_context_code             => l_amb_context_code
51226   , p_side                         => 'NA'
51227   );
51228 
51229 
51230    l_segment := AcctDerRule_10(
51234 , p_source_28 => p_source_28
51231            p_application_id           => p_application_id
51232          , p_ae_header_id             => l_ae_header_id 
51233 , p_source_27 => p_source_27
51235          , x_transaction_coa_id       => l_adr_transaction_coa_id
51236          , x_accounting_coa_id        => l_adr_accounting_coa_id
51237          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51238          , x_flex_value_set_id        => l_adr_flex_value_set_id
51239          , x_value_type_code          => l_adr_value_type_code
51240          , x_value_combination_id     => l_adr_value_combination_id
51241          , x_value_segment_code       => l_adr_value_segment_code
51242          , p_side                     => 'NA'
51243          , p_override_seg_flag        => 'Y'
51244    );
51245 
51246    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51247 
51248       xla_ae_lines_pkg.set_segment(
51249           p_to_segment_code         => 'GL_ACCOUNT'
51250         , p_segment_value           => l_segment
51251         , p_from_segment_code       => l_adr_value_segment_code
51252         , p_from_combination_id     => l_adr_value_combination_id
51253         , p_value_type_code         => l_adr_value_type_code
51254         , p_transaction_coa_id      => l_adr_transaction_coa_id
51255         , p_accounting_coa_id       => l_adr_accounting_coa_id
51256         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51257         , p_flex_value_set_id       => l_adr_flex_value_set_id
51258         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
51259         , p_adr_type_code           => 'S'
51260         , p_component_type          => l_component_type
51261         , p_component_code          => l_component_code
51262         , p_component_type_code     => l_component_type_code
51263         , p_component_appl_id       => l_component_appl_id
51264         , p_amb_context_code        => l_amb_context_code
51265         , p_entity_code             => 'AP_PAYMENTS'
51266         , p_event_class_code        => 'RECONCILED PAYMENTS'
51267         , p_side                    => 'NA'
51268         );
51269 
51270   END IF;
51271 
51272    --
51273    --
51274    END IF;
51275 
51276        --
51277        -- Update the line information that should be overwritten
51278        --
51279        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51280                                          p_header_num   => 1);
51281        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
51282 
51283        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51284 
51285        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
51286           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51287        END IF;
51288 
51289       --
51290       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51291       --
51292       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51293           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
51294       ELSE
51295           ---------------------------------------------------------------------------------------------------
51296           -- 4262811a Switch Sign
51297           ---------------------------------------------------------------------------------------------------
51298           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
51299           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51300                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51301           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51302                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51303           -- 5132302
51304           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51305                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51306 
51307       END IF;
51308 
51309       -- 4955764
51310       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51311       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51312 
51313 
51314       XLA_AE_LINES_PKG.ValidateCurrentLine;
51315       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51316 
51317       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51318                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51319                ,p_balance_type_code => l_balance_type_code);
51320 
51321    END IF;
51322 
51323    -----------------------------------------------------------------------------------------
51324    -- 4262811 Multiperiod Accounting
51325    -----------------------------------------------------------------------------------------
51326      -- No MPA option is assigned.
51327 
51328 
51329 END IF;
51330 END IF;
51331 --
51332 
51333 --
51334 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51335    trace
51336       (p_msg      => 'END of AcctLineType_100'
51337       ,p_level    => C_LEVEL_PROCEDURE
51338       ,p_module   => l_log_module);
51339 END IF;
51340 --
51344   WHEN OTHERS THEN
51341 EXCEPTION
51342   WHEN xla_exceptions_pkg.application_exception THEN
51343       RAISE;
51345        xla_exceptions_pkg.raise_message
51346            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_100');
51347 END AcctLineType_100;
51348 --
51349 
51350 ---------------------------------------
51351 --
51352 -- PRIVATE FUNCTION
51353 --         AcctLineType_101
51354 --
51355 ---------------------------------------
51356 PROCEDURE AcctLineType_101 (
51357   p_application_id        IN NUMBER
51358  ,p_event_id              IN NUMBER
51359  ,p_calculate_acctd_flag  IN VARCHAR2
51360  ,p_calculate_g_l_flag    IN VARCHAR2
51361  ,p_actual_flag           IN OUT VARCHAR2
51362  ,p_balance_type_code     OUT VARCHAR2
51363  ,p_gain_or_loss_ref      OUT VARCHAR2
51364  
51365 --Payment Currency Code
51366  , p_source_12            IN VARCHAR2
51367 --Payment Distribution (Payment Rate) Ledger Amount
51368  , p_source_21            IN NUMBER
51369 --Interest Account
51370  , p_source_27            IN NUMBER
51371 --Prorate Interest Invoice Across Distributions Option
51372  , p_source_28            IN VARCHAR2
51373 --Invoice Distribution Account
51374  , p_source_29            IN NUMBER
51375 --Invoice Distribution Type
51376  , p_source_32            IN VARCHAR2
51377  , p_source_32_meaning    IN VARCHAR2
51378 --When to Account for Payment Option
51379  , p_source_50            IN VARCHAR2
51380 --Payment Distribution Type
51381  , p_source_51            IN VARCHAR2
51382  , p_source_51_meaning    IN VARCHAR2
51383 --Accounting Reversal Indicator
51384  , p_source_52            IN VARCHAR2
51385 --Payment Distribution Amount
51386  , p_source_53            IN NUMBER
51387 --Business Flow Accounts Payable Application Identifier
51388  , p_source_54            IN NUMBER
51389 --Payment Distribution Identifier
51390  , p_source_59            IN NUMBER
51391 --Distribution Link Type
51392  , p_source_60            IN VARCHAR2
51393 --Override Accounted Amount Indicator
51394  , p_source_64            IN VARCHAR2
51395  , p_source_64_meaning    IN VARCHAR2
51396 --Payment Supplier Identifier
51397  , p_source_65            IN NUMBER
51398 --Payment Supplier Site Identifier
51399  , p_source_66            IN NUMBER
51400 --Third Party Type
51401  , p_source_67            IN VARCHAR2
51402 --Payment Distribution Reversed Identifier
51403  , p_source_68            IN NUMBER
51404 --Invoice Distribution Tax Line Identifier
51405  , p_source_69            IN NUMBER
51406 --Invoice Distribution Summary Tax Line Identifier
51407  , p_source_70            IN NUMBER
51408 --Invoice Distribution Amount of the Payment Distribution
51409  , p_source_72            IN NUMBER
51410 --Business Flow Invoice Distribution Type
51411  , p_source_73            IN VARCHAR2
51412 --Business Flow Invoice Entity Code
51413  , p_source_74            IN VARCHAR2
51414 --Business Flow Invoice Distribution Identifier
51415  , p_source_75            IN NUMBER
51416 --Business Flow Invoice Identifier
51417  , p_source_76            IN NUMBER
51418 --Invoice Distribution Tax Distribution Identifier from Tax
51419  , p_source_77            IN NUMBER
51420 --Invoice Type Paid
51421  , p_source_112            IN VARCHAR2
51422  , p_source_112_meaning    IN VARCHAR2
51423 --Payment Processing Type
51424  , p_source_120            IN VARCHAR2
51425 --Payment Exchange Date
51426  , p_source_121            IN DATE
51427 --Payment Exchange Rate
51428  , p_source_122            IN NUMBER
51429 --Payment Exchange Rate Type
51430  , p_source_123            IN VARCHAR2
51431 )
51432 IS
51433 
51434 l_component_type              VARCHAR2(80);
51435 l_component_code              VARCHAR2(30);
51436 l_component_type_code         VARCHAR2(1);
51437 l_component_appl_id           INTEGER;
51438 l_amb_context_code            VARCHAR2(30);
51439 l_entity_code                 VARCHAR2(30);
51440 l_event_class_code            VARCHAR2(30);
51441 l_ae_header_id                NUMBER;
51442 l_event_type_code             VARCHAR2(30);
51443 l_line_definition_code        VARCHAR2(30);
51444 l_line_definition_owner_code  VARCHAR2(1);
51445 --
51446 -- adr variables
51447 l_segment                     VARCHAR2(30);
51448 l_ccid                        NUMBER;
51449 l_adr_transaction_coa_id      NUMBER;
51450 l_adr_accounting_coa_id       NUMBER;
51451 l_adr_flexfield_segment_code  VARCHAR2(30);
51452 l_adr_flex_value_set_id       NUMBER;
51453 l_adr_value_type_code         VARCHAR2(30);
51454 l_adr_value_combination_id    NUMBER;
51455 l_adr_value_segment_code      VARCHAR2(30);
51456 
51457 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
51458 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
51459 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
51460 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
51461 
51462 -- 4262811 Variables ------------------------------------------------------------------------------------------
51463 l_entered_amt_idx             NUMBER;
51464 l_accted_amt_idx              NUMBER;
51465 l_acc_rev_flag                VARCHAR2(1);
51466 l_accrual_line_num            NUMBER;
51467 l_tmp_amt                     NUMBER;
51468 l_acc_rev_natural_side_code   VARCHAR2(1);
51469 
51470 l_num_entries                 NUMBER;
51471 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
51472 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
51476 l_recog_line_2                NUMBER;
51473 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
51474 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
51475 l_recog_line_1                NUMBER;
51477 
51478 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
51479 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
51480 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
51481 
51482 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51483 
51484 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
51485 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
51486 
51487 ---------------------------------------------------------------------------------------------------------------
51488 
51489 
51490 --
51491 -- bulk performance
51492 --
51493 l_balance_type_code           VARCHAR2(1);
51494 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
51495 l_log_module                  VARCHAR2(240);
51496 
51497 --
51498 -- Upgrade strategy
51499 --
51500 l_actual_upg_option           VARCHAR2(1);
51501 l_enc_upg_option           VARCHAR2(1);
51502 
51503 --
51504 BEGIN
51505 --
51506 IF g_log_enabled THEN
51507       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_101';
51508 END IF;
51509 --
51510 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51511 
51512       trace
51513          (p_msg      => 'BEGIN of AcctLineType_101'
51514          ,p_level    => C_LEVEL_PROCEDURE
51515          ,p_module   => l_log_module);
51516 
51517 END IF;
51518 --
51519 l_component_type             := 'AMB_JLT';
51520 l_component_code             := 'AP_INTEREST_EXPENSE_PMT';
51521 l_component_type_code        := 'S';
51522 l_component_appl_id          :=  200;
51523 l_amb_context_code           := 'DEFAULT';
51524 l_entity_code                := 'AP_PAYMENTS';
51525 l_event_class_code           := 'PAYMENTS';
51526 l_event_type_code            := 'PAYMENTS_ALL';
51527 l_line_definition_owner_code := 'S';
51528 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
51529 --
51530 l_balance_type_code          := 'A';
51531 l_segment                     := NULL;
51532 l_ccid                        := NULL;
51533 l_adr_transaction_coa_id      := NULL;
51534 l_adr_accounting_coa_id       := NULL;
51535 l_adr_flexfield_segment_code  := NULL;
51536 l_adr_flex_value_set_id       := NULL;
51537 l_adr_value_type_code         := NULL;
51538 l_adr_value_combination_id    := NULL;
51539 l_adr_value_segment_code      := NULL;
51540 
51541 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
51542 l_bflow_class_code           := '';    -- 4219869 Business Flow
51543 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
51544 l_budgetary_control_flag     := 'N';
51545 
51546 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
51547 l_bflow_applied_to_amt       := NULL; -- 5132302
51548 l_entered_amt_idx            := NULL;          -- 4262811
51549 l_accted_amt_idx             := NULL;          -- 4262811
51550 l_acc_rev_flag               := NULL;          -- 4262811
51551 l_accrual_line_num           := NULL;          -- 4262811
51552 l_tmp_amt                    := NULL;          -- 4262811
51553 --
51554  
51555 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51556     l_balance_type_code <> 'B' THEN
51557 IF NVL(p_source_50,'
51558 ') <>  'CLEAR_CLEAR' AND 
51559 NVL(p_source_112,'
51560 ') =  'INTEREST' AND 
51561 NVL(p_source_32,'
51562 ') =  'ITEM' AND 
51563 (NVL(p_source_51,'
51564 ') =  'CASH' OR 
51565 NVL(p_source_51,'
51566 ') =  'DISCOUNT') AND 
51567 NVL(p_source_120,'
51568 ') <>  'PAYMENTCARD'
51569  THEN 
51570 
51571    --
51572    XLA_AE_LINES_PKG.SetNewLine;
51573 
51574    p_balance_type_code          := l_balance_type_code;
51575    -- set the flag so later we will know whether the gain loss line needs to be created
51576    
51577    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51578      p_actual_flag :='A';
51579    END IF;
51580 
51581    --
51582    -- bulk performance
51583    --
51584    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51585                                       p_header_num   => 0); -- 4262811
51586    --
51587    -- set accounting line options
51588    --
51589    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51590            p_natural_side_code          => 'D'
51591          , p_gain_or_loss_flag          => 'N'
51592          , p_gl_transfer_mode_code      => 'S'
51593          , p_acct_entry_type_code       => 'A'
51594          , p_switch_side_flag           => 'Y'
51595          , p_merge_duplicate_code       => 'A'
51596          );
51597    --
51598    l_acc_rev_natural_side_code := 'C';  -- 4262811
51599    -- 
51600    --
51601    -- set accounting line type info
51602    --
51603    xla_ae_lines_pkg.SetAcctLineType
51604       (p_component_type             => l_component_type
51605       ,p_event_type_code            => l_event_type_code
51606       ,p_line_definition_owner_code => l_line_definition_owner_code
51607       ,p_line_definition_code       => l_line_definition_code
51608       ,p_accounting_line_code       => l_component_code
51609       ,p_accounting_line_type_code  => l_component_type_code
51613       ,p_event_class_code           => l_event_class_code);
51610       ,p_accounting_line_appl_id    => l_component_appl_id
51611       ,p_amb_context_code           => l_amb_context_code
51612       ,p_entity_code                => l_entity_code
51614    --
51615    -- set accounting class
51616    --
51617    xla_ae_lines_pkg.SetAcctClass(
51618            p_accounting_class_code  => 'INTEREST_EXPENSE'
51619          , p_ae_header_id           => l_ae_header_id
51620          );
51621 
51622    --
51623    -- set rounding class
51624    --
51625    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51626                       'INTEREST_EXPENSE';
51627 
51628    --
51629    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51630    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51631    --
51632    -- bulk performance
51633    --
51634    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51635 
51636    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51637       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51638 
51639    -- 4955764
51640    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51641       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51642 
51643    -- 4458381 Public Sector Enh
51644    
51645    --
51646    -- set accounting attributes for the line type
51647    --
51648    l_entered_amt_idx := 10;
51649    l_accted_amt_idx  := 15;
51650    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
51651    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51652    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
51653    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
51654    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
51655    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
51656    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
51657    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51658    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
51659    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
51660    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
51661    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
51662    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
51663    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51664    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
51665    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
51666    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
51667    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
51668    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
51669    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
51670    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
51671    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
51672    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
51673    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
51674    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
51675    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
51676    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
51677    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
51678    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
51679    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
51680    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
51681    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
51682    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
51683    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
51684    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
51685    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
51686    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
51687    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
51688    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
51689    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
51690    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
51691    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
51692    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
51693    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
51694    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
51695    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
51696    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
51697    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
51698    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
51699 
51700    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51701    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51702 
51703    ---------------------------------------------------------------------------------------------------------------
51704    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51705    ---------------------------------------------------------------------------------------------------------------
51709    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51706    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51707 
51708    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51710 
51711    IF xla_accounting_cache_pkg.GetValueChar
51712          (p_source_code         => 'LEDGER_CATEGORY_CODE'
51713          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51714    AND l_bflow_method_code = 'PRIOR_ENTRY'
51715 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51716    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51717          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51718        )
51719    THEN
51720          xla_ae_lines_pkg.BflowUpgEntry
51721            (p_business_method_code    => l_bflow_method_code
51722            ,p_business_class_code     => l_bflow_class_code
51723            ,p_balance_type            => l_balance_type_code);
51724    ELSE
51725       NULL;
51726 -- No business flow processing for business flow method of NONE.
51727    END IF;
51728 
51729    --
51730    -- call analytical criteria
51731    --
51732    
51733    --
51734    -- call description
51735    --
51736    -- No description or it is inherited.
51737    --
51738    -- call ADRs
51739    -- Bug 4922099
51740    --
51741    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51742         (NVL(l_actual_upg_option, 'N') = 'O') OR
51743         (NVL(l_enc_upg_option, 'N') = 'O')
51744       )
51745    THEN
51746    NULL;
51747    --
51748    --
51749    
51750   l_ccid := AcctDerRule_27(
51751            p_application_id           => p_application_id
51752          , p_ae_header_id             => l_ae_header_id 
51753 , p_source_27 => p_source_27
51754 , p_source_28 => p_source_28
51755 , p_source_29 => p_source_29
51756          , x_transaction_coa_id       => l_adr_transaction_coa_id
51757          , x_accounting_coa_id        => l_adr_accounting_coa_id
51758          , x_value_type_code          => l_adr_value_type_code
51759          , p_side                     => 'NA'
51760    );
51761 
51762    xla_ae_lines_pkg.set_ccid(
51763     p_code_combination_id          => l_ccid
51764   , p_value_type_code              => l_adr_value_type_code
51765   , p_transaction_coa_id           => l_adr_transaction_coa_id
51766   , p_accounting_coa_id            => l_adr_accounting_coa_id
51767   , p_adr_code                     => 'AP_INTEREST'
51768   , p_adr_type_code                => 'S'
51769   , p_component_type               => l_component_type
51770   , p_component_code               => l_component_code
51771   , p_component_type_code          => l_component_type_code
51772   , p_component_appl_id            => l_component_appl_id
51773   , p_amb_context_code             => l_amb_context_code
51774   , p_side                         => 'NA'
51775   );
51776 
51777 
51778    l_segment := AcctDerRule_10(
51779            p_application_id           => p_application_id
51780          , p_ae_header_id             => l_ae_header_id 
51781 , p_source_27 => p_source_27
51782 , p_source_28 => p_source_28
51783          , x_transaction_coa_id       => l_adr_transaction_coa_id
51784          , x_accounting_coa_id        => l_adr_accounting_coa_id
51785          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51786          , x_flex_value_set_id        => l_adr_flex_value_set_id
51787          , x_value_type_code          => l_adr_value_type_code
51788          , x_value_combination_id     => l_adr_value_combination_id
51789          , x_value_segment_code       => l_adr_value_segment_code
51790          , p_side                     => 'NA'
51791          , p_override_seg_flag        => 'Y'
51792    );
51793 
51794    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51795 
51796       xla_ae_lines_pkg.set_segment(
51797           p_to_segment_code         => 'GL_ACCOUNT'
51798         , p_segment_value           => l_segment
51799         , p_from_segment_code       => l_adr_value_segment_code
51800         , p_from_combination_id     => l_adr_value_combination_id
51801         , p_value_type_code         => l_adr_value_type_code
51802         , p_transaction_coa_id      => l_adr_transaction_coa_id
51803         , p_accounting_coa_id       => l_adr_accounting_coa_id
51804         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51805         , p_flex_value_set_id       => l_adr_flex_value_set_id
51806         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
51807         , p_adr_type_code           => 'S'
51808         , p_component_type          => l_component_type
51809         , p_component_code          => l_component_code
51810         , p_component_type_code     => l_component_type_code
51811         , p_component_appl_id       => l_component_appl_id
51812         , p_amb_context_code        => l_amb_context_code
51813         , p_entity_code             => 'AP_PAYMENTS'
51814         , p_event_class_code        => 'PAYMENTS'
51815         , p_side                    => 'NA'
51816         );
51817 
51818   END IF;
51819 
51820    --
51821    --
51822    END IF;
51823    --
51824    -- Bug 4922099
51825    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51826           (NVL(l_enc_upg_option, 'N') = 'O')
51827         ) AND
51831       IF
51828         (l_bflow_method_code = 'PRIOR_ENTRY')
51829       )
51830    THEN
51832       --
51833       1 = 2
51834       --
51835       THEN
51836       xla_accounting_err_pkg.build_message
51837                                     (p_appli_s_name            => 'XLA'
51838                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51839                                     ,p_token_1                 => 'LINE_NUMBER'
51840                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
51841                                     ,p_token_2                 => 'LINE_TYPE_NAME'
51842                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
51843                                                                              l_component_type
51844                                                                             ,l_component_code
51845                                                                             ,l_component_type_code
51846                                                                             ,l_component_appl_id
51847                                                                             ,l_amb_context_code
51848                                                                             ,l_entity_code
51849                                                                             ,l_event_class_code
51850                                                                            )
51851                                     ,p_token_3                 => 'OWNER'
51852                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
51853                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
51854                                                                           ,p_lookup_code    => l_component_type_code
51855                                                                          )
51856                                     ,p_token_4                 => 'PRODUCT_NAME'
51857                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51858                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51859                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51860                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51861                                     ,p_ae_header_id            =>  NULL
51862                                        );
51863 
51864         IF (C_LEVEL_ERROR>= g_log_level) THEN
51865                  trace
51866                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51867                       ,p_level    => C_LEVEL_ERROR
51868                       ,p_module   => l_log_module);
51869         END IF;
51870       END IF;
51871    END IF;
51872    --
51873    --
51874    ------------------------------------------------------------------------------------------------
51875    -- 4219869 Business Flow
51876    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51877    -- Prior Entry.  Currently, the following code is always generated.
51878    ------------------------------------------------------------------------------------------------
51879    XLA_AE_LINES_PKG.ValidateCurrentLine;
51880 
51881    ------------------------------------------------------------------------------------
51882    -- 4219869 Business Flow
51883    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51884    ------------------------------------------------------------------------------------
51885    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51886 
51887    ----------------------------------------------------------------------------------
51888    -- 4219869 Business Flow
51889    -- Update journal entry status -- Need to generate this within IF <condition>
51890    ----------------------------------------------------------------------------------
51891    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51892          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51893          ,p_balance_type_code => l_balance_type_code
51894          );
51895 
51896    -------------------------------------------------------------------------------------------
51897    -- 4262811 - Generate the Accrual Reversal lines
51898    -------------------------------------------------------------------------------------------
51899    BEGIN
51900       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51901                               (g_array_event(p_event_id).array_value_num('header_index'));
51902       IF l_acc_rev_flag IS NULL THEN
51903          l_acc_rev_flag := 'N';
51904       END IF;
51905    EXCEPTION
51906       WHEN OTHERS THEN
51907          l_acc_rev_flag := 'N';
51908    END;
51909    --
51910    IF (l_acc_rev_flag = 'Y') THEN
51911 
51912        -- 4645092  ------------------------------------------------------------------------------
51913        -- To allow MPA report to determine if it should generate report process
51914        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51915        ------------------------------------------------------------------------------------------
51916 
51917        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51918        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51922    --
51919    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
51920    -- call ADRs
51921    -- Bug 4922099
51923    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51924         (NVL(l_actual_upg_option, 'N') = 'O') OR
51925         (NVL(l_enc_upg_option, 'N') = 'O')
51926       )
51927    THEN
51928    NULL;
51929    --
51930    --
51931    
51932   l_ccid := AcctDerRule_27(
51933            p_application_id           => p_application_id
51934          , p_ae_header_id             => l_ae_header_id 
51935 , p_source_27 => p_source_27
51936 , p_source_28 => p_source_28
51937 , p_source_29 => p_source_29
51938          , x_transaction_coa_id       => l_adr_transaction_coa_id
51939          , x_accounting_coa_id        => l_adr_accounting_coa_id
51940          , x_value_type_code          => l_adr_value_type_code
51941          , p_side                     => 'NA'
51942    );
51943 
51944    xla_ae_lines_pkg.set_ccid(
51945     p_code_combination_id          => l_ccid
51946   , p_value_type_code              => l_adr_value_type_code
51947   , p_transaction_coa_id           => l_adr_transaction_coa_id
51948   , p_accounting_coa_id            => l_adr_accounting_coa_id
51949   , p_adr_code                     => 'AP_INTEREST'
51950   , p_adr_type_code                => 'S'
51951   , p_component_type               => l_component_type
51952   , p_component_code               => l_component_code
51953   , p_component_type_code          => l_component_type_code
51954   , p_component_appl_id            => l_component_appl_id
51955   , p_amb_context_code             => l_amb_context_code
51956   , p_side                         => 'NA'
51957   );
51958 
51959 
51960    l_segment := AcctDerRule_10(
51961            p_application_id           => p_application_id
51962          , p_ae_header_id             => l_ae_header_id 
51963 , p_source_27 => p_source_27
51964 , p_source_28 => p_source_28
51965          , x_transaction_coa_id       => l_adr_transaction_coa_id
51966          , x_accounting_coa_id        => l_adr_accounting_coa_id
51967          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51968          , x_flex_value_set_id        => l_adr_flex_value_set_id
51969          , x_value_type_code          => l_adr_value_type_code
51970          , x_value_combination_id     => l_adr_value_combination_id
51971          , x_value_segment_code       => l_adr_value_segment_code
51972          , p_side                     => 'NA'
51973          , p_override_seg_flag        => 'Y'
51974    );
51975 
51976    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51977 
51978       xla_ae_lines_pkg.set_segment(
51979           p_to_segment_code         => 'GL_ACCOUNT'
51980         , p_segment_value           => l_segment
51981         , p_from_segment_code       => l_adr_value_segment_code
51982         , p_from_combination_id     => l_adr_value_combination_id
51983         , p_value_type_code         => l_adr_value_type_code
51984         , p_transaction_coa_id      => l_adr_transaction_coa_id
51985         , p_accounting_coa_id       => l_adr_accounting_coa_id
51986         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51987         , p_flex_value_set_id       => l_adr_flex_value_set_id
51988         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
51989         , p_adr_type_code           => 'S'
51990         , p_component_type          => l_component_type
51991         , p_component_code          => l_component_code
51992         , p_component_type_code     => l_component_type_code
51993         , p_component_appl_id       => l_component_appl_id
51994         , p_amb_context_code        => l_amb_context_code
51995         , p_entity_code             => 'AP_PAYMENTS'
51996         , p_event_class_code        => 'PAYMENTS'
51997         , p_side                    => 'NA'
51998         );
51999 
52000   END IF;
52001 
52002    --
52003    --
52004    END IF;
52005 
52006        --
52007        -- Update the line information that should be overwritten
52008        --
52009        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52010                                          p_header_num   => 1);
52011        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
52012 
52013        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52014 
52015        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
52016           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52017        END IF;
52018 
52019       --
52020       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52021       --
52022       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52023           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
52024       ELSE
52025           ---------------------------------------------------------------------------------------------------
52026           -- 4262811a Switch Sign
52027           ---------------------------------------------------------------------------------------------------
52028           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
52029           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52030                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52034           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52031           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52032                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52033           -- 5132302
52035                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52036 
52037       END IF;
52038 
52039       -- 4955764
52040       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52041       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52042 
52043 
52044       XLA_AE_LINES_PKG.ValidateCurrentLine;
52045       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52046 
52047       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52048                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52049                ,p_balance_type_code => l_balance_type_code);
52050 
52051    END IF;
52052 
52053    -----------------------------------------------------------------------------------------
52054    -- 4262811 Multiperiod Accounting
52055    -----------------------------------------------------------------------------------------
52056      -- No MPA option is assigned.
52057 
52058 
52059 END IF;
52060 END IF;
52061 --
52062 
52063 --
52064 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52065    trace
52066       (p_msg      => 'END of AcctLineType_101'
52067       ,p_level    => C_LEVEL_PROCEDURE
52068       ,p_module   => l_log_module);
52069 END IF;
52070 --
52071 EXCEPTION
52072   WHEN xla_exceptions_pkg.application_exception THEN
52073       RAISE;
52074   WHEN OTHERS THEN
52075        xla_exceptions_pkg.raise_message
52076            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_101');
52077 END AcctLineType_101;
52078 --
52079 
52080 ---------------------------------------
52081 --
52082 -- PRIVATE FUNCTION
52083 --         AcctLineType_102
52084 --
52085 ---------------------------------------
52086 PROCEDURE AcctLineType_102 (
52087   p_application_id        IN NUMBER
52088  ,p_event_id              IN NUMBER
52089  ,p_calculate_acctd_flag  IN VARCHAR2
52090  ,p_calculate_g_l_flag    IN VARCHAR2
52091  ,p_actual_flag           IN OUT VARCHAR2
52092  ,p_balance_type_code     OUT VARCHAR2
52093  ,p_gain_or_loss_ref      OUT VARCHAR2
52094  
52095 --Payment Currency Code
52096  , p_source_12            IN VARCHAR2
52097 --Payment Distribution (Cleared Rate) Ledger Amount
52098  , p_source_22            IN NUMBER
52099 --Invoice Distribution Account
52100  , p_source_29            IN NUMBER
52101 --Invoice Distribution Type
52102  , p_source_32            IN VARCHAR2
52103  , p_source_32_meaning    IN VARCHAR2
52104 --When to Account for Payment Option
52105  , p_source_50            IN VARCHAR2
52106 --Payment Distribution Type
52107  , p_source_51            IN VARCHAR2
52108  , p_source_51_meaning    IN VARCHAR2
52109 --Accounting Reversal Indicator
52110  , p_source_52            IN VARCHAR2
52111 --Payment Distribution Amount
52112  , p_source_53            IN NUMBER
52113 --Business Flow Accounts Payable Application Identifier
52114  , p_source_54            IN NUMBER
52115 --Business Flow Payment Distribution Type
52116  , p_source_55            IN VARCHAR2
52117 --Business Flow Payment Entity Code
52118  , p_source_56            IN VARCHAR2
52119 --Business Flow Payment Distribution Identifier
52120  , p_source_57            IN NUMBER
52121 --Business Flow Payment Identifier
52122  , p_source_58            IN NUMBER
52123 --Payment Distribution Identifier
52124  , p_source_59            IN NUMBER
52125 --Distribution Link Type
52126  , p_source_60            IN VARCHAR2
52127 --Override Accounted Amount Indicator
52128  , p_source_64            IN VARCHAR2
52129  , p_source_64_meaning    IN VARCHAR2
52130 --Payment Supplier Identifier
52131  , p_source_65            IN NUMBER
52132 --Payment Supplier Site Identifier
52133  , p_source_66            IN NUMBER
52134 --Third Party Type
52135  , p_source_67            IN VARCHAR2
52136 --Payment Distribution Reversed Identifier
52137  , p_source_68            IN NUMBER
52138 --Invoice Distribution Tax Line Identifier
52139  , p_source_69            IN NUMBER
52140 --Invoice Distribution Summary Tax Line Identifier
52141  , p_source_70            IN NUMBER
52142 --Accrue on Receipt Option
52143  , p_source_111            IN VARCHAR2
52144  , p_source_111_meaning    IN VARCHAR2
52145 --Cleared Exchange Date
52146  , p_source_114            IN DATE
52147 --Cleared Exchange Rate
52148  , p_source_115            IN NUMBER
52149 --Cleared Exchange Rate Type
52150  , p_source_116            IN VARCHAR2
52151 )
52152 IS
52153 
52154 l_component_type              VARCHAR2(80);
52155 l_component_code              VARCHAR2(30);
52156 l_component_type_code         VARCHAR2(1);
52157 l_component_appl_id           INTEGER;
52158 l_amb_context_code            VARCHAR2(30);
52159 l_entity_code                 VARCHAR2(30);
52160 l_event_class_code            VARCHAR2(30);
52161 l_ae_header_id                NUMBER;
52162 l_event_type_code             VARCHAR2(30);
52163 l_line_definition_code        VARCHAR2(30);
52164 l_line_definition_owner_code  VARCHAR2(1);
52165 --
52166 -- adr variables
52170 l_adr_accounting_coa_id       NUMBER;
52167 l_segment                     VARCHAR2(30);
52168 l_ccid                        NUMBER;
52169 l_adr_transaction_coa_id      NUMBER;
52171 l_adr_flexfield_segment_code  VARCHAR2(30);
52172 l_adr_flex_value_set_id       NUMBER;
52173 l_adr_value_type_code         VARCHAR2(30);
52174 l_adr_value_combination_id    NUMBER;
52175 l_adr_value_segment_code      VARCHAR2(30);
52176 
52177 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
52178 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
52179 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
52180 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
52181 
52182 -- 4262811 Variables ------------------------------------------------------------------------------------------
52183 l_entered_amt_idx             NUMBER;
52184 l_accted_amt_idx              NUMBER;
52185 l_acc_rev_flag                VARCHAR2(1);
52186 l_accrual_line_num            NUMBER;
52187 l_tmp_amt                     NUMBER;
52188 l_acc_rev_natural_side_code   VARCHAR2(1);
52189 
52190 l_num_entries                 NUMBER;
52191 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
52192 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
52193 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
52194 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
52195 l_recog_line_1                NUMBER;
52196 l_recog_line_2                NUMBER;
52197 
52198 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
52199 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
52200 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
52201 
52202 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52203 
52204 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
52205 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
52206 
52207 ---------------------------------------------------------------------------------------------------------------
52208 
52209 
52210 --
52211 -- bulk performance
52212 --
52213 l_balance_type_code           VARCHAR2(1);
52214 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
52215 l_log_module                  VARCHAR2(240);
52216 
52217 --
52218 -- Upgrade strategy
52219 --
52220 l_actual_upg_option           VARCHAR2(1);
52221 l_enc_upg_option           VARCHAR2(1);
52222 
52223 --
52224 BEGIN
52225 --
52226 IF g_log_enabled THEN
52227       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_102';
52228 END IF;
52229 --
52230 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52231 
52232       trace
52233          (p_msg      => 'BEGIN of AcctLineType_102'
52234          ,p_level    => C_LEVEL_PROCEDURE
52235          ,p_module   => l_log_module);
52236 
52237 END IF;
52238 --
52239 l_component_type             := 'AMB_JLT';
52240 l_component_code             := 'AP_INV_PRICE_VAR_CLEAR';
52241 l_component_type_code        := 'S';
52242 l_component_appl_id          :=  200;
52243 l_amb_context_code           := 'DEFAULT';
52244 l_entity_code                := 'AP_PAYMENTS';
52245 l_event_class_code           := 'RECONCILED PAYMENTS';
52246 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
52247 l_line_definition_owner_code := 'S';
52248 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
52249 --
52250 l_balance_type_code          := 'A';
52251 l_segment                     := NULL;
52252 l_ccid                        := NULL;
52253 l_adr_transaction_coa_id      := NULL;
52254 l_adr_accounting_coa_id       := NULL;
52255 l_adr_flexfield_segment_code  := NULL;
52256 l_adr_flex_value_set_id       := NULL;
52257 l_adr_value_type_code         := NULL;
52258 l_adr_value_combination_id    := NULL;
52259 l_adr_value_segment_code      := NULL;
52260 
52261 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
52262 l_bflow_class_code           := '';    -- 4219869 Business Flow
52263 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
52264 l_budgetary_control_flag     := 'N';
52265 
52266 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
52267 l_bflow_applied_to_amt       := NULL; -- 5132302
52268 l_entered_amt_idx            := NULL;          -- 4262811
52269 l_accted_amt_idx             := NULL;          -- 4262811
52270 l_acc_rev_flag               := NULL;          -- 4262811
52271 l_accrual_line_num           := NULL;          -- 4262811
52272 l_tmp_amt                    := NULL;          -- 4262811
52273 --
52274  
52275 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52276     l_balance_type_code <> 'B' THEN
52277 IF NVL(p_source_50,'
52278 ') =  'CLEAR_CLEAR' AND 
52279 NVL(p_source_32,'
52280 ') =  'IPV' AND 
52281 NVL(p_source_111,'
52282 ') =  'Y' AND 
52283 (NVL(p_source_51,'
52284 ') =  'CASH' OR 
52285 NVL(p_source_51,'
52286 ') =  'AWT' OR 
52287 NVL(p_source_51,'
52288 ') =  'DISCOUNT')
52289  THEN 
52290 
52291    --
52292    XLA_AE_LINES_PKG.SetNewLine;
52293 
52294    p_balance_type_code          := l_balance_type_code;
52295    -- set the flag so later we will know whether the gain loss line needs to be created
52299    END IF;
52296    
52297    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52298      p_actual_flag :='A';
52300 
52301    --
52302    -- bulk performance
52303    --
52304    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52305                                       p_header_num   => 0); -- 4262811
52306    --
52307    -- set accounting line options
52308    --
52309    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52310            p_natural_side_code          => 'D'
52311          , p_gain_or_loss_flag          => 'N'
52312          , p_gl_transfer_mode_code      => 'S'
52313          , p_acct_entry_type_code       => 'A'
52314          , p_switch_side_flag           => 'Y'
52315          , p_merge_duplicate_code       => 'A'
52316          );
52317    --
52318    l_acc_rev_natural_side_code := 'C';  -- 4262811
52319    -- 
52320    --
52321    -- set accounting line type info
52322    --
52323    xla_ae_lines_pkg.SetAcctLineType
52324       (p_component_type             => l_component_type
52325       ,p_event_type_code            => l_event_type_code
52326       ,p_line_definition_owner_code => l_line_definition_owner_code
52327       ,p_line_definition_code       => l_line_definition_code
52328       ,p_accounting_line_code       => l_component_code
52329       ,p_accounting_line_type_code  => l_component_type_code
52330       ,p_accounting_line_appl_id    => l_component_appl_id
52331       ,p_amb_context_code           => l_amb_context_code
52332       ,p_entity_code                => l_entity_code
52333       ,p_event_class_code           => l_event_class_code);
52334    --
52335    -- set accounting class
52336    --
52337    xla_ae_lines_pkg.SetAcctClass(
52338            p_accounting_class_code  => 'IPV'
52339          , p_ae_header_id           => l_ae_header_id
52340          );
52341 
52342    --
52343    -- set rounding class
52344    --
52345    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52346                       'IPV';
52347 
52348    --
52349    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52350    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52351    --
52352    -- bulk performance
52353    --
52354    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52355 
52356    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52357       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52358 
52359    -- 4955764
52360    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52361       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52362 
52363    -- 4458381 Public Sector Enh
52364    
52365    --
52366    -- set accounting attributes for the line type
52367    --
52368    l_entered_amt_idx := 10;
52369    l_accted_amt_idx  := 15;
52370    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
52371    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
52372    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
52373    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
52374    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
52375    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
52376    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
52377    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52378    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
52379    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
52380    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
52381    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
52382    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
52383    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
52384    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
52385    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
52386    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
52387    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
52388    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
52389    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
52390    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
52391    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
52392    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
52393    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
52394    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
52395    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
52396    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
52397    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
52398    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
52399    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
52400    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
52401    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
52402    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
52403    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
52404    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
52408    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
52405    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
52406    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
52407    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
52409    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
52410    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
52411    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
52412    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
52413    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
52414    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
52415    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
52416    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
52417    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
52418    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
52419 
52420    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52421    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52422 
52423    ---------------------------------------------------------------------------------------------------------------
52424    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52425    ---------------------------------------------------------------------------------------------------------------
52426    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52427 
52428    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52429    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52430 
52431    IF xla_accounting_cache_pkg.GetValueChar
52432          (p_source_code         => 'LEDGER_CATEGORY_CODE'
52433          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52434    AND l_bflow_method_code = 'PRIOR_ENTRY'
52435 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52436    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52437          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52438        )
52439    THEN
52440          xla_ae_lines_pkg.BflowUpgEntry
52441            (p_business_method_code    => l_bflow_method_code
52442            ,p_business_class_code     => l_bflow_class_code
52443            ,p_balance_type            => l_balance_type_code);
52444    ELSE
52445       NULL;
52446 -- No business flow processing for business flow method of NONE.
52447    END IF;
52448 
52449    --
52450    -- call analytical criteria
52451    --
52452    
52453    --
52454    -- call description
52455    --
52456    -- No description or it is inherited.
52457    --
52458    -- call ADRs
52459    -- Bug 4922099
52460    --
52461    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52462         (NVL(l_actual_upg_option, 'N') = 'O') OR
52463         (NVL(l_enc_upg_option, 'N') = 'O')
52464       )
52465    THEN
52466    NULL;
52467    --
52468    --
52469    
52470   l_ccid := AcctDerRule_28(
52471            p_application_id           => p_application_id
52472          , p_ae_header_id             => l_ae_header_id 
52473 , p_source_29 => p_source_29
52474          , x_transaction_coa_id       => l_adr_transaction_coa_id
52475          , x_accounting_coa_id        => l_adr_accounting_coa_id
52476          , x_value_type_code          => l_adr_value_type_code
52477          , p_side                     => 'NA'
52478    );
52479 
52480    xla_ae_lines_pkg.set_ccid(
52481     p_code_combination_id          => l_ccid
52482   , p_value_type_code              => l_adr_value_type_code
52483   , p_transaction_coa_id           => l_adr_transaction_coa_id
52484   , p_accounting_coa_id            => l_adr_accounting_coa_id
52485   , p_adr_code                     => 'AP_INVOICE_DIST'
52486   , p_adr_type_code                => 'S'
52487   , p_component_type               => l_component_type
52488   , p_component_code               => l_component_code
52489   , p_component_type_code          => l_component_type_code
52490   , p_component_appl_id            => l_component_appl_id
52491   , p_amb_context_code             => l_amb_context_code
52492   , p_side                         => 'NA'
52493   );
52494 
52495 
52496    --
52497    --
52498    END IF;
52499    --
52500    -- Bug 4922099
52501    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52502           (NVL(l_enc_upg_option, 'N') = 'O')
52503         ) AND
52504         (l_bflow_method_code = 'PRIOR_ENTRY')
52505       )
52506    THEN
52507       IF
52508       --
52509       1 = 2
52510       --
52511       THEN
52512       xla_accounting_err_pkg.build_message
52513                                     (p_appli_s_name            => 'XLA'
52514                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52515                                     ,p_token_1                 => 'LINE_NUMBER'
52516                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
52517                                     ,p_token_2                 => 'LINE_TYPE_NAME'
52518                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
52522                                                                             ,l_component_appl_id
52519                                                                              l_component_type
52520                                                                             ,l_component_code
52521                                                                             ,l_component_type_code
52523                                                                             ,l_amb_context_code
52524                                                                             ,l_entity_code
52525                                                                             ,l_event_class_code
52526                                                                            )
52527                                     ,p_token_3                 => 'OWNER'
52528                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
52529                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
52530                                                                           ,p_lookup_code    => l_component_type_code
52531                                                                          )
52532                                     ,p_token_4                 => 'PRODUCT_NAME'
52533                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52534                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52535                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52536                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52537                                     ,p_ae_header_id            =>  NULL
52538                                        );
52539 
52540         IF (C_LEVEL_ERROR>= g_log_level) THEN
52541                  trace
52542                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52543                       ,p_level    => C_LEVEL_ERROR
52544                       ,p_module   => l_log_module);
52545         END IF;
52546       END IF;
52547    END IF;
52548    --
52549    --
52550    ------------------------------------------------------------------------------------------------
52551    -- 4219869 Business Flow
52552    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52553    -- Prior Entry.  Currently, the following code is always generated.
52554    ------------------------------------------------------------------------------------------------
52555    XLA_AE_LINES_PKG.ValidateCurrentLine;
52556 
52557    ------------------------------------------------------------------------------------
52558    -- 4219869 Business Flow
52559    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52560    ------------------------------------------------------------------------------------
52561    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52562 
52563    ----------------------------------------------------------------------------------
52564    -- 4219869 Business Flow
52565    -- Update journal entry status -- Need to generate this within IF <condition>
52566    ----------------------------------------------------------------------------------
52567    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52568          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52569          ,p_balance_type_code => l_balance_type_code
52570          );
52571 
52572    -------------------------------------------------------------------------------------------
52573    -- 4262811 - Generate the Accrual Reversal lines
52574    -------------------------------------------------------------------------------------------
52575    BEGIN
52576       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52577                               (g_array_event(p_event_id).array_value_num('header_index'));
52578       IF l_acc_rev_flag IS NULL THEN
52579          l_acc_rev_flag := 'N';
52580       END IF;
52581    EXCEPTION
52582       WHEN OTHERS THEN
52583          l_acc_rev_flag := 'N';
52584    END;
52585    --
52586    IF (l_acc_rev_flag = 'Y') THEN
52587 
52588        -- 4645092  ------------------------------------------------------------------------------
52589        -- To allow MPA report to determine if it should generate report process
52590        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52591        ------------------------------------------------------------------------------------------
52592 
52593        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52594        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52595    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
52596    -- call ADRs
52597    -- Bug 4922099
52598    --
52599    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52600         (NVL(l_actual_upg_option, 'N') = 'O') OR
52601         (NVL(l_enc_upg_option, 'N') = 'O')
52602       )
52603    THEN
52604    NULL;
52605    --
52606    --
52607    
52608   l_ccid := AcctDerRule_28(
52609            p_application_id           => p_application_id
52610          , p_ae_header_id             => l_ae_header_id 
52611 , p_source_29 => p_source_29
52612          , x_transaction_coa_id       => l_adr_transaction_coa_id
52613          , x_accounting_coa_id        => l_adr_accounting_coa_id
52614          , x_value_type_code          => l_adr_value_type_code
52615          , p_side                     => 'NA'
52616    );
52617 
52618    xla_ae_lines_pkg.set_ccid(
52622   , p_accounting_coa_id            => l_adr_accounting_coa_id
52619     p_code_combination_id          => l_ccid
52620   , p_value_type_code              => l_adr_value_type_code
52621   , p_transaction_coa_id           => l_adr_transaction_coa_id
52623   , p_adr_code                     => 'AP_INVOICE_DIST'
52624   , p_adr_type_code                => 'S'
52625   , p_component_type               => l_component_type
52626   , p_component_code               => l_component_code
52627   , p_component_type_code          => l_component_type_code
52628   , p_component_appl_id            => l_component_appl_id
52629   , p_amb_context_code             => l_amb_context_code
52630   , p_side                         => 'NA'
52631   );
52632 
52633 
52634    --
52635    --
52636    END IF;
52637 
52638        --
52639        -- Update the line information that should be overwritten
52640        --
52641        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52642                                          p_header_num   => 1);
52643        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
52644 
52645        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52646 
52647        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
52648           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52649        END IF;
52650 
52651       --
52652       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52653       --
52654       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52655           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
52656       ELSE
52657           ---------------------------------------------------------------------------------------------------
52658           -- 4262811a Switch Sign
52659           ---------------------------------------------------------------------------------------------------
52660           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
52661           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52662                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52663           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52664                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52665           -- 5132302
52666           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52667                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52668 
52669       END IF;
52670 
52671       -- 4955764
52672       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52673       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52674 
52675 
52676       XLA_AE_LINES_PKG.ValidateCurrentLine;
52677       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52678 
52679       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52680                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52681                ,p_balance_type_code => l_balance_type_code);
52682 
52683    END IF;
52684 
52685    -----------------------------------------------------------------------------------------
52686    -- 4262811 Multiperiod Accounting
52687    -----------------------------------------------------------------------------------------
52688      -- No MPA option is assigned.
52689 
52690 
52691 END IF;
52692 END IF;
52693 --
52694 
52695 --
52696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52697    trace
52698       (p_msg      => 'END of AcctLineType_102'
52699       ,p_level    => C_LEVEL_PROCEDURE
52700       ,p_module   => l_log_module);
52701 END IF;
52702 --
52703 EXCEPTION
52704   WHEN xla_exceptions_pkg.application_exception THEN
52705       RAISE;
52706   WHEN OTHERS THEN
52707        xla_exceptions_pkg.raise_message
52708            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_102');
52709 END AcctLineType_102;
52710 --
52711 
52712 ---------------------------------------
52713 --
52714 -- PRIVATE FUNCTION
52715 --         AcctLineType_103
52716 --
52717 ---------------------------------------
52718 PROCEDURE AcctLineType_103 (
52719   p_application_id        IN NUMBER
52720  ,p_event_id              IN NUMBER
52721  ,p_calculate_acctd_flag  IN VARCHAR2
52722  ,p_calculate_g_l_flag    IN VARCHAR2
52723  ,p_actual_flag           IN OUT VARCHAR2
52724  ,p_balance_type_code     OUT VARCHAR2
52725  ,p_gain_or_loss_ref      OUT VARCHAR2
52726  
52727 --Payment Currency Code
52728  , p_source_12            IN VARCHAR2
52729 --Payment Distribution (Payment Rate) Ledger Amount
52730  , p_source_21            IN NUMBER
52731 --Invoice Distribution Account
52732  , p_source_29            IN NUMBER
52733 --Invoice Distribution Type
52734  , p_source_32            IN VARCHAR2
52735  , p_source_32_meaning    IN VARCHAR2
52736 --When to Account for Payment Option
52737  , p_source_50            IN VARCHAR2
52738 --Payment Distribution Type
52739  , p_source_51            IN VARCHAR2
52740  , p_source_51_meaning    IN VARCHAR2
52744  , p_source_53            IN NUMBER
52741 --Accounting Reversal Indicator
52742  , p_source_52            IN VARCHAR2
52743 --Payment Distribution Amount
52745 --Business Flow Accounts Payable Application Identifier
52746  , p_source_54            IN NUMBER
52747 --Payment Distribution Identifier
52748  , p_source_59            IN NUMBER
52749 --Distribution Link Type
52750  , p_source_60            IN VARCHAR2
52751 --Override Accounted Amount Indicator
52752  , p_source_64            IN VARCHAR2
52753  , p_source_64_meaning    IN VARCHAR2
52754 --Payment Supplier Identifier
52755  , p_source_65            IN NUMBER
52756 --Payment Supplier Site Identifier
52757  , p_source_66            IN NUMBER
52758 --Third Party Type
52759  , p_source_67            IN VARCHAR2
52760 --Payment Distribution Reversed Identifier
52761  , p_source_68            IN NUMBER
52762 --Invoice Distribution Tax Line Identifier
52763  , p_source_69            IN NUMBER
52764 --Invoice Distribution Summary Tax Line Identifier
52765  , p_source_70            IN NUMBER
52766 --Payment Type
52767  , p_source_71            IN VARCHAR2
52768  , p_source_71_meaning    IN VARCHAR2
52769 --Invoice Distribution Amount of the Payment Distribution
52770  , p_source_72            IN NUMBER
52771 --Business Flow Invoice Distribution Type
52772  , p_source_73            IN VARCHAR2
52773 --Business Flow Invoice Entity Code
52774  , p_source_74            IN VARCHAR2
52775 --Business Flow Invoice Distribution Identifier
52776  , p_source_75            IN NUMBER
52777 --Business Flow Invoice Identifier
52778  , p_source_76            IN NUMBER
52779 --Invoice Distribution Tax Distribution Identifier from Tax
52780  , p_source_77            IN NUMBER
52781 --Accrue on Receipt Option
52782  , p_source_111            IN VARCHAR2
52783  , p_source_111_meaning    IN VARCHAR2
52784 --Payment Exchange Date
52785  , p_source_121            IN DATE
52786 --Payment Exchange Rate
52787  , p_source_122            IN NUMBER
52788 --Payment Exchange Rate Type
52789  , p_source_123            IN VARCHAR2
52790 )
52791 IS
52792 
52793 l_component_type              VARCHAR2(80);
52794 l_component_code              VARCHAR2(30);
52795 l_component_type_code         VARCHAR2(1);
52796 l_component_appl_id           INTEGER;
52797 l_amb_context_code            VARCHAR2(30);
52798 l_entity_code                 VARCHAR2(30);
52799 l_event_class_code            VARCHAR2(30);
52800 l_ae_header_id                NUMBER;
52801 l_event_type_code             VARCHAR2(30);
52802 l_line_definition_code        VARCHAR2(30);
52803 l_line_definition_owner_code  VARCHAR2(1);
52804 --
52805 -- adr variables
52806 l_segment                     VARCHAR2(30);
52807 l_ccid                        NUMBER;
52808 l_adr_transaction_coa_id      NUMBER;
52809 l_adr_accounting_coa_id       NUMBER;
52810 l_adr_flexfield_segment_code  VARCHAR2(30);
52811 l_adr_flex_value_set_id       NUMBER;
52812 l_adr_value_type_code         VARCHAR2(30);
52813 l_adr_value_combination_id    NUMBER;
52814 l_adr_value_segment_code      VARCHAR2(30);
52815 
52816 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
52817 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
52818 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
52819 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
52820 
52821 -- 4262811 Variables ------------------------------------------------------------------------------------------
52822 l_entered_amt_idx             NUMBER;
52823 l_accted_amt_idx              NUMBER;
52824 l_acc_rev_flag                VARCHAR2(1);
52825 l_accrual_line_num            NUMBER;
52826 l_tmp_amt                     NUMBER;
52827 l_acc_rev_natural_side_code   VARCHAR2(1);
52828 
52829 l_num_entries                 NUMBER;
52830 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
52831 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
52832 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
52833 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
52834 l_recog_line_1                NUMBER;
52835 l_recog_line_2                NUMBER;
52836 
52837 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
52838 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
52839 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
52840 
52841 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52842 
52843 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
52844 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
52845 
52846 ---------------------------------------------------------------------------------------------------------------
52847 
52848 
52849 --
52850 -- bulk performance
52851 --
52852 l_balance_type_code           VARCHAR2(1);
52853 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
52854 l_log_module                  VARCHAR2(240);
52855 
52856 --
52857 -- Upgrade strategy
52858 --
52859 l_actual_upg_option           VARCHAR2(1);
52860 l_enc_upg_option           VARCHAR2(1);
52861 
52862 --
52863 BEGIN
52864 --
52865 IF g_log_enabled THEN
52866       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_103';
52867 END IF;
52868 --
52872          (p_msg      => 'BEGIN of AcctLineType_103'
52869 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52870 
52871       trace
52873          ,p_level    => C_LEVEL_PROCEDURE
52874          ,p_module   => l_log_module);
52875 
52876 END IF;
52877 --
52878 l_component_type             := 'AMB_JLT';
52879 l_component_code             := 'AP_INV_PRICE_VAR_PMT';
52880 l_component_type_code        := 'S';
52881 l_component_appl_id          :=  200;
52882 l_amb_context_code           := 'DEFAULT';
52883 l_entity_code                := 'AP_PAYMENTS';
52884 l_event_class_code           := 'PAYMENTS';
52885 l_event_type_code            := 'PAYMENTS_ALL';
52886 l_line_definition_owner_code := 'S';
52887 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
52888 --
52889 l_balance_type_code          := 'A';
52890 l_segment                     := NULL;
52891 l_ccid                        := NULL;
52892 l_adr_transaction_coa_id      := NULL;
52893 l_adr_accounting_coa_id       := NULL;
52894 l_adr_flexfield_segment_code  := NULL;
52895 l_adr_flex_value_set_id       := NULL;
52896 l_adr_value_type_code         := NULL;
52897 l_adr_value_combination_id    := NULL;
52898 l_adr_value_segment_code      := NULL;
52899 
52900 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
52901 l_bflow_class_code           := '';    -- 4219869 Business Flow
52902 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
52903 l_budgetary_control_flag     := 'N';
52904 
52905 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
52906 l_bflow_applied_to_amt       := NULL; -- 5132302
52907 l_entered_amt_idx            := NULL;          -- 4262811
52908 l_accted_amt_idx             := NULL;          -- 4262811
52909 l_acc_rev_flag               := NULL;          -- 4262811
52910 l_accrual_line_num           := NULL;          -- 4262811
52911 l_tmp_amt                    := NULL;          -- 4262811
52912 --
52913  
52914 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52915     l_balance_type_code <> 'B' THEN
52916 IF NVL(p_source_50,'
52917 ') <>  'CLEAR_CLEAR' AND 
52918 NVL(p_source_32,'
52919 ') =  'IPV' AND 
52920 NVL(p_source_111,'
52921 ') =  'Y' AND 
52922 (NVL(p_source_51,'
52923 ') =  'CASH' OR 
52924 NVL(p_source_51,'
52925 ') =  'AWT' OR 
52926 NVL(p_source_51,'
52927 ') =  'DISCOUNT') AND 
52928 NVL(p_source_71,'
52929 ') <>  'R'
52930  THEN 
52931 
52932    --
52933    XLA_AE_LINES_PKG.SetNewLine;
52934 
52935    p_balance_type_code          := l_balance_type_code;
52936    -- set the flag so later we will know whether the gain loss line needs to be created
52937    
52938    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52939      p_actual_flag :='A';
52940    END IF;
52941 
52942    --
52943    -- bulk performance
52944    --
52945    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52946                                       p_header_num   => 0); -- 4262811
52947    --
52948    -- set accounting line options
52949    --
52950    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52951            p_natural_side_code          => 'D'
52952          , p_gain_or_loss_flag          => 'N'
52953          , p_gl_transfer_mode_code      => 'S'
52954          , p_acct_entry_type_code       => 'A'
52955          , p_switch_side_flag           => 'Y'
52956          , p_merge_duplicate_code       => 'A'
52957          );
52958    --
52959    l_acc_rev_natural_side_code := 'C';  -- 4262811
52960    -- 
52961    --
52962    -- set accounting line type info
52963    --
52964    xla_ae_lines_pkg.SetAcctLineType
52965       (p_component_type             => l_component_type
52966       ,p_event_type_code            => l_event_type_code
52967       ,p_line_definition_owner_code => l_line_definition_owner_code
52968       ,p_line_definition_code       => l_line_definition_code
52969       ,p_accounting_line_code       => l_component_code
52970       ,p_accounting_line_type_code  => l_component_type_code
52971       ,p_accounting_line_appl_id    => l_component_appl_id
52972       ,p_amb_context_code           => l_amb_context_code
52973       ,p_entity_code                => l_entity_code
52974       ,p_event_class_code           => l_event_class_code);
52975    --
52976    -- set accounting class
52977    --
52978    xla_ae_lines_pkg.SetAcctClass(
52979            p_accounting_class_code  => 'IPV'
52980          , p_ae_header_id           => l_ae_header_id
52981          );
52982 
52983    --
52984    -- set rounding class
52985    --
52986    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52987                       'IPV';
52988 
52989    --
52990    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52991    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52992    --
52993    -- bulk performance
52994    --
52995    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52996 
52997    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52998       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52999 
53000    -- 4955764
53001    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53005    
53002       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53003 
53004    -- 4458381 Public Sector Enh
53006    --
53007    -- set accounting attributes for the line type
53008    --
53009    l_entered_amt_idx := 10;
53010    l_accted_amt_idx  := 15;
53011    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
53012    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53013    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
53014    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
53015    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
53016    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
53017    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
53018    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53019    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
53020    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
53021    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
53022    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
53023    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
53024    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53025    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
53026    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
53027    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
53028    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
53029    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
53030    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
53031    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
53032    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
53033    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
53034    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
53035    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
53036    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
53037    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
53038    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
53039    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
53040    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
53041    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
53042    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
53043    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
53044    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
53045    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
53046    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
53047    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
53048    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
53049    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
53050    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
53051    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
53052    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
53053    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
53054    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
53055    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
53056    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
53057    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
53058    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
53059    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
53060 
53061    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53062    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53063 
53064    ---------------------------------------------------------------------------------------------------------------
53065    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53066    ---------------------------------------------------------------------------------------------------------------
53067    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53068 
53069    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53070    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53071 
53072    IF xla_accounting_cache_pkg.GetValueChar
53073          (p_source_code         => 'LEDGER_CATEGORY_CODE'
53074          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53075    AND l_bflow_method_code = 'PRIOR_ENTRY'
53076 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53077    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53078          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53079        )
53080    THEN
53081          xla_ae_lines_pkg.BflowUpgEntry
53082            (p_business_method_code    => l_bflow_method_code
53083            ,p_business_class_code     => l_bflow_class_code
53084            ,p_balance_type            => l_balance_type_code);
53085    ELSE
53086       NULL;
53087 -- No business flow processing for business flow method of NONE.
53088    END IF;
53089 
53090    --
53091    -- call analytical criteria
53092    --
53093    
53094    --
53095    -- call description
53099    -- call ADRs
53096    --
53097    -- No description or it is inherited.
53098    --
53100    -- Bug 4922099
53101    --
53102    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53103         (NVL(l_actual_upg_option, 'N') = 'O') OR
53104         (NVL(l_enc_upg_option, 'N') = 'O')
53105       )
53106    THEN
53107    NULL;
53108    --
53109    --
53110    
53111   l_ccid := AcctDerRule_28(
53112            p_application_id           => p_application_id
53113          , p_ae_header_id             => l_ae_header_id 
53114 , p_source_29 => p_source_29
53115          , x_transaction_coa_id       => l_adr_transaction_coa_id
53116          , x_accounting_coa_id        => l_adr_accounting_coa_id
53117          , x_value_type_code          => l_adr_value_type_code
53118          , p_side                     => 'NA'
53119    );
53120 
53121    xla_ae_lines_pkg.set_ccid(
53122     p_code_combination_id          => l_ccid
53123   , p_value_type_code              => l_adr_value_type_code
53124   , p_transaction_coa_id           => l_adr_transaction_coa_id
53125   , p_accounting_coa_id            => l_adr_accounting_coa_id
53126   , p_adr_code                     => 'AP_INVOICE_DIST'
53127   , p_adr_type_code                => 'S'
53128   , p_component_type               => l_component_type
53129   , p_component_code               => l_component_code
53130   , p_component_type_code          => l_component_type_code
53131   , p_component_appl_id            => l_component_appl_id
53132   , p_amb_context_code             => l_amb_context_code
53133   , p_side                         => 'NA'
53134   );
53135 
53136 
53137    --
53138    --
53139    END IF;
53140    --
53141    -- Bug 4922099
53142    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53143           (NVL(l_enc_upg_option, 'N') = 'O')
53144         ) AND
53145         (l_bflow_method_code = 'PRIOR_ENTRY')
53146       )
53147    THEN
53148       IF
53149       --
53150       1 = 2
53151       --
53152       THEN
53153       xla_accounting_err_pkg.build_message
53154                                     (p_appli_s_name            => 'XLA'
53155                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53156                                     ,p_token_1                 => 'LINE_NUMBER'
53157                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
53158                                     ,p_token_2                 => 'LINE_TYPE_NAME'
53159                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
53160                                                                              l_component_type
53161                                                                             ,l_component_code
53162                                                                             ,l_component_type_code
53163                                                                             ,l_component_appl_id
53164                                                                             ,l_amb_context_code
53165                                                                             ,l_entity_code
53166                                                                             ,l_event_class_code
53167                                                                            )
53168                                     ,p_token_3                 => 'OWNER'
53169                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
53170                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
53171                                                                           ,p_lookup_code    => l_component_type_code
53172                                                                          )
53173                                     ,p_token_4                 => 'PRODUCT_NAME'
53174                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53175                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53176                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53177                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53178                                     ,p_ae_header_id            =>  NULL
53179                                        );
53180 
53181         IF (C_LEVEL_ERROR>= g_log_level) THEN
53182                  trace
53183                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53184                       ,p_level    => C_LEVEL_ERROR
53185                       ,p_module   => l_log_module);
53186         END IF;
53187       END IF;
53188    END IF;
53189    --
53190    --
53191    ------------------------------------------------------------------------------------------------
53192    -- 4219869 Business Flow
53193    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53194    -- Prior Entry.  Currently, the following code is always generated.
53195    ------------------------------------------------------------------------------------------------
53196    XLA_AE_LINES_PKG.ValidateCurrentLine;
53197 
53198    ------------------------------------------------------------------------------------
53199    -- 4219869 Business Flow
53200    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53201    ------------------------------------------------------------------------------------
53202    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53206    -- Update journal entry status -- Need to generate this within IF <condition>
53203 
53204    ----------------------------------------------------------------------------------
53205    -- 4219869 Business Flow
53207    ----------------------------------------------------------------------------------
53208    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53209          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53210          ,p_balance_type_code => l_balance_type_code
53211          );
53212 
53213    -------------------------------------------------------------------------------------------
53214    -- 4262811 - Generate the Accrual Reversal lines
53215    -------------------------------------------------------------------------------------------
53216    BEGIN
53217       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53218                               (g_array_event(p_event_id).array_value_num('header_index'));
53219       IF l_acc_rev_flag IS NULL THEN
53220          l_acc_rev_flag := 'N';
53221       END IF;
53222    EXCEPTION
53223       WHEN OTHERS THEN
53224          l_acc_rev_flag := 'N';
53225    END;
53226    --
53227    IF (l_acc_rev_flag = 'Y') THEN
53228 
53229        -- 4645092  ------------------------------------------------------------------------------
53230        -- To allow MPA report to determine if it should generate report process
53231        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53232        ------------------------------------------------------------------------------------------
53233 
53234        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53235        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53236    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
53237    -- call ADRs
53238    -- Bug 4922099
53239    --
53240    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53241         (NVL(l_actual_upg_option, 'N') = 'O') OR
53242         (NVL(l_enc_upg_option, 'N') = 'O')
53243       )
53244    THEN
53245    NULL;
53246    --
53247    --
53248    
53249   l_ccid := AcctDerRule_28(
53250            p_application_id           => p_application_id
53251          , p_ae_header_id             => l_ae_header_id 
53252 , p_source_29 => p_source_29
53253          , x_transaction_coa_id       => l_adr_transaction_coa_id
53254          , x_accounting_coa_id        => l_adr_accounting_coa_id
53255          , x_value_type_code          => l_adr_value_type_code
53256          , p_side                     => 'NA'
53257    );
53258 
53259    xla_ae_lines_pkg.set_ccid(
53260     p_code_combination_id          => l_ccid
53261   , p_value_type_code              => l_adr_value_type_code
53262   , p_transaction_coa_id           => l_adr_transaction_coa_id
53263   , p_accounting_coa_id            => l_adr_accounting_coa_id
53264   , p_adr_code                     => 'AP_INVOICE_DIST'
53265   , p_adr_type_code                => 'S'
53266   , p_component_type               => l_component_type
53267   , p_component_code               => l_component_code
53268   , p_component_type_code          => l_component_type_code
53269   , p_component_appl_id            => l_component_appl_id
53270   , p_amb_context_code             => l_amb_context_code
53271   , p_side                         => 'NA'
53272   );
53273 
53274 
53275    --
53276    --
53277    END IF;
53278 
53279        --
53280        -- Update the line information that should be overwritten
53281        --
53282        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53283                                          p_header_num   => 1);
53284        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
53285 
53286        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53287 
53288        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
53289           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53290        END IF;
53291 
53292       --
53293       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53294       --
53295       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53296           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
53297       ELSE
53298           ---------------------------------------------------------------------------------------------------
53299           -- 4262811a Switch Sign
53300           ---------------------------------------------------------------------------------------------------
53301           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
53302           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53303                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53304           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53305                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53306           -- 5132302
53307           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53308                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53309 
53310       END IF;
53311 
53312       -- 4955764
53316 
53313       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53314       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53315 
53317       XLA_AE_LINES_PKG.ValidateCurrentLine;
53318       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53319 
53320       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53321                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53322                ,p_balance_type_code => l_balance_type_code);
53323 
53324    END IF;
53325 
53326    -----------------------------------------------------------------------------------------
53327    -- 4262811 Multiperiod Accounting
53328    -----------------------------------------------------------------------------------------
53329      -- No MPA option is assigned.
53330 
53331 
53332 END IF;
53333 END IF;
53334 --
53335 
53336 --
53337 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53338    trace
53339       (p_msg      => 'END of AcctLineType_103'
53340       ,p_level    => C_LEVEL_PROCEDURE
53341       ,p_module   => l_log_module);
53342 END IF;
53343 --
53344 EXCEPTION
53345   WHEN xla_exceptions_pkg.application_exception THEN
53346       RAISE;
53347   WHEN OTHERS THEN
53348        xla_exceptions_pkg.raise_message
53349            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_103');
53350 END AcctLineType_103;
53351 --
53352 
53353 ---------------------------------------
53354 --
53355 -- PRIVATE FUNCTION
53356 --         AcctLineType_104
53357 --
53358 ---------------------------------------
53359 PROCEDURE AcctLineType_104 (
53360   p_application_id        IN NUMBER
53361  ,p_event_id              IN NUMBER
53362  ,p_calculate_acctd_flag  IN VARCHAR2
53363  ,p_calculate_g_l_flag    IN VARCHAR2
53364  ,p_actual_flag           IN OUT VARCHAR2
53365  ,p_balance_type_code     OUT VARCHAR2
53366  ,p_gain_or_loss_ref      OUT VARCHAR2
53367  
53368 --Payment Currency Code
53369  , p_source_12            IN VARCHAR2
53370 --Payment Distribution (Payment Rate) Ledger Amount
53371  , p_source_21            IN NUMBER
53372 --Invoice Distribution Account
53373  , p_source_29            IN NUMBER
53374 --Invoice Distribution Type
53375  , p_source_32            IN VARCHAR2
53376  , p_source_32_meaning    IN VARCHAR2
53377 --When to Account for Payment Option
53378  , p_source_50            IN VARCHAR2
53379 --Payment Distribution Type
53380  , p_source_51            IN VARCHAR2
53381  , p_source_51_meaning    IN VARCHAR2
53382 --Accounting Reversal Indicator
53383  , p_source_52            IN VARCHAR2
53384 --Payment Distribution Amount
53385  , p_source_53            IN NUMBER
53386 --Business Flow Accounts Payable Application Identifier
53387  , p_source_54            IN NUMBER
53388 --Payment Distribution Identifier
53389  , p_source_59            IN NUMBER
53390 --Distribution Link Type
53391  , p_source_60            IN VARCHAR2
53392 --Override Accounted Amount Indicator
53393  , p_source_64            IN VARCHAR2
53394  , p_source_64_meaning    IN VARCHAR2
53395 --Payment Supplier Identifier
53396  , p_source_65            IN NUMBER
53397 --Payment Supplier Site Identifier
53398  , p_source_66            IN NUMBER
53399 --Third Party Type
53400  , p_source_67            IN VARCHAR2
53401 --Payment Distribution Reversed Identifier
53402  , p_source_68            IN NUMBER
53403 --Invoice Distribution Tax Line Identifier
53404  , p_source_69            IN NUMBER
53405 --Invoice Distribution Summary Tax Line Identifier
53406  , p_source_70            IN NUMBER
53407 --Payment Type
53408  , p_source_71            IN VARCHAR2
53409  , p_source_71_meaning    IN VARCHAR2
53410 --Business Flow Invoice Distribution Type
53411  , p_source_73            IN VARCHAR2
53412 --Business Flow Invoice Entity Code
53413  , p_source_74            IN VARCHAR2
53414 --Business Flow Invoice Distribution Identifier
53415  , p_source_75            IN NUMBER
53416 --Business Flow Invoice Identifier
53417  , p_source_76            IN NUMBER
53418 --Invoice Distribution Tax Distribution Identifier from Tax
53419  , p_source_77            IN NUMBER
53420 --Accrue on Receipt Option
53421  , p_source_111            IN VARCHAR2
53422  , p_source_111_meaning    IN VARCHAR2
53423 --Payment Exchange Date
53424  , p_source_121            IN DATE
53425 --Payment Exchange Rate
53426  , p_source_122            IN NUMBER
53427 --Payment Exchange Rate Type
53428  , p_source_123            IN VARCHAR2
53429 )
53430 IS
53431 
53432 l_component_type              VARCHAR2(80);
53433 l_component_code              VARCHAR2(30);
53434 l_component_type_code         VARCHAR2(1);
53435 l_component_appl_id           INTEGER;
53436 l_amb_context_code            VARCHAR2(30);
53437 l_entity_code                 VARCHAR2(30);
53438 l_event_class_code            VARCHAR2(30);
53439 l_ae_header_id                NUMBER;
53440 l_event_type_code             VARCHAR2(30);
53441 l_line_definition_code        VARCHAR2(30);
53442 l_line_definition_owner_code  VARCHAR2(1);
53443 --
53444 -- adr variables
53445 l_segment                     VARCHAR2(30);
53446 l_ccid                        NUMBER;
53447 l_adr_transaction_coa_id      NUMBER;
53448 l_adr_accounting_coa_id       NUMBER;
53449 l_adr_flexfield_segment_code  VARCHAR2(30);
53450 l_adr_flex_value_set_id       NUMBER;
53451 l_adr_value_type_code         VARCHAR2(30);
53452 l_adr_value_combination_id    NUMBER;
53456 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
53453 l_adr_value_segment_code      VARCHAR2(30);
53454 
53455 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
53457 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
53458 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
53459 
53460 -- 4262811 Variables ------------------------------------------------------------------------------------------
53461 l_entered_amt_idx             NUMBER;
53462 l_accted_amt_idx              NUMBER;
53463 l_acc_rev_flag                VARCHAR2(1);
53464 l_accrual_line_num            NUMBER;
53465 l_tmp_amt                     NUMBER;
53466 l_acc_rev_natural_side_code   VARCHAR2(1);
53467 
53468 l_num_entries                 NUMBER;
53469 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
53470 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
53471 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
53472 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
53473 l_recog_line_1                NUMBER;
53474 l_recog_line_2                NUMBER;
53475 
53476 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
53477 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
53478 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
53479 
53480 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53481 
53482 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
53483 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
53484 
53485 ---------------------------------------------------------------------------------------------------------------
53486 
53487 
53488 --
53489 -- bulk performance
53490 --
53491 l_balance_type_code           VARCHAR2(1);
53492 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
53493 l_log_module                  VARCHAR2(240);
53494 
53495 --
53496 -- Upgrade strategy
53497 --
53498 l_actual_upg_option           VARCHAR2(1);
53499 l_enc_upg_option           VARCHAR2(1);
53500 
53501 --
53502 BEGIN
53503 --
53504 IF g_log_enabled THEN
53505       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_104';
53506 END IF;
53507 --
53508 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53509 
53510       trace
53511          (p_msg      => 'BEGIN of AcctLineType_104'
53512          ,p_level    => C_LEVEL_PROCEDURE
53513          ,p_module   => l_log_module);
53514 
53515 END IF;
53516 --
53517 l_component_type             := 'AMB_JLT';
53518 l_component_code             := 'AP_INV_PRICE_VAR_REF';
53519 l_component_type_code        := 'S';
53520 l_component_appl_id          :=  200;
53521 l_amb_context_code           := 'DEFAULT';
53522 l_entity_code                := 'AP_PAYMENTS';
53523 l_event_class_code           := 'REFUNDS';
53524 l_event_type_code            := 'REFUNDS_ALL';
53525 l_line_definition_owner_code := 'S';
53526 l_line_definition_code       := 'CASH_REFUNDS_ALL';
53527 --
53528 l_balance_type_code          := 'A';
53529 l_segment                     := NULL;
53530 l_ccid                        := NULL;
53531 l_adr_transaction_coa_id      := NULL;
53532 l_adr_accounting_coa_id       := NULL;
53533 l_adr_flexfield_segment_code  := NULL;
53534 l_adr_flex_value_set_id       := NULL;
53535 l_adr_value_type_code         := NULL;
53536 l_adr_value_combination_id    := NULL;
53537 l_adr_value_segment_code      := NULL;
53538 
53539 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
53540 l_bflow_class_code           := '';    -- 4219869 Business Flow
53541 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
53542 l_budgetary_control_flag     := 'N';
53543 
53544 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
53545 l_bflow_applied_to_amt       := NULL; -- 5132302
53546 l_entered_amt_idx            := NULL;          -- 4262811
53547 l_accted_amt_idx             := NULL;          -- 4262811
53548 l_acc_rev_flag               := NULL;          -- 4262811
53549 l_accrual_line_num           := NULL;          -- 4262811
53550 l_tmp_amt                    := NULL;          -- 4262811
53551 --
53552  
53553 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53554     l_balance_type_code <> 'B' THEN
53555 IF NVL(p_source_50,'
53556 ') <>  'CLEAR_CLEAR' AND 
53557 NVL(p_source_32,'
53558 ') =  'IPV' AND 
53559 NVL(p_source_111,'
53560 ') =  'Y' AND 
53561 (NVL(p_source_51,'
53562 ') =  'CASH' OR 
53563 NVL(p_source_51,'
53564 ') =  'DISCOUNT') AND 
53565 NVL(p_source_71,'
53566 ') =  'R'
53567  THEN 
53568 
53569    --
53570    XLA_AE_LINES_PKG.SetNewLine;
53571 
53572    p_balance_type_code          := l_balance_type_code;
53573    -- set the flag so later we will know whether the gain loss line needs to be created
53574    
53575    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
53576      p_actual_flag :='A';
53577    END IF;
53578 
53579    --
53580    -- bulk performance
53581    --
53582    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53583                                       p_header_num   => 0); -- 4262811
53584    --
53585    -- set accounting line options
53589          , p_gain_or_loss_flag          => 'N'
53586    --
53587    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53588            p_natural_side_code          => 'D'
53590          , p_gl_transfer_mode_code      => 'S'
53591          , p_acct_entry_type_code       => 'A'
53592          , p_switch_side_flag           => 'Y'
53593          , p_merge_duplicate_code       => 'A'
53594          );
53595    --
53596    l_acc_rev_natural_side_code := 'C';  -- 4262811
53597    -- 
53598    --
53599    -- set accounting line type info
53600    --
53601    xla_ae_lines_pkg.SetAcctLineType
53602       (p_component_type             => l_component_type
53603       ,p_event_type_code            => l_event_type_code
53604       ,p_line_definition_owner_code => l_line_definition_owner_code
53605       ,p_line_definition_code       => l_line_definition_code
53606       ,p_accounting_line_code       => l_component_code
53607       ,p_accounting_line_type_code  => l_component_type_code
53608       ,p_accounting_line_appl_id    => l_component_appl_id
53609       ,p_amb_context_code           => l_amb_context_code
53610       ,p_entity_code                => l_entity_code
53611       ,p_event_class_code           => l_event_class_code);
53612    --
53613    -- set accounting class
53614    --
53615    xla_ae_lines_pkg.SetAcctClass(
53616            p_accounting_class_code  => 'IPV'
53617          , p_ae_header_id           => l_ae_header_id
53618          );
53619 
53620    --
53621    -- set rounding class
53622    --
53623    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53624                       'IPV';
53625 
53626    --
53627    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53628    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53629    --
53630    -- bulk performance
53631    --
53632    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53633 
53634    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53635       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53636 
53637    -- 4955764
53638    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53639       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53640 
53641    -- 4458381 Public Sector Enh
53642    
53643    --
53644    -- set accounting attributes for the line type
53645    --
53646    l_entered_amt_idx := 9;
53647    l_accted_amt_idx  := 14;
53648    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
53649    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53650    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
53651    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
53652    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
53653    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53654    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
53655    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
53656    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
53657    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
53658    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
53659    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53660    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
53661    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
53662    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
53663    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
53664    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
53665    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
53666    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
53667    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
53668    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
53669    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
53670    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
53671    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
53672    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
53673    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
53674    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
53675    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
53676    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
53677    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
53678    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
53679    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
53680    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
53681    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
53682    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
53683    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
53684    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
53685    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
53686    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
53687    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
53688    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
53689    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
53693    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
53690    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
53691    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
53692    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
53694    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
53695 
53696    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53697    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53698 
53699    ---------------------------------------------------------------------------------------------------------------
53700    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53701    ---------------------------------------------------------------------------------------------------------------
53702    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53703 
53704    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53705    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53706 
53707    IF xla_accounting_cache_pkg.GetValueChar
53708          (p_source_code         => 'LEDGER_CATEGORY_CODE'
53709          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53710    AND l_bflow_method_code = 'PRIOR_ENTRY'
53711 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53712    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53713          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53714        )
53715    THEN
53716          xla_ae_lines_pkg.BflowUpgEntry
53717            (p_business_method_code    => l_bflow_method_code
53718            ,p_business_class_code     => l_bflow_class_code
53719            ,p_balance_type            => l_balance_type_code);
53720    ELSE
53721       NULL;
53722 -- No business flow processing for business flow method of NONE.
53723    END IF;
53724 
53725    --
53726    -- call analytical criteria
53727    --
53728    
53729    --
53730    -- call description
53731    --
53732    -- No description or it is inherited.
53733    --
53734    -- call ADRs
53735    -- Bug 4922099
53736    --
53737    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53738         (NVL(l_actual_upg_option, 'N') = 'O') OR
53739         (NVL(l_enc_upg_option, 'N') = 'O')
53740       )
53741    THEN
53742    NULL;
53743    --
53744    --
53745    
53746   l_ccid := AcctDerRule_28(
53747            p_application_id           => p_application_id
53748          , p_ae_header_id             => l_ae_header_id 
53749 , p_source_29 => p_source_29
53750          , x_transaction_coa_id       => l_adr_transaction_coa_id
53751          , x_accounting_coa_id        => l_adr_accounting_coa_id
53752          , x_value_type_code          => l_adr_value_type_code
53753          , p_side                     => 'NA'
53754    );
53755 
53756    xla_ae_lines_pkg.set_ccid(
53757     p_code_combination_id          => l_ccid
53758   , p_value_type_code              => l_adr_value_type_code
53759   , p_transaction_coa_id           => l_adr_transaction_coa_id
53760   , p_accounting_coa_id            => l_adr_accounting_coa_id
53761   , p_adr_code                     => 'AP_INVOICE_DIST'
53762   , p_adr_type_code                => 'S'
53763   , p_component_type               => l_component_type
53764   , p_component_code               => l_component_code
53765   , p_component_type_code          => l_component_type_code
53766   , p_component_appl_id            => l_component_appl_id
53767   , p_amb_context_code             => l_amb_context_code
53768   , p_side                         => 'NA'
53769   );
53770 
53771 
53772    --
53773    --
53774    END IF;
53775    --
53776    -- Bug 4922099
53777    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53778           (NVL(l_enc_upg_option, 'N') = 'O')
53779         ) AND
53780         (l_bflow_method_code = 'PRIOR_ENTRY')
53781       )
53782    THEN
53783       IF
53784       --
53785       1 = 2
53786       --
53787       THEN
53788       xla_accounting_err_pkg.build_message
53789                                     (p_appli_s_name            => 'XLA'
53790                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53791                                     ,p_token_1                 => 'LINE_NUMBER'
53792                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
53793                                     ,p_token_2                 => 'LINE_TYPE_NAME'
53794                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
53795                                                                              l_component_type
53796                                                                             ,l_component_code
53797                                                                             ,l_component_type_code
53798                                                                             ,l_component_appl_id
53799                                                                             ,l_amb_context_code
53800                                                                             ,l_entity_code
53801                                                                             ,l_event_class_code
53805                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
53802                                                                            )
53803                                     ,p_token_3                 => 'OWNER'
53804                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
53806                                                                           ,p_lookup_code    => l_component_type_code
53807                                                                          )
53808                                     ,p_token_4                 => 'PRODUCT_NAME'
53809                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53810                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53811                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53812                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53813                                     ,p_ae_header_id            =>  NULL
53814                                        );
53815 
53816         IF (C_LEVEL_ERROR>= g_log_level) THEN
53817                  trace
53818                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53819                       ,p_level    => C_LEVEL_ERROR
53820                       ,p_module   => l_log_module);
53821         END IF;
53822       END IF;
53823    END IF;
53824    --
53825    --
53826    ------------------------------------------------------------------------------------------------
53827    -- 4219869 Business Flow
53828    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53829    -- Prior Entry.  Currently, the following code is always generated.
53830    ------------------------------------------------------------------------------------------------
53831    XLA_AE_LINES_PKG.ValidateCurrentLine;
53832 
53833    ------------------------------------------------------------------------------------
53834    -- 4219869 Business Flow
53835    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53836    ------------------------------------------------------------------------------------
53837    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53838 
53839    ----------------------------------------------------------------------------------
53840    -- 4219869 Business Flow
53841    -- Update journal entry status -- Need to generate this within IF <condition>
53842    ----------------------------------------------------------------------------------
53843    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53844          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53845          ,p_balance_type_code => l_balance_type_code
53846          );
53847 
53848    -------------------------------------------------------------------------------------------
53849    -- 4262811 - Generate the Accrual Reversal lines
53850    -------------------------------------------------------------------------------------------
53851    BEGIN
53852       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53853                               (g_array_event(p_event_id).array_value_num('header_index'));
53854       IF l_acc_rev_flag IS NULL THEN
53855          l_acc_rev_flag := 'N';
53856       END IF;
53857    EXCEPTION
53858       WHEN OTHERS THEN
53859          l_acc_rev_flag := 'N';
53860    END;
53861    --
53862    IF (l_acc_rev_flag = 'Y') THEN
53863 
53864        -- 4645092  ------------------------------------------------------------------------------
53865        -- To allow MPA report to determine if it should generate report process
53866        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53867        ------------------------------------------------------------------------------------------
53868 
53869        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53870        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53871    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
53872    -- call ADRs
53873    -- Bug 4922099
53874    --
53875    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53876         (NVL(l_actual_upg_option, 'N') = 'O') OR
53877         (NVL(l_enc_upg_option, 'N') = 'O')
53878       )
53879    THEN
53880    NULL;
53881    --
53882    --
53883    
53884   l_ccid := AcctDerRule_28(
53885            p_application_id           => p_application_id
53886          , p_ae_header_id             => l_ae_header_id 
53887 , p_source_29 => p_source_29
53888          , x_transaction_coa_id       => l_adr_transaction_coa_id
53889          , x_accounting_coa_id        => l_adr_accounting_coa_id
53890          , x_value_type_code          => l_adr_value_type_code
53891          , p_side                     => 'NA'
53892    );
53893 
53894    xla_ae_lines_pkg.set_ccid(
53895     p_code_combination_id          => l_ccid
53896   , p_value_type_code              => l_adr_value_type_code
53897   , p_transaction_coa_id           => l_adr_transaction_coa_id
53898   , p_accounting_coa_id            => l_adr_accounting_coa_id
53899   , p_adr_code                     => 'AP_INVOICE_DIST'
53900   , p_adr_type_code                => 'S'
53901   , p_component_type               => l_component_type
53902   , p_component_code               => l_component_code
53903   , p_component_type_code          => l_component_type_code
53904   , p_component_appl_id            => l_component_appl_id
53905   , p_amb_context_code             => l_amb_context_code
53909 
53906   , p_side                         => 'NA'
53907   );
53908 
53910    --
53911    --
53912    END IF;
53913 
53914        --
53915        -- Update the line information that should be overwritten
53916        --
53917        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53918                                          p_header_num   => 1);
53919        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
53920 
53921        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53922 
53923        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
53924           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53925        END IF;
53926 
53927       --
53928       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53929       --
53930       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53931           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
53932       ELSE
53933           ---------------------------------------------------------------------------------------------------
53934           -- 4262811a Switch Sign
53935           ---------------------------------------------------------------------------------------------------
53936           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
53937           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53938                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53939           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53940                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53941           -- 5132302
53942           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53943                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53944 
53945       END IF;
53946 
53947       -- 4955764
53948       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53949       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53950 
53951 
53952       XLA_AE_LINES_PKG.ValidateCurrentLine;
53953       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53954 
53955       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53956                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53957                ,p_balance_type_code => l_balance_type_code);
53958 
53959    END IF;
53960 
53961    -----------------------------------------------------------------------------------------
53962    -- 4262811 Multiperiod Accounting
53963    -----------------------------------------------------------------------------------------
53964      -- No MPA option is assigned.
53965 
53966 
53967 END IF;
53968 END IF;
53969 --
53970 
53971 --
53972 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53973    trace
53974       (p_msg      => 'END of AcctLineType_104'
53975       ,p_level    => C_LEVEL_PROCEDURE
53976       ,p_module   => l_log_module);
53977 END IF;
53978 --
53979 EXCEPTION
53980   WHEN xla_exceptions_pkg.application_exception THEN
53981       RAISE;
53982   WHEN OTHERS THEN
53983        xla_exceptions_pkg.raise_message
53984            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_104');
53985 END AcctLineType_104;
53986 --
53987 
53988 ---------------------------------------
53989 --
53990 -- PRIVATE FUNCTION
53991 --         AcctLineType_105
53992 --
53993 ---------------------------------------
53994 PROCEDURE AcctLineType_105 (
53995   p_application_id        IN NUMBER
53996  ,p_event_id              IN NUMBER
53997  ,p_calculate_acctd_flag  IN VARCHAR2
53998  ,p_calculate_g_l_flag    IN VARCHAR2
53999  ,p_actual_flag           IN OUT VARCHAR2
54000  ,p_balance_type_code     OUT VARCHAR2
54001  ,p_gain_or_loss_ref      OUT VARCHAR2
54002  
54003 --Recipient Invoice Distribution Account
54004  , p_source_48            IN NUMBER
54005 --When to Account for Payment Option
54006  , p_source_50            IN VARCHAR2
54007 --Accounting Reversal Indicator
54008  , p_source_52            IN VARCHAR2
54009 --Business Flow Accounts Payable Application Identifier
54010  , p_source_54            IN NUMBER
54011 --Distribution Link Type
54012  , p_source_60            IN VARCHAR2
54013 --Override Accounted Amount Indicator
54014  , p_source_64            IN VARCHAR2
54015  , p_source_64_meaning    IN VARCHAR2
54016 --Third Party Type
54017  , p_source_67            IN VARCHAR2
54018 --Invoice Distribution Tax Line Identifier
54019  , p_source_69            IN NUMBER
54020 --Invoice Distribution Summary Tax Line Identifier
54021  , p_source_70            IN NUMBER
54022 --Invoice Distribution Tax Distribution Identifier from Tax
54023  , p_source_77            IN NUMBER
54024 --Prepayment Distribution Type
54025  , p_source_78            IN VARCHAR2
54026 --Recipient Invoice Distribution Type
54027  , p_source_79            IN VARCHAR2
54028  , p_source_79_meaning    IN VARCHAR2
54029 --Prepayment Application Distribution Identifier
54033 --Business Flow Prepayment Invoice Distribution Type
54030  , p_source_82            IN NUMBER
54031 --Invoice Identifier
54032  , p_source_83            IN NUMBER
54034  , p_source_84            IN VARCHAR2
54035 --Business Flow Prepayment Invoice Entity Code
54036  , p_source_85            IN VARCHAR2
54037 --Business Flow Prepayment Invoice Distribution Identifier
54038  , p_source_86            IN NUMBER
54039 --Business Flow Prepayment Invoice Identifier
54040  , p_source_87            IN NUMBER
54041 --Upgrade Encumbrance Credit Account Class
54042  , p_source_88            IN VARCHAR2
54043 --Payables Encumbrance Upgrade Credit Account
54044  , p_source_89            IN NUMBER
54045 --Payables Encumbrance Upgrade Credit Amount
54046  , p_source_90            IN NUMBER
54047 --Invoice Currency Code
54048  , p_source_91            IN VARCHAR2
54049 --Payables Encumbrance Upgrade Credit Base Amount
54050  , p_source_92            IN NUMBER
54051 --Upgrade Encumbrance Debit Account Class
54052  , p_source_93            IN VARCHAR2
54053 --Payables Encumbrance Upgrade Debit Account
54054  , p_source_94            IN NUMBER
54055 --Payables Encumbrance Upgrade Debit Amount
54056  , p_source_95            IN NUMBER
54057 --Payables Encumbrance Upgrade Debit Base Amount
54058  , p_source_96            IN NUMBER
54059 --Payables Encumbrance Upgrade Option
54060  , p_source_97            IN VARCHAR2
54061 --Prepayment Distribution Amount
54062  , p_source_98            IN NUMBER
54063 --Prepayment Clearing Currency Code
54064  , p_source_99            IN VARCHAR2
54065 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
54066  , p_source_100            IN NUMBER
54067 --Deferred Accounting End Date
54068  , p_source_101            IN DATE
54069 --Deferred Accounting Option
54070  , p_source_102            IN VARCHAR2
54071 --Deferred Accounting Start Date
54072  , p_source_103            IN DATE
54073 --Invoice Supplier Identifier
54074  , p_source_104            IN NUMBER
54075 --Invoice Supplier Site Identifier
54076  , p_source_105            IN NUMBER
54077 --Identifier of the Prepayment Application Reversed
54078  , p_source_106            IN NUMBER
54079 --Payables Upgrade Credit Encumbrance Type Identifier
54080  , p_source_107            IN NUMBER
54081 --Payables Upgrade Debit Encumbrance Type Identifier
54082  , p_source_108            IN NUMBER
54083 --Accrue on Receipt Option
54084  , p_source_111            IN VARCHAR2
54085  , p_source_111_meaning    IN VARCHAR2
54086 --Prepayment Clearing Exchange Date
54087  , p_source_125            IN DATE
54088 --Prepayment Clearing Exchange Rate
54089  , p_source_126            IN NUMBER
54090 --Prepayment Clearing Exchange Rate Type
54091  , p_source_127            IN VARCHAR2
54092 )
54093 IS
54094 
54095 l_component_type              VARCHAR2(80);
54096 l_component_code              VARCHAR2(30);
54097 l_component_type_code         VARCHAR2(1);
54098 l_component_appl_id           INTEGER;
54099 l_amb_context_code            VARCHAR2(30);
54100 l_entity_code                 VARCHAR2(30);
54101 l_event_class_code            VARCHAR2(30);
54102 l_ae_header_id                NUMBER;
54103 l_event_type_code             VARCHAR2(30);
54104 l_line_definition_code        VARCHAR2(30);
54105 l_line_definition_owner_code  VARCHAR2(1);
54106 --
54107 -- adr variables
54108 l_segment                     VARCHAR2(30);
54109 l_ccid                        NUMBER;
54110 l_adr_transaction_coa_id      NUMBER;
54111 l_adr_accounting_coa_id       NUMBER;
54112 l_adr_flexfield_segment_code  VARCHAR2(30);
54113 l_adr_flex_value_set_id       NUMBER;
54114 l_adr_value_type_code         VARCHAR2(30);
54115 l_adr_value_combination_id    NUMBER;
54116 l_adr_value_segment_code      VARCHAR2(30);
54117 
54118 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
54119 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
54120 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
54121 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
54122 
54123 -- 4262811 Variables ------------------------------------------------------------------------------------------
54124 l_entered_amt_idx             NUMBER;
54125 l_accted_amt_idx              NUMBER;
54126 l_acc_rev_flag                VARCHAR2(1);
54127 l_accrual_line_num            NUMBER;
54128 l_tmp_amt                     NUMBER;
54129 l_acc_rev_natural_side_code   VARCHAR2(1);
54130 
54131 l_num_entries                 NUMBER;
54132 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
54133 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
54134 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
54135 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
54136 l_recog_line_1                NUMBER;
54137 l_recog_line_2                NUMBER;
54138 
54139 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
54140 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
54141 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
54142 
54143 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54144 
54145 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
54146 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
54147 
54148 ---------------------------------------------------------------------------------------------------------------
54149 
54150 
54154 l_balance_type_code           VARCHAR2(1);
54151 --
54152 -- bulk performance
54153 --
54155 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
54156 l_log_module                  VARCHAR2(240);
54157 
54158 --
54159 -- Upgrade strategy
54160 --
54161 l_actual_upg_option           VARCHAR2(1);
54162 l_enc_upg_option           VARCHAR2(1);
54163 
54164 --
54165 BEGIN
54166 --
54167 IF g_log_enabled THEN
54168       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_105';
54169 END IF;
54170 --
54171 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54172 
54173       trace
54174          (p_msg      => 'BEGIN of AcctLineType_105'
54175          ,p_level    => C_LEVEL_PROCEDURE
54176          ,p_module   => l_log_module);
54177 
54178 END IF;
54179 --
54180 l_component_type             := 'AMB_JLT';
54181 l_component_code             := 'AP_IPV_PREPAY_CLR_RATE_APP';
54182 l_component_type_code        := 'S';
54183 l_component_appl_id          :=  200;
54184 l_amb_context_code           := 'DEFAULT';
54185 l_entity_code                := 'AP_INVOICES';
54186 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
54187 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
54188 l_line_definition_owner_code := 'S';
54189 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
54190 --
54191 l_balance_type_code          := 'A';
54192 l_segment                     := NULL;
54193 l_ccid                        := NULL;
54194 l_adr_transaction_coa_id      := NULL;
54195 l_adr_accounting_coa_id       := NULL;
54196 l_adr_flexfield_segment_code  := NULL;
54197 l_adr_flex_value_set_id       := NULL;
54198 l_adr_value_type_code         := NULL;
54199 l_adr_value_combination_id    := NULL;
54200 l_adr_value_segment_code      := NULL;
54201 
54202 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
54203 l_bflow_class_code           := '';    -- 4219869 Business Flow
54204 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
54205 l_budgetary_control_flag     := 'N';
54206 
54207 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
54208 l_bflow_applied_to_amt       := NULL; -- 5132302
54209 l_entered_amt_idx            := NULL;          -- 4262811
54210 l_accted_amt_idx             := NULL;          -- 4262811
54211 l_acc_rev_flag               := NULL;          -- 4262811
54212 l_accrual_line_num           := NULL;          -- 4262811
54213 l_tmp_amt                    := NULL;          -- 4262811
54214 --
54215  
54216 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54217     l_balance_type_code <> 'B' THEN
54218 IF NVL(p_source_50,'
54219 ') =  'CLEAR_CLEAR' AND 
54220 (NVL(p_source_78,'
54221 ') =  'PREPAY APPL' OR 
54222 NVL(p_source_78,'
54223 ') =  'PREPAY APPL NONREC TAX' OR 
54224 NVL(p_source_78,'
54225 ') =  'PREPAY APPL REC TAX') AND 
54226 NVL(p_source_79,'
54227 ') =  'IPV' AND 
54228 NVL(p_source_111,'
54229 ') =  'Y'
54230  THEN 
54231 
54232    --
54233    XLA_AE_LINES_PKG.SetNewLine;
54234 
54235    p_balance_type_code          := l_balance_type_code;
54236    -- set the flag so later we will know whether the gain loss line needs to be created
54237    
54238    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54239      p_actual_flag :='A';
54240    END IF;
54241 
54242    --
54243    -- bulk performance
54244    --
54245    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54246                                       p_header_num   => 0); -- 4262811
54247    --
54248    -- set accounting line options
54249    --
54250    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54251            p_natural_side_code          => 'C'
54252          , p_gain_or_loss_flag          => 'N'
54253          , p_gl_transfer_mode_code      => 'S'
54254          , p_acct_entry_type_code       => 'A'
54255          , p_switch_side_flag           => 'Y'
54256          , p_merge_duplicate_code       => 'A'
54257          );
54258    --
54259    l_acc_rev_natural_side_code := 'D';  -- 4262811
54260    -- 
54261    --
54262    -- set accounting line type info
54263    --
54264    xla_ae_lines_pkg.SetAcctLineType
54265       (p_component_type             => l_component_type
54266       ,p_event_type_code            => l_event_type_code
54267       ,p_line_definition_owner_code => l_line_definition_owner_code
54268       ,p_line_definition_code       => l_line_definition_code
54269       ,p_accounting_line_code       => l_component_code
54270       ,p_accounting_line_type_code  => l_component_type_code
54271       ,p_accounting_line_appl_id    => l_component_appl_id
54272       ,p_amb_context_code           => l_amb_context_code
54273       ,p_entity_code                => l_entity_code
54274       ,p_event_class_code           => l_event_class_code);
54275    --
54276    -- set accounting class
54277    --
54278    xla_ae_lines_pkg.SetAcctClass(
54279            p_accounting_class_code  => 'IPV'
54280          , p_ae_header_id           => l_ae_header_id
54281          );
54282 
54283    --
54284    -- set rounding class
54285    --
54286    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54287                       'IPV';
54288 
54289    --
54293    -- bulk performance
54290    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54291    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54292    --
54294    --
54295    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54296 
54297    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54298       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54299 
54300    -- 4955764
54301    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54302       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54303 
54304    -- 4458381 Public Sector Enh
54305    
54306    --
54307    -- set accounting attributes for the line type
54308    --
54309    l_entered_amt_idx := 25;
54310    l_accted_amt_idx  := 30;
54311    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
54312    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
54313    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
54314    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
54315    l_rec_acct_attrs.array_num_value(2)  := 
54316 xla_ae_sources_pkg.GetSystemSourceNum(
54317    p_source_code           => 'XLA_EVENT_APPL_ID'
54318  , p_source_type_code      => 'Y'
54319  , p_source_application_id =>  602
54320 );
54321    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
54322    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
54323    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
54324    l_rec_acct_attrs.array_char_value(4)  := 
54325 xla_ae_sources_pkg.GetSystemSourceChar(
54326    p_source_code           => 'XLA_ENTITY_CODE'
54327  , p_source_type_code      => 'Y'
54328  , p_source_application_id =>  602
54329 );
54330    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
54331    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
54332    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
54333    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
54334    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
54335    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
54336    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54337    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
54338    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
54339    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
54340    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
54341    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
54342    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54343    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
54344    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
54345    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
54346    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
54347    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
54348    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
54349    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
54350    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
54351    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
54352    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
54353    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
54354    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
54355    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
54356    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
54357    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
54358    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
54359    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
54360    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
54361    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
54362    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
54363    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
54364    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
54365    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
54366    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
54367    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
54368    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
54369    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
54370    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
54371    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
54372    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
54373    l_rec_acct_attrs.array_char_value(26)  := p_source_99;
54374    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
54375    l_rec_acct_attrs.array_date_value(27)  := p_source_125;
54376    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
54377    l_rec_acct_attrs.array_num_value(28)  := p_source_126;
54378    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
54379    l_rec_acct_attrs.array_char_value(29)  := p_source_127;
54380    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
54381    l_rec_acct_attrs.array_num_value(30)  := p_source_100;
54385    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
54382    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
54383    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
54384    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
54386    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
54387    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
54388    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
54389    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
54390    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
54391    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
54392    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
54393    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
54394    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
54395    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
54396    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
54397    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
54398    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
54399    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
54400    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
54401    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
54402    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
54403    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
54404    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
54405    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
54406    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
54407    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
54408    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
54409    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
54410 
54411    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54412    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54413 
54414    ---------------------------------------------------------------------------------------------------------------
54415    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54416    ---------------------------------------------------------------------------------------------------------------
54417    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54418 
54419    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54420    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54421 
54422    IF xla_accounting_cache_pkg.GetValueChar
54423          (p_source_code         => 'LEDGER_CATEGORY_CODE'
54424          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54425    AND l_bflow_method_code = 'PRIOR_ENTRY'
54426 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54427    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54428          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54429        )
54430    THEN
54431          xla_ae_lines_pkg.BflowUpgEntry
54432            (p_business_method_code    => l_bflow_method_code
54433            ,p_business_class_code     => l_bflow_class_code
54434            ,p_balance_type            => l_balance_type_code);
54435    ELSE
54436       NULL;
54437 -- No business flow processing for business flow method of NONE.
54438    END IF;
54439 
54440    --
54441    -- call analytical criteria
54442    --
54443    
54444    --
54445    -- call description
54446    --
54447    -- No description or it is inherited.
54448    --
54449    -- call ADRs
54450    -- Bug 4922099
54451    --
54452    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54453         (NVL(l_actual_upg_option, 'N') = 'O') OR
54454         (NVL(l_enc_upg_option, 'N') = 'O')
54455       )
54456    THEN
54457    NULL;
54458    --
54459    --
54460    
54461   l_ccid := AcctDerRule_35(
54462            p_application_id           => p_application_id
54463          , p_ae_header_id             => l_ae_header_id 
54464 , p_source_48 => p_source_48
54465          , x_transaction_coa_id       => l_adr_transaction_coa_id
54466          , x_accounting_coa_id        => l_adr_accounting_coa_id
54467          , x_value_type_code          => l_adr_value_type_code
54468          , p_side                     => 'NA'
54469    );
54470 
54471    xla_ae_lines_pkg.set_ccid(
54472     p_code_combination_id          => l_ccid
54473   , p_value_type_code              => l_adr_value_type_code
54474   , p_transaction_coa_id           => l_adr_transaction_coa_id
54475   , p_accounting_coa_id            => l_adr_accounting_coa_id
54476   , p_adr_code                     => 'AP_RECP_INV_DIST'
54477   , p_adr_type_code                => 'S'
54478   , p_component_type               => l_component_type
54479   , p_component_code               => l_component_code
54480   , p_component_type_code          => l_component_type_code
54481   , p_component_appl_id            => l_component_appl_id
54482   , p_amb_context_code             => l_amb_context_code
54483   , p_side                         => 'NA'
54484   );
54485 
54486 
54487    --
54488    --
54489    END IF;
54490    --
54491    -- Bug 4922099
54492    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54496       )
54493           (NVL(l_enc_upg_option, 'N') = 'O')
54494         ) AND
54495         (l_bflow_method_code = 'PRIOR_ENTRY')
54497    THEN
54498       IF
54499       --
54500       1 = 2
54501       --
54502       THEN
54503       xla_accounting_err_pkg.build_message
54504                                     (p_appli_s_name            => 'XLA'
54505                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54506                                     ,p_token_1                 => 'LINE_NUMBER'
54507                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
54508                                     ,p_token_2                 => 'LINE_TYPE_NAME'
54509                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
54510                                                                              l_component_type
54511                                                                             ,l_component_code
54512                                                                             ,l_component_type_code
54513                                                                             ,l_component_appl_id
54514                                                                             ,l_amb_context_code
54515                                                                             ,l_entity_code
54516                                                                             ,l_event_class_code
54517                                                                            )
54518                                     ,p_token_3                 => 'OWNER'
54519                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
54520                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
54521                                                                           ,p_lookup_code    => l_component_type_code
54522                                                                          )
54523                                     ,p_token_4                 => 'PRODUCT_NAME'
54524                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54525                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54526                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54527                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54528                                     ,p_ae_header_id            =>  NULL
54529                                        );
54530 
54531         IF (C_LEVEL_ERROR>= g_log_level) THEN
54532                  trace
54533                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54534                       ,p_level    => C_LEVEL_ERROR
54535                       ,p_module   => l_log_module);
54536         END IF;
54537       END IF;
54538    END IF;
54539    --
54540    --
54541    ------------------------------------------------------------------------------------------------
54542    -- 4219869 Business Flow
54543    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54544    -- Prior Entry.  Currently, the following code is always generated.
54545    ------------------------------------------------------------------------------------------------
54546    XLA_AE_LINES_PKG.ValidateCurrentLine;
54547 
54548    ------------------------------------------------------------------------------------
54549    -- 4219869 Business Flow
54550    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54551    ------------------------------------------------------------------------------------
54552    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54553 
54554    ----------------------------------------------------------------------------------
54555    -- 4219869 Business Flow
54556    -- Update journal entry status -- Need to generate this within IF <condition>
54557    ----------------------------------------------------------------------------------
54558    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54559          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54560          ,p_balance_type_code => l_balance_type_code
54561          );
54562 
54563    -------------------------------------------------------------------------------------------
54564    -- 4262811 - Generate the Accrual Reversal lines
54565    -------------------------------------------------------------------------------------------
54566    BEGIN
54567       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54568                               (g_array_event(p_event_id).array_value_num('header_index'));
54569       IF l_acc_rev_flag IS NULL THEN
54570          l_acc_rev_flag := 'N';
54571       END IF;
54572    EXCEPTION
54573       WHEN OTHERS THEN
54574          l_acc_rev_flag := 'N';
54575    END;
54576    --
54577    IF (l_acc_rev_flag = 'Y') THEN
54578 
54579        -- 4645092  ------------------------------------------------------------------------------
54580        -- To allow MPA report to determine if it should generate report process
54581        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54582        ------------------------------------------------------------------------------------------
54583 
54584        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54585        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54589    --
54586    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
54587    -- call ADRs
54588    -- Bug 4922099
54590    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54591         (NVL(l_actual_upg_option, 'N') = 'O') OR
54592         (NVL(l_enc_upg_option, 'N') = 'O')
54593       )
54594    THEN
54595    NULL;
54596    --
54597    --
54598    
54599   l_ccid := AcctDerRule_35(
54600            p_application_id           => p_application_id
54601          , p_ae_header_id             => l_ae_header_id 
54602 , p_source_48 => p_source_48
54603          , x_transaction_coa_id       => l_adr_transaction_coa_id
54604          , x_accounting_coa_id        => l_adr_accounting_coa_id
54605          , x_value_type_code          => l_adr_value_type_code
54606          , p_side                     => 'NA'
54607    );
54608 
54609    xla_ae_lines_pkg.set_ccid(
54610     p_code_combination_id          => l_ccid
54611   , p_value_type_code              => l_adr_value_type_code
54612   , p_transaction_coa_id           => l_adr_transaction_coa_id
54613   , p_accounting_coa_id            => l_adr_accounting_coa_id
54614   , p_adr_code                     => 'AP_RECP_INV_DIST'
54615   , p_adr_type_code                => 'S'
54616   , p_component_type               => l_component_type
54617   , p_component_code               => l_component_code
54618   , p_component_type_code          => l_component_type_code
54619   , p_component_appl_id            => l_component_appl_id
54620   , p_amb_context_code             => l_amb_context_code
54621   , p_side                         => 'NA'
54622   );
54623 
54624 
54625    --
54626    --
54627    END IF;
54628 
54629        --
54630        -- Update the line information that should be overwritten
54631        --
54632        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54633                                          p_header_num   => 1);
54634        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
54635 
54636        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54637 
54638        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
54639           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54640        END IF;
54641 
54642       --
54643       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54644       --
54645       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54646           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
54647       ELSE
54648           ---------------------------------------------------------------------------------------------------
54649           -- 4262811a Switch Sign
54650           ---------------------------------------------------------------------------------------------------
54651           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
54652           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54653                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54654           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54655                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54656           -- 5132302
54657           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54658                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54659 
54660       END IF;
54661 
54662       -- 4955764
54663       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54664       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54665 
54666 
54667       XLA_AE_LINES_PKG.ValidateCurrentLine;
54668       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54669 
54670       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54671                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54672                ,p_balance_type_code => l_balance_type_code);
54673 
54674    END IF;
54675 
54676    -----------------------------------------------------------------------------------------
54677    -- 4262811 Multiperiod Accounting
54678    -----------------------------------------------------------------------------------------
54679      -- No MPA option is assigned.
54680 
54681 
54682 END IF;
54683 END IF;
54684 --
54685 
54686 --
54687 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54688    trace
54689       (p_msg      => 'END of AcctLineType_105'
54690       ,p_level    => C_LEVEL_PROCEDURE
54691       ,p_module   => l_log_module);
54692 END IF;
54693 --
54694 EXCEPTION
54695   WHEN xla_exceptions_pkg.application_exception THEN
54696       RAISE;
54697   WHEN OTHERS THEN
54698        xla_exceptions_pkg.raise_message
54699            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_105');
54700 END AcctLineType_105;
54701 --
54702 
54703 ---------------------------------------
54704 --
54705 -- PRIVATE FUNCTION
54706 --         AcctLineType_106
54707 --
54711  ,p_event_id              IN NUMBER
54708 ---------------------------------------
54709 PROCEDURE AcctLineType_106 (
54710   p_application_id        IN NUMBER
54712  ,p_calculate_acctd_flag  IN VARCHAR2
54713  ,p_calculate_g_l_flag    IN VARCHAR2
54714  ,p_actual_flag           IN OUT VARCHAR2
54715  ,p_balance_type_code     OUT VARCHAR2
54716  ,p_gain_or_loss_ref      OUT VARCHAR2
54717  
54718 --Recipient Invoice Distribution Account
54719  , p_source_48            IN NUMBER
54720 --When to Account for Payment Option
54721  , p_source_50            IN VARCHAR2
54722 --Accounting Reversal Indicator
54723  , p_source_52            IN VARCHAR2
54724 --Business Flow Accounts Payable Application Identifier
54725  , p_source_54            IN NUMBER
54726 --Distribution Link Type
54727  , p_source_60            IN VARCHAR2
54728 --Override Accounted Amount Indicator
54729  , p_source_64            IN VARCHAR2
54730  , p_source_64_meaning    IN VARCHAR2
54731 --Third Party Type
54732  , p_source_67            IN VARCHAR2
54733 --Invoice Distribution Tax Line Identifier
54734  , p_source_69            IN NUMBER
54735 --Invoice Distribution Summary Tax Line Identifier
54736  , p_source_70            IN NUMBER
54737 --Invoice Distribution Tax Distribution Identifier from Tax
54738  , p_source_77            IN NUMBER
54739 --Prepayment Distribution Type
54740  , p_source_78            IN VARCHAR2
54741 --Recipient Invoice Distribution Type
54742  , p_source_79            IN VARCHAR2
54743  , p_source_79_meaning    IN VARCHAR2
54744 --Prepayment Application Distribution Identifier
54745  , p_source_82            IN NUMBER
54746 --Invoice Identifier
54747  , p_source_83            IN NUMBER
54748 --Business Flow Prepayment Invoice Distribution Type
54749  , p_source_84            IN VARCHAR2
54750 --Business Flow Prepayment Invoice Entity Code
54751  , p_source_85            IN VARCHAR2
54752 --Business Flow Prepayment Invoice Distribution Identifier
54753  , p_source_86            IN NUMBER
54754 --Business Flow Prepayment Invoice Identifier
54755  , p_source_87            IN NUMBER
54756 --Upgrade Encumbrance Credit Account Class
54757  , p_source_88            IN VARCHAR2
54758 --Payables Encumbrance Upgrade Credit Account
54759  , p_source_89            IN NUMBER
54760 --Payables Encumbrance Upgrade Credit Amount
54761  , p_source_90            IN NUMBER
54762 --Invoice Currency Code
54763  , p_source_91            IN VARCHAR2
54764 --Payables Encumbrance Upgrade Credit Base Amount
54765  , p_source_92            IN NUMBER
54766 --Upgrade Encumbrance Debit Account Class
54767  , p_source_93            IN VARCHAR2
54768 --Payables Encumbrance Upgrade Debit Account
54769  , p_source_94            IN NUMBER
54770 --Payables Encumbrance Upgrade Debit Amount
54771  , p_source_95            IN NUMBER
54772 --Payables Encumbrance Upgrade Debit Base Amount
54773  , p_source_96            IN NUMBER
54774 --Payables Encumbrance Upgrade Option
54775  , p_source_97            IN VARCHAR2
54776 --Prepayment Distribution Amount
54777  , p_source_98            IN NUMBER
54778 --Deferred Accounting End Date
54779  , p_source_101            IN DATE
54780 --Deferred Accounting Option
54781  , p_source_102            IN VARCHAR2
54782 --Deferred Accounting Start Date
54783  , p_source_103            IN DATE
54784 --Invoice Supplier Identifier
54785  , p_source_104            IN NUMBER
54786 --Invoice Supplier Site Identifier
54787  , p_source_105            IN NUMBER
54788 --Identifier of the Prepayment Application Reversed
54789  , p_source_106            IN NUMBER
54790 --Payables Upgrade Credit Encumbrance Type Identifier
54791  , p_source_107            IN NUMBER
54792 --Payables Upgrade Debit Encumbrance Type Identifier
54793  , p_source_108            IN NUMBER
54794 --Prepayment Payment Currency Code
54795  , p_source_109            IN VARCHAR2
54796 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
54797  , p_source_110            IN NUMBER
54798 --Accrue on Receipt Option
54799  , p_source_111            IN VARCHAR2
54800  , p_source_111_meaning    IN VARCHAR2
54801 --Prepayment Clearing Exchange Date
54802  , p_source_125            IN DATE
54803 --Prepayment Payment Exchange Rate
54804  , p_source_129            IN NUMBER
54805 --Prepayment Payment Exchange Rate Type
54806  , p_source_130            IN VARCHAR2
54807 )
54808 IS
54809 
54810 l_component_type              VARCHAR2(80);
54811 l_component_code              VARCHAR2(30);
54812 l_component_type_code         VARCHAR2(1);
54813 l_component_appl_id           INTEGER;
54814 l_amb_context_code            VARCHAR2(30);
54815 l_entity_code                 VARCHAR2(30);
54816 l_event_class_code            VARCHAR2(30);
54817 l_ae_header_id                NUMBER;
54818 l_event_type_code             VARCHAR2(30);
54819 l_line_definition_code        VARCHAR2(30);
54820 l_line_definition_owner_code  VARCHAR2(1);
54821 --
54822 -- adr variables
54823 l_segment                     VARCHAR2(30);
54824 l_ccid                        NUMBER;
54825 l_adr_transaction_coa_id      NUMBER;
54826 l_adr_accounting_coa_id       NUMBER;
54827 l_adr_flexfield_segment_code  VARCHAR2(30);
54828 l_adr_flex_value_set_id       NUMBER;
54829 l_adr_value_type_code         VARCHAR2(30);
54830 l_adr_value_combination_id    NUMBER;
54831 l_adr_value_segment_code      VARCHAR2(30);
54832 
54833 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
54837 
54834 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
54835 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
54836 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
54838 -- 4262811 Variables ------------------------------------------------------------------------------------------
54839 l_entered_amt_idx             NUMBER;
54840 l_accted_amt_idx              NUMBER;
54841 l_acc_rev_flag                VARCHAR2(1);
54842 l_accrual_line_num            NUMBER;
54843 l_tmp_amt                     NUMBER;
54844 l_acc_rev_natural_side_code   VARCHAR2(1);
54845 
54846 l_num_entries                 NUMBER;
54847 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
54848 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
54849 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
54850 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
54851 l_recog_line_1                NUMBER;
54852 l_recog_line_2                NUMBER;
54853 
54854 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
54855 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
54856 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
54857 
54858 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54859 
54860 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
54861 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
54862 
54863 ---------------------------------------------------------------------------------------------------------------
54864 
54865 
54866 --
54867 -- bulk performance
54868 --
54869 l_balance_type_code           VARCHAR2(1);
54870 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
54871 l_log_module                  VARCHAR2(240);
54872 
54873 --
54874 -- Upgrade strategy
54875 --
54876 l_actual_upg_option           VARCHAR2(1);
54877 l_enc_upg_option           VARCHAR2(1);
54878 
54879 --
54880 BEGIN
54881 --
54882 IF g_log_enabled THEN
54883       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_106';
54884 END IF;
54885 --
54886 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54887 
54888       trace
54889          (p_msg      => 'BEGIN of AcctLineType_106'
54890          ,p_level    => C_LEVEL_PROCEDURE
54891          ,p_module   => l_log_module);
54892 
54893 END IF;
54894 --
54895 l_component_type             := 'AMB_JLT';
54896 l_component_code             := 'AP_IPV_PREPAY_PAY_RATE_APP';
54897 l_component_type_code        := 'S';
54898 l_component_appl_id          :=  200;
54899 l_amb_context_code           := 'DEFAULT';
54900 l_entity_code                := 'AP_INVOICES';
54901 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
54902 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
54903 l_line_definition_owner_code := 'S';
54904 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
54905 --
54906 l_balance_type_code          := 'A';
54907 l_segment                     := NULL;
54908 l_ccid                        := NULL;
54909 l_adr_transaction_coa_id      := NULL;
54910 l_adr_accounting_coa_id       := NULL;
54911 l_adr_flexfield_segment_code  := NULL;
54912 l_adr_flex_value_set_id       := NULL;
54913 l_adr_value_type_code         := NULL;
54914 l_adr_value_combination_id    := NULL;
54915 l_adr_value_segment_code      := NULL;
54916 
54917 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
54918 l_bflow_class_code           := '';    -- 4219869 Business Flow
54919 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
54920 l_budgetary_control_flag     := 'N';
54921 
54922 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
54923 l_bflow_applied_to_amt       := NULL; -- 5132302
54924 l_entered_amt_idx            := NULL;          -- 4262811
54925 l_accted_amt_idx             := NULL;          -- 4262811
54926 l_acc_rev_flag               := NULL;          -- 4262811
54927 l_accrual_line_num           := NULL;          -- 4262811
54928 l_tmp_amt                    := NULL;          -- 4262811
54929 --
54930  
54931 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54932     l_balance_type_code <> 'B' THEN
54933 IF NVL(p_source_50,'
54934 ') <>  'CLEAR_CLEAR' AND 
54935 (NVL(p_source_78,'
54936 ') =  'PREPAY APPL' OR 
54937 NVL(p_source_78,'
54938 ') =  'PREPAY APPL NONREC TAX' OR 
54939 NVL(p_source_78,'
54940 ') =  'PREPAY APPL REC TAX') AND 
54941 NVL(p_source_79,'
54942 ') =  'IPV' AND 
54943 NVL(p_source_111,'
54944 ') =  'Y'
54945  THEN 
54946 
54947    --
54948    XLA_AE_LINES_PKG.SetNewLine;
54949 
54950    p_balance_type_code          := l_balance_type_code;
54951    -- set the flag so later we will know whether the gain loss line needs to be created
54952    
54953    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54954      p_actual_flag :='A';
54955    END IF;
54956 
54957    --
54958    -- bulk performance
54959    --
54960    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54961                                       p_header_num   => 0); -- 4262811
54962    --
54963    -- set accounting line options
54964    --
54968          , p_gl_transfer_mode_code      => 'S'
54965    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54966            p_natural_side_code          => 'C'
54967          , p_gain_or_loss_flag          => 'N'
54969          , p_acct_entry_type_code       => 'A'
54970          , p_switch_side_flag           => 'Y'
54971          , p_merge_duplicate_code       => 'A'
54972          );
54973    --
54974    l_acc_rev_natural_side_code := 'D';  -- 4262811
54975    -- 
54976    --
54977    -- set accounting line type info
54978    --
54979    xla_ae_lines_pkg.SetAcctLineType
54980       (p_component_type             => l_component_type
54981       ,p_event_type_code            => l_event_type_code
54982       ,p_line_definition_owner_code => l_line_definition_owner_code
54983       ,p_line_definition_code       => l_line_definition_code
54984       ,p_accounting_line_code       => l_component_code
54985       ,p_accounting_line_type_code  => l_component_type_code
54986       ,p_accounting_line_appl_id    => l_component_appl_id
54987       ,p_amb_context_code           => l_amb_context_code
54988       ,p_entity_code                => l_entity_code
54989       ,p_event_class_code           => l_event_class_code);
54990    --
54991    -- set accounting class
54992    --
54993    xla_ae_lines_pkg.SetAcctClass(
54994            p_accounting_class_code  => 'IPV'
54995          , p_ae_header_id           => l_ae_header_id
54996          );
54997 
54998    --
54999    -- set rounding class
55000    --
55001    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55002                       'IPV';
55003 
55004    --
55005    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55006    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55007    --
55008    -- bulk performance
55009    --
55010    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55011 
55012    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55013       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55014 
55015    -- 4955764
55016    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55017       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55018 
55019    -- 4458381 Public Sector Enh
55020    
55021    --
55022    -- set accounting attributes for the line type
55023    --
55024    l_entered_amt_idx := 25;
55025    l_accted_amt_idx  := 30;
55026    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
55027    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55028    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
55029    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
55030    l_rec_acct_attrs.array_num_value(2)  := 
55031 xla_ae_sources_pkg.GetSystemSourceNum(
55032    p_source_code           => 'XLA_EVENT_APPL_ID'
55033  , p_source_type_code      => 'Y'
55034  , p_source_application_id =>  602
55035 );
55036    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
55037    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
55038    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
55039    l_rec_acct_attrs.array_char_value(4)  := 
55040 xla_ae_sources_pkg.GetSystemSourceChar(
55041    p_source_code           => 'XLA_ENTITY_CODE'
55042  , p_source_type_code      => 'Y'
55043  , p_source_application_id =>  602
55044 );
55045    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
55046    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
55047    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
55048    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
55049    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
55050    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
55051    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55052    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
55053    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
55054    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
55055    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
55056    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
55057    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55058    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
55059    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
55060    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
55061    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
55062    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
55063    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
55064    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
55065    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
55066    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
55067    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
55068    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
55069    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
55070    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
55071    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
55075    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
55072    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
55073    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
55074    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
55076    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
55077    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
55078    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
55079    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
55080    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
55081    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
55082    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
55083    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
55084    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
55085    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
55086    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
55087    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
55088    l_rec_acct_attrs.array_char_value(26)  := p_source_109;
55089    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
55090    l_rec_acct_attrs.array_date_value(27)  := p_source_125;
55091    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
55092    l_rec_acct_attrs.array_num_value(28)  := p_source_129;
55093    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
55094    l_rec_acct_attrs.array_char_value(29)  := p_source_130;
55095    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
55096    l_rec_acct_attrs.array_num_value(30)  := p_source_110;
55097    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
55098    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
55099    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
55100    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
55101    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
55102    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
55103    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
55104    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
55105    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
55106    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
55107    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
55108    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
55109    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
55110    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
55111    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
55112    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
55113    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
55114    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
55115    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
55116    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
55117    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
55118    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
55119    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
55120    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
55121    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
55122    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
55123    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
55124    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
55125 
55126    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55127    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55128 
55129    ---------------------------------------------------------------------------------------------------------------
55130    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55131    ---------------------------------------------------------------------------------------------------------------
55132    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55133 
55134    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55135    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55136 
55137    IF xla_accounting_cache_pkg.GetValueChar
55138          (p_source_code         => 'LEDGER_CATEGORY_CODE'
55139          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55140    AND l_bflow_method_code = 'PRIOR_ENTRY'
55141 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55142    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55143          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55144        )
55145    THEN
55146          xla_ae_lines_pkg.BflowUpgEntry
55147            (p_business_method_code    => l_bflow_method_code
55148            ,p_business_class_code     => l_bflow_class_code
55149            ,p_balance_type            => l_balance_type_code);
55150    ELSE
55151       NULL;
55152 -- No business flow processing for business flow method of NONE.
55153    END IF;
55154 
55155    --
55156    -- call analytical criteria
55157    --
55158    
55159    --
55160    -- call description
55161    --
55162    -- No description or it is inherited.
55163    --
55164    -- call ADRs
55165    -- Bug 4922099
55166    --
55167    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55168         (NVL(l_actual_upg_option, 'N') = 'O') OR
55172    NULL;
55169         (NVL(l_enc_upg_option, 'N') = 'O')
55170       )
55171    THEN
55173    --
55174    --
55175    
55176   l_ccid := AcctDerRule_35(
55177            p_application_id           => p_application_id
55178          , p_ae_header_id             => l_ae_header_id 
55179 , p_source_48 => p_source_48
55180          , x_transaction_coa_id       => l_adr_transaction_coa_id
55181          , x_accounting_coa_id        => l_adr_accounting_coa_id
55182          , x_value_type_code          => l_adr_value_type_code
55183          , p_side                     => 'NA'
55184    );
55185 
55186    xla_ae_lines_pkg.set_ccid(
55187     p_code_combination_id          => l_ccid
55188   , p_value_type_code              => l_adr_value_type_code
55189   , p_transaction_coa_id           => l_adr_transaction_coa_id
55190   , p_accounting_coa_id            => l_adr_accounting_coa_id
55191   , p_adr_code                     => 'AP_RECP_INV_DIST'
55192   , p_adr_type_code                => 'S'
55193   , p_component_type               => l_component_type
55194   , p_component_code               => l_component_code
55195   , p_component_type_code          => l_component_type_code
55196   , p_component_appl_id            => l_component_appl_id
55197   , p_amb_context_code             => l_amb_context_code
55198   , p_side                         => 'NA'
55199   );
55200 
55201 
55202    --
55203    --
55204    END IF;
55205    --
55206    -- Bug 4922099
55207    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55208           (NVL(l_enc_upg_option, 'N') = 'O')
55209         ) AND
55210         (l_bflow_method_code = 'PRIOR_ENTRY')
55211       )
55212    THEN
55213       IF
55214       --
55215       1 = 2
55216       --
55217       THEN
55218       xla_accounting_err_pkg.build_message
55219                                     (p_appli_s_name            => 'XLA'
55220                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55221                                     ,p_token_1                 => 'LINE_NUMBER'
55222                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
55223                                     ,p_token_2                 => 'LINE_TYPE_NAME'
55224                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
55225                                                                              l_component_type
55226                                                                             ,l_component_code
55227                                                                             ,l_component_type_code
55228                                                                             ,l_component_appl_id
55229                                                                             ,l_amb_context_code
55230                                                                             ,l_entity_code
55231                                                                             ,l_event_class_code
55232                                                                            )
55233                                     ,p_token_3                 => 'OWNER'
55234                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
55235                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
55236                                                                           ,p_lookup_code    => l_component_type_code
55237                                                                          )
55238                                     ,p_token_4                 => 'PRODUCT_NAME'
55239                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55240                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55241                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55242                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55243                                     ,p_ae_header_id            =>  NULL
55244                                        );
55245 
55246         IF (C_LEVEL_ERROR>= g_log_level) THEN
55247                  trace
55248                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55249                       ,p_level    => C_LEVEL_ERROR
55250                       ,p_module   => l_log_module);
55251         END IF;
55252       END IF;
55253    END IF;
55254    --
55255    --
55256    ------------------------------------------------------------------------------------------------
55257    -- 4219869 Business Flow
55258    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55259    -- Prior Entry.  Currently, the following code is always generated.
55260    ------------------------------------------------------------------------------------------------
55261    XLA_AE_LINES_PKG.ValidateCurrentLine;
55262 
55263    ------------------------------------------------------------------------------------
55264    -- 4219869 Business Flow
55265    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55266    ------------------------------------------------------------------------------------
55267    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55268 
55269    ----------------------------------------------------------------------------------
55270    -- 4219869 Business Flow
55274          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55271    -- Update journal entry status -- Need to generate this within IF <condition>
55272    ----------------------------------------------------------------------------------
55273    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55275          ,p_balance_type_code => l_balance_type_code
55276          );
55277 
55278    -------------------------------------------------------------------------------------------
55279    -- 4262811 - Generate the Accrual Reversal lines
55280    -------------------------------------------------------------------------------------------
55281    BEGIN
55282       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55283                               (g_array_event(p_event_id).array_value_num('header_index'));
55284       IF l_acc_rev_flag IS NULL THEN
55285          l_acc_rev_flag := 'N';
55286       END IF;
55287    EXCEPTION
55288       WHEN OTHERS THEN
55289          l_acc_rev_flag := 'N';
55290    END;
55291    --
55292    IF (l_acc_rev_flag = 'Y') THEN
55293 
55294        -- 4645092  ------------------------------------------------------------------------------
55295        -- To allow MPA report to determine if it should generate report process
55296        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55297        ------------------------------------------------------------------------------------------
55298 
55299        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55300        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55301    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
55302    -- call ADRs
55303    -- Bug 4922099
55304    --
55305    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55306         (NVL(l_actual_upg_option, 'N') = 'O') OR
55307         (NVL(l_enc_upg_option, 'N') = 'O')
55308       )
55309    THEN
55310    NULL;
55311    --
55312    --
55313    
55314   l_ccid := AcctDerRule_35(
55315            p_application_id           => p_application_id
55316          , p_ae_header_id             => l_ae_header_id 
55317 , p_source_48 => p_source_48
55318          , x_transaction_coa_id       => l_adr_transaction_coa_id
55319          , x_accounting_coa_id        => l_adr_accounting_coa_id
55320          , x_value_type_code          => l_adr_value_type_code
55321          , p_side                     => 'NA'
55322    );
55323 
55324    xla_ae_lines_pkg.set_ccid(
55325     p_code_combination_id          => l_ccid
55326   , p_value_type_code              => l_adr_value_type_code
55327   , p_transaction_coa_id           => l_adr_transaction_coa_id
55328   , p_accounting_coa_id            => l_adr_accounting_coa_id
55329   , p_adr_code                     => 'AP_RECP_INV_DIST'
55330   , p_adr_type_code                => 'S'
55331   , p_component_type               => l_component_type
55332   , p_component_code               => l_component_code
55333   , p_component_type_code          => l_component_type_code
55334   , p_component_appl_id            => l_component_appl_id
55335   , p_amb_context_code             => l_amb_context_code
55336   , p_side                         => 'NA'
55337   );
55338 
55339 
55340    --
55341    --
55342    END IF;
55343 
55344        --
55345        -- Update the line information that should be overwritten
55346        --
55347        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55348                                          p_header_num   => 1);
55349        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
55350 
55351        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55352 
55353        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
55354           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55355        END IF;
55356 
55357       --
55358       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55359       --
55360       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55361           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
55362       ELSE
55363           ---------------------------------------------------------------------------------------------------
55364           -- 4262811a Switch Sign
55365           ---------------------------------------------------------------------------------------------------
55366           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
55367           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55368                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55369           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55370                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55371           -- 5132302
55372           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55373                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55374 
55375       END IF;
55376 
55377       -- 4955764
55378       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55382       XLA_AE_LINES_PKG.ValidateCurrentLine;
55379       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55380 
55381 
55383       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55384 
55385       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55386                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55387                ,p_balance_type_code => l_balance_type_code);
55388 
55389    END IF;
55390 
55391    -----------------------------------------------------------------------------------------
55392    -- 4262811 Multiperiod Accounting
55393    -----------------------------------------------------------------------------------------
55394      -- No MPA option is assigned.
55395 
55396 
55397 END IF;
55398 END IF;
55399 --
55400 
55401 --
55402 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55403    trace
55404       (p_msg      => 'END of AcctLineType_106'
55405       ,p_level    => C_LEVEL_PROCEDURE
55406       ,p_module   => l_log_module);
55407 END IF;
55408 --
55409 EXCEPTION
55410   WHEN xla_exceptions_pkg.application_exception THEN
55411       RAISE;
55412   WHEN OTHERS THEN
55413        xla_exceptions_pkg.raise_message
55414            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_106');
55415 END AcctLineType_106;
55416 --
55417 
55418 ---------------------------------------
55419 --
55420 -- PRIVATE FUNCTION
55421 --         AcctLineType_107
55422 --
55423 ---------------------------------------
55424 PROCEDURE AcctLineType_107 (
55425   p_application_id        IN NUMBER
55426  ,p_event_id              IN NUMBER
55427  ,p_calculate_acctd_flag  IN VARCHAR2
55428  ,p_calculate_g_l_flag    IN VARCHAR2
55429  ,p_actual_flag           IN OUT VARCHAR2
55430  ,p_balance_type_code     OUT VARCHAR2
55431  ,p_gain_or_loss_ref      OUT VARCHAR2
55432  
55433 --Payment Currency Code
55434  , p_source_12            IN VARCHAR2
55435 --Payment Distribution (Cleared Rate) Ledger Amount
55436  , p_source_22            IN NUMBER
55437 --Invoice Distribution Account
55438  , p_source_29            IN NUMBER
55439 --Invoice Distribution Type
55440  , p_source_32            IN VARCHAR2
55441  , p_source_32_meaning    IN VARCHAR2
55442 --When to Account for Payment Option
55443  , p_source_50            IN VARCHAR2
55444 --Payment Distribution Type
55445  , p_source_51            IN VARCHAR2
55446  , p_source_51_meaning    IN VARCHAR2
55447 --Accounting Reversal Indicator
55448  , p_source_52            IN VARCHAR2
55449 --Payment Distribution Amount
55450  , p_source_53            IN NUMBER
55451 --Business Flow Accounts Payable Application Identifier
55452  , p_source_54            IN NUMBER
55453 --Business Flow Payment Distribution Type
55454  , p_source_55            IN VARCHAR2
55455 --Business Flow Payment Entity Code
55456  , p_source_56            IN VARCHAR2
55457 --Business Flow Payment Distribution Identifier
55458  , p_source_57            IN NUMBER
55459 --Business Flow Payment Identifier
55460  , p_source_58            IN NUMBER
55461 --Payment Distribution Identifier
55462  , p_source_59            IN NUMBER
55463 --Distribution Link Type
55464  , p_source_60            IN VARCHAR2
55465 --Override Accounted Amount Indicator
55466  , p_source_64            IN VARCHAR2
55467  , p_source_64_meaning    IN VARCHAR2
55468 --Payment Supplier Identifier
55469  , p_source_65            IN NUMBER
55470 --Payment Supplier Site Identifier
55471  , p_source_66            IN NUMBER
55472 --Third Party Type
55473  , p_source_67            IN VARCHAR2
55474 --Payment Distribution Reversed Identifier
55475  , p_source_68            IN NUMBER
55476 --Invoice Distribution Tax Line Identifier
55477  , p_source_69            IN NUMBER
55478 --Invoice Distribution Summary Tax Line Identifier
55479  , p_source_70            IN NUMBER
55480 --Accrue on Receipt Option
55481  , p_source_111            IN VARCHAR2
55482  , p_source_111_meaning    IN VARCHAR2
55483 --Invoice Type Paid
55484  , p_source_112            IN VARCHAR2
55485  , p_source_112_meaning    IN VARCHAR2
55486 --Cleared Exchange Date
55487  , p_source_114            IN DATE
55488 --Cleared Exchange Rate
55489  , p_source_115            IN NUMBER
55490 --Cleared Exchange Rate Type
55491  , p_source_116            IN VARCHAR2
55492 )
55493 IS
55494 
55495 l_component_type              VARCHAR2(80);
55496 l_component_code              VARCHAR2(30);
55497 l_component_type_code         VARCHAR2(1);
55498 l_component_appl_id           INTEGER;
55499 l_amb_context_code            VARCHAR2(30);
55500 l_entity_code                 VARCHAR2(30);
55501 l_event_class_code            VARCHAR2(30);
55502 l_ae_header_id                NUMBER;
55503 l_event_type_code             VARCHAR2(30);
55504 l_line_definition_code        VARCHAR2(30);
55505 l_line_definition_owner_code  VARCHAR2(1);
55506 --
55507 -- adr variables
55508 l_segment                     VARCHAR2(30);
55509 l_ccid                        NUMBER;
55510 l_adr_transaction_coa_id      NUMBER;
55511 l_adr_accounting_coa_id       NUMBER;
55512 l_adr_flexfield_segment_code  VARCHAR2(30);
55513 l_adr_flex_value_set_id       NUMBER;
55514 l_adr_value_type_code         VARCHAR2(30);
55515 l_adr_value_combination_id    NUMBER;
55519 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
55516 l_adr_value_segment_code      VARCHAR2(30);
55517 
55518 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
55520 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
55521 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
55522 
55523 -- 4262811 Variables ------------------------------------------------------------------------------------------
55524 l_entered_amt_idx             NUMBER;
55525 l_accted_amt_idx              NUMBER;
55526 l_acc_rev_flag                VARCHAR2(1);
55527 l_accrual_line_num            NUMBER;
55528 l_tmp_amt                     NUMBER;
55529 l_acc_rev_natural_side_code   VARCHAR2(1);
55530 
55531 l_num_entries                 NUMBER;
55532 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
55533 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
55534 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
55535 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
55536 l_recog_line_1                NUMBER;
55537 l_recog_line_2                NUMBER;
55538 
55539 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
55540 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
55541 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
55542 
55543 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55544 
55545 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
55546 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
55547 
55548 ---------------------------------------------------------------------------------------------------------------
55549 
55550 
55551 --
55552 -- bulk performance
55553 --
55554 l_balance_type_code           VARCHAR2(1);
55555 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
55556 l_log_module                  VARCHAR2(240);
55557 
55558 --
55559 -- Upgrade strategy
55560 --
55561 l_actual_upg_option           VARCHAR2(1);
55562 l_enc_upg_option           VARCHAR2(1);
55563 
55564 --
55565 BEGIN
55566 --
55567 IF g_log_enabled THEN
55568       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_107';
55569 END IF;
55570 --
55571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55572 
55573       trace
55574          (p_msg      => 'BEGIN of AcctLineType_107'
55575          ,p_level    => C_LEVEL_PROCEDURE
55576          ,p_module   => l_log_module);
55577 
55578 END IF;
55579 --
55580 l_component_type             := 'AMB_JLT';
55581 l_component_code             := 'AP_ITEM_EXPENSE_CLEAR';
55582 l_component_type_code        := 'S';
55583 l_component_appl_id          :=  200;
55584 l_amb_context_code           := 'DEFAULT';
55585 l_entity_code                := 'AP_PAYMENTS';
55586 l_event_class_code           := 'RECONCILED PAYMENTS';
55587 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
55588 l_line_definition_owner_code := 'S';
55589 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
55590 --
55591 l_balance_type_code          := 'A';
55592 l_segment                     := NULL;
55593 l_ccid                        := NULL;
55594 l_adr_transaction_coa_id      := NULL;
55595 l_adr_accounting_coa_id       := NULL;
55596 l_adr_flexfield_segment_code  := NULL;
55597 l_adr_flex_value_set_id       := NULL;
55598 l_adr_value_type_code         := NULL;
55599 l_adr_value_combination_id    := NULL;
55600 l_adr_value_segment_code      := NULL;
55601 
55602 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
55603 l_bflow_class_code           := '';    -- 4219869 Business Flow
55604 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
55605 l_budgetary_control_flag     := 'N';
55606 
55607 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
55608 l_bflow_applied_to_amt       := NULL; -- 5132302
55609 l_entered_amt_idx            := NULL;          -- 4262811
55610 l_accted_amt_idx             := NULL;          -- 4262811
55611 l_acc_rev_flag               := NULL;          -- 4262811
55612 l_accrual_line_num           := NULL;          -- 4262811
55613 l_tmp_amt                    := NULL;          -- 4262811
55614 --
55615  
55616 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55617     l_balance_type_code <> 'B' THEN
55618 IF NVL(p_source_50,'
55619 ') =  'CLEAR_CLEAR' AND 
55620 (NVL(p_source_32,'
55621 ') =  'ITEM' OR 
55622 NVL(p_source_32,'
55623 ') =  'RETROEXPENSE' OR 
55624 NVL(p_source_32,'
55625 ') =  'ERV' AND 
55626 NVL(p_source_111,'
55627 ') <>  'Y' OR 
55628 NVL(p_source_32,'
55629 ') =  'IPV' AND 
55630 NVL(p_source_111,'
55631 ') <>  'Y') AND 
55632 NVL(p_source_112,'
55633 ') <>  'INTEREST' AND 
55634 (NVL(p_source_51,'
55635 ') =  'CASH' OR 
55636 NVL(p_source_51,'
55637 ') =  'AWT' OR 
55638 NVL(p_source_51,'
55639 ') =  'DISCOUNT')
55640  THEN 
55641 
55642    --
55643    XLA_AE_LINES_PKG.SetNewLine;
55644 
55645    p_balance_type_code          := l_balance_type_code;
55646    -- set the flag so later we will know whether the gain loss line needs to be created
55647    
55651 
55648    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55649      p_actual_flag :='A';
55650    END IF;
55652    --
55653    -- bulk performance
55654    --
55655    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55656                                       p_header_num   => 0); -- 4262811
55657    --
55658    -- set accounting line options
55659    --
55660    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55661            p_natural_side_code          => 'D'
55662          , p_gain_or_loss_flag          => 'N'
55663          , p_gl_transfer_mode_code      => 'S'
55664          , p_acct_entry_type_code       => 'A'
55665          , p_switch_side_flag           => 'Y'
55666          , p_merge_duplicate_code       => 'A'
55667          );
55668    --
55669    l_acc_rev_natural_side_code := 'C';  -- 4262811
55670    -- 
55671    --
55672    -- set accounting line type info
55673    --
55674    xla_ae_lines_pkg.SetAcctLineType
55675       (p_component_type             => l_component_type
55676       ,p_event_type_code            => l_event_type_code
55677       ,p_line_definition_owner_code => l_line_definition_owner_code
55678       ,p_line_definition_code       => l_line_definition_code
55679       ,p_accounting_line_code       => l_component_code
55680       ,p_accounting_line_type_code  => l_component_type_code
55681       ,p_accounting_line_appl_id    => l_component_appl_id
55682       ,p_amb_context_code           => l_amb_context_code
55683       ,p_entity_code                => l_entity_code
55684       ,p_event_class_code           => l_event_class_code);
55685    --
55686    -- set accounting class
55687    --
55688    xla_ae_lines_pkg.SetAcctClass(
55689            p_accounting_class_code  => 'ITEM EXPENSE'
55690          , p_ae_header_id           => l_ae_header_id
55691          );
55692 
55693    --
55694    -- set rounding class
55695    --
55696    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55697                       'ITEM EXPENSE';
55698 
55699    --
55700    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55701    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55702    --
55703    -- bulk performance
55704    --
55705    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55706 
55707    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55708       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55709 
55710    -- 4955764
55711    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55712       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55713 
55714    -- 4458381 Public Sector Enh
55715    
55716    --
55717    -- set accounting attributes for the line type
55718    --
55719    l_entered_amt_idx := 10;
55720    l_accted_amt_idx  := 15;
55721    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
55722    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55723    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
55724    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
55725    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
55726    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
55727    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
55728    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55729    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
55730    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
55731    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
55732    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
55733    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
55734    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55735    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
55736    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
55737    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
55738    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
55739    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
55740    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
55741    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
55742    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
55743    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
55744    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
55745    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
55746    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
55747    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
55748    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
55749    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
55750    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
55751    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
55752    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
55753    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
55754    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
55755    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
55756    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
55757    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
55761    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
55758    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
55759    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
55760    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
55762    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
55763    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
55764    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
55765    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
55766    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
55767    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
55768    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
55769    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
55770 
55771    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55772    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55773 
55774    ---------------------------------------------------------------------------------------------------------------
55775    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55776    ---------------------------------------------------------------------------------------------------------------
55777    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55778 
55779    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55780    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55781 
55782    IF xla_accounting_cache_pkg.GetValueChar
55783          (p_source_code         => 'LEDGER_CATEGORY_CODE'
55784          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55785    AND l_bflow_method_code = 'PRIOR_ENTRY'
55786 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55787    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55788          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55789        )
55790    THEN
55791          xla_ae_lines_pkg.BflowUpgEntry
55792            (p_business_method_code    => l_bflow_method_code
55793            ,p_business_class_code     => l_bflow_class_code
55794            ,p_balance_type            => l_balance_type_code);
55795    ELSE
55796       NULL;
55797 -- No business flow processing for business flow method of NONE.
55798    END IF;
55799 
55800    --
55801    -- call analytical criteria
55802    --
55803    
55804    --
55805    -- call description
55806    --
55807    -- No description or it is inherited.
55808    --
55809    -- call ADRs
55810    -- Bug 4922099
55811    --
55812    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55813         (NVL(l_actual_upg_option, 'N') = 'O') OR
55814         (NVL(l_enc_upg_option, 'N') = 'O')
55815       )
55816    THEN
55817    NULL;
55818    --
55819    --
55820    
55821   l_ccid := AcctDerRule_28(
55822            p_application_id           => p_application_id
55823          , p_ae_header_id             => l_ae_header_id 
55824 , p_source_29 => p_source_29
55825          , x_transaction_coa_id       => l_adr_transaction_coa_id
55826          , x_accounting_coa_id        => l_adr_accounting_coa_id
55827          , x_value_type_code          => l_adr_value_type_code
55828          , p_side                     => 'NA'
55829    );
55830 
55831    xla_ae_lines_pkg.set_ccid(
55832     p_code_combination_id          => l_ccid
55833   , p_value_type_code              => l_adr_value_type_code
55834   , p_transaction_coa_id           => l_adr_transaction_coa_id
55835   , p_accounting_coa_id            => l_adr_accounting_coa_id
55836   , p_adr_code                     => 'AP_INVOICE_DIST'
55837   , p_adr_type_code                => 'S'
55838   , p_component_type               => l_component_type
55839   , p_component_code               => l_component_code
55840   , p_component_type_code          => l_component_type_code
55841   , p_component_appl_id            => l_component_appl_id
55842   , p_amb_context_code             => l_amb_context_code
55843   , p_side                         => 'NA'
55844   );
55845 
55846 
55847    --
55848    --
55849    END IF;
55850    --
55851    -- Bug 4922099
55852    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55853           (NVL(l_enc_upg_option, 'N') = 'O')
55854         ) AND
55855         (l_bflow_method_code = 'PRIOR_ENTRY')
55856       )
55857    THEN
55858       IF
55859       --
55860       1 = 2
55861       --
55862       THEN
55863       xla_accounting_err_pkg.build_message
55864                                     (p_appli_s_name            => 'XLA'
55865                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55866                                     ,p_token_1                 => 'LINE_NUMBER'
55867                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
55868                                     ,p_token_2                 => 'LINE_TYPE_NAME'
55869                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
55870                                                                              l_component_type
55871                                                                             ,l_component_code
55875                                                                             ,l_entity_code
55872                                                                             ,l_component_type_code
55873                                                                             ,l_component_appl_id
55874                                                                             ,l_amb_context_code
55876                                                                             ,l_event_class_code
55877                                                                            )
55878                                     ,p_token_3                 => 'OWNER'
55879                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
55880                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
55881                                                                           ,p_lookup_code    => l_component_type_code
55882                                                                          )
55883                                     ,p_token_4                 => 'PRODUCT_NAME'
55884                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55885                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55886                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55887                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55888                                     ,p_ae_header_id            =>  NULL
55889                                        );
55890 
55891         IF (C_LEVEL_ERROR>= g_log_level) THEN
55892                  trace
55893                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55894                       ,p_level    => C_LEVEL_ERROR
55895                       ,p_module   => l_log_module);
55896         END IF;
55897       END IF;
55898    END IF;
55899    --
55900    --
55901    ------------------------------------------------------------------------------------------------
55902    -- 4219869 Business Flow
55903    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55904    -- Prior Entry.  Currently, the following code is always generated.
55905    ------------------------------------------------------------------------------------------------
55906    XLA_AE_LINES_PKG.ValidateCurrentLine;
55907 
55908    ------------------------------------------------------------------------------------
55909    -- 4219869 Business Flow
55910    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55911    ------------------------------------------------------------------------------------
55912    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55913 
55914    ----------------------------------------------------------------------------------
55915    -- 4219869 Business Flow
55916    -- Update journal entry status -- Need to generate this within IF <condition>
55917    ----------------------------------------------------------------------------------
55918    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55919          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55920          ,p_balance_type_code => l_balance_type_code
55921          );
55922 
55923    -------------------------------------------------------------------------------------------
55924    -- 4262811 - Generate the Accrual Reversal lines
55925    -------------------------------------------------------------------------------------------
55926    BEGIN
55927       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55928                               (g_array_event(p_event_id).array_value_num('header_index'));
55929       IF l_acc_rev_flag IS NULL THEN
55930          l_acc_rev_flag := 'N';
55931       END IF;
55932    EXCEPTION
55933       WHEN OTHERS THEN
55934          l_acc_rev_flag := 'N';
55935    END;
55936    --
55937    IF (l_acc_rev_flag = 'Y') THEN
55938 
55939        -- 4645092  ------------------------------------------------------------------------------
55940        -- To allow MPA report to determine if it should generate report process
55941        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55942        ------------------------------------------------------------------------------------------
55943 
55944        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55945        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55946    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
55947    -- call ADRs
55948    -- Bug 4922099
55949    --
55950    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55951         (NVL(l_actual_upg_option, 'N') = 'O') OR
55952         (NVL(l_enc_upg_option, 'N') = 'O')
55953       )
55954    THEN
55955    NULL;
55956    --
55957    --
55958    
55959   l_ccid := AcctDerRule_28(
55960            p_application_id           => p_application_id
55961          , p_ae_header_id             => l_ae_header_id 
55962 , p_source_29 => p_source_29
55963          , x_transaction_coa_id       => l_adr_transaction_coa_id
55964          , x_accounting_coa_id        => l_adr_accounting_coa_id
55965          , x_value_type_code          => l_adr_value_type_code
55966          , p_side                     => 'NA'
55967    );
55968 
55969    xla_ae_lines_pkg.set_ccid(
55970     p_code_combination_id          => l_ccid
55971   , p_value_type_code              => l_adr_value_type_code
55975   , p_adr_type_code                => 'S'
55972   , p_transaction_coa_id           => l_adr_transaction_coa_id
55973   , p_accounting_coa_id            => l_adr_accounting_coa_id
55974   , p_adr_code                     => 'AP_INVOICE_DIST'
55976   , p_component_type               => l_component_type
55977   , p_component_code               => l_component_code
55978   , p_component_type_code          => l_component_type_code
55979   , p_component_appl_id            => l_component_appl_id
55980   , p_amb_context_code             => l_amb_context_code
55981   , p_side                         => 'NA'
55982   );
55983 
55984 
55985    --
55986    --
55987    END IF;
55988 
55989        --
55990        -- Update the line information that should be overwritten
55991        --
55992        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55993                                          p_header_num   => 1);
55994        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
55995 
55996        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55997 
55998        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
55999           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56000        END IF;
56001 
56002       --
56003       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56004       --
56005       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56006           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
56007       ELSE
56008           ---------------------------------------------------------------------------------------------------
56009           -- 4262811a Switch Sign
56010           ---------------------------------------------------------------------------------------------------
56011           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
56012           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56013                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56014           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56015                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56016           -- 5132302
56017           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56018                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56019 
56020       END IF;
56021 
56022       -- 4955764
56023       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56024       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56025 
56026 
56027       XLA_AE_LINES_PKG.ValidateCurrentLine;
56028       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56029 
56030       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56031                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56032                ,p_balance_type_code => l_balance_type_code);
56033 
56034    END IF;
56035 
56036    -----------------------------------------------------------------------------------------
56037    -- 4262811 Multiperiod Accounting
56038    -----------------------------------------------------------------------------------------
56039      -- No MPA option is assigned.
56040 
56041 
56042 END IF;
56043 END IF;
56044 --
56045 
56046 --
56047 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56048    trace
56049       (p_msg      => 'END of AcctLineType_107'
56050       ,p_level    => C_LEVEL_PROCEDURE
56051       ,p_module   => l_log_module);
56052 END IF;
56053 --
56054 EXCEPTION
56055   WHEN xla_exceptions_pkg.application_exception THEN
56056       RAISE;
56057   WHEN OTHERS THEN
56058        xla_exceptions_pkg.raise_message
56059            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_107');
56060 END AcctLineType_107;
56061 --
56062 
56063 ---------------------------------------
56064 --
56065 -- PRIVATE FUNCTION
56066 --         AcctLineType_108
56067 --
56068 ---------------------------------------
56069 PROCEDURE AcctLineType_108 (
56070   p_application_id        IN NUMBER
56071  ,p_event_id              IN NUMBER
56072  ,p_calculate_acctd_flag  IN VARCHAR2
56073  ,p_calculate_g_l_flag    IN VARCHAR2
56074  ,p_actual_flag           IN OUT VARCHAR2
56075  ,p_balance_type_code     OUT VARCHAR2
56076  ,p_gain_or_loss_ref      OUT VARCHAR2
56077  
56078 --Payment Currency Code
56079  , p_source_12            IN VARCHAR2
56080 --Payment Distribution (Payment Rate) Ledger Amount
56081  , p_source_21            IN NUMBER
56082 --Invoice Distribution Account
56083  , p_source_29            IN NUMBER
56084 --Invoice Distribution Type
56085  , p_source_32            IN VARCHAR2
56086  , p_source_32_meaning    IN VARCHAR2
56087 --When to Account for Payment Option
56088  , p_source_50            IN VARCHAR2
56089 --Payment Distribution Type
56090  , p_source_51            IN VARCHAR2
56091  , p_source_51_meaning    IN VARCHAR2
56092 --Accounting Reversal Indicator
56096 --Business Flow Accounts Payable Application Identifier
56093  , p_source_52            IN VARCHAR2
56094 --Payment Distribution Amount
56095  , p_source_53            IN NUMBER
56097  , p_source_54            IN NUMBER
56098 --Payment Distribution Identifier
56099  , p_source_59            IN NUMBER
56100 --Distribution Link Type
56101  , p_source_60            IN VARCHAR2
56102 --Override Accounted Amount Indicator
56103  , p_source_64            IN VARCHAR2
56104  , p_source_64_meaning    IN VARCHAR2
56105 --Payment Supplier Identifier
56106  , p_source_65            IN NUMBER
56107 --Payment Supplier Site Identifier
56108  , p_source_66            IN NUMBER
56109 --Third Party Type
56110  , p_source_67            IN VARCHAR2
56111 --Payment Distribution Reversed Identifier
56112  , p_source_68            IN NUMBER
56113 --Invoice Distribution Tax Line Identifier
56114  , p_source_69            IN NUMBER
56115 --Invoice Distribution Summary Tax Line Identifier
56116  , p_source_70            IN NUMBER
56117 --Payment Type
56118  , p_source_71            IN VARCHAR2
56119  , p_source_71_meaning    IN VARCHAR2
56120 --Invoice Distribution Amount of the Payment Distribution
56121  , p_source_72            IN NUMBER
56122 --Business Flow Invoice Distribution Type
56123  , p_source_73            IN VARCHAR2
56124 --Business Flow Invoice Entity Code
56125  , p_source_74            IN VARCHAR2
56126 --Business Flow Invoice Distribution Identifier
56127  , p_source_75            IN NUMBER
56128 --Business Flow Invoice Identifier
56129  , p_source_76            IN NUMBER
56130 --Invoice Distribution Tax Distribution Identifier from Tax
56131  , p_source_77            IN NUMBER
56132 --Accrue on Receipt Option
56133  , p_source_111            IN VARCHAR2
56134  , p_source_111_meaning    IN VARCHAR2
56135 --Invoice Type Paid
56136  , p_source_112            IN VARCHAR2
56137  , p_source_112_meaning    IN VARCHAR2
56138 --Payment Exchange Date
56139  , p_source_121            IN DATE
56140 --Payment Exchange Rate
56141  , p_source_122            IN NUMBER
56142 --Payment Exchange Rate Type
56143  , p_source_123            IN VARCHAR2
56144 )
56145 IS
56146 
56147 l_component_type              VARCHAR2(80);
56148 l_component_code              VARCHAR2(30);
56149 l_component_type_code         VARCHAR2(1);
56150 l_component_appl_id           INTEGER;
56151 l_amb_context_code            VARCHAR2(30);
56152 l_entity_code                 VARCHAR2(30);
56153 l_event_class_code            VARCHAR2(30);
56154 l_ae_header_id                NUMBER;
56155 l_event_type_code             VARCHAR2(30);
56156 l_line_definition_code        VARCHAR2(30);
56157 l_line_definition_owner_code  VARCHAR2(1);
56158 --
56159 -- adr variables
56160 l_segment                     VARCHAR2(30);
56161 l_ccid                        NUMBER;
56162 l_adr_transaction_coa_id      NUMBER;
56163 l_adr_accounting_coa_id       NUMBER;
56164 l_adr_flexfield_segment_code  VARCHAR2(30);
56165 l_adr_flex_value_set_id       NUMBER;
56166 l_adr_value_type_code         VARCHAR2(30);
56167 l_adr_value_combination_id    NUMBER;
56168 l_adr_value_segment_code      VARCHAR2(30);
56169 
56170 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
56171 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
56172 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
56173 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
56174 
56175 -- 4262811 Variables ------------------------------------------------------------------------------------------
56176 l_entered_amt_idx             NUMBER;
56177 l_accted_amt_idx              NUMBER;
56178 l_acc_rev_flag                VARCHAR2(1);
56179 l_accrual_line_num            NUMBER;
56180 l_tmp_amt                     NUMBER;
56181 l_acc_rev_natural_side_code   VARCHAR2(1);
56182 
56183 l_num_entries                 NUMBER;
56184 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
56185 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
56186 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
56187 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
56188 l_recog_line_1                NUMBER;
56189 l_recog_line_2                NUMBER;
56190 
56191 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
56192 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
56193 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
56194 
56195 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56196 
56197 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
56198 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
56199 
56200 ---------------------------------------------------------------------------------------------------------------
56201 
56202 
56203 --
56204 -- bulk performance
56205 --
56206 l_balance_type_code           VARCHAR2(1);
56207 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
56208 l_log_module                  VARCHAR2(240);
56209 
56210 --
56211 -- Upgrade strategy
56212 --
56213 l_actual_upg_option           VARCHAR2(1);
56214 l_enc_upg_option           VARCHAR2(1);
56215 
56216 --
56217 BEGIN
56218 --
56219 IF g_log_enabled THEN
56223 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56220       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_108';
56221 END IF;
56222 --
56224 
56225       trace
56226          (p_msg      => 'BEGIN of AcctLineType_108'
56227          ,p_level    => C_LEVEL_PROCEDURE
56228          ,p_module   => l_log_module);
56229 
56230 END IF;
56231 --
56232 l_component_type             := 'AMB_JLT';
56233 l_component_code             := 'AP_ITEM_EXPENSE_PMT';
56234 l_component_type_code        := 'S';
56235 l_component_appl_id          :=  200;
56236 l_amb_context_code           := 'DEFAULT';
56237 l_entity_code                := 'AP_PAYMENTS';
56238 l_event_class_code           := 'PAYMENTS';
56239 l_event_type_code            := 'PAYMENTS_ALL';
56240 l_line_definition_owner_code := 'S';
56241 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
56242 --
56243 l_balance_type_code          := 'A';
56244 l_segment                     := NULL;
56245 l_ccid                        := NULL;
56246 l_adr_transaction_coa_id      := NULL;
56247 l_adr_accounting_coa_id       := NULL;
56248 l_adr_flexfield_segment_code  := NULL;
56249 l_adr_flex_value_set_id       := NULL;
56250 l_adr_value_type_code         := NULL;
56251 l_adr_value_combination_id    := NULL;
56252 l_adr_value_segment_code      := NULL;
56253 
56254 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
56255 l_bflow_class_code           := '';    -- 4219869 Business Flow
56256 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
56257 l_budgetary_control_flag     := 'N';
56258 
56259 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
56260 l_bflow_applied_to_amt       := NULL; -- 5132302
56261 l_entered_amt_idx            := NULL;          -- 4262811
56262 l_accted_amt_idx             := NULL;          -- 4262811
56263 l_acc_rev_flag               := NULL;          -- 4262811
56264 l_accrual_line_num           := NULL;          -- 4262811
56265 l_tmp_amt                    := NULL;          -- 4262811
56266 --
56267  
56268 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56269     l_balance_type_code <> 'B' THEN
56270 IF NVL(p_source_50,'
56271 ') <>  'CLEAR_CLEAR' AND 
56272 (NVL(p_source_32,'
56273 ') =  'ITEM' OR 
56274 NVL(p_source_32,'
56275 ') =  'RETROEXPENSE' OR 
56276 NVL(p_source_32,'
56277 ') =  'ERV' AND 
56278 NVL(p_source_111,'
56279 ') <>  'Y' OR 
56280 NVL(p_source_32,'
56281 ') =  'IPV' AND 
56282 NVL(p_source_111,'
56283 ') <>  'Y') AND 
56284 NVL(p_source_112,'
56285 ') <>  'PREPAYMENT' AND 
56286 NVL(p_source_112,'
56287 ') <>  'INTEREST' AND 
56288 (NVL(p_source_51,'
56289 ') =  'CASH' OR 
56290 NVL(p_source_51,'
56291 ') =  'AWT' OR 
56292 NVL(p_source_51,'
56293 ') =  'DISCOUNT') AND 
56294 NVL(p_source_71,'
56295 ') <>  'R'
56296  THEN 
56297 
56298    --
56299    XLA_AE_LINES_PKG.SetNewLine;
56300 
56301    p_balance_type_code          := l_balance_type_code;
56302    -- set the flag so later we will know whether the gain loss line needs to be created
56303    
56304    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56305      p_actual_flag :='A';
56306    END IF;
56307 
56308    --
56309    -- bulk performance
56310    --
56311    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56312                                       p_header_num   => 0); -- 4262811
56313    --
56314    -- set accounting line options
56315    --
56316    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56317            p_natural_side_code          => 'D'
56318          , p_gain_or_loss_flag          => 'N'
56319          , p_gl_transfer_mode_code      => 'S'
56320          , p_acct_entry_type_code       => 'A'
56321          , p_switch_side_flag           => 'Y'
56322          , p_merge_duplicate_code       => 'A'
56323          );
56324    --
56325    l_acc_rev_natural_side_code := 'C';  -- 4262811
56326    -- 
56327    --
56328    -- set accounting line type info
56329    --
56330    xla_ae_lines_pkg.SetAcctLineType
56331       (p_component_type             => l_component_type
56332       ,p_event_type_code            => l_event_type_code
56333       ,p_line_definition_owner_code => l_line_definition_owner_code
56334       ,p_line_definition_code       => l_line_definition_code
56335       ,p_accounting_line_code       => l_component_code
56336       ,p_accounting_line_type_code  => l_component_type_code
56337       ,p_accounting_line_appl_id    => l_component_appl_id
56338       ,p_amb_context_code           => l_amb_context_code
56339       ,p_entity_code                => l_entity_code
56340       ,p_event_class_code           => l_event_class_code);
56341    --
56342    -- set accounting class
56343    --
56344    xla_ae_lines_pkg.SetAcctClass(
56345            p_accounting_class_code  => 'ITEM EXPENSE'
56346          , p_ae_header_id           => l_ae_header_id
56347          );
56348 
56349    --
56350    -- set rounding class
56351    --
56352    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56353                       'ITEM EXPENSE';
56354 
56355    --
56356    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56357    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56358    --
56359    -- bulk performance
56360    --
56364       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56361    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56362 
56363    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56365 
56366    -- 4955764
56367    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56368       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
56369 
56370    -- 4458381 Public Sector Enh
56371    
56372    --
56373    -- set accounting attributes for the line type
56374    --
56375    l_entered_amt_idx := 10;
56376    l_accted_amt_idx  := 15;
56377    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
56378    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
56379    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
56380    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
56381    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
56382    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
56383    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
56384    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
56385    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
56386    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
56387    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
56388    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
56389    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
56390    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
56391    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
56392    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
56393    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
56394    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
56395    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
56396    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
56397    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
56398    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
56399    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
56400    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
56401    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
56402    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
56403    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
56404    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
56405    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
56406    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
56407    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
56408    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
56409    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
56410    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
56411    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
56412    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
56413    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
56414    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
56415    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
56416    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
56417    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
56418    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
56419    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
56420    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
56421    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
56422    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
56423    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
56424    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
56425    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
56426 
56427    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
56428    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
56429 
56430    ---------------------------------------------------------------------------------------------------------------
56431    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
56432    ---------------------------------------------------------------------------------------------------------------
56433    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
56434 
56435    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56436    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56437 
56438    IF xla_accounting_cache_pkg.GetValueChar
56439          (p_source_code         => 'LEDGER_CATEGORY_CODE'
56440          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
56441    AND l_bflow_method_code = 'PRIOR_ENTRY'
56442 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
56443    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
56444          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
56445        )
56446    THEN
56447          xla_ae_lines_pkg.BflowUpgEntry
56448            (p_business_method_code    => l_bflow_method_code
56449            ,p_business_class_code     => l_bflow_class_code
56450            ,p_balance_type            => l_balance_type_code);
56451    ELSE
56455 
56452       NULL;
56453 -- No business flow processing for business flow method of NONE.
56454    END IF;
56456    --
56457    -- call analytical criteria
56458    --
56459    
56460    --
56461    -- call description
56462    --
56463    -- No description or it is inherited.
56464    --
56465    -- call ADRs
56466    -- Bug 4922099
56467    --
56468    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56469         (NVL(l_actual_upg_option, 'N') = 'O') OR
56470         (NVL(l_enc_upg_option, 'N') = 'O')
56471       )
56472    THEN
56473    NULL;
56474    --
56475    --
56476    
56477   l_ccid := AcctDerRule_28(
56478            p_application_id           => p_application_id
56479          , p_ae_header_id             => l_ae_header_id 
56480 , p_source_29 => p_source_29
56481          , x_transaction_coa_id       => l_adr_transaction_coa_id
56482          , x_accounting_coa_id        => l_adr_accounting_coa_id
56483          , x_value_type_code          => l_adr_value_type_code
56484          , p_side                     => 'NA'
56485    );
56486 
56487    xla_ae_lines_pkg.set_ccid(
56488     p_code_combination_id          => l_ccid
56489   , p_value_type_code              => l_adr_value_type_code
56490   , p_transaction_coa_id           => l_adr_transaction_coa_id
56491   , p_accounting_coa_id            => l_adr_accounting_coa_id
56492   , p_adr_code                     => 'AP_INVOICE_DIST'
56493   , p_adr_type_code                => 'S'
56494   , p_component_type               => l_component_type
56495   , p_component_code               => l_component_code
56496   , p_component_type_code          => l_component_type_code
56497   , p_component_appl_id            => l_component_appl_id
56498   , p_amb_context_code             => l_amb_context_code
56499   , p_side                         => 'NA'
56500   );
56501 
56502 
56503    --
56504    --
56505    END IF;
56506    --
56507    -- Bug 4922099
56508    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56509           (NVL(l_enc_upg_option, 'N') = 'O')
56510         ) AND
56511         (l_bflow_method_code = 'PRIOR_ENTRY')
56512       )
56513    THEN
56514       IF
56515       --
56516       1 = 2
56517       --
56518       THEN
56519       xla_accounting_err_pkg.build_message
56520                                     (p_appli_s_name            => 'XLA'
56521                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56522                                     ,p_token_1                 => 'LINE_NUMBER'
56523                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
56524                                     ,p_token_2                 => 'LINE_TYPE_NAME'
56525                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
56526                                                                              l_component_type
56527                                                                             ,l_component_code
56528                                                                             ,l_component_type_code
56529                                                                             ,l_component_appl_id
56530                                                                             ,l_amb_context_code
56531                                                                             ,l_entity_code
56532                                                                             ,l_event_class_code
56533                                                                            )
56534                                     ,p_token_3                 => 'OWNER'
56535                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
56536                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
56537                                                                           ,p_lookup_code    => l_component_type_code
56538                                                                          )
56539                                     ,p_token_4                 => 'PRODUCT_NAME'
56540                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56541                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56542                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56543                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56544                                     ,p_ae_header_id            =>  NULL
56545                                        );
56546 
56547         IF (C_LEVEL_ERROR>= g_log_level) THEN
56548                  trace
56549                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56550                       ,p_level    => C_LEVEL_ERROR
56551                       ,p_module   => l_log_module);
56552         END IF;
56553       END IF;
56554    END IF;
56555    --
56556    --
56557    ------------------------------------------------------------------------------------------------
56558    -- 4219869 Business Flow
56559    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56560    -- Prior Entry.  Currently, the following code is always generated.
56561    ------------------------------------------------------------------------------------------------
56562    XLA_AE_LINES_PKG.ValidateCurrentLine;
56563 
56567    ------------------------------------------------------------------------------------
56564    ------------------------------------------------------------------------------------
56565    -- 4219869 Business Flow
56566    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56568    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56569 
56570    ----------------------------------------------------------------------------------
56571    -- 4219869 Business Flow
56572    -- Update journal entry status -- Need to generate this within IF <condition>
56573    ----------------------------------------------------------------------------------
56574    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56575          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56576          ,p_balance_type_code => l_balance_type_code
56577          );
56578 
56579    -------------------------------------------------------------------------------------------
56580    -- 4262811 - Generate the Accrual Reversal lines
56581    -------------------------------------------------------------------------------------------
56582    BEGIN
56583       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56584                               (g_array_event(p_event_id).array_value_num('header_index'));
56585       IF l_acc_rev_flag IS NULL THEN
56586          l_acc_rev_flag := 'N';
56587       END IF;
56588    EXCEPTION
56589       WHEN OTHERS THEN
56590          l_acc_rev_flag := 'N';
56591    END;
56592    --
56593    IF (l_acc_rev_flag = 'Y') THEN
56594 
56595        -- 4645092  ------------------------------------------------------------------------------
56596        -- To allow MPA report to determine if it should generate report process
56597        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56598        ------------------------------------------------------------------------------------------
56599 
56600        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56601        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56602    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
56603    -- call ADRs
56604    -- Bug 4922099
56605    --
56606    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56607         (NVL(l_actual_upg_option, 'N') = 'O') OR
56608         (NVL(l_enc_upg_option, 'N') = 'O')
56609       )
56610    THEN
56611    NULL;
56612    --
56613    --
56614    
56615   l_ccid := AcctDerRule_28(
56616            p_application_id           => p_application_id
56617          , p_ae_header_id             => l_ae_header_id 
56618 , p_source_29 => p_source_29
56619          , x_transaction_coa_id       => l_adr_transaction_coa_id
56620          , x_accounting_coa_id        => l_adr_accounting_coa_id
56621          , x_value_type_code          => l_adr_value_type_code
56622          , p_side                     => 'NA'
56623    );
56624 
56625    xla_ae_lines_pkg.set_ccid(
56626     p_code_combination_id          => l_ccid
56627   , p_value_type_code              => l_adr_value_type_code
56628   , p_transaction_coa_id           => l_adr_transaction_coa_id
56629   , p_accounting_coa_id            => l_adr_accounting_coa_id
56630   , p_adr_code                     => 'AP_INVOICE_DIST'
56631   , p_adr_type_code                => 'S'
56632   , p_component_type               => l_component_type
56633   , p_component_code               => l_component_code
56634   , p_component_type_code          => l_component_type_code
56635   , p_component_appl_id            => l_component_appl_id
56636   , p_amb_context_code             => l_amb_context_code
56637   , p_side                         => 'NA'
56638   );
56639 
56640 
56641    --
56642    --
56643    END IF;
56644 
56645        --
56646        -- Update the line information that should be overwritten
56647        --
56648        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56649                                          p_header_num   => 1);
56650        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
56651 
56652        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56653 
56654        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
56655           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56656        END IF;
56657 
56658       --
56659       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56660       --
56661       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56662           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
56663       ELSE
56664           ---------------------------------------------------------------------------------------------------
56665           -- 4262811a Switch Sign
56666           ---------------------------------------------------------------------------------------------------
56667           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
56668           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56669                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56670           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56674                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56671                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56672           -- 5132302
56673           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56675 
56676       END IF;
56677 
56678       -- 4955764
56679       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56680       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56681 
56682 
56683       XLA_AE_LINES_PKG.ValidateCurrentLine;
56684       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56685 
56686       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56687                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56688                ,p_balance_type_code => l_balance_type_code);
56689 
56690    END IF;
56691 
56692    -----------------------------------------------------------------------------------------
56693    -- 4262811 Multiperiod Accounting
56694    -----------------------------------------------------------------------------------------
56695      -- No MPA option is assigned.
56696 
56697 
56698 END IF;
56699 END IF;
56700 --
56701 
56702 --
56703 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56704    trace
56705       (p_msg      => 'END of AcctLineType_108'
56706       ,p_level    => C_LEVEL_PROCEDURE
56707       ,p_module   => l_log_module);
56708 END IF;
56709 --
56710 EXCEPTION
56711   WHEN xla_exceptions_pkg.application_exception THEN
56712       RAISE;
56713   WHEN OTHERS THEN
56714        xla_exceptions_pkg.raise_message
56715            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_108');
56716 END AcctLineType_108;
56717 --
56718 
56719 ---------------------------------------
56720 --
56721 -- PRIVATE FUNCTION
56722 --         AcctLineType_109
56723 --
56724 ---------------------------------------
56725 PROCEDURE AcctLineType_109 (
56726   p_application_id        IN NUMBER
56727  ,p_event_id              IN NUMBER
56728  ,p_calculate_acctd_flag  IN VARCHAR2
56729  ,p_calculate_g_l_flag    IN VARCHAR2
56730  ,p_actual_flag           IN OUT VARCHAR2
56731  ,p_balance_type_code     OUT VARCHAR2
56732  ,p_gain_or_loss_ref      OUT VARCHAR2
56733  
56734 --Payment Currency Code
56735  , p_source_12            IN VARCHAR2
56736 --Payment Distribution (Payment Rate) Ledger Amount
56737  , p_source_21            IN NUMBER
56738 --Invoice Distribution Account
56739  , p_source_29            IN NUMBER
56740 --Invoice Distribution Type
56741  , p_source_32            IN VARCHAR2
56742  , p_source_32_meaning    IN VARCHAR2
56743 --When to Account for Payment Option
56744  , p_source_50            IN VARCHAR2
56745 --Payment Distribution Type
56746  , p_source_51            IN VARCHAR2
56747  , p_source_51_meaning    IN VARCHAR2
56748 --Accounting Reversal Indicator
56749  , p_source_52            IN VARCHAR2
56750 --Payment Distribution Amount
56751  , p_source_53            IN NUMBER
56752 --Business Flow Accounts Payable Application Identifier
56753  , p_source_54            IN NUMBER
56754 --Payment Distribution Identifier
56755  , p_source_59            IN NUMBER
56756 --Distribution Link Type
56757  , p_source_60            IN VARCHAR2
56758 --Override Accounted Amount Indicator
56759  , p_source_64            IN VARCHAR2
56760  , p_source_64_meaning    IN VARCHAR2
56761 --Payment Supplier Identifier
56762  , p_source_65            IN NUMBER
56763 --Payment Supplier Site Identifier
56764  , p_source_66            IN NUMBER
56765 --Third Party Type
56766  , p_source_67            IN VARCHAR2
56767 --Payment Distribution Reversed Identifier
56768  , p_source_68            IN NUMBER
56769 --Invoice Distribution Tax Line Identifier
56770  , p_source_69            IN NUMBER
56771 --Invoice Distribution Summary Tax Line Identifier
56772  , p_source_70            IN NUMBER
56773 --Payment Type
56774  , p_source_71            IN VARCHAR2
56775  , p_source_71_meaning    IN VARCHAR2
56776 --Business Flow Invoice Distribution Type
56777  , p_source_73            IN VARCHAR2
56778 --Business Flow Invoice Entity Code
56779  , p_source_74            IN VARCHAR2
56780 --Business Flow Invoice Distribution Identifier
56781  , p_source_75            IN NUMBER
56782 --Business Flow Invoice Identifier
56783  , p_source_76            IN NUMBER
56784 --Invoice Distribution Tax Distribution Identifier from Tax
56785  , p_source_77            IN NUMBER
56786 --Accrue on Receipt Option
56787  , p_source_111            IN VARCHAR2
56788  , p_source_111_meaning    IN VARCHAR2
56789 --Payment Exchange Date
56790  , p_source_121            IN DATE
56791 --Payment Exchange Rate
56792  , p_source_122            IN NUMBER
56793 --Payment Exchange Rate Type
56794  , p_source_123            IN VARCHAR2
56795 )
56796 IS
56797 
56798 l_component_type              VARCHAR2(80);
56799 l_component_code              VARCHAR2(30);
56800 l_component_type_code         VARCHAR2(1);
56801 l_component_appl_id           INTEGER;
56802 l_amb_context_code            VARCHAR2(30);
56803 l_entity_code                 VARCHAR2(30);
56804 l_event_class_code            VARCHAR2(30);
56805 l_ae_header_id                NUMBER;
56809 --
56806 l_event_type_code             VARCHAR2(30);
56807 l_line_definition_code        VARCHAR2(30);
56808 l_line_definition_owner_code  VARCHAR2(1);
56810 -- adr variables
56811 l_segment                     VARCHAR2(30);
56812 l_ccid                        NUMBER;
56813 l_adr_transaction_coa_id      NUMBER;
56814 l_adr_accounting_coa_id       NUMBER;
56815 l_adr_flexfield_segment_code  VARCHAR2(30);
56816 l_adr_flex_value_set_id       NUMBER;
56817 l_adr_value_type_code         VARCHAR2(30);
56818 l_adr_value_combination_id    NUMBER;
56819 l_adr_value_segment_code      VARCHAR2(30);
56820 
56821 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
56822 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
56823 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
56824 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
56825 
56826 -- 4262811 Variables ------------------------------------------------------------------------------------------
56827 l_entered_amt_idx             NUMBER;
56828 l_accted_amt_idx              NUMBER;
56829 l_acc_rev_flag                VARCHAR2(1);
56830 l_accrual_line_num            NUMBER;
56831 l_tmp_amt                     NUMBER;
56832 l_acc_rev_natural_side_code   VARCHAR2(1);
56833 
56834 l_num_entries                 NUMBER;
56835 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
56836 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
56837 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
56838 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
56839 l_recog_line_1                NUMBER;
56840 l_recog_line_2                NUMBER;
56841 
56842 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
56843 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
56844 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
56845 
56846 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56847 
56848 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
56849 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
56850 
56851 ---------------------------------------------------------------------------------------------------------------
56852 
56853 
56854 --
56855 -- bulk performance
56856 --
56857 l_balance_type_code           VARCHAR2(1);
56858 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
56859 l_log_module                  VARCHAR2(240);
56860 
56861 --
56862 -- Upgrade strategy
56863 --
56864 l_actual_upg_option           VARCHAR2(1);
56865 l_enc_upg_option           VARCHAR2(1);
56866 
56867 --
56868 BEGIN
56869 --
56870 IF g_log_enabled THEN
56871       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_109';
56872 END IF;
56873 --
56874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56875 
56876       trace
56877          (p_msg      => 'BEGIN of AcctLineType_109'
56878          ,p_level    => C_LEVEL_PROCEDURE
56879          ,p_module   => l_log_module);
56880 
56881 END IF;
56882 --
56883 l_component_type             := 'AMB_JLT';
56884 l_component_code             := 'AP_ITEM_EXPENSE_REF';
56885 l_component_type_code        := 'S';
56886 l_component_appl_id          :=  200;
56887 l_amb_context_code           := 'DEFAULT';
56888 l_entity_code                := 'AP_PAYMENTS';
56889 l_event_class_code           := 'REFUNDS';
56890 l_event_type_code            := 'REFUNDS_ALL';
56891 l_line_definition_owner_code := 'S';
56892 l_line_definition_code       := 'CASH_REFUNDS_ALL';
56893 --
56894 l_balance_type_code          := 'A';
56895 l_segment                     := NULL;
56896 l_ccid                        := NULL;
56897 l_adr_transaction_coa_id      := NULL;
56898 l_adr_accounting_coa_id       := NULL;
56899 l_adr_flexfield_segment_code  := NULL;
56900 l_adr_flex_value_set_id       := NULL;
56901 l_adr_value_type_code         := NULL;
56902 l_adr_value_combination_id    := NULL;
56903 l_adr_value_segment_code      := NULL;
56904 
56905 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
56906 l_bflow_class_code           := '';    -- 4219869 Business Flow
56907 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
56908 l_budgetary_control_flag     := 'N';
56909 
56910 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
56911 l_bflow_applied_to_amt       := NULL; -- 5132302
56912 l_entered_amt_idx            := NULL;          -- 4262811
56913 l_accted_amt_idx             := NULL;          -- 4262811
56914 l_acc_rev_flag               := NULL;          -- 4262811
56915 l_accrual_line_num           := NULL;          -- 4262811
56916 l_tmp_amt                    := NULL;          -- 4262811
56917 --
56918  
56919 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56920     l_balance_type_code <> 'B' THEN
56921 IF NVL(p_source_50,'
56922 ') <>  'CLEAR_CLEAR' AND 
56923 (NVL(p_source_32,'
56924 ') =  'ITEM' OR 
56925 NVL(p_source_32,'
56926 ') =  'RETROEXPENSE' OR 
56927 NVL(p_source_32,'
56928 ') =  'ERV' AND 
56929 NVL(p_source_111,'
56930 ') <>  'Y' OR 
56931 NVL(p_source_32,'
56932 ') =  'IPV' AND 
56933 NVL(p_source_111,'
56934 ') <>  'Y') AND 
56935 (NVL(p_source_51,'
56936 ') =  'CASH' OR 
56940 ') =  'R'
56937 NVL(p_source_51,'
56938 ') =  'DISCOUNT') AND 
56939 NVL(p_source_71,'
56941  THEN 
56942 
56943    --
56944    XLA_AE_LINES_PKG.SetNewLine;
56945 
56946    p_balance_type_code          := l_balance_type_code;
56947    -- set the flag so later we will know whether the gain loss line needs to be created
56948    
56949    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56950      p_actual_flag :='A';
56951    END IF;
56952 
56953    --
56954    -- bulk performance
56955    --
56956    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56957                                       p_header_num   => 0); -- 4262811
56958    --
56959    -- set accounting line options
56960    --
56961    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56962            p_natural_side_code          => 'D'
56963          , p_gain_or_loss_flag          => 'N'
56964          , p_gl_transfer_mode_code      => 'S'
56965          , p_acct_entry_type_code       => 'A'
56966          , p_switch_side_flag           => 'Y'
56967          , p_merge_duplicate_code       => 'A'
56968          );
56969    --
56970    l_acc_rev_natural_side_code := 'C';  -- 4262811
56971    -- 
56972    --
56973    -- set accounting line type info
56974    --
56975    xla_ae_lines_pkg.SetAcctLineType
56976       (p_component_type             => l_component_type
56977       ,p_event_type_code            => l_event_type_code
56978       ,p_line_definition_owner_code => l_line_definition_owner_code
56979       ,p_line_definition_code       => l_line_definition_code
56980       ,p_accounting_line_code       => l_component_code
56981       ,p_accounting_line_type_code  => l_component_type_code
56982       ,p_accounting_line_appl_id    => l_component_appl_id
56983       ,p_amb_context_code           => l_amb_context_code
56984       ,p_entity_code                => l_entity_code
56985       ,p_event_class_code           => l_event_class_code);
56986    --
56987    -- set accounting class
56988    --
56989    xla_ae_lines_pkg.SetAcctClass(
56990            p_accounting_class_code  => 'ITEM EXPENSE'
56991          , p_ae_header_id           => l_ae_header_id
56992          );
56993 
56994    --
56995    -- set rounding class
56996    --
56997    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56998                       'ITEM EXPENSE';
56999 
57000    --
57001    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57002    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57003    --
57004    -- bulk performance
57005    --
57006    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57007 
57008    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57009       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57010 
57011    -- 4955764
57012    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57013       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57014 
57015    -- 4458381 Public Sector Enh
57016    
57017    --
57018    -- set accounting attributes for the line type
57019    --
57020    l_entered_amt_idx := 9;
57021    l_accted_amt_idx  := 14;
57022    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
57023    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57024    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
57025    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
57026    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
57027    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57028    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
57029    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
57030    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
57031    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
57032    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
57033    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57034    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
57035    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
57036    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
57037    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
57038    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
57039    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
57040    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
57041    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
57042    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
57043    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
57044    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
57045    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
57046    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
57047    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
57048    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
57049    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
57050    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
57051    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
57052    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
57053    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
57057    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
57054    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
57055    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
57056    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
57058    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
57059    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
57060    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
57061    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
57062    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
57063    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
57064    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
57065    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
57066    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
57067    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
57068    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
57069 
57070    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57071    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57072 
57073    ---------------------------------------------------------------------------------------------------------------
57074    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57075    ---------------------------------------------------------------------------------------------------------------
57076    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57077 
57078    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57079    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57080 
57081    IF xla_accounting_cache_pkg.GetValueChar
57082          (p_source_code         => 'LEDGER_CATEGORY_CODE'
57083          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57084    AND l_bflow_method_code = 'PRIOR_ENTRY'
57085 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57086    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57087          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57088        )
57089    THEN
57090          xla_ae_lines_pkg.BflowUpgEntry
57091            (p_business_method_code    => l_bflow_method_code
57092            ,p_business_class_code     => l_bflow_class_code
57093            ,p_balance_type            => l_balance_type_code);
57094    ELSE
57095       NULL;
57096 -- No business flow processing for business flow method of NONE.
57097    END IF;
57098 
57099    --
57100    -- call analytical criteria
57101    --
57102    
57103    --
57104    -- call description
57105    --
57106    -- No description or it is inherited.
57107    --
57108    -- call ADRs
57109    -- Bug 4922099
57110    --
57111    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57112         (NVL(l_actual_upg_option, 'N') = 'O') OR
57113         (NVL(l_enc_upg_option, 'N') = 'O')
57114       )
57115    THEN
57116    NULL;
57117    --
57118    --
57119    
57120   l_ccid := AcctDerRule_28(
57121            p_application_id           => p_application_id
57122          , p_ae_header_id             => l_ae_header_id 
57123 , p_source_29 => p_source_29
57124          , x_transaction_coa_id       => l_adr_transaction_coa_id
57125          , x_accounting_coa_id        => l_adr_accounting_coa_id
57126          , x_value_type_code          => l_adr_value_type_code
57127          , p_side                     => 'NA'
57128    );
57129 
57130    xla_ae_lines_pkg.set_ccid(
57131     p_code_combination_id          => l_ccid
57132   , p_value_type_code              => l_adr_value_type_code
57133   , p_transaction_coa_id           => l_adr_transaction_coa_id
57134   , p_accounting_coa_id            => l_adr_accounting_coa_id
57135   , p_adr_code                     => 'AP_INVOICE_DIST'
57136   , p_adr_type_code                => 'S'
57137   , p_component_type               => l_component_type
57138   , p_component_code               => l_component_code
57139   , p_component_type_code          => l_component_type_code
57140   , p_component_appl_id            => l_component_appl_id
57141   , p_amb_context_code             => l_amb_context_code
57142   , p_side                         => 'NA'
57143   );
57144 
57145 
57146    --
57147    --
57148    END IF;
57149    --
57150    -- Bug 4922099
57151    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57152           (NVL(l_enc_upg_option, 'N') = 'O')
57153         ) AND
57154         (l_bflow_method_code = 'PRIOR_ENTRY')
57155       )
57156    THEN
57157       IF
57158       --
57159       1 = 2
57160       --
57161       THEN
57162       xla_accounting_err_pkg.build_message
57163                                     (p_appli_s_name            => 'XLA'
57164                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57165                                     ,p_token_1                 => 'LINE_NUMBER'
57166                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
57167                                     ,p_token_2                 => 'LINE_TYPE_NAME'
57168                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
57172                                                                             ,l_component_appl_id
57169                                                                              l_component_type
57170                                                                             ,l_component_code
57171                                                                             ,l_component_type_code
57173                                                                             ,l_amb_context_code
57174                                                                             ,l_entity_code
57175                                                                             ,l_event_class_code
57176                                                                            )
57177                                     ,p_token_3                 => 'OWNER'
57178                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
57179                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
57180                                                                           ,p_lookup_code    => l_component_type_code
57181                                                                          )
57182                                     ,p_token_4                 => 'PRODUCT_NAME'
57183                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57184                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57185                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57186                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57187                                     ,p_ae_header_id            =>  NULL
57188                                        );
57189 
57190         IF (C_LEVEL_ERROR>= g_log_level) THEN
57191                  trace
57192                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57193                       ,p_level    => C_LEVEL_ERROR
57194                       ,p_module   => l_log_module);
57195         END IF;
57196       END IF;
57197    END IF;
57198    --
57199    --
57200    ------------------------------------------------------------------------------------------------
57201    -- 4219869 Business Flow
57202    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57203    -- Prior Entry.  Currently, the following code is always generated.
57204    ------------------------------------------------------------------------------------------------
57205    XLA_AE_LINES_PKG.ValidateCurrentLine;
57206 
57207    ------------------------------------------------------------------------------------
57208    -- 4219869 Business Flow
57209    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57210    ------------------------------------------------------------------------------------
57211    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57212 
57213    ----------------------------------------------------------------------------------
57214    -- 4219869 Business Flow
57215    -- Update journal entry status -- Need to generate this within IF <condition>
57216    ----------------------------------------------------------------------------------
57217    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57218          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57219          ,p_balance_type_code => l_balance_type_code
57220          );
57221 
57222    -------------------------------------------------------------------------------------------
57223    -- 4262811 - Generate the Accrual Reversal lines
57224    -------------------------------------------------------------------------------------------
57225    BEGIN
57226       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57227                               (g_array_event(p_event_id).array_value_num('header_index'));
57228       IF l_acc_rev_flag IS NULL THEN
57229          l_acc_rev_flag := 'N';
57230       END IF;
57231    EXCEPTION
57232       WHEN OTHERS THEN
57233          l_acc_rev_flag := 'N';
57234    END;
57235    --
57236    IF (l_acc_rev_flag = 'Y') THEN
57237 
57238        -- 4645092  ------------------------------------------------------------------------------
57239        -- To allow MPA report to determine if it should generate report process
57240        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57241        ------------------------------------------------------------------------------------------
57242 
57243        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57244        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57245    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
57246    -- call ADRs
57247    -- Bug 4922099
57248    --
57249    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57250         (NVL(l_actual_upg_option, 'N') = 'O') OR
57251         (NVL(l_enc_upg_option, 'N') = 'O')
57252       )
57253    THEN
57254    NULL;
57255    --
57256    --
57257    
57258   l_ccid := AcctDerRule_28(
57259            p_application_id           => p_application_id
57260          , p_ae_header_id             => l_ae_header_id 
57261 , p_source_29 => p_source_29
57262          , x_transaction_coa_id       => l_adr_transaction_coa_id
57263          , x_accounting_coa_id        => l_adr_accounting_coa_id
57264          , x_value_type_code          => l_adr_value_type_code
57265          , p_side                     => 'NA'
57266    );
57267 
57271   , p_transaction_coa_id           => l_adr_transaction_coa_id
57268    xla_ae_lines_pkg.set_ccid(
57269     p_code_combination_id          => l_ccid
57270   , p_value_type_code              => l_adr_value_type_code
57272   , p_accounting_coa_id            => l_adr_accounting_coa_id
57273   , p_adr_code                     => 'AP_INVOICE_DIST'
57274   , p_adr_type_code                => 'S'
57275   , p_component_type               => l_component_type
57276   , p_component_code               => l_component_code
57277   , p_component_type_code          => l_component_type_code
57278   , p_component_appl_id            => l_component_appl_id
57279   , p_amb_context_code             => l_amb_context_code
57280   , p_side                         => 'NA'
57281   );
57282 
57283 
57284    --
57285    --
57286    END IF;
57287 
57288        --
57289        -- Update the line information that should be overwritten
57290        --
57291        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57292                                          p_header_num   => 1);
57293        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
57294 
57295        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57296 
57297        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
57298           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57299        END IF;
57300 
57301       --
57302       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57303       --
57304       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57305           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
57306       ELSE
57307           ---------------------------------------------------------------------------------------------------
57308           -- 4262811a Switch Sign
57309           ---------------------------------------------------------------------------------------------------
57310           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
57311           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57312                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57313           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57314                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57315           -- 5132302
57316           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57317                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57318 
57319       END IF;
57320 
57321       -- 4955764
57322       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57323       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57324 
57325 
57326       XLA_AE_LINES_PKG.ValidateCurrentLine;
57327       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57328 
57329       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57330                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57331                ,p_balance_type_code => l_balance_type_code);
57332 
57333    END IF;
57334 
57335    -----------------------------------------------------------------------------------------
57336    -- 4262811 Multiperiod Accounting
57337    -----------------------------------------------------------------------------------------
57338      -- No MPA option is assigned.
57339 
57340 
57341 END IF;
57342 END IF;
57343 --
57344 
57345 --
57346 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57347    trace
57348       (p_msg      => 'END of AcctLineType_109'
57349       ,p_level    => C_LEVEL_PROCEDURE
57350       ,p_module   => l_log_module);
57351 END IF;
57352 --
57353 EXCEPTION
57354   WHEN xla_exceptions_pkg.application_exception THEN
57355       RAISE;
57356   WHEN OTHERS THEN
57357        xla_exceptions_pkg.raise_message
57358            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_109');
57359 END AcctLineType_109;
57360 --
57361 
57362 ---------------------------------------
57363 --
57364 -- PRIVATE FUNCTION
57365 --         AcctLineType_110
57366 --
57367 ---------------------------------------
57368 PROCEDURE AcctLineType_110 (
57369   p_application_id        IN NUMBER
57370  ,p_event_id              IN NUMBER
57371  ,p_calculate_acctd_flag  IN VARCHAR2
57372  ,p_calculate_g_l_flag    IN VARCHAR2
57373  ,p_actual_flag           IN OUT VARCHAR2
57374  ,p_balance_type_code     OUT VARCHAR2
57375  ,p_gain_or_loss_ref      OUT VARCHAR2
57376  
57377 --Recipient Invoice Distribution Account
57378  , p_source_48            IN NUMBER
57379 --When to Account for Payment Option
57380  , p_source_50            IN VARCHAR2
57381 --Accounting Reversal Indicator
57382  , p_source_52            IN VARCHAR2
57383 --Business Flow Accounts Payable Application Identifier
57384  , p_source_54            IN NUMBER
57385 --Distribution Link Type
57386  , p_source_60            IN VARCHAR2
57387 --Override Accounted Amount Indicator
57391  , p_source_67            IN VARCHAR2
57388  , p_source_64            IN VARCHAR2
57389  , p_source_64_meaning    IN VARCHAR2
57390 --Third Party Type
57392 --Invoice Distribution Tax Line Identifier
57393  , p_source_69            IN NUMBER
57394 --Invoice Distribution Summary Tax Line Identifier
57395  , p_source_70            IN NUMBER
57396 --Invoice Distribution Tax Distribution Identifier from Tax
57397  , p_source_77            IN NUMBER
57398 --Prepayment Distribution Type
57399  , p_source_78            IN VARCHAR2
57400 --Recipient Invoice Distribution Type
57401  , p_source_79            IN VARCHAR2
57402  , p_source_79_meaning    IN VARCHAR2
57403 --Prepayment Application Distribution Identifier
57404  , p_source_82            IN NUMBER
57405 --Invoice Identifier
57406  , p_source_83            IN NUMBER
57407 --Business Flow Prepayment Invoice Distribution Type
57408  , p_source_84            IN VARCHAR2
57409 --Business Flow Prepayment Invoice Entity Code
57410  , p_source_85            IN VARCHAR2
57411 --Business Flow Prepayment Invoice Distribution Identifier
57412  , p_source_86            IN NUMBER
57413 --Business Flow Prepayment Invoice Identifier
57414  , p_source_87            IN NUMBER
57415 --Upgrade Encumbrance Credit Account Class
57416  , p_source_88            IN VARCHAR2
57417 --Payables Encumbrance Upgrade Credit Account
57418  , p_source_89            IN NUMBER
57419 --Payables Encumbrance Upgrade Credit Amount
57420  , p_source_90            IN NUMBER
57421 --Invoice Currency Code
57422  , p_source_91            IN VARCHAR2
57423 --Payables Encumbrance Upgrade Credit Base Amount
57424  , p_source_92            IN NUMBER
57425 --Upgrade Encumbrance Debit Account Class
57426  , p_source_93            IN VARCHAR2
57427 --Payables Encumbrance Upgrade Debit Account
57428  , p_source_94            IN NUMBER
57429 --Payables Encumbrance Upgrade Debit Amount
57430  , p_source_95            IN NUMBER
57431 --Payables Encumbrance Upgrade Debit Base Amount
57432  , p_source_96            IN NUMBER
57433 --Payables Encumbrance Upgrade Option
57434  , p_source_97            IN VARCHAR2
57435 --Prepayment Distribution Amount
57436  , p_source_98            IN NUMBER
57437 --Prepayment Clearing Currency Code
57438  , p_source_99            IN VARCHAR2
57439 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
57440  , p_source_100            IN NUMBER
57441 --Deferred Accounting End Date
57442  , p_source_101            IN DATE
57443 --Deferred Accounting Option
57444  , p_source_102            IN VARCHAR2
57445 --Deferred Accounting Start Date
57446  , p_source_103            IN DATE
57447 --Invoice Supplier Identifier
57448  , p_source_104            IN NUMBER
57449 --Invoice Supplier Site Identifier
57450  , p_source_105            IN NUMBER
57451 --Identifier of the Prepayment Application Reversed
57452  , p_source_106            IN NUMBER
57453 --Payables Upgrade Credit Encumbrance Type Identifier
57454  , p_source_107            IN NUMBER
57455 --Payables Upgrade Debit Encumbrance Type Identifier
57456  , p_source_108            IN NUMBER
57457 --Accrue on Receipt Option
57458  , p_source_111            IN VARCHAR2
57459  , p_source_111_meaning    IN VARCHAR2
57460 --Prepayment Clearing Exchange Date
57461  , p_source_125            IN DATE
57462 --Prepayment Clearing Exchange Rate
57463  , p_source_126            IN NUMBER
57464 --Prepayment Clearing Exchange Rate Type
57465  , p_source_127            IN VARCHAR2
57466 )
57467 IS
57468 
57469 l_component_type              VARCHAR2(80);
57470 l_component_code              VARCHAR2(30);
57471 l_component_type_code         VARCHAR2(1);
57472 l_component_appl_id           INTEGER;
57473 l_amb_context_code            VARCHAR2(30);
57474 l_entity_code                 VARCHAR2(30);
57475 l_event_class_code            VARCHAR2(30);
57476 l_ae_header_id                NUMBER;
57477 l_event_type_code             VARCHAR2(30);
57478 l_line_definition_code        VARCHAR2(30);
57479 l_line_definition_owner_code  VARCHAR2(1);
57480 --
57481 -- adr variables
57482 l_segment                     VARCHAR2(30);
57483 l_ccid                        NUMBER;
57484 l_adr_transaction_coa_id      NUMBER;
57485 l_adr_accounting_coa_id       NUMBER;
57486 l_adr_flexfield_segment_code  VARCHAR2(30);
57487 l_adr_flex_value_set_id       NUMBER;
57488 l_adr_value_type_code         VARCHAR2(30);
57489 l_adr_value_combination_id    NUMBER;
57490 l_adr_value_segment_code      VARCHAR2(30);
57491 
57492 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
57493 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
57494 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
57495 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
57496 
57497 -- 4262811 Variables ------------------------------------------------------------------------------------------
57498 l_entered_amt_idx             NUMBER;
57499 l_accted_amt_idx              NUMBER;
57500 l_acc_rev_flag                VARCHAR2(1);
57501 l_accrual_line_num            NUMBER;
57502 l_tmp_amt                     NUMBER;
57503 l_acc_rev_natural_side_code   VARCHAR2(1);
57504 
57505 l_num_entries                 NUMBER;
57506 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
57507 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
57508 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
57512 
57509 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
57510 l_recog_line_1                NUMBER;
57511 l_recog_line_2                NUMBER;
57513 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
57514 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
57515 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
57516 
57517 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
57518 
57519 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
57520 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
57521 
57522 ---------------------------------------------------------------------------------------------------------------
57523 
57524 
57525 --
57526 -- bulk performance
57527 --
57528 l_balance_type_code           VARCHAR2(1);
57529 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
57530 l_log_module                  VARCHAR2(240);
57531 
57532 --
57533 -- Upgrade strategy
57534 --
57535 l_actual_upg_option           VARCHAR2(1);
57536 l_enc_upg_option           VARCHAR2(1);
57537 
57538 --
57539 BEGIN
57540 --
57541 IF g_log_enabled THEN
57542       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_110';
57543 END IF;
57544 --
57545 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57546 
57547       trace
57548          (p_msg      => 'BEGIN of AcctLineType_110'
57549          ,p_level    => C_LEVEL_PROCEDURE
57550          ,p_module   => l_log_module);
57551 
57552 END IF;
57553 --
57554 l_component_type             := 'AMB_JLT';
57555 l_component_code             := 'AP_ITEM_PREPAY_CLR_RATE_APP';
57556 l_component_type_code        := 'S';
57557 l_component_appl_id          :=  200;
57558 l_amb_context_code           := 'DEFAULT';
57559 l_entity_code                := 'AP_INVOICES';
57560 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
57561 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
57562 l_line_definition_owner_code := 'S';
57563 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
57564 --
57565 l_balance_type_code          := 'A';
57566 l_segment                     := NULL;
57567 l_ccid                        := NULL;
57568 l_adr_transaction_coa_id      := NULL;
57569 l_adr_accounting_coa_id       := NULL;
57570 l_adr_flexfield_segment_code  := NULL;
57571 l_adr_flex_value_set_id       := NULL;
57572 l_adr_value_type_code         := NULL;
57573 l_adr_value_combination_id    := NULL;
57574 l_adr_value_segment_code      := NULL;
57575 
57576 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
57577 l_bflow_class_code           := '';    -- 4219869 Business Flow
57578 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
57579 l_budgetary_control_flag     := 'N';
57580 
57581 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
57582 l_bflow_applied_to_amt       := NULL; -- 5132302
57583 l_entered_amt_idx            := NULL;          -- 4262811
57584 l_accted_amt_idx             := NULL;          -- 4262811
57585 l_acc_rev_flag               := NULL;          -- 4262811
57586 l_accrual_line_num           := NULL;          -- 4262811
57587 l_tmp_amt                    := NULL;          -- 4262811
57588 --
57589  
57590 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57591     l_balance_type_code <> 'B' THEN
57592 IF NVL(p_source_50,'
57593 ') =  'CLEAR_CLEAR' AND 
57594 (NVL(p_source_78,'
57595 ') =  'PREPAY APPL' OR 
57596 NVL(p_source_78,'
57597 ') =  'PREPAY APPL NONREC TAX' OR 
57598 NVL(p_source_78,'
57599 ') =  'PREPAY APPL REC TAX') AND 
57600 (NVL(p_source_79,'
57601 ') =  'ITEM' OR 
57602 NVL(p_source_79,'
57603 ') =  'RETROEXPENSE' OR 
57604 NVL(p_source_79,'
57605 ') =  'ERV' AND 
57606 NVL(p_source_111,'
57607 ') <>  'Y' OR 
57608 NVL(p_source_79,'
57609 ') =  'IPV' AND 
57610 NVL(p_source_111,'
57611 ') <>  'Y')
57612  THEN 
57613 
57614    --
57615    XLA_AE_LINES_PKG.SetNewLine;
57616 
57617    p_balance_type_code          := l_balance_type_code;
57618    -- set the flag so later we will know whether the gain loss line needs to be created
57619    
57620    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57621      p_actual_flag :='A';
57622    END IF;
57623 
57624    --
57625    -- bulk performance
57626    --
57627    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57628                                       p_header_num   => 0); -- 4262811
57629    --
57630    -- set accounting line options
57631    --
57632    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57633            p_natural_side_code          => 'C'
57634          , p_gain_or_loss_flag          => 'N'
57635          , p_gl_transfer_mode_code      => 'S'
57636          , p_acct_entry_type_code       => 'A'
57637          , p_switch_side_flag           => 'Y'
57638          , p_merge_duplicate_code       => 'A'
57639          );
57640    --
57641    l_acc_rev_natural_side_code := 'D';  -- 4262811
57642    -- 
57643    --
57644    -- set accounting line type info
57645    --
57646    xla_ae_lines_pkg.SetAcctLineType
57647       (p_component_type             => l_component_type
57648       ,p_event_type_code            => l_event_type_code
57652       ,p_accounting_line_type_code  => l_component_type_code
57649       ,p_line_definition_owner_code => l_line_definition_owner_code
57650       ,p_line_definition_code       => l_line_definition_code
57651       ,p_accounting_line_code       => l_component_code
57653       ,p_accounting_line_appl_id    => l_component_appl_id
57654       ,p_amb_context_code           => l_amb_context_code
57655       ,p_entity_code                => l_entity_code
57656       ,p_event_class_code           => l_event_class_code);
57657    --
57658    -- set accounting class
57659    --
57660    xla_ae_lines_pkg.SetAcctClass(
57661            p_accounting_class_code  => 'ITEM EXPENSE'
57662          , p_ae_header_id           => l_ae_header_id
57663          );
57664 
57665    --
57666    -- set rounding class
57667    --
57668    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57669                       'ITEM EXPENSE';
57670 
57671    --
57672    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57673    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57674    --
57675    -- bulk performance
57676    --
57677    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57678 
57679    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57680       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57681 
57682    -- 4955764
57683    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57684       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57685 
57686    -- 4458381 Public Sector Enh
57687    
57688    --
57689    -- set accounting attributes for the line type
57690    --
57691    l_entered_amt_idx := 25;
57692    l_accted_amt_idx  := 30;
57693    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
57694    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57695    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
57696    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
57697    l_rec_acct_attrs.array_num_value(2)  := 
57698 xla_ae_sources_pkg.GetSystemSourceNum(
57699    p_source_code           => 'XLA_EVENT_APPL_ID'
57700  , p_source_type_code      => 'Y'
57701  , p_source_application_id =>  602
57702 );
57703    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
57704    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
57705    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
57706    l_rec_acct_attrs.array_char_value(4)  := 
57707 xla_ae_sources_pkg.GetSystemSourceChar(
57708    p_source_code           => 'XLA_ENTITY_CODE'
57709  , p_source_type_code      => 'Y'
57710  , p_source_application_id =>  602
57711 );
57712    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
57713    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
57714    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
57715    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
57716    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
57717    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
57718    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57719    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
57720    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
57721    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
57722    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
57723    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
57724    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57725    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
57726    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
57727    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
57728    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
57729    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
57730    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
57731    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
57732    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
57733    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
57734    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
57735    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
57736    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
57737    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
57738    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
57739    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
57740    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
57741    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
57742    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
57743    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
57744    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
57745    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
57746    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
57747    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
57748    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
57749    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
57750    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
57754    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
57751    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
57752    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
57753    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
57755    l_rec_acct_attrs.array_char_value(26)  := p_source_99;
57756    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
57757    l_rec_acct_attrs.array_date_value(27)  := p_source_125;
57758    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
57759    l_rec_acct_attrs.array_num_value(28)  := p_source_126;
57760    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
57761    l_rec_acct_attrs.array_char_value(29)  := p_source_127;
57762    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
57763    l_rec_acct_attrs.array_num_value(30)  := p_source_100;
57764    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
57765    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
57766    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
57767    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
57768    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
57769    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
57770    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
57771    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
57772    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
57773    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
57774    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
57775    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
57776    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
57777    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
57778    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
57779    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
57780    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
57781    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
57782    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
57783    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
57784    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
57785    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
57786    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
57787    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
57788    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
57789    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
57790    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
57791    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
57792 
57793    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57794    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57795 
57796    ---------------------------------------------------------------------------------------------------------------
57797    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57798    ---------------------------------------------------------------------------------------------------------------
57799    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57800 
57801    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57802    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57803 
57804    IF xla_accounting_cache_pkg.GetValueChar
57805          (p_source_code         => 'LEDGER_CATEGORY_CODE'
57806          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57807    AND l_bflow_method_code = 'PRIOR_ENTRY'
57808 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57809    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57810          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57811        )
57812    THEN
57813          xla_ae_lines_pkg.BflowUpgEntry
57814            (p_business_method_code    => l_bflow_method_code
57815            ,p_business_class_code     => l_bflow_class_code
57816            ,p_balance_type            => l_balance_type_code);
57817    ELSE
57818       NULL;
57819 -- No business flow processing for business flow method of NONE.
57820    END IF;
57821 
57822    --
57823    -- call analytical criteria
57824    --
57825    
57826    --
57827    -- call description
57828    --
57829    -- No description or it is inherited.
57830    --
57831    -- call ADRs
57832    -- Bug 4922099
57833    --
57834    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57835         (NVL(l_actual_upg_option, 'N') = 'O') OR
57836         (NVL(l_enc_upg_option, 'N') = 'O')
57837       )
57838    THEN
57839    NULL;
57840    --
57841    --
57842    
57843   l_ccid := AcctDerRule_35(
57844            p_application_id           => p_application_id
57845          , p_ae_header_id             => l_ae_header_id 
57846 , p_source_48 => p_source_48
57847          , x_transaction_coa_id       => l_adr_transaction_coa_id
57848          , x_accounting_coa_id        => l_adr_accounting_coa_id
57849          , x_value_type_code          => l_adr_value_type_code
57850          , p_side                     => 'NA'
57851    );
57852 
57853    xla_ae_lines_pkg.set_ccid(
57854     p_code_combination_id          => l_ccid
57855   , p_value_type_code              => l_adr_value_type_code
57859   , p_adr_type_code                => 'S'
57856   , p_transaction_coa_id           => l_adr_transaction_coa_id
57857   , p_accounting_coa_id            => l_adr_accounting_coa_id
57858   , p_adr_code                     => 'AP_RECP_INV_DIST'
57860   , p_component_type               => l_component_type
57861   , p_component_code               => l_component_code
57862   , p_component_type_code          => l_component_type_code
57863   , p_component_appl_id            => l_component_appl_id
57864   , p_amb_context_code             => l_amb_context_code
57865   , p_side                         => 'NA'
57866   );
57867 
57868 
57869    --
57870    --
57871    END IF;
57872    --
57873    -- Bug 4922099
57874    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57875           (NVL(l_enc_upg_option, 'N') = 'O')
57876         ) AND
57877         (l_bflow_method_code = 'PRIOR_ENTRY')
57878       )
57879    THEN
57880       IF
57881       --
57882       1 = 2
57883       --
57884       THEN
57885       xla_accounting_err_pkg.build_message
57886                                     (p_appli_s_name            => 'XLA'
57887                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57888                                     ,p_token_1                 => 'LINE_NUMBER'
57889                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
57890                                     ,p_token_2                 => 'LINE_TYPE_NAME'
57891                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
57892                                                                              l_component_type
57893                                                                             ,l_component_code
57894                                                                             ,l_component_type_code
57895                                                                             ,l_component_appl_id
57896                                                                             ,l_amb_context_code
57897                                                                             ,l_entity_code
57898                                                                             ,l_event_class_code
57899                                                                            )
57900                                     ,p_token_3                 => 'OWNER'
57901                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
57902                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
57903                                                                           ,p_lookup_code    => l_component_type_code
57904                                                                          )
57905                                     ,p_token_4                 => 'PRODUCT_NAME'
57906                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57907                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57908                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57909                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57910                                     ,p_ae_header_id            =>  NULL
57911                                        );
57912 
57913         IF (C_LEVEL_ERROR>= g_log_level) THEN
57914                  trace
57915                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57916                       ,p_level    => C_LEVEL_ERROR
57917                       ,p_module   => l_log_module);
57918         END IF;
57919       END IF;
57920    END IF;
57921    --
57922    --
57923    ------------------------------------------------------------------------------------------------
57924    -- 4219869 Business Flow
57925    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57926    -- Prior Entry.  Currently, the following code is always generated.
57927    ------------------------------------------------------------------------------------------------
57928    XLA_AE_LINES_PKG.ValidateCurrentLine;
57929 
57930    ------------------------------------------------------------------------------------
57931    -- 4219869 Business Flow
57932    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57933    ------------------------------------------------------------------------------------
57934    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57935 
57936    ----------------------------------------------------------------------------------
57937    -- 4219869 Business Flow
57938    -- Update journal entry status -- Need to generate this within IF <condition>
57939    ----------------------------------------------------------------------------------
57940    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57941          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57942          ,p_balance_type_code => l_balance_type_code
57943          );
57944 
57945    -------------------------------------------------------------------------------------------
57946    -- 4262811 - Generate the Accrual Reversal lines
57947    -------------------------------------------------------------------------------------------
57948    BEGIN
57949       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57953       END IF;
57950                               (g_array_event(p_event_id).array_value_num('header_index'));
57951       IF l_acc_rev_flag IS NULL THEN
57952          l_acc_rev_flag := 'N';
57954    EXCEPTION
57955       WHEN OTHERS THEN
57956          l_acc_rev_flag := 'N';
57957    END;
57958    --
57959    IF (l_acc_rev_flag = 'Y') THEN
57960 
57961        -- 4645092  ------------------------------------------------------------------------------
57962        -- To allow MPA report to determine if it should generate report process
57963        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57964        ------------------------------------------------------------------------------------------
57965 
57966        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57967        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57968    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
57969    -- call ADRs
57970    -- Bug 4922099
57971    --
57972    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57973         (NVL(l_actual_upg_option, 'N') = 'O') OR
57974         (NVL(l_enc_upg_option, 'N') = 'O')
57975       )
57976    THEN
57977    NULL;
57978    --
57979    --
57980    
57981   l_ccid := AcctDerRule_35(
57982            p_application_id           => p_application_id
57983          , p_ae_header_id             => l_ae_header_id 
57984 , p_source_48 => p_source_48
57985          , x_transaction_coa_id       => l_adr_transaction_coa_id
57986          , x_accounting_coa_id        => l_adr_accounting_coa_id
57987          , x_value_type_code          => l_adr_value_type_code
57988          , p_side                     => 'NA'
57989    );
57990 
57991    xla_ae_lines_pkg.set_ccid(
57992     p_code_combination_id          => l_ccid
57993   , p_value_type_code              => l_adr_value_type_code
57994   , p_transaction_coa_id           => l_adr_transaction_coa_id
57995   , p_accounting_coa_id            => l_adr_accounting_coa_id
57996   , p_adr_code                     => 'AP_RECP_INV_DIST'
57997   , p_adr_type_code                => 'S'
57998   , p_component_type               => l_component_type
57999   , p_component_code               => l_component_code
58000   , p_component_type_code          => l_component_type_code
58001   , p_component_appl_id            => l_component_appl_id
58002   , p_amb_context_code             => l_amb_context_code
58003   , p_side                         => 'NA'
58004   );
58005 
58006 
58007    --
58008    --
58009    END IF;
58010 
58011        --
58012        -- Update the line information that should be overwritten
58013        --
58014        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58015                                          p_header_num   => 1);
58016        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
58017 
58018        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58019 
58020        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
58021           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58022        END IF;
58023 
58024       --
58025       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58026       --
58027       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58028           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
58029       ELSE
58030           ---------------------------------------------------------------------------------------------------
58031           -- 4262811a Switch Sign
58032           ---------------------------------------------------------------------------------------------------
58033           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
58034           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58035                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58036           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58037                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58038           -- 5132302
58039           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58040                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58041 
58042       END IF;
58043 
58044       -- 4955764
58045       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58046       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58047 
58048 
58049       XLA_AE_LINES_PKG.ValidateCurrentLine;
58050       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58051 
58052       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58053                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58054                ,p_balance_type_code => l_balance_type_code);
58055 
58056    END IF;
58057 
58058    -----------------------------------------------------------------------------------------
58059    -- 4262811 Multiperiod Accounting
58063 
58060    -----------------------------------------------------------------------------------------
58061      -- No MPA option is assigned.
58062 
58064 END IF;
58065 END IF;
58066 --
58067 
58068 --
58069 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58070    trace
58071       (p_msg      => 'END of AcctLineType_110'
58072       ,p_level    => C_LEVEL_PROCEDURE
58073       ,p_module   => l_log_module);
58074 END IF;
58075 --
58076 EXCEPTION
58077   WHEN xla_exceptions_pkg.application_exception THEN
58078       RAISE;
58079   WHEN OTHERS THEN
58080        xla_exceptions_pkg.raise_message
58081            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_110');
58082 END AcctLineType_110;
58083 --
58084 
58085 ---------------------------------------
58086 --
58087 -- PRIVATE FUNCTION
58088 --         AcctLineType_111
58089 --
58090 ---------------------------------------
58091 PROCEDURE AcctLineType_111 (
58092   p_application_id        IN NUMBER
58093  ,p_event_id              IN NUMBER
58094  ,p_calculate_acctd_flag  IN VARCHAR2
58095  ,p_calculate_g_l_flag    IN VARCHAR2
58096  ,p_actual_flag           IN OUT VARCHAR2
58097  ,p_balance_type_code     OUT VARCHAR2
58098  ,p_gain_or_loss_ref      OUT VARCHAR2
58099  
58100 --Recipient Invoice Distribution Account
58101  , p_source_48            IN NUMBER
58102 --When to Account for Payment Option
58103  , p_source_50            IN VARCHAR2
58104 --Accounting Reversal Indicator
58105  , p_source_52            IN VARCHAR2
58106 --Business Flow Accounts Payable Application Identifier
58107  , p_source_54            IN NUMBER
58108 --Distribution Link Type
58109  , p_source_60            IN VARCHAR2
58110 --Override Accounted Amount Indicator
58111  , p_source_64            IN VARCHAR2
58112  , p_source_64_meaning    IN VARCHAR2
58113 --Third Party Type
58114  , p_source_67            IN VARCHAR2
58115 --Invoice Distribution Tax Line Identifier
58116  , p_source_69            IN NUMBER
58117 --Invoice Distribution Summary Tax Line Identifier
58118  , p_source_70            IN NUMBER
58119 --Invoice Distribution Tax Distribution Identifier from Tax
58120  , p_source_77            IN NUMBER
58121 --Prepayment Distribution Type
58122  , p_source_78            IN VARCHAR2
58123 --Recipient Invoice Distribution Type
58124  , p_source_79            IN VARCHAR2
58125  , p_source_79_meaning    IN VARCHAR2
58126 --Prepayment Application Distribution Identifier
58127  , p_source_82            IN NUMBER
58128 --Invoice Identifier
58129  , p_source_83            IN NUMBER
58130 --Business Flow Prepayment Invoice Distribution Type
58131  , p_source_84            IN VARCHAR2
58132 --Business Flow Prepayment Invoice Entity Code
58133  , p_source_85            IN VARCHAR2
58134 --Business Flow Prepayment Invoice Distribution Identifier
58135  , p_source_86            IN NUMBER
58136 --Business Flow Prepayment Invoice Identifier
58137  , p_source_87            IN NUMBER
58138 --Upgrade Encumbrance Credit Account Class
58139  , p_source_88            IN VARCHAR2
58140 --Payables Encumbrance Upgrade Credit Account
58141  , p_source_89            IN NUMBER
58142 --Payables Encumbrance Upgrade Credit Amount
58143  , p_source_90            IN NUMBER
58144 --Invoice Currency Code
58145  , p_source_91            IN VARCHAR2
58146 --Payables Encumbrance Upgrade Credit Base Amount
58147  , p_source_92            IN NUMBER
58148 --Upgrade Encumbrance Debit Account Class
58149  , p_source_93            IN VARCHAR2
58150 --Payables Encumbrance Upgrade Debit Account
58151  , p_source_94            IN NUMBER
58152 --Payables Encumbrance Upgrade Debit Amount
58153  , p_source_95            IN NUMBER
58154 --Payables Encumbrance Upgrade Debit Base Amount
58155  , p_source_96            IN NUMBER
58156 --Payables Encumbrance Upgrade Option
58157  , p_source_97            IN VARCHAR2
58158 --Prepayment Distribution Amount
58159  , p_source_98            IN NUMBER
58160 --Deferred Accounting End Date
58161  , p_source_101            IN DATE
58162 --Deferred Accounting Option
58163  , p_source_102            IN VARCHAR2
58164 --Deferred Accounting Start Date
58165  , p_source_103            IN DATE
58166 --Invoice Supplier Identifier
58167  , p_source_104            IN NUMBER
58168 --Invoice Supplier Site Identifier
58169  , p_source_105            IN NUMBER
58170 --Identifier of the Prepayment Application Reversed
58171  , p_source_106            IN NUMBER
58172 --Payables Upgrade Credit Encumbrance Type Identifier
58173  , p_source_107            IN NUMBER
58174 --Payables Upgrade Debit Encumbrance Type Identifier
58175  , p_source_108            IN NUMBER
58176 --Prepayment Payment Currency Code
58177  , p_source_109            IN VARCHAR2
58178 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
58179  , p_source_110            IN NUMBER
58180 --Accrue on Receipt Option
58181  , p_source_111            IN VARCHAR2
58182  , p_source_111_meaning    IN VARCHAR2
58183 --Prepayment Payment Exchange Date
58184  , p_source_128            IN DATE
58185 --Prepayment Payment Exchange Rate
58186  , p_source_129            IN NUMBER
58187 --Prepayment Payment Exchange Rate Type
58188  , p_source_130            IN VARCHAR2
58189 )
58190 IS
58191 
58192 l_component_type              VARCHAR2(80);
58193 l_component_code              VARCHAR2(30);
58194 l_component_type_code         VARCHAR2(1);
58195 l_component_appl_id           INTEGER;
58199 l_ae_header_id                NUMBER;
58196 l_amb_context_code            VARCHAR2(30);
58197 l_entity_code                 VARCHAR2(30);
58198 l_event_class_code            VARCHAR2(30);
58200 l_event_type_code             VARCHAR2(30);
58201 l_line_definition_code        VARCHAR2(30);
58202 l_line_definition_owner_code  VARCHAR2(1);
58203 --
58204 -- adr variables
58205 l_segment                     VARCHAR2(30);
58206 l_ccid                        NUMBER;
58207 l_adr_transaction_coa_id      NUMBER;
58208 l_adr_accounting_coa_id       NUMBER;
58209 l_adr_flexfield_segment_code  VARCHAR2(30);
58210 l_adr_flex_value_set_id       NUMBER;
58211 l_adr_value_type_code         VARCHAR2(30);
58212 l_adr_value_combination_id    NUMBER;
58213 l_adr_value_segment_code      VARCHAR2(30);
58214 
58215 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
58216 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
58217 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
58218 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
58219 
58220 -- 4262811 Variables ------------------------------------------------------------------------------------------
58221 l_entered_amt_idx             NUMBER;
58222 l_accted_amt_idx              NUMBER;
58223 l_acc_rev_flag                VARCHAR2(1);
58224 l_accrual_line_num            NUMBER;
58225 l_tmp_amt                     NUMBER;
58226 l_acc_rev_natural_side_code   VARCHAR2(1);
58227 
58228 l_num_entries                 NUMBER;
58229 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
58230 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
58231 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
58232 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
58233 l_recog_line_1                NUMBER;
58234 l_recog_line_2                NUMBER;
58235 
58236 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
58237 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
58238 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
58239 
58240 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58241 
58242 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
58243 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
58244 
58245 ---------------------------------------------------------------------------------------------------------------
58246 
58247 
58248 --
58249 -- bulk performance
58250 --
58251 l_balance_type_code           VARCHAR2(1);
58252 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
58253 l_log_module                  VARCHAR2(240);
58254 
58255 --
58256 -- Upgrade strategy
58257 --
58258 l_actual_upg_option           VARCHAR2(1);
58259 l_enc_upg_option           VARCHAR2(1);
58260 
58261 --
58262 BEGIN
58263 --
58264 IF g_log_enabled THEN
58265       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_111';
58266 END IF;
58267 --
58268 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58269 
58270       trace
58271          (p_msg      => 'BEGIN of AcctLineType_111'
58272          ,p_level    => C_LEVEL_PROCEDURE
58273          ,p_module   => l_log_module);
58274 
58275 END IF;
58276 --
58277 l_component_type             := 'AMB_JLT';
58278 l_component_code             := 'AP_ITEM_PREPAY_PAY_RATE_APP';
58279 l_component_type_code        := 'S';
58280 l_component_appl_id          :=  200;
58281 l_amb_context_code           := 'DEFAULT';
58282 l_entity_code                := 'AP_INVOICES';
58283 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
58284 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
58285 l_line_definition_owner_code := 'S';
58286 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
58287 --
58288 l_balance_type_code          := 'A';
58289 l_segment                     := NULL;
58290 l_ccid                        := NULL;
58291 l_adr_transaction_coa_id      := NULL;
58292 l_adr_accounting_coa_id       := NULL;
58293 l_adr_flexfield_segment_code  := NULL;
58294 l_adr_flex_value_set_id       := NULL;
58295 l_adr_value_type_code         := NULL;
58296 l_adr_value_combination_id    := NULL;
58297 l_adr_value_segment_code      := NULL;
58298 
58299 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
58300 l_bflow_class_code           := '';    -- 4219869 Business Flow
58301 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
58302 l_budgetary_control_flag     := 'N';
58303 
58304 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
58305 l_bflow_applied_to_amt       := NULL; -- 5132302
58306 l_entered_amt_idx            := NULL;          -- 4262811
58307 l_accted_amt_idx             := NULL;          -- 4262811
58308 l_acc_rev_flag               := NULL;          -- 4262811
58309 l_accrual_line_num           := NULL;          -- 4262811
58310 l_tmp_amt                    := NULL;          -- 4262811
58311 --
58312  
58313 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58314     l_balance_type_code <> 'B' THEN
58315 IF NVL(p_source_50,'
58316 ') <>  'CLEAR_CLEAR' AND 
58317 (NVL(p_source_78,'
58318 ') =  'PREPAY APPL' OR 
58319 NVL(p_source_78,'
58320 ') =  'PREPAY APPL NONREC TAX' OR 
58321 NVL(p_source_78,'
58322 ') =  'PREPAY APPL REC TAX') AND 
58323 (NVL(p_source_79,'
58327 NVL(p_source_79,'
58324 ') =  'ITEM' OR 
58325 NVL(p_source_79,'
58326 ') =  'RETROEXPENSE' OR 
58328 ') =  'ERV' AND 
58329 NVL(p_source_111,'
58330 ') <>  'Y' OR 
58331 NVL(p_source_79,'
58332 ') =  'IPV' AND 
58333 NVL(p_source_111,'
58334 ') <>  'Y')
58335  THEN 
58336 
58337    --
58338    XLA_AE_LINES_PKG.SetNewLine;
58339 
58340    p_balance_type_code          := l_balance_type_code;
58341    -- set the flag so later we will know whether the gain loss line needs to be created
58342    
58343    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58344      p_actual_flag :='A';
58345    END IF;
58346 
58347    --
58348    -- bulk performance
58349    --
58350    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58351                                       p_header_num   => 0); -- 4262811
58352    --
58353    -- set accounting line options
58354    --
58355    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58356            p_natural_side_code          => 'C'
58357          , p_gain_or_loss_flag          => 'N'
58358          , p_gl_transfer_mode_code      => 'S'
58359          , p_acct_entry_type_code       => 'A'
58360          , p_switch_side_flag           => 'Y'
58361          , p_merge_duplicate_code       => 'A'
58362          );
58363    --
58364    l_acc_rev_natural_side_code := 'D';  -- 4262811
58365    -- 
58366    --
58367    -- set accounting line type info
58368    --
58369    xla_ae_lines_pkg.SetAcctLineType
58370       (p_component_type             => l_component_type
58371       ,p_event_type_code            => l_event_type_code
58372       ,p_line_definition_owner_code => l_line_definition_owner_code
58373       ,p_line_definition_code       => l_line_definition_code
58374       ,p_accounting_line_code       => l_component_code
58375       ,p_accounting_line_type_code  => l_component_type_code
58376       ,p_accounting_line_appl_id    => l_component_appl_id
58377       ,p_amb_context_code           => l_amb_context_code
58378       ,p_entity_code                => l_entity_code
58379       ,p_event_class_code           => l_event_class_code);
58380    --
58381    -- set accounting class
58382    --
58383    xla_ae_lines_pkg.SetAcctClass(
58384            p_accounting_class_code  => 'ITEM EXPENSE'
58385          , p_ae_header_id           => l_ae_header_id
58386          );
58387 
58388    --
58389    -- set rounding class
58390    --
58391    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58392                       'ITEM EXPENSE';
58393 
58394    --
58395    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58396    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58397    --
58398    -- bulk performance
58399    --
58400    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58401 
58402    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58403       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58404 
58405    -- 4955764
58406    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58407       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58408 
58409    -- 4458381 Public Sector Enh
58410    
58411    --
58412    -- set accounting attributes for the line type
58413    --
58414    l_entered_amt_idx := 25;
58415    l_accted_amt_idx  := 30;
58416    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
58417    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
58418    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
58419    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
58420    l_rec_acct_attrs.array_num_value(2)  := 
58421 xla_ae_sources_pkg.GetSystemSourceNum(
58422    p_source_code           => 'XLA_EVENT_APPL_ID'
58423  , p_source_type_code      => 'Y'
58424  , p_source_application_id =>  602
58425 );
58426    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
58427    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
58428    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
58429    l_rec_acct_attrs.array_char_value(4)  := 
58430 xla_ae_sources_pkg.GetSystemSourceChar(
58431    p_source_code           => 'XLA_ENTITY_CODE'
58432  , p_source_type_code      => 'Y'
58433  , p_source_application_id =>  602
58434 );
58435    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
58436    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
58437    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
58438    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
58439    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
58440    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
58441    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58442    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
58443    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
58444    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
58445    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
58446    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
58447    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58451    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
58448    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
58449    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
58450    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
58452    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
58453    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
58454    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
58455    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
58456    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
58457    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
58458    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
58459    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
58460    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
58461    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
58462    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
58463    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
58464    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
58465    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
58466    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
58467    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
58468    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
58469    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
58470    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
58471    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
58472    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
58473    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
58474    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
58475    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
58476    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
58477    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
58478    l_rec_acct_attrs.array_char_value(26)  := p_source_109;
58479    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
58480    l_rec_acct_attrs.array_date_value(27)  := p_source_128;
58481    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
58482    l_rec_acct_attrs.array_num_value(28)  := p_source_129;
58483    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
58484    l_rec_acct_attrs.array_char_value(29)  := p_source_130;
58485    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
58486    l_rec_acct_attrs.array_num_value(30)  := p_source_110;
58487    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
58488    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
58489    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
58490    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
58491    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
58492    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
58493    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
58494    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
58495    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
58496    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
58497    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
58498    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
58499    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
58500    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
58501    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
58502    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
58503    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
58504    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
58505    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
58506    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
58507    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
58508    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
58509    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
58510    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
58511    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
58512    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
58513    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
58514    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
58515 
58516    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58517    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58518 
58519    ---------------------------------------------------------------------------------------------------------------
58520    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58521    ---------------------------------------------------------------------------------------------------------------
58522    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58523 
58524    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58525    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58526 
58527    IF xla_accounting_cache_pkg.GetValueChar
58528          (p_source_code         => 'LEDGER_CATEGORY_CODE'
58532    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58529          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58530    AND l_bflow_method_code = 'PRIOR_ENTRY'
58531 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58533          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58534        )
58535    THEN
58536          xla_ae_lines_pkg.BflowUpgEntry
58537            (p_business_method_code    => l_bflow_method_code
58538            ,p_business_class_code     => l_bflow_class_code
58539            ,p_balance_type            => l_balance_type_code);
58540    ELSE
58541       NULL;
58542 -- No business flow processing for business flow method of NONE.
58543    END IF;
58544 
58545    --
58546    -- call analytical criteria
58547    --
58548    
58549    --
58550    -- call description
58551    --
58552    -- No description or it is inherited.
58553    --
58554    -- call ADRs
58555    -- Bug 4922099
58556    --
58557    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58558         (NVL(l_actual_upg_option, 'N') = 'O') OR
58559         (NVL(l_enc_upg_option, 'N') = 'O')
58560       )
58561    THEN
58562    NULL;
58563    --
58564    --
58565    
58566   l_ccid := AcctDerRule_35(
58567            p_application_id           => p_application_id
58568          , p_ae_header_id             => l_ae_header_id 
58569 , p_source_48 => p_source_48
58570          , x_transaction_coa_id       => l_adr_transaction_coa_id
58571          , x_accounting_coa_id        => l_adr_accounting_coa_id
58572          , x_value_type_code          => l_adr_value_type_code
58573          , p_side                     => 'NA'
58574    );
58575 
58576    xla_ae_lines_pkg.set_ccid(
58577     p_code_combination_id          => l_ccid
58578   , p_value_type_code              => l_adr_value_type_code
58579   , p_transaction_coa_id           => l_adr_transaction_coa_id
58580   , p_accounting_coa_id            => l_adr_accounting_coa_id
58581   , p_adr_code                     => 'AP_RECP_INV_DIST'
58582   , p_adr_type_code                => 'S'
58583   , p_component_type               => l_component_type
58584   , p_component_code               => l_component_code
58585   , p_component_type_code          => l_component_type_code
58586   , p_component_appl_id            => l_component_appl_id
58587   , p_amb_context_code             => l_amb_context_code
58588   , p_side                         => 'NA'
58589   );
58590 
58591 
58592    --
58593    --
58594    END IF;
58595    --
58596    -- Bug 4922099
58597    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58598           (NVL(l_enc_upg_option, 'N') = 'O')
58599         ) AND
58600         (l_bflow_method_code = 'PRIOR_ENTRY')
58601       )
58602    THEN
58603       IF
58604       --
58605       1 = 2
58606       --
58607       THEN
58608       xla_accounting_err_pkg.build_message
58609                                     (p_appli_s_name            => 'XLA'
58610                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58611                                     ,p_token_1                 => 'LINE_NUMBER'
58612                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
58613                                     ,p_token_2                 => 'LINE_TYPE_NAME'
58614                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
58615                                                                              l_component_type
58616                                                                             ,l_component_code
58617                                                                             ,l_component_type_code
58618                                                                             ,l_component_appl_id
58619                                                                             ,l_amb_context_code
58620                                                                             ,l_entity_code
58621                                                                             ,l_event_class_code
58622                                                                            )
58623                                     ,p_token_3                 => 'OWNER'
58624                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
58625                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
58626                                                                           ,p_lookup_code    => l_component_type_code
58627                                                                          )
58628                                     ,p_token_4                 => 'PRODUCT_NAME'
58629                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58630                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58631                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58632                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58633                                     ,p_ae_header_id            =>  NULL
58634                                        );
58635 
58636         IF (C_LEVEL_ERROR>= g_log_level) THEN
58637                  trace
58641         END IF;
58638                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58639                       ,p_level    => C_LEVEL_ERROR
58640                       ,p_module   => l_log_module);
58642       END IF;
58643    END IF;
58644    --
58645    --
58646    ------------------------------------------------------------------------------------------------
58647    -- 4219869 Business Flow
58648    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58649    -- Prior Entry.  Currently, the following code is always generated.
58650    ------------------------------------------------------------------------------------------------
58651    XLA_AE_LINES_PKG.ValidateCurrentLine;
58652 
58653    ------------------------------------------------------------------------------------
58654    -- 4219869 Business Flow
58655    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58656    ------------------------------------------------------------------------------------
58657    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58658 
58659    ----------------------------------------------------------------------------------
58660    -- 4219869 Business Flow
58661    -- Update journal entry status -- Need to generate this within IF <condition>
58662    ----------------------------------------------------------------------------------
58663    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58664          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58665          ,p_balance_type_code => l_balance_type_code
58666          );
58667 
58668    -------------------------------------------------------------------------------------------
58669    -- 4262811 - Generate the Accrual Reversal lines
58670    -------------------------------------------------------------------------------------------
58671    BEGIN
58672       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58673                               (g_array_event(p_event_id).array_value_num('header_index'));
58674       IF l_acc_rev_flag IS NULL THEN
58675          l_acc_rev_flag := 'N';
58676       END IF;
58677    EXCEPTION
58678       WHEN OTHERS THEN
58679          l_acc_rev_flag := 'N';
58680    END;
58681    --
58682    IF (l_acc_rev_flag = 'Y') THEN
58683 
58684        -- 4645092  ------------------------------------------------------------------------------
58685        -- To allow MPA report to determine if it should generate report process
58686        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58687        ------------------------------------------------------------------------------------------
58688 
58689        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58690        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58691    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
58692    -- call ADRs
58693    -- Bug 4922099
58694    --
58695    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58696         (NVL(l_actual_upg_option, 'N') = 'O') OR
58697         (NVL(l_enc_upg_option, 'N') = 'O')
58698       )
58699    THEN
58700    NULL;
58701    --
58702    --
58703    
58704   l_ccid := AcctDerRule_35(
58705            p_application_id           => p_application_id
58706          , p_ae_header_id             => l_ae_header_id 
58707 , p_source_48 => p_source_48
58708          , x_transaction_coa_id       => l_adr_transaction_coa_id
58709          , x_accounting_coa_id        => l_adr_accounting_coa_id
58710          , x_value_type_code          => l_adr_value_type_code
58711          , p_side                     => 'NA'
58712    );
58713 
58714    xla_ae_lines_pkg.set_ccid(
58715     p_code_combination_id          => l_ccid
58716   , p_value_type_code              => l_adr_value_type_code
58717   , p_transaction_coa_id           => l_adr_transaction_coa_id
58718   , p_accounting_coa_id            => l_adr_accounting_coa_id
58719   , p_adr_code                     => 'AP_RECP_INV_DIST'
58720   , p_adr_type_code                => 'S'
58721   , p_component_type               => l_component_type
58722   , p_component_code               => l_component_code
58723   , p_component_type_code          => l_component_type_code
58724   , p_component_appl_id            => l_component_appl_id
58725   , p_amb_context_code             => l_amb_context_code
58726   , p_side                         => 'NA'
58727   );
58728 
58729 
58730    --
58731    --
58732    END IF;
58733 
58734        --
58735        -- Update the line information that should be overwritten
58736        --
58737        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58738                                          p_header_num   => 1);
58739        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
58740 
58741        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58742 
58743        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
58744           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58745        END IF;
58746 
58747       --
58748       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58749       --
58750       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58754           -- 4262811a Switch Sign
58751           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
58752       ELSE
58753           ---------------------------------------------------------------------------------------------------
58755           ---------------------------------------------------------------------------------------------------
58756           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
58757           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58758                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58759           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58760                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58761           -- 5132302
58762           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58763                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58764 
58765       END IF;
58766 
58767       -- 4955764
58768       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58769       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58770 
58771 
58772       XLA_AE_LINES_PKG.ValidateCurrentLine;
58773       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58774 
58775       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58776                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58777                ,p_balance_type_code => l_balance_type_code);
58778 
58779    END IF;
58780 
58781    -----------------------------------------------------------------------------------------
58782    -- 4262811 Multiperiod Accounting
58783    -----------------------------------------------------------------------------------------
58784      -- No MPA option is assigned.
58785 
58786 
58787 END IF;
58788 END IF;
58789 --
58790 
58791 --
58792 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58793    trace
58794       (p_msg      => 'END of AcctLineType_111'
58795       ,p_level    => C_LEVEL_PROCEDURE
58796       ,p_module   => l_log_module);
58797 END IF;
58798 --
58799 EXCEPTION
58800   WHEN xla_exceptions_pkg.application_exception THEN
58801       RAISE;
58802   WHEN OTHERS THEN
58803        xla_exceptions_pkg.raise_message
58804            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_111');
58805 END AcctLineType_111;
58806 --
58807 
58808 ---------------------------------------
58809 --
58810 -- PRIVATE FUNCTION
58811 --         AcctLineType_112
58812 --
58813 ---------------------------------------
58814 PROCEDURE AcctLineType_112 (
58815   p_application_id        IN NUMBER
58816  ,p_event_id              IN NUMBER
58817  ,p_calculate_acctd_flag  IN VARCHAR2
58818  ,p_calculate_g_l_flag    IN VARCHAR2
58819  ,p_actual_flag           IN OUT VARCHAR2
58820  ,p_balance_type_code     OUT VARCHAR2
58821  ,p_gain_or_loss_ref      OUT VARCHAR2
58822  
58823 --Payment Currency Code
58824  , p_source_12            IN VARCHAR2
58825 --Automatic Offsets Value
58826  , p_source_16            IN VARCHAR2
58827  , p_source_16_meaning    IN VARCHAR2
58828 --Invoice Distribution Account
58829  , p_source_29            IN NUMBER
58830 --Internal Realized Loss Account
58831  , p_source_46            IN NUMBER
58832 --Bank Loss Account
58833  , p_source_47            IN NUMBER
58834 --When to Account for Payment Option
58835  , p_source_50            IN VARCHAR2
58836 --Payment Distribution Type
58837  , p_source_51            IN VARCHAR2
58838  , p_source_51_meaning    IN VARCHAR2
58839 --Accounting Reversal Indicator
58840  , p_source_52            IN VARCHAR2
58841 --Payment Distribution Amount
58842  , p_source_53            IN NUMBER
58843 --Business Flow Accounts Payable Application Identifier
58844  , p_source_54            IN NUMBER
58845 --Business Flow Payment Distribution Type
58846  , p_source_55            IN VARCHAR2
58847 --Business Flow Payment Entity Code
58848  , p_source_56            IN VARCHAR2
58849 --Business Flow Payment Distribution Identifier
58850  , p_source_57            IN NUMBER
58851 --Business Flow Payment Identifier
58852  , p_source_58            IN NUMBER
58853 --Payment Distribution Identifier
58854  , p_source_59            IN NUMBER
58855 --Distribution Link Type
58856  , p_source_60            IN VARCHAR2
58857 --Override Accounted Amount Indicator
58858  , p_source_64            IN VARCHAR2
58859  , p_source_64_meaning    IN VARCHAR2
58860 --Payment Supplier Identifier
58861  , p_source_65            IN NUMBER
58862 --Payment Supplier Site Identifier
58863  , p_source_66            IN NUMBER
58864 --Third Party Type
58865  , p_source_67            IN VARCHAR2
58866 --Payment Distribution Reversed Identifier
58867  , p_source_68            IN NUMBER
58868 --Invoice Distribution Tax Line Identifier
58869  , p_source_69            IN NUMBER
58870 --Invoice Distribution Summary Tax Line Identifier
58871  , p_source_70            IN NUMBER
58872 --Cleared Exchange Date
58873  , p_source_114            IN DATE
58874 --Cleared Exchange Rate
58875  , p_source_115            IN NUMBER
58876 --Cleared Exchange Rate Type
58877  , p_source_116            IN VARCHAR2
58878 --Payment Maturity Date
58882 --Maturity/Clearing Ledger Amount Difference
58879  , p_source_118            IN DATE
58880 --Gain or Loss Indicator between Maturity and Clearing
58881  , p_source_136            IN VARCHAR2
58883  , p_source_137            IN NUMBER
58884 )
58885 IS
58886 
58887 l_component_type              VARCHAR2(80);
58888 l_component_code              VARCHAR2(30);
58889 l_component_type_code         VARCHAR2(1);
58890 l_component_appl_id           INTEGER;
58891 l_amb_context_code            VARCHAR2(30);
58892 l_entity_code                 VARCHAR2(30);
58893 l_event_class_code            VARCHAR2(30);
58894 l_ae_header_id                NUMBER;
58895 l_event_type_code             VARCHAR2(30);
58896 l_line_definition_code        VARCHAR2(30);
58897 l_line_definition_owner_code  VARCHAR2(1);
58898 --
58899 -- adr variables
58900 l_segment                     VARCHAR2(30);
58901 l_ccid                        NUMBER;
58902 l_adr_transaction_coa_id      NUMBER;
58903 l_adr_accounting_coa_id       NUMBER;
58904 l_adr_flexfield_segment_code  VARCHAR2(30);
58905 l_adr_flex_value_set_id       NUMBER;
58906 l_adr_value_type_code         VARCHAR2(30);
58907 l_adr_value_combination_id    NUMBER;
58908 l_adr_value_segment_code      VARCHAR2(30);
58909 
58910 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
58911 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
58912 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
58913 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
58914 
58915 -- 4262811 Variables ------------------------------------------------------------------------------------------
58916 l_entered_amt_idx             NUMBER;
58917 l_accted_amt_idx              NUMBER;
58918 l_acc_rev_flag                VARCHAR2(1);
58919 l_accrual_line_num            NUMBER;
58920 l_tmp_amt                     NUMBER;
58921 l_acc_rev_natural_side_code   VARCHAR2(1);
58922 
58923 l_num_entries                 NUMBER;
58924 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
58925 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
58926 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
58927 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
58928 l_recog_line_1                NUMBER;
58929 l_recog_line_2                NUMBER;
58930 
58931 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
58932 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
58933 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
58934 
58935 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58936 
58937 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
58938 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
58939 
58940 ---------------------------------------------------------------------------------------------------------------
58941 
58942 
58943 --
58944 -- bulk performance
58945 --
58946 l_balance_type_code           VARCHAR2(1);
58947 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
58948 l_log_module                  VARCHAR2(240);
58949 
58950 --
58951 -- Upgrade strategy
58952 --
58953 l_actual_upg_option           VARCHAR2(1);
58954 l_enc_upg_option           VARCHAR2(1);
58955 
58956 --
58957 BEGIN
58958 --
58959 IF g_log_enabled THEN
58960       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_112';
58961 END IF;
58962 --
58963 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58964 
58965       trace
58966          (p_msg      => 'BEGIN of AcctLineType_112'
58967          ,p_level    => C_LEVEL_PROCEDURE
58968          ,p_module   => l_log_module);
58969 
58970 END IF;
58971 --
58972 l_component_type             := 'AMB_JLT';
58973 l_component_code             := 'AP_LOSS_MAT_CLEAR';
58974 l_component_type_code        := 'S';
58975 l_component_appl_id          :=  200;
58976 l_amb_context_code           := 'DEFAULT';
58977 l_entity_code                := 'AP_PAYMENTS';
58978 l_event_class_code           := 'RECONCILED PAYMENTS';
58979 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
58980 l_line_definition_owner_code := 'S';
58981 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
58982 --
58983 l_balance_type_code          := 'A';
58984 l_segment                     := NULL;
58985 l_ccid                        := NULL;
58986 l_adr_transaction_coa_id      := NULL;
58987 l_adr_accounting_coa_id       := NULL;
58988 l_adr_flexfield_segment_code  := NULL;
58989 l_adr_flex_value_set_id       := NULL;
58990 l_adr_value_type_code         := NULL;
58991 l_adr_value_combination_id    := NULL;
58992 l_adr_value_segment_code      := NULL;
58993 
58994 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
58995 l_bflow_class_code           := '';    -- 4219869 Business Flow
58996 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
58997 l_budgetary_control_flag     := 'N';
58998 
58999 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
59000 l_bflow_applied_to_amt       := NULL; -- 5132302
59001 l_entered_amt_idx            := NULL;          -- 4262811
59002 l_accted_amt_idx             := NULL;          -- 4262811
59003 l_acc_rev_flag               := NULL;          -- 4262811
59004 l_accrual_line_num           := NULL;          -- 4262811
59005 l_tmp_amt                    := NULL;          -- 4262811
59009                return;
59006 --
59007 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
59008             (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
59010   END IF;
59011   
59012 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59013     l_balance_type_code <> 'B' THEN
59014 IF NVL(p_source_50,'
59015 ') =  'ALWAYS_ALWAYS' AND 
59016 p_source_118 IS NOT NULL AND 
59017 NVL(p_source_136,'
59018 ') =  'LOSS' AND 
59019 NVL(p_source_51,'
59020 ') <>  'EXCHANGE RATE VARIANCE' AND 
59021 NVL(p_source_51,'
59022 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
59023 NVL(p_source_51,'
59024 ') <>  'BANK CHARGE' AND 
59025 NVL(p_source_51,'
59026 ') <>  'BANK ERROR'
59027  THEN 
59028 
59029    --
59030    XLA_AE_LINES_PKG.SetNewLine;
59031 
59032    p_balance_type_code          := l_balance_type_code;
59033    -- set the flag so later we will know whether the gain loss line needs to be created
59034    
59035    IF(l_balance_type_code = 'A' ) THEN
59036      p_actual_flag :='G';
59037    END IF;
59038 
59039    --
59040    -- bulk performance
59041    --
59042    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59043                                       p_header_num   => 0); -- 4262811
59044    --
59045    -- set accounting line options
59046    --
59047    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59048            p_natural_side_code          => 'C'
59049          , p_gain_or_loss_flag          => 'Y'
59050          , p_gl_transfer_mode_code      => 'S'
59051          , p_acct_entry_type_code       => 'A'
59052          , p_switch_side_flag           => 'Y'
59053          , p_merge_duplicate_code       => 'A'
59054          );
59055    --
59056    l_acc_rev_natural_side_code := 'D';  -- 4262811
59057    -- 
59058    --
59059    -- set accounting line type info
59060    --
59061    xla_ae_lines_pkg.SetAcctLineType
59062       (p_component_type             => l_component_type
59063       ,p_event_type_code            => l_event_type_code
59064       ,p_line_definition_owner_code => l_line_definition_owner_code
59065       ,p_line_definition_code       => l_line_definition_code
59066       ,p_accounting_line_code       => l_component_code
59067       ,p_accounting_line_type_code  => l_component_type_code
59068       ,p_accounting_line_appl_id    => l_component_appl_id
59069       ,p_amb_context_code           => l_amb_context_code
59070       ,p_entity_code                => l_entity_code
59071       ,p_event_class_code           => l_event_class_code);
59072    --
59073    -- set accounting class
59074    --
59075    xla_ae_lines_pkg.SetAcctClass(
59076            p_accounting_class_code  => 'LOSS'
59077          , p_ae_header_id           => l_ae_header_id
59078          );
59079 
59080    --
59081    -- set rounding class
59082    --
59083    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59084                       'LOSS';
59085 
59086    --
59087    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59088    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59089    --
59090    -- bulk performance
59091    --
59092    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59093 
59094    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59095       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59096 
59097    -- 4955764
59098    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59099       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59100 
59101    -- 4458381 Public Sector Enh
59102    
59103    --
59104    -- set accounting attributes for the line type
59105    --
59106    l_entered_amt_idx := 10;
59107    l_accted_amt_idx  := 15;
59108    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
59109    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59110    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
59111    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
59112    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
59113    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
59114    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
59115    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59116    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
59117    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
59118    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
59119    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
59120    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
59121    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59122    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
59123    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
59124    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
59125    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
59129    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
59126    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
59127    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
59128    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
59130    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
59131    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
59132    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
59133    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
59134    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
59135    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
59136    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
59137    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
59138    l_rec_acct_attrs.array_num_value(15)  := p_source_137;
59139    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
59140    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
59141    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
59142    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
59143    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
59144    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
59145    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
59146    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
59147    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
59148    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
59149    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
59150    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
59151    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
59152    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
59153    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
59154    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
59155    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
59156    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
59157 
59158    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59159    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59160 
59161    ---------------------------------------------------------------------------------------------------------------
59162    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59163    ---------------------------------------------------------------------------------------------------------------
59164    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59165 
59166    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59167    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59168 
59169    IF xla_accounting_cache_pkg.GetValueChar
59170          (p_source_code         => 'LEDGER_CATEGORY_CODE'
59171          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59172    AND l_bflow_method_code = 'PRIOR_ENTRY'
59173 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59174    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59175          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59176        )
59177    THEN
59178          xla_ae_lines_pkg.BflowUpgEntry
59179            (p_business_method_code    => l_bflow_method_code
59180            ,p_business_class_code     => l_bflow_class_code
59181            ,p_balance_type            => l_balance_type_code);
59182    ELSE
59183       NULL;
59184 -- No business flow processing for business flow method of NONE.
59185    END IF;
59186 
59187    --
59188    -- call analytical criteria
59189    --
59190    
59191    --
59192    -- call description
59193    --
59194    -- No description or it is inherited.
59195    --
59196    -- call ADRs
59197    -- Bug 4922099
59198    --
59199    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59200         (NVL(l_actual_upg_option, 'N') = 'O') OR
59201         (NVL(l_enc_upg_option, 'N') = 'O')
59202       )
59203    THEN
59204    NULL;
59205    --
59206    --
59207    
59208   l_ccid := AcctDerRule_34(
59209            p_application_id           => p_application_id
59210          , p_ae_header_id             => l_ae_header_id 
59211 , p_source_16 => p_source_16
59212 , p_source_16_meaning => p_source_16_meaning
59213 , p_source_29 => p_source_29
59214 , p_source_46 => p_source_46
59215 , p_source_47 => p_source_47
59216          , x_transaction_coa_id       => l_adr_transaction_coa_id
59217          , x_accounting_coa_id        => l_adr_accounting_coa_id
59218          , x_value_type_code          => l_adr_value_type_code
59219          , p_side                     => 'NA'
59220    );
59221 
59222    xla_ae_lines_pkg.set_ccid(
59223     p_code_combination_id          => l_ccid
59224   , p_value_type_code              => l_adr_value_type_code
59225   , p_transaction_coa_id           => l_adr_transaction_coa_id
59226   , p_accounting_coa_id            => l_adr_accounting_coa_id
59227   , p_adr_code                     => 'AP_REAL_LOSS'
59228   , p_adr_type_code                => 'S'
59229   , p_component_type               => l_component_type
59230   , p_component_code               => l_component_code
59231   , p_component_type_code          => l_component_type_code
59235   );
59232   , p_component_appl_id            => l_component_appl_id
59233   , p_amb_context_code             => l_amb_context_code
59234   , p_side                         => 'NA'
59236 
59237 
59238    --
59239    --
59240    END IF;
59241    --
59242    -- Bug 4922099
59243    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59244           (NVL(l_enc_upg_option, 'N') = 'O')
59245         ) AND
59246         (l_bflow_method_code = 'PRIOR_ENTRY')
59247       )
59248    THEN
59249       IF
59250       --
59251       1 = 2
59252       --
59253       THEN
59254       xla_accounting_err_pkg.build_message
59255                                     (p_appli_s_name            => 'XLA'
59256                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59257                                     ,p_token_1                 => 'LINE_NUMBER'
59258                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
59259                                     ,p_token_2                 => 'LINE_TYPE_NAME'
59260                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
59261                                                                              l_component_type
59262                                                                             ,l_component_code
59263                                                                             ,l_component_type_code
59264                                                                             ,l_component_appl_id
59265                                                                             ,l_amb_context_code
59266                                                                             ,l_entity_code
59267                                                                             ,l_event_class_code
59268                                                                            )
59269                                     ,p_token_3                 => 'OWNER'
59270                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
59271                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
59272                                                                           ,p_lookup_code    => l_component_type_code
59273                                                                          )
59274                                     ,p_token_4                 => 'PRODUCT_NAME'
59275                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59276                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59277                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59278                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59279                                     ,p_ae_header_id            =>  NULL
59280                                        );
59281 
59282         IF (C_LEVEL_ERROR>= g_log_level) THEN
59283                  trace
59284                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59285                       ,p_level    => C_LEVEL_ERROR
59286                       ,p_module   => l_log_module);
59287         END IF;
59288       END IF;
59289    END IF;
59290    --
59291    --
59292    ------------------------------------------------------------------------------------------------
59293    -- 4219869 Business Flow
59294    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59295    -- Prior Entry.  Currently, the following code is always generated.
59296    ------------------------------------------------------------------------------------------------
59297    XLA_AE_LINES_PKG.ValidateCurrentLine;
59298 
59299    ------------------------------------------------------------------------------------
59300    -- 4219869 Business Flow
59301    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59302    ------------------------------------------------------------------------------------
59303    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59304 
59305    ----------------------------------------------------------------------------------
59306    -- 4219869 Business Flow
59307    -- Update journal entry status -- Need to generate this within IF <condition>
59308    ----------------------------------------------------------------------------------
59309    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59310          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59311          ,p_balance_type_code => l_balance_type_code
59312          );
59313 
59314    -------------------------------------------------------------------------------------------
59315    -- 4262811 - Generate the Accrual Reversal lines
59316    -------------------------------------------------------------------------------------------
59317    BEGIN
59318       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59319                               (g_array_event(p_event_id).array_value_num('header_index'));
59320       IF l_acc_rev_flag IS NULL THEN
59321          l_acc_rev_flag := 'N';
59322       END IF;
59323    EXCEPTION
59324       WHEN OTHERS THEN
59325          l_acc_rev_flag := 'N';
59326    END;
59327    --
59328    IF (l_acc_rev_flag = 'Y') THEN
59329 
59333        ------------------------------------------------------------------------------------------
59330        -- 4645092  ------------------------------------------------------------------------------
59331        -- To allow MPA report to determine if it should generate report process
59332        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59334 
59335        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59336        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59337    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
59338    -- call ADRs
59339    -- Bug 4922099
59340    --
59341    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59342         (NVL(l_actual_upg_option, 'N') = 'O') OR
59343         (NVL(l_enc_upg_option, 'N') = 'O')
59344       )
59345    THEN
59346    NULL;
59347    --
59348    --
59349    
59350   l_ccid := AcctDerRule_34(
59351            p_application_id           => p_application_id
59352          , p_ae_header_id             => l_ae_header_id 
59353 , p_source_16 => p_source_16
59354 , p_source_16_meaning => p_source_16_meaning
59355 , p_source_29 => p_source_29
59356 , p_source_46 => p_source_46
59357 , p_source_47 => p_source_47
59358          , x_transaction_coa_id       => l_adr_transaction_coa_id
59359          , x_accounting_coa_id        => l_adr_accounting_coa_id
59360          , x_value_type_code          => l_adr_value_type_code
59361          , p_side                     => 'NA'
59362    );
59363 
59364    xla_ae_lines_pkg.set_ccid(
59365     p_code_combination_id          => l_ccid
59366   , p_value_type_code              => l_adr_value_type_code
59367   , p_transaction_coa_id           => l_adr_transaction_coa_id
59368   , p_accounting_coa_id            => l_adr_accounting_coa_id
59369   , p_adr_code                     => 'AP_REAL_LOSS'
59370   , p_adr_type_code                => 'S'
59371   , p_component_type               => l_component_type
59372   , p_component_code               => l_component_code
59373   , p_component_type_code          => l_component_type_code
59374   , p_component_appl_id            => l_component_appl_id
59375   , p_amb_context_code             => l_amb_context_code
59376   , p_side                         => 'NA'
59377   );
59378 
59379 
59380    --
59381    --
59382    END IF;
59383 
59384        --
59385        -- Update the line information that should be overwritten
59386        --
59387        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59388                                          p_header_num   => 1);
59389        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
59390 
59391        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59392 
59393        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
59394           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59395        END IF;
59396 
59397       --
59398       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59399       --
59400       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59401           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
59402       ELSE
59403           ---------------------------------------------------------------------------------------------------
59404           -- 4262811a Switch Sign
59405           ---------------------------------------------------------------------------------------------------
59406           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
59407           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59408                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59409           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59410                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59411           -- 5132302
59412           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59413                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59414 
59415       END IF;
59416 
59417       -- 4955764
59418       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59419       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59420 
59421 
59422       XLA_AE_LINES_PKG.ValidateCurrentLine;
59423       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59424 
59425       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59426                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59427                ,p_balance_type_code => l_balance_type_code);
59428 
59429    END IF;
59430 
59431    -----------------------------------------------------------------------------------------
59432    -- 4262811 Multiperiod Accounting
59433    -----------------------------------------------------------------------------------------
59434      -- No MPA option is assigned.
59435 
59436 
59437 END IF;
59438 END IF;
59439 --
59440 
59441 --
59442 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59443    trace
59444       (p_msg      => 'END of AcctLineType_112'
59445       ,p_level    => C_LEVEL_PROCEDURE
59446       ,p_module   => l_log_module);
59450   WHEN xla_exceptions_pkg.application_exception THEN
59447 END IF;
59448 --
59449 EXCEPTION
59451       RAISE;
59452   WHEN OTHERS THEN
59453        xla_exceptions_pkg.raise_message
59454            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_112');
59455 END AcctLineType_112;
59456 --
59457 
59458 ---------------------------------------
59459 --
59460 -- PRIVATE FUNCTION
59461 --         AcctLineType_113
59462 --
59463 ---------------------------------------
59464 PROCEDURE AcctLineType_113 (
59465   p_application_id        IN NUMBER
59466  ,p_event_id              IN NUMBER
59467  ,p_calculate_acctd_flag  IN VARCHAR2
59468  ,p_calculate_g_l_flag    IN VARCHAR2
59469  ,p_actual_flag           IN OUT VARCHAR2
59470  ,p_balance_type_code     OUT VARCHAR2
59471  ,p_gain_or_loss_ref      OUT VARCHAR2
59472  
59473 --Payment Currency Code
59474  , p_source_12            IN VARCHAR2
59475 --Automatic Offsets Value
59476  , p_source_16            IN VARCHAR2
59477  , p_source_16_meaning    IN VARCHAR2
59478 --Invoice Distribution Account
59479  , p_source_29            IN NUMBER
59480 --Internal Realized Loss Account
59481  , p_source_46            IN NUMBER
59482 --Bank Loss Account
59483  , p_source_47            IN NUMBER
59484 --When to Account for Payment Option
59485  , p_source_50            IN VARCHAR2
59486 --Payment Distribution Type
59487  , p_source_51            IN VARCHAR2
59488  , p_source_51_meaning    IN VARCHAR2
59489 --Accounting Reversal Indicator
59490  , p_source_52            IN VARCHAR2
59491 --Payment Distribution Amount
59492  , p_source_53            IN NUMBER
59493 --Business Flow Accounts Payable Application Identifier
59494  , p_source_54            IN NUMBER
59495 --Business Flow Payment Distribution Type
59496  , p_source_55            IN VARCHAR2
59497 --Business Flow Payment Entity Code
59498  , p_source_56            IN VARCHAR2
59499 --Business Flow Payment Distribution Identifier
59500  , p_source_57            IN NUMBER
59501 --Business Flow Payment Identifier
59502  , p_source_58            IN NUMBER
59503 --Payment Distribution Identifier
59504  , p_source_59            IN NUMBER
59505 --Distribution Link Type
59506  , p_source_60            IN VARCHAR2
59507 --Override Accounted Amount Indicator
59508  , p_source_64            IN VARCHAR2
59509  , p_source_64_meaning    IN VARCHAR2
59510 --Payment Supplier Identifier
59511  , p_source_65            IN NUMBER
59512 --Payment Supplier Site Identifier
59513  , p_source_66            IN NUMBER
59514 --Third Party Type
59515  , p_source_67            IN VARCHAR2
59516 --Payment Distribution Reversed Identifier
59517  , p_source_68            IN NUMBER
59518 --Invoice Distribution Tax Line Identifier
59519  , p_source_69            IN NUMBER
59520 --Invoice Distribution Summary Tax Line Identifier
59521  , p_source_70            IN NUMBER
59522 --Cleared Exchange Date
59523  , p_source_114            IN DATE
59524 --Cleared Exchange Rate
59525  , p_source_115            IN NUMBER
59526 --Cleared Exchange Rate Type
59527  , p_source_116            IN VARCHAR2
59528 --Payment Maturity Date
59529  , p_source_118            IN DATE
59530 --Gain or Loss Indicator between Payment and Clearing
59531  , p_source_138            IN VARCHAR2
59532 --Payment/Clearing Ledger Amount Difference
59533  , p_source_139            IN NUMBER
59534 )
59535 IS
59536 
59537 l_component_type              VARCHAR2(80);
59538 l_component_code              VARCHAR2(30);
59539 l_component_type_code         VARCHAR2(1);
59540 l_component_appl_id           INTEGER;
59541 l_amb_context_code            VARCHAR2(30);
59542 l_entity_code                 VARCHAR2(30);
59543 l_event_class_code            VARCHAR2(30);
59544 l_ae_header_id                NUMBER;
59545 l_event_type_code             VARCHAR2(30);
59546 l_line_definition_code        VARCHAR2(30);
59547 l_line_definition_owner_code  VARCHAR2(1);
59548 --
59549 -- adr variables
59550 l_segment                     VARCHAR2(30);
59551 l_ccid                        NUMBER;
59552 l_adr_transaction_coa_id      NUMBER;
59553 l_adr_accounting_coa_id       NUMBER;
59554 l_adr_flexfield_segment_code  VARCHAR2(30);
59555 l_adr_flex_value_set_id       NUMBER;
59556 l_adr_value_type_code         VARCHAR2(30);
59557 l_adr_value_combination_id    NUMBER;
59558 l_adr_value_segment_code      VARCHAR2(30);
59559 
59560 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
59561 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
59562 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
59563 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
59564 
59565 -- 4262811 Variables ------------------------------------------------------------------------------------------
59566 l_entered_amt_idx             NUMBER;
59567 l_accted_amt_idx              NUMBER;
59568 l_acc_rev_flag                VARCHAR2(1);
59569 l_accrual_line_num            NUMBER;
59570 l_tmp_amt                     NUMBER;
59571 l_acc_rev_natural_side_code   VARCHAR2(1);
59572 
59573 l_num_entries                 NUMBER;
59574 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
59575 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
59576 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
59577 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
59581 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
59578 l_recog_line_1                NUMBER;
59579 l_recog_line_2                NUMBER;
59580 
59582 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
59583 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
59584 
59585 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59586 
59587 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
59588 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
59589 
59590 ---------------------------------------------------------------------------------------------------------------
59591 
59592 
59593 --
59594 -- bulk performance
59595 --
59596 l_balance_type_code           VARCHAR2(1);
59597 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
59598 l_log_module                  VARCHAR2(240);
59599 
59600 --
59601 -- Upgrade strategy
59602 --
59603 l_actual_upg_option           VARCHAR2(1);
59604 l_enc_upg_option           VARCHAR2(1);
59605 
59606 --
59607 BEGIN
59608 --
59609 IF g_log_enabled THEN
59610       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_113';
59611 END IF;
59612 --
59613 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59614 
59615       trace
59616          (p_msg      => 'BEGIN of AcctLineType_113'
59617          ,p_level    => C_LEVEL_PROCEDURE
59618          ,p_module   => l_log_module);
59619 
59620 END IF;
59621 --
59622 l_component_type             := 'AMB_JLT';
59623 l_component_code             := 'AP_LOSS_PMT_CLEAR';
59624 l_component_type_code        := 'S';
59625 l_component_appl_id          :=  200;
59626 l_amb_context_code           := 'DEFAULT';
59627 l_entity_code                := 'AP_PAYMENTS';
59628 l_event_class_code           := 'RECONCILED PAYMENTS';
59629 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
59630 l_line_definition_owner_code := 'S';
59631 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
59632 --
59633 l_balance_type_code          := 'A';
59634 l_segment                     := NULL;
59635 l_ccid                        := NULL;
59636 l_adr_transaction_coa_id      := NULL;
59637 l_adr_accounting_coa_id       := NULL;
59638 l_adr_flexfield_segment_code  := NULL;
59639 l_adr_flex_value_set_id       := NULL;
59640 l_adr_value_type_code         := NULL;
59641 l_adr_value_combination_id    := NULL;
59642 l_adr_value_segment_code      := NULL;
59643 
59644 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
59645 l_bflow_class_code           := '';    -- 4219869 Business Flow
59646 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
59647 l_budgetary_control_flag     := 'N';
59648 
59649 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
59650 l_bflow_applied_to_amt       := NULL; -- 5132302
59651 l_entered_amt_idx            := NULL;          -- 4262811
59652 l_accted_amt_idx             := NULL;          -- 4262811
59653 l_acc_rev_flag               := NULL;          -- 4262811
59654 l_accrual_line_num           := NULL;          -- 4262811
59655 l_tmp_amt                    := NULL;          -- 4262811
59656 --
59657 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
59658             (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
59659                return;
59660   END IF;
59661   
59662 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59663     l_balance_type_code <> 'B' THEN
59664 IF NVL(p_source_50,'
59665 ') =  'ALWAYS_ALWAYS' AND 
59666 p_source_118 IS NULL AND 
59667 NVL(p_source_138,'
59668 ') =  'LOSS' AND 
59669 NVL(p_source_51,'
59670 ') <>  'EXCHANGE RATE VARIANCE' AND 
59671 NVL(p_source_51,'
59672 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
59673 NVL(p_source_51,'
59674 ') <>  'BANK CHARGE' AND 
59675 NVL(p_source_51,'
59676 ') <>  'BANK ERROR' AND 
59677 NVL(p_source_51,'
59678 ') <>  'AWT'
59679  THEN 
59680 
59681    --
59682    XLA_AE_LINES_PKG.SetNewLine;
59683 
59684    p_balance_type_code          := l_balance_type_code;
59685    -- set the flag so later we will know whether the gain loss line needs to be created
59686    
59687    IF(l_balance_type_code = 'A' ) THEN
59688      p_actual_flag :='G';
59689    END IF;
59690 
59691    --
59692    -- bulk performance
59693    --
59694    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59695                                       p_header_num   => 0); -- 4262811
59696    --
59697    -- set accounting line options
59698    --
59699    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59700            p_natural_side_code          => 'C'
59701          , p_gain_or_loss_flag          => 'Y'
59702          , p_gl_transfer_mode_code      => 'S'
59703          , p_acct_entry_type_code       => 'A'
59704          , p_switch_side_flag           => 'Y'
59705          , p_merge_duplicate_code       => 'A'
59706          );
59707    --
59708    l_acc_rev_natural_side_code := 'D';  -- 4262811
59709    -- 
59710    --
59711    -- set accounting line type info
59712    --
59713    xla_ae_lines_pkg.SetAcctLineType
59717       ,p_line_definition_code       => l_line_definition_code
59714       (p_component_type             => l_component_type
59715       ,p_event_type_code            => l_event_type_code
59716       ,p_line_definition_owner_code => l_line_definition_owner_code
59718       ,p_accounting_line_code       => l_component_code
59719       ,p_accounting_line_type_code  => l_component_type_code
59720       ,p_accounting_line_appl_id    => l_component_appl_id
59721       ,p_amb_context_code           => l_amb_context_code
59722       ,p_entity_code                => l_entity_code
59723       ,p_event_class_code           => l_event_class_code);
59724    --
59725    -- set accounting class
59726    --
59727    xla_ae_lines_pkg.SetAcctClass(
59728            p_accounting_class_code  => 'LOSS'
59729          , p_ae_header_id           => l_ae_header_id
59730          );
59731 
59732    --
59733    -- set rounding class
59734    --
59735    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59736                       'LOSS';
59737 
59738    --
59739    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59740    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59741    --
59742    -- bulk performance
59743    --
59744    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59745 
59746    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59747       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59748 
59749    -- 4955764
59750    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59751       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59752 
59753    -- 4458381 Public Sector Enh
59754    
59755    --
59756    -- set accounting attributes for the line type
59757    --
59758    l_entered_amt_idx := 10;
59759    l_accted_amt_idx  := 15;
59760    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
59761    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59762    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
59763    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
59764    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
59765    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
59766    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
59767    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59768    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
59769    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
59770    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
59771    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
59772    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
59773    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59774    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
59775    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
59776    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
59777    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
59778    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
59779    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
59780    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
59781    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
59782    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
59783    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
59784    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
59785    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
59786    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
59787    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
59788    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
59789    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
59790    l_rec_acct_attrs.array_num_value(15)  := p_source_139;
59791    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
59792    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
59793    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
59794    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
59795    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
59796    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
59797    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
59798    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
59799    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
59800    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
59801    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
59802    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
59803    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
59804    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
59805    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
59806    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
59807    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
59808    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
59809 
59810    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59814    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59811    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59812 
59813    ---------------------------------------------------------------------------------------------------------------
59815    ---------------------------------------------------------------------------------------------------------------
59816    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59817 
59818    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59819    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59820 
59821    IF xla_accounting_cache_pkg.GetValueChar
59822          (p_source_code         => 'LEDGER_CATEGORY_CODE'
59823          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59824    AND l_bflow_method_code = 'PRIOR_ENTRY'
59825 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59826    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59827          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59828        )
59829    THEN
59830          xla_ae_lines_pkg.BflowUpgEntry
59831            (p_business_method_code    => l_bflow_method_code
59832            ,p_business_class_code     => l_bflow_class_code
59833            ,p_balance_type            => l_balance_type_code);
59834    ELSE
59835       NULL;
59836 -- No business flow processing for business flow method of NONE.
59837    END IF;
59838 
59839    --
59840    -- call analytical criteria
59841    --
59842    
59843    --
59844    -- call description
59845    --
59846    -- No description or it is inherited.
59847    --
59848    -- call ADRs
59849    -- Bug 4922099
59850    --
59851    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59852         (NVL(l_actual_upg_option, 'N') = 'O') OR
59853         (NVL(l_enc_upg_option, 'N') = 'O')
59854       )
59855    THEN
59856    NULL;
59857    --
59858    --
59859    
59860   l_ccid := AcctDerRule_34(
59861            p_application_id           => p_application_id
59862          , p_ae_header_id             => l_ae_header_id 
59863 , p_source_16 => p_source_16
59864 , p_source_16_meaning => p_source_16_meaning
59865 , p_source_29 => p_source_29
59866 , p_source_46 => p_source_46
59867 , p_source_47 => p_source_47
59868          , x_transaction_coa_id       => l_adr_transaction_coa_id
59869          , x_accounting_coa_id        => l_adr_accounting_coa_id
59870          , x_value_type_code          => l_adr_value_type_code
59871          , p_side                     => 'NA'
59872    );
59873 
59874    xla_ae_lines_pkg.set_ccid(
59875     p_code_combination_id          => l_ccid
59876   , p_value_type_code              => l_adr_value_type_code
59877   , p_transaction_coa_id           => l_adr_transaction_coa_id
59878   , p_accounting_coa_id            => l_adr_accounting_coa_id
59879   , p_adr_code                     => 'AP_REAL_LOSS'
59880   , p_adr_type_code                => 'S'
59881   , p_component_type               => l_component_type
59882   , p_component_code               => l_component_code
59883   , p_component_type_code          => l_component_type_code
59884   , p_component_appl_id            => l_component_appl_id
59885   , p_amb_context_code             => l_amb_context_code
59886   , p_side                         => 'NA'
59887   );
59888 
59889 
59890    --
59891    --
59892    END IF;
59893    --
59894    -- Bug 4922099
59895    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59896           (NVL(l_enc_upg_option, 'N') = 'O')
59897         ) AND
59898         (l_bflow_method_code = 'PRIOR_ENTRY')
59899       )
59900    THEN
59901       IF
59902       --
59903       1 = 2
59904       --
59905       THEN
59906       xla_accounting_err_pkg.build_message
59907                                     (p_appli_s_name            => 'XLA'
59908                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59909                                     ,p_token_1                 => 'LINE_NUMBER'
59910                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
59911                                     ,p_token_2                 => 'LINE_TYPE_NAME'
59912                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
59913                                                                              l_component_type
59914                                                                             ,l_component_code
59915                                                                             ,l_component_type_code
59916                                                                             ,l_component_appl_id
59917                                                                             ,l_amb_context_code
59918                                                                             ,l_entity_code
59919                                                                             ,l_event_class_code
59920                                                                            )
59921                                     ,p_token_3                 => 'OWNER'
59922                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
59926                                     ,p_token_4                 => 'PRODUCT_NAME'
59923                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
59924                                                                           ,p_lookup_code    => l_component_type_code
59925                                                                          )
59927                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59928                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59929                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59930                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59931                                     ,p_ae_header_id            =>  NULL
59932                                        );
59933 
59934         IF (C_LEVEL_ERROR>= g_log_level) THEN
59935                  trace
59936                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59937                       ,p_level    => C_LEVEL_ERROR
59938                       ,p_module   => l_log_module);
59939         END IF;
59940       END IF;
59941    END IF;
59942    --
59943    --
59944    ------------------------------------------------------------------------------------------------
59945    -- 4219869 Business Flow
59946    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59947    -- Prior Entry.  Currently, the following code is always generated.
59948    ------------------------------------------------------------------------------------------------
59949    XLA_AE_LINES_PKG.ValidateCurrentLine;
59950 
59951    ------------------------------------------------------------------------------------
59952    -- 4219869 Business Flow
59953    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59954    ------------------------------------------------------------------------------------
59955    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59956 
59957    ----------------------------------------------------------------------------------
59958    -- 4219869 Business Flow
59959    -- Update journal entry status -- Need to generate this within IF <condition>
59960    ----------------------------------------------------------------------------------
59961    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59962          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59963          ,p_balance_type_code => l_balance_type_code
59964          );
59965 
59966    -------------------------------------------------------------------------------------------
59967    -- 4262811 - Generate the Accrual Reversal lines
59968    -------------------------------------------------------------------------------------------
59969    BEGIN
59970       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59971                               (g_array_event(p_event_id).array_value_num('header_index'));
59972       IF l_acc_rev_flag IS NULL THEN
59973          l_acc_rev_flag := 'N';
59974       END IF;
59975    EXCEPTION
59976       WHEN OTHERS THEN
59977          l_acc_rev_flag := 'N';
59978    END;
59979    --
59980    IF (l_acc_rev_flag = 'Y') THEN
59981 
59982        -- 4645092  ------------------------------------------------------------------------------
59983        -- To allow MPA report to determine if it should generate report process
59984        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59985        ------------------------------------------------------------------------------------------
59986 
59987        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59988        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59989    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
59990    -- call ADRs
59991    -- Bug 4922099
59992    --
59993    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59994         (NVL(l_actual_upg_option, 'N') = 'O') OR
59995         (NVL(l_enc_upg_option, 'N') = 'O')
59996       )
59997    THEN
59998    NULL;
59999    --
60000    --
60001    
60002   l_ccid := AcctDerRule_34(
60003            p_application_id           => p_application_id
60004          , p_ae_header_id             => l_ae_header_id 
60005 , p_source_16 => p_source_16
60006 , p_source_16_meaning => p_source_16_meaning
60007 , p_source_29 => p_source_29
60008 , p_source_46 => p_source_46
60009 , p_source_47 => p_source_47
60010          , x_transaction_coa_id       => l_adr_transaction_coa_id
60011          , x_accounting_coa_id        => l_adr_accounting_coa_id
60012          , x_value_type_code          => l_adr_value_type_code
60013          , p_side                     => 'NA'
60014    );
60015 
60016    xla_ae_lines_pkg.set_ccid(
60017     p_code_combination_id          => l_ccid
60018   , p_value_type_code              => l_adr_value_type_code
60019   , p_transaction_coa_id           => l_adr_transaction_coa_id
60020   , p_accounting_coa_id            => l_adr_accounting_coa_id
60021   , p_adr_code                     => 'AP_REAL_LOSS'
60022   , p_adr_type_code                => 'S'
60023   , p_component_type               => l_component_type
60024   , p_component_code               => l_component_code
60025   , p_component_type_code          => l_component_type_code
60026   , p_component_appl_id            => l_component_appl_id
60027   , p_amb_context_code             => l_amb_context_code
60028   , p_side                         => 'NA'
60029   );
60030 
60034    END IF;
60031 
60032    --
60033    --
60035 
60036        --
60037        -- Update the line information that should be overwritten
60038        --
60039        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60040                                          p_header_num   => 1);
60041        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
60042 
60043        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60044 
60045        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
60046           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60047        END IF;
60048 
60049       --
60050       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60051       --
60052       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60053           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
60054       ELSE
60055           ---------------------------------------------------------------------------------------------------
60056           -- 4262811a Switch Sign
60057           ---------------------------------------------------------------------------------------------------
60058           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
60059           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60060                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60061           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60062                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60063           -- 5132302
60064           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60065                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60066 
60067       END IF;
60068 
60069       -- 4955764
60070       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60071       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60072 
60073 
60074       XLA_AE_LINES_PKG.ValidateCurrentLine;
60075       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60076 
60077       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60078                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60079                ,p_balance_type_code => l_balance_type_code);
60080 
60081    END IF;
60082 
60083    -----------------------------------------------------------------------------------------
60084    -- 4262811 Multiperiod Accounting
60085    -----------------------------------------------------------------------------------------
60086      -- No MPA option is assigned.
60087 
60088 
60089 END IF;
60090 END IF;
60091 --
60092 
60093 --
60094 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60095    trace
60096       (p_msg      => 'END of AcctLineType_113'
60097       ,p_level    => C_LEVEL_PROCEDURE
60098       ,p_module   => l_log_module);
60099 END IF;
60100 --
60101 EXCEPTION
60102   WHEN xla_exceptions_pkg.application_exception THEN
60103       RAISE;
60104   WHEN OTHERS THEN
60105        xla_exceptions_pkg.raise_message
60106            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_113');
60107 END AcctLineType_113;
60108 --
60109 
60110 ---------------------------------------
60111 --
60112 -- PRIVATE FUNCTION
60113 --         AcctLineType_114
60114 --
60115 ---------------------------------------
60116 PROCEDURE AcctLineType_114 (
60117   p_application_id        IN NUMBER
60118  ,p_event_id              IN NUMBER
60119  ,p_calculate_acctd_flag  IN VARCHAR2
60120  ,p_calculate_g_l_flag    IN VARCHAR2
60121  ,p_actual_flag           IN OUT VARCHAR2
60122  ,p_balance_type_code     OUT VARCHAR2
60123  ,p_gain_or_loss_ref      OUT VARCHAR2
60124  
60125 --Payment Currency Code
60126  , p_source_12            IN VARCHAR2
60127 --Automatic Offsets Value
60128  , p_source_16            IN VARCHAR2
60129  , p_source_16_meaning    IN VARCHAR2
60130 --Invoice Distribution Account
60131  , p_source_29            IN NUMBER
60132 --Internal Realized Loss Account
60133  , p_source_46            IN NUMBER
60134 --Bank Loss Account
60135  , p_source_47            IN NUMBER
60136 --When to Account for Payment Option
60137  , p_source_50            IN VARCHAR2
60138 --Payment Distribution Type
60139  , p_source_51            IN VARCHAR2
60140  , p_source_51_meaning    IN VARCHAR2
60141 --Accounting Reversal Indicator
60142  , p_source_52            IN VARCHAR2
60143 --Payment Distribution Amount
60144  , p_source_53            IN NUMBER
60145 --Business Flow Accounts Payable Application Identifier
60146  , p_source_54            IN NUMBER
60147 --Business Flow Payment Distribution Type
60148  , p_source_55            IN VARCHAR2
60149 --Business Flow Payment Entity Code
60150  , p_source_56            IN VARCHAR2
60151 --Business Flow Payment Distribution Identifier
60152  , p_source_57            IN NUMBER
60153 --Business Flow Payment Identifier
60154  , p_source_58            IN NUMBER
60158  , p_source_60            IN VARCHAR2
60155 --Payment Distribution Identifier
60156  , p_source_59            IN NUMBER
60157 --Distribution Link Type
60159 --Override Accounted Amount Indicator
60160  , p_source_64            IN VARCHAR2
60161  , p_source_64_meaning    IN VARCHAR2
60162 --Payment Supplier Identifier
60163  , p_source_65            IN NUMBER
60164 --Payment Supplier Site Identifier
60165  , p_source_66            IN NUMBER
60166 --Third Party Type
60167  , p_source_67            IN VARCHAR2
60168 --Payment Distribution Reversed Identifier
60169  , p_source_68            IN NUMBER
60170 --Payment Maturity Date
60171  , p_source_118            IN DATE
60172 --Payment Exchange Date
60173  , p_source_121            IN DATE
60174 --Payment Exchange Rate
60175  , p_source_122            IN NUMBER
60176 --Payment Exchange Rate Type
60177  , p_source_123            IN VARCHAR2
60178 --Payment/Maturity Ledger Amount Difference
60179  , p_source_135            IN NUMBER
60180 --Gain or Loss Indicator between Payment and Maturity
60181  , p_source_140            IN VARCHAR2
60182 )
60183 IS
60184 
60185 l_component_type              VARCHAR2(80);
60186 l_component_code              VARCHAR2(30);
60187 l_component_type_code         VARCHAR2(1);
60188 l_component_appl_id           INTEGER;
60189 l_amb_context_code            VARCHAR2(30);
60190 l_entity_code                 VARCHAR2(30);
60191 l_event_class_code            VARCHAR2(30);
60192 l_ae_header_id                NUMBER;
60193 l_event_type_code             VARCHAR2(30);
60194 l_line_definition_code        VARCHAR2(30);
60195 l_line_definition_owner_code  VARCHAR2(1);
60196 --
60197 -- adr variables
60198 l_segment                     VARCHAR2(30);
60199 l_ccid                        NUMBER;
60200 l_adr_transaction_coa_id      NUMBER;
60201 l_adr_accounting_coa_id       NUMBER;
60202 l_adr_flexfield_segment_code  VARCHAR2(30);
60203 l_adr_flex_value_set_id       NUMBER;
60204 l_adr_value_type_code         VARCHAR2(30);
60205 l_adr_value_combination_id    NUMBER;
60206 l_adr_value_segment_code      VARCHAR2(30);
60207 
60208 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
60209 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
60210 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
60211 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
60212 
60213 -- 4262811 Variables ------------------------------------------------------------------------------------------
60214 l_entered_amt_idx             NUMBER;
60215 l_accted_amt_idx              NUMBER;
60216 l_acc_rev_flag                VARCHAR2(1);
60217 l_accrual_line_num            NUMBER;
60218 l_tmp_amt                     NUMBER;
60219 l_acc_rev_natural_side_code   VARCHAR2(1);
60220 
60221 l_num_entries                 NUMBER;
60222 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
60223 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
60224 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
60225 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
60226 l_recog_line_1                NUMBER;
60227 l_recog_line_2                NUMBER;
60228 
60229 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
60230 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
60231 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
60232 
60233 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60234 
60235 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
60236 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
60237 
60238 ---------------------------------------------------------------------------------------------------------------
60239 
60240 
60241 --
60242 -- bulk performance
60243 --
60244 l_balance_type_code           VARCHAR2(1);
60245 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
60246 l_log_module                  VARCHAR2(240);
60247 
60248 --
60249 -- Upgrade strategy
60250 --
60251 l_actual_upg_option           VARCHAR2(1);
60252 l_enc_upg_option           VARCHAR2(1);
60253 
60254 --
60255 BEGIN
60256 --
60257 IF g_log_enabled THEN
60258       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_114';
60259 END IF;
60260 --
60261 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60262 
60263       trace
60264          (p_msg      => 'BEGIN of AcctLineType_114'
60265          ,p_level    => C_LEVEL_PROCEDURE
60266          ,p_module   => l_log_module);
60267 
60268 END IF;
60269 --
60270 l_component_type             := 'AMB_JLT';
60271 l_component_code             := 'AP_LOSS_PMT_MAT';
60272 l_component_type_code        := 'S';
60273 l_component_appl_id          :=  200;
60274 l_amb_context_code           := 'DEFAULT';
60275 l_entity_code                := 'AP_PAYMENTS';
60276 l_event_class_code           := 'FUTURE DATED PAYMENTS';
60277 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
60278 l_line_definition_owner_code := 'S';
60279 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
60280 --
60281 l_balance_type_code          := 'A';
60282 l_segment                     := NULL;
60283 l_ccid                        := NULL;
60284 l_adr_transaction_coa_id      := NULL;
60285 l_adr_accounting_coa_id       := NULL;
60286 l_adr_flexfield_segment_code  := NULL;
60290 l_adr_value_segment_code      := NULL;
60287 l_adr_flex_value_set_id       := NULL;
60288 l_adr_value_type_code         := NULL;
60289 l_adr_value_combination_id    := NULL;
60291 
60292 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
60293 l_bflow_class_code           := '';    -- 4219869 Business Flow
60294 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
60295 l_budgetary_control_flag     := 'N';
60296 
60297 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
60298 l_bflow_applied_to_amt       := NULL; -- 5132302
60299 l_entered_amt_idx            := NULL;          -- 4262811
60300 l_accted_amt_idx             := NULL;          -- 4262811
60301 l_acc_rev_flag               := NULL;          -- 4262811
60302 l_accrual_line_num           := NULL;          -- 4262811
60303 l_tmp_amt                    := NULL;          -- 4262811
60304 --
60305 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
60306             (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
60307                return;
60308   END IF;
60309   
60310 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60311     l_balance_type_code <> 'B' THEN
60312 IF (NVL(p_source_50,'
60313 ') =  'ALWAYS_ALWAYS' OR 
60314 NVL(p_source_50,'
60315 ') =  'ISSUE_ISSUE') AND 
60316 p_source_118 IS NOT NULL AND 
60317 NVL(p_source_140,'
60318 ') =  'LOSS' AND 
60319 NVL(p_source_51,'
60320 ') <>  'EXCHANGE RATE VARIANCE' AND 
60321 NVL(p_source_51,'
60322 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
60323 NVL(p_source_51,'
60324 ') <>  'BANK CHARGE' AND 
60325 NVL(p_source_51,'
60326 ') <>  'BANK ERROR' AND 
60327 NVL(p_source_51,'
60328 ') <>  'AWT'
60329  THEN 
60330 
60331    --
60332    XLA_AE_LINES_PKG.SetNewLine;
60333 
60334    p_balance_type_code          := l_balance_type_code;
60335    -- set the flag so later we will know whether the gain loss line needs to be created
60336    
60337    IF(l_balance_type_code = 'A' ) THEN
60338      p_actual_flag :='G';
60339    END IF;
60340 
60341    --
60342    -- bulk performance
60343    --
60344    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60345                                       p_header_num   => 0); -- 4262811
60346    --
60347    -- set accounting line options
60348    --
60349    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60350            p_natural_side_code          => 'C'
60351          , p_gain_or_loss_flag          => 'Y'
60352          , p_gl_transfer_mode_code      => 'S'
60353          , p_acct_entry_type_code       => 'A'
60354          , p_switch_side_flag           => 'Y'
60355          , p_merge_duplicate_code       => 'A'
60356          );
60357    --
60358    l_acc_rev_natural_side_code := 'D';  -- 4262811
60359    -- 
60360    --
60361    -- set accounting line type info
60362    --
60363    xla_ae_lines_pkg.SetAcctLineType
60364       (p_component_type             => l_component_type
60365       ,p_event_type_code            => l_event_type_code
60366       ,p_line_definition_owner_code => l_line_definition_owner_code
60367       ,p_line_definition_code       => l_line_definition_code
60368       ,p_accounting_line_code       => l_component_code
60369       ,p_accounting_line_type_code  => l_component_type_code
60370       ,p_accounting_line_appl_id    => l_component_appl_id
60371       ,p_amb_context_code           => l_amb_context_code
60372       ,p_entity_code                => l_entity_code
60373       ,p_event_class_code           => l_event_class_code);
60374    --
60375    -- set accounting class
60376    --
60377    xla_ae_lines_pkg.SetAcctClass(
60378            p_accounting_class_code  => 'LOSS'
60379          , p_ae_header_id           => l_ae_header_id
60380          );
60381 
60382    --
60383    -- set rounding class
60384    --
60385    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60386                       'LOSS';
60387 
60388    --
60389    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60390    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60391    --
60392    -- bulk performance
60393    --
60394    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60395 
60396    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60397       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60398 
60399    -- 4955764
60400    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60401       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60402 
60403    -- 4458381 Public Sector Enh
60404    
60405    --
60406    -- set accounting attributes for the line type
60407    --
60408    l_entered_amt_idx := 9;
60409    l_accted_amt_idx  := 14;
60410    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
60411    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
60412    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
60416    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
60413    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
60414    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
60415    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60417    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
60418    l_rec_acct_attrs.array_char_value(4)  := p_source_56;
60419    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
60420    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
60421    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60422    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
60423    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
60424    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
60425    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
60426    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
60427    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
60428    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
60429    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
60430    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
60431    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
60432    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
60433    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
60434    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
60435    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
60436    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
60437    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
60438    l_rec_acct_attrs.array_num_value(14)  := p_source_135;
60439    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
60440    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
60441    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
60442    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
60443    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
60444    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
60445    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
60446    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
60447    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
60448    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
60449    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
60450    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
60451 
60452    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60453    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60454 
60455    ---------------------------------------------------------------------------------------------------------------
60456    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60457    ---------------------------------------------------------------------------------------------------------------
60458    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60459 
60460    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60461    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60462 
60463    IF xla_accounting_cache_pkg.GetValueChar
60464          (p_source_code         => 'LEDGER_CATEGORY_CODE'
60465          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60466    AND l_bflow_method_code = 'PRIOR_ENTRY'
60467 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60468    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60469          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60470        )
60471    THEN
60472          xla_ae_lines_pkg.BflowUpgEntry
60473            (p_business_method_code    => l_bflow_method_code
60474            ,p_business_class_code     => l_bflow_class_code
60475            ,p_balance_type            => l_balance_type_code);
60476    ELSE
60477       NULL;
60478 -- No business flow processing for business flow method of NONE.
60479    END IF;
60480 
60481    --
60482    -- call analytical criteria
60483    --
60484    
60485    --
60486    -- call description
60487    --
60488    -- No description or it is inherited.
60489    --
60490    -- call ADRs
60491    -- Bug 4922099
60492    --
60493    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60494         (NVL(l_actual_upg_option, 'N') = 'O') OR
60495         (NVL(l_enc_upg_option, 'N') = 'O')
60496       )
60497    THEN
60498    NULL;
60499    --
60500    --
60501    
60502   l_ccid := AcctDerRule_34(
60503            p_application_id           => p_application_id
60504          , p_ae_header_id             => l_ae_header_id 
60505 , p_source_16 => p_source_16
60506 , p_source_16_meaning => p_source_16_meaning
60507 , p_source_29 => p_source_29
60508 , p_source_46 => p_source_46
60509 , p_source_47 => p_source_47
60510          , x_transaction_coa_id       => l_adr_transaction_coa_id
60511          , x_accounting_coa_id        => l_adr_accounting_coa_id
60512          , x_value_type_code          => l_adr_value_type_code
60513          , p_side                     => 'NA'
60514    );
60515 
60516    xla_ae_lines_pkg.set_ccid(
60517     p_code_combination_id          => l_ccid
60521   , p_adr_code                     => 'AP_REAL_LOSS'
60518   , p_value_type_code              => l_adr_value_type_code
60519   , p_transaction_coa_id           => l_adr_transaction_coa_id
60520   , p_accounting_coa_id            => l_adr_accounting_coa_id
60522   , p_adr_type_code                => 'S'
60523   , p_component_type               => l_component_type
60524   , p_component_code               => l_component_code
60525   , p_component_type_code          => l_component_type_code
60526   , p_component_appl_id            => l_component_appl_id
60527   , p_amb_context_code             => l_amb_context_code
60528   , p_side                         => 'NA'
60529   );
60530 
60531 
60532    --
60533    --
60534    END IF;
60535    --
60536    -- Bug 4922099
60537    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60538           (NVL(l_enc_upg_option, 'N') = 'O')
60539         ) AND
60540         (l_bflow_method_code = 'PRIOR_ENTRY')
60541       )
60542    THEN
60543       IF
60544       --
60545       1 = 2
60546       --
60547       THEN
60548       xla_accounting_err_pkg.build_message
60549                                     (p_appli_s_name            => 'XLA'
60550                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60551                                     ,p_token_1                 => 'LINE_NUMBER'
60552                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
60553                                     ,p_token_2                 => 'LINE_TYPE_NAME'
60554                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
60555                                                                              l_component_type
60556                                                                             ,l_component_code
60557                                                                             ,l_component_type_code
60558                                                                             ,l_component_appl_id
60559                                                                             ,l_amb_context_code
60560                                                                             ,l_entity_code
60561                                                                             ,l_event_class_code
60562                                                                            )
60563                                     ,p_token_3                 => 'OWNER'
60564                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
60565                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
60566                                                                           ,p_lookup_code    => l_component_type_code
60567                                                                          )
60568                                     ,p_token_4                 => 'PRODUCT_NAME'
60569                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60570                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60571                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60572                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60573                                     ,p_ae_header_id            =>  NULL
60574                                        );
60575 
60576         IF (C_LEVEL_ERROR>= g_log_level) THEN
60577                  trace
60578                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60579                       ,p_level    => C_LEVEL_ERROR
60580                       ,p_module   => l_log_module);
60581         END IF;
60582       END IF;
60583    END IF;
60584    --
60585    --
60586    ------------------------------------------------------------------------------------------------
60587    -- 4219869 Business Flow
60588    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60589    -- Prior Entry.  Currently, the following code is always generated.
60590    ------------------------------------------------------------------------------------------------
60591    XLA_AE_LINES_PKG.ValidateCurrentLine;
60592 
60593    ------------------------------------------------------------------------------------
60594    -- 4219869 Business Flow
60595    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60596    ------------------------------------------------------------------------------------
60597    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60598 
60599    ----------------------------------------------------------------------------------
60600    -- 4219869 Business Flow
60601    -- Update journal entry status -- Need to generate this within IF <condition>
60602    ----------------------------------------------------------------------------------
60603    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60604          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60605          ,p_balance_type_code => l_balance_type_code
60606          );
60607 
60608    -------------------------------------------------------------------------------------------
60609    -- 4262811 - Generate the Accrual Reversal lines
60610    -------------------------------------------------------------------------------------------
60611    BEGIN
60612       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60616       END IF;
60613                               (g_array_event(p_event_id).array_value_num('header_index'));
60614       IF l_acc_rev_flag IS NULL THEN
60615          l_acc_rev_flag := 'N';
60617    EXCEPTION
60618       WHEN OTHERS THEN
60619          l_acc_rev_flag := 'N';
60620    END;
60621    --
60622    IF (l_acc_rev_flag = 'Y') THEN
60623 
60624        -- 4645092  ------------------------------------------------------------------------------
60625        -- To allow MPA report to determine if it should generate report process
60626        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60627        ------------------------------------------------------------------------------------------
60628 
60629        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60630        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60631    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
60632    -- call ADRs
60633    -- Bug 4922099
60634    --
60635    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60636         (NVL(l_actual_upg_option, 'N') = 'O') OR
60637         (NVL(l_enc_upg_option, 'N') = 'O')
60638       )
60639    THEN
60640    NULL;
60641    --
60642    --
60643    
60644   l_ccid := AcctDerRule_34(
60645            p_application_id           => p_application_id
60646          , p_ae_header_id             => l_ae_header_id 
60647 , p_source_16 => p_source_16
60648 , p_source_16_meaning => p_source_16_meaning
60649 , p_source_29 => p_source_29
60650 , p_source_46 => p_source_46
60651 , p_source_47 => p_source_47
60652          , x_transaction_coa_id       => l_adr_transaction_coa_id
60653          , x_accounting_coa_id        => l_adr_accounting_coa_id
60654          , x_value_type_code          => l_adr_value_type_code
60655          , p_side                     => 'NA'
60656    );
60657 
60658    xla_ae_lines_pkg.set_ccid(
60659     p_code_combination_id          => l_ccid
60660   , p_value_type_code              => l_adr_value_type_code
60661   , p_transaction_coa_id           => l_adr_transaction_coa_id
60662   , p_accounting_coa_id            => l_adr_accounting_coa_id
60663   , p_adr_code                     => 'AP_REAL_LOSS'
60664   , p_adr_type_code                => 'S'
60665   , p_component_type               => l_component_type
60666   , p_component_code               => l_component_code
60667   , p_component_type_code          => l_component_type_code
60668   , p_component_appl_id            => l_component_appl_id
60669   , p_amb_context_code             => l_amb_context_code
60670   , p_side                         => 'NA'
60671   );
60672 
60673 
60674    --
60675    --
60676    END IF;
60677 
60678        --
60679        -- Update the line information that should be overwritten
60680        --
60681        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60682                                          p_header_num   => 1);
60683        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
60684 
60685        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60686 
60687        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
60688           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60689        END IF;
60690 
60691       --
60692       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60693       --
60694       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60695           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
60696       ELSE
60697           ---------------------------------------------------------------------------------------------------
60698           -- 4262811a Switch Sign
60699           ---------------------------------------------------------------------------------------------------
60700           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
60701           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60702                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60703           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60704                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60705           -- 5132302
60706           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60707                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60708 
60709       END IF;
60710 
60711       -- 4955764
60712       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60713       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60714 
60715 
60716       XLA_AE_LINES_PKG.ValidateCurrentLine;
60717       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60718 
60719       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60720                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60721                ,p_balance_type_code => l_balance_type_code);
60722 
60723    END IF;
60724 
60725    -----------------------------------------------------------------------------------------
60729 
60726    -- 4262811 Multiperiod Accounting
60727    -----------------------------------------------------------------------------------------
60728      -- No MPA option is assigned.
60730 
60731 END IF;
60732 END IF;
60733 --
60734 
60735 --
60736 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60737    trace
60738       (p_msg      => 'END of AcctLineType_114'
60739       ,p_level    => C_LEVEL_PROCEDURE
60740       ,p_module   => l_log_module);
60741 END IF;
60742 --
60743 EXCEPTION
60744   WHEN xla_exceptions_pkg.application_exception THEN
60745       RAISE;
60746   WHEN OTHERS THEN
60747        xla_exceptions_pkg.raise_message
60748            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_114');
60749 END AcctLineType_114;
60750 --
60751 
60752 ---------------------------------------
60753 --
60754 -- PRIVATE FUNCTION
60755 --         AcctLineType_115
60756 --
60757 ---------------------------------------
60758 PROCEDURE AcctLineType_115 (
60759   p_application_id        IN NUMBER
60760  ,p_event_id              IN NUMBER
60761  ,p_calculate_acctd_flag  IN VARCHAR2
60762  ,p_calculate_g_l_flag    IN VARCHAR2
60763  ,p_actual_flag           IN OUT VARCHAR2
60764  ,p_balance_type_code     OUT VARCHAR2
60765  ,p_gain_or_loss_ref      OUT VARCHAR2
60766  
60767 --Payment Currency Code
60768  , p_source_12            IN VARCHAR2
60769 --Payment Distribution (Cleared Rate) Ledger Amount
60770  , p_source_22            IN NUMBER
60771 --Invoice Distribution Account
60772  , p_source_29            IN NUMBER
60773 --Invoice Distribution Type
60774  , p_source_32            IN VARCHAR2
60775  , p_source_32_meaning    IN VARCHAR2
60776 --When to Account for Payment Option
60777  , p_source_50            IN VARCHAR2
60778 --Payment Distribution Type
60779  , p_source_51            IN VARCHAR2
60780  , p_source_51_meaning    IN VARCHAR2
60781 --Accounting Reversal Indicator
60782  , p_source_52            IN VARCHAR2
60783 --Payment Distribution Amount
60784  , p_source_53            IN NUMBER
60785 --Business Flow Accounts Payable Application Identifier
60786  , p_source_54            IN NUMBER
60787 --Business Flow Payment Distribution Type
60788  , p_source_55            IN VARCHAR2
60789 --Business Flow Payment Entity Code
60790  , p_source_56            IN VARCHAR2
60791 --Business Flow Payment Distribution Identifier
60792  , p_source_57            IN NUMBER
60793 --Business Flow Payment Identifier
60794  , p_source_58            IN NUMBER
60795 --Payment Distribution Identifier
60796  , p_source_59            IN NUMBER
60797 --Distribution Link Type
60798  , p_source_60            IN VARCHAR2
60799 --Override Accounted Amount Indicator
60800  , p_source_64            IN VARCHAR2
60801  , p_source_64_meaning    IN VARCHAR2
60802 --Payment Supplier Identifier
60803  , p_source_65            IN NUMBER
60804 --Payment Supplier Site Identifier
60805  , p_source_66            IN NUMBER
60806 --Third Party Type
60807  , p_source_67            IN VARCHAR2
60808 --Payment Distribution Reversed Identifier
60809  , p_source_68            IN NUMBER
60810 --Invoice Distribution Tax Line Identifier
60811  , p_source_69            IN NUMBER
60812 --Invoice Distribution Summary Tax Line Identifier
60813  , p_source_70            IN NUMBER
60814 --Cleared Exchange Date
60815  , p_source_114            IN DATE
60816 --Cleared Exchange Rate
60817  , p_source_115            IN NUMBER
60818 --Cleared Exchange Rate Type
60819  , p_source_116            IN VARCHAR2
60820 )
60821 IS
60822 
60823 l_component_type              VARCHAR2(80);
60824 l_component_code              VARCHAR2(30);
60825 l_component_type_code         VARCHAR2(1);
60826 l_component_appl_id           INTEGER;
60827 l_amb_context_code            VARCHAR2(30);
60828 l_entity_code                 VARCHAR2(30);
60829 l_event_class_code            VARCHAR2(30);
60830 l_ae_header_id                NUMBER;
60831 l_event_type_code             VARCHAR2(30);
60832 l_line_definition_code        VARCHAR2(30);
60833 l_line_definition_owner_code  VARCHAR2(1);
60834 --
60835 -- adr variables
60836 l_segment                     VARCHAR2(30);
60837 l_ccid                        NUMBER;
60838 l_adr_transaction_coa_id      NUMBER;
60839 l_adr_accounting_coa_id       NUMBER;
60840 l_adr_flexfield_segment_code  VARCHAR2(30);
60841 l_adr_flex_value_set_id       NUMBER;
60842 l_adr_value_type_code         VARCHAR2(30);
60843 l_adr_value_combination_id    NUMBER;
60844 l_adr_value_segment_code      VARCHAR2(30);
60845 
60846 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
60847 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
60848 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
60849 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
60850 
60851 -- 4262811 Variables ------------------------------------------------------------------------------------------
60852 l_entered_amt_idx             NUMBER;
60853 l_accted_amt_idx              NUMBER;
60854 l_acc_rev_flag                VARCHAR2(1);
60855 l_accrual_line_num            NUMBER;
60856 l_tmp_amt                     NUMBER;
60857 l_acc_rev_natural_side_code   VARCHAR2(1);
60858 
60859 l_num_entries                 NUMBER;
60860 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
60861 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
60862 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
60866 
60863 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
60864 l_recog_line_1                NUMBER;
60865 l_recog_line_2                NUMBER;
60867 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
60868 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
60869 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
60870 
60871 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60872 
60873 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
60874 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
60875 
60876 ---------------------------------------------------------------------------------------------------------------
60877 
60878 
60879 --
60880 -- bulk performance
60881 --
60882 l_balance_type_code           VARCHAR2(1);
60883 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
60884 l_log_module                  VARCHAR2(240);
60885 
60886 --
60887 -- Upgrade strategy
60888 --
60889 l_actual_upg_option           VARCHAR2(1);
60890 l_enc_upg_option           VARCHAR2(1);
60891 
60892 --
60893 BEGIN
60894 --
60895 IF g_log_enabled THEN
60896       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_115';
60897 END IF;
60898 --
60899 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60900 
60901       trace
60902          (p_msg      => 'BEGIN of AcctLineType_115'
60903          ,p_level    => C_LEVEL_PROCEDURE
60904          ,p_module   => l_log_module);
60905 
60906 END IF;
60907 --
60908 l_component_type             := 'AMB_JLT';
60909 l_component_code             := 'AP_MISC_EXPENSE_CLEAR';
60910 l_component_type_code        := 'S';
60911 l_component_appl_id          :=  200;
60912 l_amb_context_code           := 'DEFAULT';
60913 l_entity_code                := 'AP_PAYMENTS';
60914 l_event_class_code           := 'RECONCILED PAYMENTS';
60915 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
60916 l_line_definition_owner_code := 'S';
60917 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
60918 --
60919 l_balance_type_code          := 'A';
60920 l_segment                     := NULL;
60921 l_ccid                        := NULL;
60922 l_adr_transaction_coa_id      := NULL;
60923 l_adr_accounting_coa_id       := NULL;
60924 l_adr_flexfield_segment_code  := NULL;
60925 l_adr_flex_value_set_id       := NULL;
60926 l_adr_value_type_code         := NULL;
60927 l_adr_value_combination_id    := NULL;
60928 l_adr_value_segment_code      := NULL;
60929 
60930 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
60931 l_bflow_class_code           := '';    -- 4219869 Business Flow
60932 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
60933 l_budgetary_control_flag     := 'N';
60934 
60935 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
60936 l_bflow_applied_to_amt       := NULL; -- 5132302
60937 l_entered_amt_idx            := NULL;          -- 4262811
60938 l_accted_amt_idx             := NULL;          -- 4262811
60939 l_acc_rev_flag               := NULL;          -- 4262811
60940 l_accrual_line_num           := NULL;          -- 4262811
60941 l_tmp_amt                    := NULL;          -- 4262811
60942 --
60943  
60944 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60945     l_balance_type_code <> 'B' THEN
60946 IF NVL(p_source_50,'
60947 ') =  'CLEAR_CLEAR' AND 
60948 NVL(p_source_32,'
60949 ') =  'MISCELLANEOUS' AND 
60950 (NVL(p_source_51,'
60951 ') =  'CASH' OR 
60952 NVL(p_source_51,'
60953 ') =  'AWT' OR 
60954 NVL(p_source_51,'
60955 ') =  'DISCOUNT')
60956  THEN 
60957 
60958    --
60959    XLA_AE_LINES_PKG.SetNewLine;
60960 
60961    p_balance_type_code          := l_balance_type_code;
60962    -- set the flag so later we will know whether the gain loss line needs to be created
60963    
60964    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60965      p_actual_flag :='A';
60966    END IF;
60967 
60968    --
60969    -- bulk performance
60970    --
60971    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60972                                       p_header_num   => 0); -- 4262811
60973    --
60974    -- set accounting line options
60975    --
60976    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60977            p_natural_side_code          => 'D'
60978          , p_gain_or_loss_flag          => 'N'
60979          , p_gl_transfer_mode_code      => 'S'
60980          , p_acct_entry_type_code       => 'A'
60981          , p_switch_side_flag           => 'Y'
60982          , p_merge_duplicate_code       => 'A'
60983          );
60984    --
60985    l_acc_rev_natural_side_code := 'C';  -- 4262811
60986    -- 
60987    --
60988    -- set accounting line type info
60989    --
60990    xla_ae_lines_pkg.SetAcctLineType
60991       (p_component_type             => l_component_type
60992       ,p_event_type_code            => l_event_type_code
60993       ,p_line_definition_owner_code => l_line_definition_owner_code
60994       ,p_line_definition_code       => l_line_definition_code
60995       ,p_accounting_line_code       => l_component_code
60996       ,p_accounting_line_type_code  => l_component_type_code
61000       ,p_event_class_code           => l_event_class_code);
60997       ,p_accounting_line_appl_id    => l_component_appl_id
60998       ,p_amb_context_code           => l_amb_context_code
60999       ,p_entity_code                => l_entity_code
61001    --
61002    -- set accounting class
61003    --
61004    xla_ae_lines_pkg.SetAcctClass(
61005            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
61006          , p_ae_header_id           => l_ae_header_id
61007          );
61008 
61009    --
61010    -- set rounding class
61011    --
61012    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61013                       'MISCELLANEOUS EXPENSE';
61014 
61015    --
61016    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61017    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61018    --
61019    -- bulk performance
61020    --
61021    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61022 
61023    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61024       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61025 
61026    -- 4955764
61027    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61028       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61029 
61030    -- 4458381 Public Sector Enh
61031    
61032    --
61033    -- set accounting attributes for the line type
61034    --
61035    l_entered_amt_idx := 10;
61036    l_accted_amt_idx  := 15;
61037    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
61038    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61039    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
61040    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
61041    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
61042    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
61043    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
61044    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61045    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
61046    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
61047    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
61048    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
61049    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
61050    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61051    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
61052    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
61053    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
61054    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
61055    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
61056    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
61057    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
61058    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
61059    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
61060    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
61061    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
61062    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
61063    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
61064    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
61065    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
61066    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
61067    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
61068    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
61069    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
61070    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
61071    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
61072    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
61073    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
61074    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
61075    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
61076    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
61077    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
61078    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
61079    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
61080    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
61081    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
61082    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
61083    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
61084    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
61085    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
61086 
61087    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61088    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61089 
61090    ---------------------------------------------------------------------------------------------------------------
61091    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61092    ---------------------------------------------------------------------------------------------------------------
61096    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61093    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61094 
61095    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61097 
61098    IF xla_accounting_cache_pkg.GetValueChar
61099          (p_source_code         => 'LEDGER_CATEGORY_CODE'
61100          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61101    AND l_bflow_method_code = 'PRIOR_ENTRY'
61102 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61103    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61104          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61105        )
61106    THEN
61107          xla_ae_lines_pkg.BflowUpgEntry
61108            (p_business_method_code    => l_bflow_method_code
61109            ,p_business_class_code     => l_bflow_class_code
61110            ,p_balance_type            => l_balance_type_code);
61111    ELSE
61112       NULL;
61113 -- No business flow processing for business flow method of NONE.
61114    END IF;
61115 
61116    --
61117    -- call analytical criteria
61118    --
61119    
61120    --
61121    -- call description
61122    --
61123    -- No description or it is inherited.
61124    --
61125    -- call ADRs
61126    -- Bug 4922099
61127    --
61128    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61129         (NVL(l_actual_upg_option, 'N') = 'O') OR
61130         (NVL(l_enc_upg_option, 'N') = 'O')
61131       )
61132    THEN
61133    NULL;
61134    --
61135    --
61136    
61137   l_ccid := AcctDerRule_28(
61138            p_application_id           => p_application_id
61139          , p_ae_header_id             => l_ae_header_id 
61140 , p_source_29 => p_source_29
61141          , x_transaction_coa_id       => l_adr_transaction_coa_id
61142          , x_accounting_coa_id        => l_adr_accounting_coa_id
61143          , x_value_type_code          => l_adr_value_type_code
61144          , p_side                     => 'NA'
61145    );
61146 
61147    xla_ae_lines_pkg.set_ccid(
61148     p_code_combination_id          => l_ccid
61149   , p_value_type_code              => l_adr_value_type_code
61150   , p_transaction_coa_id           => l_adr_transaction_coa_id
61151   , p_accounting_coa_id            => l_adr_accounting_coa_id
61152   , p_adr_code                     => 'AP_INVOICE_DIST'
61153   , p_adr_type_code                => 'S'
61154   , p_component_type               => l_component_type
61155   , p_component_code               => l_component_code
61156   , p_component_type_code          => l_component_type_code
61157   , p_component_appl_id            => l_component_appl_id
61158   , p_amb_context_code             => l_amb_context_code
61159   , p_side                         => 'NA'
61160   );
61161 
61162 
61163    --
61164    --
61165    END IF;
61166    --
61167    -- Bug 4922099
61168    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61169           (NVL(l_enc_upg_option, 'N') = 'O')
61170         ) AND
61171         (l_bflow_method_code = 'PRIOR_ENTRY')
61172       )
61173    THEN
61174       IF
61175       --
61176       1 = 2
61177       --
61178       THEN
61179       xla_accounting_err_pkg.build_message
61180                                     (p_appli_s_name            => 'XLA'
61181                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61182                                     ,p_token_1                 => 'LINE_NUMBER'
61183                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
61184                                     ,p_token_2                 => 'LINE_TYPE_NAME'
61185                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
61186                                                                              l_component_type
61187                                                                             ,l_component_code
61188                                                                             ,l_component_type_code
61189                                                                             ,l_component_appl_id
61190                                                                             ,l_amb_context_code
61191                                                                             ,l_entity_code
61192                                                                             ,l_event_class_code
61193                                                                            )
61194                                     ,p_token_3                 => 'OWNER'
61195                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
61196                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
61197                                                                           ,p_lookup_code    => l_component_type_code
61198                                                                          )
61199                                     ,p_token_4                 => 'PRODUCT_NAME'
61200                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61201                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61202                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61206 
61203                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61204                                     ,p_ae_header_id            =>  NULL
61205                                        );
61207         IF (C_LEVEL_ERROR>= g_log_level) THEN
61208                  trace
61209                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61210                       ,p_level    => C_LEVEL_ERROR
61211                       ,p_module   => l_log_module);
61212         END IF;
61213       END IF;
61214    END IF;
61215    --
61216    --
61217    ------------------------------------------------------------------------------------------------
61218    -- 4219869 Business Flow
61219    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61220    -- Prior Entry.  Currently, the following code is always generated.
61221    ------------------------------------------------------------------------------------------------
61222    XLA_AE_LINES_PKG.ValidateCurrentLine;
61223 
61224    ------------------------------------------------------------------------------------
61225    -- 4219869 Business Flow
61226    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61227    ------------------------------------------------------------------------------------
61228    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61229 
61230    ----------------------------------------------------------------------------------
61231    -- 4219869 Business Flow
61232    -- Update journal entry status -- Need to generate this within IF <condition>
61233    ----------------------------------------------------------------------------------
61234    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61235          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61236          ,p_balance_type_code => l_balance_type_code
61237          );
61238 
61239    -------------------------------------------------------------------------------------------
61240    -- 4262811 - Generate the Accrual Reversal lines
61241    -------------------------------------------------------------------------------------------
61242    BEGIN
61243       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61244                               (g_array_event(p_event_id).array_value_num('header_index'));
61245       IF l_acc_rev_flag IS NULL THEN
61246          l_acc_rev_flag := 'N';
61247       END IF;
61248    EXCEPTION
61249       WHEN OTHERS THEN
61250          l_acc_rev_flag := 'N';
61251    END;
61252    --
61253    IF (l_acc_rev_flag = 'Y') THEN
61254 
61255        -- 4645092  ------------------------------------------------------------------------------
61256        -- To allow MPA report to determine if it should generate report process
61257        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61258        ------------------------------------------------------------------------------------------
61259 
61260        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61261        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61262    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
61263    -- call ADRs
61264    -- Bug 4922099
61265    --
61266    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61267         (NVL(l_actual_upg_option, 'N') = 'O') OR
61268         (NVL(l_enc_upg_option, 'N') = 'O')
61269       )
61270    THEN
61271    NULL;
61272    --
61273    --
61274    
61275   l_ccid := AcctDerRule_28(
61276            p_application_id           => p_application_id
61277          , p_ae_header_id             => l_ae_header_id 
61278 , p_source_29 => p_source_29
61279          , x_transaction_coa_id       => l_adr_transaction_coa_id
61280          , x_accounting_coa_id        => l_adr_accounting_coa_id
61281          , x_value_type_code          => l_adr_value_type_code
61282          , p_side                     => 'NA'
61283    );
61284 
61285    xla_ae_lines_pkg.set_ccid(
61286     p_code_combination_id          => l_ccid
61287   , p_value_type_code              => l_adr_value_type_code
61288   , p_transaction_coa_id           => l_adr_transaction_coa_id
61289   , p_accounting_coa_id            => l_adr_accounting_coa_id
61290   , p_adr_code                     => 'AP_INVOICE_DIST'
61291   , p_adr_type_code                => 'S'
61292   , p_component_type               => l_component_type
61293   , p_component_code               => l_component_code
61294   , p_component_type_code          => l_component_type_code
61295   , p_component_appl_id            => l_component_appl_id
61296   , p_amb_context_code             => l_amb_context_code
61297   , p_side                         => 'NA'
61298   );
61299 
61300 
61301    --
61302    --
61303    END IF;
61304 
61305        --
61306        -- Update the line information that should be overwritten
61307        --
61308        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61309                                          p_header_num   => 1);
61310        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
61311 
61312        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61313 
61314        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
61315           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61316        END IF;
61317 
61318       --
61322           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
61319       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61320       --
61321       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61323       ELSE
61324           ---------------------------------------------------------------------------------------------------
61325           -- 4262811a Switch Sign
61326           ---------------------------------------------------------------------------------------------------
61327           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
61328           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61329                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61330           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61331                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61332           -- 5132302
61333           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61334                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61335 
61336       END IF;
61337 
61338       -- 4955764
61339       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61340       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61341 
61342 
61343       XLA_AE_LINES_PKG.ValidateCurrentLine;
61344       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61345 
61346       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61347                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61348                ,p_balance_type_code => l_balance_type_code);
61349 
61350    END IF;
61351 
61352    -----------------------------------------------------------------------------------------
61353    -- 4262811 Multiperiod Accounting
61354    -----------------------------------------------------------------------------------------
61355      -- No MPA option is assigned.
61356 
61357 
61358 END IF;
61359 END IF;
61360 --
61361 
61362 --
61363 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61364    trace
61365       (p_msg      => 'END of AcctLineType_115'
61366       ,p_level    => C_LEVEL_PROCEDURE
61367       ,p_module   => l_log_module);
61368 END IF;
61369 --
61370 EXCEPTION
61371   WHEN xla_exceptions_pkg.application_exception THEN
61372       RAISE;
61373   WHEN OTHERS THEN
61374        xla_exceptions_pkg.raise_message
61375            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_115');
61376 END AcctLineType_115;
61377 --
61378 
61379 ---------------------------------------
61380 --
61381 -- PRIVATE FUNCTION
61382 --         AcctLineType_116
61383 --
61384 ---------------------------------------
61385 PROCEDURE AcctLineType_116 (
61386   p_application_id        IN NUMBER
61387  ,p_event_id              IN NUMBER
61388  ,p_calculate_acctd_flag  IN VARCHAR2
61389  ,p_calculate_g_l_flag    IN VARCHAR2
61390  ,p_actual_flag           IN OUT VARCHAR2
61391  ,p_balance_type_code     OUT VARCHAR2
61392  ,p_gain_or_loss_ref      OUT VARCHAR2
61393  
61394 --Payment Currency Code
61395  , p_source_12            IN VARCHAR2
61396 --Payment Distribution (Payment Rate) Ledger Amount
61397  , p_source_21            IN NUMBER
61398 --Invoice Distribution Account
61399  , p_source_29            IN NUMBER
61400 --Invoice Distribution Type
61401  , p_source_32            IN VARCHAR2
61402  , p_source_32_meaning    IN VARCHAR2
61403 --When to Account for Payment Option
61404  , p_source_50            IN VARCHAR2
61405 --Payment Distribution Type
61406  , p_source_51            IN VARCHAR2
61407  , p_source_51_meaning    IN VARCHAR2
61408 --Accounting Reversal Indicator
61409  , p_source_52            IN VARCHAR2
61410 --Payment Distribution Amount
61411  , p_source_53            IN NUMBER
61412 --Business Flow Accounts Payable Application Identifier
61413  , p_source_54            IN NUMBER
61414 --Payment Distribution Identifier
61415  , p_source_59            IN NUMBER
61416 --Distribution Link Type
61417  , p_source_60            IN VARCHAR2
61418 --Override Accounted Amount Indicator
61419  , p_source_64            IN VARCHAR2
61420  , p_source_64_meaning    IN VARCHAR2
61421 --Payment Supplier Identifier
61422  , p_source_65            IN NUMBER
61423 --Payment Supplier Site Identifier
61424  , p_source_66            IN NUMBER
61425 --Third Party Type
61426  , p_source_67            IN VARCHAR2
61427 --Payment Distribution Reversed Identifier
61428  , p_source_68            IN NUMBER
61429 --Invoice Distribution Tax Line Identifier
61430  , p_source_69            IN NUMBER
61431 --Invoice Distribution Summary Tax Line Identifier
61432  , p_source_70            IN NUMBER
61433 --Payment Type
61434  , p_source_71            IN VARCHAR2
61435  , p_source_71_meaning    IN VARCHAR2
61436 --Invoice Distribution Amount of the Payment Distribution
61437  , p_source_72            IN NUMBER
61438 --Business Flow Invoice Distribution Type
61439  , p_source_73            IN VARCHAR2
61440 --Business Flow Invoice Entity Code
61441  , p_source_74            IN VARCHAR2
61442 --Business Flow Invoice Distribution Identifier
61446 --Invoice Distribution Tax Distribution Identifier from Tax
61443  , p_source_75            IN NUMBER
61444 --Business Flow Invoice Identifier
61445  , p_source_76            IN NUMBER
61447  , p_source_77            IN NUMBER
61448 --Payment Exchange Date
61449  , p_source_121            IN DATE
61450 --Payment Exchange Rate
61451  , p_source_122            IN NUMBER
61452 --Payment Exchange Rate Type
61453  , p_source_123            IN VARCHAR2
61454 )
61455 IS
61456 
61457 l_component_type              VARCHAR2(80);
61458 l_component_code              VARCHAR2(30);
61459 l_component_type_code         VARCHAR2(1);
61460 l_component_appl_id           INTEGER;
61461 l_amb_context_code            VARCHAR2(30);
61462 l_entity_code                 VARCHAR2(30);
61463 l_event_class_code            VARCHAR2(30);
61464 l_ae_header_id                NUMBER;
61465 l_event_type_code             VARCHAR2(30);
61466 l_line_definition_code        VARCHAR2(30);
61467 l_line_definition_owner_code  VARCHAR2(1);
61468 --
61469 -- adr variables
61470 l_segment                     VARCHAR2(30);
61471 l_ccid                        NUMBER;
61472 l_adr_transaction_coa_id      NUMBER;
61473 l_adr_accounting_coa_id       NUMBER;
61474 l_adr_flexfield_segment_code  VARCHAR2(30);
61475 l_adr_flex_value_set_id       NUMBER;
61476 l_adr_value_type_code         VARCHAR2(30);
61477 l_adr_value_combination_id    NUMBER;
61478 l_adr_value_segment_code      VARCHAR2(30);
61479 
61480 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
61481 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
61482 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
61483 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
61484 
61485 -- 4262811 Variables ------------------------------------------------------------------------------------------
61486 l_entered_amt_idx             NUMBER;
61487 l_accted_amt_idx              NUMBER;
61488 l_acc_rev_flag                VARCHAR2(1);
61489 l_accrual_line_num            NUMBER;
61490 l_tmp_amt                     NUMBER;
61491 l_acc_rev_natural_side_code   VARCHAR2(1);
61492 
61493 l_num_entries                 NUMBER;
61494 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
61495 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
61496 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
61497 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
61498 l_recog_line_1                NUMBER;
61499 l_recog_line_2                NUMBER;
61500 
61501 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
61502 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
61503 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
61504 
61505 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61506 
61507 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
61508 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
61509 
61510 ---------------------------------------------------------------------------------------------------------------
61511 
61512 
61513 --
61514 -- bulk performance
61515 --
61516 l_balance_type_code           VARCHAR2(1);
61517 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
61518 l_log_module                  VARCHAR2(240);
61519 
61520 --
61521 -- Upgrade strategy
61522 --
61523 l_actual_upg_option           VARCHAR2(1);
61524 l_enc_upg_option           VARCHAR2(1);
61525 
61526 --
61527 BEGIN
61528 --
61529 IF g_log_enabled THEN
61530       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_116';
61531 END IF;
61532 --
61533 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61534 
61535       trace
61536          (p_msg      => 'BEGIN of AcctLineType_116'
61537          ,p_level    => C_LEVEL_PROCEDURE
61538          ,p_module   => l_log_module);
61539 
61540 END IF;
61541 --
61542 l_component_type             := 'AMB_JLT';
61543 l_component_code             := 'AP_MISC_EXPENSE_PMT';
61544 l_component_type_code        := 'S';
61545 l_component_appl_id          :=  200;
61546 l_amb_context_code           := 'DEFAULT';
61547 l_entity_code                := 'AP_PAYMENTS';
61548 l_event_class_code           := 'PAYMENTS';
61549 l_event_type_code            := 'PAYMENTS_ALL';
61550 l_line_definition_owner_code := 'S';
61551 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
61552 --
61553 l_balance_type_code          := 'A';
61554 l_segment                     := NULL;
61555 l_ccid                        := NULL;
61556 l_adr_transaction_coa_id      := NULL;
61557 l_adr_accounting_coa_id       := NULL;
61558 l_adr_flexfield_segment_code  := NULL;
61559 l_adr_flex_value_set_id       := NULL;
61560 l_adr_value_type_code         := NULL;
61561 l_adr_value_combination_id    := NULL;
61562 l_adr_value_segment_code      := NULL;
61563 
61564 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
61565 l_bflow_class_code           := '';    -- 4219869 Business Flow
61566 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
61567 l_budgetary_control_flag     := 'N';
61568 
61569 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
61570 l_bflow_applied_to_amt       := NULL; -- 5132302
61574 l_accrual_line_num           := NULL;          -- 4262811
61571 l_entered_amt_idx            := NULL;          -- 4262811
61572 l_accted_amt_idx             := NULL;          -- 4262811
61573 l_acc_rev_flag               := NULL;          -- 4262811
61575 l_tmp_amt                    := NULL;          -- 4262811
61576 --
61577  
61578 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61579     l_balance_type_code <> 'B' THEN
61580 IF NVL(p_source_50,'
61581 ') <>  'CLEAR_CLEAR' AND 
61582 NVL(p_source_32,'
61583 ') =  'MISCELLANEOUS' AND 
61584 (NVL(p_source_51,'
61585 ') =  'CASH' OR 
61586 NVL(p_source_51,'
61587 ') =  'AWT' OR 
61588 NVL(p_source_51,'
61589 ') =  'DISCOUNT') AND 
61590 NVL(p_source_71,'
61591 ') <>  'R'
61592  THEN 
61593 
61594    --
61595    XLA_AE_LINES_PKG.SetNewLine;
61596 
61597    p_balance_type_code          := l_balance_type_code;
61598    -- set the flag so later we will know whether the gain loss line needs to be created
61599    
61600    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61601      p_actual_flag :='A';
61602    END IF;
61603 
61604    --
61605    -- bulk performance
61606    --
61607    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61608                                       p_header_num   => 0); -- 4262811
61609    --
61610    -- set accounting line options
61611    --
61612    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61613            p_natural_side_code          => 'D'
61614          , p_gain_or_loss_flag          => 'N'
61615          , p_gl_transfer_mode_code      => 'S'
61616          , p_acct_entry_type_code       => 'A'
61617          , p_switch_side_flag           => 'Y'
61618          , p_merge_duplicate_code       => 'A'
61619          );
61620    --
61621    l_acc_rev_natural_side_code := 'C';  -- 4262811
61622    -- 
61623    --
61624    -- set accounting line type info
61625    --
61626    xla_ae_lines_pkg.SetAcctLineType
61627       (p_component_type             => l_component_type
61628       ,p_event_type_code            => l_event_type_code
61629       ,p_line_definition_owner_code => l_line_definition_owner_code
61630       ,p_line_definition_code       => l_line_definition_code
61631       ,p_accounting_line_code       => l_component_code
61632       ,p_accounting_line_type_code  => l_component_type_code
61633       ,p_accounting_line_appl_id    => l_component_appl_id
61634       ,p_amb_context_code           => l_amb_context_code
61635       ,p_entity_code                => l_entity_code
61636       ,p_event_class_code           => l_event_class_code);
61637    --
61638    -- set accounting class
61639    --
61640    xla_ae_lines_pkg.SetAcctClass(
61641            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
61642          , p_ae_header_id           => l_ae_header_id
61643          );
61644 
61645    --
61646    -- set rounding class
61647    --
61648    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61649                       'MISCELLANEOUS EXPENSE';
61650 
61651    --
61652    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61653    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61654    --
61655    -- bulk performance
61656    --
61657    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61658 
61659    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61660       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61661 
61662    -- 4955764
61663    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61664       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61665 
61666    -- 4458381 Public Sector Enh
61667    
61668    --
61669    -- set accounting attributes for the line type
61670    --
61671    l_entered_amt_idx := 10;
61672    l_accted_amt_idx  := 15;
61673    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
61674    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61675    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
61676    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
61677    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
61678    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
61679    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
61680    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61681    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
61682    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
61683    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
61684    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
61685    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
61686    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61687    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
61688    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
61689    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
61690    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
61691    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
61695    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
61692    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
61693    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
61694    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
61696    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
61697    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
61698    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
61699    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
61700    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
61701    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
61702    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
61703    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
61704    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
61705    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
61706    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
61707    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
61708    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
61709    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
61710    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
61711    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
61712    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
61713    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
61714    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
61715    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
61716    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
61717    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
61718    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
61719    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
61720    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
61721    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
61722 
61723    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61724    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61725 
61726    ---------------------------------------------------------------------------------------------------------------
61727    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61728    ---------------------------------------------------------------------------------------------------------------
61729    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61730 
61731    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61732    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61733 
61734    IF xla_accounting_cache_pkg.GetValueChar
61735          (p_source_code         => 'LEDGER_CATEGORY_CODE'
61736          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61737    AND l_bflow_method_code = 'PRIOR_ENTRY'
61738 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61739    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61740          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61741        )
61742    THEN
61743          xla_ae_lines_pkg.BflowUpgEntry
61744            (p_business_method_code    => l_bflow_method_code
61745            ,p_business_class_code     => l_bflow_class_code
61746            ,p_balance_type            => l_balance_type_code);
61747    ELSE
61748       NULL;
61749 -- No business flow processing for business flow method of NONE.
61750    END IF;
61751 
61752    --
61753    -- call analytical criteria
61754    --
61755    
61756    --
61757    -- call description
61758    --
61759    -- No description or it is inherited.
61760    --
61761    -- call ADRs
61762    -- Bug 4922099
61763    --
61764    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61765         (NVL(l_actual_upg_option, 'N') = 'O') OR
61766         (NVL(l_enc_upg_option, 'N') = 'O')
61767       )
61768    THEN
61769    NULL;
61770    --
61771    --
61772    
61773   l_ccid := AcctDerRule_28(
61774            p_application_id           => p_application_id
61775          , p_ae_header_id             => l_ae_header_id 
61776 , p_source_29 => p_source_29
61777          , x_transaction_coa_id       => l_adr_transaction_coa_id
61778          , x_accounting_coa_id        => l_adr_accounting_coa_id
61779          , x_value_type_code          => l_adr_value_type_code
61780          , p_side                     => 'NA'
61781    );
61782 
61783    xla_ae_lines_pkg.set_ccid(
61784     p_code_combination_id          => l_ccid
61785   , p_value_type_code              => l_adr_value_type_code
61786   , p_transaction_coa_id           => l_adr_transaction_coa_id
61787   , p_accounting_coa_id            => l_adr_accounting_coa_id
61788   , p_adr_code                     => 'AP_INVOICE_DIST'
61789   , p_adr_type_code                => 'S'
61790   , p_component_type               => l_component_type
61791   , p_component_code               => l_component_code
61792   , p_component_type_code          => l_component_type_code
61793   , p_component_appl_id            => l_component_appl_id
61794   , p_amb_context_code             => l_amb_context_code
61795   , p_side                         => 'NA'
61796   );
61797 
61798 
61799    --
61800    --
61801    END IF;
61802    --
61803    -- Bug 4922099
61804    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61808       )
61805           (NVL(l_enc_upg_option, 'N') = 'O')
61806         ) AND
61807         (l_bflow_method_code = 'PRIOR_ENTRY')
61809    THEN
61810       IF
61811       --
61812       1 = 2
61813       --
61814       THEN
61815       xla_accounting_err_pkg.build_message
61816                                     (p_appli_s_name            => 'XLA'
61817                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61818                                     ,p_token_1                 => 'LINE_NUMBER'
61819                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
61820                                     ,p_token_2                 => 'LINE_TYPE_NAME'
61821                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
61822                                                                              l_component_type
61823                                                                             ,l_component_code
61824                                                                             ,l_component_type_code
61825                                                                             ,l_component_appl_id
61826                                                                             ,l_amb_context_code
61827                                                                             ,l_entity_code
61828                                                                             ,l_event_class_code
61829                                                                            )
61830                                     ,p_token_3                 => 'OWNER'
61831                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
61832                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
61833                                                                           ,p_lookup_code    => l_component_type_code
61834                                                                          )
61835                                     ,p_token_4                 => 'PRODUCT_NAME'
61836                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61837                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61838                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61839                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61840                                     ,p_ae_header_id            =>  NULL
61841                                        );
61842 
61843         IF (C_LEVEL_ERROR>= g_log_level) THEN
61844                  trace
61845                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61846                       ,p_level    => C_LEVEL_ERROR
61847                       ,p_module   => l_log_module);
61848         END IF;
61849       END IF;
61850    END IF;
61851    --
61852    --
61853    ------------------------------------------------------------------------------------------------
61854    -- 4219869 Business Flow
61855    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61856    -- Prior Entry.  Currently, the following code is always generated.
61857    ------------------------------------------------------------------------------------------------
61858    XLA_AE_LINES_PKG.ValidateCurrentLine;
61859 
61860    ------------------------------------------------------------------------------------
61861    -- 4219869 Business Flow
61862    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61863    ------------------------------------------------------------------------------------
61864    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61865 
61866    ----------------------------------------------------------------------------------
61867    -- 4219869 Business Flow
61868    -- Update journal entry status -- Need to generate this within IF <condition>
61869    ----------------------------------------------------------------------------------
61870    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61871          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61872          ,p_balance_type_code => l_balance_type_code
61873          );
61874 
61875    -------------------------------------------------------------------------------------------
61876    -- 4262811 - Generate the Accrual Reversal lines
61877    -------------------------------------------------------------------------------------------
61878    BEGIN
61879       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61880                               (g_array_event(p_event_id).array_value_num('header_index'));
61881       IF l_acc_rev_flag IS NULL THEN
61882          l_acc_rev_flag := 'N';
61883       END IF;
61884    EXCEPTION
61885       WHEN OTHERS THEN
61886          l_acc_rev_flag := 'N';
61887    END;
61888    --
61889    IF (l_acc_rev_flag = 'Y') THEN
61890 
61891        -- 4645092  ------------------------------------------------------------------------------
61892        -- To allow MPA report to determine if it should generate report process
61893        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61894        ------------------------------------------------------------------------------------------
61895 
61896        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61897        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61901    --
61898    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
61899    -- call ADRs
61900    -- Bug 4922099
61902    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61903         (NVL(l_actual_upg_option, 'N') = 'O') OR
61904         (NVL(l_enc_upg_option, 'N') = 'O')
61905       )
61906    THEN
61907    NULL;
61908    --
61909    --
61910    
61911   l_ccid := AcctDerRule_28(
61912            p_application_id           => p_application_id
61913          , p_ae_header_id             => l_ae_header_id 
61914 , p_source_29 => p_source_29
61915          , x_transaction_coa_id       => l_adr_transaction_coa_id
61916          , x_accounting_coa_id        => l_adr_accounting_coa_id
61917          , x_value_type_code          => l_adr_value_type_code
61918          , p_side                     => 'NA'
61919    );
61920 
61921    xla_ae_lines_pkg.set_ccid(
61922     p_code_combination_id          => l_ccid
61923   , p_value_type_code              => l_adr_value_type_code
61924   , p_transaction_coa_id           => l_adr_transaction_coa_id
61925   , p_accounting_coa_id            => l_adr_accounting_coa_id
61926   , p_adr_code                     => 'AP_INVOICE_DIST'
61927   , p_adr_type_code                => 'S'
61928   , p_component_type               => l_component_type
61929   , p_component_code               => l_component_code
61930   , p_component_type_code          => l_component_type_code
61931   , p_component_appl_id            => l_component_appl_id
61932   , p_amb_context_code             => l_amb_context_code
61933   , p_side                         => 'NA'
61934   );
61935 
61936 
61937    --
61938    --
61939    END IF;
61940 
61941        --
61942        -- Update the line information that should be overwritten
61943        --
61944        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61945                                          p_header_num   => 1);
61946        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
61947 
61948        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61949 
61950        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
61951           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61952        END IF;
61953 
61954       --
61955       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61956       --
61957       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61958           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
61959       ELSE
61960           ---------------------------------------------------------------------------------------------------
61961           -- 4262811a Switch Sign
61962           ---------------------------------------------------------------------------------------------------
61963           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
61964           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61965                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61966           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61967                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61968           -- 5132302
61969           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61970                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61971 
61972       END IF;
61973 
61974       -- 4955764
61975       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61976       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61977 
61978 
61979       XLA_AE_LINES_PKG.ValidateCurrentLine;
61980       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61981 
61982       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61983                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61984                ,p_balance_type_code => l_balance_type_code);
61985 
61986    END IF;
61987 
61988    -----------------------------------------------------------------------------------------
61989    -- 4262811 Multiperiod Accounting
61990    -----------------------------------------------------------------------------------------
61991      -- No MPA option is assigned.
61992 
61993 
61994 END IF;
61995 END IF;
61996 --
61997 
61998 --
61999 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62000    trace
62001       (p_msg      => 'END of AcctLineType_116'
62002       ,p_level    => C_LEVEL_PROCEDURE
62003       ,p_module   => l_log_module);
62004 END IF;
62005 --
62006 EXCEPTION
62007   WHEN xla_exceptions_pkg.application_exception THEN
62008       RAISE;
62009   WHEN OTHERS THEN
62010        xla_exceptions_pkg.raise_message
62011            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_116');
62012 END AcctLineType_116;
62013 --
62014 
62015 ---------------------------------------
62016 --
62017 -- PRIVATE FUNCTION
62018 --         AcctLineType_117
62019 --
62020 ---------------------------------------
62024  ,p_calculate_acctd_flag  IN VARCHAR2
62021 PROCEDURE AcctLineType_117 (
62022   p_application_id        IN NUMBER
62023  ,p_event_id              IN NUMBER
62025  ,p_calculate_g_l_flag    IN VARCHAR2
62026  ,p_actual_flag           IN OUT VARCHAR2
62027  ,p_balance_type_code     OUT VARCHAR2
62028  ,p_gain_or_loss_ref      OUT VARCHAR2
62029  
62030 --Payment Currency Code
62031  , p_source_12            IN VARCHAR2
62032 --Payment Distribution (Payment Rate) Ledger Amount
62033  , p_source_21            IN NUMBER
62034 --Invoice Distribution Account
62035  , p_source_29            IN NUMBER
62036 --Invoice Distribution Type
62037  , p_source_32            IN VARCHAR2
62038  , p_source_32_meaning    IN VARCHAR2
62039 --When to Account for Payment Option
62040  , p_source_50            IN VARCHAR2
62041 --Payment Distribution Type
62042  , p_source_51            IN VARCHAR2
62043  , p_source_51_meaning    IN VARCHAR2
62044 --Accounting Reversal Indicator
62045  , p_source_52            IN VARCHAR2
62046 --Payment Distribution Amount
62047  , p_source_53            IN NUMBER
62048 --Business Flow Accounts Payable Application Identifier
62049  , p_source_54            IN NUMBER
62050 --Payment Distribution Identifier
62051  , p_source_59            IN NUMBER
62052 --Distribution Link Type
62053  , p_source_60            IN VARCHAR2
62054 --Override Accounted Amount Indicator
62055  , p_source_64            IN VARCHAR2
62056  , p_source_64_meaning    IN VARCHAR2
62057 --Payment Supplier Identifier
62058  , p_source_65            IN NUMBER
62059 --Payment Supplier Site Identifier
62060  , p_source_66            IN NUMBER
62061 --Third Party Type
62062  , p_source_67            IN VARCHAR2
62063 --Payment Distribution Reversed Identifier
62064  , p_source_68            IN NUMBER
62065 --Invoice Distribution Tax Line Identifier
62066  , p_source_69            IN NUMBER
62067 --Invoice Distribution Summary Tax Line Identifier
62068  , p_source_70            IN NUMBER
62069 --Payment Type
62070  , p_source_71            IN VARCHAR2
62071  , p_source_71_meaning    IN VARCHAR2
62072 --Business Flow Invoice Distribution Type
62073  , p_source_73            IN VARCHAR2
62074 --Business Flow Invoice Entity Code
62075  , p_source_74            IN VARCHAR2
62076 --Business Flow Invoice Distribution Identifier
62077  , p_source_75            IN NUMBER
62078 --Business Flow Invoice Identifier
62079  , p_source_76            IN NUMBER
62080 --Invoice Distribution Tax Distribution Identifier from Tax
62081  , p_source_77            IN NUMBER
62082 --Payment Exchange Date
62083  , p_source_121            IN DATE
62084 --Payment Exchange Rate
62085  , p_source_122            IN NUMBER
62086 --Payment Exchange Rate Type
62087  , p_source_123            IN VARCHAR2
62088 )
62089 IS
62090 
62091 l_component_type              VARCHAR2(80);
62092 l_component_code              VARCHAR2(30);
62093 l_component_type_code         VARCHAR2(1);
62094 l_component_appl_id           INTEGER;
62095 l_amb_context_code            VARCHAR2(30);
62096 l_entity_code                 VARCHAR2(30);
62097 l_event_class_code            VARCHAR2(30);
62098 l_ae_header_id                NUMBER;
62099 l_event_type_code             VARCHAR2(30);
62100 l_line_definition_code        VARCHAR2(30);
62101 l_line_definition_owner_code  VARCHAR2(1);
62102 --
62103 -- adr variables
62104 l_segment                     VARCHAR2(30);
62105 l_ccid                        NUMBER;
62106 l_adr_transaction_coa_id      NUMBER;
62107 l_adr_accounting_coa_id       NUMBER;
62108 l_adr_flexfield_segment_code  VARCHAR2(30);
62109 l_adr_flex_value_set_id       NUMBER;
62110 l_adr_value_type_code         VARCHAR2(30);
62111 l_adr_value_combination_id    NUMBER;
62112 l_adr_value_segment_code      VARCHAR2(30);
62113 
62114 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
62115 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
62116 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
62117 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
62118 
62119 -- 4262811 Variables ------------------------------------------------------------------------------------------
62120 l_entered_amt_idx             NUMBER;
62121 l_accted_amt_idx              NUMBER;
62122 l_acc_rev_flag                VARCHAR2(1);
62123 l_accrual_line_num            NUMBER;
62124 l_tmp_amt                     NUMBER;
62125 l_acc_rev_natural_side_code   VARCHAR2(1);
62126 
62127 l_num_entries                 NUMBER;
62128 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
62129 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
62130 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
62131 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
62132 l_recog_line_1                NUMBER;
62133 l_recog_line_2                NUMBER;
62134 
62135 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
62136 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
62137 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
62138 
62139 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62140 
62141 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
62142 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
62143 
62147 --
62144 ---------------------------------------------------------------------------------------------------------------
62145 
62146 
62148 -- bulk performance
62149 --
62150 l_balance_type_code           VARCHAR2(1);
62151 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
62152 l_log_module                  VARCHAR2(240);
62153 
62154 --
62155 -- Upgrade strategy
62156 --
62157 l_actual_upg_option           VARCHAR2(1);
62158 l_enc_upg_option           VARCHAR2(1);
62159 
62160 --
62161 BEGIN
62162 --
62163 IF g_log_enabled THEN
62164       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_117';
62165 END IF;
62166 --
62167 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62168 
62169       trace
62170          (p_msg      => 'BEGIN of AcctLineType_117'
62171          ,p_level    => C_LEVEL_PROCEDURE
62172          ,p_module   => l_log_module);
62173 
62174 END IF;
62175 --
62176 l_component_type             := 'AMB_JLT';
62177 l_component_code             := 'AP_MISC_EXPENSE_REF';
62178 l_component_type_code        := 'S';
62179 l_component_appl_id          :=  200;
62180 l_amb_context_code           := 'DEFAULT';
62181 l_entity_code                := 'AP_PAYMENTS';
62182 l_event_class_code           := 'REFUNDS';
62183 l_event_type_code            := 'REFUNDS_ALL';
62184 l_line_definition_owner_code := 'S';
62185 l_line_definition_code       := 'CASH_REFUNDS_ALL';
62186 --
62187 l_balance_type_code          := 'A';
62188 l_segment                     := NULL;
62189 l_ccid                        := NULL;
62190 l_adr_transaction_coa_id      := NULL;
62191 l_adr_accounting_coa_id       := NULL;
62192 l_adr_flexfield_segment_code  := NULL;
62193 l_adr_flex_value_set_id       := NULL;
62194 l_adr_value_type_code         := NULL;
62195 l_adr_value_combination_id    := NULL;
62196 l_adr_value_segment_code      := NULL;
62197 
62198 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
62199 l_bflow_class_code           := '';    -- 4219869 Business Flow
62200 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
62201 l_budgetary_control_flag     := 'N';
62202 
62203 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
62204 l_bflow_applied_to_amt       := NULL; -- 5132302
62205 l_entered_amt_idx            := NULL;          -- 4262811
62206 l_accted_amt_idx             := NULL;          -- 4262811
62207 l_acc_rev_flag               := NULL;          -- 4262811
62208 l_accrual_line_num           := NULL;          -- 4262811
62209 l_tmp_amt                    := NULL;          -- 4262811
62210 --
62211  
62212 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62213     l_balance_type_code <> 'B' THEN
62214 IF NVL(p_source_50,'
62215 ') <>  'CLEAR_CLEAR' AND 
62216 NVL(p_source_32,'
62217 ') =  'MISCELLANEOUS' AND 
62218 (NVL(p_source_51,'
62219 ') =  'CASH' OR 
62220 NVL(p_source_51,'
62221 ') =  'DISCOUNT') AND 
62222 NVL(p_source_71,'
62223 ') =  'R'
62224  THEN 
62225 
62226    --
62227    XLA_AE_LINES_PKG.SetNewLine;
62228 
62229    p_balance_type_code          := l_balance_type_code;
62230    -- set the flag so later we will know whether the gain loss line needs to be created
62231    
62232    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62233      p_actual_flag :='A';
62234    END IF;
62235 
62236    --
62237    -- bulk performance
62238    --
62239    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62240                                       p_header_num   => 0); -- 4262811
62241    --
62242    -- set accounting line options
62243    --
62244    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62245            p_natural_side_code          => 'D'
62246          , p_gain_or_loss_flag          => 'N'
62247          , p_gl_transfer_mode_code      => 'S'
62248          , p_acct_entry_type_code       => 'A'
62249          , p_switch_side_flag           => 'Y'
62250          , p_merge_duplicate_code       => 'A'
62251          );
62252    --
62253    l_acc_rev_natural_side_code := 'C';  -- 4262811
62254    -- 
62255    --
62256    -- set accounting line type info
62257    --
62258    xla_ae_lines_pkg.SetAcctLineType
62259       (p_component_type             => l_component_type
62260       ,p_event_type_code            => l_event_type_code
62261       ,p_line_definition_owner_code => l_line_definition_owner_code
62262       ,p_line_definition_code       => l_line_definition_code
62263       ,p_accounting_line_code       => l_component_code
62264       ,p_accounting_line_type_code  => l_component_type_code
62265       ,p_accounting_line_appl_id    => l_component_appl_id
62266       ,p_amb_context_code           => l_amb_context_code
62267       ,p_entity_code                => l_entity_code
62268       ,p_event_class_code           => l_event_class_code);
62269    --
62270    -- set accounting class
62271    --
62272    xla_ae_lines_pkg.SetAcctClass(
62273            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
62274          , p_ae_header_id           => l_ae_header_id
62275          );
62276 
62277    --
62278    -- set rounding class
62279    --
62280    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62281                       'MISCELLANEOUS EXPENSE';
62282 
62283    --
62287    -- bulk performance
62284    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62285    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62286    --
62288    --
62289    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62290 
62291    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62292       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62293 
62294    -- 4955764
62295    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62296       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62297 
62298    -- 4458381 Public Sector Enh
62299    
62300    --
62301    -- set accounting attributes for the line type
62302    --
62303    l_entered_amt_idx := 9;
62304    l_accted_amt_idx  := 14;
62305    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
62306    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62307    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
62308    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
62309    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
62310    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62311    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
62312    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
62313    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
62314    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
62315    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
62316    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62317    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
62318    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
62319    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
62320    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
62321    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
62322    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
62323    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
62324    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
62325    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
62326    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
62327    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
62328    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
62329    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
62330    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
62331    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
62332    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
62333    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
62334    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
62335    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
62336    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
62337    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
62338    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
62339    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
62340    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
62341    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
62342    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
62343    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
62344    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
62345    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
62346    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
62347    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
62348    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
62349    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
62350    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
62351    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
62352 
62353    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62354    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62355 
62356    ---------------------------------------------------------------------------------------------------------------
62357    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62358    ---------------------------------------------------------------------------------------------------------------
62359    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62360 
62361    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62362    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62363 
62364    IF xla_accounting_cache_pkg.GetValueChar
62365          (p_source_code         => 'LEDGER_CATEGORY_CODE'
62366          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62367    AND l_bflow_method_code = 'PRIOR_ENTRY'
62368 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62369    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62370          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62371        )
62372    THEN
62373          xla_ae_lines_pkg.BflowUpgEntry
62377    ELSE
62374            (p_business_method_code    => l_bflow_method_code
62375            ,p_business_class_code     => l_bflow_class_code
62376            ,p_balance_type            => l_balance_type_code);
62378       NULL;
62379 -- No business flow processing for business flow method of NONE.
62380    END IF;
62381 
62382    --
62383    -- call analytical criteria
62384    --
62385    
62386    --
62387    -- call description
62388    --
62389    -- No description or it is inherited.
62390    --
62391    -- call ADRs
62392    -- Bug 4922099
62393    --
62394    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62395         (NVL(l_actual_upg_option, 'N') = 'O') OR
62396         (NVL(l_enc_upg_option, 'N') = 'O')
62397       )
62398    THEN
62399    NULL;
62400    --
62401    --
62402    
62403   l_ccid := AcctDerRule_28(
62404            p_application_id           => p_application_id
62405          , p_ae_header_id             => l_ae_header_id 
62406 , p_source_29 => p_source_29
62407          , x_transaction_coa_id       => l_adr_transaction_coa_id
62408          , x_accounting_coa_id        => l_adr_accounting_coa_id
62409          , x_value_type_code          => l_adr_value_type_code
62410          , p_side                     => 'NA'
62411    );
62412 
62413    xla_ae_lines_pkg.set_ccid(
62414     p_code_combination_id          => l_ccid
62415   , p_value_type_code              => l_adr_value_type_code
62416   , p_transaction_coa_id           => l_adr_transaction_coa_id
62417   , p_accounting_coa_id            => l_adr_accounting_coa_id
62418   , p_adr_code                     => 'AP_INVOICE_DIST'
62419   , p_adr_type_code                => 'S'
62420   , p_component_type               => l_component_type
62421   , p_component_code               => l_component_code
62422   , p_component_type_code          => l_component_type_code
62423   , p_component_appl_id            => l_component_appl_id
62424   , p_amb_context_code             => l_amb_context_code
62425   , p_side                         => 'NA'
62426   );
62427 
62428 
62429    --
62430    --
62431    END IF;
62432    --
62433    -- Bug 4922099
62434    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62435           (NVL(l_enc_upg_option, 'N') = 'O')
62436         ) AND
62437         (l_bflow_method_code = 'PRIOR_ENTRY')
62438       )
62439    THEN
62440       IF
62441       --
62442       1 = 2
62443       --
62444       THEN
62445       xla_accounting_err_pkg.build_message
62446                                     (p_appli_s_name            => 'XLA'
62447                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62448                                     ,p_token_1                 => 'LINE_NUMBER'
62449                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
62450                                     ,p_token_2                 => 'LINE_TYPE_NAME'
62451                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
62452                                                                              l_component_type
62453                                                                             ,l_component_code
62454                                                                             ,l_component_type_code
62455                                                                             ,l_component_appl_id
62456                                                                             ,l_amb_context_code
62457                                                                             ,l_entity_code
62458                                                                             ,l_event_class_code
62459                                                                            )
62460                                     ,p_token_3                 => 'OWNER'
62461                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
62462                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
62463                                                                           ,p_lookup_code    => l_component_type_code
62464                                                                          )
62465                                     ,p_token_4                 => 'PRODUCT_NAME'
62466                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62467                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62468                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62469                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62470                                     ,p_ae_header_id            =>  NULL
62471                                        );
62472 
62473         IF (C_LEVEL_ERROR>= g_log_level) THEN
62474                  trace
62475                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62476                       ,p_level    => C_LEVEL_ERROR
62477                       ,p_module   => l_log_module);
62478         END IF;
62479       END IF;
62480    END IF;
62481    --
62482    --
62483    ------------------------------------------------------------------------------------------------
62484    -- 4219869 Business Flow
62485    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62489 
62486    -- Prior Entry.  Currently, the following code is always generated.
62487    ------------------------------------------------------------------------------------------------
62488    XLA_AE_LINES_PKG.ValidateCurrentLine;
62490    ------------------------------------------------------------------------------------
62491    -- 4219869 Business Flow
62492    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62493    ------------------------------------------------------------------------------------
62494    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62495 
62496    ----------------------------------------------------------------------------------
62497    -- 4219869 Business Flow
62498    -- Update journal entry status -- Need to generate this within IF <condition>
62499    ----------------------------------------------------------------------------------
62500    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62501          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62502          ,p_balance_type_code => l_balance_type_code
62503          );
62504 
62505    -------------------------------------------------------------------------------------------
62506    -- 4262811 - Generate the Accrual Reversal lines
62507    -------------------------------------------------------------------------------------------
62508    BEGIN
62509       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62510                               (g_array_event(p_event_id).array_value_num('header_index'));
62511       IF l_acc_rev_flag IS NULL THEN
62512          l_acc_rev_flag := 'N';
62513       END IF;
62514    EXCEPTION
62515       WHEN OTHERS THEN
62516          l_acc_rev_flag := 'N';
62517    END;
62518    --
62519    IF (l_acc_rev_flag = 'Y') THEN
62520 
62521        -- 4645092  ------------------------------------------------------------------------------
62522        -- To allow MPA report to determine if it should generate report process
62523        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62524        ------------------------------------------------------------------------------------------
62525 
62526        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62527        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62528    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
62529    -- call ADRs
62530    -- Bug 4922099
62531    --
62532    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62533         (NVL(l_actual_upg_option, 'N') = 'O') OR
62534         (NVL(l_enc_upg_option, 'N') = 'O')
62535       )
62536    THEN
62537    NULL;
62538    --
62539    --
62540    
62541   l_ccid := AcctDerRule_28(
62542            p_application_id           => p_application_id
62543          , p_ae_header_id             => l_ae_header_id 
62544 , p_source_29 => p_source_29
62545          , x_transaction_coa_id       => l_adr_transaction_coa_id
62546          , x_accounting_coa_id        => l_adr_accounting_coa_id
62547          , x_value_type_code          => l_adr_value_type_code
62548          , p_side                     => 'NA'
62549    );
62550 
62551    xla_ae_lines_pkg.set_ccid(
62552     p_code_combination_id          => l_ccid
62553   , p_value_type_code              => l_adr_value_type_code
62554   , p_transaction_coa_id           => l_adr_transaction_coa_id
62555   , p_accounting_coa_id            => l_adr_accounting_coa_id
62556   , p_adr_code                     => 'AP_INVOICE_DIST'
62557   , p_adr_type_code                => 'S'
62558   , p_component_type               => l_component_type
62559   , p_component_code               => l_component_code
62560   , p_component_type_code          => l_component_type_code
62561   , p_component_appl_id            => l_component_appl_id
62562   , p_amb_context_code             => l_amb_context_code
62563   , p_side                         => 'NA'
62564   );
62565 
62566 
62567    --
62568    --
62569    END IF;
62570 
62571        --
62572        -- Update the line information that should be overwritten
62573        --
62574        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62575                                          p_header_num   => 1);
62576        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
62577 
62578        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62579 
62580        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
62581           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62582        END IF;
62583 
62584       --
62585       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62586       --
62587       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62588           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
62589       ELSE
62590           ---------------------------------------------------------------------------------------------------
62591           -- 4262811a Switch Sign
62592           ---------------------------------------------------------------------------------------------------
62593           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
62594           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62598           -- 5132302
62595                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62596           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62597                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62599           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62600                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62601 
62602       END IF;
62603 
62604       -- 4955764
62605       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62606       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62607 
62608 
62609       XLA_AE_LINES_PKG.ValidateCurrentLine;
62610       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62611 
62612       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62613                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62614                ,p_balance_type_code => l_balance_type_code);
62615 
62616    END IF;
62617 
62618    -----------------------------------------------------------------------------------------
62619    -- 4262811 Multiperiod Accounting
62620    -----------------------------------------------------------------------------------------
62621      -- No MPA option is assigned.
62622 
62623 
62624 END IF;
62625 END IF;
62626 --
62627 
62628 --
62629 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62630    trace
62631       (p_msg      => 'END of AcctLineType_117'
62632       ,p_level    => C_LEVEL_PROCEDURE
62633       ,p_module   => l_log_module);
62634 END IF;
62635 --
62636 EXCEPTION
62637   WHEN xla_exceptions_pkg.application_exception THEN
62638       RAISE;
62639   WHEN OTHERS THEN
62640        xla_exceptions_pkg.raise_message
62641            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_117');
62642 END AcctLineType_117;
62643 --
62644 
62645 ---------------------------------------
62646 --
62647 -- PRIVATE FUNCTION
62648 --         AcctLineType_118
62649 --
62650 ---------------------------------------
62651 PROCEDURE AcctLineType_118 (
62652   p_application_id        IN NUMBER
62653  ,p_event_id              IN NUMBER
62654  ,p_calculate_acctd_flag  IN VARCHAR2
62655  ,p_calculate_g_l_flag    IN VARCHAR2
62656  ,p_actual_flag           IN OUT VARCHAR2
62657  ,p_balance_type_code     OUT VARCHAR2
62658  ,p_gain_or_loss_ref      OUT VARCHAR2
62659  
62660 --Recipient Invoice Distribution Account
62661  , p_source_48            IN NUMBER
62662 --When to Account for Payment Option
62663  , p_source_50            IN VARCHAR2
62664 --Accounting Reversal Indicator
62665  , p_source_52            IN VARCHAR2
62666 --Business Flow Accounts Payable Application Identifier
62667  , p_source_54            IN NUMBER
62668 --Distribution Link Type
62669  , p_source_60            IN VARCHAR2
62670 --Override Accounted Amount Indicator
62671  , p_source_64            IN VARCHAR2
62672  , p_source_64_meaning    IN VARCHAR2
62673 --Third Party Type
62674  , p_source_67            IN VARCHAR2
62675 --Invoice Distribution Tax Line Identifier
62676  , p_source_69            IN NUMBER
62677 --Invoice Distribution Summary Tax Line Identifier
62678  , p_source_70            IN NUMBER
62679 --Invoice Distribution Tax Distribution Identifier from Tax
62680  , p_source_77            IN NUMBER
62681 --Prepayment Distribution Type
62682  , p_source_78            IN VARCHAR2
62683 --Recipient Invoice Distribution Type
62684  , p_source_79            IN VARCHAR2
62685  , p_source_79_meaning    IN VARCHAR2
62686 --Prepayment Application Distribution Identifier
62687  , p_source_82            IN NUMBER
62688 --Invoice Identifier
62689  , p_source_83            IN NUMBER
62690 --Business Flow Prepayment Invoice Distribution Type
62691  , p_source_84            IN VARCHAR2
62692 --Business Flow Prepayment Invoice Entity Code
62693  , p_source_85            IN VARCHAR2
62694 --Business Flow Prepayment Invoice Distribution Identifier
62695  , p_source_86            IN NUMBER
62696 --Business Flow Prepayment Invoice Identifier
62697  , p_source_87            IN NUMBER
62698 --Upgrade Encumbrance Credit Account Class
62699  , p_source_88            IN VARCHAR2
62700 --Payables Encumbrance Upgrade Credit Account
62701  , p_source_89            IN NUMBER
62702 --Payables Encumbrance Upgrade Credit Amount
62703  , p_source_90            IN NUMBER
62704 --Invoice Currency Code
62705  , p_source_91            IN VARCHAR2
62706 --Payables Encumbrance Upgrade Credit Base Amount
62707  , p_source_92            IN NUMBER
62708 --Upgrade Encumbrance Debit Account Class
62709  , p_source_93            IN VARCHAR2
62710 --Payables Encumbrance Upgrade Debit Account
62711  , p_source_94            IN NUMBER
62712 --Payables Encumbrance Upgrade Debit Amount
62713  , p_source_95            IN NUMBER
62714 --Payables Encumbrance Upgrade Debit Base Amount
62715  , p_source_96            IN NUMBER
62716 --Payables Encumbrance Upgrade Option
62717  , p_source_97            IN VARCHAR2
62718 --Prepayment Distribution Amount
62719  , p_source_98            IN NUMBER
62720 --Prepayment Clearing Currency Code
62721  , p_source_99            IN VARCHAR2
62722 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
62723  , p_source_100            IN NUMBER
62724 --Deferred Accounting End Date
62725  , p_source_101            IN DATE
62729  , p_source_103            IN DATE
62726 --Deferred Accounting Option
62727  , p_source_102            IN VARCHAR2
62728 --Deferred Accounting Start Date
62730 --Invoice Supplier Identifier
62731  , p_source_104            IN NUMBER
62732 --Invoice Supplier Site Identifier
62733  , p_source_105            IN NUMBER
62734 --Identifier of the Prepayment Application Reversed
62735  , p_source_106            IN NUMBER
62736 --Payables Upgrade Credit Encumbrance Type Identifier
62737  , p_source_107            IN NUMBER
62738 --Payables Upgrade Debit Encumbrance Type Identifier
62739  , p_source_108            IN NUMBER
62740 --Prepayment Clearing Exchange Date
62741  , p_source_125            IN DATE
62742 --Prepayment Clearing Exchange Rate
62743  , p_source_126            IN NUMBER
62744 --Prepayment Clearing Exchange Rate Type
62745  , p_source_127            IN VARCHAR2
62746 )
62747 IS
62748 
62749 l_component_type              VARCHAR2(80);
62750 l_component_code              VARCHAR2(30);
62751 l_component_type_code         VARCHAR2(1);
62752 l_component_appl_id           INTEGER;
62753 l_amb_context_code            VARCHAR2(30);
62754 l_entity_code                 VARCHAR2(30);
62755 l_event_class_code            VARCHAR2(30);
62756 l_ae_header_id                NUMBER;
62757 l_event_type_code             VARCHAR2(30);
62758 l_line_definition_code        VARCHAR2(30);
62759 l_line_definition_owner_code  VARCHAR2(1);
62760 --
62761 -- adr variables
62762 l_segment                     VARCHAR2(30);
62763 l_ccid                        NUMBER;
62764 l_adr_transaction_coa_id      NUMBER;
62765 l_adr_accounting_coa_id       NUMBER;
62766 l_adr_flexfield_segment_code  VARCHAR2(30);
62767 l_adr_flex_value_set_id       NUMBER;
62768 l_adr_value_type_code         VARCHAR2(30);
62769 l_adr_value_combination_id    NUMBER;
62770 l_adr_value_segment_code      VARCHAR2(30);
62771 
62772 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
62773 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
62774 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
62775 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
62776 
62777 -- 4262811 Variables ------------------------------------------------------------------------------------------
62778 l_entered_amt_idx             NUMBER;
62779 l_accted_amt_idx              NUMBER;
62780 l_acc_rev_flag                VARCHAR2(1);
62781 l_accrual_line_num            NUMBER;
62782 l_tmp_amt                     NUMBER;
62783 l_acc_rev_natural_side_code   VARCHAR2(1);
62784 
62785 l_num_entries                 NUMBER;
62786 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
62787 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
62788 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
62789 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
62790 l_recog_line_1                NUMBER;
62791 l_recog_line_2                NUMBER;
62792 
62793 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
62794 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
62795 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
62796 
62797 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62798 
62799 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
62800 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
62801 
62802 ---------------------------------------------------------------------------------------------------------------
62803 
62804 
62805 --
62806 -- bulk performance
62807 --
62808 l_balance_type_code           VARCHAR2(1);
62809 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
62810 l_log_module                  VARCHAR2(240);
62811 
62812 --
62813 -- Upgrade strategy
62814 --
62815 l_actual_upg_option           VARCHAR2(1);
62816 l_enc_upg_option           VARCHAR2(1);
62817 
62818 --
62819 BEGIN
62820 --
62821 IF g_log_enabled THEN
62822       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_118';
62823 END IF;
62824 --
62825 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62826 
62827       trace
62828          (p_msg      => 'BEGIN of AcctLineType_118'
62829          ,p_level    => C_LEVEL_PROCEDURE
62830          ,p_module   => l_log_module);
62831 
62832 END IF;
62833 --
62834 l_component_type             := 'AMB_JLT';
62835 l_component_code             := 'AP_MISC_PREPAY_CLR_RATE_APP';
62836 l_component_type_code        := 'S';
62837 l_component_appl_id          :=  200;
62838 l_amb_context_code           := 'DEFAULT';
62839 l_entity_code                := 'AP_INVOICES';
62840 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
62841 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
62842 l_line_definition_owner_code := 'S';
62843 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
62844 --
62845 l_balance_type_code          := 'A';
62846 l_segment                     := NULL;
62847 l_ccid                        := NULL;
62848 l_adr_transaction_coa_id      := NULL;
62849 l_adr_accounting_coa_id       := NULL;
62850 l_adr_flexfield_segment_code  := NULL;
62851 l_adr_flex_value_set_id       := NULL;
62852 l_adr_value_type_code         := NULL;
62856 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
62853 l_adr_value_combination_id    := NULL;
62854 l_adr_value_segment_code      := NULL;
62855 
62857 l_bflow_class_code           := '';    -- 4219869 Business Flow
62858 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
62859 l_budgetary_control_flag     := 'N';
62860 
62861 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
62862 l_bflow_applied_to_amt       := NULL; -- 5132302
62863 l_entered_amt_idx            := NULL;          -- 4262811
62864 l_accted_amt_idx             := NULL;          -- 4262811
62865 l_acc_rev_flag               := NULL;          -- 4262811
62866 l_accrual_line_num           := NULL;          -- 4262811
62867 l_tmp_amt                    := NULL;          -- 4262811
62868 --
62869  
62870 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62871     l_balance_type_code <> 'B' THEN
62872 IF NVL(p_source_50,'
62873 ') =  'CLEAR_CLEAR' AND 
62874 (NVL(p_source_78,'
62875 ') =  'PREPAY APPL' OR 
62876 NVL(p_source_78,'
62877 ') =  'PREPAY APPL NONREC TAX' OR 
62878 NVL(p_source_78,'
62879 ') =  'PREPAY APPL REC TAX') AND 
62880 NVL(p_source_79,'
62881 ') =  'MISCELLANEOUS'
62882  THEN 
62883 
62884    --
62885    XLA_AE_LINES_PKG.SetNewLine;
62886 
62887    p_balance_type_code          := l_balance_type_code;
62888    -- set the flag so later we will know whether the gain loss line needs to be created
62889    
62890    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62891      p_actual_flag :='A';
62892    END IF;
62893 
62894    --
62895    -- bulk performance
62896    --
62897    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62898                                       p_header_num   => 0); -- 4262811
62899    --
62900    -- set accounting line options
62901    --
62902    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62903            p_natural_side_code          => 'C'
62904          , p_gain_or_loss_flag          => 'N'
62905          , p_gl_transfer_mode_code      => 'S'
62906          , p_acct_entry_type_code       => 'A'
62907          , p_switch_side_flag           => 'Y'
62908          , p_merge_duplicate_code       => 'A'
62909          );
62910    --
62911    l_acc_rev_natural_side_code := 'D';  -- 4262811
62912    -- 
62913    --
62914    -- set accounting line type info
62915    --
62916    xla_ae_lines_pkg.SetAcctLineType
62917       (p_component_type             => l_component_type
62918       ,p_event_type_code            => l_event_type_code
62919       ,p_line_definition_owner_code => l_line_definition_owner_code
62920       ,p_line_definition_code       => l_line_definition_code
62921       ,p_accounting_line_code       => l_component_code
62922       ,p_accounting_line_type_code  => l_component_type_code
62923       ,p_accounting_line_appl_id    => l_component_appl_id
62924       ,p_amb_context_code           => l_amb_context_code
62925       ,p_entity_code                => l_entity_code
62926       ,p_event_class_code           => l_event_class_code);
62927    --
62928    -- set accounting class
62929    --
62930    xla_ae_lines_pkg.SetAcctClass(
62931            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
62932          , p_ae_header_id           => l_ae_header_id
62933          );
62934 
62935    --
62936    -- set rounding class
62937    --
62938    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62939                       'MISCELLANEOUS EXPENSE';
62940 
62941    --
62942    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62943    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62944    --
62945    -- bulk performance
62946    --
62947    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62948 
62949    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62950       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62951 
62952    -- 4955764
62953    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62954       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62955 
62956    -- 4458381 Public Sector Enh
62957    
62958    --
62959    -- set accounting attributes for the line type
62960    --
62961    l_entered_amt_idx := 25;
62962    l_accted_amt_idx  := 30;
62963    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
62964    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62965    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
62966    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
62967    l_rec_acct_attrs.array_num_value(2)  := 
62968 xla_ae_sources_pkg.GetSystemSourceNum(
62969    p_source_code           => 'XLA_EVENT_APPL_ID'
62970  , p_source_type_code      => 'Y'
62971  , p_source_application_id =>  602
62972 );
62973    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
62974    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
62975    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
62976    l_rec_acct_attrs.array_char_value(4)  := 
62977 xla_ae_sources_pkg.GetSystemSourceChar(
62981 );
62978    p_source_code           => 'XLA_ENTITY_CODE'
62979  , p_source_type_code      => 'Y'
62980  , p_source_application_id =>  602
62982    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
62983    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
62984    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
62985    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
62986    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
62987    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
62988    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62989    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
62990    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
62991    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
62992    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
62993    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
62994    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62995    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
62996    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
62997    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
62998    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
62999    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
63000    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
63001    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
63002    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
63003    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
63004    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
63005    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
63006    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
63007    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
63008    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
63009    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
63010    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
63011    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
63012    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
63013    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
63014    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
63015    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
63016    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
63017    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
63018    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
63019    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
63020    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
63021    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
63022    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
63023    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
63024    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
63025    l_rec_acct_attrs.array_char_value(26)  := p_source_99;
63026    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
63027    l_rec_acct_attrs.array_date_value(27)  := p_source_125;
63028    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
63029    l_rec_acct_attrs.array_num_value(28)  := p_source_126;
63030    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
63031    l_rec_acct_attrs.array_char_value(29)  := p_source_127;
63032    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
63033    l_rec_acct_attrs.array_num_value(30)  := p_source_100;
63034    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
63035    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
63036    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
63037    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
63038    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
63039    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
63040    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
63041    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
63042    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
63043    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
63044    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
63045    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
63046    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
63047    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
63048    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
63049    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
63050    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
63051    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
63052    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
63053    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
63054    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
63055    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
63056    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
63057    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
63058    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
63059    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
63060    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
63064    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63061    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
63062 
63063    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63065 
63066    ---------------------------------------------------------------------------------------------------------------
63067    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63068    ---------------------------------------------------------------------------------------------------------------
63069    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63070 
63071    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63072    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63073 
63074    IF xla_accounting_cache_pkg.GetValueChar
63075          (p_source_code         => 'LEDGER_CATEGORY_CODE'
63076          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63077    AND l_bflow_method_code = 'PRIOR_ENTRY'
63078 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63079    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63080          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63081        )
63082    THEN
63083          xla_ae_lines_pkg.BflowUpgEntry
63084            (p_business_method_code    => l_bflow_method_code
63085            ,p_business_class_code     => l_bflow_class_code
63086            ,p_balance_type            => l_balance_type_code);
63087    ELSE
63088       NULL;
63089 -- No business flow processing for business flow method of NONE.
63090    END IF;
63091 
63092    --
63093    -- call analytical criteria
63094    --
63095    
63096    --
63097    -- call description
63098    --
63099    -- No description or it is inherited.
63100    --
63101    -- call ADRs
63102    -- Bug 4922099
63103    --
63104    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63105         (NVL(l_actual_upg_option, 'N') = 'O') OR
63106         (NVL(l_enc_upg_option, 'N') = 'O')
63107       )
63108    THEN
63109    NULL;
63110    --
63111    --
63112    
63113   l_ccid := AcctDerRule_35(
63114            p_application_id           => p_application_id
63115          , p_ae_header_id             => l_ae_header_id 
63116 , p_source_48 => p_source_48
63117          , x_transaction_coa_id       => l_adr_transaction_coa_id
63118          , x_accounting_coa_id        => l_adr_accounting_coa_id
63119          , x_value_type_code          => l_adr_value_type_code
63120          , p_side                     => 'NA'
63121    );
63122 
63123    xla_ae_lines_pkg.set_ccid(
63124     p_code_combination_id          => l_ccid
63125   , p_value_type_code              => l_adr_value_type_code
63126   , p_transaction_coa_id           => l_adr_transaction_coa_id
63127   , p_accounting_coa_id            => l_adr_accounting_coa_id
63128   , p_adr_code                     => 'AP_RECP_INV_DIST'
63129   , p_adr_type_code                => 'S'
63130   , p_component_type               => l_component_type
63131   , p_component_code               => l_component_code
63132   , p_component_type_code          => l_component_type_code
63133   , p_component_appl_id            => l_component_appl_id
63134   , p_amb_context_code             => l_amb_context_code
63135   , p_side                         => 'NA'
63136   );
63137 
63138 
63139    --
63140    --
63141    END IF;
63142    --
63143    -- Bug 4922099
63144    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63145           (NVL(l_enc_upg_option, 'N') = 'O')
63146         ) AND
63147         (l_bflow_method_code = 'PRIOR_ENTRY')
63148       )
63149    THEN
63150       IF
63151       --
63152       1 = 2
63153       --
63154       THEN
63155       xla_accounting_err_pkg.build_message
63156                                     (p_appli_s_name            => 'XLA'
63157                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63158                                     ,p_token_1                 => 'LINE_NUMBER'
63159                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
63160                                     ,p_token_2                 => 'LINE_TYPE_NAME'
63161                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
63162                                                                              l_component_type
63163                                                                             ,l_component_code
63164                                                                             ,l_component_type_code
63165                                                                             ,l_component_appl_id
63166                                                                             ,l_amb_context_code
63167                                                                             ,l_entity_code
63168                                                                             ,l_event_class_code
63169                                                                            )
63170                                     ,p_token_3                 => 'OWNER'
63171                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
63172                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
63176                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63173                                                                           ,p_lookup_code    => l_component_type_code
63174                                                                          )
63175                                     ,p_token_4                 => 'PRODUCT_NAME'
63177                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63178                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63179                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63180                                     ,p_ae_header_id            =>  NULL
63181                                        );
63182 
63183         IF (C_LEVEL_ERROR>= g_log_level) THEN
63184                  trace
63185                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63186                       ,p_level    => C_LEVEL_ERROR
63187                       ,p_module   => l_log_module);
63188         END IF;
63189       END IF;
63190    END IF;
63191    --
63192    --
63193    ------------------------------------------------------------------------------------------------
63194    -- 4219869 Business Flow
63195    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63196    -- Prior Entry.  Currently, the following code is always generated.
63197    ------------------------------------------------------------------------------------------------
63198    XLA_AE_LINES_PKG.ValidateCurrentLine;
63199 
63200    ------------------------------------------------------------------------------------
63201    -- 4219869 Business Flow
63202    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63203    ------------------------------------------------------------------------------------
63204    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63205 
63206    ----------------------------------------------------------------------------------
63207    -- 4219869 Business Flow
63208    -- Update journal entry status -- Need to generate this within IF <condition>
63209    ----------------------------------------------------------------------------------
63210    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63211          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63212          ,p_balance_type_code => l_balance_type_code
63213          );
63214 
63215    -------------------------------------------------------------------------------------------
63216    -- 4262811 - Generate the Accrual Reversal lines
63217    -------------------------------------------------------------------------------------------
63218    BEGIN
63219       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63220                               (g_array_event(p_event_id).array_value_num('header_index'));
63221       IF l_acc_rev_flag IS NULL THEN
63222          l_acc_rev_flag := 'N';
63223       END IF;
63224    EXCEPTION
63225       WHEN OTHERS THEN
63226          l_acc_rev_flag := 'N';
63227    END;
63228    --
63229    IF (l_acc_rev_flag = 'Y') THEN
63230 
63231        -- 4645092  ------------------------------------------------------------------------------
63232        -- To allow MPA report to determine if it should generate report process
63233        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63234        ------------------------------------------------------------------------------------------
63235 
63236        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63237        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63238    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
63239    -- call ADRs
63240    -- Bug 4922099
63241    --
63242    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63243         (NVL(l_actual_upg_option, 'N') = 'O') OR
63244         (NVL(l_enc_upg_option, 'N') = 'O')
63245       )
63246    THEN
63247    NULL;
63248    --
63249    --
63250    
63251   l_ccid := AcctDerRule_35(
63252            p_application_id           => p_application_id
63253          , p_ae_header_id             => l_ae_header_id 
63254 , p_source_48 => p_source_48
63255          , x_transaction_coa_id       => l_adr_transaction_coa_id
63256          , x_accounting_coa_id        => l_adr_accounting_coa_id
63257          , x_value_type_code          => l_adr_value_type_code
63258          , p_side                     => 'NA'
63259    );
63260 
63261    xla_ae_lines_pkg.set_ccid(
63262     p_code_combination_id          => l_ccid
63263   , p_value_type_code              => l_adr_value_type_code
63264   , p_transaction_coa_id           => l_adr_transaction_coa_id
63265   , p_accounting_coa_id            => l_adr_accounting_coa_id
63266   , p_adr_code                     => 'AP_RECP_INV_DIST'
63267   , p_adr_type_code                => 'S'
63268   , p_component_type               => l_component_type
63269   , p_component_code               => l_component_code
63270   , p_component_type_code          => l_component_type_code
63271   , p_component_appl_id            => l_component_appl_id
63272   , p_amb_context_code             => l_amb_context_code
63273   , p_side                         => 'NA'
63274   );
63275 
63276 
63277    --
63278    --
63279    END IF;
63280 
63281        --
63282        -- Update the line information that should be overwritten
63283        --
63287 
63284        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63285                                          p_header_num   => 1);
63286        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
63288        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63289 
63290        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
63291           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63292        END IF;
63293 
63294       --
63295       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63296       --
63297       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63298           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
63299       ELSE
63300           ---------------------------------------------------------------------------------------------------
63301           -- 4262811a Switch Sign
63302           ---------------------------------------------------------------------------------------------------
63303           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
63304           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63305                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63306           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63307                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63308           -- 5132302
63309           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63310                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63311 
63312       END IF;
63313 
63314       -- 4955764
63315       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63316       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63317 
63318 
63319       XLA_AE_LINES_PKG.ValidateCurrentLine;
63320       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63321 
63322       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63323                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63324                ,p_balance_type_code => l_balance_type_code);
63325 
63326    END IF;
63327 
63328    -----------------------------------------------------------------------------------------
63329    -- 4262811 Multiperiod Accounting
63330    -----------------------------------------------------------------------------------------
63331      -- No MPA option is assigned.
63332 
63333 
63334 END IF;
63335 END IF;
63336 --
63337 
63338 --
63339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63340    trace
63341       (p_msg      => 'END of AcctLineType_118'
63342       ,p_level    => C_LEVEL_PROCEDURE
63343       ,p_module   => l_log_module);
63344 END IF;
63345 --
63346 EXCEPTION
63347   WHEN xla_exceptions_pkg.application_exception THEN
63348       RAISE;
63349   WHEN OTHERS THEN
63350        xla_exceptions_pkg.raise_message
63351            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_118');
63352 END AcctLineType_118;
63353 --
63354 
63355 ---------------------------------------
63356 --
63357 -- PRIVATE FUNCTION
63358 --         AcctLineType_119
63359 --
63360 ---------------------------------------
63361 PROCEDURE AcctLineType_119 (
63362   p_application_id        IN NUMBER
63363  ,p_event_id              IN NUMBER
63364  ,p_calculate_acctd_flag  IN VARCHAR2
63365  ,p_calculate_g_l_flag    IN VARCHAR2
63366  ,p_actual_flag           IN OUT VARCHAR2
63367  ,p_balance_type_code     OUT VARCHAR2
63368  ,p_gain_or_loss_ref      OUT VARCHAR2
63369  
63370 --Recipient Invoice Distribution Account
63371  , p_source_48            IN NUMBER
63372 --When to Account for Payment Option
63373  , p_source_50            IN VARCHAR2
63374 --Accounting Reversal Indicator
63375  , p_source_52            IN VARCHAR2
63376 --Business Flow Accounts Payable Application Identifier
63377  , p_source_54            IN NUMBER
63378 --Distribution Link Type
63379  , p_source_60            IN VARCHAR2
63380 --Override Accounted Amount Indicator
63381  , p_source_64            IN VARCHAR2
63382  , p_source_64_meaning    IN VARCHAR2
63383 --Third Party Type
63384  , p_source_67            IN VARCHAR2
63385 --Invoice Distribution Tax Line Identifier
63386  , p_source_69            IN NUMBER
63387 --Invoice Distribution Summary Tax Line Identifier
63388  , p_source_70            IN NUMBER
63389 --Invoice Distribution Tax Distribution Identifier from Tax
63390  , p_source_77            IN NUMBER
63391 --Prepayment Distribution Type
63392  , p_source_78            IN VARCHAR2
63393 --Recipient Invoice Distribution Type
63394  , p_source_79            IN VARCHAR2
63395  , p_source_79_meaning    IN VARCHAR2
63396 --Prepayment Application Distribution Identifier
63397  , p_source_82            IN NUMBER
63398 --Invoice Identifier
63399  , p_source_83            IN NUMBER
63400 --Business Flow Prepayment Invoice Distribution Type
63401  , p_source_84            IN VARCHAR2
63402 --Business Flow Prepayment Invoice Entity Code
63403  , p_source_85            IN VARCHAR2
63404 --Business Flow Prepayment Invoice Distribution Identifier
63408 --Upgrade Encumbrance Credit Account Class
63405  , p_source_86            IN NUMBER
63406 --Business Flow Prepayment Invoice Identifier
63407  , p_source_87            IN NUMBER
63409  , p_source_88            IN VARCHAR2
63410 --Payables Encumbrance Upgrade Credit Account
63411  , p_source_89            IN NUMBER
63412 --Payables Encumbrance Upgrade Credit Amount
63413  , p_source_90            IN NUMBER
63414 --Invoice Currency Code
63415  , p_source_91            IN VARCHAR2
63416 --Payables Encumbrance Upgrade Credit Base Amount
63417  , p_source_92            IN NUMBER
63418 --Upgrade Encumbrance Debit Account Class
63419  , p_source_93            IN VARCHAR2
63420 --Payables Encumbrance Upgrade Debit Account
63421  , p_source_94            IN NUMBER
63422 --Payables Encumbrance Upgrade Debit Amount
63423  , p_source_95            IN NUMBER
63424 --Payables Encumbrance Upgrade Debit Base Amount
63425  , p_source_96            IN NUMBER
63426 --Payables Encumbrance Upgrade Option
63427  , p_source_97            IN VARCHAR2
63428 --Prepayment Distribution Amount
63429  , p_source_98            IN NUMBER
63430 --Deferred Accounting End Date
63431  , p_source_101            IN DATE
63432 --Deferred Accounting Option
63433  , p_source_102            IN VARCHAR2
63434 --Deferred Accounting Start Date
63435  , p_source_103            IN DATE
63436 --Invoice Supplier Identifier
63437  , p_source_104            IN NUMBER
63438 --Invoice Supplier Site Identifier
63439  , p_source_105            IN NUMBER
63440 --Identifier of the Prepayment Application Reversed
63441  , p_source_106            IN NUMBER
63442 --Payables Upgrade Credit Encumbrance Type Identifier
63443  , p_source_107            IN NUMBER
63444 --Payables Upgrade Debit Encumbrance Type Identifier
63445  , p_source_108            IN NUMBER
63446 --Prepayment Payment Currency Code
63447  , p_source_109            IN VARCHAR2
63448 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
63449  , p_source_110            IN NUMBER
63450 --Prepayment Payment Exchange Date
63451  , p_source_128            IN DATE
63452 --Prepayment Payment Exchange Rate
63453  , p_source_129            IN NUMBER
63454 --Prepayment Payment Exchange Rate Type
63455  , p_source_130            IN VARCHAR2
63456 )
63457 IS
63458 
63459 l_component_type              VARCHAR2(80);
63460 l_component_code              VARCHAR2(30);
63461 l_component_type_code         VARCHAR2(1);
63462 l_component_appl_id           INTEGER;
63463 l_amb_context_code            VARCHAR2(30);
63464 l_entity_code                 VARCHAR2(30);
63465 l_event_class_code            VARCHAR2(30);
63466 l_ae_header_id                NUMBER;
63467 l_event_type_code             VARCHAR2(30);
63468 l_line_definition_code        VARCHAR2(30);
63469 l_line_definition_owner_code  VARCHAR2(1);
63470 --
63471 -- adr variables
63472 l_segment                     VARCHAR2(30);
63473 l_ccid                        NUMBER;
63474 l_adr_transaction_coa_id      NUMBER;
63475 l_adr_accounting_coa_id       NUMBER;
63476 l_adr_flexfield_segment_code  VARCHAR2(30);
63477 l_adr_flex_value_set_id       NUMBER;
63478 l_adr_value_type_code         VARCHAR2(30);
63479 l_adr_value_combination_id    NUMBER;
63480 l_adr_value_segment_code      VARCHAR2(30);
63481 
63482 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
63483 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
63484 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
63485 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
63486 
63487 -- 4262811 Variables ------------------------------------------------------------------------------------------
63488 l_entered_amt_idx             NUMBER;
63489 l_accted_amt_idx              NUMBER;
63490 l_acc_rev_flag                VARCHAR2(1);
63491 l_accrual_line_num            NUMBER;
63492 l_tmp_amt                     NUMBER;
63493 l_acc_rev_natural_side_code   VARCHAR2(1);
63494 
63495 l_num_entries                 NUMBER;
63496 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
63497 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
63498 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
63499 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
63500 l_recog_line_1                NUMBER;
63501 l_recog_line_2                NUMBER;
63502 
63503 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
63504 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
63505 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
63506 
63507 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63508 
63509 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
63510 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
63511 
63512 ---------------------------------------------------------------------------------------------------------------
63513 
63514 
63515 --
63516 -- bulk performance
63517 --
63518 l_balance_type_code           VARCHAR2(1);
63519 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
63520 l_log_module                  VARCHAR2(240);
63521 
63522 --
63523 -- Upgrade strategy
63524 --
63525 l_actual_upg_option           VARCHAR2(1);
63529 BEGIN
63526 l_enc_upg_option           VARCHAR2(1);
63527 
63528 --
63530 --
63531 IF g_log_enabled THEN
63532       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_119';
63533 END IF;
63534 --
63535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63536 
63537       trace
63538          (p_msg      => 'BEGIN of AcctLineType_119'
63539          ,p_level    => C_LEVEL_PROCEDURE
63540          ,p_module   => l_log_module);
63541 
63542 END IF;
63543 --
63544 l_component_type             := 'AMB_JLT';
63545 l_component_code             := 'AP_MISC_PREPAY_PAY_RATE_APP';
63546 l_component_type_code        := 'S';
63547 l_component_appl_id          :=  200;
63548 l_amb_context_code           := 'DEFAULT';
63549 l_entity_code                := 'AP_INVOICES';
63550 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
63551 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
63552 l_line_definition_owner_code := 'S';
63553 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
63554 --
63555 l_balance_type_code          := 'A';
63556 l_segment                     := NULL;
63557 l_ccid                        := NULL;
63558 l_adr_transaction_coa_id      := NULL;
63559 l_adr_accounting_coa_id       := NULL;
63560 l_adr_flexfield_segment_code  := NULL;
63561 l_adr_flex_value_set_id       := NULL;
63562 l_adr_value_type_code         := NULL;
63563 l_adr_value_combination_id    := NULL;
63564 l_adr_value_segment_code      := NULL;
63565 
63566 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
63567 l_bflow_class_code           := '';    -- 4219869 Business Flow
63568 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
63569 l_budgetary_control_flag     := 'N';
63570 
63571 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
63572 l_bflow_applied_to_amt       := NULL; -- 5132302
63573 l_entered_amt_idx            := NULL;          -- 4262811
63574 l_accted_amt_idx             := NULL;          -- 4262811
63575 l_acc_rev_flag               := NULL;          -- 4262811
63576 l_accrual_line_num           := NULL;          -- 4262811
63577 l_tmp_amt                    := NULL;          -- 4262811
63578 --
63579  
63580 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63581     l_balance_type_code <> 'B' THEN
63582 IF NVL(p_source_50,'
63583 ') <>  'CLEAR_CLEAR' AND 
63584 (NVL(p_source_78,'
63585 ') =  'PREPAY APPL' OR 
63586 NVL(p_source_78,'
63587 ') =  'PREPAY APPL NONREC TAX' OR 
63588 NVL(p_source_78,'
63589 ') =  'PREPAY APPL REC TAX') AND 
63590 NVL(p_source_79,'
63591 ') =  'MISCELLANEOUS'
63592  THEN 
63593 
63594    --
63595    XLA_AE_LINES_PKG.SetNewLine;
63596 
63597    p_balance_type_code          := l_balance_type_code;
63598    -- set the flag so later we will know whether the gain loss line needs to be created
63599    
63600    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
63601      p_actual_flag :='A';
63602    END IF;
63603 
63604    --
63605    -- bulk performance
63606    --
63607    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63608                                       p_header_num   => 0); -- 4262811
63609    --
63610    -- set accounting line options
63611    --
63612    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63613            p_natural_side_code          => 'C'
63614          , p_gain_or_loss_flag          => 'N'
63615          , p_gl_transfer_mode_code      => 'S'
63616          , p_acct_entry_type_code       => 'A'
63617          , p_switch_side_flag           => 'Y'
63618          , p_merge_duplicate_code       => 'A'
63619          );
63620    --
63621    l_acc_rev_natural_side_code := 'D';  -- 4262811
63622    -- 
63623    --
63624    -- set accounting line type info
63625    --
63626    xla_ae_lines_pkg.SetAcctLineType
63627       (p_component_type             => l_component_type
63628       ,p_event_type_code            => l_event_type_code
63629       ,p_line_definition_owner_code => l_line_definition_owner_code
63630       ,p_line_definition_code       => l_line_definition_code
63631       ,p_accounting_line_code       => l_component_code
63632       ,p_accounting_line_type_code  => l_component_type_code
63633       ,p_accounting_line_appl_id    => l_component_appl_id
63634       ,p_amb_context_code           => l_amb_context_code
63635       ,p_entity_code                => l_entity_code
63636       ,p_event_class_code           => l_event_class_code);
63637    --
63638    -- set accounting class
63639    --
63640    xla_ae_lines_pkg.SetAcctClass(
63641            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
63642          , p_ae_header_id           => l_ae_header_id
63643          );
63644 
63645    --
63646    -- set rounding class
63647    --
63648    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63649                       'MISCELLANEOUS EXPENSE';
63650 
63651    --
63652    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63653    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63654    --
63655    -- bulk performance
63656    --
63657    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63658 
63662    -- 4955764
63659    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63660       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63661 
63663    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63664       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63665 
63666    -- 4458381 Public Sector Enh
63667    
63668    --
63669    -- set accounting attributes for the line type
63670    --
63671    l_entered_amt_idx := 25;
63672    l_accted_amt_idx  := 30;
63673    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
63674    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63675    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
63676    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
63677    l_rec_acct_attrs.array_num_value(2)  := 
63678 xla_ae_sources_pkg.GetSystemSourceNum(
63679    p_source_code           => 'XLA_EVENT_APPL_ID'
63680  , p_source_type_code      => 'Y'
63681  , p_source_application_id =>  602
63682 );
63683    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
63684    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
63685    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
63686    l_rec_acct_attrs.array_char_value(4)  := 
63687 xla_ae_sources_pkg.GetSystemSourceChar(
63688    p_source_code           => 'XLA_ENTITY_CODE'
63689  , p_source_type_code      => 'Y'
63690  , p_source_application_id =>  602
63691 );
63692    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
63693    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
63694    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
63695    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
63696    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
63697    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
63698    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63699    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
63700    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
63701    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
63702    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
63703    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
63704    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63705    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
63706    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
63707    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
63708    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
63709    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
63710    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
63711    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
63712    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
63713    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
63714    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
63715    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
63716    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
63717    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
63718    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
63719    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
63720    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
63721    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
63722    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
63723    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
63724    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
63725    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
63726    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
63727    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
63728    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
63729    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
63730    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
63731    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
63732    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
63733    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
63734    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
63735    l_rec_acct_attrs.array_char_value(26)  := p_source_109;
63736    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
63737    l_rec_acct_attrs.array_date_value(27)  := p_source_128;
63738    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
63739    l_rec_acct_attrs.array_num_value(28)  := p_source_129;
63740    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
63741    l_rec_acct_attrs.array_char_value(29)  := p_source_130;
63742    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
63743    l_rec_acct_attrs.array_num_value(30)  := p_source_110;
63744    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
63745    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
63746    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
63747    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
63748    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
63749    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
63753    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
63750    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
63751    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
63752    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
63754    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
63755    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
63756    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
63757    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
63758    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
63759    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
63760    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
63761    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
63762    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
63763    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
63764    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
63765    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
63766    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
63767    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
63768    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
63769    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
63770    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
63771    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
63772 
63773    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63774    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63775 
63776    ---------------------------------------------------------------------------------------------------------------
63777    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63778    ---------------------------------------------------------------------------------------------------------------
63779    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63780 
63781    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63782    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63783 
63784    IF xla_accounting_cache_pkg.GetValueChar
63785          (p_source_code         => 'LEDGER_CATEGORY_CODE'
63786          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63787    AND l_bflow_method_code = 'PRIOR_ENTRY'
63788 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63789    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63790          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63791        )
63792    THEN
63793          xla_ae_lines_pkg.BflowUpgEntry
63794            (p_business_method_code    => l_bflow_method_code
63795            ,p_business_class_code     => l_bflow_class_code
63796            ,p_balance_type            => l_balance_type_code);
63797    ELSE
63798       NULL;
63799 -- No business flow processing for business flow method of NONE.
63800    END IF;
63801 
63802    --
63803    -- call analytical criteria
63804    --
63805    
63806    --
63807    -- call description
63808    --
63809    -- No description or it is inherited.
63810    --
63811    -- call ADRs
63812    -- Bug 4922099
63813    --
63814    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63815         (NVL(l_actual_upg_option, 'N') = 'O') OR
63816         (NVL(l_enc_upg_option, 'N') = 'O')
63817       )
63818    THEN
63819    NULL;
63820    --
63821    --
63822    
63823   l_ccid := AcctDerRule_35(
63824            p_application_id           => p_application_id
63825          , p_ae_header_id             => l_ae_header_id 
63826 , p_source_48 => p_source_48
63827          , x_transaction_coa_id       => l_adr_transaction_coa_id
63828          , x_accounting_coa_id        => l_adr_accounting_coa_id
63829          , x_value_type_code          => l_adr_value_type_code
63830          , p_side                     => 'NA'
63831    );
63832 
63833    xla_ae_lines_pkg.set_ccid(
63834     p_code_combination_id          => l_ccid
63835   , p_value_type_code              => l_adr_value_type_code
63836   , p_transaction_coa_id           => l_adr_transaction_coa_id
63837   , p_accounting_coa_id            => l_adr_accounting_coa_id
63838   , p_adr_code                     => 'AP_RECP_INV_DIST'
63839   , p_adr_type_code                => 'S'
63840   , p_component_type               => l_component_type
63841   , p_component_code               => l_component_code
63842   , p_component_type_code          => l_component_type_code
63843   , p_component_appl_id            => l_component_appl_id
63844   , p_amb_context_code             => l_amb_context_code
63845   , p_side                         => 'NA'
63846   );
63847 
63848 
63849    --
63850    --
63851    END IF;
63852    --
63853    -- Bug 4922099
63854    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63855           (NVL(l_enc_upg_option, 'N') = 'O')
63856         ) AND
63857         (l_bflow_method_code = 'PRIOR_ENTRY')
63858       )
63859    THEN
63860       IF
63861       --
63862       1 = 2
63863       --
63864       THEN
63865       xla_accounting_err_pkg.build_message
63866                                     (p_appli_s_name            => 'XLA'
63867                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63871                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
63868                                     ,p_token_1                 => 'LINE_NUMBER'
63869                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
63870                                     ,p_token_2                 => 'LINE_TYPE_NAME'
63872                                                                              l_component_type
63873                                                                             ,l_component_code
63874                                                                             ,l_component_type_code
63875                                                                             ,l_component_appl_id
63876                                                                             ,l_amb_context_code
63877                                                                             ,l_entity_code
63878                                                                             ,l_event_class_code
63879                                                                            )
63880                                     ,p_token_3                 => 'OWNER'
63881                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
63882                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
63883                                                                           ,p_lookup_code    => l_component_type_code
63884                                                                          )
63885                                     ,p_token_4                 => 'PRODUCT_NAME'
63886                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63887                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63888                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63889                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63890                                     ,p_ae_header_id            =>  NULL
63891                                        );
63892 
63893         IF (C_LEVEL_ERROR>= g_log_level) THEN
63894                  trace
63895                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63896                       ,p_level    => C_LEVEL_ERROR
63897                       ,p_module   => l_log_module);
63898         END IF;
63899       END IF;
63900    END IF;
63901    --
63902    --
63903    ------------------------------------------------------------------------------------------------
63904    -- 4219869 Business Flow
63905    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63906    -- Prior Entry.  Currently, the following code is always generated.
63907    ------------------------------------------------------------------------------------------------
63908    XLA_AE_LINES_PKG.ValidateCurrentLine;
63909 
63910    ------------------------------------------------------------------------------------
63911    -- 4219869 Business Flow
63912    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63913    ------------------------------------------------------------------------------------
63914    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63915 
63916    ----------------------------------------------------------------------------------
63917    -- 4219869 Business Flow
63918    -- Update journal entry status -- Need to generate this within IF <condition>
63919    ----------------------------------------------------------------------------------
63920    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63921          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63922          ,p_balance_type_code => l_balance_type_code
63923          );
63924 
63925    -------------------------------------------------------------------------------------------
63926    -- 4262811 - Generate the Accrual Reversal lines
63927    -------------------------------------------------------------------------------------------
63928    BEGIN
63929       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63930                               (g_array_event(p_event_id).array_value_num('header_index'));
63931       IF l_acc_rev_flag IS NULL THEN
63932          l_acc_rev_flag := 'N';
63933       END IF;
63934    EXCEPTION
63935       WHEN OTHERS THEN
63936          l_acc_rev_flag := 'N';
63937    END;
63938    --
63939    IF (l_acc_rev_flag = 'Y') THEN
63940 
63941        -- 4645092  ------------------------------------------------------------------------------
63942        -- To allow MPA report to determine if it should generate report process
63943        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63944        ------------------------------------------------------------------------------------------
63945 
63946        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63947        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63948    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
63949    -- call ADRs
63950    -- Bug 4922099
63951    --
63952    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63953         (NVL(l_actual_upg_option, 'N') = 'O') OR
63954         (NVL(l_enc_upg_option, 'N') = 'O')
63955       )
63956    THEN
63957    NULL;
63958    --
63959    --
63960    
63961   l_ccid := AcctDerRule_35(
63962            p_application_id           => p_application_id
63966          , x_accounting_coa_id        => l_adr_accounting_coa_id
63963          , p_ae_header_id             => l_ae_header_id 
63964 , p_source_48 => p_source_48
63965          , x_transaction_coa_id       => l_adr_transaction_coa_id
63967          , x_value_type_code          => l_adr_value_type_code
63968          , p_side                     => 'NA'
63969    );
63970 
63971    xla_ae_lines_pkg.set_ccid(
63972     p_code_combination_id          => l_ccid
63973   , p_value_type_code              => l_adr_value_type_code
63974   , p_transaction_coa_id           => l_adr_transaction_coa_id
63975   , p_accounting_coa_id            => l_adr_accounting_coa_id
63976   , p_adr_code                     => 'AP_RECP_INV_DIST'
63977   , p_adr_type_code                => 'S'
63978   , p_component_type               => l_component_type
63979   , p_component_code               => l_component_code
63980   , p_component_type_code          => l_component_type_code
63981   , p_component_appl_id            => l_component_appl_id
63982   , p_amb_context_code             => l_amb_context_code
63983   , p_side                         => 'NA'
63984   );
63985 
63986 
63987    --
63988    --
63989    END IF;
63990 
63991        --
63992        -- Update the line information that should be overwritten
63993        --
63994        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63995                                          p_header_num   => 1);
63996        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
63997 
63998        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63999 
64000        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
64001           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64002        END IF;
64003 
64004       --
64005       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64006       --
64007       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64008           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
64009       ELSE
64010           ---------------------------------------------------------------------------------------------------
64011           -- 4262811a Switch Sign
64012           ---------------------------------------------------------------------------------------------------
64013           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
64014           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64015                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64016           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64017                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64018           -- 5132302
64019           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64020                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64021 
64022       END IF;
64023 
64024       -- 4955764
64025       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64026       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64027 
64028 
64029       XLA_AE_LINES_PKG.ValidateCurrentLine;
64030       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64031 
64032       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64033                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64034                ,p_balance_type_code => l_balance_type_code);
64035 
64036    END IF;
64037 
64038    -----------------------------------------------------------------------------------------
64039    -- 4262811 Multiperiod Accounting
64040    -----------------------------------------------------------------------------------------
64041      -- No MPA option is assigned.
64042 
64043 
64044 END IF;
64045 END IF;
64046 --
64047 
64048 --
64049 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64050    trace
64051       (p_msg      => 'END of AcctLineType_119'
64052       ,p_level    => C_LEVEL_PROCEDURE
64053       ,p_module   => l_log_module);
64054 END IF;
64055 --
64056 EXCEPTION
64057   WHEN xla_exceptions_pkg.application_exception THEN
64058       RAISE;
64059   WHEN OTHERS THEN
64060        xla_exceptions_pkg.raise_message
64061            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_119');
64062 END AcctLineType_119;
64063 --
64064 
64065 ---------------------------------------
64066 --
64067 -- PRIVATE FUNCTION
64068 --         AcctLineType_120
64069 --
64070 ---------------------------------------
64071 PROCEDURE AcctLineType_120 (
64072   p_application_id        IN NUMBER
64073  ,p_event_id              IN NUMBER
64074  ,p_calculate_acctd_flag  IN VARCHAR2
64075  ,p_calculate_g_l_flag    IN VARCHAR2
64076  ,p_actual_flag           IN OUT VARCHAR2
64077  ,p_balance_type_code     OUT VARCHAR2
64078  ,p_gain_or_loss_ref      OUT VARCHAR2
64079  
64080 --Payment Currency Code
64081  , p_source_12            IN VARCHAR2
64082 --Payment Distribution (Cleared Rate) Ledger Amount
64086 --Invoice Distribution Type
64083  , p_source_22            IN NUMBER
64084 --Invoice Distribution Account
64085  , p_source_29            IN NUMBER
64087  , p_source_32            IN VARCHAR2
64088  , p_source_32_meaning    IN VARCHAR2
64089 --When to Account for Payment Option
64090  , p_source_50            IN VARCHAR2
64091 --Payment Distribution Type
64092  , p_source_51            IN VARCHAR2
64093  , p_source_51_meaning    IN VARCHAR2
64094 --Accounting Reversal Indicator
64095  , p_source_52            IN VARCHAR2
64096 --Payment Distribution Amount
64097  , p_source_53            IN NUMBER
64098 --Business Flow Accounts Payable Application Identifier
64099  , p_source_54            IN NUMBER
64100 --Business Flow Payment Distribution Type
64101  , p_source_55            IN VARCHAR2
64102 --Business Flow Payment Entity Code
64103  , p_source_56            IN VARCHAR2
64104 --Business Flow Payment Distribution Identifier
64105  , p_source_57            IN NUMBER
64106 --Business Flow Payment Identifier
64107  , p_source_58            IN NUMBER
64108 --Payment Distribution Identifier
64109  , p_source_59            IN NUMBER
64110 --Distribution Link Type
64111  , p_source_60            IN VARCHAR2
64112 --Purchase Order Exchange Rate Date
64113  , p_source_61            IN DATE
64114 --Purchase Order Exchange Rate
64115  , p_source_62            IN NUMBER
64116 --Purchase Order Exchange Rate Type
64117  , p_source_63            IN VARCHAR2
64118 --Override Accounted Amount Indicator
64119  , p_source_64            IN VARCHAR2
64120  , p_source_64_meaning    IN VARCHAR2
64121 --Payment Supplier Identifier
64122  , p_source_65            IN NUMBER
64123 --Payment Supplier Site Identifier
64124  , p_source_66            IN NUMBER
64125 --Third Party Type
64126  , p_source_67            IN VARCHAR2
64127 --Payment Distribution Reversed Identifier
64128  , p_source_68            IN NUMBER
64129 --Invoice Distribution Tax Line Identifier
64130  , p_source_69            IN NUMBER
64131 --Invoice Distribution Summary Tax Line Identifier
64132  , p_source_70            IN NUMBER
64133 --Accrue on Receipt Option
64134  , p_source_111            IN VARCHAR2
64135  , p_source_111_meaning    IN VARCHAR2
64136 )
64137 IS
64138 
64139 l_component_type              VARCHAR2(80);
64140 l_component_code              VARCHAR2(30);
64141 l_component_type_code         VARCHAR2(1);
64142 l_component_appl_id           INTEGER;
64143 l_amb_context_code            VARCHAR2(30);
64144 l_entity_code                 VARCHAR2(30);
64145 l_event_class_code            VARCHAR2(30);
64146 l_ae_header_id                NUMBER;
64147 l_event_type_code             VARCHAR2(30);
64148 l_line_definition_code        VARCHAR2(30);
64149 l_line_definition_owner_code  VARCHAR2(1);
64150 --
64151 -- adr variables
64152 l_segment                     VARCHAR2(30);
64153 l_ccid                        NUMBER;
64154 l_adr_transaction_coa_id      NUMBER;
64155 l_adr_accounting_coa_id       NUMBER;
64156 l_adr_flexfield_segment_code  VARCHAR2(30);
64157 l_adr_flex_value_set_id       NUMBER;
64158 l_adr_value_type_code         VARCHAR2(30);
64159 l_adr_value_combination_id    NUMBER;
64160 l_adr_value_segment_code      VARCHAR2(30);
64161 
64162 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
64163 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
64164 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
64165 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
64166 
64167 -- 4262811 Variables ------------------------------------------------------------------------------------------
64168 l_entered_amt_idx             NUMBER;
64169 l_accted_amt_idx              NUMBER;
64170 l_acc_rev_flag                VARCHAR2(1);
64171 l_accrual_line_num            NUMBER;
64172 l_tmp_amt                     NUMBER;
64173 l_acc_rev_natural_side_code   VARCHAR2(1);
64174 
64175 l_num_entries                 NUMBER;
64176 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
64177 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
64178 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
64179 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
64180 l_recog_line_1                NUMBER;
64181 l_recog_line_2                NUMBER;
64182 
64183 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
64184 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
64185 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
64186 
64187 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64188 
64189 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
64190 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
64191 
64192 ---------------------------------------------------------------------------------------------------------------
64193 
64194 
64195 --
64196 -- bulk performance
64197 --
64198 l_balance_type_code           VARCHAR2(1);
64199 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
64200 l_log_module                  VARCHAR2(240);
64201 
64202 --
64203 -- Upgrade strategy
64204 --
64205 l_actual_upg_option           VARCHAR2(1);
64206 l_enc_upg_option           VARCHAR2(1);
64207 
64208 --
64212       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_120';
64209 BEGIN
64210 --
64211 IF g_log_enabled THEN
64213 END IF;
64214 --
64215 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64216 
64217       trace
64218          (p_msg      => 'BEGIN of AcctLineType_120'
64219          ,p_level    => C_LEVEL_PROCEDURE
64220          ,p_module   => l_log_module);
64221 
64222 END IF;
64223 --
64224 l_component_type             := 'AMB_JLT';
64225 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_CLEAR';
64226 l_component_type_code        := 'S';
64227 l_component_appl_id          :=  200;
64228 l_amb_context_code           := 'DEFAULT';
64229 l_entity_code                := 'AP_PAYMENTS';
64230 l_event_class_code           := 'RECONCILED PAYMENTS';
64231 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
64232 l_line_definition_owner_code := 'S';
64233 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
64234 --
64235 l_balance_type_code          := 'A';
64236 l_segment                     := NULL;
64237 l_ccid                        := NULL;
64238 l_adr_transaction_coa_id      := NULL;
64239 l_adr_accounting_coa_id       := NULL;
64240 l_adr_flexfield_segment_code  := NULL;
64241 l_adr_flex_value_set_id       := NULL;
64242 l_adr_value_type_code         := NULL;
64243 l_adr_value_combination_id    := NULL;
64244 l_adr_value_segment_code      := NULL;
64245 
64246 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
64247 l_bflow_class_code           := '';    -- 4219869 Business Flow
64248 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
64249 l_budgetary_control_flag     := 'N';
64250 
64251 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
64252 l_bflow_applied_to_amt       := NULL; -- 5132302
64253 l_entered_amt_idx            := NULL;          -- 4262811
64254 l_accted_amt_idx             := NULL;          -- 4262811
64255 l_acc_rev_flag               := NULL;          -- 4262811
64256 l_accrual_line_num           := NULL;          -- 4262811
64257 l_tmp_amt                    := NULL;          -- 4262811
64258 --
64259  
64260 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64261     l_balance_type_code <> 'B' THEN
64262 IF NVL(p_source_50,'
64263 ') =  'CLEAR_CLEAR' AND 
64264 NVL(p_source_32,'
64265 ') =  'NONREC_TAX' AND 
64266 NVL(p_source_111,'
64267 ') =  'Y' AND 
64268 (NVL(p_source_51,'
64269 ') =  'CASH' OR 
64270 NVL(p_source_51,'
64271 ') =  'AWT' OR 
64272 NVL(p_source_51,'
64273 ') =  'DISCOUNT')
64274  THEN 
64275 
64276    --
64277    XLA_AE_LINES_PKG.SetNewLine;
64278 
64279    p_balance_type_code          := l_balance_type_code;
64280    -- set the flag so later we will know whether the gain loss line needs to be created
64281    
64282    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
64283      p_actual_flag :='A';
64284    END IF;
64285 
64286    --
64287    -- bulk performance
64288    --
64289    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64290                                       p_header_num   => 0); -- 4262811
64291    --
64292    -- set accounting line options
64293    --
64294    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64295            p_natural_side_code          => 'D'
64296          , p_gain_or_loss_flag          => 'N'
64297          , p_gl_transfer_mode_code      => 'S'
64298          , p_acct_entry_type_code       => 'A'
64299          , p_switch_side_flag           => 'Y'
64300          , p_merge_duplicate_code       => 'A'
64301          );
64302    --
64303    l_acc_rev_natural_side_code := 'C';  -- 4262811
64304    -- 
64305    --
64306    -- set accounting line type info
64307    --
64308    xla_ae_lines_pkg.SetAcctLineType
64309       (p_component_type             => l_component_type
64310       ,p_event_type_code            => l_event_type_code
64311       ,p_line_definition_owner_code => l_line_definition_owner_code
64312       ,p_line_definition_code       => l_line_definition_code
64313       ,p_accounting_line_code       => l_component_code
64314       ,p_accounting_line_type_code  => l_component_type_code
64315       ,p_accounting_line_appl_id    => l_component_appl_id
64316       ,p_amb_context_code           => l_amb_context_code
64317       ,p_entity_code                => l_entity_code
64318       ,p_event_class_code           => l_event_class_code);
64319    --
64320    -- set accounting class
64321    --
64322    xla_ae_lines_pkg.SetAcctClass(
64323            p_accounting_class_code  => 'NRTAX'
64324          , p_ae_header_id           => l_ae_header_id
64325          );
64326 
64327    --
64328    -- set rounding class
64329    --
64330    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64331                       'NRTAX';
64332 
64333    --
64334    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64335    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64336    --
64337    -- bulk performance
64338    --
64339    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64340 
64341    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64345    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64342       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64343 
64344    -- 4955764
64346       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64347 
64348    -- 4458381 Public Sector Enh
64349    
64350    --
64351    -- set accounting attributes for the line type
64352    --
64353    l_entered_amt_idx := 10;
64354    l_accted_amt_idx  := 15;
64355    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
64356    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
64357    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
64358    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
64359    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
64360    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
64361    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
64362    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
64363    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
64364    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
64365    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
64366    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
64367    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
64368    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
64369    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
64370    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
64371    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
64372    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
64373    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
64374    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
64375    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
64376    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
64377    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
64378    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
64379    l_rec_acct_attrs.array_date_value(12)  := p_source_61;
64380    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
64381    l_rec_acct_attrs.array_num_value(13)  := p_source_62;
64382    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
64383    l_rec_acct_attrs.array_char_value(14)  := p_source_63;
64384    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
64385    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
64386    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
64387    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
64388    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
64389    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
64390    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
64391    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
64392    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
64393    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
64394    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
64395    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
64396    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
64397    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
64398    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
64399    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
64400    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
64401    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
64402    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
64403    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
64404 
64405    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64406    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64407 
64408    ---------------------------------------------------------------------------------------------------------------
64409    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64410    ---------------------------------------------------------------------------------------------------------------
64411    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64412 
64413    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64414    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64415 
64416    IF xla_accounting_cache_pkg.GetValueChar
64417          (p_source_code         => 'LEDGER_CATEGORY_CODE'
64418          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64419    AND l_bflow_method_code = 'PRIOR_ENTRY'
64420 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64421    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64422          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64423        )
64424    THEN
64425          xla_ae_lines_pkg.BflowUpgEntry
64426            (p_business_method_code    => l_bflow_method_code
64427            ,p_business_class_code     => l_bflow_class_code
64428            ,p_balance_type            => l_balance_type_code);
64429    ELSE
64430       NULL;
64431 -- No business flow processing for business flow method of NONE.
64432    END IF;
64433 
64434    --
64435    -- call analytical criteria
64436    --
64437    
64438    --
64439    -- call description
64440    --
64444    -- Bug 4922099
64441    -- No description or it is inherited.
64442    --
64443    -- call ADRs
64445    --
64446    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64447         (NVL(l_actual_upg_option, 'N') = 'O') OR
64448         (NVL(l_enc_upg_option, 'N') = 'O')
64449       )
64450    THEN
64451    NULL;
64452    --
64453    --
64454    
64455   l_ccid := AcctDerRule_28(
64456            p_application_id           => p_application_id
64457          , p_ae_header_id             => l_ae_header_id 
64458 , p_source_29 => p_source_29
64459          , x_transaction_coa_id       => l_adr_transaction_coa_id
64460          , x_accounting_coa_id        => l_adr_accounting_coa_id
64461          , x_value_type_code          => l_adr_value_type_code
64462          , p_side                     => 'NA'
64463    );
64464 
64465    xla_ae_lines_pkg.set_ccid(
64466     p_code_combination_id          => l_ccid
64467   , p_value_type_code              => l_adr_value_type_code
64468   , p_transaction_coa_id           => l_adr_transaction_coa_id
64469   , p_accounting_coa_id            => l_adr_accounting_coa_id
64470   , p_adr_code                     => 'AP_INVOICE_DIST'
64471   , p_adr_type_code                => 'S'
64472   , p_component_type               => l_component_type
64473   , p_component_code               => l_component_code
64474   , p_component_type_code          => l_component_type_code
64475   , p_component_appl_id            => l_component_appl_id
64476   , p_amb_context_code             => l_amb_context_code
64477   , p_side                         => 'NA'
64478   );
64479 
64480 
64481    --
64482    --
64483    END IF;
64484    --
64485    -- Bug 4922099
64486    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64487           (NVL(l_enc_upg_option, 'N') = 'O')
64488         ) AND
64489         (l_bflow_method_code = 'PRIOR_ENTRY')
64490       )
64491    THEN
64492       IF
64493       --
64494       1 = 2
64495       --
64496       THEN
64497       xla_accounting_err_pkg.build_message
64498                                     (p_appli_s_name            => 'XLA'
64499                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64500                                     ,p_token_1                 => 'LINE_NUMBER'
64501                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
64502                                     ,p_token_2                 => 'LINE_TYPE_NAME'
64503                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
64504                                                                              l_component_type
64505                                                                             ,l_component_code
64506                                                                             ,l_component_type_code
64507                                                                             ,l_component_appl_id
64508                                                                             ,l_amb_context_code
64509                                                                             ,l_entity_code
64510                                                                             ,l_event_class_code
64511                                                                            )
64512                                     ,p_token_3                 => 'OWNER'
64513                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
64514                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
64515                                                                           ,p_lookup_code    => l_component_type_code
64516                                                                          )
64517                                     ,p_token_4                 => 'PRODUCT_NAME'
64518                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64519                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64520                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64521                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64522                                     ,p_ae_header_id            =>  NULL
64523                                        );
64524 
64525         IF (C_LEVEL_ERROR>= g_log_level) THEN
64526                  trace
64527                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64528                       ,p_level    => C_LEVEL_ERROR
64529                       ,p_module   => l_log_module);
64530         END IF;
64531       END IF;
64532    END IF;
64533    --
64534    --
64535    ------------------------------------------------------------------------------------------------
64536    -- 4219869 Business Flow
64537    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64538    -- Prior Entry.  Currently, the following code is always generated.
64539    ------------------------------------------------------------------------------------------------
64540    XLA_AE_LINES_PKG.ValidateCurrentLine;
64541 
64542    ------------------------------------------------------------------------------------
64543    -- 4219869 Business Flow
64544    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64548    ----------------------------------------------------------------------------------
64545    ------------------------------------------------------------------------------------
64546    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64547 
64549    -- 4219869 Business Flow
64550    -- Update journal entry status -- Need to generate this within IF <condition>
64551    ----------------------------------------------------------------------------------
64552    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64553          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64554          ,p_balance_type_code => l_balance_type_code
64555          );
64556 
64557    -------------------------------------------------------------------------------------------
64558    -- 4262811 - Generate the Accrual Reversal lines
64559    -------------------------------------------------------------------------------------------
64560    BEGIN
64561       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64562                               (g_array_event(p_event_id).array_value_num('header_index'));
64563       IF l_acc_rev_flag IS NULL THEN
64564          l_acc_rev_flag := 'N';
64565       END IF;
64566    EXCEPTION
64567       WHEN OTHERS THEN
64568          l_acc_rev_flag := 'N';
64569    END;
64570    --
64571    IF (l_acc_rev_flag = 'Y') THEN
64572 
64573        -- 4645092  ------------------------------------------------------------------------------
64574        -- To allow MPA report to determine if it should generate report process
64575        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64576        ------------------------------------------------------------------------------------------
64577 
64578        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64579        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64580    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
64581    -- call ADRs
64582    -- Bug 4922099
64583    --
64584    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64585         (NVL(l_actual_upg_option, 'N') = 'O') OR
64586         (NVL(l_enc_upg_option, 'N') = 'O')
64587       )
64588    THEN
64589    NULL;
64590    --
64591    --
64592    
64593   l_ccid := AcctDerRule_28(
64594            p_application_id           => p_application_id
64595          , p_ae_header_id             => l_ae_header_id 
64596 , p_source_29 => p_source_29
64597          , x_transaction_coa_id       => l_adr_transaction_coa_id
64598          , x_accounting_coa_id        => l_adr_accounting_coa_id
64599          , x_value_type_code          => l_adr_value_type_code
64600          , p_side                     => 'NA'
64601    );
64602 
64603    xla_ae_lines_pkg.set_ccid(
64604     p_code_combination_id          => l_ccid
64605   , p_value_type_code              => l_adr_value_type_code
64606   , p_transaction_coa_id           => l_adr_transaction_coa_id
64607   , p_accounting_coa_id            => l_adr_accounting_coa_id
64608   , p_adr_code                     => 'AP_INVOICE_DIST'
64609   , p_adr_type_code                => 'S'
64610   , p_component_type               => l_component_type
64611   , p_component_code               => l_component_code
64612   , p_component_type_code          => l_component_type_code
64613   , p_component_appl_id            => l_component_appl_id
64614   , p_amb_context_code             => l_amb_context_code
64615   , p_side                         => 'NA'
64616   );
64617 
64618 
64619    --
64620    --
64621    END IF;
64622 
64623        --
64624        -- Update the line information that should be overwritten
64625        --
64626        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
64627                                          p_header_num   => 1);
64628        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
64629 
64630        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
64631 
64632        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
64633           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64634        END IF;
64635 
64636       --
64637       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64638       --
64639       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64640           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
64641       ELSE
64642           ---------------------------------------------------------------------------------------------------
64643           -- 4262811a Switch Sign
64644           ---------------------------------------------------------------------------------------------------
64645           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
64646           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64647                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64648           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64649                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64650           -- 5132302
64651           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64655 
64652                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64653 
64654       END IF;
64656       -- 4955764
64657       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64658       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64659 
64660 
64661       XLA_AE_LINES_PKG.ValidateCurrentLine;
64662       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64663 
64664       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64665                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64666                ,p_balance_type_code => l_balance_type_code);
64667 
64668    END IF;
64669 
64670    -----------------------------------------------------------------------------------------
64671    -- 4262811 Multiperiod Accounting
64672    -----------------------------------------------------------------------------------------
64673      -- No MPA option is assigned.
64674 
64675 
64676 END IF;
64677 END IF;
64678 --
64679 
64680 --
64681 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64682    trace
64683       (p_msg      => 'END of AcctLineType_120'
64684       ,p_level    => C_LEVEL_PROCEDURE
64685       ,p_module   => l_log_module);
64686 END IF;
64687 --
64688 EXCEPTION
64689   WHEN xla_exceptions_pkg.application_exception THEN
64690       RAISE;
64691   WHEN OTHERS THEN
64692        xla_exceptions_pkg.raise_message
64693            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_120');
64694 END AcctLineType_120;
64695 --
64696 
64697 ---------------------------------------
64698 --
64699 -- PRIVATE FUNCTION
64700 --         AcctLineType_121
64701 --
64702 ---------------------------------------
64703 PROCEDURE AcctLineType_121 (
64704   p_application_id        IN NUMBER
64705  ,p_event_id              IN NUMBER
64706  ,p_calculate_acctd_flag  IN VARCHAR2
64707  ,p_calculate_g_l_flag    IN VARCHAR2
64708  ,p_actual_flag           IN OUT VARCHAR2
64709  ,p_balance_type_code     OUT VARCHAR2
64710  ,p_gain_or_loss_ref      OUT VARCHAR2
64711  
64712 --Payment Currency Code
64713  , p_source_12            IN VARCHAR2
64714 --Payment Distribution (Payment Rate) Ledger Amount
64715  , p_source_21            IN NUMBER
64716 --Invoice Distribution Account
64717  , p_source_29            IN NUMBER
64718 --Invoice Distribution Type
64719  , p_source_32            IN VARCHAR2
64720  , p_source_32_meaning    IN VARCHAR2
64721 --When to Account for Payment Option
64722  , p_source_50            IN VARCHAR2
64723 --Payment Distribution Type
64724  , p_source_51            IN VARCHAR2
64725  , p_source_51_meaning    IN VARCHAR2
64726 --Accounting Reversal Indicator
64727  , p_source_52            IN VARCHAR2
64728 --Payment Distribution Amount
64729  , p_source_53            IN NUMBER
64730 --Business Flow Accounts Payable Application Identifier
64731  , p_source_54            IN NUMBER
64732 --Payment Distribution Identifier
64733  , p_source_59            IN NUMBER
64734 --Distribution Link Type
64735  , p_source_60            IN VARCHAR2
64736 --Purchase Order Exchange Rate Date
64737  , p_source_61            IN DATE
64738 --Purchase Order Exchange Rate
64739  , p_source_62            IN NUMBER
64740 --Purchase Order Exchange Rate Type
64741  , p_source_63            IN VARCHAR2
64742 --Override Accounted Amount Indicator
64743  , p_source_64            IN VARCHAR2
64744  , p_source_64_meaning    IN VARCHAR2
64745 --Payment Supplier Identifier
64746  , p_source_65            IN NUMBER
64747 --Payment Supplier Site Identifier
64748  , p_source_66            IN NUMBER
64749 --Third Party Type
64750  , p_source_67            IN VARCHAR2
64751 --Payment Distribution Reversed Identifier
64752  , p_source_68            IN NUMBER
64753 --Invoice Distribution Tax Line Identifier
64754  , p_source_69            IN NUMBER
64755 --Invoice Distribution Summary Tax Line Identifier
64756  , p_source_70            IN NUMBER
64757 --Payment Type
64758  , p_source_71            IN VARCHAR2
64759  , p_source_71_meaning    IN VARCHAR2
64760 --Invoice Distribution Amount of the Payment Distribution
64761  , p_source_72            IN NUMBER
64762 --Business Flow Invoice Distribution Type
64763  , p_source_73            IN VARCHAR2
64764 --Business Flow Invoice Entity Code
64765  , p_source_74            IN VARCHAR2
64766 --Business Flow Invoice Distribution Identifier
64767  , p_source_75            IN NUMBER
64768 --Business Flow Invoice Identifier
64769  , p_source_76            IN NUMBER
64770 --Invoice Distribution Tax Distribution Identifier from Tax
64771  , p_source_77            IN NUMBER
64772 --Accrue on Receipt Option
64773  , p_source_111            IN VARCHAR2
64774  , p_source_111_meaning    IN VARCHAR2
64775 --Invoice Type Paid
64776  , p_source_112            IN VARCHAR2
64777  , p_source_112_meaning    IN VARCHAR2
64778 )
64779 IS
64780 
64781 l_component_type              VARCHAR2(80);
64782 l_component_code              VARCHAR2(30);
64783 l_component_type_code         VARCHAR2(1);
64784 l_component_appl_id           INTEGER;
64785 l_amb_context_code            VARCHAR2(30);
64786 l_entity_code                 VARCHAR2(30);
64787 l_event_class_code            VARCHAR2(30);
64788 l_ae_header_id                NUMBER;
64792 --
64789 l_event_type_code             VARCHAR2(30);
64790 l_line_definition_code        VARCHAR2(30);
64791 l_line_definition_owner_code  VARCHAR2(1);
64793 -- adr variables
64794 l_segment                     VARCHAR2(30);
64795 l_ccid                        NUMBER;
64796 l_adr_transaction_coa_id      NUMBER;
64797 l_adr_accounting_coa_id       NUMBER;
64798 l_adr_flexfield_segment_code  VARCHAR2(30);
64799 l_adr_flex_value_set_id       NUMBER;
64800 l_adr_value_type_code         VARCHAR2(30);
64801 l_adr_value_combination_id    NUMBER;
64802 l_adr_value_segment_code      VARCHAR2(30);
64803 
64804 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
64805 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
64806 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
64807 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
64808 
64809 -- 4262811 Variables ------------------------------------------------------------------------------------------
64810 l_entered_amt_idx             NUMBER;
64811 l_accted_amt_idx              NUMBER;
64812 l_acc_rev_flag                VARCHAR2(1);
64813 l_accrual_line_num            NUMBER;
64814 l_tmp_amt                     NUMBER;
64815 l_acc_rev_natural_side_code   VARCHAR2(1);
64816 
64817 l_num_entries                 NUMBER;
64818 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
64819 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
64820 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
64821 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
64822 l_recog_line_1                NUMBER;
64823 l_recog_line_2                NUMBER;
64824 
64825 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
64826 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
64827 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
64828 
64829 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64830 
64831 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
64832 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
64833 
64834 ---------------------------------------------------------------------------------------------------------------
64835 
64836 
64837 --
64838 -- bulk performance
64839 --
64840 l_balance_type_code           VARCHAR2(1);
64841 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
64842 l_log_module                  VARCHAR2(240);
64843 
64844 --
64845 -- Upgrade strategy
64846 --
64847 l_actual_upg_option           VARCHAR2(1);
64848 l_enc_upg_option           VARCHAR2(1);
64849 
64850 --
64851 BEGIN
64852 --
64853 IF g_log_enabled THEN
64854       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_121';
64855 END IF;
64856 --
64857 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64858 
64859       trace
64860          (p_msg      => 'BEGIN of AcctLineType_121'
64861          ,p_level    => C_LEVEL_PROCEDURE
64862          ,p_module   => l_log_module);
64863 
64864 END IF;
64865 --
64866 l_component_type             := 'AMB_JLT';
64867 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_PMT';
64868 l_component_type_code        := 'S';
64869 l_component_appl_id          :=  200;
64870 l_amb_context_code           := 'DEFAULT';
64871 l_entity_code                := 'AP_PAYMENTS';
64872 l_event_class_code           := 'PAYMENTS';
64873 l_event_type_code            := 'PAYMENTS_ALL';
64874 l_line_definition_owner_code := 'S';
64875 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
64876 --
64877 l_balance_type_code          := 'A';
64878 l_segment                     := NULL;
64879 l_ccid                        := NULL;
64880 l_adr_transaction_coa_id      := NULL;
64881 l_adr_accounting_coa_id       := NULL;
64882 l_adr_flexfield_segment_code  := NULL;
64883 l_adr_flex_value_set_id       := NULL;
64884 l_adr_value_type_code         := NULL;
64885 l_adr_value_combination_id    := NULL;
64886 l_adr_value_segment_code      := NULL;
64887 
64888 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
64889 l_bflow_class_code           := '';    -- 4219869 Business Flow
64890 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
64891 l_budgetary_control_flag     := 'N';
64892 
64893 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
64894 l_bflow_applied_to_amt       := NULL; -- 5132302
64895 l_entered_amt_idx            := NULL;          -- 4262811
64896 l_accted_amt_idx             := NULL;          -- 4262811
64897 l_acc_rev_flag               := NULL;          -- 4262811
64898 l_accrual_line_num           := NULL;          -- 4262811
64899 l_tmp_amt                    := NULL;          -- 4262811
64900 --
64901  
64902 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64903     l_balance_type_code <> 'B' THEN
64904 IF NVL(p_source_50,'
64905 ') <>  'CLEAR_CLEAR' AND 
64906 NVL(p_source_32,'
64907 ') =  'NONREC_TAX' AND 
64908 NVL(p_source_111,'
64909 ') =  'Y' AND 
64910 NVL(p_source_112,'
64911 ') <>  'INTEREST' AND 
64912 (NVL(p_source_51,'
64913 ') =  'CASH' OR 
64914 NVL(p_source_51,'
64915 ') =  'AWT' OR 
64916 NVL(p_source_51,'
64917 ') =  'DISCOUNT') AND 
64918 NVL(p_source_71,'
64922    --
64919 ') <>  'R'
64920  THEN 
64921 
64923    XLA_AE_LINES_PKG.SetNewLine;
64924 
64925    p_balance_type_code          := l_balance_type_code;
64926    -- set the flag so later we will know whether the gain loss line needs to be created
64927    
64928    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
64929      p_actual_flag :='A';
64930    END IF;
64931 
64932    --
64933    -- bulk performance
64934    --
64935    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64936                                       p_header_num   => 0); -- 4262811
64937    --
64938    -- set accounting line options
64939    --
64940    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64941            p_natural_side_code          => 'D'
64942          , p_gain_or_loss_flag          => 'N'
64943          , p_gl_transfer_mode_code      => 'S'
64944          , p_acct_entry_type_code       => 'A'
64945          , p_switch_side_flag           => 'Y'
64946          , p_merge_duplicate_code       => 'A'
64947          );
64948    --
64949    l_acc_rev_natural_side_code := 'C';  -- 4262811
64950    -- 
64951    --
64952    -- set accounting line type info
64953    --
64954    xla_ae_lines_pkg.SetAcctLineType
64955       (p_component_type             => l_component_type
64956       ,p_event_type_code            => l_event_type_code
64957       ,p_line_definition_owner_code => l_line_definition_owner_code
64958       ,p_line_definition_code       => l_line_definition_code
64959       ,p_accounting_line_code       => l_component_code
64960       ,p_accounting_line_type_code  => l_component_type_code
64961       ,p_accounting_line_appl_id    => l_component_appl_id
64962       ,p_amb_context_code           => l_amb_context_code
64963       ,p_entity_code                => l_entity_code
64964       ,p_event_class_code           => l_event_class_code);
64965    --
64966    -- set accounting class
64967    --
64968    xla_ae_lines_pkg.SetAcctClass(
64969            p_accounting_class_code  => 'NRTAX'
64970          , p_ae_header_id           => l_ae_header_id
64971          );
64972 
64973    --
64974    -- set rounding class
64975    --
64976    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64977                       'NRTAX';
64978 
64979    --
64980    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64981    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64982    --
64983    -- bulk performance
64984    --
64985    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64986 
64987    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64988       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64989 
64990    -- 4955764
64991    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64992       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64993 
64994    -- 4458381 Public Sector Enh
64995    
64996    --
64997    -- set accounting attributes for the line type
64998    --
64999    l_entered_amt_idx := 10;
65000    l_accted_amt_idx  := 15;
65001    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
65002    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
65003    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
65004    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
65005    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
65006    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
65007    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
65008    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65009    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
65010    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
65011    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
65012    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
65013    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
65014    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65015    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
65016    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
65017    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
65018    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
65019    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
65020    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
65021    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
65022    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
65023    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
65024    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
65025    l_rec_acct_attrs.array_date_value(12)  := p_source_61;
65026    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
65027    l_rec_acct_attrs.array_num_value(13)  := p_source_62;
65028    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
65029    l_rec_acct_attrs.array_char_value(14)  := p_source_63;
65030    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
65031    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
65032    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
65033    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
65037    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
65034    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
65035    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
65036    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
65038    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
65039    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
65040    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
65041    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
65042    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
65043    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
65044    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
65045    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
65046    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
65047    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
65048    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
65049    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
65050 
65051    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
65052    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
65053 
65054    ---------------------------------------------------------------------------------------------------------------
65055    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
65056    ---------------------------------------------------------------------------------------------------------------
65057    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
65058 
65059    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65060    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65061 
65062    IF xla_accounting_cache_pkg.GetValueChar
65063          (p_source_code         => 'LEDGER_CATEGORY_CODE'
65064          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
65065    AND l_bflow_method_code = 'PRIOR_ENTRY'
65066 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
65067    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
65068          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
65069        )
65070    THEN
65071          xla_ae_lines_pkg.BflowUpgEntry
65072            (p_business_method_code    => l_bflow_method_code
65073            ,p_business_class_code     => l_bflow_class_code
65074            ,p_balance_type            => l_balance_type_code);
65075    ELSE
65076       NULL;
65077 -- No business flow processing for business flow method of NONE.
65078    END IF;
65079 
65080    --
65081    -- call analytical criteria
65082    --
65083    
65084    --
65085    -- call description
65086    --
65087    -- No description or it is inherited.
65088    --
65089    -- call ADRs
65090    -- Bug 4922099
65091    --
65092    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65093         (NVL(l_actual_upg_option, 'N') = 'O') OR
65094         (NVL(l_enc_upg_option, 'N') = 'O')
65095       )
65096    THEN
65097    NULL;
65098    --
65099    --
65100    
65101   l_ccid := AcctDerRule_28(
65102            p_application_id           => p_application_id
65103          , p_ae_header_id             => l_ae_header_id 
65104 , p_source_29 => p_source_29
65105          , x_transaction_coa_id       => l_adr_transaction_coa_id
65106          , x_accounting_coa_id        => l_adr_accounting_coa_id
65107          , x_value_type_code          => l_adr_value_type_code
65108          , p_side                     => 'NA'
65109    );
65110 
65111    xla_ae_lines_pkg.set_ccid(
65112     p_code_combination_id          => l_ccid
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_adr_code                     => 'AP_INVOICE_DIST'
65117   , p_adr_type_code                => 'S'
65118   , p_component_type               => l_component_type
65119   , p_component_code               => l_component_code
65120   , p_component_type_code          => l_component_type_code
65121   , p_component_appl_id            => l_component_appl_id
65122   , p_amb_context_code             => l_amb_context_code
65123   , p_side                         => 'NA'
65124   );
65125 
65126 
65127    --
65128    --
65129    END IF;
65130    --
65131    -- Bug 4922099
65132    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
65133           (NVL(l_enc_upg_option, 'N') = 'O')
65134         ) AND
65135         (l_bflow_method_code = 'PRIOR_ENTRY')
65136       )
65137    THEN
65138       IF
65139       --
65140       1 = 2
65141       --
65142       THEN
65143       xla_accounting_err_pkg.build_message
65144                                     (p_appli_s_name            => 'XLA'
65145                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65146                                     ,p_token_1                 => 'LINE_NUMBER'
65147                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
65148                                     ,p_token_2                 => 'LINE_TYPE_NAME'
65149                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
65153                                                                             ,l_component_appl_id
65150                                                                              l_component_type
65151                                                                             ,l_component_code
65152                                                                             ,l_component_type_code
65154                                                                             ,l_amb_context_code
65155                                                                             ,l_entity_code
65156                                                                             ,l_event_class_code
65157                                                                            )
65158                                     ,p_token_3                 => 'OWNER'
65159                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
65160                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
65161                                                                           ,p_lookup_code    => l_component_type_code
65162                                                                          )
65163                                     ,p_token_4                 => 'PRODUCT_NAME'
65164                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
65165                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
65166                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
65167                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
65168                                     ,p_ae_header_id            =>  NULL
65169                                        );
65170 
65171         IF (C_LEVEL_ERROR>= g_log_level) THEN
65172                  trace
65173                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65174                       ,p_level    => C_LEVEL_ERROR
65175                       ,p_module   => l_log_module);
65176         END IF;
65177       END IF;
65178    END IF;
65179    --
65180    --
65181    ------------------------------------------------------------------------------------------------
65182    -- 4219869 Business Flow
65183    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65184    -- Prior Entry.  Currently, the following code is always generated.
65185    ------------------------------------------------------------------------------------------------
65186    XLA_AE_LINES_PKG.ValidateCurrentLine;
65187 
65188    ------------------------------------------------------------------------------------
65189    -- 4219869 Business Flow
65190    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65191    ------------------------------------------------------------------------------------
65192    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65193 
65194    ----------------------------------------------------------------------------------
65195    -- 4219869 Business Flow
65196    -- Update journal entry status -- Need to generate this within IF <condition>
65197    ----------------------------------------------------------------------------------
65198    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65199          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65200          ,p_balance_type_code => l_balance_type_code
65201          );
65202 
65203    -------------------------------------------------------------------------------------------
65204    -- 4262811 - Generate the Accrual Reversal lines
65205    -------------------------------------------------------------------------------------------
65206    BEGIN
65207       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65208                               (g_array_event(p_event_id).array_value_num('header_index'));
65209       IF l_acc_rev_flag IS NULL THEN
65210          l_acc_rev_flag := 'N';
65211       END IF;
65212    EXCEPTION
65213       WHEN OTHERS THEN
65214          l_acc_rev_flag := 'N';
65215    END;
65216    --
65217    IF (l_acc_rev_flag = 'Y') THEN
65218 
65219        -- 4645092  ------------------------------------------------------------------------------
65220        -- To allow MPA report to determine if it should generate report process
65221        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65222        ------------------------------------------------------------------------------------------
65223 
65224        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65225        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65226    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
65227    -- call ADRs
65228    -- Bug 4922099
65229    --
65230    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65231         (NVL(l_actual_upg_option, 'N') = 'O') OR
65232         (NVL(l_enc_upg_option, 'N') = 'O')
65233       )
65234    THEN
65235    NULL;
65236    --
65237    --
65238    
65239   l_ccid := AcctDerRule_28(
65240            p_application_id           => p_application_id
65241          , p_ae_header_id             => l_ae_header_id 
65242 , p_source_29 => p_source_29
65243          , x_transaction_coa_id       => l_adr_transaction_coa_id
65244          , x_accounting_coa_id        => l_adr_accounting_coa_id
65245          , x_value_type_code          => l_adr_value_type_code
65249    xla_ae_lines_pkg.set_ccid(
65246          , p_side                     => 'NA'
65247    );
65248 
65250     p_code_combination_id          => l_ccid
65251   , p_value_type_code              => l_adr_value_type_code
65252   , p_transaction_coa_id           => l_adr_transaction_coa_id
65253   , p_accounting_coa_id            => l_adr_accounting_coa_id
65254   , p_adr_code                     => 'AP_INVOICE_DIST'
65255   , p_adr_type_code                => 'S'
65256   , p_component_type               => l_component_type
65257   , p_component_code               => l_component_code
65258   , p_component_type_code          => l_component_type_code
65259   , p_component_appl_id            => l_component_appl_id
65260   , p_amb_context_code             => l_amb_context_code
65261   , p_side                         => 'NA'
65262   );
65263 
65264 
65265    --
65266    --
65267    END IF;
65268 
65269        --
65270        -- Update the line information that should be overwritten
65271        --
65272        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65273                                          p_header_num   => 1);
65274        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
65275 
65276        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65277 
65278        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
65279           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65280        END IF;
65281 
65282       --
65283       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65284       --
65285       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65286           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
65287       ELSE
65288           ---------------------------------------------------------------------------------------------------
65289           -- 4262811a Switch Sign
65290           ---------------------------------------------------------------------------------------------------
65291           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
65292           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65293                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65294           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65295                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65296           -- 5132302
65297           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65298                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65299 
65300       END IF;
65301 
65302       -- 4955764
65303       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65304       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65305 
65306 
65307       XLA_AE_LINES_PKG.ValidateCurrentLine;
65308       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65309 
65310       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65311                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65312                ,p_balance_type_code => l_balance_type_code);
65313 
65314    END IF;
65315 
65316    -----------------------------------------------------------------------------------------
65317    -- 4262811 Multiperiod Accounting
65318    -----------------------------------------------------------------------------------------
65319      -- No MPA option is assigned.
65320 
65321 
65322 END IF;
65323 END IF;
65324 --
65325 
65326 --
65327 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65328    trace
65329       (p_msg      => 'END of AcctLineType_121'
65330       ,p_level    => C_LEVEL_PROCEDURE
65331       ,p_module   => l_log_module);
65332 END IF;
65333 --
65334 EXCEPTION
65335   WHEN xla_exceptions_pkg.application_exception THEN
65336       RAISE;
65337   WHEN OTHERS THEN
65338        xla_exceptions_pkg.raise_message
65339            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_121');
65340 END AcctLineType_121;
65341 --
65342 
65343 ---------------------------------------
65344 --
65345 -- PRIVATE FUNCTION
65346 --         AcctLineType_122
65347 --
65348 ---------------------------------------
65349 PROCEDURE AcctLineType_122 (
65350   p_application_id        IN NUMBER
65351  ,p_event_id              IN NUMBER
65352  ,p_calculate_acctd_flag  IN VARCHAR2
65353  ,p_calculate_g_l_flag    IN VARCHAR2
65354  ,p_actual_flag           IN OUT VARCHAR2
65355  ,p_balance_type_code     OUT VARCHAR2
65356  ,p_gain_or_loss_ref      OUT VARCHAR2
65357  
65358 --Payment Currency Code
65359  , p_source_12            IN VARCHAR2
65360 --Payment Distribution (Payment Rate) Ledger Amount
65361  , p_source_21            IN NUMBER
65362 --Invoice Distribution Account
65363  , p_source_29            IN NUMBER
65364 --Invoice Distribution Type
65365  , p_source_32            IN VARCHAR2
65366  , p_source_32_meaning    IN VARCHAR2
65370  , p_source_51            IN VARCHAR2
65367 --When to Account for Payment Option
65368  , p_source_50            IN VARCHAR2
65369 --Payment Distribution Type
65371  , p_source_51_meaning    IN VARCHAR2
65372 --Accounting Reversal Indicator
65373  , p_source_52            IN VARCHAR2
65374 --Payment Distribution Amount
65375  , p_source_53            IN NUMBER
65376 --Business Flow Accounts Payable Application Identifier
65377  , p_source_54            IN NUMBER
65378 --Payment Distribution Identifier
65379  , p_source_59            IN NUMBER
65380 --Distribution Link Type
65381  , p_source_60            IN VARCHAR2
65382 --Purchase Order Exchange Rate Date
65383  , p_source_61            IN DATE
65384 --Purchase Order Exchange Rate
65385  , p_source_62            IN NUMBER
65386 --Purchase Order Exchange Rate Type
65387  , p_source_63            IN VARCHAR2
65388 --Override Accounted Amount Indicator
65389  , p_source_64            IN VARCHAR2
65390  , p_source_64_meaning    IN VARCHAR2
65391 --Payment Supplier Identifier
65392  , p_source_65            IN NUMBER
65393 --Payment Supplier Site Identifier
65394  , p_source_66            IN NUMBER
65395 --Third Party Type
65396  , p_source_67            IN VARCHAR2
65397 --Payment Distribution Reversed Identifier
65398  , p_source_68            IN NUMBER
65399 --Invoice Distribution Tax Line Identifier
65400  , p_source_69            IN NUMBER
65401 --Invoice Distribution Summary Tax Line Identifier
65402  , p_source_70            IN NUMBER
65403 --Payment Type
65404  , p_source_71            IN VARCHAR2
65405  , p_source_71_meaning    IN VARCHAR2
65406 --Business Flow Invoice Distribution Type
65407  , p_source_73            IN VARCHAR2
65408 --Business Flow Invoice Entity Code
65409  , p_source_74            IN VARCHAR2
65410 --Business Flow Invoice Distribution Identifier
65411  , p_source_75            IN NUMBER
65412 --Business Flow Invoice Identifier
65413  , p_source_76            IN NUMBER
65414 --Invoice Distribution Tax Distribution Identifier from Tax
65415  , p_source_77            IN NUMBER
65416 --Accrue on Receipt Option
65417  , p_source_111            IN VARCHAR2
65418  , p_source_111_meaning    IN VARCHAR2
65419 )
65420 IS
65421 
65422 l_component_type              VARCHAR2(80);
65423 l_component_code              VARCHAR2(30);
65424 l_component_type_code         VARCHAR2(1);
65425 l_component_appl_id           INTEGER;
65426 l_amb_context_code            VARCHAR2(30);
65427 l_entity_code                 VARCHAR2(30);
65428 l_event_class_code            VARCHAR2(30);
65429 l_ae_header_id                NUMBER;
65430 l_event_type_code             VARCHAR2(30);
65431 l_line_definition_code        VARCHAR2(30);
65432 l_line_definition_owner_code  VARCHAR2(1);
65433 --
65434 -- adr variables
65435 l_segment                     VARCHAR2(30);
65436 l_ccid                        NUMBER;
65437 l_adr_transaction_coa_id      NUMBER;
65438 l_adr_accounting_coa_id       NUMBER;
65439 l_adr_flexfield_segment_code  VARCHAR2(30);
65440 l_adr_flex_value_set_id       NUMBER;
65441 l_adr_value_type_code         VARCHAR2(30);
65442 l_adr_value_combination_id    NUMBER;
65443 l_adr_value_segment_code      VARCHAR2(30);
65444 
65445 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
65446 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
65447 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
65448 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
65449 
65450 -- 4262811 Variables ------------------------------------------------------------------------------------------
65451 l_entered_amt_idx             NUMBER;
65452 l_accted_amt_idx              NUMBER;
65453 l_acc_rev_flag                VARCHAR2(1);
65454 l_accrual_line_num            NUMBER;
65455 l_tmp_amt                     NUMBER;
65456 l_acc_rev_natural_side_code   VARCHAR2(1);
65457 
65458 l_num_entries                 NUMBER;
65459 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
65460 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
65461 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
65462 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
65463 l_recog_line_1                NUMBER;
65464 l_recog_line_2                NUMBER;
65465 
65466 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
65467 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
65468 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
65469 
65470 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65471 
65472 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
65473 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
65474 
65475 ---------------------------------------------------------------------------------------------------------------
65476 
65477 
65478 --
65479 -- bulk performance
65480 --
65481 l_balance_type_code           VARCHAR2(1);
65482 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
65483 l_log_module                  VARCHAR2(240);
65484 
65485 --
65486 -- Upgrade strategy
65487 --
65488 l_actual_upg_option           VARCHAR2(1);
65489 l_enc_upg_option           VARCHAR2(1);
65490 
65491 --
65492 BEGIN
65496 END IF;
65493 --
65494 IF g_log_enabled THEN
65495       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_122';
65497 --
65498 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65499 
65500       trace
65501          (p_msg      => 'BEGIN of AcctLineType_122'
65502          ,p_level    => C_LEVEL_PROCEDURE
65503          ,p_module   => l_log_module);
65504 
65505 END IF;
65506 --
65507 l_component_type             := 'AMB_JLT';
65508 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_REF';
65509 l_component_type_code        := 'S';
65510 l_component_appl_id          :=  200;
65511 l_amb_context_code           := 'DEFAULT';
65512 l_entity_code                := 'AP_PAYMENTS';
65513 l_event_class_code           := 'REFUNDS';
65514 l_event_type_code            := 'REFUNDS_ALL';
65515 l_line_definition_owner_code := 'S';
65516 l_line_definition_code       := 'CASH_REFUNDS_ALL';
65517 --
65518 l_balance_type_code          := 'A';
65519 l_segment                     := NULL;
65520 l_ccid                        := NULL;
65521 l_adr_transaction_coa_id      := NULL;
65522 l_adr_accounting_coa_id       := NULL;
65523 l_adr_flexfield_segment_code  := NULL;
65524 l_adr_flex_value_set_id       := NULL;
65525 l_adr_value_type_code         := NULL;
65526 l_adr_value_combination_id    := NULL;
65527 l_adr_value_segment_code      := NULL;
65528 
65529 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
65530 l_bflow_class_code           := '';    -- 4219869 Business Flow
65531 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
65532 l_budgetary_control_flag     := 'N';
65533 
65534 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
65535 l_bflow_applied_to_amt       := NULL; -- 5132302
65536 l_entered_amt_idx            := NULL;          -- 4262811
65537 l_accted_amt_idx             := NULL;          -- 4262811
65538 l_acc_rev_flag               := NULL;          -- 4262811
65539 l_accrual_line_num           := NULL;          -- 4262811
65540 l_tmp_amt                    := NULL;          -- 4262811
65541 --
65542  
65543 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
65544     l_balance_type_code <> 'B' THEN
65545 IF NVL(p_source_50,'
65546 ') <>  'CLEAR_CLEAR' AND 
65547 NVL(p_source_32,'
65548 ') =  'NONREC_TAX' AND 
65549 NVL(p_source_111,'
65550 ') =  'Y' AND 
65551 (NVL(p_source_51,'
65552 ') =  'CASH' OR 
65553 NVL(p_source_51,'
65554 ') =  'DISCOUNT') AND 
65555 NVL(p_source_71,'
65556 ') =  'R'
65557  THEN 
65558 
65559    --
65560    XLA_AE_LINES_PKG.SetNewLine;
65561 
65562    p_balance_type_code          := l_balance_type_code;
65563    -- set the flag so later we will know whether the gain loss line needs to be created
65564    
65565    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
65566      p_actual_flag :='A';
65567    END IF;
65568 
65569    --
65570    -- bulk performance
65571    --
65572    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
65573                                       p_header_num   => 0); -- 4262811
65574    --
65575    -- set accounting line options
65576    --
65577    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
65578            p_natural_side_code          => 'D'
65579          , p_gain_or_loss_flag          => 'N'
65580          , p_gl_transfer_mode_code      => 'S'
65581          , p_acct_entry_type_code       => 'A'
65582          , p_switch_side_flag           => 'Y'
65583          , p_merge_duplicate_code       => 'A'
65584          );
65585    --
65586    l_acc_rev_natural_side_code := 'C';  -- 4262811
65587    -- 
65588    --
65589    -- set accounting line type info
65590    --
65591    xla_ae_lines_pkg.SetAcctLineType
65592       (p_component_type             => l_component_type
65593       ,p_event_type_code            => l_event_type_code
65594       ,p_line_definition_owner_code => l_line_definition_owner_code
65595       ,p_line_definition_code       => l_line_definition_code
65596       ,p_accounting_line_code       => l_component_code
65597       ,p_accounting_line_type_code  => l_component_type_code
65598       ,p_accounting_line_appl_id    => l_component_appl_id
65599       ,p_amb_context_code           => l_amb_context_code
65600       ,p_entity_code                => l_entity_code
65601       ,p_event_class_code           => l_event_class_code);
65602    --
65603    -- set accounting class
65604    --
65605    xla_ae_lines_pkg.SetAcctClass(
65606            p_accounting_class_code  => 'NRTAX'
65607          , p_ae_header_id           => l_ae_header_id
65608          );
65609 
65610    --
65611    -- set rounding class
65612    --
65613    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
65614                       'NRTAX';
65615 
65616    --
65617    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
65618    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
65619    --
65620    -- bulk performance
65621    --
65622    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
65623 
65624    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
65625       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
65626 
65627    -- 4955764
65628    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65632    
65629       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
65630 
65631    -- 4458381 Public Sector Enh
65633    --
65634    -- set accounting attributes for the line type
65635    --
65636    l_entered_amt_idx := 9;
65637    l_accted_amt_idx  := 14;
65638    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
65639    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
65640    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
65641    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
65642    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
65643    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65644    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
65645    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
65646    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
65647    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
65648    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
65649    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65650    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
65651    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
65652    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
65653    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
65654    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
65655    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
65656    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
65657    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
65658    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
65659    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
65660    l_rec_acct_attrs.array_date_value(11)  := p_source_61;
65661    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
65662    l_rec_acct_attrs.array_num_value(12)  := p_source_62;
65663    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
65664    l_rec_acct_attrs.array_char_value(13)  := p_source_63;
65665    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
65666    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
65667    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
65668    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
65669    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
65670    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
65671    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
65672    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
65673    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
65674    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
65675    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
65676    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
65677    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
65678    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
65679    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
65680    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
65681    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
65682    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
65683    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
65684    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
65685 
65686    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
65687    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
65688 
65689    ---------------------------------------------------------------------------------------------------------------
65690    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
65691    ---------------------------------------------------------------------------------------------------------------
65692    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
65693 
65694    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65695    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65696 
65697    IF xla_accounting_cache_pkg.GetValueChar
65698          (p_source_code         => 'LEDGER_CATEGORY_CODE'
65699          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
65700    AND l_bflow_method_code = 'PRIOR_ENTRY'
65701 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
65702    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
65703          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
65704        )
65705    THEN
65706          xla_ae_lines_pkg.BflowUpgEntry
65707            (p_business_method_code    => l_bflow_method_code
65708            ,p_business_class_code     => l_bflow_class_code
65709            ,p_balance_type            => l_balance_type_code);
65710    ELSE
65711       NULL;
65712 -- No business flow processing for business flow method of NONE.
65713    END IF;
65714 
65715    --
65716    -- call analytical criteria
65717    --
65718    
65719    --
65720    -- call description
65721    --
65722    -- No description or it is inherited.
65723    --
65724    -- call ADRs
65725    -- Bug 4922099
65726    --
65727    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65731    THEN
65728         (NVL(l_actual_upg_option, 'N') = 'O') OR
65729         (NVL(l_enc_upg_option, 'N') = 'O')
65730       )
65732    NULL;
65733    --
65734    --
65735    
65736   l_ccid := AcctDerRule_28(
65737            p_application_id           => p_application_id
65738          , p_ae_header_id             => l_ae_header_id 
65739 , p_source_29 => p_source_29
65740          , x_transaction_coa_id       => l_adr_transaction_coa_id
65741          , x_accounting_coa_id        => l_adr_accounting_coa_id
65742          , x_value_type_code          => l_adr_value_type_code
65743          , p_side                     => 'NA'
65744    );
65745 
65746    xla_ae_lines_pkg.set_ccid(
65747     p_code_combination_id          => l_ccid
65748   , p_value_type_code              => l_adr_value_type_code
65749   , p_transaction_coa_id           => l_adr_transaction_coa_id
65750   , p_accounting_coa_id            => l_adr_accounting_coa_id
65751   , p_adr_code                     => 'AP_INVOICE_DIST'
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_side                         => 'NA'
65759   );
65760 
65761 
65762    --
65763    --
65764    END IF;
65765    --
65766    -- Bug 4922099
65767    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
65768           (NVL(l_enc_upg_option, 'N') = 'O')
65769         ) AND
65770         (l_bflow_method_code = 'PRIOR_ENTRY')
65771       )
65772    THEN
65773       IF
65774       --
65775       1 = 2
65776       --
65777       THEN
65778       xla_accounting_err_pkg.build_message
65779                                     (p_appli_s_name            => 'XLA'
65780                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65781                                     ,p_token_1                 => 'LINE_NUMBER'
65782                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
65783                                     ,p_token_2                 => 'LINE_TYPE_NAME'
65784                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
65785                                                                              l_component_type
65786                                                                             ,l_component_code
65787                                                                             ,l_component_type_code
65788                                                                             ,l_component_appl_id
65789                                                                             ,l_amb_context_code
65790                                                                             ,l_entity_code
65791                                                                             ,l_event_class_code
65792                                                                            )
65793                                     ,p_token_3                 => 'OWNER'
65794                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
65795                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
65796                                                                           ,p_lookup_code    => l_component_type_code
65797                                                                          )
65798                                     ,p_token_4                 => 'PRODUCT_NAME'
65799                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
65800                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
65801                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
65802                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
65803                                     ,p_ae_header_id            =>  NULL
65804                                        );
65805 
65806         IF (C_LEVEL_ERROR>= g_log_level) THEN
65807                  trace
65808                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65809                       ,p_level    => C_LEVEL_ERROR
65810                       ,p_module   => l_log_module);
65811         END IF;
65812       END IF;
65813    END IF;
65814    --
65815    --
65816    ------------------------------------------------------------------------------------------------
65817    -- 4219869 Business Flow
65818    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65819    -- Prior Entry.  Currently, the following code is always generated.
65820    ------------------------------------------------------------------------------------------------
65821    XLA_AE_LINES_PKG.ValidateCurrentLine;
65822 
65823    ------------------------------------------------------------------------------------
65824    -- 4219869 Business Flow
65825    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65826    ------------------------------------------------------------------------------------
65827    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65828 
65829    ----------------------------------------------------------------------------------
65830    -- 4219869 Business Flow
65834          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65831    -- Update journal entry status -- Need to generate this within IF <condition>
65832    ----------------------------------------------------------------------------------
65833    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65835          ,p_balance_type_code => l_balance_type_code
65836          );
65837 
65838    -------------------------------------------------------------------------------------------
65839    -- 4262811 - Generate the Accrual Reversal lines
65840    -------------------------------------------------------------------------------------------
65841    BEGIN
65842       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65843                               (g_array_event(p_event_id).array_value_num('header_index'));
65844       IF l_acc_rev_flag IS NULL THEN
65845          l_acc_rev_flag := 'N';
65846       END IF;
65847    EXCEPTION
65848       WHEN OTHERS THEN
65849          l_acc_rev_flag := 'N';
65850    END;
65851    --
65852    IF (l_acc_rev_flag = 'Y') THEN
65853 
65854        -- 4645092  ------------------------------------------------------------------------------
65855        -- To allow MPA report to determine if it should generate report process
65856        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65857        ------------------------------------------------------------------------------------------
65858 
65859        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65860        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65861    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
65862    -- call ADRs
65863    -- Bug 4922099
65864    --
65865    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65866         (NVL(l_actual_upg_option, 'N') = 'O') OR
65867         (NVL(l_enc_upg_option, 'N') = 'O')
65868       )
65869    THEN
65870    NULL;
65871    --
65872    --
65873    
65874   l_ccid := AcctDerRule_28(
65875            p_application_id           => p_application_id
65876          , p_ae_header_id             => l_ae_header_id 
65877 , p_source_29 => p_source_29
65878          , x_transaction_coa_id       => l_adr_transaction_coa_id
65879          , x_accounting_coa_id        => l_adr_accounting_coa_id
65880          , x_value_type_code          => l_adr_value_type_code
65881          , p_side                     => 'NA'
65882    );
65883 
65884    xla_ae_lines_pkg.set_ccid(
65885     p_code_combination_id          => l_ccid
65886   , p_value_type_code              => l_adr_value_type_code
65887   , p_transaction_coa_id           => l_adr_transaction_coa_id
65888   , p_accounting_coa_id            => l_adr_accounting_coa_id
65889   , p_adr_code                     => 'AP_INVOICE_DIST'
65890   , p_adr_type_code                => 'S'
65891   , p_component_type               => l_component_type
65892   , p_component_code               => l_component_code
65893   , p_component_type_code          => l_component_type_code
65894   , p_component_appl_id            => l_component_appl_id
65895   , p_amb_context_code             => l_amb_context_code
65896   , p_side                         => 'NA'
65897   );
65898 
65899 
65900    --
65901    --
65902    END IF;
65903 
65904        --
65905        -- Update the line information that should be overwritten
65906        --
65907        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65908                                          p_header_num   => 1);
65909        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
65910 
65911        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65912 
65913        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
65914           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65915        END IF;
65916 
65917       --
65918       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65919       --
65920       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65921           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
65922       ELSE
65923           ---------------------------------------------------------------------------------------------------
65924           -- 4262811a Switch Sign
65925           ---------------------------------------------------------------------------------------------------
65926           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
65927           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65928                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65929           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65930                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65931           -- 5132302
65932           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65933                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65934 
65935       END IF;
65936 
65937       -- 4955764
65941 
65938       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65939       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65940 
65942       XLA_AE_LINES_PKG.ValidateCurrentLine;
65943       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65944 
65945       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65946                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65947                ,p_balance_type_code => l_balance_type_code);
65948 
65949    END IF;
65950 
65951    -----------------------------------------------------------------------------------------
65952    -- 4262811 Multiperiod Accounting
65953    -----------------------------------------------------------------------------------------
65954      -- No MPA option is assigned.
65955 
65956 
65957 END IF;
65958 END IF;
65959 --
65960 
65961 --
65962 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65963    trace
65964       (p_msg      => 'END of AcctLineType_122'
65965       ,p_level    => C_LEVEL_PROCEDURE
65966       ,p_module   => l_log_module);
65967 END IF;
65968 --
65969 EXCEPTION
65970   WHEN xla_exceptions_pkg.application_exception THEN
65971       RAISE;
65972   WHEN OTHERS THEN
65973        xla_exceptions_pkg.raise_message
65974            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_122');
65975 END AcctLineType_122;
65976 --
65977 
65978 ---------------------------------------
65979 --
65980 -- PRIVATE FUNCTION
65981 --         AcctLineType_123
65982 --
65983 ---------------------------------------
65984 PROCEDURE AcctLineType_123 (
65985   p_application_id        IN NUMBER
65986  ,p_event_id              IN NUMBER
65987  ,p_calculate_acctd_flag  IN VARCHAR2
65988  ,p_calculate_g_l_flag    IN VARCHAR2
65989  ,p_actual_flag           IN OUT VARCHAR2
65990  ,p_balance_type_code     OUT VARCHAR2
65991  ,p_gain_or_loss_ref      OUT VARCHAR2
65992  
65993 --Payment Currency Code
65994  , p_source_12            IN VARCHAR2
65995 --Payment Distribution (Cleared Rate) Ledger Amount
65996  , p_source_22            IN NUMBER
65997 --Invoice Distribution Account
65998  , p_source_29            IN NUMBER
65999 --Invoice Distribution Type
66000  , p_source_32            IN VARCHAR2
66001  , p_source_32_meaning    IN VARCHAR2
66002 --When to Account for Payment Option
66003  , p_source_50            IN VARCHAR2
66004 --Payment Distribution Type
66005  , p_source_51            IN VARCHAR2
66006  , p_source_51_meaning    IN VARCHAR2
66007 --Accounting Reversal Indicator
66008  , p_source_52            IN VARCHAR2
66009 --Payment Distribution Amount
66010  , p_source_53            IN NUMBER
66011 --Business Flow Accounts Payable Application Identifier
66012  , p_source_54            IN NUMBER
66013 --Business Flow Payment Distribution Type
66014  , p_source_55            IN VARCHAR2
66015 --Business Flow Payment Entity Code
66016  , p_source_56            IN VARCHAR2
66017 --Business Flow Payment Distribution Identifier
66018  , p_source_57            IN NUMBER
66019 --Business Flow Payment Identifier
66020  , p_source_58            IN NUMBER
66021 --Payment Distribution Identifier
66022  , p_source_59            IN NUMBER
66023 --Distribution Link Type
66024  , p_source_60            IN VARCHAR2
66025 --Override Accounted Amount Indicator
66026  , p_source_64            IN VARCHAR2
66027  , p_source_64_meaning    IN VARCHAR2
66028 --Payment Supplier Identifier
66029  , p_source_65            IN NUMBER
66030 --Payment Supplier Site Identifier
66031  , p_source_66            IN NUMBER
66032 --Third Party Type
66033  , p_source_67            IN VARCHAR2
66034 --Payment Distribution Reversed Identifier
66035  , p_source_68            IN NUMBER
66036 --Invoice Distribution Tax Line Identifier
66037  , p_source_69            IN NUMBER
66038 --Invoice Distribution Summary Tax Line Identifier
66039  , p_source_70            IN NUMBER
66040 --Accrue on Receipt Option
66041  , p_source_111            IN VARCHAR2
66042  , p_source_111_meaning    IN VARCHAR2
66043 --Cleared Exchange Date
66044  , p_source_114            IN DATE
66045 --Cleared Exchange Rate
66046  , p_source_115            IN NUMBER
66047 --Cleared Exchange Rate Type
66048  , p_source_116            IN VARCHAR2
66049 )
66050 IS
66051 
66052 l_component_type              VARCHAR2(80);
66053 l_component_code              VARCHAR2(30);
66054 l_component_type_code         VARCHAR2(1);
66055 l_component_appl_id           INTEGER;
66056 l_amb_context_code            VARCHAR2(30);
66057 l_entity_code                 VARCHAR2(30);
66058 l_event_class_code            VARCHAR2(30);
66059 l_ae_header_id                NUMBER;
66060 l_event_type_code             VARCHAR2(30);
66061 l_line_definition_code        VARCHAR2(30);
66062 l_line_definition_owner_code  VARCHAR2(1);
66063 --
66064 -- adr variables
66065 l_segment                     VARCHAR2(30);
66066 l_ccid                        NUMBER;
66067 l_adr_transaction_coa_id      NUMBER;
66068 l_adr_accounting_coa_id       NUMBER;
66069 l_adr_flexfield_segment_code  VARCHAR2(30);
66070 l_adr_flex_value_set_id       NUMBER;
66071 l_adr_value_type_code         VARCHAR2(30);
66072 l_adr_value_combination_id    NUMBER;
66073 l_adr_value_segment_code      VARCHAR2(30);
66074 
66078 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
66075 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
66076 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
66077 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
66079 
66080 -- 4262811 Variables ------------------------------------------------------------------------------------------
66081 l_entered_amt_idx             NUMBER;
66082 l_accted_amt_idx              NUMBER;
66083 l_acc_rev_flag                VARCHAR2(1);
66084 l_accrual_line_num            NUMBER;
66085 l_tmp_amt                     NUMBER;
66086 l_acc_rev_natural_side_code   VARCHAR2(1);
66087 
66088 l_num_entries                 NUMBER;
66089 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
66090 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
66091 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
66092 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
66093 l_recog_line_1                NUMBER;
66094 l_recog_line_2                NUMBER;
66095 
66096 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
66097 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
66098 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
66099 
66100 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
66101 
66102 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
66103 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
66104 
66105 ---------------------------------------------------------------------------------------------------------------
66106 
66107 
66108 --
66109 -- bulk performance
66110 --
66111 l_balance_type_code           VARCHAR2(1);
66112 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
66113 l_log_module                  VARCHAR2(240);
66114 
66115 --
66116 -- Upgrade strategy
66117 --
66118 l_actual_upg_option           VARCHAR2(1);
66119 l_enc_upg_option           VARCHAR2(1);
66120 
66121 --
66122 BEGIN
66123 --
66124 IF g_log_enabled THEN
66125       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_123';
66126 END IF;
66127 --
66128 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66129 
66130       trace
66131          (p_msg      => 'BEGIN of AcctLineType_123'
66132          ,p_level    => C_LEVEL_PROCEDURE
66133          ,p_module   => l_log_module);
66134 
66135 END IF;
66136 --
66137 l_component_type             := 'AMB_JLT';
66138 l_component_code             := 'AP_NON_RECOV_TAX_CLEAR';
66139 l_component_type_code        := 'S';
66140 l_component_appl_id          :=  200;
66141 l_amb_context_code           := 'DEFAULT';
66142 l_entity_code                := 'AP_PAYMENTS';
66143 l_event_class_code           := 'RECONCILED PAYMENTS';
66144 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
66145 l_line_definition_owner_code := 'S';
66146 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
66147 --
66148 l_balance_type_code          := 'A';
66149 l_segment                     := NULL;
66150 l_ccid                        := NULL;
66151 l_adr_transaction_coa_id      := NULL;
66152 l_adr_accounting_coa_id       := NULL;
66153 l_adr_flexfield_segment_code  := NULL;
66154 l_adr_flex_value_set_id       := NULL;
66155 l_adr_value_type_code         := NULL;
66156 l_adr_value_combination_id    := NULL;
66157 l_adr_value_segment_code      := NULL;
66158 
66159 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
66160 l_bflow_class_code           := '';    -- 4219869 Business Flow
66161 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
66162 l_budgetary_control_flag     := 'N';
66163 
66164 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
66165 l_bflow_applied_to_amt       := NULL; -- 5132302
66166 l_entered_amt_idx            := NULL;          -- 4262811
66167 l_accted_amt_idx             := NULL;          -- 4262811
66168 l_acc_rev_flag               := NULL;          -- 4262811
66169 l_accrual_line_num           := NULL;          -- 4262811
66170 l_tmp_amt                    := NULL;          -- 4262811
66171 --
66172  
66173 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
66174     l_balance_type_code <> 'B' THEN
66175 IF NVL(p_source_50,'
66176 ') =  'CLEAR_CLEAR' AND 
66177 (NVL(p_source_32,'
66178 ') =  'NONREC_TAX' OR 
66179 NVL(p_source_32,'
66180 ') =  'TERV' OR 
66181 NVL(p_source_32,'
66182 ') =  'TIPV' OR 
66183 NVL(p_source_32,'
66184 ') =  'TRV') AND 
66185 NVL(p_source_111,'
66186 ') <>  'Y' AND 
66187 (NVL(p_source_51,'
66188 ') =  'CASH' OR 
66189 NVL(p_source_51,'
66190 ') =  'AWT' OR 
66191 NVL(p_source_51,'
66192 ') =  'DISCOUNT')
66193  THEN 
66194 
66195    --
66196    XLA_AE_LINES_PKG.SetNewLine;
66197 
66198    p_balance_type_code          := l_balance_type_code;
66199    -- set the flag so later we will know whether the gain loss line needs to be created
66200    
66201    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
66202      p_actual_flag :='A';
66203    END IF;
66204 
66205    --
66206    -- bulk performance
66207    --
66208    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
66212    --
66209                                       p_header_num   => 0); -- 4262811
66210    --
66211    -- set accounting line options
66213    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
66214            p_natural_side_code          => 'D'
66215          , p_gain_or_loss_flag          => 'N'
66216          , p_gl_transfer_mode_code      => 'S'
66217          , p_acct_entry_type_code       => 'A'
66218          , p_switch_side_flag           => 'Y'
66219          , p_merge_duplicate_code       => 'A'
66220          );
66221    --
66222    l_acc_rev_natural_side_code := 'C';  -- 4262811
66223    -- 
66224    --
66225    -- set accounting line type info
66226    --
66227    xla_ae_lines_pkg.SetAcctLineType
66228       (p_component_type             => l_component_type
66229       ,p_event_type_code            => l_event_type_code
66230       ,p_line_definition_owner_code => l_line_definition_owner_code
66231       ,p_line_definition_code       => l_line_definition_code
66232       ,p_accounting_line_code       => l_component_code
66233       ,p_accounting_line_type_code  => l_component_type_code
66234       ,p_accounting_line_appl_id    => l_component_appl_id
66235       ,p_amb_context_code           => l_amb_context_code
66236       ,p_entity_code                => l_entity_code
66237       ,p_event_class_code           => l_event_class_code);
66238    --
66239    -- set accounting class
66240    --
66241    xla_ae_lines_pkg.SetAcctClass(
66242            p_accounting_class_code  => 'NRTAX'
66243          , p_ae_header_id           => l_ae_header_id
66244          );
66245 
66246    --
66247    -- set rounding class
66248    --
66249    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
66250                       'NRTAX';
66251 
66252    --
66253    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
66254    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
66255    --
66256    -- bulk performance
66257    --
66258    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
66259 
66260    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
66261       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
66262 
66263    -- 4955764
66264    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66265       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
66266 
66267    -- 4458381 Public Sector Enh
66268    
66269    --
66270    -- set accounting attributes for the line type
66271    --
66272    l_entered_amt_idx := 10;
66273    l_accted_amt_idx  := 15;
66274    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
66275    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
66276    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
66277    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
66278    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
66279    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
66280    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
66281    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
66282    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
66283    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
66284    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
66285    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
66286    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
66287    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
66288    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
66289    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
66290    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
66291    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
66292    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
66293    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
66294    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
66295    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
66296    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
66297    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
66298    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
66299    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
66300    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
66301    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
66302    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
66303    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
66304    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
66305    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
66306    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
66307    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
66308    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
66309    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
66310    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
66311    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
66312    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
66313    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
66314    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
66315    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
66319    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
66316    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
66317    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
66318    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
66320    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
66321    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
66322    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
66323 
66324    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66325    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66326 
66327    ---------------------------------------------------------------------------------------------------------------
66328    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66329    ---------------------------------------------------------------------------------------------------------------
66330    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66331 
66332    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66333    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66334 
66335    IF xla_accounting_cache_pkg.GetValueChar
66336          (p_source_code         => 'LEDGER_CATEGORY_CODE'
66337          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66338    AND l_bflow_method_code = 'PRIOR_ENTRY'
66339 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66340    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66341          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66342        )
66343    THEN
66344          xla_ae_lines_pkg.BflowUpgEntry
66345            (p_business_method_code    => l_bflow_method_code
66346            ,p_business_class_code     => l_bflow_class_code
66347            ,p_balance_type            => l_balance_type_code);
66348    ELSE
66349       NULL;
66350 -- No business flow processing for business flow method of NONE.
66351    END IF;
66352 
66353    --
66354    -- call analytical criteria
66355    --
66356    
66357    --
66358    -- call description
66359    --
66360    -- No description or it is inherited.
66361    --
66362    -- call ADRs
66363    -- Bug 4922099
66364    --
66365    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66366         (NVL(l_actual_upg_option, 'N') = 'O') OR
66367         (NVL(l_enc_upg_option, 'N') = 'O')
66368       )
66369    THEN
66370    NULL;
66371    --
66372    --
66373    
66374   l_ccid := AcctDerRule_28(
66375            p_application_id           => p_application_id
66376          , p_ae_header_id             => l_ae_header_id 
66377 , p_source_29 => p_source_29
66378          , x_transaction_coa_id       => l_adr_transaction_coa_id
66379          , x_accounting_coa_id        => l_adr_accounting_coa_id
66380          , x_value_type_code          => l_adr_value_type_code
66381          , p_side                     => 'NA'
66382    );
66383 
66384    xla_ae_lines_pkg.set_ccid(
66385     p_code_combination_id          => l_ccid
66386   , p_value_type_code              => l_adr_value_type_code
66387   , p_transaction_coa_id           => l_adr_transaction_coa_id
66388   , p_accounting_coa_id            => l_adr_accounting_coa_id
66389   , p_adr_code                     => 'AP_INVOICE_DIST'
66390   , p_adr_type_code                => 'S'
66391   , p_component_type               => l_component_type
66392   , p_component_code               => l_component_code
66393   , p_component_type_code          => l_component_type_code
66394   , p_component_appl_id            => l_component_appl_id
66395   , p_amb_context_code             => l_amb_context_code
66396   , p_side                         => 'NA'
66397   );
66398 
66399 
66400    --
66401    --
66402    END IF;
66403    --
66404    -- Bug 4922099
66405    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
66406           (NVL(l_enc_upg_option, 'N') = 'O')
66407         ) AND
66408         (l_bflow_method_code = 'PRIOR_ENTRY')
66409       )
66410    THEN
66411       IF
66412       --
66413       1 = 2
66414       --
66415       THEN
66416       xla_accounting_err_pkg.build_message
66417                                     (p_appli_s_name            => 'XLA'
66418                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66419                                     ,p_token_1                 => 'LINE_NUMBER'
66420                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
66421                                     ,p_token_2                 => 'LINE_TYPE_NAME'
66422                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
66423                                                                              l_component_type
66424                                                                             ,l_component_code
66425                                                                             ,l_component_type_code
66426                                                                             ,l_component_appl_id
66427                                                                             ,l_amb_context_code
66428                                                                             ,l_entity_code
66432                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
66429                                                                             ,l_event_class_code
66430                                                                            )
66431                                     ,p_token_3                 => 'OWNER'
66433                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
66434                                                                           ,p_lookup_code    => l_component_type_code
66435                                                                          )
66436                                     ,p_token_4                 => 'PRODUCT_NAME'
66437                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
66438                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
66439                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
66440                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
66441                                     ,p_ae_header_id            =>  NULL
66442                                        );
66443 
66444         IF (C_LEVEL_ERROR>= g_log_level) THEN
66445                  trace
66446                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66447                       ,p_level    => C_LEVEL_ERROR
66448                       ,p_module   => l_log_module);
66449         END IF;
66450       END IF;
66451    END IF;
66452    --
66453    --
66454    ------------------------------------------------------------------------------------------------
66455    -- 4219869 Business Flow
66456    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
66457    -- Prior Entry.  Currently, the following code is always generated.
66458    ------------------------------------------------------------------------------------------------
66459    XLA_AE_LINES_PKG.ValidateCurrentLine;
66460 
66461    ------------------------------------------------------------------------------------
66462    -- 4219869 Business Flow
66463    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
66464    ------------------------------------------------------------------------------------
66465    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66466 
66467    ----------------------------------------------------------------------------------
66468    -- 4219869 Business Flow
66469    -- Update journal entry status -- Need to generate this within IF <condition>
66470    ----------------------------------------------------------------------------------
66471    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66472          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
66473          ,p_balance_type_code => l_balance_type_code
66474          );
66475 
66476    -------------------------------------------------------------------------------------------
66477    -- 4262811 - Generate the Accrual Reversal lines
66478    -------------------------------------------------------------------------------------------
66479    BEGIN
66480       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
66481                               (g_array_event(p_event_id).array_value_num('header_index'));
66482       IF l_acc_rev_flag IS NULL THEN
66483          l_acc_rev_flag := 'N';
66484       END IF;
66485    EXCEPTION
66486       WHEN OTHERS THEN
66487          l_acc_rev_flag := 'N';
66488    END;
66489    --
66490    IF (l_acc_rev_flag = 'Y') THEN
66491 
66492        -- 4645092  ------------------------------------------------------------------------------
66493        -- To allow MPA report to determine if it should generate report process
66494        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
66495        ------------------------------------------------------------------------------------------
66496 
66497        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
66498        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
66499    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
66500    -- call ADRs
66501    -- Bug 4922099
66502    --
66503    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66504         (NVL(l_actual_upg_option, 'N') = 'O') OR
66505         (NVL(l_enc_upg_option, 'N') = 'O')
66506       )
66507    THEN
66508    NULL;
66509    --
66510    --
66511    
66512   l_ccid := AcctDerRule_28(
66513            p_application_id           => p_application_id
66514          , p_ae_header_id             => l_ae_header_id 
66515 , p_source_29 => p_source_29
66516          , x_transaction_coa_id       => l_adr_transaction_coa_id
66517          , x_accounting_coa_id        => l_adr_accounting_coa_id
66518          , x_value_type_code          => l_adr_value_type_code
66519          , p_side                     => 'NA'
66520    );
66521 
66522    xla_ae_lines_pkg.set_ccid(
66523     p_code_combination_id          => l_ccid
66524   , p_value_type_code              => l_adr_value_type_code
66525   , p_transaction_coa_id           => l_adr_transaction_coa_id
66526   , p_accounting_coa_id            => l_adr_accounting_coa_id
66527   , p_adr_code                     => 'AP_INVOICE_DIST'
66528   , p_adr_type_code                => 'S'
66529   , p_component_type               => l_component_type
66530   , p_component_code               => l_component_code
66534   , p_side                         => 'NA'
66531   , p_component_type_code          => l_component_type_code
66532   , p_component_appl_id            => l_component_appl_id
66533   , p_amb_context_code             => l_amb_context_code
66535   );
66536 
66537 
66538    --
66539    --
66540    END IF;
66541 
66542        --
66543        -- Update the line information that should be overwritten
66544        --
66545        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
66546                                          p_header_num   => 1);
66547        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
66548 
66549        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
66550 
66551        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
66552           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
66553        END IF;
66554 
66555       --
66556       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
66557       --
66558       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
66559           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
66560       ELSE
66561           ---------------------------------------------------------------------------------------------------
66562           -- 4262811a Switch Sign
66563           ---------------------------------------------------------------------------------------------------
66564           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
66565           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66566                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66567           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66568                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66569           -- 5132302
66570           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
66571                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66572 
66573       END IF;
66574 
66575       -- 4955764
66576       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66577       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
66578 
66579 
66580       XLA_AE_LINES_PKG.ValidateCurrentLine;
66581       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66582 
66583       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66584                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
66585                ,p_balance_type_code => l_balance_type_code);
66586 
66587    END IF;
66588 
66589    -----------------------------------------------------------------------------------------
66590    -- 4262811 Multiperiod Accounting
66591    -----------------------------------------------------------------------------------------
66592      -- No MPA option is assigned.
66593 
66594 
66595 END IF;
66596 END IF;
66597 --
66598 
66599 --
66600 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66601    trace
66602       (p_msg      => 'END of AcctLineType_123'
66603       ,p_level    => C_LEVEL_PROCEDURE
66604       ,p_module   => l_log_module);
66605 END IF;
66606 --
66607 EXCEPTION
66608   WHEN xla_exceptions_pkg.application_exception THEN
66609       RAISE;
66610   WHEN OTHERS THEN
66611        xla_exceptions_pkg.raise_message
66612            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_123');
66613 END AcctLineType_123;
66614 --
66615 
66616 ---------------------------------------
66617 --
66618 -- PRIVATE FUNCTION
66619 --         AcctLineType_124
66620 --
66621 ---------------------------------------
66622 PROCEDURE AcctLineType_124 (
66623   p_application_id        IN NUMBER
66624  ,p_event_id              IN NUMBER
66625  ,p_calculate_acctd_flag  IN VARCHAR2
66626  ,p_calculate_g_l_flag    IN VARCHAR2
66627  ,p_actual_flag           IN OUT VARCHAR2
66628  ,p_balance_type_code     OUT VARCHAR2
66629  ,p_gain_or_loss_ref      OUT VARCHAR2
66630  
66631 --Payment Currency Code
66632  , p_source_12            IN VARCHAR2
66633 --Payment Distribution (Payment Rate) Ledger Amount
66634  , p_source_21            IN NUMBER
66635 --Invoice Distribution Account
66636  , p_source_29            IN NUMBER
66637 --Invoice Distribution Type
66638  , p_source_32            IN VARCHAR2
66639  , p_source_32_meaning    IN VARCHAR2
66640 --When to Account for Payment Option
66641  , p_source_50            IN VARCHAR2
66642 --Payment Distribution Type
66643  , p_source_51            IN VARCHAR2
66644  , p_source_51_meaning    IN VARCHAR2
66645 --Accounting Reversal Indicator
66646  , p_source_52            IN VARCHAR2
66647 --Payment Distribution Amount
66648  , p_source_53            IN NUMBER
66649 --Business Flow Accounts Payable Application Identifier
66650  , p_source_54            IN NUMBER
66651 --Payment Distribution Identifier
66652  , p_source_59            IN NUMBER
66653 --Distribution Link Type
66657  , p_source_64_meaning    IN VARCHAR2
66654  , p_source_60            IN VARCHAR2
66655 --Override Accounted Amount Indicator
66656  , p_source_64            IN VARCHAR2
66658 --Payment Supplier Identifier
66659  , p_source_65            IN NUMBER
66660 --Payment Supplier Site Identifier
66661  , p_source_66            IN NUMBER
66662 --Third Party Type
66663  , p_source_67            IN VARCHAR2
66664 --Payment Distribution Reversed Identifier
66665  , p_source_68            IN NUMBER
66666 --Invoice Distribution Tax Line Identifier
66667  , p_source_69            IN NUMBER
66668 --Invoice Distribution Summary Tax Line Identifier
66669  , p_source_70            IN NUMBER
66670 --Payment Type
66671  , p_source_71            IN VARCHAR2
66672  , p_source_71_meaning    IN VARCHAR2
66673 --Invoice Distribution Amount of the Payment Distribution
66674  , p_source_72            IN NUMBER
66675 --Business Flow Invoice Distribution Type
66676  , p_source_73            IN VARCHAR2
66677 --Business Flow Invoice Entity Code
66678  , p_source_74            IN VARCHAR2
66679 --Business Flow Invoice Distribution Identifier
66680  , p_source_75            IN NUMBER
66681 --Business Flow Invoice Identifier
66682  , p_source_76            IN NUMBER
66683 --Invoice Distribution Tax Distribution Identifier from Tax
66684  , p_source_77            IN NUMBER
66685 --Accrue on Receipt Option
66686  , p_source_111            IN VARCHAR2
66687  , p_source_111_meaning    IN VARCHAR2
66688 --Invoice Type Paid
66689  , p_source_112            IN VARCHAR2
66690  , p_source_112_meaning    IN VARCHAR2
66691 --Payment Exchange Date
66692  , p_source_121            IN DATE
66693 --Payment Exchange Rate
66694  , p_source_122            IN NUMBER
66695 --Payment Exchange Rate Type
66696  , p_source_123            IN VARCHAR2
66697 )
66698 IS
66699 
66700 l_component_type              VARCHAR2(80);
66701 l_component_code              VARCHAR2(30);
66702 l_component_type_code         VARCHAR2(1);
66703 l_component_appl_id           INTEGER;
66704 l_amb_context_code            VARCHAR2(30);
66705 l_entity_code                 VARCHAR2(30);
66706 l_event_class_code            VARCHAR2(30);
66707 l_ae_header_id                NUMBER;
66708 l_event_type_code             VARCHAR2(30);
66709 l_line_definition_code        VARCHAR2(30);
66710 l_line_definition_owner_code  VARCHAR2(1);
66711 --
66712 -- adr variables
66713 l_segment                     VARCHAR2(30);
66714 l_ccid                        NUMBER;
66715 l_adr_transaction_coa_id      NUMBER;
66716 l_adr_accounting_coa_id       NUMBER;
66717 l_adr_flexfield_segment_code  VARCHAR2(30);
66718 l_adr_flex_value_set_id       NUMBER;
66719 l_adr_value_type_code         VARCHAR2(30);
66720 l_adr_value_combination_id    NUMBER;
66721 l_adr_value_segment_code      VARCHAR2(30);
66722 
66723 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
66724 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
66725 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
66726 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
66727 
66728 -- 4262811 Variables ------------------------------------------------------------------------------------------
66729 l_entered_amt_idx             NUMBER;
66730 l_accted_amt_idx              NUMBER;
66731 l_acc_rev_flag                VARCHAR2(1);
66732 l_accrual_line_num            NUMBER;
66733 l_tmp_amt                     NUMBER;
66734 l_acc_rev_natural_side_code   VARCHAR2(1);
66735 
66736 l_num_entries                 NUMBER;
66737 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
66738 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
66739 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
66740 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
66741 l_recog_line_1                NUMBER;
66742 l_recog_line_2                NUMBER;
66743 
66744 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
66745 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
66746 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
66747 
66748 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
66749 
66750 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
66751 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
66752 
66753 ---------------------------------------------------------------------------------------------------------------
66754 
66755 
66756 --
66757 -- bulk performance
66758 --
66759 l_balance_type_code           VARCHAR2(1);
66760 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
66761 l_log_module                  VARCHAR2(240);
66762 
66763 --
66764 -- Upgrade strategy
66765 --
66766 l_actual_upg_option           VARCHAR2(1);
66767 l_enc_upg_option           VARCHAR2(1);
66768 
66769 --
66770 BEGIN
66771 --
66772 IF g_log_enabled THEN
66773       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_124';
66774 END IF;
66775 --
66776 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66777 
66778       trace
66779          (p_msg      => 'BEGIN of AcctLineType_124'
66780          ,p_level    => C_LEVEL_PROCEDURE
66781          ,p_module   => l_log_module);
66782 
66783 END IF;
66784 --
66788 l_component_appl_id          :=  200;
66785 l_component_type             := 'AMB_JLT';
66786 l_component_code             := 'AP_NON_RECOV_TAX_PMT';
66787 l_component_type_code        := 'S';
66789 l_amb_context_code           := 'DEFAULT';
66790 l_entity_code                := 'AP_PAYMENTS';
66791 l_event_class_code           := 'PAYMENTS';
66792 l_event_type_code            := 'PAYMENTS_ALL';
66793 l_line_definition_owner_code := 'S';
66794 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
66795 --
66796 l_balance_type_code          := 'A';
66797 l_segment                     := NULL;
66798 l_ccid                        := NULL;
66799 l_adr_transaction_coa_id      := NULL;
66800 l_adr_accounting_coa_id       := NULL;
66801 l_adr_flexfield_segment_code  := NULL;
66802 l_adr_flex_value_set_id       := NULL;
66803 l_adr_value_type_code         := NULL;
66804 l_adr_value_combination_id    := NULL;
66805 l_adr_value_segment_code      := NULL;
66806 
66807 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
66808 l_bflow_class_code           := '';    -- 4219869 Business Flow
66809 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
66810 l_budgetary_control_flag     := 'N';
66811 
66812 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
66813 l_bflow_applied_to_amt       := NULL; -- 5132302
66814 l_entered_amt_idx            := NULL;          -- 4262811
66815 l_accted_amt_idx             := NULL;          -- 4262811
66816 l_acc_rev_flag               := NULL;          -- 4262811
66817 l_accrual_line_num           := NULL;          -- 4262811
66818 l_tmp_amt                    := NULL;          -- 4262811
66819 --
66820  
66821 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
66822     l_balance_type_code <> 'B' THEN
66823 IF NVL(p_source_50,'
66824 ') <>  'CLEAR_CLEAR' AND 
66825 (NVL(p_source_32,'
66826 ') =  'NONREC_TAX' OR 
66827 NVL(p_source_32,'
66828 ') =  'TERV' OR 
66829 NVL(p_source_32,'
66830 ') =  'TIPV' OR 
66831 NVL(p_source_32,'
66832 ') =  'TRV') AND 
66833 NVL(p_source_111,'
66834 ') <>  'Y' AND 
66835 NVL(p_source_112,'
66836 ') <>  'INTEREST' AND 
66837 (NVL(p_source_51,'
66838 ') =  'CASH' OR 
66839 NVL(p_source_51,'
66840 ') =  'AWT' OR 
66841 NVL(p_source_51,'
66842 ') =  'DISCOUNT') AND 
66843 NVL(p_source_71,'
66844 ') <>  'R'
66845  THEN 
66846 
66847    --
66848    XLA_AE_LINES_PKG.SetNewLine;
66849 
66850    p_balance_type_code          := l_balance_type_code;
66851    -- set the flag so later we will know whether the gain loss line needs to be created
66852    
66853    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
66854      p_actual_flag :='A';
66855    END IF;
66856 
66857    --
66858    -- bulk performance
66859    --
66860    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
66861                                       p_header_num   => 0); -- 4262811
66862    --
66863    -- set accounting line options
66864    --
66865    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
66866            p_natural_side_code          => 'D'
66867          , p_gain_or_loss_flag          => 'N'
66868          , p_gl_transfer_mode_code      => 'S'
66869          , p_acct_entry_type_code       => 'A'
66870          , p_switch_side_flag           => 'Y'
66871          , p_merge_duplicate_code       => 'A'
66872          );
66873    --
66874    l_acc_rev_natural_side_code := 'C';  -- 4262811
66875    -- 
66876    --
66877    -- set accounting line type info
66878    --
66879    xla_ae_lines_pkg.SetAcctLineType
66880       (p_component_type             => l_component_type
66881       ,p_event_type_code            => l_event_type_code
66882       ,p_line_definition_owner_code => l_line_definition_owner_code
66883       ,p_line_definition_code       => l_line_definition_code
66884       ,p_accounting_line_code       => l_component_code
66885       ,p_accounting_line_type_code  => l_component_type_code
66886       ,p_accounting_line_appl_id    => l_component_appl_id
66887       ,p_amb_context_code           => l_amb_context_code
66888       ,p_entity_code                => l_entity_code
66889       ,p_event_class_code           => l_event_class_code);
66890    --
66891    -- set accounting class
66892    --
66893    xla_ae_lines_pkg.SetAcctClass(
66894            p_accounting_class_code  => 'NRTAX'
66895          , p_ae_header_id           => l_ae_header_id
66896          );
66897 
66898    --
66899    -- set rounding class
66900    --
66901    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
66902                       'NRTAX';
66903 
66904    --
66905    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
66906    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
66907    --
66908    -- bulk performance
66909    --
66910    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
66911 
66912    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
66913       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
66914 
66915    -- 4955764
66916    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66920    
66917       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
66918 
66919    -- 4458381 Public Sector Enh
66921    --
66922    -- set accounting attributes for the line type
66923    --
66924    l_entered_amt_idx := 10;
66925    l_accted_amt_idx  := 15;
66926    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
66927    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
66928    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
66929    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
66930    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
66931    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
66932    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
66933    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
66934    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
66935    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
66936    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
66937    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
66938    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
66939    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
66940    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
66941    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
66942    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
66943    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
66944    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
66945    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
66946    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
66947    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
66948    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
66949    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
66950    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
66951    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
66952    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
66953    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
66954    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
66955    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
66956    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
66957    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
66958    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
66959    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
66960    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
66961    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
66962    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
66963    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
66964    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
66965    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
66966    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
66967    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
66968    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
66969    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
66970    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
66971    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
66972    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
66973    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
66974    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
66975 
66976    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66977    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66978 
66979    ---------------------------------------------------------------------------------------------------------------
66980    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66981    ---------------------------------------------------------------------------------------------------------------
66982    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66983 
66984    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66985    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66986 
66987    IF xla_accounting_cache_pkg.GetValueChar
66988          (p_source_code         => 'LEDGER_CATEGORY_CODE'
66989          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66990    AND l_bflow_method_code = 'PRIOR_ENTRY'
66991 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66992    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66993          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66994        )
66995    THEN
66996          xla_ae_lines_pkg.BflowUpgEntry
66997            (p_business_method_code    => l_bflow_method_code
66998            ,p_business_class_code     => l_bflow_class_code
66999            ,p_balance_type            => l_balance_type_code);
67000    ELSE
67001       NULL;
67002 -- No business flow processing for business flow method of NONE.
67003    END IF;
67004 
67005    --
67006    -- call analytical criteria
67007    --
67008    
67009    --
67010    -- call description
67011    --
67012    -- No description or it is inherited.
67013    --
67014    -- call ADRs
67015    -- Bug 4922099
67016    --
67020       )
67017    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67018         (NVL(l_actual_upg_option, 'N') = 'O') OR
67019         (NVL(l_enc_upg_option, 'N') = 'O')
67021    THEN
67022    NULL;
67023    --
67024    --
67025    
67026   l_ccid := AcctDerRule_28(
67027            p_application_id           => p_application_id
67028          , p_ae_header_id             => l_ae_header_id 
67029 , p_source_29 => p_source_29
67030          , x_transaction_coa_id       => l_adr_transaction_coa_id
67031          , x_accounting_coa_id        => l_adr_accounting_coa_id
67032          , x_value_type_code          => l_adr_value_type_code
67033          , p_side                     => 'NA'
67034    );
67035 
67036    xla_ae_lines_pkg.set_ccid(
67037     p_code_combination_id          => l_ccid
67038   , p_value_type_code              => l_adr_value_type_code
67039   , p_transaction_coa_id           => l_adr_transaction_coa_id
67040   , p_accounting_coa_id            => l_adr_accounting_coa_id
67041   , p_adr_code                     => 'AP_INVOICE_DIST'
67042   , p_adr_type_code                => 'S'
67043   , p_component_type               => l_component_type
67044   , p_component_code               => l_component_code
67045   , p_component_type_code          => l_component_type_code
67046   , p_component_appl_id            => l_component_appl_id
67047   , p_amb_context_code             => l_amb_context_code
67048   , p_side                         => 'NA'
67049   );
67050 
67051 
67052    --
67053    --
67054    END IF;
67055    --
67056    -- Bug 4922099
67057    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
67058           (NVL(l_enc_upg_option, 'N') = 'O')
67059         ) AND
67060         (l_bflow_method_code = 'PRIOR_ENTRY')
67061       )
67062    THEN
67063       IF
67064       --
67065       1 = 2
67066       --
67067       THEN
67068       xla_accounting_err_pkg.build_message
67069                                     (p_appli_s_name            => 'XLA'
67070                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67071                                     ,p_token_1                 => 'LINE_NUMBER'
67072                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
67073                                     ,p_token_2                 => 'LINE_TYPE_NAME'
67074                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
67075                                                                              l_component_type
67076                                                                             ,l_component_code
67077                                                                             ,l_component_type_code
67078                                                                             ,l_component_appl_id
67079                                                                             ,l_amb_context_code
67080                                                                             ,l_entity_code
67081                                                                             ,l_event_class_code
67082                                                                            )
67083                                     ,p_token_3                 => 'OWNER'
67084                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
67085                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
67086                                                                           ,p_lookup_code    => l_component_type_code
67087                                                                          )
67088                                     ,p_token_4                 => 'PRODUCT_NAME'
67089                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
67090                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
67091                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
67092                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
67093                                     ,p_ae_header_id            =>  NULL
67094                                        );
67095 
67096         IF (C_LEVEL_ERROR>= g_log_level) THEN
67097                  trace
67098                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67099                       ,p_level    => C_LEVEL_ERROR
67100                       ,p_module   => l_log_module);
67101         END IF;
67102       END IF;
67103    END IF;
67104    --
67105    --
67106    ------------------------------------------------------------------------------------------------
67107    -- 4219869 Business Flow
67108    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
67109    -- Prior Entry.  Currently, the following code is always generated.
67110    ------------------------------------------------------------------------------------------------
67111    XLA_AE_LINES_PKG.ValidateCurrentLine;
67112 
67113    ------------------------------------------------------------------------------------
67114    -- 4219869 Business Flow
67115    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
67116    ------------------------------------------------------------------------------------
67117    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67118 
67122    ----------------------------------------------------------------------------------
67119    ----------------------------------------------------------------------------------
67120    -- 4219869 Business Flow
67121    -- Update journal entry status -- Need to generate this within IF <condition>
67123    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67124          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
67125          ,p_balance_type_code => l_balance_type_code
67126          );
67127 
67128    -------------------------------------------------------------------------------------------
67129    -- 4262811 - Generate the Accrual Reversal lines
67130    -------------------------------------------------------------------------------------------
67131    BEGIN
67132       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
67133                               (g_array_event(p_event_id).array_value_num('header_index'));
67134       IF l_acc_rev_flag IS NULL THEN
67135          l_acc_rev_flag := 'N';
67136       END IF;
67137    EXCEPTION
67138       WHEN OTHERS THEN
67139          l_acc_rev_flag := 'N';
67140    END;
67141    --
67142    IF (l_acc_rev_flag = 'Y') THEN
67143 
67144        -- 4645092  ------------------------------------------------------------------------------
67145        -- To allow MPA report to determine if it should generate report process
67146        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
67147        ------------------------------------------------------------------------------------------
67148 
67149        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
67150        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
67151    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
67152    -- call ADRs
67153    -- Bug 4922099
67154    --
67155    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67156         (NVL(l_actual_upg_option, 'N') = 'O') OR
67157         (NVL(l_enc_upg_option, 'N') = 'O')
67158       )
67159    THEN
67160    NULL;
67161    --
67162    --
67163    
67164   l_ccid := AcctDerRule_28(
67165            p_application_id           => p_application_id
67166          , p_ae_header_id             => l_ae_header_id 
67167 , p_source_29 => p_source_29
67168          , x_transaction_coa_id       => l_adr_transaction_coa_id
67169          , x_accounting_coa_id        => l_adr_accounting_coa_id
67170          , x_value_type_code          => l_adr_value_type_code
67171          , p_side                     => 'NA'
67172    );
67173 
67174    xla_ae_lines_pkg.set_ccid(
67175     p_code_combination_id          => l_ccid
67176   , p_value_type_code              => l_adr_value_type_code
67177   , p_transaction_coa_id           => l_adr_transaction_coa_id
67178   , p_accounting_coa_id            => l_adr_accounting_coa_id
67179   , p_adr_code                     => 'AP_INVOICE_DIST'
67180   , p_adr_type_code                => 'S'
67181   , p_component_type               => l_component_type
67182   , p_component_code               => l_component_code
67183   , p_component_type_code          => l_component_type_code
67184   , p_component_appl_id            => l_component_appl_id
67185   , p_amb_context_code             => l_amb_context_code
67186   , p_side                         => 'NA'
67187   );
67188 
67189 
67190    --
67191    --
67192    END IF;
67193 
67194        --
67195        -- Update the line information that should be overwritten
67196        --
67197        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
67198                                          p_header_num   => 1);
67199        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
67200 
67201        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
67202 
67203        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
67204           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
67205        END IF;
67206 
67207       --
67208       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
67209       --
67210       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
67211           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
67212       ELSE
67213           ---------------------------------------------------------------------------------------------------
67214           -- 4262811a Switch Sign
67215           ---------------------------------------------------------------------------------------------------
67216           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
67217           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67218                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67219           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67220                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67221           -- 5132302
67222           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
67223                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67224 
67225       END IF;
67226 
67227       -- 4955764
67231 
67228       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67229       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
67230 
67232       XLA_AE_LINES_PKG.ValidateCurrentLine;
67233       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67234 
67235       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67236                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
67237                ,p_balance_type_code => l_balance_type_code);
67238 
67239    END IF;
67240 
67241    -----------------------------------------------------------------------------------------
67242    -- 4262811 Multiperiod Accounting
67243    -----------------------------------------------------------------------------------------
67244      -- No MPA option is assigned.
67245 
67246 
67247 END IF;
67248 END IF;
67249 --
67250 
67251 --
67252 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67253    trace
67254       (p_msg      => 'END of AcctLineType_124'
67255       ,p_level    => C_LEVEL_PROCEDURE
67256       ,p_module   => l_log_module);
67257 END IF;
67258 --
67259 EXCEPTION
67260   WHEN xla_exceptions_pkg.application_exception THEN
67261       RAISE;
67262   WHEN OTHERS THEN
67263        xla_exceptions_pkg.raise_message
67264            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_124');
67265 END AcctLineType_124;
67266 --
67267 
67268 ---------------------------------------
67269 --
67270 -- PRIVATE FUNCTION
67271 --         AcctLineType_125
67272 --
67273 ---------------------------------------
67274 PROCEDURE AcctLineType_125 (
67275   p_application_id        IN NUMBER
67276  ,p_event_id              IN NUMBER
67277  ,p_calculate_acctd_flag  IN VARCHAR2
67278  ,p_calculate_g_l_flag    IN VARCHAR2
67279  ,p_actual_flag           IN OUT VARCHAR2
67280  ,p_balance_type_code     OUT VARCHAR2
67281  ,p_gain_or_loss_ref      OUT VARCHAR2
67282  
67283 --Payment Currency Code
67284  , p_source_12            IN VARCHAR2
67285 --Payment Distribution (Payment Rate) Ledger Amount
67286  , p_source_21            IN NUMBER
67287 --Invoice Distribution Account
67288  , p_source_29            IN NUMBER
67289 --Invoice Distribution Type
67290  , p_source_32            IN VARCHAR2
67291  , p_source_32_meaning    IN VARCHAR2
67292 --When to Account for Payment Option
67293  , p_source_50            IN VARCHAR2
67294 --Payment Distribution Type
67295  , p_source_51            IN VARCHAR2
67296  , p_source_51_meaning    IN VARCHAR2
67297 --Accounting Reversal Indicator
67298  , p_source_52            IN VARCHAR2
67299 --Payment Distribution Amount
67300  , p_source_53            IN NUMBER
67301 --Business Flow Accounts Payable Application Identifier
67302  , p_source_54            IN NUMBER
67303 --Payment Distribution Identifier
67304  , p_source_59            IN NUMBER
67305 --Distribution Link Type
67306  , p_source_60            IN VARCHAR2
67307 --Override Accounted Amount Indicator
67308  , p_source_64            IN VARCHAR2
67309  , p_source_64_meaning    IN VARCHAR2
67310 --Payment Supplier Identifier
67311  , p_source_65            IN NUMBER
67312 --Payment Supplier Site Identifier
67313  , p_source_66            IN NUMBER
67314 --Third Party Type
67315  , p_source_67            IN VARCHAR2
67316 --Payment Distribution Reversed Identifier
67317  , p_source_68            IN NUMBER
67318 --Invoice Distribution Tax Line Identifier
67319  , p_source_69            IN NUMBER
67320 --Invoice Distribution Summary Tax Line Identifier
67321  , p_source_70            IN NUMBER
67322 --Payment Type
67323  , p_source_71            IN VARCHAR2
67324  , p_source_71_meaning    IN VARCHAR2
67325 --Business Flow Invoice Distribution Type
67326  , p_source_73            IN VARCHAR2
67327 --Business Flow Invoice Entity Code
67328  , p_source_74            IN VARCHAR2
67329 --Business Flow Invoice Distribution Identifier
67330  , p_source_75            IN NUMBER
67331 --Business Flow Invoice Identifier
67332  , p_source_76            IN NUMBER
67333 --Invoice Distribution Tax Distribution Identifier from Tax
67334  , p_source_77            IN NUMBER
67335 --Accrue on Receipt Option
67336  , p_source_111            IN VARCHAR2
67337  , p_source_111_meaning    IN VARCHAR2
67338 --Payment Exchange Date
67339  , p_source_121            IN DATE
67340 --Payment Exchange Rate
67341  , p_source_122            IN NUMBER
67342 --Payment Exchange Rate Type
67343  , p_source_123            IN VARCHAR2
67344 )
67345 IS
67346 
67347 l_component_type              VARCHAR2(80);
67348 l_component_code              VARCHAR2(30);
67349 l_component_type_code         VARCHAR2(1);
67350 l_component_appl_id           INTEGER;
67351 l_amb_context_code            VARCHAR2(30);
67352 l_entity_code                 VARCHAR2(30);
67353 l_event_class_code            VARCHAR2(30);
67354 l_ae_header_id                NUMBER;
67355 l_event_type_code             VARCHAR2(30);
67356 l_line_definition_code        VARCHAR2(30);
67357 l_line_definition_owner_code  VARCHAR2(1);
67358 --
67359 -- adr variables
67360 l_segment                     VARCHAR2(30);
67361 l_ccid                        NUMBER;
67362 l_adr_transaction_coa_id      NUMBER;
67363 l_adr_accounting_coa_id       NUMBER;
67364 l_adr_flexfield_segment_code  VARCHAR2(30);
67368 l_adr_value_segment_code      VARCHAR2(30);
67365 l_adr_flex_value_set_id       NUMBER;
67366 l_adr_value_type_code         VARCHAR2(30);
67367 l_adr_value_combination_id    NUMBER;
67369 
67370 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
67371 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
67372 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
67373 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
67374 
67375 -- 4262811 Variables ------------------------------------------------------------------------------------------
67376 l_entered_amt_idx             NUMBER;
67377 l_accted_amt_idx              NUMBER;
67378 l_acc_rev_flag                VARCHAR2(1);
67379 l_accrual_line_num            NUMBER;
67380 l_tmp_amt                     NUMBER;
67381 l_acc_rev_natural_side_code   VARCHAR2(1);
67382 
67383 l_num_entries                 NUMBER;
67384 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
67385 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
67386 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
67387 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
67388 l_recog_line_1                NUMBER;
67389 l_recog_line_2                NUMBER;
67390 
67391 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
67392 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
67393 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
67394 
67395 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
67396 
67397 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
67398 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
67399 
67400 ---------------------------------------------------------------------------------------------------------------
67401 
67402 
67403 --
67404 -- bulk performance
67405 --
67406 l_balance_type_code           VARCHAR2(1);
67407 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
67408 l_log_module                  VARCHAR2(240);
67409 
67410 --
67411 -- Upgrade strategy
67412 --
67413 l_actual_upg_option           VARCHAR2(1);
67414 l_enc_upg_option           VARCHAR2(1);
67415 
67416 --
67417 BEGIN
67418 --
67419 IF g_log_enabled THEN
67420       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_125';
67421 END IF;
67422 --
67423 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67424 
67425       trace
67426          (p_msg      => 'BEGIN of AcctLineType_125'
67427          ,p_level    => C_LEVEL_PROCEDURE
67428          ,p_module   => l_log_module);
67429 
67430 END IF;
67431 --
67432 l_component_type             := 'AMB_JLT';
67433 l_component_code             := 'AP_NON_RECOV_TAX_REF';
67434 l_component_type_code        := 'S';
67435 l_component_appl_id          :=  200;
67436 l_amb_context_code           := 'DEFAULT';
67437 l_entity_code                := 'AP_PAYMENTS';
67438 l_event_class_code           := 'REFUNDS';
67439 l_event_type_code            := 'REFUNDS_ALL';
67440 l_line_definition_owner_code := 'S';
67441 l_line_definition_code       := 'CASH_REFUNDS_ALL';
67442 --
67443 l_balance_type_code          := 'A';
67444 l_segment                     := NULL;
67445 l_ccid                        := NULL;
67446 l_adr_transaction_coa_id      := NULL;
67447 l_adr_accounting_coa_id       := NULL;
67448 l_adr_flexfield_segment_code  := NULL;
67449 l_adr_flex_value_set_id       := NULL;
67450 l_adr_value_type_code         := NULL;
67451 l_adr_value_combination_id    := NULL;
67452 l_adr_value_segment_code      := NULL;
67453 
67454 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
67455 l_bflow_class_code           := '';    -- 4219869 Business Flow
67456 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
67457 l_budgetary_control_flag     := 'N';
67458 
67459 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
67460 l_bflow_applied_to_amt       := NULL; -- 5132302
67461 l_entered_amt_idx            := NULL;          -- 4262811
67462 l_accted_amt_idx             := NULL;          -- 4262811
67463 l_acc_rev_flag               := NULL;          -- 4262811
67464 l_accrual_line_num           := NULL;          -- 4262811
67465 l_tmp_amt                    := NULL;          -- 4262811
67466 --
67467  
67468 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
67469     l_balance_type_code <> 'B' THEN
67470 IF NVL(p_source_50,'
67471 ') <>  'CLEAR_CLEAR' AND 
67472 (NVL(p_source_32,'
67473 ') =  'NONREC_TAX' OR 
67474 NVL(p_source_32,'
67475 ') =  'TERV' OR 
67476 NVL(p_source_32,'
67477 ') =  'TIPV' OR 
67478 NVL(p_source_32,'
67479 ') =  'TRV') AND 
67480 NVL(p_source_111,'
67481 ') <>  'Y' AND 
67482 (NVL(p_source_51,'
67483 ') =  'CASH' OR 
67484 NVL(p_source_51,'
67485 ') =  'DISCOUNT') AND 
67486 NVL(p_source_71,'
67487 ') =  'R'
67488  THEN 
67489 
67490    --
67491    XLA_AE_LINES_PKG.SetNewLine;
67492 
67493    p_balance_type_code          := l_balance_type_code;
67494    -- set the flag so later we will know whether the gain loss line needs to be created
67495    
67496    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
67500    --
67497      p_actual_flag :='A';
67498    END IF;
67499 
67501    -- bulk performance
67502    --
67503    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
67504                                       p_header_num   => 0); -- 4262811
67505    --
67506    -- set accounting line options
67507    --
67508    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
67509            p_natural_side_code          => 'D'
67510          , p_gain_or_loss_flag          => 'N'
67511          , p_gl_transfer_mode_code      => 'S'
67512          , p_acct_entry_type_code       => 'A'
67513          , p_switch_side_flag           => 'Y'
67514          , p_merge_duplicate_code       => 'A'
67515          );
67516    --
67517    l_acc_rev_natural_side_code := 'C';  -- 4262811
67518    -- 
67519    --
67520    -- set accounting line type info
67521    --
67522    xla_ae_lines_pkg.SetAcctLineType
67523       (p_component_type             => l_component_type
67524       ,p_event_type_code            => l_event_type_code
67525       ,p_line_definition_owner_code => l_line_definition_owner_code
67526       ,p_line_definition_code       => l_line_definition_code
67527       ,p_accounting_line_code       => l_component_code
67528       ,p_accounting_line_type_code  => l_component_type_code
67529       ,p_accounting_line_appl_id    => l_component_appl_id
67530       ,p_amb_context_code           => l_amb_context_code
67531       ,p_entity_code                => l_entity_code
67532       ,p_event_class_code           => l_event_class_code);
67533    --
67534    -- set accounting class
67535    --
67536    xla_ae_lines_pkg.SetAcctClass(
67537            p_accounting_class_code  => 'NRTAX'
67538          , p_ae_header_id           => l_ae_header_id
67539          );
67540 
67541    --
67542    -- set rounding class
67543    --
67544    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
67545                       'NRTAX';
67546 
67547    --
67548    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
67549    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
67550    --
67551    -- bulk performance
67552    --
67553    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
67554 
67555    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
67556       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
67557 
67558    -- 4955764
67559    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67560       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
67561 
67562    -- 4458381 Public Sector Enh
67563    
67564    --
67565    -- set accounting attributes for the line type
67566    --
67567    l_entered_amt_idx := 9;
67568    l_accted_amt_idx  := 14;
67569    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
67570    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
67571    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
67572    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
67573    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
67574    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
67575    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
67576    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
67577    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
67578    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
67579    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
67580    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
67581    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
67582    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
67583    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
67584    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
67585    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
67586    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
67587    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
67588    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
67589    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
67590    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
67591    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
67592    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
67593    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
67594    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
67595    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
67596    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
67597    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
67598    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
67599    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
67600    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
67601    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
67602    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
67603    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
67604    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
67605    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
67609    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
67606    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
67607    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
67608    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
67610    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
67611    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
67612    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
67613    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
67614    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
67615    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
67616 
67617    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
67618    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
67619 
67620    ---------------------------------------------------------------------------------------------------------------
67621    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
67622    ---------------------------------------------------------------------------------------------------------------
67623    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
67624 
67625    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67626    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67627 
67628    IF xla_accounting_cache_pkg.GetValueChar
67629          (p_source_code         => 'LEDGER_CATEGORY_CODE'
67630          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
67631    AND l_bflow_method_code = 'PRIOR_ENTRY'
67632 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
67633    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
67634          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
67635        )
67636    THEN
67637          xla_ae_lines_pkg.BflowUpgEntry
67638            (p_business_method_code    => l_bflow_method_code
67639            ,p_business_class_code     => l_bflow_class_code
67640            ,p_balance_type            => l_balance_type_code);
67641    ELSE
67642       NULL;
67643 -- No business flow processing for business flow method of NONE.
67644    END IF;
67645 
67646    --
67647    -- call analytical criteria
67648    --
67649    
67650    --
67651    -- call description
67652    --
67653    -- No description or it is inherited.
67654    --
67655    -- call ADRs
67656    -- Bug 4922099
67657    --
67658    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67659         (NVL(l_actual_upg_option, 'N') = 'O') OR
67660         (NVL(l_enc_upg_option, 'N') = 'O')
67661       )
67662    THEN
67663    NULL;
67664    --
67665    --
67666    
67667   l_ccid := AcctDerRule_28(
67668            p_application_id           => p_application_id
67669          , p_ae_header_id             => l_ae_header_id 
67670 , p_source_29 => p_source_29
67671          , x_transaction_coa_id       => l_adr_transaction_coa_id
67672          , x_accounting_coa_id        => l_adr_accounting_coa_id
67673          , x_value_type_code          => l_adr_value_type_code
67674          , p_side                     => 'NA'
67675    );
67676 
67677    xla_ae_lines_pkg.set_ccid(
67678     p_code_combination_id          => l_ccid
67679   , p_value_type_code              => l_adr_value_type_code
67680   , p_transaction_coa_id           => l_adr_transaction_coa_id
67681   , p_accounting_coa_id            => l_adr_accounting_coa_id
67682   , p_adr_code                     => 'AP_INVOICE_DIST'
67683   , p_adr_type_code                => 'S'
67684   , p_component_type               => l_component_type
67685   , p_component_code               => l_component_code
67686   , p_component_type_code          => l_component_type_code
67687   , p_component_appl_id            => l_component_appl_id
67688   , p_amb_context_code             => l_amb_context_code
67689   , p_side                         => 'NA'
67690   );
67691 
67692 
67693    --
67694    --
67695    END IF;
67696    --
67697    -- Bug 4922099
67698    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
67699           (NVL(l_enc_upg_option, 'N') = 'O')
67700         ) AND
67701         (l_bflow_method_code = 'PRIOR_ENTRY')
67702       )
67703    THEN
67704       IF
67705       --
67706       1 = 2
67707       --
67708       THEN
67709       xla_accounting_err_pkg.build_message
67710                                     (p_appli_s_name            => 'XLA'
67711                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67712                                     ,p_token_1                 => 'LINE_NUMBER'
67713                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
67714                                     ,p_token_2                 => 'LINE_TYPE_NAME'
67715                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
67716                                                                              l_component_type
67717                                                                             ,l_component_code
67718                                                                             ,l_component_type_code
67719                                                                             ,l_component_appl_id
67723                                                                            )
67720                                                                             ,l_amb_context_code
67721                                                                             ,l_entity_code
67722                                                                             ,l_event_class_code
67724                                     ,p_token_3                 => 'OWNER'
67725                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
67726                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
67727                                                                           ,p_lookup_code    => l_component_type_code
67728                                                                          )
67729                                     ,p_token_4                 => 'PRODUCT_NAME'
67730                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
67731                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
67732                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
67733                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
67734                                     ,p_ae_header_id            =>  NULL
67735                                        );
67736 
67737         IF (C_LEVEL_ERROR>= g_log_level) THEN
67738                  trace
67739                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67740                       ,p_level    => C_LEVEL_ERROR
67741                       ,p_module   => l_log_module);
67742         END IF;
67743       END IF;
67744    END IF;
67745    --
67746    --
67747    ------------------------------------------------------------------------------------------------
67748    -- 4219869 Business Flow
67749    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
67750    -- Prior Entry.  Currently, the following code is always generated.
67751    ------------------------------------------------------------------------------------------------
67752    XLA_AE_LINES_PKG.ValidateCurrentLine;
67753 
67754    ------------------------------------------------------------------------------------
67755    -- 4219869 Business Flow
67756    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
67757    ------------------------------------------------------------------------------------
67758    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67759 
67760    ----------------------------------------------------------------------------------
67761    -- 4219869 Business Flow
67762    -- Update journal entry status -- Need to generate this within IF <condition>
67763    ----------------------------------------------------------------------------------
67764    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67765          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
67766          ,p_balance_type_code => l_balance_type_code
67767          );
67768 
67769    -------------------------------------------------------------------------------------------
67770    -- 4262811 - Generate the Accrual Reversal lines
67771    -------------------------------------------------------------------------------------------
67772    BEGIN
67773       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
67774                               (g_array_event(p_event_id).array_value_num('header_index'));
67775       IF l_acc_rev_flag IS NULL THEN
67776          l_acc_rev_flag := 'N';
67777       END IF;
67778    EXCEPTION
67779       WHEN OTHERS THEN
67780          l_acc_rev_flag := 'N';
67781    END;
67782    --
67783    IF (l_acc_rev_flag = 'Y') THEN
67784 
67785        -- 4645092  ------------------------------------------------------------------------------
67786        -- To allow MPA report to determine if it should generate report process
67787        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
67788        ------------------------------------------------------------------------------------------
67789 
67790        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
67791        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
67792    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
67793    -- call ADRs
67794    -- Bug 4922099
67795    --
67796    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67797         (NVL(l_actual_upg_option, 'N') = 'O') OR
67798         (NVL(l_enc_upg_option, 'N') = 'O')
67799       )
67800    THEN
67801    NULL;
67802    --
67803    --
67804    
67805   l_ccid := AcctDerRule_28(
67806            p_application_id           => p_application_id
67807          , p_ae_header_id             => l_ae_header_id 
67808 , p_source_29 => p_source_29
67809          , x_transaction_coa_id       => l_adr_transaction_coa_id
67810          , x_accounting_coa_id        => l_adr_accounting_coa_id
67811          , x_value_type_code          => l_adr_value_type_code
67812          , p_side                     => 'NA'
67813    );
67814 
67815    xla_ae_lines_pkg.set_ccid(
67816     p_code_combination_id          => l_ccid
67817   , p_value_type_code              => l_adr_value_type_code
67818   , p_transaction_coa_id           => l_adr_transaction_coa_id
67819   , p_accounting_coa_id            => l_adr_accounting_coa_id
67820   , p_adr_code                     => 'AP_INVOICE_DIST'
67824   , p_component_type_code          => l_component_type_code
67821   , p_adr_type_code                => 'S'
67822   , p_component_type               => l_component_type
67823   , p_component_code               => l_component_code
67825   , p_component_appl_id            => l_component_appl_id
67826   , p_amb_context_code             => l_amb_context_code
67827   , p_side                         => 'NA'
67828   );
67829 
67830 
67831    --
67832    --
67833    END IF;
67834 
67835        --
67836        -- Update the line information that should be overwritten
67837        --
67838        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
67839                                          p_header_num   => 1);
67840        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
67841 
67842        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
67843 
67844        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
67845           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
67846        END IF;
67847 
67848       --
67849       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
67850       --
67851       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
67852           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
67853       ELSE
67854           ---------------------------------------------------------------------------------------------------
67855           -- 4262811a Switch Sign
67856           ---------------------------------------------------------------------------------------------------
67857           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
67858           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67859                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67860           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67861                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67862           -- 5132302
67863           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
67864                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67865 
67866       END IF;
67867 
67868       -- 4955764
67869       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67870       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
67871 
67872 
67873       XLA_AE_LINES_PKG.ValidateCurrentLine;
67874       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67875 
67876       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67877                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
67878                ,p_balance_type_code => l_balance_type_code);
67879 
67880    END IF;
67881 
67882    -----------------------------------------------------------------------------------------
67883    -- 4262811 Multiperiod Accounting
67884    -----------------------------------------------------------------------------------------
67885      -- No MPA option is assigned.
67886 
67887 
67888 END IF;
67889 END IF;
67890 --
67891 
67892 --
67893 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67894    trace
67895       (p_msg      => 'END of AcctLineType_125'
67896       ,p_level    => C_LEVEL_PROCEDURE
67897       ,p_module   => l_log_module);
67898 END IF;
67899 --
67900 EXCEPTION
67901   WHEN xla_exceptions_pkg.application_exception THEN
67902       RAISE;
67903   WHEN OTHERS THEN
67904        xla_exceptions_pkg.raise_message
67905            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_125');
67906 END AcctLineType_125;
67907 --
67908 
67909 ---------------------------------------
67910 --
67911 -- PRIVATE FUNCTION
67912 --         AcctLineType_126
67913 --
67914 ---------------------------------------
67915 PROCEDURE AcctLineType_126 (
67916   p_application_id        IN NUMBER
67917  ,p_event_id              IN NUMBER
67918  ,p_calculate_acctd_flag  IN VARCHAR2
67919  ,p_calculate_g_l_flag    IN VARCHAR2
67920  ,p_actual_flag           IN OUT VARCHAR2
67921  ,p_balance_type_code     OUT VARCHAR2
67922  ,p_gain_or_loss_ref      OUT VARCHAR2
67923  
67924 --Invoice Distribution Account
67925  , p_source_29            IN NUMBER
67926 --When to Account for Payment Option
67927  , p_source_50            IN VARCHAR2
67928 --Accounting Reversal Indicator
67929  , p_source_52            IN VARCHAR2
67930 --Business Flow Accounts Payable Application Identifier
67931  , p_source_54            IN NUMBER
67932 --Distribution Link Type
67933  , p_source_60            IN VARCHAR2
67934 --Purchase Order Exchange Rate Date
67935  , p_source_61            IN DATE
67936 --Purchase Order Exchange Rate
67937  , p_source_62            IN NUMBER
67938 --Purchase Order Exchange Rate Type
67939  , p_source_63            IN VARCHAR2
67940 --Override Accounted Amount Indicator
67941  , p_source_64            IN VARCHAR2
67942  , p_source_64_meaning    IN VARCHAR2
67943 --Third Party Type
67944  , p_source_67            IN VARCHAR2
67948  , p_source_70            IN NUMBER
67945 --Invoice Distribution Tax Line Identifier
67946  , p_source_69            IN NUMBER
67947 --Invoice Distribution Summary Tax Line Identifier
67949 --Invoice Distribution Tax Distribution Identifier from Tax
67950  , p_source_77            IN NUMBER
67951 --Prepayment Distribution Type
67952  , p_source_78            IN VARCHAR2
67953 --Recipient Invoice Distribution Type
67954  , p_source_79            IN VARCHAR2
67955  , p_source_79_meaning    IN VARCHAR2
67956 --Prepayment Application Distribution Identifier
67957  , p_source_82            IN NUMBER
67958 --Invoice Identifier
67959  , p_source_83            IN NUMBER
67960 --Business Flow Prepayment Invoice Distribution Type
67961  , p_source_84            IN VARCHAR2
67962 --Business Flow Prepayment Invoice Entity Code
67963  , p_source_85            IN VARCHAR2
67964 --Business Flow Prepayment Invoice Distribution Identifier
67965  , p_source_86            IN NUMBER
67966 --Business Flow Prepayment Invoice Identifier
67967  , p_source_87            IN NUMBER
67968 --Upgrade Encumbrance Credit Account Class
67969  , p_source_88            IN VARCHAR2
67970 --Payables Encumbrance Upgrade Credit Account
67971  , p_source_89            IN NUMBER
67972 --Payables Encumbrance Upgrade Credit Amount
67973  , p_source_90            IN NUMBER
67974 --Invoice Currency Code
67975  , p_source_91            IN VARCHAR2
67976 --Payables Encumbrance Upgrade Credit Base Amount
67977  , p_source_92            IN NUMBER
67978 --Upgrade Encumbrance Debit Account Class
67979  , p_source_93            IN VARCHAR2
67980 --Payables Encumbrance Upgrade Debit Account
67981  , p_source_94            IN NUMBER
67982 --Payables Encumbrance Upgrade Debit Amount
67983  , p_source_95            IN NUMBER
67984 --Payables Encumbrance Upgrade Debit Base Amount
67985  , p_source_96            IN NUMBER
67986 --Payables Encumbrance Upgrade Option
67987  , p_source_97            IN VARCHAR2
67988 --Prepayment Distribution Amount
67989  , p_source_98            IN NUMBER
67990 --Prepayment Clearing Currency Code
67991  , p_source_99            IN VARCHAR2
67992 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
67993  , p_source_100            IN NUMBER
67994 --Deferred Accounting End Date
67995  , p_source_101            IN DATE
67996 --Deferred Accounting Option
67997  , p_source_102            IN VARCHAR2
67998 --Deferred Accounting Start Date
67999  , p_source_103            IN DATE
68000 --Invoice Supplier Identifier
68001  , p_source_104            IN NUMBER
68002 --Invoice Supplier Site Identifier
68003  , p_source_105            IN NUMBER
68004 --Identifier of the Prepayment Application Reversed
68005  , p_source_106            IN NUMBER
68006 --Payables Upgrade Credit Encumbrance Type Identifier
68007  , p_source_107            IN NUMBER
68008 --Payables Upgrade Debit Encumbrance Type Identifier
68009  , p_source_108            IN NUMBER
68010 --Accrue on Receipt Option
68011  , p_source_111            IN VARCHAR2
68012  , p_source_111_meaning    IN VARCHAR2
68013 )
68014 IS
68015 
68016 l_component_type              VARCHAR2(80);
68017 l_component_code              VARCHAR2(30);
68018 l_component_type_code         VARCHAR2(1);
68019 l_component_appl_id           INTEGER;
68020 l_amb_context_code            VARCHAR2(30);
68021 l_entity_code                 VARCHAR2(30);
68022 l_event_class_code            VARCHAR2(30);
68023 l_ae_header_id                NUMBER;
68024 l_event_type_code             VARCHAR2(30);
68025 l_line_definition_code        VARCHAR2(30);
68026 l_line_definition_owner_code  VARCHAR2(1);
68027 --
68028 -- adr variables
68029 l_segment                     VARCHAR2(30);
68030 l_ccid                        NUMBER;
68031 l_adr_transaction_coa_id      NUMBER;
68032 l_adr_accounting_coa_id       NUMBER;
68033 l_adr_flexfield_segment_code  VARCHAR2(30);
68034 l_adr_flex_value_set_id       NUMBER;
68035 l_adr_value_type_code         VARCHAR2(30);
68036 l_adr_value_combination_id    NUMBER;
68037 l_adr_value_segment_code      VARCHAR2(30);
68038 
68039 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
68040 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
68041 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
68042 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
68043 
68044 -- 4262811 Variables ------------------------------------------------------------------------------------------
68045 l_entered_amt_idx             NUMBER;
68046 l_accted_amt_idx              NUMBER;
68047 l_acc_rev_flag                VARCHAR2(1);
68048 l_accrual_line_num            NUMBER;
68049 l_tmp_amt                     NUMBER;
68050 l_acc_rev_natural_side_code   VARCHAR2(1);
68051 
68052 l_num_entries                 NUMBER;
68053 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
68054 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
68055 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
68056 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
68057 l_recog_line_1                NUMBER;
68058 l_recog_line_2                NUMBER;
68059 
68060 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
68061 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
68062 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
68063 
68064 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
68065 
68069 ---------------------------------------------------------------------------------------------------------------
68066 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
68067 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
68068 
68070 
68071 
68072 --
68073 -- bulk performance
68074 --
68075 l_balance_type_code           VARCHAR2(1);
68076 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
68077 l_log_module                  VARCHAR2(240);
68078 
68079 --
68080 -- Upgrade strategy
68081 --
68082 l_actual_upg_option           VARCHAR2(1);
68083 l_enc_upg_option           VARCHAR2(1);
68084 
68085 --
68086 BEGIN
68087 --
68088 IF g_log_enabled THEN
68089       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_126';
68090 END IF;
68091 --
68092 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68093 
68094       trace
68095          (p_msg      => 'BEGIN of AcctLineType_126'
68096          ,p_level    => C_LEVEL_PROCEDURE
68097          ,p_module   => l_log_module);
68098 
68099 END IF;
68100 --
68101 l_component_type             := 'AMB_JLT';
68102 l_component_code             := 'AP_NRTAX_ACCRUAL_PREPAY_CLR';
68103 l_component_type_code        := 'S';
68104 l_component_appl_id          :=  200;
68105 l_amb_context_code           := 'DEFAULT';
68106 l_entity_code                := 'AP_INVOICES';
68107 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
68108 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
68109 l_line_definition_owner_code := 'S';
68110 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
68111 --
68112 l_balance_type_code          := 'A';
68113 l_segment                     := NULL;
68114 l_ccid                        := NULL;
68115 l_adr_transaction_coa_id      := NULL;
68116 l_adr_accounting_coa_id       := NULL;
68117 l_adr_flexfield_segment_code  := NULL;
68118 l_adr_flex_value_set_id       := NULL;
68119 l_adr_value_type_code         := NULL;
68120 l_adr_value_combination_id    := NULL;
68121 l_adr_value_segment_code      := NULL;
68122 
68123 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
68124 l_bflow_class_code           := '';    -- 4219869 Business Flow
68125 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
68126 l_budgetary_control_flag     := 'N';
68127 
68128 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
68129 l_bflow_applied_to_amt       := NULL; -- 5132302
68130 l_entered_amt_idx            := NULL;          -- 4262811
68131 l_accted_amt_idx             := NULL;          -- 4262811
68132 l_acc_rev_flag               := NULL;          -- 4262811
68133 l_accrual_line_num           := NULL;          -- 4262811
68134 l_tmp_amt                    := NULL;          -- 4262811
68135 --
68136  
68137 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
68138     l_balance_type_code <> 'B' THEN
68139 IF NVL(p_source_50,'
68140 ') =  'CLEAR_CLEAR' AND 
68141 (NVL(p_source_78,'
68142 ') =  'PREPAY APPL' OR 
68143 NVL(p_source_78,'
68144 ') =  'PREPAY APPL NONREC TAX' OR 
68145 NVL(p_source_78,'
68146 ') =  'PREPAY APPL REC TAX') AND 
68147 NVL(p_source_79,'
68148 ') =  'NONREC_TAX' AND 
68149 NVL(p_source_111,'
68150 ') =  'Y'
68151  THEN 
68152 
68153    --
68154    XLA_AE_LINES_PKG.SetNewLine;
68155 
68156    p_balance_type_code          := l_balance_type_code;
68157    -- set the flag so later we will know whether the gain loss line needs to be created
68158    
68159    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
68160      p_actual_flag :='A';
68161    END IF;
68162 
68163    --
68164    -- bulk performance
68165    --
68166    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
68167                                       p_header_num   => 0); -- 4262811
68168    --
68169    -- set accounting line options
68170    --
68171    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
68172            p_natural_side_code          => 'C'
68173          , p_gain_or_loss_flag          => 'N'
68174          , p_gl_transfer_mode_code      => 'S'
68175          , p_acct_entry_type_code       => 'A'
68176          , p_switch_side_flag           => 'Y'
68177          , p_merge_duplicate_code       => 'A'
68178          );
68179    --
68180    l_acc_rev_natural_side_code := 'D';  -- 4262811
68181    -- 
68182    --
68183    -- set accounting line type info
68184    --
68185    xla_ae_lines_pkg.SetAcctLineType
68186       (p_component_type             => l_component_type
68187       ,p_event_type_code            => l_event_type_code
68188       ,p_line_definition_owner_code => l_line_definition_owner_code
68189       ,p_line_definition_code       => l_line_definition_code
68190       ,p_accounting_line_code       => l_component_code
68191       ,p_accounting_line_type_code  => l_component_type_code
68192       ,p_accounting_line_appl_id    => l_component_appl_id
68193       ,p_amb_context_code           => l_amb_context_code
68194       ,p_entity_code                => l_entity_code
68195       ,p_event_class_code           => l_event_class_code);
68196    --
68197    -- set accounting class
68198    --
68199    xla_ae_lines_pkg.SetAcctClass(
68200            p_accounting_class_code  => 'ACCRUAL'
68201          , p_ae_header_id           => l_ae_header_id
68205    -- set rounding class
68202          );
68203 
68204    --
68206    --
68207    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
68208                       'ACCRUAL';
68209 
68210    --
68211    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
68212    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
68213    --
68214    -- bulk performance
68215    --
68216    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
68217 
68218    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
68219       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
68220 
68221    -- 4955764
68222    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68223       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
68224 
68225    -- 4458381 Public Sector Enh
68226    
68227    --
68228    -- set accounting attributes for the line type
68229    --
68230    l_entered_amt_idx := 25;
68231    l_accted_amt_idx  := 30;
68232    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
68233    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
68234    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
68235    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
68236    l_rec_acct_attrs.array_num_value(2)  := 
68237 xla_ae_sources_pkg.GetSystemSourceNum(
68238    p_source_code           => 'XLA_EVENT_APPL_ID'
68239  , p_source_type_code      => 'Y'
68240  , p_source_application_id =>  602
68241 );
68242    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
68243    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
68244    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
68245    l_rec_acct_attrs.array_char_value(4)  := 
68246 xla_ae_sources_pkg.GetSystemSourceChar(
68247    p_source_code           => 'XLA_ENTITY_CODE'
68248  , p_source_type_code      => 'Y'
68249  , p_source_application_id =>  602
68250 );
68251    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
68252    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
68253    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
68254    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
68255    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
68256    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
68257    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
68258    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
68259    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
68260    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
68261    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
68262    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
68263    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
68264    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
68265    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
68266    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
68267    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
68268    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
68269    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
68270    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
68271    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
68272    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
68273    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
68274    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
68275    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
68276    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
68277    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
68278    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
68279    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
68280    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
68281    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
68282    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
68283    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
68284    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
68285    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
68286    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
68287    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
68288    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
68289    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
68290    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
68291    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
68292    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
68293    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
68294    l_rec_acct_attrs.array_char_value(26)  := p_source_99;
68295    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
68296    l_rec_acct_attrs.array_date_value(27)  := p_source_61;
68297    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
68298    l_rec_acct_attrs.array_num_value(28)  := p_source_62;
68302    l_rec_acct_attrs.array_num_value(30)  := p_source_100;
68299    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
68300    l_rec_acct_attrs.array_char_value(29)  := p_source_63;
68301    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
68303    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
68304    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
68305    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
68306    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
68307    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
68308    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
68309    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
68310    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
68311    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
68312    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
68313    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
68314    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
68315    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
68316    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
68317    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
68318    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
68319    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
68320    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
68321    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
68322    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
68323    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
68324    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
68325    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
68326    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
68327    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
68328    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
68329    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
68330    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
68331 
68332    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
68333    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
68334 
68335    ---------------------------------------------------------------------------------------------------------------
68336    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
68337    ---------------------------------------------------------------------------------------------------------------
68338    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
68339 
68340    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68341    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68342 
68343    IF xla_accounting_cache_pkg.GetValueChar
68344          (p_source_code         => 'LEDGER_CATEGORY_CODE'
68345          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
68346    AND l_bflow_method_code = 'PRIOR_ENTRY'
68347 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
68348    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
68349          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
68350        )
68351    THEN
68352          xla_ae_lines_pkg.BflowUpgEntry
68353            (p_business_method_code    => l_bflow_method_code
68354            ,p_business_class_code     => l_bflow_class_code
68355            ,p_balance_type            => l_balance_type_code);
68356    ELSE
68357       NULL;
68358 -- No business flow processing for business flow method of NONE.
68359    END IF;
68360 
68361    --
68362    -- call analytical criteria
68363    --
68364    
68365    --
68366    -- call description
68367    --
68368    -- No description or it is inherited.
68369    --
68370    -- call ADRs
68371    -- Bug 4922099
68372    --
68373    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68374         (NVL(l_actual_upg_option, 'N') = 'O') OR
68375         (NVL(l_enc_upg_option, 'N') = 'O')
68376       )
68377    THEN
68378    NULL;
68379    --
68380    --
68381    
68382   l_ccid := AcctDerRule_28(
68383            p_application_id           => p_application_id
68384          , p_ae_header_id             => l_ae_header_id 
68385 , p_source_29 => p_source_29
68386          , x_transaction_coa_id       => l_adr_transaction_coa_id
68387          , x_accounting_coa_id        => l_adr_accounting_coa_id
68388          , x_value_type_code          => l_adr_value_type_code
68389          , p_side                     => 'NA'
68390    );
68391 
68392    xla_ae_lines_pkg.set_ccid(
68393     p_code_combination_id          => l_ccid
68394   , p_value_type_code              => l_adr_value_type_code
68395   , p_transaction_coa_id           => l_adr_transaction_coa_id
68396   , p_accounting_coa_id            => l_adr_accounting_coa_id
68397   , p_adr_code                     => 'AP_INVOICE_DIST'
68398   , p_adr_type_code                => 'S'
68399   , p_component_type               => l_component_type
68400   , p_component_code               => l_component_code
68401   , p_component_type_code          => l_component_type_code
68402   , p_component_appl_id            => l_component_appl_id
68403   , p_amb_context_code             => l_amb_context_code
68407 
68404   , p_side                         => 'NA'
68405   );
68406 
68408    --
68409    --
68410    END IF;
68411    --
68412    -- Bug 4922099
68413    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
68414           (NVL(l_enc_upg_option, 'N') = 'O')
68415         ) AND
68416         (l_bflow_method_code = 'PRIOR_ENTRY')
68417       )
68418    THEN
68419       IF
68420       --
68421       1 = 2
68422       --
68423       THEN
68424       xla_accounting_err_pkg.build_message
68425                                     (p_appli_s_name            => 'XLA'
68426                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68427                                     ,p_token_1                 => 'LINE_NUMBER'
68428                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
68429                                     ,p_token_2                 => 'LINE_TYPE_NAME'
68430                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
68431                                                                              l_component_type
68432                                                                             ,l_component_code
68433                                                                             ,l_component_type_code
68434                                                                             ,l_component_appl_id
68435                                                                             ,l_amb_context_code
68436                                                                             ,l_entity_code
68437                                                                             ,l_event_class_code
68438                                                                            )
68439                                     ,p_token_3                 => 'OWNER'
68440                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
68441                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
68442                                                                           ,p_lookup_code    => l_component_type_code
68443                                                                          )
68444                                     ,p_token_4                 => 'PRODUCT_NAME'
68445                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
68446                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
68447                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
68448                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
68449                                     ,p_ae_header_id            =>  NULL
68450                                        );
68451 
68452         IF (C_LEVEL_ERROR>= g_log_level) THEN
68453                  trace
68454                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68455                       ,p_level    => C_LEVEL_ERROR
68456                       ,p_module   => l_log_module);
68457         END IF;
68458       END IF;
68459    END IF;
68460    --
68461    --
68462    ------------------------------------------------------------------------------------------------
68463    -- 4219869 Business Flow
68464    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
68465    -- Prior Entry.  Currently, the following code is always generated.
68466    ------------------------------------------------------------------------------------------------
68467    XLA_AE_LINES_PKG.ValidateCurrentLine;
68468 
68469    ------------------------------------------------------------------------------------
68470    -- 4219869 Business Flow
68471    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
68472    ------------------------------------------------------------------------------------
68473    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68474 
68475    ----------------------------------------------------------------------------------
68476    -- 4219869 Business Flow
68477    -- Update journal entry status -- Need to generate this within IF <condition>
68478    ----------------------------------------------------------------------------------
68479    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68480          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
68481          ,p_balance_type_code => l_balance_type_code
68482          );
68483 
68484    -------------------------------------------------------------------------------------------
68485    -- 4262811 - Generate the Accrual Reversal lines
68486    -------------------------------------------------------------------------------------------
68487    BEGIN
68488       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
68489                               (g_array_event(p_event_id).array_value_num('header_index'));
68490       IF l_acc_rev_flag IS NULL THEN
68491          l_acc_rev_flag := 'N';
68492       END IF;
68493    EXCEPTION
68494       WHEN OTHERS THEN
68495          l_acc_rev_flag := 'N';
68496    END;
68497    --
68498    IF (l_acc_rev_flag = 'Y') THEN
68499 
68500        -- 4645092  ------------------------------------------------------------------------------
68501        -- To allow MPA report to determine if it should generate report process
68502        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
68506        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
68503        ------------------------------------------------------------------------------------------
68504 
68505        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
68507    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
68508    -- call ADRs
68509    -- Bug 4922099
68510    --
68511    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68512         (NVL(l_actual_upg_option, 'N') = 'O') OR
68513         (NVL(l_enc_upg_option, 'N') = 'O')
68514       )
68515    THEN
68516    NULL;
68517    --
68518    --
68519    
68520   l_ccid := AcctDerRule_28(
68521            p_application_id           => p_application_id
68522          , p_ae_header_id             => l_ae_header_id 
68523 , p_source_29 => p_source_29
68524          , x_transaction_coa_id       => l_adr_transaction_coa_id
68525          , x_accounting_coa_id        => l_adr_accounting_coa_id
68526          , x_value_type_code          => l_adr_value_type_code
68527          , p_side                     => 'NA'
68528    );
68529 
68530    xla_ae_lines_pkg.set_ccid(
68531     p_code_combination_id          => l_ccid
68532   , p_value_type_code              => l_adr_value_type_code
68533   , p_transaction_coa_id           => l_adr_transaction_coa_id
68534   , p_accounting_coa_id            => l_adr_accounting_coa_id
68535   , p_adr_code                     => 'AP_INVOICE_DIST'
68536   , p_adr_type_code                => 'S'
68537   , p_component_type               => l_component_type
68538   , p_component_code               => l_component_code
68539   , p_component_type_code          => l_component_type_code
68540   , p_component_appl_id            => l_component_appl_id
68541   , p_amb_context_code             => l_amb_context_code
68542   , p_side                         => 'NA'
68543   );
68544 
68545 
68546    --
68547    --
68548    END IF;
68549 
68550        --
68551        -- Update the line information that should be overwritten
68552        --
68553        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
68554                                          p_header_num   => 1);
68555        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
68556 
68557        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
68558 
68559        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
68560           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
68561        END IF;
68562 
68563       --
68564       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
68565       --
68566       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
68567           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
68568       ELSE
68569           ---------------------------------------------------------------------------------------------------
68570           -- 4262811a Switch Sign
68571           ---------------------------------------------------------------------------------------------------
68572           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
68573           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68574                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68575           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68576                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68577           -- 5132302
68578           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
68579                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68580 
68581       END IF;
68582 
68583       -- 4955764
68584       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68585       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
68586 
68587 
68588       XLA_AE_LINES_PKG.ValidateCurrentLine;
68589       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68590 
68591       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68592                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
68593                ,p_balance_type_code => l_balance_type_code);
68594 
68595    END IF;
68596 
68597    -----------------------------------------------------------------------------------------
68598    -- 4262811 Multiperiod Accounting
68599    -----------------------------------------------------------------------------------------
68600      -- No MPA option is assigned.
68601 
68602 
68603 END IF;
68604 END IF;
68605 --
68606 
68607 --
68608 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68609    trace
68610       (p_msg      => 'END of AcctLineType_126'
68611       ,p_level    => C_LEVEL_PROCEDURE
68612       ,p_module   => l_log_module);
68613 END IF;
68614 --
68615 EXCEPTION
68616   WHEN xla_exceptions_pkg.application_exception THEN
68617       RAISE;
68618   WHEN OTHERS THEN
68619        xla_exceptions_pkg.raise_message
68620            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_126');
68621 END AcctLineType_126;
68625 --
68622 --
68623 
68624 ---------------------------------------
68626 -- PRIVATE FUNCTION
68627 --         AcctLineType_127
68628 --
68629 ---------------------------------------
68630 PROCEDURE AcctLineType_127 (
68631   p_application_id        IN NUMBER
68632  ,p_event_id              IN NUMBER
68633  ,p_calculate_acctd_flag  IN VARCHAR2
68634  ,p_calculate_g_l_flag    IN VARCHAR2
68635  ,p_actual_flag           IN OUT VARCHAR2
68636  ,p_balance_type_code     OUT VARCHAR2
68637  ,p_gain_or_loss_ref      OUT VARCHAR2
68638  
68639 --Invoice Distribution Account
68640  , p_source_29            IN NUMBER
68641 --When to Account for Payment Option
68642  , p_source_50            IN VARCHAR2
68643 --Accounting Reversal Indicator
68644  , p_source_52            IN VARCHAR2
68645 --Business Flow Accounts Payable Application Identifier
68646  , p_source_54            IN NUMBER
68647 --Distribution Link Type
68648  , p_source_60            IN VARCHAR2
68649 --Purchase Order Exchange Rate Date
68650  , p_source_61            IN DATE
68651 --Purchase Order Exchange Rate
68652  , p_source_62            IN NUMBER
68653 --Purchase Order Exchange Rate Type
68654  , p_source_63            IN VARCHAR2
68655 --Override Accounted Amount Indicator
68656  , p_source_64            IN VARCHAR2
68657  , p_source_64_meaning    IN VARCHAR2
68658 --Third Party Type
68659  , p_source_67            IN VARCHAR2
68660 --Invoice Distribution Tax Line Identifier
68661  , p_source_69            IN NUMBER
68662 --Invoice Distribution Summary Tax Line Identifier
68663  , p_source_70            IN NUMBER
68664 --Invoice Distribution Tax Distribution Identifier from Tax
68665  , p_source_77            IN NUMBER
68666 --Prepayment Distribution Type
68667  , p_source_78            IN VARCHAR2
68668 --Recipient Invoice Distribution Type
68669  , p_source_79            IN VARCHAR2
68670  , p_source_79_meaning    IN VARCHAR2
68671 --Prepayment Application Distribution Identifier
68672  , p_source_82            IN NUMBER
68673 --Invoice Identifier
68674  , p_source_83            IN NUMBER
68675 --Business Flow Prepayment Invoice Distribution Type
68676  , p_source_84            IN VARCHAR2
68677 --Business Flow Prepayment Invoice Entity Code
68678  , p_source_85            IN VARCHAR2
68679 --Business Flow Prepayment Invoice Distribution Identifier
68680  , p_source_86            IN NUMBER
68681 --Business Flow Prepayment Invoice Identifier
68682  , p_source_87            IN NUMBER
68683 --Upgrade Encumbrance Credit Account Class
68684  , p_source_88            IN VARCHAR2
68685 --Payables Encumbrance Upgrade Credit Account
68686  , p_source_89            IN NUMBER
68687 --Payables Encumbrance Upgrade Credit Amount
68688  , p_source_90            IN NUMBER
68689 --Invoice Currency Code
68690  , p_source_91            IN VARCHAR2
68691 --Payables Encumbrance Upgrade Credit Base Amount
68692  , p_source_92            IN NUMBER
68693 --Upgrade Encumbrance Debit Account Class
68694  , p_source_93            IN VARCHAR2
68695 --Payables Encumbrance Upgrade Debit Account
68696  , p_source_94            IN NUMBER
68697 --Payables Encumbrance Upgrade Debit Amount
68698  , p_source_95            IN NUMBER
68699 --Payables Encumbrance Upgrade Debit Base Amount
68700  , p_source_96            IN NUMBER
68701 --Payables Encumbrance Upgrade Option
68702  , p_source_97            IN VARCHAR2
68703 --Prepayment Distribution Amount
68704  , p_source_98            IN NUMBER
68705 --Deferred Accounting End Date
68706  , p_source_101            IN DATE
68707 --Deferred Accounting Option
68708  , p_source_102            IN VARCHAR2
68709 --Deferred Accounting Start Date
68710  , p_source_103            IN DATE
68711 --Invoice Supplier Identifier
68712  , p_source_104            IN NUMBER
68713 --Invoice Supplier Site Identifier
68714  , p_source_105            IN NUMBER
68715 --Identifier of the Prepayment Application Reversed
68716  , p_source_106            IN NUMBER
68717 --Payables Upgrade Credit Encumbrance Type Identifier
68718  , p_source_107            IN NUMBER
68719 --Payables Upgrade Debit Encumbrance Type Identifier
68720  , p_source_108            IN NUMBER
68721 --Prepayment Payment Currency Code
68722  , p_source_109            IN VARCHAR2
68723 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
68724  , p_source_110            IN NUMBER
68725 --Accrue on Receipt Option
68726  , p_source_111            IN VARCHAR2
68727  , p_source_111_meaning    IN VARCHAR2
68728 )
68729 IS
68730 
68731 l_component_type              VARCHAR2(80);
68732 l_component_code              VARCHAR2(30);
68733 l_component_type_code         VARCHAR2(1);
68734 l_component_appl_id           INTEGER;
68735 l_amb_context_code            VARCHAR2(30);
68736 l_entity_code                 VARCHAR2(30);
68737 l_event_class_code            VARCHAR2(30);
68738 l_ae_header_id                NUMBER;
68739 l_event_type_code             VARCHAR2(30);
68740 l_line_definition_code        VARCHAR2(30);
68741 l_line_definition_owner_code  VARCHAR2(1);
68742 --
68743 -- adr variables
68744 l_segment                     VARCHAR2(30);
68745 l_ccid                        NUMBER;
68746 l_adr_transaction_coa_id      NUMBER;
68747 l_adr_accounting_coa_id       NUMBER;
68748 l_adr_flexfield_segment_code  VARCHAR2(30);
68749 l_adr_flex_value_set_id       NUMBER;
68750 l_adr_value_type_code         VARCHAR2(30);
68751 l_adr_value_combination_id    NUMBER;
68755 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
68752 l_adr_value_segment_code      VARCHAR2(30);
68753 
68754 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
68756 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
68757 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
68758 
68759 -- 4262811 Variables ------------------------------------------------------------------------------------------
68760 l_entered_amt_idx             NUMBER;
68761 l_accted_amt_idx              NUMBER;
68762 l_acc_rev_flag                VARCHAR2(1);
68763 l_accrual_line_num            NUMBER;
68764 l_tmp_amt                     NUMBER;
68765 l_acc_rev_natural_side_code   VARCHAR2(1);
68766 
68767 l_num_entries                 NUMBER;
68768 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
68769 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
68770 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
68771 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
68772 l_recog_line_1                NUMBER;
68773 l_recog_line_2                NUMBER;
68774 
68775 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
68776 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
68777 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
68778 
68779 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
68780 
68781 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
68782 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
68783 
68784 ---------------------------------------------------------------------------------------------------------------
68785 
68786 
68787 --
68788 -- bulk performance
68789 --
68790 l_balance_type_code           VARCHAR2(1);
68791 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
68792 l_log_module                  VARCHAR2(240);
68793 
68794 --
68795 -- Upgrade strategy
68796 --
68797 l_actual_upg_option           VARCHAR2(1);
68798 l_enc_upg_option           VARCHAR2(1);
68799 
68800 --
68801 BEGIN
68802 --
68803 IF g_log_enabled THEN
68804       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_127';
68805 END IF;
68806 --
68807 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68808 
68809       trace
68810          (p_msg      => 'BEGIN of AcctLineType_127'
68811          ,p_level    => C_LEVEL_PROCEDURE
68812          ,p_module   => l_log_module);
68813 
68814 END IF;
68815 --
68816 l_component_type             := 'AMB_JLT';
68817 l_component_code             := 'AP_NRTAX_ACCRUAL_PREPAY_PAY';
68818 l_component_type_code        := 'S';
68819 l_component_appl_id          :=  200;
68820 l_amb_context_code           := 'DEFAULT';
68821 l_entity_code                := 'AP_INVOICES';
68822 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
68823 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
68824 l_line_definition_owner_code := 'S';
68825 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
68826 --
68827 l_balance_type_code          := 'A';
68828 l_segment                     := NULL;
68829 l_ccid                        := NULL;
68830 l_adr_transaction_coa_id      := NULL;
68831 l_adr_accounting_coa_id       := NULL;
68832 l_adr_flexfield_segment_code  := NULL;
68833 l_adr_flex_value_set_id       := NULL;
68834 l_adr_value_type_code         := NULL;
68835 l_adr_value_combination_id    := NULL;
68836 l_adr_value_segment_code      := NULL;
68837 
68838 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
68839 l_bflow_class_code           := '';    -- 4219869 Business Flow
68840 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
68841 l_budgetary_control_flag     := 'N';
68842 
68843 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
68844 l_bflow_applied_to_amt       := NULL; -- 5132302
68845 l_entered_amt_idx            := NULL;          -- 4262811
68846 l_accted_amt_idx             := NULL;          -- 4262811
68847 l_acc_rev_flag               := NULL;          -- 4262811
68848 l_accrual_line_num           := NULL;          -- 4262811
68849 l_tmp_amt                    := NULL;          -- 4262811
68850 --
68851  
68852 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
68853     l_balance_type_code <> 'B' THEN
68854 IF NVL(p_source_50,'
68855 ') <>  'CLEAR_CLEAR' AND 
68856 (NVL(p_source_78,'
68857 ') =  'PREPAY APPL' OR 
68858 NVL(p_source_78,'
68859 ') =  'PREPAY APPL NONREC TAX' OR 
68860 NVL(p_source_78,'
68861 ') =  'PREPAY APPL REC TAX') AND 
68862 NVL(p_source_79,'
68863 ') =  'NONREC_TAX' AND 
68864 NVL(p_source_111,'
68865 ') =  'Y'
68866  THEN 
68867 
68868    --
68869    XLA_AE_LINES_PKG.SetNewLine;
68870 
68871    p_balance_type_code          := l_balance_type_code;
68872    -- set the flag so later we will know whether the gain loss line needs to be created
68873    
68874    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
68875      p_actual_flag :='A';
68876    END IF;
68877 
68878    --
68879    -- bulk performance
68880    --
68881    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
68882                                       p_header_num   => 0); -- 4262811
68886    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
68883    --
68884    -- set accounting line options
68885    --
68887            p_natural_side_code          => 'C'
68888          , p_gain_or_loss_flag          => 'N'
68889          , p_gl_transfer_mode_code      => 'S'
68890          , p_acct_entry_type_code       => 'A'
68891          , p_switch_side_flag           => 'Y'
68892          , p_merge_duplicate_code       => 'A'
68893          );
68894    --
68895    l_acc_rev_natural_side_code := 'D';  -- 4262811
68896    -- 
68897    --
68898    -- set accounting line type info
68899    --
68900    xla_ae_lines_pkg.SetAcctLineType
68901       (p_component_type             => l_component_type
68902       ,p_event_type_code            => l_event_type_code
68903       ,p_line_definition_owner_code => l_line_definition_owner_code
68904       ,p_line_definition_code       => l_line_definition_code
68905       ,p_accounting_line_code       => l_component_code
68906       ,p_accounting_line_type_code  => l_component_type_code
68907       ,p_accounting_line_appl_id    => l_component_appl_id
68908       ,p_amb_context_code           => l_amb_context_code
68909       ,p_entity_code                => l_entity_code
68910       ,p_event_class_code           => l_event_class_code);
68911    --
68912    -- set accounting class
68913    --
68914    xla_ae_lines_pkg.SetAcctClass(
68915            p_accounting_class_code  => 'ACCRUAL'
68916          , p_ae_header_id           => l_ae_header_id
68917          );
68918 
68919    --
68920    -- set rounding class
68921    --
68922    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
68923                       'ACCRUAL';
68924 
68925    --
68926    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
68927    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
68928    --
68929    -- bulk performance
68930    --
68931    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
68932 
68933    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
68934       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
68935 
68936    -- 4955764
68937    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68938       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
68939 
68940    -- 4458381 Public Sector Enh
68941    
68942    --
68943    -- set accounting attributes for the line type
68944    --
68945    l_entered_amt_idx := 25;
68946    l_accted_amt_idx  := 30;
68947    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
68948    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
68949    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
68950    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
68951    l_rec_acct_attrs.array_num_value(2)  := 
68952 xla_ae_sources_pkg.GetSystemSourceNum(
68953    p_source_code           => 'XLA_EVENT_APPL_ID'
68954  , p_source_type_code      => 'Y'
68955  , p_source_application_id =>  602
68956 );
68957    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
68958    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
68959    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
68960    l_rec_acct_attrs.array_char_value(4)  := 
68961 xla_ae_sources_pkg.GetSystemSourceChar(
68962    p_source_code           => 'XLA_ENTITY_CODE'
68963  , p_source_type_code      => 'Y'
68964  , p_source_application_id =>  602
68965 );
68966    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
68967    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
68968    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
68969    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
68970    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
68971    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
68972    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
68973    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
68974    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
68975    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
68976    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
68977    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
68978    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
68979    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
68980    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
68981    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
68982    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
68983    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
68984    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
68985    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
68986    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
68987    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
68988    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
68989    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
68990    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
68991    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
68995    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
68992    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
68993    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
68994    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
68996    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
68997    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
68998    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
68999    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
69000    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
69001    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
69002    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
69003    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
69004    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
69005    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
69006    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
69007    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
69008    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
69009    l_rec_acct_attrs.array_char_value(26)  := p_source_109;
69010    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
69011    l_rec_acct_attrs.array_date_value(27)  := p_source_61;
69012    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
69013    l_rec_acct_attrs.array_num_value(28)  := p_source_62;
69014    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
69015    l_rec_acct_attrs.array_char_value(29)  := p_source_63;
69016    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
69017    l_rec_acct_attrs.array_num_value(30)  := p_source_110;
69018    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
69019    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
69020    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
69021    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
69022    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
69023    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
69024    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
69025    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
69026    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
69027    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
69028    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
69029    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
69030    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
69031    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
69032    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
69033    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
69034    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
69035    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
69036    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
69037    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
69038    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
69039    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
69040    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
69041    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
69042    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
69043    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
69044    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
69045    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
69046 
69047    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69048    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69049 
69050    ---------------------------------------------------------------------------------------------------------------
69051    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69052    ---------------------------------------------------------------------------------------------------------------
69053    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69054 
69055    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69056    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69057 
69058    IF xla_accounting_cache_pkg.GetValueChar
69059          (p_source_code         => 'LEDGER_CATEGORY_CODE'
69060          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69061    AND l_bflow_method_code = 'PRIOR_ENTRY'
69062 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69063    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69064          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
69065        )
69066    THEN
69067          xla_ae_lines_pkg.BflowUpgEntry
69068            (p_business_method_code    => l_bflow_method_code
69069            ,p_business_class_code     => l_bflow_class_code
69070            ,p_balance_type            => l_balance_type_code);
69071    ELSE
69072       NULL;
69073 -- No business flow processing for business flow method of NONE.
69074    END IF;
69075 
69076    --
69077    -- call analytical criteria
69078    --
69079    
69080    --
69081    -- call description
69082    --
69083    -- No description or it is inherited.
69087    --
69084    --
69085    -- call ADRs
69086    -- Bug 4922099
69088    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69089         (NVL(l_actual_upg_option, 'N') = 'O') OR
69090         (NVL(l_enc_upg_option, 'N') = 'O')
69091       )
69092    THEN
69093    NULL;
69094    --
69095    --
69096    
69097   l_ccid := AcctDerRule_28(
69098            p_application_id           => p_application_id
69099          , p_ae_header_id             => l_ae_header_id 
69100 , p_source_29 => p_source_29
69101          , x_transaction_coa_id       => l_adr_transaction_coa_id
69102          , x_accounting_coa_id        => l_adr_accounting_coa_id
69103          , x_value_type_code          => l_adr_value_type_code
69104          , p_side                     => 'NA'
69105    );
69106 
69107    xla_ae_lines_pkg.set_ccid(
69108     p_code_combination_id          => l_ccid
69109   , p_value_type_code              => l_adr_value_type_code
69110   , p_transaction_coa_id           => l_adr_transaction_coa_id
69111   , p_accounting_coa_id            => l_adr_accounting_coa_id
69112   , p_adr_code                     => 'AP_INVOICE_DIST'
69113   , p_adr_type_code                => 'S'
69114   , p_component_type               => l_component_type
69115   , p_component_code               => l_component_code
69116   , p_component_type_code          => l_component_type_code
69117   , p_component_appl_id            => l_component_appl_id
69118   , p_amb_context_code             => l_amb_context_code
69119   , p_side                         => 'NA'
69120   );
69121 
69122 
69123    --
69124    --
69125    END IF;
69126    --
69127    -- Bug 4922099
69128    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
69129           (NVL(l_enc_upg_option, 'N') = 'O')
69130         ) AND
69131         (l_bflow_method_code = 'PRIOR_ENTRY')
69132       )
69133    THEN
69134       IF
69135       --
69136       1 = 2
69137       --
69138       THEN
69139       xla_accounting_err_pkg.build_message
69140                                     (p_appli_s_name            => 'XLA'
69141                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69142                                     ,p_token_1                 => 'LINE_NUMBER'
69143                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
69144                                     ,p_token_2                 => 'LINE_TYPE_NAME'
69145                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
69146                                                                              l_component_type
69147                                                                             ,l_component_code
69148                                                                             ,l_component_type_code
69149                                                                             ,l_component_appl_id
69150                                                                             ,l_amb_context_code
69151                                                                             ,l_entity_code
69152                                                                             ,l_event_class_code
69153                                                                            )
69154                                     ,p_token_3                 => 'OWNER'
69155                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
69156                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
69157                                                                           ,p_lookup_code    => l_component_type_code
69158                                                                          )
69159                                     ,p_token_4                 => 'PRODUCT_NAME'
69160                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
69161                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
69162                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
69163                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
69164                                     ,p_ae_header_id            =>  NULL
69165                                        );
69166 
69167         IF (C_LEVEL_ERROR>= g_log_level) THEN
69168                  trace
69169                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69170                       ,p_level    => C_LEVEL_ERROR
69171                       ,p_module   => l_log_module);
69172         END IF;
69173       END IF;
69174    END IF;
69175    --
69176    --
69177    ------------------------------------------------------------------------------------------------
69178    -- 4219869 Business Flow
69179    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
69180    -- Prior Entry.  Currently, the following code is always generated.
69181    ------------------------------------------------------------------------------------------------
69182    XLA_AE_LINES_PKG.ValidateCurrentLine;
69183 
69184    ------------------------------------------------------------------------------------
69185    -- 4219869 Business Flow
69186    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69187    ------------------------------------------------------------------------------------
69188    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69189 
69193    ----------------------------------------------------------------------------------
69190    ----------------------------------------------------------------------------------
69191    -- 4219869 Business Flow
69192    -- Update journal entry status -- Need to generate this within IF <condition>
69194    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69195          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69196          ,p_balance_type_code => l_balance_type_code
69197          );
69198 
69199    -------------------------------------------------------------------------------------------
69200    -- 4262811 - Generate the Accrual Reversal lines
69201    -------------------------------------------------------------------------------------------
69202    BEGIN
69203       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69204                               (g_array_event(p_event_id).array_value_num('header_index'));
69205       IF l_acc_rev_flag IS NULL THEN
69206          l_acc_rev_flag := 'N';
69207       END IF;
69208    EXCEPTION
69209       WHEN OTHERS THEN
69210          l_acc_rev_flag := 'N';
69211    END;
69212    --
69213    IF (l_acc_rev_flag = 'Y') THEN
69214 
69215        -- 4645092  ------------------------------------------------------------------------------
69216        -- To allow MPA report to determine if it should generate report process
69217        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69218        ------------------------------------------------------------------------------------------
69219 
69220        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
69221        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
69222    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
69223    -- call ADRs
69224    -- Bug 4922099
69225    --
69226    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69227         (NVL(l_actual_upg_option, 'N') = 'O') OR
69228         (NVL(l_enc_upg_option, 'N') = 'O')
69229       )
69230    THEN
69231    NULL;
69232    --
69233    --
69234    
69235   l_ccid := AcctDerRule_28(
69236            p_application_id           => p_application_id
69237          , p_ae_header_id             => l_ae_header_id 
69238 , p_source_29 => p_source_29
69239          , x_transaction_coa_id       => l_adr_transaction_coa_id
69240          , x_accounting_coa_id        => l_adr_accounting_coa_id
69241          , x_value_type_code          => l_adr_value_type_code
69242          , p_side                     => 'NA'
69243    );
69244 
69245    xla_ae_lines_pkg.set_ccid(
69246     p_code_combination_id          => l_ccid
69247   , p_value_type_code              => l_adr_value_type_code
69248   , p_transaction_coa_id           => l_adr_transaction_coa_id
69249   , p_accounting_coa_id            => l_adr_accounting_coa_id
69250   , p_adr_code                     => 'AP_INVOICE_DIST'
69251   , p_adr_type_code                => 'S'
69252   , p_component_type               => l_component_type
69253   , p_component_code               => l_component_code
69254   , p_component_type_code          => l_component_type_code
69255   , p_component_appl_id            => l_component_appl_id
69256   , p_amb_context_code             => l_amb_context_code
69257   , p_side                         => 'NA'
69258   );
69259 
69260 
69261    --
69262    --
69263    END IF;
69264 
69265        --
69266        -- Update the line information that should be overwritten
69267        --
69268        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
69269                                          p_header_num   => 1);
69270        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
69271 
69272        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
69273 
69274        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
69275           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
69276        END IF;
69277 
69278       --
69279       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
69280       --
69281       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
69282           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
69283       ELSE
69284           ---------------------------------------------------------------------------------------------------
69285           -- 4262811a Switch Sign
69286           ---------------------------------------------------------------------------------------------------
69287           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
69288           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69289                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69290           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69291                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69292           -- 5132302
69293           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
69294                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69295 
69296       END IF;
69297 
69298       -- 4955764
69302 
69299       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69300       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
69301 
69303       XLA_AE_LINES_PKG.ValidateCurrentLine;
69304       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69305 
69306       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69307                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
69308                ,p_balance_type_code => l_balance_type_code);
69309 
69310    END IF;
69311 
69312    -----------------------------------------------------------------------------------------
69313    -- 4262811 Multiperiod Accounting
69314    -----------------------------------------------------------------------------------------
69315      -- No MPA option is assigned.
69316 
69317 
69318 END IF;
69319 END IF;
69320 --
69321 
69322 --
69323 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69324    trace
69325       (p_msg      => 'END of AcctLineType_127'
69326       ,p_level    => C_LEVEL_PROCEDURE
69327       ,p_module   => l_log_module);
69328 END IF;
69329 --
69330 EXCEPTION
69331   WHEN xla_exceptions_pkg.application_exception THEN
69332       RAISE;
69333   WHEN OTHERS THEN
69334        xla_exceptions_pkg.raise_message
69335            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_127');
69336 END AcctLineType_127;
69337 --
69338 
69339 ---------------------------------------
69340 --
69341 -- PRIVATE FUNCTION
69342 --         AcctLineType_128
69343 --
69344 ---------------------------------------
69345 PROCEDURE AcctLineType_128 (
69346   p_application_id        IN NUMBER
69347  ,p_event_id              IN NUMBER
69348  ,p_calculate_acctd_flag  IN VARCHAR2
69349  ,p_calculate_g_l_flag    IN VARCHAR2
69350  ,p_actual_flag           IN OUT VARCHAR2
69351  ,p_balance_type_code     OUT VARCHAR2
69352  ,p_gain_or_loss_ref      OUT VARCHAR2
69353  
69354 --Recipient Invoice Distribution Account
69355  , p_source_48            IN NUMBER
69356 --When to Account for Payment Option
69357  , p_source_50            IN VARCHAR2
69358 --Accounting Reversal Indicator
69359  , p_source_52            IN VARCHAR2
69360 --Business Flow Accounts Payable Application Identifier
69361  , p_source_54            IN NUMBER
69362 --Distribution Link Type
69363  , p_source_60            IN VARCHAR2
69364 --Override Accounted Amount Indicator
69365  , p_source_64            IN VARCHAR2
69366  , p_source_64_meaning    IN VARCHAR2
69367 --Third Party Type
69368  , p_source_67            IN VARCHAR2
69369 --Invoice Distribution Tax Line Identifier
69370  , p_source_69            IN NUMBER
69371 --Invoice Distribution Summary Tax Line Identifier
69372  , p_source_70            IN NUMBER
69373 --Invoice Distribution Tax Distribution Identifier from Tax
69374  , p_source_77            IN NUMBER
69375 --Prepayment Distribution Type
69376  , p_source_78            IN VARCHAR2
69377 --Recipient Invoice Distribution Type
69378  , p_source_79            IN VARCHAR2
69379  , p_source_79_meaning    IN VARCHAR2
69380 --Prepayment Application Distribution Identifier
69381  , p_source_82            IN NUMBER
69382 --Invoice Identifier
69383  , p_source_83            IN NUMBER
69384 --Business Flow Prepayment Invoice Distribution Type
69385  , p_source_84            IN VARCHAR2
69386 --Business Flow Prepayment Invoice Entity Code
69387  , p_source_85            IN VARCHAR2
69388 --Business Flow Prepayment Invoice Distribution Identifier
69389  , p_source_86            IN NUMBER
69390 --Business Flow Prepayment Invoice Identifier
69391  , p_source_87            IN NUMBER
69392 --Upgrade Encumbrance Credit Account Class
69393  , p_source_88            IN VARCHAR2
69394 --Payables Encumbrance Upgrade Credit Account
69395  , p_source_89            IN NUMBER
69396 --Payables Encumbrance Upgrade Credit Amount
69397  , p_source_90            IN NUMBER
69398 --Invoice Currency Code
69399  , p_source_91            IN VARCHAR2
69400 --Payables Encumbrance Upgrade Credit Base Amount
69401  , p_source_92            IN NUMBER
69402 --Upgrade Encumbrance Debit Account Class
69403  , p_source_93            IN VARCHAR2
69404 --Payables Encumbrance Upgrade Debit Account
69405  , p_source_94            IN NUMBER
69406 --Payables Encumbrance Upgrade Debit Amount
69407  , p_source_95            IN NUMBER
69408 --Payables Encumbrance Upgrade Debit Base Amount
69409  , p_source_96            IN NUMBER
69410 --Payables Encumbrance Upgrade Option
69411  , p_source_97            IN VARCHAR2
69412 --Prepayment Distribution Amount
69413  , p_source_98            IN NUMBER
69414 --Prepayment Clearing Currency Code
69415  , p_source_99            IN VARCHAR2
69416 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
69417  , p_source_100            IN NUMBER
69418 --Deferred Accounting End Date
69419  , p_source_101            IN DATE
69420 --Deferred Accounting Option
69421  , p_source_102            IN VARCHAR2
69422 --Deferred Accounting Start Date
69423  , p_source_103            IN DATE
69424 --Invoice Supplier Identifier
69425  , p_source_104            IN NUMBER
69426 --Invoice Supplier Site Identifier
69427  , p_source_105            IN NUMBER
69428 --Identifier of the Prepayment Application Reversed
69429  , p_source_106            IN NUMBER
69430 --Payables Upgrade Credit Encumbrance Type Identifier
69434 --Accrue on Receipt Option
69431  , p_source_107            IN NUMBER
69432 --Payables Upgrade Debit Encumbrance Type Identifier
69433  , p_source_108            IN NUMBER
69435  , p_source_111            IN VARCHAR2
69436  , p_source_111_meaning    IN VARCHAR2
69437 --Prepayment Clearing Exchange Date
69438  , p_source_125            IN DATE
69439 --Prepayment Clearing Exchange Rate
69440  , p_source_126            IN NUMBER
69441 --Prepayment Clearing Exchange Rate Type
69442  , p_source_127            IN VARCHAR2
69443 )
69444 IS
69445 
69446 l_component_type              VARCHAR2(80);
69447 l_component_code              VARCHAR2(30);
69448 l_component_type_code         VARCHAR2(1);
69449 l_component_appl_id           INTEGER;
69450 l_amb_context_code            VARCHAR2(30);
69451 l_entity_code                 VARCHAR2(30);
69452 l_event_class_code            VARCHAR2(30);
69453 l_ae_header_id                NUMBER;
69454 l_event_type_code             VARCHAR2(30);
69455 l_line_definition_code        VARCHAR2(30);
69456 l_line_definition_owner_code  VARCHAR2(1);
69457 --
69458 -- adr variables
69459 l_segment                     VARCHAR2(30);
69460 l_ccid                        NUMBER;
69461 l_adr_transaction_coa_id      NUMBER;
69462 l_adr_accounting_coa_id       NUMBER;
69463 l_adr_flexfield_segment_code  VARCHAR2(30);
69464 l_adr_flex_value_set_id       NUMBER;
69465 l_adr_value_type_code         VARCHAR2(30);
69466 l_adr_value_combination_id    NUMBER;
69467 l_adr_value_segment_code      VARCHAR2(30);
69468 
69469 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
69470 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
69471 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
69472 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
69473 
69474 -- 4262811 Variables ------------------------------------------------------------------------------------------
69475 l_entered_amt_idx             NUMBER;
69476 l_accted_amt_idx              NUMBER;
69477 l_acc_rev_flag                VARCHAR2(1);
69478 l_accrual_line_num            NUMBER;
69479 l_tmp_amt                     NUMBER;
69480 l_acc_rev_natural_side_code   VARCHAR2(1);
69481 
69482 l_num_entries                 NUMBER;
69483 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
69484 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
69485 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
69486 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
69487 l_recog_line_1                NUMBER;
69488 l_recog_line_2                NUMBER;
69489 
69490 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
69491 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
69492 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
69493 
69494 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
69495 
69496 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
69497 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
69498 
69499 ---------------------------------------------------------------------------------------------------------------
69500 
69501 
69502 --
69503 -- bulk performance
69504 --
69505 l_balance_type_code           VARCHAR2(1);
69506 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
69507 l_log_module                  VARCHAR2(240);
69508 
69509 --
69510 -- Upgrade strategy
69511 --
69512 l_actual_upg_option           VARCHAR2(1);
69513 l_enc_upg_option           VARCHAR2(1);
69514 
69515 --
69516 BEGIN
69517 --
69518 IF g_log_enabled THEN
69519       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_128';
69520 END IF;
69521 --
69522 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69523 
69524       trace
69525          (p_msg      => 'BEGIN of AcctLineType_128'
69526          ,p_level    => C_LEVEL_PROCEDURE
69527          ,p_module   => l_log_module);
69528 
69529 END IF;
69530 --
69531 l_component_type             := 'AMB_JLT';
69532 l_component_code             := 'AP_NRTAX_PREPAY_CLR_RATE_APP';
69533 l_component_type_code        := 'S';
69534 l_component_appl_id          :=  200;
69535 l_amb_context_code           := 'DEFAULT';
69536 l_entity_code                := 'AP_INVOICES';
69537 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
69538 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
69539 l_line_definition_owner_code := 'S';
69540 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
69541 --
69542 l_balance_type_code          := 'A';
69543 l_segment                     := NULL;
69544 l_ccid                        := NULL;
69545 l_adr_transaction_coa_id      := NULL;
69546 l_adr_accounting_coa_id       := NULL;
69547 l_adr_flexfield_segment_code  := NULL;
69548 l_adr_flex_value_set_id       := NULL;
69549 l_adr_value_type_code         := NULL;
69550 l_adr_value_combination_id    := NULL;
69551 l_adr_value_segment_code      := NULL;
69552 
69553 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
69554 l_bflow_class_code           := '';    -- 4219869 Business Flow
69555 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
69556 l_budgetary_control_flag     := 'N';
69557 
69558 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
69559 l_bflow_applied_to_amt       := NULL; -- 5132302
69560 l_entered_amt_idx            := NULL;          -- 4262811
69564 l_tmp_amt                    := NULL;          -- 4262811
69561 l_accted_amt_idx             := NULL;          -- 4262811
69562 l_acc_rev_flag               := NULL;          -- 4262811
69563 l_accrual_line_num           := NULL;          -- 4262811
69565 --
69566  
69567 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
69568     l_balance_type_code <> 'B' THEN
69569 IF NVL(p_source_50,'
69570 ') =  'CLEAR_CLEAR' AND 
69571 (NVL(p_source_78,'
69572 ') =  'PREPAY APPL' OR 
69573 NVL(p_source_78,'
69574 ') =  'PREPAY APPL NONREC TAX' OR 
69575 NVL(p_source_78,'
69576 ') =  'PREPAY APPL REC TAX') AND 
69577 (NVL(p_source_79,'
69578 ') =  'NONREC_TAX' OR 
69579 NVL(p_source_79,'
69580 ') =  'TERV') AND 
69581 NVL(p_source_111,'
69582 ') <>  'Y'
69583  THEN 
69584 
69585    --
69586    XLA_AE_LINES_PKG.SetNewLine;
69587 
69588    p_balance_type_code          := l_balance_type_code;
69589    -- set the flag so later we will know whether the gain loss line needs to be created
69590    
69591    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
69592      p_actual_flag :='A';
69593    END IF;
69594 
69595    --
69596    -- bulk performance
69597    --
69598    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
69599                                       p_header_num   => 0); -- 4262811
69600    --
69601    -- set accounting line options
69602    --
69603    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
69604            p_natural_side_code          => 'C'
69605          , p_gain_or_loss_flag          => 'N'
69606          , p_gl_transfer_mode_code      => 'S'
69607          , p_acct_entry_type_code       => 'A'
69608          , p_switch_side_flag           => 'Y'
69609          , p_merge_duplicate_code       => 'A'
69610          );
69611    --
69612    l_acc_rev_natural_side_code := 'D';  -- 4262811
69613    -- 
69614    --
69615    -- set accounting line type info
69616    --
69617    xla_ae_lines_pkg.SetAcctLineType
69618       (p_component_type             => l_component_type
69619       ,p_event_type_code            => l_event_type_code
69620       ,p_line_definition_owner_code => l_line_definition_owner_code
69621       ,p_line_definition_code       => l_line_definition_code
69622       ,p_accounting_line_code       => l_component_code
69623       ,p_accounting_line_type_code  => l_component_type_code
69624       ,p_accounting_line_appl_id    => l_component_appl_id
69625       ,p_amb_context_code           => l_amb_context_code
69626       ,p_entity_code                => l_entity_code
69627       ,p_event_class_code           => l_event_class_code);
69628    --
69629    -- set accounting class
69630    --
69631    xla_ae_lines_pkg.SetAcctClass(
69632            p_accounting_class_code  => 'NRTAX'
69633          , p_ae_header_id           => l_ae_header_id
69634          );
69635 
69636    --
69637    -- set rounding class
69638    --
69639    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
69640                       'NRTAX';
69641 
69642    --
69643    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
69644    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
69645    --
69646    -- bulk performance
69647    --
69648    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
69649 
69650    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
69651       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
69652 
69653    -- 4955764
69654    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69655       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
69656 
69657    -- 4458381 Public Sector Enh
69658    
69659    --
69660    -- set accounting attributes for the line type
69661    --
69662    l_entered_amt_idx := 25;
69663    l_accted_amt_idx  := 30;
69664    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
69665    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
69666    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
69667    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
69668    l_rec_acct_attrs.array_num_value(2)  := 
69669 xla_ae_sources_pkg.GetSystemSourceNum(
69670    p_source_code           => 'XLA_EVENT_APPL_ID'
69671  , p_source_type_code      => 'Y'
69672  , p_source_application_id =>  602
69673 );
69674    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
69675    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
69676    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
69677    l_rec_acct_attrs.array_char_value(4)  := 
69678 xla_ae_sources_pkg.GetSystemSourceChar(
69679    p_source_code           => 'XLA_ENTITY_CODE'
69680  , p_source_type_code      => 'Y'
69681  , p_source_application_id =>  602
69682 );
69683    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
69684    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
69685    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
69686    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
69690    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
69687    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
69688    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
69689    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
69691    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
69692    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
69693    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
69694    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
69695    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
69696    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
69697    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
69698    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
69699    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
69700    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
69701    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
69702    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
69703    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
69704    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
69705    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
69706    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
69707    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
69708    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
69709    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
69710    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
69711    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
69712    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
69713    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
69714    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
69715    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
69716    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
69717    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
69718    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
69719    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
69720    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
69721    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
69722    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
69723    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
69724    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
69725    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
69726    l_rec_acct_attrs.array_char_value(26)  := p_source_99;
69727    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
69728    l_rec_acct_attrs.array_date_value(27)  := p_source_125;
69729    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
69730    l_rec_acct_attrs.array_num_value(28)  := p_source_126;
69731    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
69732    l_rec_acct_attrs.array_char_value(29)  := p_source_127;
69733    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
69734    l_rec_acct_attrs.array_num_value(30)  := p_source_100;
69735    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
69736    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
69737    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
69738    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
69739    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
69740    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
69741    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
69742    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
69743    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
69744    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
69745    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
69746    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
69747    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
69748    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
69749    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
69750    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
69751    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
69752    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
69753    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
69754    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
69755    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
69756    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
69757    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
69758    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
69759    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
69760    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
69761    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
69762    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
69763 
69764    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69765    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69766 
69767    ---------------------------------------------------------------------------------------------------------------
69768    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69772    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69769    ---------------------------------------------------------------------------------------------------------------
69770    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69771 
69773    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69774 
69775    IF xla_accounting_cache_pkg.GetValueChar
69776          (p_source_code         => 'LEDGER_CATEGORY_CODE'
69777          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69778    AND l_bflow_method_code = 'PRIOR_ENTRY'
69779 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69780    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69781          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
69782        )
69783    THEN
69784          xla_ae_lines_pkg.BflowUpgEntry
69785            (p_business_method_code    => l_bflow_method_code
69786            ,p_business_class_code     => l_bflow_class_code
69787            ,p_balance_type            => l_balance_type_code);
69788    ELSE
69789       NULL;
69790 -- No business flow processing for business flow method of NONE.
69791    END IF;
69792 
69793    --
69794    -- call analytical criteria
69795    --
69796    
69797    --
69798    -- call description
69799    --
69800    -- No description or it is inherited.
69801    --
69802    -- call ADRs
69803    -- Bug 4922099
69804    --
69805    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69806         (NVL(l_actual_upg_option, 'N') = 'O') OR
69807         (NVL(l_enc_upg_option, 'N') = 'O')
69808       )
69809    THEN
69810    NULL;
69811    --
69812    --
69813    
69814   l_ccid := AcctDerRule_35(
69815            p_application_id           => p_application_id
69816          , p_ae_header_id             => l_ae_header_id 
69817 , p_source_48 => p_source_48
69818          , x_transaction_coa_id       => l_adr_transaction_coa_id
69819          , x_accounting_coa_id        => l_adr_accounting_coa_id
69820          , x_value_type_code          => l_adr_value_type_code
69821          , p_side                     => 'NA'
69822    );
69823 
69824    xla_ae_lines_pkg.set_ccid(
69825     p_code_combination_id          => l_ccid
69826   , p_value_type_code              => l_adr_value_type_code
69827   , p_transaction_coa_id           => l_adr_transaction_coa_id
69828   , p_accounting_coa_id            => l_adr_accounting_coa_id
69829   , p_adr_code                     => 'AP_RECP_INV_DIST'
69830   , p_adr_type_code                => 'S'
69831   , p_component_type               => l_component_type
69832   , p_component_code               => l_component_code
69833   , p_component_type_code          => l_component_type_code
69834   , p_component_appl_id            => l_component_appl_id
69835   , p_amb_context_code             => l_amb_context_code
69836   , p_side                         => 'NA'
69837   );
69838 
69839 
69840    --
69841    --
69842    END IF;
69843    --
69844    -- Bug 4922099
69845    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
69846           (NVL(l_enc_upg_option, 'N') = 'O')
69847         ) AND
69848         (l_bflow_method_code = 'PRIOR_ENTRY')
69849       )
69850    THEN
69851       IF
69852       --
69853       1 = 2
69854       --
69855       THEN
69856       xla_accounting_err_pkg.build_message
69857                                     (p_appli_s_name            => 'XLA'
69858                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69859                                     ,p_token_1                 => 'LINE_NUMBER'
69860                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
69861                                     ,p_token_2                 => 'LINE_TYPE_NAME'
69862                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
69863                                                                              l_component_type
69864                                                                             ,l_component_code
69865                                                                             ,l_component_type_code
69866                                                                             ,l_component_appl_id
69867                                                                             ,l_amb_context_code
69868                                                                             ,l_entity_code
69869                                                                             ,l_event_class_code
69870                                                                            )
69871                                     ,p_token_3                 => 'OWNER'
69872                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
69873                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
69874                                                                           ,p_lookup_code    => l_component_type_code
69875                                                                          )
69876                                     ,p_token_4                 => 'PRODUCT_NAME'
69877                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
69881                                     ,p_ae_header_id            =>  NULL
69878                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
69879                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
69880                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
69882                                        );
69883 
69884         IF (C_LEVEL_ERROR>= g_log_level) THEN
69885                  trace
69886                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69887                       ,p_level    => C_LEVEL_ERROR
69888                       ,p_module   => l_log_module);
69889         END IF;
69890       END IF;
69891    END IF;
69892    --
69893    --
69894    ------------------------------------------------------------------------------------------------
69895    -- 4219869 Business Flow
69896    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
69897    -- Prior Entry.  Currently, the following code is always generated.
69898    ------------------------------------------------------------------------------------------------
69899    XLA_AE_LINES_PKG.ValidateCurrentLine;
69900 
69901    ------------------------------------------------------------------------------------
69902    -- 4219869 Business Flow
69903    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69904    ------------------------------------------------------------------------------------
69905    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69906 
69907    ----------------------------------------------------------------------------------
69908    -- 4219869 Business Flow
69909    -- Update journal entry status -- Need to generate this within IF <condition>
69910    ----------------------------------------------------------------------------------
69911    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69912          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69913          ,p_balance_type_code => l_balance_type_code
69914          );
69915 
69916    -------------------------------------------------------------------------------------------
69917    -- 4262811 - Generate the Accrual Reversal lines
69918    -------------------------------------------------------------------------------------------
69919    BEGIN
69920       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69921                               (g_array_event(p_event_id).array_value_num('header_index'));
69922       IF l_acc_rev_flag IS NULL THEN
69923          l_acc_rev_flag := 'N';
69924       END IF;
69925    EXCEPTION
69926       WHEN OTHERS THEN
69927          l_acc_rev_flag := 'N';
69928    END;
69929    --
69930    IF (l_acc_rev_flag = 'Y') THEN
69931 
69932        -- 4645092  ------------------------------------------------------------------------------
69933        -- To allow MPA report to determine if it should generate report process
69934        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69935        ------------------------------------------------------------------------------------------
69936 
69937        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
69938        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
69939    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
69940    -- call ADRs
69941    -- Bug 4922099
69942    --
69943    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69944         (NVL(l_actual_upg_option, 'N') = 'O') OR
69945         (NVL(l_enc_upg_option, 'N') = 'O')
69946       )
69947    THEN
69948    NULL;
69949    --
69950    --
69951    
69952   l_ccid := AcctDerRule_35(
69953            p_application_id           => p_application_id
69954          , p_ae_header_id             => l_ae_header_id 
69955 , p_source_48 => p_source_48
69956          , x_transaction_coa_id       => l_adr_transaction_coa_id
69957          , x_accounting_coa_id        => l_adr_accounting_coa_id
69958          , x_value_type_code          => l_adr_value_type_code
69959          , p_side                     => 'NA'
69960    );
69961 
69962    xla_ae_lines_pkg.set_ccid(
69963     p_code_combination_id          => l_ccid
69964   , p_value_type_code              => l_adr_value_type_code
69965   , p_transaction_coa_id           => l_adr_transaction_coa_id
69966   , p_accounting_coa_id            => l_adr_accounting_coa_id
69967   , p_adr_code                     => 'AP_RECP_INV_DIST'
69968   , p_adr_type_code                => 'S'
69969   , p_component_type               => l_component_type
69970   , p_component_code               => l_component_code
69971   , p_component_type_code          => l_component_type_code
69972   , p_component_appl_id            => l_component_appl_id
69973   , p_amb_context_code             => l_amb_context_code
69974   , p_side                         => 'NA'
69975   );
69976 
69977 
69978    --
69979    --
69980    END IF;
69981 
69982        --
69983        -- Update the line information that should be overwritten
69984        --
69985        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
69986                                          p_header_num   => 1);
69987        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
69988 
69989        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
69990 
69994 
69991        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
69992           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
69993        END IF;
69995       --
69996       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
69997       --
69998       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
69999           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
70000       ELSE
70001           ---------------------------------------------------------------------------------------------------
70002           -- 4262811a Switch Sign
70003           ---------------------------------------------------------------------------------------------------
70004           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
70005           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70006                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70007           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70008                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70009           -- 5132302
70010           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
70011                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70012 
70013       END IF;
70014 
70015       -- 4955764
70016       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70017       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
70018 
70019 
70020       XLA_AE_LINES_PKG.ValidateCurrentLine;
70021       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70022 
70023       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70024                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
70025                ,p_balance_type_code => l_balance_type_code);
70026 
70027    END IF;
70028 
70029    -----------------------------------------------------------------------------------------
70030    -- 4262811 Multiperiod Accounting
70031    -----------------------------------------------------------------------------------------
70032      -- No MPA option is assigned.
70033 
70034 
70035 END IF;
70036 END IF;
70037 --
70038 
70039 --
70040 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70041    trace
70042       (p_msg      => 'END of AcctLineType_128'
70043       ,p_level    => C_LEVEL_PROCEDURE
70044       ,p_module   => l_log_module);
70045 END IF;
70046 --
70047 EXCEPTION
70048   WHEN xla_exceptions_pkg.application_exception THEN
70049       RAISE;
70050   WHEN OTHERS THEN
70051        xla_exceptions_pkg.raise_message
70052            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_128');
70053 END AcctLineType_128;
70054 --
70055 
70056 ---------------------------------------
70057 --
70058 -- PRIVATE FUNCTION
70059 --         AcctLineType_129
70060 --
70061 ---------------------------------------
70062 PROCEDURE AcctLineType_129 (
70063   p_application_id        IN NUMBER
70064  ,p_event_id              IN NUMBER
70065  ,p_calculate_acctd_flag  IN VARCHAR2
70066  ,p_calculate_g_l_flag    IN VARCHAR2
70067  ,p_actual_flag           IN OUT VARCHAR2
70068  ,p_balance_type_code     OUT VARCHAR2
70069  ,p_gain_or_loss_ref      OUT VARCHAR2
70070  
70071 --Recipient Invoice Distribution Account
70072  , p_source_48            IN NUMBER
70073 --When to Account for Payment Option
70074  , p_source_50            IN VARCHAR2
70075 --Accounting Reversal Indicator
70076  , p_source_52            IN VARCHAR2
70077 --Business Flow Accounts Payable Application Identifier
70078  , p_source_54            IN NUMBER
70079 --Distribution Link Type
70080  , p_source_60            IN VARCHAR2
70081 --Override Accounted Amount Indicator
70082  , p_source_64            IN VARCHAR2
70083  , p_source_64_meaning    IN VARCHAR2
70084 --Third Party Type
70085  , p_source_67            IN VARCHAR2
70086 --Invoice Distribution Tax Line Identifier
70087  , p_source_69            IN NUMBER
70088 --Invoice Distribution Summary Tax Line Identifier
70089  , p_source_70            IN NUMBER
70090 --Invoice Distribution Tax Distribution Identifier from Tax
70091  , p_source_77            IN NUMBER
70092 --Prepayment Distribution Type
70093  , p_source_78            IN VARCHAR2
70094 --Recipient Invoice Distribution Type
70095  , p_source_79            IN VARCHAR2
70096  , p_source_79_meaning    IN VARCHAR2
70097 --Prepayment Application Distribution Identifier
70098  , p_source_82            IN NUMBER
70099 --Invoice Identifier
70100  , p_source_83            IN NUMBER
70101 --Business Flow Prepayment Invoice Distribution Type
70102  , p_source_84            IN VARCHAR2
70103 --Business Flow Prepayment Invoice Entity Code
70104  , p_source_85            IN VARCHAR2
70105 --Business Flow Prepayment Invoice Distribution Identifier
70106  , p_source_86            IN NUMBER
70107 --Business Flow Prepayment Invoice Identifier
70108  , p_source_87            IN NUMBER
70109 --Upgrade Encumbrance Credit Account Class
70110  , p_source_88            IN VARCHAR2
70111 --Payables Encumbrance Upgrade Credit Account
70112  , p_source_89            IN NUMBER
70116  , p_source_91            IN VARCHAR2
70113 --Payables Encumbrance Upgrade Credit Amount
70114  , p_source_90            IN NUMBER
70115 --Invoice Currency Code
70117 --Payables Encumbrance Upgrade Credit Base Amount
70118  , p_source_92            IN NUMBER
70119 --Upgrade Encumbrance Debit Account Class
70120  , p_source_93            IN VARCHAR2
70121 --Payables Encumbrance Upgrade Debit Account
70122  , p_source_94            IN NUMBER
70123 --Payables Encumbrance Upgrade Debit Amount
70124  , p_source_95            IN NUMBER
70125 --Payables Encumbrance Upgrade Debit Base Amount
70126  , p_source_96            IN NUMBER
70127 --Payables Encumbrance Upgrade Option
70128  , p_source_97            IN VARCHAR2
70129 --Prepayment Distribution Amount
70130  , p_source_98            IN NUMBER
70131 --Deferred Accounting End Date
70132  , p_source_101            IN DATE
70133 --Deferred Accounting Option
70134  , p_source_102            IN VARCHAR2
70135 --Deferred Accounting Start Date
70136  , p_source_103            IN DATE
70137 --Invoice Supplier Identifier
70138  , p_source_104            IN NUMBER
70139 --Invoice Supplier Site Identifier
70140  , p_source_105            IN NUMBER
70141 --Identifier of the Prepayment Application Reversed
70142  , p_source_106            IN NUMBER
70143 --Payables Upgrade Credit Encumbrance Type Identifier
70144  , p_source_107            IN NUMBER
70145 --Payables Upgrade Debit Encumbrance Type Identifier
70146  , p_source_108            IN NUMBER
70147 --Prepayment Payment Currency Code
70148  , p_source_109            IN VARCHAR2
70149 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
70150  , p_source_110            IN NUMBER
70151 --Accrue on Receipt Option
70152  , p_source_111            IN VARCHAR2
70153  , p_source_111_meaning    IN VARCHAR2
70154 --Prepayment Payment Exchange Date
70155  , p_source_128            IN DATE
70156 --Prepayment Payment Exchange Rate
70157  , p_source_129            IN NUMBER
70158 --Prepayment Payment Exchange Rate Type
70159  , p_source_130            IN VARCHAR2
70160 )
70161 IS
70162 
70163 l_component_type              VARCHAR2(80);
70164 l_component_code              VARCHAR2(30);
70165 l_component_type_code         VARCHAR2(1);
70166 l_component_appl_id           INTEGER;
70167 l_amb_context_code            VARCHAR2(30);
70168 l_entity_code                 VARCHAR2(30);
70169 l_event_class_code            VARCHAR2(30);
70170 l_ae_header_id                NUMBER;
70171 l_event_type_code             VARCHAR2(30);
70172 l_line_definition_code        VARCHAR2(30);
70173 l_line_definition_owner_code  VARCHAR2(1);
70174 --
70175 -- adr variables
70176 l_segment                     VARCHAR2(30);
70177 l_ccid                        NUMBER;
70178 l_adr_transaction_coa_id      NUMBER;
70179 l_adr_accounting_coa_id       NUMBER;
70180 l_adr_flexfield_segment_code  VARCHAR2(30);
70181 l_adr_flex_value_set_id       NUMBER;
70182 l_adr_value_type_code         VARCHAR2(30);
70183 l_adr_value_combination_id    NUMBER;
70184 l_adr_value_segment_code      VARCHAR2(30);
70185 
70186 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
70187 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
70188 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
70189 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
70190 
70191 -- 4262811 Variables ------------------------------------------------------------------------------------------
70192 l_entered_amt_idx             NUMBER;
70193 l_accted_amt_idx              NUMBER;
70194 l_acc_rev_flag                VARCHAR2(1);
70195 l_accrual_line_num            NUMBER;
70196 l_tmp_amt                     NUMBER;
70197 l_acc_rev_natural_side_code   VARCHAR2(1);
70198 
70199 l_num_entries                 NUMBER;
70200 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
70201 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
70202 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
70203 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
70204 l_recog_line_1                NUMBER;
70205 l_recog_line_2                NUMBER;
70206 
70207 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
70208 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
70209 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
70210 
70211 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70212 
70213 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
70214 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
70215 
70216 ---------------------------------------------------------------------------------------------------------------
70217 
70218 
70219 --
70220 -- bulk performance
70221 --
70222 l_balance_type_code           VARCHAR2(1);
70223 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
70224 l_log_module                  VARCHAR2(240);
70225 
70226 --
70227 -- Upgrade strategy
70228 --
70229 l_actual_upg_option           VARCHAR2(1);
70230 l_enc_upg_option           VARCHAR2(1);
70231 
70232 --
70233 BEGIN
70234 --
70235 IF g_log_enabled THEN
70236       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_129';
70237 END IF;
70238 --
70239 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70243          ,p_level    => C_LEVEL_PROCEDURE
70240 
70241       trace
70242          (p_msg      => 'BEGIN of AcctLineType_129'
70244          ,p_module   => l_log_module);
70245 
70246 END IF;
70247 --
70248 l_component_type             := 'AMB_JLT';
70249 l_component_code             := 'AP_NRTAX_PREPAY_PAY_RATE_APP';
70250 l_component_type_code        := 'S';
70251 l_component_appl_id          :=  200;
70252 l_amb_context_code           := 'DEFAULT';
70253 l_entity_code                := 'AP_INVOICES';
70254 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
70255 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
70256 l_line_definition_owner_code := 'S';
70257 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
70258 --
70259 l_balance_type_code          := 'A';
70260 l_segment                     := NULL;
70261 l_ccid                        := NULL;
70262 l_adr_transaction_coa_id      := NULL;
70263 l_adr_accounting_coa_id       := NULL;
70264 l_adr_flexfield_segment_code  := NULL;
70265 l_adr_flex_value_set_id       := NULL;
70266 l_adr_value_type_code         := NULL;
70267 l_adr_value_combination_id    := NULL;
70268 l_adr_value_segment_code      := NULL;
70269 
70270 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
70271 l_bflow_class_code           := '';    -- 4219869 Business Flow
70272 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
70273 l_budgetary_control_flag     := 'N';
70274 
70275 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
70276 l_bflow_applied_to_amt       := NULL; -- 5132302
70277 l_entered_amt_idx            := NULL;          -- 4262811
70278 l_accted_amt_idx             := NULL;          -- 4262811
70279 l_acc_rev_flag               := NULL;          -- 4262811
70280 l_accrual_line_num           := NULL;          -- 4262811
70281 l_tmp_amt                    := NULL;          -- 4262811
70282 --
70283  
70284 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70285     l_balance_type_code <> 'B' THEN
70286 IF NVL(p_source_50,'
70287 ') <>  'CLEAR_CLEAR' AND 
70288 (NVL(p_source_78,'
70289 ') =  'PREPAY APPL' OR 
70290 NVL(p_source_78,'
70291 ') =  'PREPAY APPL NONREC TAX' OR 
70292 NVL(p_source_78,'
70293 ') =  'PREPAY APPL REC TAX') AND 
70294 (NVL(p_source_79,'
70295 ') =  'NONREC_TAX' OR 
70296 NVL(p_source_79,'
70297 ') =  'TERV') AND 
70298 NVL(p_source_111,'
70299 ') <>  'Y'
70300  THEN 
70301 
70302    --
70303    XLA_AE_LINES_PKG.SetNewLine;
70304 
70305    p_balance_type_code          := l_balance_type_code;
70306    -- set the flag so later we will know whether the gain loss line needs to be created
70307    
70308    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
70309      p_actual_flag :='A';
70310    END IF;
70311 
70312    --
70313    -- bulk performance
70314    --
70315    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70316                                       p_header_num   => 0); -- 4262811
70317    --
70318    -- set accounting line options
70319    --
70320    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70321            p_natural_side_code          => 'C'
70322          , p_gain_or_loss_flag          => 'N'
70323          , p_gl_transfer_mode_code      => 'S'
70324          , p_acct_entry_type_code       => 'A'
70325          , p_switch_side_flag           => 'Y'
70326          , p_merge_duplicate_code       => 'A'
70327          );
70328    --
70329    l_acc_rev_natural_side_code := 'D';  -- 4262811
70330    -- 
70331    --
70332    -- set accounting line type info
70333    --
70334    xla_ae_lines_pkg.SetAcctLineType
70335       (p_component_type             => l_component_type
70336       ,p_event_type_code            => l_event_type_code
70337       ,p_line_definition_owner_code => l_line_definition_owner_code
70338       ,p_line_definition_code       => l_line_definition_code
70339       ,p_accounting_line_code       => l_component_code
70340       ,p_accounting_line_type_code  => l_component_type_code
70341       ,p_accounting_line_appl_id    => l_component_appl_id
70342       ,p_amb_context_code           => l_amb_context_code
70343       ,p_entity_code                => l_entity_code
70344       ,p_event_class_code           => l_event_class_code);
70345    --
70346    -- set accounting class
70347    --
70348    xla_ae_lines_pkg.SetAcctClass(
70349            p_accounting_class_code  => 'NRTAX'
70350          , p_ae_header_id           => l_ae_header_id
70351          );
70352 
70353    --
70354    -- set rounding class
70355    --
70356    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
70357                       'NRTAX';
70358 
70359    --
70360    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
70361    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
70362    --
70363    -- bulk performance
70364    --
70365    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
70366 
70367    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
70368       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
70369 
70370    -- 4955764
70371    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70375    
70372       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
70373 
70374    -- 4458381 Public Sector Enh
70376    --
70377    -- set accounting attributes for the line type
70378    --
70379    l_entered_amt_idx := 25;
70380    l_accted_amt_idx  := 30;
70381    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
70382    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
70383    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
70384    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
70385    l_rec_acct_attrs.array_num_value(2)  := 
70386 xla_ae_sources_pkg.GetSystemSourceNum(
70387    p_source_code           => 'XLA_EVENT_APPL_ID'
70388  , p_source_type_code      => 'Y'
70389  , p_source_application_id =>  602
70390 );
70391    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
70392    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
70393    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
70394    l_rec_acct_attrs.array_char_value(4)  := 
70395 xla_ae_sources_pkg.GetSystemSourceChar(
70396    p_source_code           => 'XLA_ENTITY_CODE'
70397  , p_source_type_code      => 'Y'
70398  , p_source_application_id =>  602
70399 );
70400    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
70401    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
70402    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
70403    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
70404    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
70405    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
70406    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
70407    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
70408    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
70409    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
70410    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
70411    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
70412    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
70413    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
70414    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
70415    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
70416    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
70417    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
70418    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
70419    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
70420    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
70421    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
70422    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
70423    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
70424    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
70425    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
70426    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
70427    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
70428    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
70429    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
70430    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
70431    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
70432    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
70433    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
70434    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
70435    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
70436    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
70437    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
70438    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
70439    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
70440    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
70441    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
70442    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
70443    l_rec_acct_attrs.array_char_value(26)  := p_source_109;
70444    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
70445    l_rec_acct_attrs.array_date_value(27)  := p_source_128;
70446    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
70447    l_rec_acct_attrs.array_num_value(28)  := p_source_129;
70448    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
70449    l_rec_acct_attrs.array_char_value(29)  := p_source_130;
70450    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
70451    l_rec_acct_attrs.array_num_value(30)  := p_source_110;
70452    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
70453    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
70454    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
70455    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
70456    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
70457    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
70458    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
70459    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
70460    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
70461    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
70465    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
70462    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
70463    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
70464    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
70466    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
70467    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
70468    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
70469    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
70470    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
70471    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
70472    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
70473    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
70474    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
70475    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
70476    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
70477    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
70478    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
70479    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
70480 
70481    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
70482    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
70483 
70484    ---------------------------------------------------------------------------------------------------------------
70485    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
70486    ---------------------------------------------------------------------------------------------------------------
70487    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
70488 
70489    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70490    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70491 
70492    IF xla_accounting_cache_pkg.GetValueChar
70493          (p_source_code         => 'LEDGER_CATEGORY_CODE'
70494          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
70495    AND l_bflow_method_code = 'PRIOR_ENTRY'
70496 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
70497    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
70498          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
70499        )
70500    THEN
70501          xla_ae_lines_pkg.BflowUpgEntry
70502            (p_business_method_code    => l_bflow_method_code
70503            ,p_business_class_code     => l_bflow_class_code
70504            ,p_balance_type            => l_balance_type_code);
70505    ELSE
70506       NULL;
70507 -- No business flow processing for business flow method of NONE.
70508    END IF;
70509 
70510    --
70511    -- call analytical criteria
70512    --
70513    
70514    --
70515    -- call description
70516    --
70517    -- No description or it is inherited.
70518    --
70519    -- call ADRs
70520    -- Bug 4922099
70521    --
70522    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70523         (NVL(l_actual_upg_option, 'N') = 'O') OR
70524         (NVL(l_enc_upg_option, 'N') = 'O')
70525       )
70526    THEN
70527    NULL;
70528    --
70529    --
70530    
70531   l_ccid := AcctDerRule_35(
70532            p_application_id           => p_application_id
70533          , p_ae_header_id             => l_ae_header_id 
70534 , p_source_48 => p_source_48
70535          , x_transaction_coa_id       => l_adr_transaction_coa_id
70536          , x_accounting_coa_id        => l_adr_accounting_coa_id
70537          , x_value_type_code          => l_adr_value_type_code
70538          , p_side                     => 'NA'
70539    );
70540 
70541    xla_ae_lines_pkg.set_ccid(
70542     p_code_combination_id          => l_ccid
70543   , p_value_type_code              => l_adr_value_type_code
70544   , p_transaction_coa_id           => l_adr_transaction_coa_id
70545   , p_accounting_coa_id            => l_adr_accounting_coa_id
70546   , p_adr_code                     => 'AP_RECP_INV_DIST'
70547   , p_adr_type_code                => 'S'
70548   , p_component_type               => l_component_type
70549   , p_component_code               => l_component_code
70550   , p_component_type_code          => l_component_type_code
70551   , p_component_appl_id            => l_component_appl_id
70552   , p_amb_context_code             => l_amb_context_code
70553   , p_side                         => 'NA'
70554   );
70555 
70556 
70557    --
70558    --
70559    END IF;
70560    --
70561    -- Bug 4922099
70562    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
70563           (NVL(l_enc_upg_option, 'N') = 'O')
70564         ) AND
70565         (l_bflow_method_code = 'PRIOR_ENTRY')
70566       )
70567    THEN
70568       IF
70569       --
70570       1 = 2
70571       --
70572       THEN
70573       xla_accounting_err_pkg.build_message
70574                                     (p_appli_s_name            => 'XLA'
70575                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70576                                     ,p_token_1                 => 'LINE_NUMBER'
70580                                                                              l_component_type
70577                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
70578                                     ,p_token_2                 => 'LINE_TYPE_NAME'
70579                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
70581                                                                             ,l_component_code
70582                                                                             ,l_component_type_code
70583                                                                             ,l_component_appl_id
70584                                                                             ,l_amb_context_code
70585                                                                             ,l_entity_code
70586                                                                             ,l_event_class_code
70587                                                                            )
70588                                     ,p_token_3                 => 'OWNER'
70589                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
70590                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
70591                                                                           ,p_lookup_code    => l_component_type_code
70592                                                                          )
70593                                     ,p_token_4                 => 'PRODUCT_NAME'
70594                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
70595                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
70596                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
70597                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
70598                                     ,p_ae_header_id            =>  NULL
70599                                        );
70600 
70601         IF (C_LEVEL_ERROR>= g_log_level) THEN
70602                  trace
70603                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70604                       ,p_level    => C_LEVEL_ERROR
70605                       ,p_module   => l_log_module);
70606         END IF;
70607       END IF;
70608    END IF;
70609    --
70610    --
70611    ------------------------------------------------------------------------------------------------
70612    -- 4219869 Business Flow
70613    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
70614    -- Prior Entry.  Currently, the following code is always generated.
70615    ------------------------------------------------------------------------------------------------
70616    XLA_AE_LINES_PKG.ValidateCurrentLine;
70617 
70618    ------------------------------------------------------------------------------------
70619    -- 4219869 Business Flow
70620    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
70621    ------------------------------------------------------------------------------------
70622    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70623 
70624    ----------------------------------------------------------------------------------
70625    -- 4219869 Business Flow
70626    -- Update journal entry status -- Need to generate this within IF <condition>
70627    ----------------------------------------------------------------------------------
70628    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70629          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
70630          ,p_balance_type_code => l_balance_type_code
70631          );
70632 
70633    -------------------------------------------------------------------------------------------
70634    -- 4262811 - Generate the Accrual Reversal lines
70635    -------------------------------------------------------------------------------------------
70636    BEGIN
70637       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
70638                               (g_array_event(p_event_id).array_value_num('header_index'));
70639       IF l_acc_rev_flag IS NULL THEN
70640          l_acc_rev_flag := 'N';
70641       END IF;
70642    EXCEPTION
70643       WHEN OTHERS THEN
70644          l_acc_rev_flag := 'N';
70645    END;
70646    --
70647    IF (l_acc_rev_flag = 'Y') THEN
70648 
70649        -- 4645092  ------------------------------------------------------------------------------
70650        -- To allow MPA report to determine if it should generate report process
70651        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
70652        ------------------------------------------------------------------------------------------
70653 
70654        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
70655        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
70656    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
70657    -- call ADRs
70658    -- Bug 4922099
70659    --
70660    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70661         (NVL(l_actual_upg_option, 'N') = 'O') OR
70662         (NVL(l_enc_upg_option, 'N') = 'O')
70663       )
70664    THEN
70665    NULL;
70666    --
70667    --
70668    
70669   l_ccid := AcctDerRule_35(
70670            p_application_id           => p_application_id
70671          , p_ae_header_id             => l_ae_header_id 
70672 , p_source_48 => p_source_48
70676          , p_side                     => 'NA'
70673          , x_transaction_coa_id       => l_adr_transaction_coa_id
70674          , x_accounting_coa_id        => l_adr_accounting_coa_id
70675          , x_value_type_code          => l_adr_value_type_code
70677    );
70678 
70679    xla_ae_lines_pkg.set_ccid(
70680     p_code_combination_id          => l_ccid
70681   , p_value_type_code              => l_adr_value_type_code
70682   , p_transaction_coa_id           => l_adr_transaction_coa_id
70683   , p_accounting_coa_id            => l_adr_accounting_coa_id
70684   , p_adr_code                     => 'AP_RECP_INV_DIST'
70685   , p_adr_type_code                => 'S'
70686   , p_component_type               => l_component_type
70687   , p_component_code               => l_component_code
70688   , p_component_type_code          => l_component_type_code
70689   , p_component_appl_id            => l_component_appl_id
70690   , p_amb_context_code             => l_amb_context_code
70691   , p_side                         => 'NA'
70692   );
70693 
70694 
70695    --
70696    --
70697    END IF;
70698 
70699        --
70700        -- Update the line information that should be overwritten
70701        --
70702        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
70703                                          p_header_num   => 1);
70704        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
70705 
70706        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
70707 
70708        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
70709           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
70710        END IF;
70711 
70712       --
70713       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
70714       --
70715       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
70716           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
70717       ELSE
70718           ---------------------------------------------------------------------------------------------------
70719           -- 4262811a Switch Sign
70720           ---------------------------------------------------------------------------------------------------
70721           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
70722           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70723                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70724           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70725                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70726           -- 5132302
70727           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
70728                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70729 
70730       END IF;
70731 
70732       -- 4955764
70733       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70734       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
70735 
70736 
70737       XLA_AE_LINES_PKG.ValidateCurrentLine;
70738       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70739 
70740       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70741                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
70742                ,p_balance_type_code => l_balance_type_code);
70743 
70744    END IF;
70745 
70746    -----------------------------------------------------------------------------------------
70747    -- 4262811 Multiperiod Accounting
70748    -----------------------------------------------------------------------------------------
70749      -- No MPA option is assigned.
70750 
70751 
70752 END IF;
70753 END IF;
70754 --
70755 
70756 --
70757 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70758    trace
70759       (p_msg      => 'END of AcctLineType_129'
70760       ,p_level    => C_LEVEL_PROCEDURE
70761       ,p_module   => l_log_module);
70762 END IF;
70763 --
70764 EXCEPTION
70765   WHEN xla_exceptions_pkg.application_exception THEN
70766       RAISE;
70767   WHEN OTHERS THEN
70768        xla_exceptions_pkg.raise_message
70769            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_129');
70770 END AcctLineType_129;
70771 --
70772 
70773 ---------------------------------------
70774 --
70775 -- PRIVATE FUNCTION
70776 --         AcctLineType_130
70777 --
70778 ---------------------------------------
70779 PROCEDURE AcctLineType_130 (
70780   p_application_id        IN NUMBER
70781  ,p_event_id              IN NUMBER
70782  ,p_calculate_acctd_flag  IN VARCHAR2
70783  ,p_calculate_g_l_flag    IN VARCHAR2
70784  ,p_actual_flag           IN OUT VARCHAR2
70785  ,p_balance_type_code     OUT VARCHAR2
70786  ,p_gain_or_loss_ref      OUT VARCHAR2
70787  
70788 --Payment Currency Code
70789  , p_source_12            IN VARCHAR2
70790 --Payment Distribution (Payment Rate) Ledger Amount
70791  , p_source_21            IN NUMBER
70792 --Payment Card Accrued Account
70793  , p_source_43            IN NUMBER
70794 --Accounting Reversal Indicator
70798 --Business Flow Accounts Payable Application Identifier
70795  , p_source_52            IN VARCHAR2
70796 --Payment Distribution Amount
70797  , p_source_53            IN NUMBER
70799  , p_source_54            IN NUMBER
70800 --Payment Distribution Identifier
70801  , p_source_59            IN NUMBER
70802 --Distribution Link Type
70803  , p_source_60            IN VARCHAR2
70804 --Override Accounted Amount Indicator
70805  , p_source_64            IN VARCHAR2
70806  , p_source_64_meaning    IN VARCHAR2
70807 --Payment Supplier Identifier
70808  , p_source_65            IN NUMBER
70809 --Payment Supplier Site Identifier
70810  , p_source_66            IN NUMBER
70811 --Third Party Type
70812  , p_source_67            IN VARCHAR2
70813 --Payment Distribution Reversed Identifier
70814  , p_source_68            IN NUMBER
70815 --Invoice Distribution Tax Line Identifier
70816  , p_source_69            IN NUMBER
70817 --Invoice Distribution Summary Tax Line Identifier
70818  , p_source_70            IN NUMBER
70819 --Invoice Distribution Amount of the Payment Distribution
70820  , p_source_72            IN NUMBER
70821 --Business Flow Invoice Distribution Type
70822  , p_source_73            IN VARCHAR2
70823 --Business Flow Invoice Entity Code
70824  , p_source_74            IN VARCHAR2
70825 --Business Flow Invoice Distribution Identifier
70826  , p_source_75            IN NUMBER
70827 --Business Flow Invoice Identifier
70828  , p_source_76            IN NUMBER
70829 --Invoice Distribution Tax Distribution Identifier from Tax
70830  , p_source_77            IN NUMBER
70831 --Payment Processing Type
70832  , p_source_120            IN VARCHAR2
70833 --Payment Exchange Date
70834  , p_source_121            IN DATE
70835 --Payment Exchange Rate
70836  , p_source_122            IN NUMBER
70837 --Payment Exchange Rate Type
70838  , p_source_123            IN VARCHAR2
70839 )
70840 IS
70841 
70842 l_component_type              VARCHAR2(80);
70843 l_component_code              VARCHAR2(30);
70844 l_component_type_code         VARCHAR2(1);
70845 l_component_appl_id           INTEGER;
70846 l_amb_context_code            VARCHAR2(30);
70847 l_entity_code                 VARCHAR2(30);
70848 l_event_class_code            VARCHAR2(30);
70849 l_ae_header_id                NUMBER;
70850 l_event_type_code             VARCHAR2(30);
70851 l_line_definition_code        VARCHAR2(30);
70852 l_line_definition_owner_code  VARCHAR2(1);
70853 --
70854 -- adr variables
70855 l_segment                     VARCHAR2(30);
70856 l_ccid                        NUMBER;
70857 l_adr_transaction_coa_id      NUMBER;
70858 l_adr_accounting_coa_id       NUMBER;
70859 l_adr_flexfield_segment_code  VARCHAR2(30);
70860 l_adr_flex_value_set_id       NUMBER;
70861 l_adr_value_type_code         VARCHAR2(30);
70862 l_adr_value_combination_id    NUMBER;
70863 l_adr_value_segment_code      VARCHAR2(30);
70864 
70865 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
70866 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
70867 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
70868 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
70869 
70870 -- 4262811 Variables ------------------------------------------------------------------------------------------
70871 l_entered_amt_idx             NUMBER;
70872 l_accted_amt_idx              NUMBER;
70873 l_acc_rev_flag                VARCHAR2(1);
70874 l_accrual_line_num            NUMBER;
70875 l_tmp_amt                     NUMBER;
70876 l_acc_rev_natural_side_code   VARCHAR2(1);
70877 
70878 l_num_entries                 NUMBER;
70879 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
70880 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
70881 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
70882 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
70883 l_recog_line_1                NUMBER;
70884 l_recog_line_2                NUMBER;
70885 
70886 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
70887 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
70888 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
70889 
70890 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70891 
70892 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
70893 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
70894 
70895 ---------------------------------------------------------------------------------------------------------------
70896 
70897 
70898 --
70899 -- bulk performance
70900 --
70901 l_balance_type_code           VARCHAR2(1);
70902 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
70903 l_log_module                  VARCHAR2(240);
70904 
70905 --
70906 -- Upgrade strategy
70907 --
70908 l_actual_upg_option           VARCHAR2(1);
70909 l_enc_upg_option           VARCHAR2(1);
70910 
70911 --
70912 BEGIN
70913 --
70914 IF g_log_enabled THEN
70915       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_130';
70916 END IF;
70917 --
70918 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70919 
70920       trace
70921          (p_msg      => 'BEGIN of AcctLineType_130'
70922          ,p_level    => C_LEVEL_PROCEDURE
70926 --
70923          ,p_module   => l_log_module);
70924 
70925 END IF;
70927 l_component_type             := 'AMB_JLT';
70928 l_component_code             := 'AP_PAYCARD_PMT';
70929 l_component_type_code        := 'S';
70930 l_component_appl_id          :=  200;
70931 l_amb_context_code           := 'DEFAULT';
70932 l_entity_code                := 'AP_PAYMENTS';
70933 l_event_class_code           := 'PAYMENTS';
70934 l_event_type_code            := 'PAYMENTS_ALL';
70935 l_line_definition_owner_code := 'S';
70936 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
70937 --
70938 l_balance_type_code          := 'A';
70939 l_segment                     := NULL;
70940 l_ccid                        := NULL;
70941 l_adr_transaction_coa_id      := NULL;
70942 l_adr_accounting_coa_id       := NULL;
70943 l_adr_flexfield_segment_code  := NULL;
70944 l_adr_flex_value_set_id       := NULL;
70945 l_adr_value_type_code         := NULL;
70946 l_adr_value_combination_id    := NULL;
70947 l_adr_value_segment_code      := NULL;
70948 
70949 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
70950 l_bflow_class_code           := '';    -- 4219869 Business Flow
70951 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
70952 l_budgetary_control_flag     := 'N';
70953 
70954 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
70955 l_bflow_applied_to_amt       := NULL; -- 5132302
70956 l_entered_amt_idx            := NULL;          -- 4262811
70957 l_accted_amt_idx             := NULL;          -- 4262811
70958 l_acc_rev_flag               := NULL;          -- 4262811
70959 l_accrual_line_num           := NULL;          -- 4262811
70960 l_tmp_amt                    := NULL;          -- 4262811
70961 --
70962  
70963 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70964     l_balance_type_code <> 'B' THEN
70965 IF NVL(p_source_120,'
70966 ') =  'PAYMENTCARD'
70967  THEN 
70968 
70969    --
70970    XLA_AE_LINES_PKG.SetNewLine;
70971 
70972    p_balance_type_code          := l_balance_type_code;
70973    -- set the flag so later we will know whether the gain loss line needs to be created
70974    
70975    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
70976      p_actual_flag :='A';
70977    END IF;
70978 
70979    --
70980    -- bulk performance
70981    --
70982    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70983                                       p_header_num   => 0); -- 4262811
70984    --
70985    -- set accounting line options
70986    --
70987    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70988            p_natural_side_code          => 'C'
70989          , p_gain_or_loss_flag          => 'N'
70990          , p_gl_transfer_mode_code      => 'S'
70991          , p_acct_entry_type_code       => 'A'
70992          , p_switch_side_flag           => 'Y'
70993          , p_merge_duplicate_code       => 'A'
70994          );
70995    --
70996    l_acc_rev_natural_side_code := 'D';  -- 4262811
70997    -- 
70998    --
70999    -- set accounting line type info
71000    --
71001    xla_ae_lines_pkg.SetAcctLineType
71002       (p_component_type             => l_component_type
71003       ,p_event_type_code            => l_event_type_code
71004       ,p_line_definition_owner_code => l_line_definition_owner_code
71005       ,p_line_definition_code       => l_line_definition_code
71006       ,p_accounting_line_code       => l_component_code
71007       ,p_accounting_line_type_code  => l_component_type_code
71008       ,p_accounting_line_appl_id    => l_component_appl_id
71009       ,p_amb_context_code           => l_amb_context_code
71010       ,p_entity_code                => l_entity_code
71011       ,p_event_class_code           => l_event_class_code);
71012    --
71013    -- set accounting class
71014    --
71015    xla_ae_lines_pkg.SetAcctClass(
71016            p_accounting_class_code  => 'PAYMENTCARD'
71017          , p_ae_header_id           => l_ae_header_id
71018          );
71019 
71020    --
71021    -- set rounding class
71022    --
71023    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
71024                       'PAYMENTCARD';
71025 
71026    --
71027    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
71028    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
71029    --
71030    -- bulk performance
71031    --
71032    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
71033 
71034    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
71035       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
71036 
71037    -- 4955764
71038    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71039       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
71040 
71041    -- 4458381 Public Sector Enh
71042    
71043    --
71044    -- set accounting attributes for the line type
71045    --
71046    l_entered_amt_idx := 10;
71047    l_accted_amt_idx  := 15;
71048    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
71049    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
71050    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
71051    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
71055    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
71052    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
71053    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
71054    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
71056    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
71057    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
71058    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
71059    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
71060    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
71061    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
71062    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
71063    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
71064    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
71065    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
71066    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
71067    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
71068    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
71069    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
71070    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
71071    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
71072    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
71073    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
71074    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
71075    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
71076    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
71077    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
71078    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
71079    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
71080    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
71081    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
71082    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
71083    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
71084    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
71085    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
71086    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
71087    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
71088    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
71089    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
71090    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
71091    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
71092    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
71093    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
71094    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
71095    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
71096    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
71097 
71098    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
71099    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
71100 
71101    ---------------------------------------------------------------------------------------------------------------
71102    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
71103    ---------------------------------------------------------------------------------------------------------------
71104    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
71105 
71106    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71107    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71108 
71109    IF xla_accounting_cache_pkg.GetValueChar
71110          (p_source_code         => 'LEDGER_CATEGORY_CODE'
71111          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
71112    AND l_bflow_method_code = 'PRIOR_ENTRY'
71113 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
71114    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
71115          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
71116        )
71117    THEN
71118          xla_ae_lines_pkg.BflowUpgEntry
71119            (p_business_method_code    => l_bflow_method_code
71120            ,p_business_class_code     => l_bflow_class_code
71121            ,p_balance_type            => l_balance_type_code);
71122    ELSE
71123       NULL;
71124 -- No business flow processing for business flow method of NONE.
71125    END IF;
71126 
71127    --
71128    -- call analytical criteria
71129    --
71130    
71131    --
71132    -- call description
71133    --
71134    -- No description or it is inherited.
71135    --
71136    -- call ADRs
71137    -- Bug 4922099
71138    --
71139    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71140         (NVL(l_actual_upg_option, 'N') = 'O') OR
71141         (NVL(l_enc_upg_option, 'N') = 'O')
71142       )
71143    THEN
71144    NULL;
71145    --
71146    --
71147    
71148   l_ccid := AcctDerRule_29(
71149            p_application_id           => p_application_id
71150          , p_ae_header_id             => l_ae_header_id 
71151 , p_source_43 => p_source_43
71155          , p_side                     => 'NA'
71152          , x_transaction_coa_id       => l_adr_transaction_coa_id
71153          , x_accounting_coa_id        => l_adr_accounting_coa_id
71154          , x_value_type_code          => l_adr_value_type_code
71156    );
71157 
71158    xla_ae_lines_pkg.set_ccid(
71159     p_code_combination_id          => l_ccid
71160   , p_value_type_code              => l_adr_value_type_code
71161   , p_transaction_coa_id           => l_adr_transaction_coa_id
71162   , p_accounting_coa_id            => l_adr_accounting_coa_id
71163   , p_adr_code                     => 'AP_PAYCARD_ACCRUED_ADR'
71164   , p_adr_type_code                => 'S'
71165   , p_component_type               => l_component_type
71166   , p_component_code               => l_component_code
71167   , p_component_type_code          => l_component_type_code
71168   , p_component_appl_id            => l_component_appl_id
71169   , p_amb_context_code             => l_amb_context_code
71170   , p_side                         => 'NA'
71171   );
71172 
71173 
71174    --
71175    --
71176    END IF;
71177    --
71178    -- Bug 4922099
71179    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
71180           (NVL(l_enc_upg_option, 'N') = 'O')
71181         ) AND
71182         (l_bflow_method_code = 'PRIOR_ENTRY')
71183       )
71184    THEN
71185       IF
71186       --
71187       1 = 2
71188       --
71189       THEN
71190       xla_accounting_err_pkg.build_message
71191                                     (p_appli_s_name            => 'XLA'
71192                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71193                                     ,p_token_1                 => 'LINE_NUMBER'
71194                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
71195                                     ,p_token_2                 => 'LINE_TYPE_NAME'
71196                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
71197                                                                              l_component_type
71198                                                                             ,l_component_code
71199                                                                             ,l_component_type_code
71200                                                                             ,l_component_appl_id
71201                                                                             ,l_amb_context_code
71202                                                                             ,l_entity_code
71203                                                                             ,l_event_class_code
71204                                                                            )
71205                                     ,p_token_3                 => 'OWNER'
71206                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
71207                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
71208                                                                           ,p_lookup_code    => l_component_type_code
71209                                                                          )
71210                                     ,p_token_4                 => 'PRODUCT_NAME'
71211                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71212                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71213                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71214                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71215                                     ,p_ae_header_id            =>  NULL
71216                                        );
71217 
71218         IF (C_LEVEL_ERROR>= g_log_level) THEN
71219                  trace
71220                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71221                       ,p_level    => C_LEVEL_ERROR
71222                       ,p_module   => l_log_module);
71223         END IF;
71224       END IF;
71225    END IF;
71226    --
71227    --
71228    ------------------------------------------------------------------------------------------------
71229    -- 4219869 Business Flow
71230    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71231    -- Prior Entry.  Currently, the following code is always generated.
71232    ------------------------------------------------------------------------------------------------
71233    XLA_AE_LINES_PKG.ValidateCurrentLine;
71234 
71235    ------------------------------------------------------------------------------------
71236    -- 4219869 Business Flow
71237    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71238    ------------------------------------------------------------------------------------
71239    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71240 
71241    ----------------------------------------------------------------------------------
71242    -- 4219869 Business Flow
71243    -- Update journal entry status -- Need to generate this within IF <condition>
71244    ----------------------------------------------------------------------------------
71245    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71246          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71250    -------------------------------------------------------------------------------------------
71247          ,p_balance_type_code => l_balance_type_code
71248          );
71249 
71251    -- 4262811 - Generate the Accrual Reversal lines
71252    -------------------------------------------------------------------------------------------
71253    BEGIN
71254       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71255                               (g_array_event(p_event_id).array_value_num('header_index'));
71256       IF l_acc_rev_flag IS NULL THEN
71257          l_acc_rev_flag := 'N';
71258       END IF;
71259    EXCEPTION
71260       WHEN OTHERS THEN
71261          l_acc_rev_flag := 'N';
71262    END;
71263    --
71264    IF (l_acc_rev_flag = 'Y') THEN
71265 
71266        -- 4645092  ------------------------------------------------------------------------------
71267        -- To allow MPA report to determine if it should generate report process
71268        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71269        ------------------------------------------------------------------------------------------
71270 
71271        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71272        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71273    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
71274    -- call ADRs
71275    -- Bug 4922099
71276    --
71277    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71278         (NVL(l_actual_upg_option, 'N') = 'O') OR
71279         (NVL(l_enc_upg_option, 'N') = 'O')
71280       )
71281    THEN
71282    NULL;
71283    --
71284    --
71285    
71286   l_ccid := AcctDerRule_29(
71287            p_application_id           => p_application_id
71288          , p_ae_header_id             => l_ae_header_id 
71289 , p_source_43 => p_source_43
71290          , x_transaction_coa_id       => l_adr_transaction_coa_id
71291          , x_accounting_coa_id        => l_adr_accounting_coa_id
71292          , x_value_type_code          => l_adr_value_type_code
71293          , p_side                     => 'NA'
71294    );
71295 
71296    xla_ae_lines_pkg.set_ccid(
71297     p_code_combination_id          => l_ccid
71298   , p_value_type_code              => l_adr_value_type_code
71299   , p_transaction_coa_id           => l_adr_transaction_coa_id
71300   , p_accounting_coa_id            => l_adr_accounting_coa_id
71301   , p_adr_code                     => 'AP_PAYCARD_ACCRUED_ADR'
71302   , p_adr_type_code                => 'S'
71303   , p_component_type               => l_component_type
71304   , p_component_code               => l_component_code
71305   , p_component_type_code          => l_component_type_code
71306   , p_component_appl_id            => l_component_appl_id
71307   , p_amb_context_code             => l_amb_context_code
71308   , p_side                         => 'NA'
71309   );
71310 
71311 
71312    --
71313    --
71314    END IF;
71315 
71316        --
71317        -- Update the line information that should be overwritten
71318        --
71319        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
71320                                          p_header_num   => 1);
71321        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
71322 
71323        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
71324 
71325        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
71326           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
71327        END IF;
71328 
71329       --
71330       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
71331       --
71332       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
71333           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
71334       ELSE
71335           ---------------------------------------------------------------------------------------------------
71336           -- 4262811a Switch Sign
71337           ---------------------------------------------------------------------------------------------------
71338           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
71339           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71340                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71341           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71342                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71343           -- 5132302
71344           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
71345                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71346 
71347       END IF;
71348 
71349       -- 4955764
71350       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71351       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
71352 
71353 
71354       XLA_AE_LINES_PKG.ValidateCurrentLine;
71355       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71356 
71357       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71361    END IF;
71358                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
71359                ,p_balance_type_code => l_balance_type_code);
71360 
71362 
71363    -----------------------------------------------------------------------------------------
71364    -- 4262811 Multiperiod Accounting
71365    -----------------------------------------------------------------------------------------
71366      -- No MPA option is assigned.
71367 
71368 
71369 END IF;
71370 END IF;
71371 --
71372 
71373 --
71374 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71375    trace
71376       (p_msg      => 'END of AcctLineType_130'
71377       ,p_level    => C_LEVEL_PROCEDURE
71378       ,p_module   => l_log_module);
71379 END IF;
71380 --
71381 EXCEPTION
71382   WHEN xla_exceptions_pkg.application_exception THEN
71383       RAISE;
71384   WHEN OTHERS THEN
71385        xla_exceptions_pkg.raise_message
71386            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_130');
71387 END AcctLineType_130;
71388 --
71389 
71390 ---------------------------------------
71391 --
71392 -- PRIVATE FUNCTION
71393 --         AcctLineType_131
71394 --
71395 ---------------------------------------
71396 PROCEDURE AcctLineType_131 (
71397   p_application_id        IN NUMBER
71398  ,p_event_id              IN NUMBER
71399  ,p_calculate_acctd_flag  IN VARCHAR2
71400  ,p_calculate_g_l_flag    IN VARCHAR2
71401  ,p_actual_flag           IN OUT VARCHAR2
71402  ,p_balance_type_code     OUT VARCHAR2
71403  ,p_gain_or_loss_ref      OUT VARCHAR2
71404  
71405 --Payment Currency Code
71406  , p_source_12            IN VARCHAR2
71407 --Automatic Offsets Value
71408  , p_source_16            IN VARCHAR2
71409  , p_source_16_meaning    IN VARCHAR2
71410 --Payment Distribution (Payment Rate) Ledger Amount
71411  , p_source_21            IN NUMBER
71412 --Invoice Distribution Account
71413  , p_source_29            IN NUMBER
71414 --Payables Options Rounding Account
71415  , p_source_49            IN NUMBER
71416 --When to Account for Payment Option
71417  , p_source_50            IN VARCHAR2
71418 --Payment Distribution Type
71419  , p_source_51            IN VARCHAR2
71420  , p_source_51_meaning    IN VARCHAR2
71421 --Accounting Reversal Indicator
71422  , p_source_52            IN VARCHAR2
71423 --Payment Distribution Amount
71424  , p_source_53            IN NUMBER
71425 --Business Flow Accounts Payable Application Identifier
71426  , p_source_54            IN NUMBER
71427 --Business Flow Payment Distribution Type
71428  , p_source_55            IN VARCHAR2
71429 --Business Flow Payment Entity Code
71430  , p_source_56            IN VARCHAR2
71431 --Business Flow Payment Distribution Identifier
71432  , p_source_57            IN NUMBER
71433 --Business Flow Payment Identifier
71434  , p_source_58            IN NUMBER
71435 --Payment Distribution Identifier
71436  , p_source_59            IN NUMBER
71437 --Distribution Link Type
71438  , p_source_60            IN VARCHAR2
71439 --Override Accounted Amount Indicator
71440  , p_source_64            IN VARCHAR2
71441  , p_source_64_meaning    IN VARCHAR2
71442 --Payment Supplier Identifier
71443  , p_source_65            IN NUMBER
71444 --Payment Supplier Site Identifier
71445  , p_source_66            IN NUMBER
71446 --Third Party Type
71447  , p_source_67            IN VARCHAR2
71448 --Payment Distribution Reversed Identifier
71449  , p_source_68            IN NUMBER
71450 --Invoice Distribution Tax Line Identifier
71451  , p_source_69            IN NUMBER
71452 --Invoice Distribution Summary Tax Line Identifier
71453  , p_source_70            IN NUMBER
71454 --Payment Maturity Date
71455  , p_source_118            IN DATE
71456 --Payment Exchange Date
71457  , p_source_121            IN DATE
71458 --Payment Exchange Rate
71459  , p_source_122            IN NUMBER
71460 --Payment Exchange Rate Type
71461  , p_source_123            IN VARCHAR2
71462 )
71463 IS
71464 
71465 l_component_type              VARCHAR2(80);
71466 l_component_code              VARCHAR2(30);
71467 l_component_type_code         VARCHAR2(1);
71468 l_component_appl_id           INTEGER;
71469 l_amb_context_code            VARCHAR2(30);
71470 l_entity_code                 VARCHAR2(30);
71471 l_event_class_code            VARCHAR2(30);
71472 l_ae_header_id                NUMBER;
71473 l_event_type_code             VARCHAR2(30);
71474 l_line_definition_code        VARCHAR2(30);
71475 l_line_definition_owner_code  VARCHAR2(1);
71476 --
71477 -- adr variables
71478 l_segment                     VARCHAR2(30);
71479 l_ccid                        NUMBER;
71480 l_adr_transaction_coa_id      NUMBER;
71481 l_adr_accounting_coa_id       NUMBER;
71482 l_adr_flexfield_segment_code  VARCHAR2(30);
71483 l_adr_flex_value_set_id       NUMBER;
71484 l_adr_value_type_code         VARCHAR2(30);
71485 l_adr_value_combination_id    NUMBER;
71486 l_adr_value_segment_code      VARCHAR2(30);
71487 
71488 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
71489 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
71490 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
71491 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
71492 
71493 -- 4262811 Variables ------------------------------------------------------------------------------------------
71494 l_entered_amt_idx             NUMBER;
71495 l_accted_amt_idx              NUMBER;
71499 l_acc_rev_natural_side_code   VARCHAR2(1);
71496 l_acc_rev_flag                VARCHAR2(1);
71497 l_accrual_line_num            NUMBER;
71498 l_tmp_amt                     NUMBER;
71500 
71501 l_num_entries                 NUMBER;
71502 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
71503 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
71504 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
71505 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
71506 l_recog_line_1                NUMBER;
71507 l_recog_line_2                NUMBER;
71508 
71509 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
71510 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
71511 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
71512 
71513 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
71514 
71515 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
71516 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
71517 
71518 ---------------------------------------------------------------------------------------------------------------
71519 
71520 
71521 --
71522 -- bulk performance
71523 --
71524 l_balance_type_code           VARCHAR2(1);
71525 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
71526 l_log_module                  VARCHAR2(240);
71527 
71528 --
71529 -- Upgrade strategy
71530 --
71531 l_actual_upg_option           VARCHAR2(1);
71532 l_enc_upg_option           VARCHAR2(1);
71533 
71534 --
71535 BEGIN
71536 --
71537 IF g_log_enabled THEN
71538       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_131';
71539 END IF;
71540 --
71541 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71542 
71543       trace
71544          (p_msg      => 'BEGIN of AcctLineType_131'
71545          ,p_level    => C_LEVEL_PROCEDURE
71546          ,p_module   => l_log_module);
71547 
71548 END IF;
71549 --
71550 l_component_type             := 'AMB_JLT';
71551 l_component_code             := 'AP_PMT_CLR_ROUNDING_CLEAR';
71552 l_component_type_code        := 'S';
71553 l_component_appl_id          :=  200;
71554 l_amb_context_code           := 'DEFAULT';
71555 l_entity_code                := 'AP_PAYMENTS';
71556 l_event_class_code           := 'RECONCILED PAYMENTS';
71557 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
71558 l_line_definition_owner_code := 'S';
71559 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
71560 --
71561 l_balance_type_code          := 'A';
71562 l_segment                     := NULL;
71563 l_ccid                        := NULL;
71564 l_adr_transaction_coa_id      := NULL;
71565 l_adr_accounting_coa_id       := NULL;
71566 l_adr_flexfield_segment_code  := NULL;
71567 l_adr_flex_value_set_id       := NULL;
71568 l_adr_value_type_code         := NULL;
71569 l_adr_value_combination_id    := NULL;
71570 l_adr_value_segment_code      := NULL;
71571 
71572 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
71573 l_bflow_class_code           := '';    -- 4219869 Business Flow
71574 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
71575 l_budgetary_control_flag     := 'N';
71576 
71577 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
71578 l_bflow_applied_to_amt       := NULL; -- 5132302
71579 l_entered_amt_idx            := NULL;          -- 4262811
71580 l_accted_amt_idx             := NULL;          -- 4262811
71581 l_acc_rev_flag               := NULL;          -- 4262811
71582 l_accrual_line_num           := NULL;          -- 4262811
71583 l_tmp_amt                    := NULL;          -- 4262811
71584 --
71585  
71586 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
71587     l_balance_type_code <> 'B' THEN
71588 IF (NVL(p_source_50,'
71589 ') =  'ALWAYS_ALWAYS' OR 
71590 NVL(p_source_50,'
71591 ') =  'ALWAYS_CLEAR') AND 
71592 NVL(p_source_51,'
71593 ') =  'PAYMENT TO CLEARING ROUNDING' AND 
71594 p_source_118 IS NULL 
71595  THEN 
71596 
71597    --
71598    XLA_AE_LINES_PKG.SetNewLine;
71599 
71600    p_balance_type_code          := l_balance_type_code;
71601    -- set the flag so later we will know whether the gain loss line needs to be created
71602    
71603    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
71604      p_actual_flag :='A';
71605    END IF;
71606 
71607    --
71608    -- bulk performance
71609    --
71610    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
71611                                       p_header_num   => 0); -- 4262811
71612    --
71613    -- set accounting line options
71614    --
71615    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
71616            p_natural_side_code          => 'D'
71617          , p_gain_or_loss_flag          => 'N'
71618          , p_gl_transfer_mode_code      => 'S'
71619          , p_acct_entry_type_code       => 'A'
71620          , p_switch_side_flag           => 'Y'
71621          , p_merge_duplicate_code       => 'A'
71622          );
71623    --
71624    l_acc_rev_natural_side_code := 'C';  -- 4262811
71625    -- 
71626    --
71627    -- set accounting line type info
71628    --
71629    xla_ae_lines_pkg.SetAcctLineType
71633       ,p_line_definition_code       => l_line_definition_code
71630       (p_component_type             => l_component_type
71631       ,p_event_type_code            => l_event_type_code
71632       ,p_line_definition_owner_code => l_line_definition_owner_code
71634       ,p_accounting_line_code       => l_component_code
71635       ,p_accounting_line_type_code  => l_component_type_code
71636       ,p_accounting_line_appl_id    => l_component_appl_id
71637       ,p_amb_context_code           => l_amb_context_code
71638       ,p_entity_code                => l_entity_code
71639       ,p_event_class_code           => l_event_class_code);
71640    --
71641    -- set accounting class
71642    --
71643    xla_ae_lines_pkg.SetAcctClass(
71644            p_accounting_class_code  => 'ROUNDING'
71645          , p_ae_header_id           => l_ae_header_id
71646          );
71647 
71648    --
71649    -- set rounding class
71650    --
71651    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
71652                       'ROUNDING';
71653 
71654    --
71655    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
71656    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
71657    --
71658    -- bulk performance
71659    --
71660    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
71661 
71662    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
71663       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
71664 
71665    -- 4955764
71666    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71667       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
71668 
71669    -- 4458381 Public Sector Enh
71670    
71671    --
71672    -- set accounting attributes for the line type
71673    --
71674    l_entered_amt_idx := 10;
71675    l_accted_amt_idx  := 15;
71676    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
71677    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
71678    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
71679    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
71680    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
71681    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
71682    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
71683    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
71684    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
71685    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
71686    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
71687    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
71688    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
71689    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
71690    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
71691    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
71692    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
71693    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
71694    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
71695    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
71696    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
71697    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
71698    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
71699    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
71700    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
71701    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
71702    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
71703    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
71704    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
71705    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
71706    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
71707    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
71708    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
71709    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
71710    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
71711    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
71712    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
71713    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
71714    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
71715    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
71716    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
71717    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
71718    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
71719    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
71720    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
71721    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
71722    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
71723    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
71724    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
71725 
71726    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
71727    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
71728 
71729    ---------------------------------------------------------------------------------------------------------------
71733 
71730    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
71731    ---------------------------------------------------------------------------------------------------------------
71732    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
71734    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71735    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71736 
71737    IF xla_accounting_cache_pkg.GetValueChar
71738          (p_source_code         => 'LEDGER_CATEGORY_CODE'
71739          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
71740    AND l_bflow_method_code = 'PRIOR_ENTRY'
71741 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
71742    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
71743          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
71744        )
71745    THEN
71746          xla_ae_lines_pkg.BflowUpgEntry
71747            (p_business_method_code    => l_bflow_method_code
71748            ,p_business_class_code     => l_bflow_class_code
71749            ,p_balance_type            => l_balance_type_code);
71750    ELSE
71751       NULL;
71752 -- No business flow processing for business flow method of NONE.
71753    END IF;
71754 
71755    --
71756    -- call analytical criteria
71757    --
71758    
71759    --
71760    -- call description
71761    --
71762    -- No description or it is inherited.
71763    --
71764    -- call ADRs
71765    -- Bug 4922099
71766    --
71767    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71768         (NVL(l_actual_upg_option, 'N') = 'O') OR
71769         (NVL(l_enc_upg_option, 'N') = 'O')
71770       )
71771    THEN
71772    NULL;
71773    --
71774    --
71775    
71776   l_ccid := AcctDerRule_37(
71777            p_application_id           => p_application_id
71778          , p_ae_header_id             => l_ae_header_id 
71779 , p_source_16 => p_source_16
71780 , p_source_16_meaning => p_source_16_meaning
71781 , p_source_29 => p_source_29
71782 , p_source_49 => p_source_49
71783          , x_transaction_coa_id       => l_adr_transaction_coa_id
71784          , x_accounting_coa_id        => l_adr_accounting_coa_id
71785          , x_value_type_code          => l_adr_value_type_code
71786          , p_side                     => 'NA'
71787    );
71788 
71789    xla_ae_lines_pkg.set_ccid(
71790     p_code_combination_id          => l_ccid
71791   , p_value_type_code              => l_adr_value_type_code
71792   , p_transaction_coa_id           => l_adr_transaction_coa_id
71793   , p_accounting_coa_id            => l_adr_accounting_coa_id
71794   , p_adr_code                     => 'AP_ROUNDING'
71795   , p_adr_type_code                => 'S'
71796   , p_component_type               => l_component_type
71797   , p_component_code               => l_component_code
71798   , p_component_type_code          => l_component_type_code
71799   , p_component_appl_id            => l_component_appl_id
71800   , p_amb_context_code             => l_amb_context_code
71801   , p_side                         => 'NA'
71802   );
71803 
71804 
71805    --
71806    --
71807    END IF;
71808    --
71809    -- Bug 4922099
71810    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
71811           (NVL(l_enc_upg_option, 'N') = 'O')
71812         ) AND
71813         (l_bflow_method_code = 'PRIOR_ENTRY')
71814       )
71815    THEN
71816       IF
71817       --
71818       1 = 2
71819       --
71820       THEN
71821       xla_accounting_err_pkg.build_message
71822                                     (p_appli_s_name            => 'XLA'
71823                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71824                                     ,p_token_1                 => 'LINE_NUMBER'
71825                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
71826                                     ,p_token_2                 => 'LINE_TYPE_NAME'
71827                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
71828                                                                              l_component_type
71829                                                                             ,l_component_code
71830                                                                             ,l_component_type_code
71831                                                                             ,l_component_appl_id
71832                                                                             ,l_amb_context_code
71833                                                                             ,l_entity_code
71834                                                                             ,l_event_class_code
71835                                                                            )
71836                                     ,p_token_3                 => 'OWNER'
71837                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
71838                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
71839                                                                           ,p_lookup_code    => l_component_type_code
71840                                                                          )
71844                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71841                                     ,p_token_4                 => 'PRODUCT_NAME'
71842                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71843                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71845                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71846                                     ,p_ae_header_id            =>  NULL
71847                                        );
71848 
71849         IF (C_LEVEL_ERROR>= g_log_level) THEN
71850                  trace
71851                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71852                       ,p_level    => C_LEVEL_ERROR
71853                       ,p_module   => l_log_module);
71854         END IF;
71855       END IF;
71856    END IF;
71857    --
71858    --
71859    ------------------------------------------------------------------------------------------------
71860    -- 4219869 Business Flow
71861    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71862    -- Prior Entry.  Currently, the following code is always generated.
71863    ------------------------------------------------------------------------------------------------
71864    XLA_AE_LINES_PKG.ValidateCurrentLine;
71865 
71866    ------------------------------------------------------------------------------------
71867    -- 4219869 Business Flow
71868    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71869    ------------------------------------------------------------------------------------
71870    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71871 
71872    ----------------------------------------------------------------------------------
71873    -- 4219869 Business Flow
71874    -- Update journal entry status -- Need to generate this within IF <condition>
71875    ----------------------------------------------------------------------------------
71876    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71877          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71878          ,p_balance_type_code => l_balance_type_code
71879          );
71880 
71881    -------------------------------------------------------------------------------------------
71882    -- 4262811 - Generate the Accrual Reversal lines
71883    -------------------------------------------------------------------------------------------
71884    BEGIN
71885       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71886                               (g_array_event(p_event_id).array_value_num('header_index'));
71887       IF l_acc_rev_flag IS NULL THEN
71888          l_acc_rev_flag := 'N';
71889       END IF;
71890    EXCEPTION
71891       WHEN OTHERS THEN
71892          l_acc_rev_flag := 'N';
71893    END;
71894    --
71895    IF (l_acc_rev_flag = 'Y') THEN
71896 
71897        -- 4645092  ------------------------------------------------------------------------------
71898        -- To allow MPA report to determine if it should generate report process
71899        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71900        ------------------------------------------------------------------------------------------
71901 
71902        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71903        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71904    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
71905    -- call ADRs
71906    -- Bug 4922099
71907    --
71908    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71909         (NVL(l_actual_upg_option, 'N') = 'O') OR
71910         (NVL(l_enc_upg_option, 'N') = 'O')
71911       )
71912    THEN
71913    NULL;
71914    --
71915    --
71916    
71917   l_ccid := AcctDerRule_37(
71918            p_application_id           => p_application_id
71919          , p_ae_header_id             => l_ae_header_id 
71920 , p_source_16 => p_source_16
71921 , p_source_16_meaning => p_source_16_meaning
71922 , p_source_29 => p_source_29
71923 , p_source_49 => p_source_49
71924          , x_transaction_coa_id       => l_adr_transaction_coa_id
71925          , x_accounting_coa_id        => l_adr_accounting_coa_id
71926          , x_value_type_code          => l_adr_value_type_code
71927          , p_side                     => 'NA'
71928    );
71929 
71930    xla_ae_lines_pkg.set_ccid(
71931     p_code_combination_id          => l_ccid
71932   , p_value_type_code              => l_adr_value_type_code
71933   , p_transaction_coa_id           => l_adr_transaction_coa_id
71934   , p_accounting_coa_id            => l_adr_accounting_coa_id
71935   , p_adr_code                     => 'AP_ROUNDING'
71936   , p_adr_type_code                => 'S'
71937   , p_component_type               => l_component_type
71938   , p_component_code               => l_component_code
71939   , p_component_type_code          => l_component_type_code
71940   , p_component_appl_id            => l_component_appl_id
71941   , p_amb_context_code             => l_amb_context_code
71942   , p_side                         => 'NA'
71943   );
71944 
71945 
71946    --
71947    --
71948    END IF;
71949 
71950        --
71951        -- Update the line information that should be overwritten
71952        --
71956 
71953        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
71954                                          p_header_num   => 1);
71955        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
71957        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
71958 
71959        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
71960           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
71961        END IF;
71962 
71963       --
71964       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
71965       --
71966       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
71967           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
71968       ELSE
71969           ---------------------------------------------------------------------------------------------------
71970           -- 4262811a Switch Sign
71971           ---------------------------------------------------------------------------------------------------
71972           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
71973           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71974                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71975           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71976                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71977           -- 5132302
71978           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
71979                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71980 
71981       END IF;
71982 
71983       -- 4955764
71984       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71985       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
71986 
71987 
71988       XLA_AE_LINES_PKG.ValidateCurrentLine;
71989       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71990 
71991       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71992                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
71993                ,p_balance_type_code => l_balance_type_code);
71994 
71995    END IF;
71996 
71997    -----------------------------------------------------------------------------------------
71998    -- 4262811 Multiperiod Accounting
71999    -----------------------------------------------------------------------------------------
72000      -- No MPA option is assigned.
72001 
72002 
72003 END IF;
72004 END IF;
72005 --
72006 
72007 --
72008 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72009    trace
72010       (p_msg      => 'END of AcctLineType_131'
72011       ,p_level    => C_LEVEL_PROCEDURE
72012       ,p_module   => l_log_module);
72013 END IF;
72014 --
72015 EXCEPTION
72016   WHEN xla_exceptions_pkg.application_exception THEN
72017       RAISE;
72018   WHEN OTHERS THEN
72019        xla_exceptions_pkg.raise_message
72020            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_131');
72021 END AcctLineType_131;
72022 --
72023 
72024 ---------------------------------------
72025 --
72026 -- PRIVATE FUNCTION
72027 --         AcctLineType_132
72028 --
72029 ---------------------------------------
72030 PROCEDURE AcctLineType_132 (
72031   p_application_id        IN NUMBER
72032  ,p_event_id              IN NUMBER
72033  ,p_calculate_acctd_flag  IN VARCHAR2
72034  ,p_calculate_g_l_flag    IN VARCHAR2
72035  ,p_actual_flag           IN OUT VARCHAR2
72036  ,p_balance_type_code     OUT VARCHAR2
72037  ,p_gain_or_loss_ref      OUT VARCHAR2
72038  
72039 --Payment Currency Code
72040  , p_source_12            IN VARCHAR2
72041 --Payment Distribution (Payment Rate) Ledger Amount
72042  , p_source_21            IN NUMBER
72043 --Invoice Distribution Account
72044  , p_source_29            IN NUMBER
72045 --Prepaid Expense Account Source Option
72046  , p_source_30            IN VARCHAR2
72047  , p_source_30_meaning    IN VARCHAR2
72048 --Purchase Order Number
72049  , p_source_31            IN VARCHAR2
72050 --Invoice Distribution Type
72051  , p_source_32            IN VARCHAR2
72052  , p_source_32_meaning    IN VARCHAR2
72053 --Purchase Order Charge Account
72054  , p_source_40            IN NUMBER
72055 --When to Account for Payment Option
72056  , p_source_50            IN VARCHAR2
72057 --Payment Distribution Type
72058  , p_source_51            IN VARCHAR2
72059  , p_source_51_meaning    IN VARCHAR2
72060 --Accounting Reversal Indicator
72061  , p_source_52            IN VARCHAR2
72062 --Payment Distribution Amount
72063  , p_source_53            IN NUMBER
72064 --Business Flow Accounts Payable Application Identifier
72065  , p_source_54            IN NUMBER
72066 --Payment Distribution Identifier
72067  , p_source_59            IN NUMBER
72068 --Distribution Link Type
72069  , p_source_60            IN VARCHAR2
72070 --Override Accounted Amount Indicator
72071  , p_source_64            IN VARCHAR2
72072  , p_source_64_meaning    IN VARCHAR2
72076  , p_source_66            IN NUMBER
72073 --Payment Supplier Identifier
72074  , p_source_65            IN NUMBER
72075 --Payment Supplier Site Identifier
72077 --Third Party Type
72078  , p_source_67            IN VARCHAR2
72079 --Payment Distribution Reversed Identifier
72080  , p_source_68            IN NUMBER
72081 --Invoice Distribution Tax Line Identifier
72082  , p_source_69            IN NUMBER
72083 --Invoice Distribution Summary Tax Line Identifier
72084  , p_source_70            IN NUMBER
72085 --Payment Type
72086  , p_source_71            IN VARCHAR2
72087  , p_source_71_meaning    IN VARCHAR2
72088 --Invoice Distribution Amount of the Payment Distribution
72089  , p_source_72            IN NUMBER
72090 --Business Flow Invoice Distribution Type
72091  , p_source_73            IN VARCHAR2
72092 --Business Flow Invoice Entity Code
72093  , p_source_74            IN VARCHAR2
72094 --Business Flow Invoice Distribution Identifier
72095  , p_source_75            IN NUMBER
72096 --Business Flow Invoice Identifier
72097  , p_source_76            IN NUMBER
72098 --Invoice Distribution Tax Distribution Identifier from Tax
72099  , p_source_77            IN NUMBER
72100 --Invoice Type Paid
72101  , p_source_112            IN VARCHAR2
72102  , p_source_112_meaning    IN VARCHAR2
72103 --Payment Exchange Date
72104  , p_source_121            IN DATE
72105 --Payment Exchange Rate
72106  , p_source_122            IN NUMBER
72107 --Payment Exchange Rate Type
72108  , p_source_123            IN VARCHAR2
72109 )
72110 IS
72111 
72112 l_component_type              VARCHAR2(80);
72113 l_component_code              VARCHAR2(30);
72114 l_component_type_code         VARCHAR2(1);
72115 l_component_appl_id           INTEGER;
72116 l_amb_context_code            VARCHAR2(30);
72117 l_entity_code                 VARCHAR2(30);
72118 l_event_class_code            VARCHAR2(30);
72119 l_ae_header_id                NUMBER;
72120 l_event_type_code             VARCHAR2(30);
72121 l_line_definition_code        VARCHAR2(30);
72122 l_line_definition_owner_code  VARCHAR2(1);
72123 --
72124 -- adr variables
72125 l_segment                     VARCHAR2(30);
72126 l_ccid                        NUMBER;
72127 l_adr_transaction_coa_id      NUMBER;
72128 l_adr_accounting_coa_id       NUMBER;
72129 l_adr_flexfield_segment_code  VARCHAR2(30);
72130 l_adr_flex_value_set_id       NUMBER;
72131 l_adr_value_type_code         VARCHAR2(30);
72132 l_adr_value_combination_id    NUMBER;
72133 l_adr_value_segment_code      VARCHAR2(30);
72134 
72135 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
72136 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
72137 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
72138 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
72139 
72140 -- 4262811 Variables ------------------------------------------------------------------------------------------
72141 l_entered_amt_idx             NUMBER;
72142 l_accted_amt_idx              NUMBER;
72143 l_acc_rev_flag                VARCHAR2(1);
72144 l_accrual_line_num            NUMBER;
72145 l_tmp_amt                     NUMBER;
72146 l_acc_rev_natural_side_code   VARCHAR2(1);
72147 
72148 l_num_entries                 NUMBER;
72149 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
72150 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
72151 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
72152 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
72153 l_recog_line_1                NUMBER;
72154 l_recog_line_2                NUMBER;
72155 
72156 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
72157 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
72158 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
72159 
72160 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
72161 
72162 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
72163 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
72164 
72165 ---------------------------------------------------------------------------------------------------------------
72166 
72167 
72168 --
72169 -- bulk performance
72170 --
72171 l_balance_type_code           VARCHAR2(1);
72172 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
72173 l_log_module                  VARCHAR2(240);
72174 
72175 --
72176 -- Upgrade strategy
72177 --
72178 l_actual_upg_option           VARCHAR2(1);
72179 l_enc_upg_option           VARCHAR2(1);
72180 
72181 --
72182 BEGIN
72183 --
72184 IF g_log_enabled THEN
72185       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_132';
72186 END IF;
72187 --
72188 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72189 
72190       trace
72191          (p_msg      => 'BEGIN of AcctLineType_132'
72192          ,p_level    => C_LEVEL_PROCEDURE
72193          ,p_module   => l_log_module);
72194 
72195 END IF;
72196 --
72197 l_component_type             := 'AMB_JLT';
72198 l_component_code             := 'AP_PREPAID_EXPENSE_CASH_PMT';
72199 l_component_type_code        := 'S';
72200 l_component_appl_id          :=  200;
72201 l_amb_context_code           := 'DEFAULT';
72202 l_entity_code                := 'AP_PAYMENTS';
72203 l_event_class_code           := 'PAYMENTS';
72207 --
72204 l_event_type_code            := 'PAYMENTS_ALL';
72205 l_line_definition_owner_code := 'S';
72206 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
72208 l_balance_type_code          := 'A';
72209 l_segment                     := NULL;
72210 l_ccid                        := NULL;
72211 l_adr_transaction_coa_id      := NULL;
72212 l_adr_accounting_coa_id       := NULL;
72213 l_adr_flexfield_segment_code  := NULL;
72214 l_adr_flex_value_set_id       := NULL;
72215 l_adr_value_type_code         := NULL;
72216 l_adr_value_combination_id    := NULL;
72217 l_adr_value_segment_code      := NULL;
72218 
72219 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
72220 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
72221 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
72222 l_budgetary_control_flag     := 'N';
72223 
72224 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
72225 l_bflow_applied_to_amt       := NULL; -- 5132302
72226 l_entered_amt_idx            := NULL;          -- 4262811
72227 l_accted_amt_idx             := NULL;          -- 4262811
72228 l_acc_rev_flag               := NULL;          -- 4262811
72229 l_accrual_line_num           := NULL;          -- 4262811
72230 l_tmp_amt                    := NULL;          -- 4262811
72231 --
72232  
72233 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
72234     l_balance_type_code <> 'B' THEN
72235 IF NVL(p_source_50,'
72236 ') <>  'CLEAR_CLEAR' AND 
72237 (NVL(p_source_32,'
72238 ') =  'ITEM' OR 
72239 NVL(p_source_32,'
72240 ') =  'AWT' OR 
72241 NVL(p_source_32,'
72242 ') =  'RETROEXPENSE') AND 
72243 NVL(p_source_112,'
72244 ') =  'PREPAYMENT' AND 
72245 (NVL(p_source_51,'
72246 ') =  'CASH' OR 
72247 NVL(p_source_51,'
72248 ') =  'AWT' OR 
72249 NVL(p_source_51,'
72250 ') =  'DISCOUNT') AND 
72251 NVL(p_source_71,'
72252 ') <>  'R'
72253  THEN 
72254 
72255    --
72256    XLA_AE_LINES_PKG.SetNewLine;
72257 
72258    p_balance_type_code          := l_balance_type_code;
72259    -- set the flag so later we will know whether the gain loss line needs to be created
72260    
72261    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
72262      p_actual_flag :='A';
72263    END IF;
72264 
72265    --
72266    -- bulk performance
72267    --
72268    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
72269                                       p_header_num   => 0); -- 4262811
72270    --
72271    -- set accounting line options
72272    --
72273    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
72274            p_natural_side_code          => 'D'
72275          , p_gain_or_loss_flag          => 'N'
72276          , p_gl_transfer_mode_code      => 'S'
72277          , p_acct_entry_type_code       => 'A'
72278          , p_switch_side_flag           => 'Y'
72279          , p_merge_duplicate_code       => 'A'
72280          );
72281    --
72282    l_acc_rev_natural_side_code := 'C';  -- 4262811
72283    -- 
72284    --
72285    -- set accounting line type info
72286    --
72287    xla_ae_lines_pkg.SetAcctLineType
72288       (p_component_type             => l_component_type
72289       ,p_event_type_code            => l_event_type_code
72290       ,p_line_definition_owner_code => l_line_definition_owner_code
72291       ,p_line_definition_code       => l_line_definition_code
72292       ,p_accounting_line_code       => l_component_code
72293       ,p_accounting_line_type_code  => l_component_type_code
72294       ,p_accounting_line_appl_id    => l_component_appl_id
72295       ,p_amb_context_code           => l_amb_context_code
72296       ,p_entity_code                => l_entity_code
72297       ,p_event_class_code           => l_event_class_code);
72298    --
72299    -- set accounting class
72300    --
72301    xla_ae_lines_pkg.SetAcctClass(
72302            p_accounting_class_code  => 'PREPAID_EXPENSE'
72303          , p_ae_header_id           => l_ae_header_id
72304          );
72305 
72306    --
72307    -- set rounding class
72308    --
72309    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
72310                       'PREPAID_EXPENSE';
72311 
72312    --
72313    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
72314    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
72315    --
72316    -- bulk performance
72317    --
72318    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
72319 
72320    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
72321       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
72322 
72323    -- 4955764
72324    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72325       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
72326 
72327    -- 4458381 Public Sector Enh
72328    
72329    --
72330    -- set accounting attributes for the line type
72331    --
72332    l_entered_amt_idx := 10;
72333    l_accted_amt_idx  := 15;
72334    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
72335    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
72339    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
72336    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
72337    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
72338    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
72340    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
72341    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
72342    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
72343    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
72344    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
72345    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
72346    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
72347    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
72348    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
72349    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
72350    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
72351    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
72352    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
72353    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
72354    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
72355    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
72356    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
72357    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
72358    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
72359    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
72360    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
72361    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
72362    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
72363    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
72364    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
72365    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
72366    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
72367    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
72368    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
72369    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
72370    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
72371    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
72372    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
72373    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
72374    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
72375    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
72376    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
72377    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
72378    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
72379    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
72380    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
72381    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
72382    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
72383 
72384    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
72385    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
72386 
72387    ---------------------------------------------------------------------------------------------------------------
72388    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
72389    ---------------------------------------------------------------------------------------------------------------
72390    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
72391 
72392    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72393    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72394 
72395    IF xla_accounting_cache_pkg.GetValueChar
72396          (p_source_code         => 'LEDGER_CATEGORY_CODE'
72397          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
72398    AND l_bflow_method_code = 'PRIOR_ENTRY'
72399 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
72400    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
72401          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
72402        )
72403    THEN
72404          xla_ae_lines_pkg.BflowUpgEntry
72405            (p_business_method_code    => l_bflow_method_code
72406            ,p_business_class_code     => l_bflow_class_code
72407            ,p_balance_type            => l_balance_type_code);
72408    ELSE
72409       NULL;
72410 -- No business flow processing for business flow method of NONE.
72411    END IF;
72412 
72413    --
72414    -- call analytical criteria
72415    --
72416    
72417    --
72418    -- call description
72419    --
72420    -- No description or it is inherited.
72421    --
72422    -- call ADRs
72423    -- Bug 4922099
72424    --
72425    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72426         (NVL(l_actual_upg_option, 'N') = 'O') OR
72427         (NVL(l_enc_upg_option, 'N') = 'O')
72428       )
72429    THEN
72430    NULL;
72431    --
72432    --
72433    
72434   l_ccid := AcctDerRule_32(
72435            p_application_id           => p_application_id
72436          , p_ae_header_id             => l_ae_header_id 
72437 , p_source_29 => p_source_29
72438 , p_source_30 => p_source_30
72442 , p_source_32_meaning => p_source_32_meaning
72439 , p_source_30_meaning => p_source_30_meaning
72440 , p_source_31 => p_source_31
72441 , p_source_32 => p_source_32
72443 , p_source_40 => p_source_40
72444          , x_transaction_coa_id       => l_adr_transaction_coa_id
72445          , x_accounting_coa_id        => l_adr_accounting_coa_id
72446          , x_value_type_code          => l_adr_value_type_code
72447          , p_side                     => 'NA'
72448    );
72449 
72450    xla_ae_lines_pkg.set_ccid(
72451     p_code_combination_id          => l_ccid
72452   , p_value_type_code              => l_adr_value_type_code
72453   , p_transaction_coa_id           => l_adr_transaction_coa_id
72454   , p_accounting_coa_id            => l_adr_accounting_coa_id
72455   , p_adr_code                     => 'AP_PREPAY_INVOICE_DIST'
72456   , p_adr_type_code                => 'S'
72457   , p_component_type               => l_component_type
72458   , p_component_code               => l_component_code
72459   , p_component_type_code          => l_component_type_code
72460   , p_component_appl_id            => l_component_appl_id
72461   , p_amb_context_code             => l_amb_context_code
72462   , p_side                         => 'NA'
72463   );
72464 
72465 
72466    l_segment := AcctDerRule_11(
72467            p_application_id           => p_application_id
72468          , p_ae_header_id             => l_ae_header_id 
72469 , p_source_29 => p_source_29
72470 , p_source_30 => p_source_30
72471 , p_source_30_meaning => p_source_30_meaning
72472 , p_source_31 => p_source_31
72473 , p_source_32 => p_source_32
72474 , p_source_32_meaning => p_source_32_meaning
72475          , x_transaction_coa_id       => l_adr_transaction_coa_id
72476          , x_accounting_coa_id        => l_adr_accounting_coa_id
72477          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72478          , x_flex_value_set_id        => l_adr_flex_value_set_id
72479          , x_value_type_code          => l_adr_value_type_code
72480          , x_value_combination_id     => l_adr_value_combination_id
72481          , x_value_segment_code       => l_adr_value_segment_code
72482          , p_side                     => 'NA'
72483          , p_override_seg_flag        => 'Y'
72484    );
72485 
72486    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72487 
72488       xla_ae_lines_pkg.set_segment(
72489           p_to_segment_code         => 'GL_ACCOUNT'
72490         , p_segment_value           => l_segment
72491         , p_from_segment_code       => l_adr_value_segment_code
72492         , p_from_combination_id     => l_adr_value_combination_id
72493         , p_value_type_code         => l_adr_value_type_code
72494         , p_transaction_coa_id      => l_adr_transaction_coa_id
72495         , p_accounting_coa_id       => l_adr_accounting_coa_id
72496         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72497         , p_flex_value_set_id       => l_adr_flex_value_set_id
72498         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
72499         , p_adr_type_code           => 'S'
72500         , p_component_type          => l_component_type
72501         , p_component_code          => l_component_code
72502         , p_component_type_code     => l_component_type_code
72503         , p_component_appl_id       => l_component_appl_id
72504         , p_amb_context_code        => l_amb_context_code
72505         , p_entity_code             => 'AP_PAYMENTS'
72506         , p_event_class_code        => 'PAYMENTS'
72507         , p_side                    => 'NA'
72508         );
72509 
72510   END IF;
72511 
72512    --
72513    --
72514    END IF;
72515    --
72516    -- Bug 4922099
72517    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
72518           (NVL(l_enc_upg_option, 'N') = 'O')
72519         ) AND
72520         (l_bflow_method_code = 'PRIOR_ENTRY')
72521       )
72522    THEN
72523       IF
72524       --
72525       1 = 2
72526       --
72527       THEN
72528       xla_accounting_err_pkg.build_message
72529                                     (p_appli_s_name            => 'XLA'
72530                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72531                                     ,p_token_1                 => 'LINE_NUMBER'
72532                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
72533                                     ,p_token_2                 => 'LINE_TYPE_NAME'
72534                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
72535                                                                              l_component_type
72536                                                                             ,l_component_code
72537                                                                             ,l_component_type_code
72538                                                                             ,l_component_appl_id
72539                                                                             ,l_amb_context_code
72540                                                                             ,l_entity_code
72541                                                                             ,l_event_class_code
72542                                                                            )
72543                                     ,p_token_3                 => 'OWNER'
72547                                                                          )
72544                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
72545                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
72546                                                                           ,p_lookup_code    => l_component_type_code
72548                                     ,p_token_4                 => 'PRODUCT_NAME'
72549                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
72550                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
72551                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
72552                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
72553                                     ,p_ae_header_id            =>  NULL
72554                                        );
72555 
72556         IF (C_LEVEL_ERROR>= g_log_level) THEN
72557                  trace
72558                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72559                       ,p_level    => C_LEVEL_ERROR
72560                       ,p_module   => l_log_module);
72561         END IF;
72562       END IF;
72563    END IF;
72564    --
72565    --
72566    ------------------------------------------------------------------------------------------------
72567    -- 4219869 Business Flow
72568    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
72569    -- Prior Entry.  Currently, the following code is always generated.
72570    ------------------------------------------------------------------------------------------------
72571    XLA_AE_LINES_PKG.ValidateCurrentLine;
72572 
72573    ------------------------------------------------------------------------------------
72574    -- 4219869 Business Flow
72575    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
72576    ------------------------------------------------------------------------------------
72577    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72578 
72579    ----------------------------------------------------------------------------------
72580    -- 4219869 Business Flow
72581    -- Update journal entry status -- Need to generate this within IF <condition>
72582    ----------------------------------------------------------------------------------
72583    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72584          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
72585          ,p_balance_type_code => l_balance_type_code
72586          );
72587 
72588    -------------------------------------------------------------------------------------------
72589    -- 4262811 - Generate the Accrual Reversal lines
72590    -------------------------------------------------------------------------------------------
72591    BEGIN
72592       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
72593                               (g_array_event(p_event_id).array_value_num('header_index'));
72594       IF l_acc_rev_flag IS NULL THEN
72595          l_acc_rev_flag := 'N';
72596       END IF;
72597    EXCEPTION
72598       WHEN OTHERS THEN
72599          l_acc_rev_flag := 'N';
72600    END;
72601    --
72602    IF (l_acc_rev_flag = 'Y') THEN
72603 
72604        -- 4645092  ------------------------------------------------------------------------------
72605        -- To allow MPA report to determine if it should generate report process
72606        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
72607        ------------------------------------------------------------------------------------------
72608 
72609        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
72610        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
72611    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
72612    -- call ADRs
72613    -- Bug 4922099
72614    --
72615    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72616         (NVL(l_actual_upg_option, 'N') = 'O') OR
72617         (NVL(l_enc_upg_option, 'N') = 'O')
72618       )
72619    THEN
72620    NULL;
72621    --
72622    --
72623    
72624   l_ccid := AcctDerRule_32(
72625            p_application_id           => p_application_id
72626          , p_ae_header_id             => l_ae_header_id 
72627 , p_source_29 => p_source_29
72628 , p_source_30 => p_source_30
72629 , p_source_30_meaning => p_source_30_meaning
72630 , p_source_31 => p_source_31
72631 , p_source_32 => p_source_32
72632 , p_source_32_meaning => p_source_32_meaning
72633 , p_source_40 => p_source_40
72634          , x_transaction_coa_id       => l_adr_transaction_coa_id
72635          , x_accounting_coa_id        => l_adr_accounting_coa_id
72636          , x_value_type_code          => l_adr_value_type_code
72637          , p_side                     => 'NA'
72638    );
72639 
72640    xla_ae_lines_pkg.set_ccid(
72641     p_code_combination_id          => l_ccid
72642   , p_value_type_code              => l_adr_value_type_code
72643   , p_transaction_coa_id           => l_adr_transaction_coa_id
72644   , p_accounting_coa_id            => l_adr_accounting_coa_id
72645   , p_adr_code                     => 'AP_PREPAY_INVOICE_DIST'
72646   , p_adr_type_code                => 'S'
72650   , p_component_appl_id            => l_component_appl_id
72647   , p_component_type               => l_component_type
72648   , p_component_code               => l_component_code
72649   , p_component_type_code          => l_component_type_code
72651   , p_amb_context_code             => l_amb_context_code
72652   , p_side                         => 'NA'
72653   );
72654 
72655 
72656    l_segment := AcctDerRule_11(
72657            p_application_id           => p_application_id
72658          , p_ae_header_id             => l_ae_header_id 
72659 , p_source_29 => p_source_29
72660 , p_source_30 => p_source_30
72661 , p_source_30_meaning => p_source_30_meaning
72662 , p_source_31 => p_source_31
72663 , p_source_32 => p_source_32
72664 , p_source_32_meaning => p_source_32_meaning
72665          , x_transaction_coa_id       => l_adr_transaction_coa_id
72666          , x_accounting_coa_id        => l_adr_accounting_coa_id
72667          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72668          , x_flex_value_set_id        => l_adr_flex_value_set_id
72669          , x_value_type_code          => l_adr_value_type_code
72670          , x_value_combination_id     => l_adr_value_combination_id
72671          , x_value_segment_code       => l_adr_value_segment_code
72672          , p_side                     => 'NA'
72673          , p_override_seg_flag        => 'Y'
72674    );
72675 
72676    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72677 
72678       xla_ae_lines_pkg.set_segment(
72679           p_to_segment_code         => 'GL_ACCOUNT'
72680         , p_segment_value           => l_segment
72681         , p_from_segment_code       => l_adr_value_segment_code
72682         , p_from_combination_id     => l_adr_value_combination_id
72683         , p_value_type_code         => l_adr_value_type_code
72684         , p_transaction_coa_id      => l_adr_transaction_coa_id
72685         , p_accounting_coa_id       => l_adr_accounting_coa_id
72686         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72687         , p_flex_value_set_id       => l_adr_flex_value_set_id
72688         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
72689         , p_adr_type_code           => 'S'
72690         , p_component_type          => l_component_type
72691         , p_component_code          => l_component_code
72692         , p_component_type_code     => l_component_type_code
72693         , p_component_appl_id       => l_component_appl_id
72694         , p_amb_context_code        => l_amb_context_code
72695         , p_entity_code             => 'AP_PAYMENTS'
72696         , p_event_class_code        => 'PAYMENTS'
72697         , p_side                    => 'NA'
72698         );
72699 
72700   END IF;
72701 
72702    --
72703    --
72704    END IF;
72705 
72706        --
72707        -- Update the line information that should be overwritten
72708        --
72709        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
72710                                          p_header_num   => 1);
72711        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
72712 
72713        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
72714 
72715        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
72716           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
72717        END IF;
72718 
72719       --
72720       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
72721       --
72722       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
72723           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
72724       ELSE
72725           ---------------------------------------------------------------------------------------------------
72726           -- 4262811a Switch Sign
72727           ---------------------------------------------------------------------------------------------------
72728           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
72729           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72730                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72731           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72732                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72733           -- 5132302
72734           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
72735                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72736 
72737       END IF;
72738 
72739       -- 4955764
72740       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72741       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
72742 
72743 
72744       XLA_AE_LINES_PKG.ValidateCurrentLine;
72745       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72746 
72747       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72748                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
72749                ,p_balance_type_code => l_balance_type_code);
72750 
72751    END IF;
72752 
72756      -- No MPA option is assigned.
72753    -----------------------------------------------------------------------------------------
72754    -- 4262811 Multiperiod Accounting
72755    -----------------------------------------------------------------------------------------
72757 
72758 
72759 END IF;
72760 END IF;
72761 --
72762 
72763 --
72764 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72765    trace
72766       (p_msg      => 'END of AcctLineType_132'
72767       ,p_level    => C_LEVEL_PROCEDURE
72768       ,p_module   => l_log_module);
72769 END IF;
72770 --
72771 EXCEPTION
72772   WHEN xla_exceptions_pkg.application_exception THEN
72773       RAISE;
72774   WHEN OTHERS THEN
72775        xla_exceptions_pkg.raise_message
72776            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_132');
72777 END AcctLineType_132;
72778 --
72779 
72780 ---------------------------------------
72781 --
72782 -- PRIVATE FUNCTION
72783 --         AcctLineType_133
72784 --
72785 ---------------------------------------
72786 PROCEDURE AcctLineType_133 (
72787   p_application_id        IN NUMBER
72788  ,p_event_id              IN NUMBER
72789  ,p_calculate_acctd_flag  IN VARCHAR2
72790  ,p_calculate_g_l_flag    IN VARCHAR2
72791  ,p_actual_flag           IN OUT VARCHAR2
72792  ,p_balance_type_code     OUT VARCHAR2
72793  ,p_gain_or_loss_ref      OUT VARCHAR2
72794  
72795 --Payment Currency Code
72796  , p_source_12            IN VARCHAR2
72797 --Payment Distribution (Cleared Rate) Ledger Amount
72798  , p_source_22            IN NUMBER
72799 --Invoice Distribution Account
72800  , p_source_29            IN NUMBER
72801 --Invoice Distribution Type
72802  , p_source_32            IN VARCHAR2
72803  , p_source_32_meaning    IN VARCHAR2
72804 --When to Account for Payment Option
72805  , p_source_50            IN VARCHAR2
72806 --Payment Distribution Type
72807  , p_source_51            IN VARCHAR2
72808  , p_source_51_meaning    IN VARCHAR2
72809 --Accounting Reversal Indicator
72810  , p_source_52            IN VARCHAR2
72811 --Payment Distribution Amount
72812  , p_source_53            IN NUMBER
72813 --Business Flow Accounts Payable Application Identifier
72814  , p_source_54            IN NUMBER
72815 --Business Flow Payment Distribution Type
72816  , p_source_55            IN VARCHAR2
72817 --Business Flow Payment Entity Code
72818  , p_source_56            IN VARCHAR2
72819 --Business Flow Payment Distribution Identifier
72820  , p_source_57            IN NUMBER
72821 --Business Flow Payment Identifier
72822  , p_source_58            IN NUMBER
72823 --Payment Distribution Identifier
72824  , p_source_59            IN NUMBER
72825 --Distribution Link Type
72826  , p_source_60            IN VARCHAR2
72827 --Override Accounted Amount Indicator
72828  , p_source_64            IN VARCHAR2
72829  , p_source_64_meaning    IN VARCHAR2
72830 --Payment Supplier Identifier
72831  , p_source_65            IN NUMBER
72832 --Payment Supplier Site Identifier
72833  , p_source_66            IN NUMBER
72834 --Third Party Type
72835  , p_source_67            IN VARCHAR2
72836 --Payment Distribution Reversed Identifier
72837  , p_source_68            IN NUMBER
72838 --Invoice Distribution Tax Line Identifier
72839  , p_source_69            IN NUMBER
72840 --Invoice Distribution Summary Tax Line Identifier
72841  , p_source_70            IN NUMBER
72842 --Payment Type
72843  , p_source_71            IN VARCHAR2
72844  , p_source_71_meaning    IN VARCHAR2
72845 --Invoice Type Paid
72846  , p_source_112            IN VARCHAR2
72847  , p_source_112_meaning    IN VARCHAR2
72848 --Cleared Exchange Date
72849  , p_source_114            IN DATE
72850 --Cleared Exchange Rate
72851  , p_source_115            IN NUMBER
72852 --Cleared Exchange Rate Type
72853  , p_source_116            IN VARCHAR2
72854 )
72855 IS
72856 
72857 l_component_type              VARCHAR2(80);
72858 l_component_code              VARCHAR2(30);
72859 l_component_type_code         VARCHAR2(1);
72860 l_component_appl_id           INTEGER;
72861 l_amb_context_code            VARCHAR2(30);
72862 l_entity_code                 VARCHAR2(30);
72863 l_event_class_code            VARCHAR2(30);
72864 l_ae_header_id                NUMBER;
72865 l_event_type_code             VARCHAR2(30);
72866 l_line_definition_code        VARCHAR2(30);
72867 l_line_definition_owner_code  VARCHAR2(1);
72868 --
72869 -- adr variables
72870 l_segment                     VARCHAR2(30);
72871 l_ccid                        NUMBER;
72872 l_adr_transaction_coa_id      NUMBER;
72873 l_adr_accounting_coa_id       NUMBER;
72874 l_adr_flexfield_segment_code  VARCHAR2(30);
72875 l_adr_flex_value_set_id       NUMBER;
72876 l_adr_value_type_code         VARCHAR2(30);
72877 l_adr_value_combination_id    NUMBER;
72878 l_adr_value_segment_code      VARCHAR2(30);
72879 
72880 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
72881 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
72882 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
72883 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
72884 
72885 -- 4262811 Variables ------------------------------------------------------------------------------------------
72886 l_entered_amt_idx             NUMBER;
72887 l_accted_amt_idx              NUMBER;
72888 l_acc_rev_flag                VARCHAR2(1);
72889 l_accrual_line_num            NUMBER;
72893 l_num_entries                 NUMBER;
72890 l_tmp_amt                     NUMBER;
72891 l_acc_rev_natural_side_code   VARCHAR2(1);
72892 
72894 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
72895 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
72896 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
72897 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
72898 l_recog_line_1                NUMBER;
72899 l_recog_line_2                NUMBER;
72900 
72901 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
72902 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
72903 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
72904 
72905 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
72906 
72907 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
72908 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
72909 
72910 ---------------------------------------------------------------------------------------------------------------
72911 
72912 
72913 --
72914 -- bulk performance
72915 --
72916 l_balance_type_code           VARCHAR2(1);
72917 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
72918 l_log_module                  VARCHAR2(240);
72919 
72920 --
72921 -- Upgrade strategy
72922 --
72923 l_actual_upg_option           VARCHAR2(1);
72924 l_enc_upg_option           VARCHAR2(1);
72925 
72926 --
72927 BEGIN
72928 --
72929 IF g_log_enabled THEN
72930       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_133';
72931 END IF;
72932 --
72933 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72934 
72935       trace
72936          (p_msg      => 'BEGIN of AcctLineType_133'
72937          ,p_level    => C_LEVEL_PROCEDURE
72938          ,p_module   => l_log_module);
72939 
72940 END IF;
72941 --
72942 l_component_type             := 'AMB_JLT';
72943 l_component_code             := 'AP_PREPAID_EXPENSE_CLEAR';
72944 l_component_type_code        := 'S';
72945 l_component_appl_id          :=  200;
72946 l_amb_context_code           := 'DEFAULT';
72947 l_entity_code                := 'AP_PAYMENTS';
72948 l_event_class_code           := 'RECONCILED PAYMENTS';
72949 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
72950 l_line_definition_owner_code := 'S';
72951 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
72952 --
72953 l_balance_type_code          := 'A';
72954 l_segment                     := NULL;
72955 l_ccid                        := NULL;
72956 l_adr_transaction_coa_id      := NULL;
72957 l_adr_accounting_coa_id       := NULL;
72958 l_adr_flexfield_segment_code  := NULL;
72959 l_adr_flex_value_set_id       := NULL;
72960 l_adr_value_type_code         := NULL;
72961 l_adr_value_combination_id    := NULL;
72962 l_adr_value_segment_code      := NULL;
72963 
72964 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
72965 l_bflow_class_code           := '';    -- 4219869 Business Flow
72966 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
72967 l_budgetary_control_flag     := 'N';
72968 
72969 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
72970 l_bflow_applied_to_amt       := NULL; -- 5132302
72971 l_entered_amt_idx            := NULL;          -- 4262811
72972 l_accted_amt_idx             := NULL;          -- 4262811
72973 l_acc_rev_flag               := NULL;          -- 4262811
72974 l_accrual_line_num           := NULL;          -- 4262811
72975 l_tmp_amt                    := NULL;          -- 4262811
72976 --
72977  
72978 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
72979     l_balance_type_code <> 'B' THEN
72980 IF NVL(p_source_50,'
72981 ') =  'CLEAR_CLEAR' AND 
72982 (NVL(p_source_32,'
72983 ') =  'ITEM' OR 
72984 NVL(p_source_32,'
72985 ') =  'RETROEXPENSE') AND 
72986 NVL(p_source_112,'
72987 ') =  'PREPAYMENT' AND 
72988 (NVL(p_source_51,'
72989 ') =  'CASH' OR 
72990 NVL(p_source_51,'
72991 ') =  'DISCOUNT') AND 
72992 NVL(p_source_71,'
72993 ') <>  'R'
72994  THEN 
72995 
72996    --
72997    XLA_AE_LINES_PKG.SetNewLine;
72998 
72999    p_balance_type_code          := l_balance_type_code;
73000    -- set the flag so later we will know whether the gain loss line needs to be created
73001    
73002    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
73003      p_actual_flag :='A';
73004    END IF;
73005 
73006    --
73007    -- bulk performance
73008    --
73009    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
73010                                       p_header_num   => 0); -- 4262811
73011    --
73012    -- set accounting line options
73013    --
73014    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
73015            p_natural_side_code          => 'D'
73016          , p_gain_or_loss_flag          => 'N'
73017          , p_gl_transfer_mode_code      => 'S'
73018          , p_acct_entry_type_code       => 'A'
73019          , p_switch_side_flag           => 'Y'
73020          , p_merge_duplicate_code       => 'A'
73021          );
73022    --
73023    l_acc_rev_natural_side_code := 'C';  -- 4262811
73024    -- 
73025    --
73026    -- set accounting line type info
73027    --
73031       ,p_line_definition_owner_code => l_line_definition_owner_code
73028    xla_ae_lines_pkg.SetAcctLineType
73029       (p_component_type             => l_component_type
73030       ,p_event_type_code            => l_event_type_code
73032       ,p_line_definition_code       => l_line_definition_code
73033       ,p_accounting_line_code       => l_component_code
73034       ,p_accounting_line_type_code  => l_component_type_code
73035       ,p_accounting_line_appl_id    => l_component_appl_id
73036       ,p_amb_context_code           => l_amb_context_code
73037       ,p_entity_code                => l_entity_code
73038       ,p_event_class_code           => l_event_class_code);
73039    --
73040    -- set accounting class
73041    --
73042    xla_ae_lines_pkg.SetAcctClass(
73043            p_accounting_class_code  => 'PREPAID_EXPENSE'
73044          , p_ae_header_id           => l_ae_header_id
73045          );
73046 
73047    --
73048    -- set rounding class
73049    --
73050    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
73051                       'PREPAID_EXPENSE';
73052 
73053    --
73054    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
73055    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
73056    --
73057    -- bulk performance
73058    --
73059    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
73060 
73061    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
73062       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
73063 
73064    -- 4955764
73065    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73066       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
73067 
73068    -- 4458381 Public Sector Enh
73069    
73070    --
73071    -- set accounting attributes for the line type
73072    --
73073    l_entered_amt_idx := 10;
73074    l_accted_amt_idx  := 15;
73075    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
73076    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
73077    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
73078    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
73079    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
73080    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
73081    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
73082    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
73083    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
73084    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
73085    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
73086    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
73087    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
73088    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
73089    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
73090    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
73091    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
73092    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
73093    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
73094    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
73095    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
73096    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
73097    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
73098    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
73099    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
73100    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
73101    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
73102    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
73103    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
73104    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
73105    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
73106    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
73107    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
73108    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
73109    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
73110    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
73111    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
73112    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
73113    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
73114    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
73115    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
73116    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
73117    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
73118    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
73119    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
73120    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
73121    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
73122    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
73123    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
73124 
73125    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
73129    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
73126    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
73127 
73128    ---------------------------------------------------------------------------------------------------------------
73130    ---------------------------------------------------------------------------------------------------------------
73131    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
73132 
73133    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73134    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73135 
73136    IF xla_accounting_cache_pkg.GetValueChar
73137          (p_source_code         => 'LEDGER_CATEGORY_CODE'
73138          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
73139    AND l_bflow_method_code = 'PRIOR_ENTRY'
73140 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
73141    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
73142          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
73143        )
73144    THEN
73145          xla_ae_lines_pkg.BflowUpgEntry
73146            (p_business_method_code    => l_bflow_method_code
73147            ,p_business_class_code     => l_bflow_class_code
73148            ,p_balance_type            => l_balance_type_code);
73149    ELSE
73150       NULL;
73151 -- No business flow processing for business flow method of NONE.
73152    END IF;
73153 
73154    --
73155    -- call analytical criteria
73156    --
73157    
73158    --
73159    -- call description
73160    --
73161    -- No description or it is inherited.
73162    --
73163    -- call ADRs
73164    -- Bug 4922099
73165    --
73166    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73167         (NVL(l_actual_upg_option, 'N') = 'O') OR
73168         (NVL(l_enc_upg_option, 'N') = 'O')
73169       )
73170    THEN
73171    NULL;
73172    --
73173    --
73174    
73175   l_ccid := AcctDerRule_28(
73176            p_application_id           => p_application_id
73177          , p_ae_header_id             => l_ae_header_id 
73178 , p_source_29 => p_source_29
73179          , x_transaction_coa_id       => l_adr_transaction_coa_id
73180          , x_accounting_coa_id        => l_adr_accounting_coa_id
73181          , x_value_type_code          => l_adr_value_type_code
73182          , p_side                     => 'NA'
73183    );
73184 
73185    xla_ae_lines_pkg.set_ccid(
73186     p_code_combination_id          => l_ccid
73187   , p_value_type_code              => l_adr_value_type_code
73188   , p_transaction_coa_id           => l_adr_transaction_coa_id
73189   , p_accounting_coa_id            => l_adr_accounting_coa_id
73190   , p_adr_code                     => 'AP_INVOICE_DIST'
73191   , p_adr_type_code                => 'S'
73192   , p_component_type               => l_component_type
73193   , p_component_code               => l_component_code
73194   , p_component_type_code          => l_component_type_code
73195   , p_component_appl_id            => l_component_appl_id
73196   , p_amb_context_code             => l_amb_context_code
73197   , p_side                         => 'NA'
73198   );
73199 
73200 
73201    --
73202    --
73203    END IF;
73204    --
73205    -- Bug 4922099
73206    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73207           (NVL(l_enc_upg_option, 'N') = 'O')
73208         ) AND
73209         (l_bflow_method_code = 'PRIOR_ENTRY')
73210       )
73211    THEN
73212       IF
73213       --
73214       1 = 2
73215       --
73216       THEN
73217       xla_accounting_err_pkg.build_message
73218                                     (p_appli_s_name            => 'XLA'
73219                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73220                                     ,p_token_1                 => 'LINE_NUMBER'
73221                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
73222                                     ,p_token_2                 => 'LINE_TYPE_NAME'
73223                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
73224                                                                              l_component_type
73225                                                                             ,l_component_code
73226                                                                             ,l_component_type_code
73227                                                                             ,l_component_appl_id
73228                                                                             ,l_amb_context_code
73229                                                                             ,l_entity_code
73230                                                                             ,l_event_class_code
73231                                                                            )
73232                                     ,p_token_3                 => 'OWNER'
73233                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
73234                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
73238                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
73235                                                                           ,p_lookup_code    => l_component_type_code
73236                                                                          )
73237                                     ,p_token_4                 => 'PRODUCT_NAME'
73239                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
73240                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
73241                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
73242                                     ,p_ae_header_id            =>  NULL
73243                                        );
73244 
73245         IF (C_LEVEL_ERROR>= g_log_level) THEN
73246                  trace
73247                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73248                       ,p_level    => C_LEVEL_ERROR
73249                       ,p_module   => l_log_module);
73250         END IF;
73251       END IF;
73252    END IF;
73253    --
73254    --
73255    ------------------------------------------------------------------------------------------------
73256    -- 4219869 Business Flow
73257    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
73258    -- Prior Entry.  Currently, the following code is always generated.
73259    ------------------------------------------------------------------------------------------------
73260    XLA_AE_LINES_PKG.ValidateCurrentLine;
73261 
73262    ------------------------------------------------------------------------------------
73263    -- 4219869 Business Flow
73264    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
73265    ------------------------------------------------------------------------------------
73266    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73267 
73268    ----------------------------------------------------------------------------------
73269    -- 4219869 Business Flow
73270    -- Update journal entry status -- Need to generate this within IF <condition>
73271    ----------------------------------------------------------------------------------
73272    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73273          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
73274          ,p_balance_type_code => l_balance_type_code
73275          );
73276 
73277    -------------------------------------------------------------------------------------------
73278    -- 4262811 - Generate the Accrual Reversal lines
73279    -------------------------------------------------------------------------------------------
73280    BEGIN
73281       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
73282                               (g_array_event(p_event_id).array_value_num('header_index'));
73283       IF l_acc_rev_flag IS NULL THEN
73284          l_acc_rev_flag := 'N';
73285       END IF;
73286    EXCEPTION
73287       WHEN OTHERS THEN
73288          l_acc_rev_flag := 'N';
73289    END;
73290    --
73291    IF (l_acc_rev_flag = 'Y') THEN
73292 
73293        -- 4645092  ------------------------------------------------------------------------------
73294        -- To allow MPA report to determine if it should generate report process
73295        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73296        ------------------------------------------------------------------------------------------
73297 
73298        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73299        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73300    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
73301    -- call ADRs
73302    -- Bug 4922099
73303    --
73304    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73305         (NVL(l_actual_upg_option, 'N') = 'O') OR
73306         (NVL(l_enc_upg_option, 'N') = 'O')
73307       )
73308    THEN
73309    NULL;
73310    --
73311    --
73312    
73313   l_ccid := AcctDerRule_28(
73314            p_application_id           => p_application_id
73315          , p_ae_header_id             => l_ae_header_id 
73316 , p_source_29 => p_source_29
73317          , x_transaction_coa_id       => l_adr_transaction_coa_id
73318          , x_accounting_coa_id        => l_adr_accounting_coa_id
73319          , x_value_type_code          => l_adr_value_type_code
73320          , p_side                     => 'NA'
73321    );
73322 
73323    xla_ae_lines_pkg.set_ccid(
73324     p_code_combination_id          => l_ccid
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_adr_code                     => 'AP_INVOICE_DIST'
73329   , p_adr_type_code                => 'S'
73330   , p_component_type               => l_component_type
73331   , p_component_code               => l_component_code
73332   , p_component_type_code          => l_component_type_code
73333   , p_component_appl_id            => l_component_appl_id
73334   , p_amb_context_code             => l_amb_context_code
73335   , p_side                         => 'NA'
73336   );
73337 
73338 
73339    --
73340    --
73341    END IF;
73342 
73343        --
73347                                          p_header_num   => 1);
73344        -- Update the line information that should be overwritten
73345        --
73346        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
73348        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
73349 
73350        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
73351 
73352        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
73353           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
73354        END IF;
73355 
73356       --
73357       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
73358       --
73359       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
73360           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
73361       ELSE
73362           ---------------------------------------------------------------------------------------------------
73363           -- 4262811a Switch Sign
73364           ---------------------------------------------------------------------------------------------------
73365           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
73366           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73367                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73368           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73369                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73370           -- 5132302
73371           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
73372                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73373 
73374       END IF;
73375 
73376       -- 4955764
73377       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73378       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
73379 
73380 
73381       XLA_AE_LINES_PKG.ValidateCurrentLine;
73382       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73383 
73384       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73385                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
73386                ,p_balance_type_code => l_balance_type_code);
73387 
73388    END IF;
73389 
73390    -----------------------------------------------------------------------------------------
73391    -- 4262811 Multiperiod Accounting
73392    -----------------------------------------------------------------------------------------
73393      -- No MPA option is assigned.
73394 
73395 
73396 END IF;
73397 END IF;
73398 --
73399 
73400 --
73401 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73402    trace
73403       (p_msg      => 'END of AcctLineType_133'
73404       ,p_level    => C_LEVEL_PROCEDURE
73405       ,p_module   => l_log_module);
73406 END IF;
73407 --
73408 EXCEPTION
73409   WHEN xla_exceptions_pkg.application_exception THEN
73410       RAISE;
73411   WHEN OTHERS THEN
73412        xla_exceptions_pkg.raise_message
73413            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_133');
73414 END AcctLineType_133;
73415 --
73416 
73417 ---------------------------------------
73418 --
73419 -- PRIVATE FUNCTION
73420 --         AcctLineType_134
73421 --
73422 ---------------------------------------
73423 PROCEDURE AcctLineType_134 (
73424   p_application_id        IN NUMBER
73425  ,p_event_id              IN NUMBER
73426  ,p_calculate_acctd_flag  IN VARCHAR2
73427  ,p_calculate_g_l_flag    IN VARCHAR2
73428  ,p_actual_flag           IN OUT VARCHAR2
73429  ,p_balance_type_code     OUT VARCHAR2
73430  ,p_gain_or_loss_ref      OUT VARCHAR2
73431  
73432 --When to Account for Payment Option
73433  , p_source_50            IN VARCHAR2
73434 --Accounting Reversal Indicator
73435  , p_source_52            IN VARCHAR2
73436 --Business Flow Accounts Payable Application Identifier
73437  , p_source_54            IN NUMBER
73438 --Distribution Link Type
73439  , p_source_60            IN VARCHAR2
73440 --Override Accounted Amount Indicator
73441  , p_source_64            IN VARCHAR2
73442  , p_source_64_meaning    IN VARCHAR2
73443 --Third Party Type
73444  , p_source_67            IN VARCHAR2
73445 --Invoice Distribution Tax Line Identifier
73446  , p_source_69            IN NUMBER
73447 --Invoice Distribution Summary Tax Line Identifier
73448  , p_source_70            IN NUMBER
73449 --Invoice Distribution Tax Distribution Identifier from Tax
73450  , p_source_77            IN NUMBER
73451 --Prepayment Distribution Type
73452  , p_source_78            IN VARCHAR2
73453 --Prepayment Application Distribution Identifier
73454  , p_source_82            IN NUMBER
73455 --Invoice Identifier
73456  , p_source_83            IN NUMBER
73457 --Upgrade Encumbrance Credit Account Class
73458  , p_source_88            IN VARCHAR2
73459 --Payables Encumbrance Upgrade Credit Account
73460  , p_source_89            IN NUMBER
73461 --Payables Encumbrance Upgrade Credit Amount
73462  , p_source_90            IN NUMBER
73463 --Invoice Currency Code
73464  , p_source_91            IN VARCHAR2
73468  , p_source_93            IN VARCHAR2
73465 --Payables Encumbrance Upgrade Credit Base Amount
73466  , p_source_92            IN NUMBER
73467 --Upgrade Encumbrance Debit Account Class
73469 --Payables Encumbrance Upgrade Debit Account
73470  , p_source_94            IN NUMBER
73471 --Payables Encumbrance Upgrade Debit Amount
73472  , p_source_95            IN NUMBER
73473 --Payables Encumbrance Upgrade Debit Base Amount
73474  , p_source_96            IN NUMBER
73475 --Payables Encumbrance Upgrade Option
73476  , p_source_97            IN VARCHAR2
73477 --Prepayment Distribution Amount
73478  , p_source_98            IN NUMBER
73479 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
73480  , p_source_100            IN NUMBER
73481 --Deferred Accounting End Date
73482  , p_source_101            IN DATE
73483 --Deferred Accounting Option
73484  , p_source_102            IN VARCHAR2
73485 --Deferred Accounting Start Date
73486  , p_source_103            IN DATE
73487 --Identifier of the Prepayment Application Reversed
73488  , p_source_106            IN NUMBER
73489 --Payables Upgrade Credit Encumbrance Type Identifier
73490  , p_source_107            IN NUMBER
73491 --Payables Upgrade Debit Encumbrance Type Identifier
73492  , p_source_108            IN NUMBER
73493 --Business Flow Prepayment Clearing Distribution Type
73494  , p_source_141            IN VARCHAR2
73495 --Business Flow Cash Basis Clearing Only Prepayment Entity Code
73496  , p_source_142            IN VARCHAR2
73497 --Business Flow Prepay Payment Clearing Distribution Id
73498  , p_source_143            IN NUMBER
73499 --Business Flow Prepay Payment Id
73500  , p_source_144            IN NUMBER
73501 )
73502 IS
73503 
73504 l_component_type              VARCHAR2(80);
73505 l_component_code              VARCHAR2(30);
73506 l_component_type_code         VARCHAR2(1);
73507 l_component_appl_id           INTEGER;
73508 l_amb_context_code            VARCHAR2(30);
73509 l_entity_code                 VARCHAR2(30);
73510 l_event_class_code            VARCHAR2(30);
73511 l_ae_header_id                NUMBER;
73512 l_event_type_code             VARCHAR2(30);
73513 l_line_definition_code        VARCHAR2(30);
73514 l_line_definition_owner_code  VARCHAR2(1);
73515 --
73516 -- adr variables
73517 l_segment                     VARCHAR2(30);
73518 l_ccid                        NUMBER;
73519 l_adr_transaction_coa_id      NUMBER;
73520 l_adr_accounting_coa_id       NUMBER;
73521 l_adr_flexfield_segment_code  VARCHAR2(30);
73522 l_adr_flex_value_set_id       NUMBER;
73523 l_adr_value_type_code         VARCHAR2(30);
73524 l_adr_value_combination_id    NUMBER;
73525 l_adr_value_segment_code      VARCHAR2(30);
73526 
73527 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
73528 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
73529 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
73530 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
73531 
73532 -- 4262811 Variables ------------------------------------------------------------------------------------------
73533 l_entered_amt_idx             NUMBER;
73534 l_accted_amt_idx              NUMBER;
73535 l_acc_rev_flag                VARCHAR2(1);
73536 l_accrual_line_num            NUMBER;
73537 l_tmp_amt                     NUMBER;
73538 l_acc_rev_natural_side_code   VARCHAR2(1);
73539 
73540 l_num_entries                 NUMBER;
73541 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
73542 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
73543 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
73544 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
73545 l_recog_line_1                NUMBER;
73546 l_recog_line_2                NUMBER;
73547 
73548 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
73549 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
73550 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
73551 
73552 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
73553 
73554 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
73555 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
73556 
73557 ---------------------------------------------------------------------------------------------------------------
73558 
73559 
73560 --
73561 -- bulk performance
73562 --
73563 l_balance_type_code           VARCHAR2(1);
73564 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
73565 l_log_module                  VARCHAR2(240);
73566 
73567 --
73568 -- Upgrade strategy
73569 --
73570 l_actual_upg_option           VARCHAR2(1);
73571 l_enc_upg_option           VARCHAR2(1);
73572 
73573 --
73574 BEGIN
73575 --
73576 IF g_log_enabled THEN
73577       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_134';
73578 END IF;
73579 --
73580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73581 
73582       trace
73583          (p_msg      => 'BEGIN of AcctLineType_134'
73584          ,p_level    => C_LEVEL_PROCEDURE
73585          ,p_module   => l_log_module);
73586 
73587 END IF;
73588 --
73589 l_component_type             := 'AMB_JLT';
73590 l_component_code             := 'AP_PREPAID_EXP_CASH_CLR_XRATE';
73591 l_component_type_code        := 'S';
73592 l_component_appl_id          :=  200;
73593 l_amb_context_code           := 'DEFAULT';
73597 l_line_definition_owner_code := 'S';
73594 l_entity_code                := 'AP_INVOICES';
73595 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
73596 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
73598 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
73599 --
73600 l_balance_type_code          := 'A';
73601 l_segment                     := NULL;
73602 l_ccid                        := NULL;
73603 l_adr_transaction_coa_id      := NULL;
73604 l_adr_accounting_coa_id       := NULL;
73605 l_adr_flexfield_segment_code  := NULL;
73606 l_adr_flex_value_set_id       := NULL;
73607 l_adr_value_type_code         := NULL;
73608 l_adr_value_combination_id    := NULL;
73609 l_adr_value_segment_code      := NULL;
73610 
73611 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
73612 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
73613 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
73614 l_budgetary_control_flag     := 'N';
73615 
73616 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
73617 l_bflow_applied_to_amt       := NULL; -- 5132302
73618 l_entered_amt_idx            := NULL;          -- 4262811
73619 l_accted_amt_idx             := NULL;          -- 4262811
73620 l_acc_rev_flag               := NULL;          -- 4262811
73621 l_accrual_line_num           := NULL;          -- 4262811
73622 l_tmp_amt                    := NULL;          -- 4262811
73623 --
73624  
73625 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
73626     l_balance_type_code <> 'B' THEN
73627 IF NVL(p_source_50,'
73628 ') =  'CLEAR_CLEAR' AND 
73629 (NVL(p_source_78,'
73630 ') =  'PREPAY APPL' OR 
73631 NVL(p_source_78,'
73632 ') =  'PREPAY APPL NONREC TAX' OR 
73633 NVL(p_source_78,'
73634 ') =  'PREPAY APPL REC TAX' OR 
73635 NVL(p_source_78,'
73636 ') =  'TAX DIFF' OR 
73637 NVL(p_source_78,'
73638 ') =  'FINAL APPLICATION ROUNDING')
73639  THEN 
73640 
73641    --
73642    XLA_AE_LINES_PKG.SetNewLine;
73643 
73644    p_balance_type_code          := l_balance_type_code;
73645    -- set the flag so later we will know whether the gain loss line needs to be created
73646    
73647    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
73648      p_actual_flag :='A';
73649    END IF;
73650 
73651    --
73652    -- bulk performance
73653    --
73654    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
73655                                       p_header_num   => 0); -- 4262811
73656    --
73657    -- set accounting line options
73658    --
73659    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
73660            p_natural_side_code          => 'D'
73661          , p_gain_or_loss_flag          => 'N'
73662          , p_gl_transfer_mode_code      => 'S'
73663          , p_acct_entry_type_code       => 'A'
73664          , p_switch_side_flag           => 'Y'
73665          , p_merge_duplicate_code       => 'A'
73666          );
73667    --
73668    l_acc_rev_natural_side_code := 'C';  -- 4262811
73669    -- 
73670    --
73671    -- set accounting line type info
73672    --
73673    xla_ae_lines_pkg.SetAcctLineType
73674       (p_component_type             => l_component_type
73675       ,p_event_type_code            => l_event_type_code
73676       ,p_line_definition_owner_code => l_line_definition_owner_code
73677       ,p_line_definition_code       => l_line_definition_code
73678       ,p_accounting_line_code       => l_component_code
73679       ,p_accounting_line_type_code  => l_component_type_code
73680       ,p_accounting_line_appl_id    => l_component_appl_id
73681       ,p_amb_context_code           => l_amb_context_code
73682       ,p_entity_code                => l_entity_code
73683       ,p_event_class_code           => l_event_class_code);
73684    --
73685    -- set accounting class
73686    --
73687    xla_ae_lines_pkg.SetAcctClass(
73688            p_accounting_class_code  => 'PREPAID_EXPENSE'
73689          , p_ae_header_id           => l_ae_header_id
73690          );
73691 
73692    --
73693    -- set rounding class
73694    --
73695    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
73696                       'PREPAID_EXPENSE';
73697 
73698    --
73699    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
73700    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
73701    --
73702    -- bulk performance
73703    --
73704    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
73705 
73706    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
73707       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
73708 
73709    -- 4955764
73710    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73711       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
73712 
73713    -- 4458381 Public Sector Enh
73714    
73715    --
73716    -- set accounting attributes for the line type
73717    --
73718    l_entered_amt_idx := 25;
73719    l_accted_amt_idx  := 27;
73720    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
73721    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
73722    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
73726    p_source_code           => 'XLA_EVENT_APPL_ID'
73723    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
73724    l_rec_acct_attrs.array_num_value(2)  := 
73725 xla_ae_sources_pkg.GetSystemSourceNum(
73727  , p_source_type_code      => 'Y'
73728  , p_source_application_id =>  602
73729 );
73730    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
73731    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
73732    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
73733    l_rec_acct_attrs.array_char_value(4)  := 
73734 xla_ae_sources_pkg.GetSystemSourceChar(
73735    p_source_code           => 'XLA_ENTITY_CODE'
73736  , p_source_type_code      => 'Y'
73737  , p_source_application_id =>  602
73738 );
73739    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
73740    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
73741    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
73742    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
73743    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
73744    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
73745    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
73746    l_rec_acct_attrs.array_char_value(8)  := p_source_141;
73747    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
73748    l_rec_acct_attrs.array_char_value(9)  := p_source_142;
73749    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
73750    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_143);
73751    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
73752    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_144);
73753    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
73754    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
73755    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
73756    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
73757    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
73758    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
73759    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
73760    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
73761    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
73762    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
73763    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
73764    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
73765    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
73766    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
73767    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
73768    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
73769    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
73770    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
73771    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
73772    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
73773    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
73774    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
73775    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
73776    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
73777    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
73778    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
73779    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
73780    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
73781    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
73782    l_rec_acct_attrs.array_char_value(26)  := p_source_91;
73783    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
73784    l_rec_acct_attrs.array_num_value(27)  := p_source_100;
73785    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
73786    l_rec_acct_attrs.array_date_value(28)  := p_source_101;
73787    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
73788    l_rec_acct_attrs.array_char_value(29)  := p_source_102;
73789    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
73790    l_rec_acct_attrs.array_date_value(30)  := p_source_103;
73791    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
73792    l_rec_acct_attrs.array_char_value(31)  := p_source_64;
73793    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
73794    l_rec_acct_attrs.array_char_value(32)  := p_source_67;
73795    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
73796    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_106);
73797    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
73798    l_rec_acct_attrs.array_char_value(34)  := p_source_60;
73799    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
73800    l_rec_acct_attrs.array_num_value(35)  := p_source_69;
73801    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
73802    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
73803    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
73804    l_rec_acct_attrs.array_num_value(37)  := p_source_70;
73805    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
73806    l_rec_acct_attrs.array_num_value(38)  := p_source_107;
73807    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
73808    l_rec_acct_attrs.array_num_value(39)  := p_source_108;
73809 
73813    ---------------------------------------------------------------------------------------------------------------
73810    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
73811    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
73812 
73814    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
73815    ---------------------------------------------------------------------------------------------------------------
73816    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
73817 
73818    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73819    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73820 
73821    IF xla_accounting_cache_pkg.GetValueChar
73822          (p_source_code         => 'LEDGER_CATEGORY_CODE'
73823          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
73824    AND l_bflow_method_code = 'PRIOR_ENTRY'
73825 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
73826    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
73827          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
73828        )
73829    THEN
73830          xla_ae_lines_pkg.BflowUpgEntry
73831            (p_business_method_code    => l_bflow_method_code
73832            ,p_business_class_code     => l_bflow_class_code
73833            ,p_balance_type            => l_balance_type_code);
73834    ELSE
73835       NULL;
73836 XLA_AE_LINES_PKG.business_flow_validation(
73837                                 p_business_method_code     => l_bflow_method_code
73838                                ,p_business_class_code      => l_bflow_class_code
73839                                ,p_inherit_description_flag => l_inherit_desc_flag);
73840    END IF;
73841 
73842    --
73843    -- call analytical criteria
73844    --
73845    -- Inherited Analytical Criteria for business flow method of Prior Entry.
73846    --
73847    -- call description
73848    --
73849    -- No description or it is inherited.
73850    --
73851    -- call ADRs
73852    -- Bug 4922099
73853    --
73854    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73855         (NVL(l_actual_upg_option, 'N') = 'O') OR
73856         (NVL(l_enc_upg_option, 'N') = 'O')
73857       )
73858    THEN
73859    NULL;
73860    --
73861    --
73862    
73863    --
73864    --
73865    END IF;
73866    --
73867    -- Bug 4922099
73868    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73869           (NVL(l_enc_upg_option, 'N') = 'O')
73870         ) AND
73871         (l_bflow_method_code = 'PRIOR_ENTRY')
73872       )
73873    THEN
73874       IF
73875       --
73876       1 = 1
73877       --
73878       THEN
73879       xla_accounting_err_pkg.build_message
73880                                     (p_appli_s_name            => 'XLA'
73881                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73882                                     ,p_token_1                 => 'LINE_NUMBER'
73883                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
73884                                     ,p_token_2                 => 'LINE_TYPE_NAME'
73885                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
73886                                                                              l_component_type
73887                                                                             ,l_component_code
73888                                                                             ,l_component_type_code
73889                                                                             ,l_component_appl_id
73890                                                                             ,l_amb_context_code
73891                                                                             ,l_entity_code
73892                                                                             ,l_event_class_code
73893                                                                            )
73894                                     ,p_token_3                 => 'OWNER'
73895                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
73896                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
73897                                                                           ,p_lookup_code    => l_component_type_code
73898                                                                          )
73899                                     ,p_token_4                 => 'PRODUCT_NAME'
73900                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
73901                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
73902                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
73903                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
73904                                     ,p_ae_header_id            =>  NULL
73905                                        );
73906 
73907         IF (C_LEVEL_ERROR>= g_log_level) THEN
73908                  trace
73909                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73913       END IF;
73910                       ,p_level    => C_LEVEL_ERROR
73911                       ,p_module   => l_log_module);
73912         END IF;
73914    END IF;
73915    --
73916    --
73917    ------------------------------------------------------------------------------------------------
73918    -- 4219869 Business Flow
73919    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
73920    -- Prior Entry.  Currently, the following code is always generated.
73921    ------------------------------------------------------------------------------------------------
73922    -- No ValidateCurrentLine for business flow method of Prior Entry
73923 
73924    ------------------------------------------------------------------------------------
73925    -- 4219869 Business Flow
73926    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
73927    ------------------------------------------------------------------------------------
73928    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73929 
73930    ----------------------------------------------------------------------------------
73931    -- 4219869 Business Flow
73932    -- Update journal entry status -- Need to generate this within IF <condition>
73933    ----------------------------------------------------------------------------------
73934    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73935          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
73936          ,p_balance_type_code => l_balance_type_code
73937          );
73938 
73939    -------------------------------------------------------------------------------------------
73940    -- 4262811 - Generate the Accrual Reversal lines
73941    -------------------------------------------------------------------------------------------
73942    BEGIN
73943       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
73944                               (g_array_event(p_event_id).array_value_num('header_index'));
73945       IF l_acc_rev_flag IS NULL THEN
73946          l_acc_rev_flag := 'N';
73947       END IF;
73948    EXCEPTION
73949       WHEN OTHERS THEN
73950          l_acc_rev_flag := 'N';
73951    END;
73952    --
73953    IF (l_acc_rev_flag = 'Y') THEN
73954 
73955        -- 4645092  ------------------------------------------------------------------------------
73956        -- To allow MPA report to determine if it should generate report process
73957        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73958        ------------------------------------------------------------------------------------------
73959 
73960        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73961        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73962    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
73963    -- call ADRs
73964    -- Bug 4922099
73965    --
73966    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73967         (NVL(l_actual_upg_option, 'N') = 'O') OR
73968         (NVL(l_enc_upg_option, 'N') = 'O')
73969       )
73970    THEN
73971    NULL;
73972    --
73973    --
73974    
73975    --
73976    --
73977    END IF;
73978 
73979        --
73980        -- Update the line information that should be overwritten
73981        --
73982        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
73983                                          p_header_num   => 1);
73984        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
73985 
73986        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
73987 
73988        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
73989           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
73990        END IF;
73991 
73992       --
73993       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
73994       --
73995       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
73996           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
73997       ELSE
73998           ---------------------------------------------------------------------------------------------------
73999           -- 4262811a Switch Sign
74000           ---------------------------------------------------------------------------------------------------
74001           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
74002           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74003                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74004           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74005                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74006           -- 5132302
74007           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
74008                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74009 
74010       END IF;
74011 
74012       -- 4955764
74013       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74017       XLA_AE_LINES_PKG.ValidateCurrentLine;
74014       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
74015 
74016 
74018       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74019 
74020       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74021                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
74022                ,p_balance_type_code => l_balance_type_code);
74023 
74024    END IF;
74025 
74026    -----------------------------------------------------------------------------------------
74027    -- 4262811 Multiperiod Accounting
74028    -----------------------------------------------------------------------------------------
74029      -- No MPA option is assigned.
74030 
74031 
74032 END IF;
74033 END IF;
74034 --
74035 
74036 --
74037 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74038    trace
74039       (p_msg      => 'END of AcctLineType_134'
74040       ,p_level    => C_LEVEL_PROCEDURE
74041       ,p_module   => l_log_module);
74042 END IF;
74043 --
74044 EXCEPTION
74045   WHEN xla_exceptions_pkg.application_exception THEN
74046       RAISE;
74047   WHEN OTHERS THEN
74048        xla_exceptions_pkg.raise_message
74049            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_134');
74050 END AcctLineType_134;
74051 --
74052 
74053 ---------------------------------------
74054 --
74055 -- PRIVATE FUNCTION
74056 --         AcctLineType_135
74057 --
74058 ---------------------------------------
74059 PROCEDURE AcctLineType_135 (
74060   p_application_id        IN NUMBER
74061  ,p_event_id              IN NUMBER
74062  ,p_calculate_acctd_flag  IN VARCHAR2
74063  ,p_calculate_g_l_flag    IN VARCHAR2
74064  ,p_actual_flag           IN OUT VARCHAR2
74065  ,p_balance_type_code     OUT VARCHAR2
74066  ,p_gain_or_loss_ref      OUT VARCHAR2
74067  
74068 --When to Account for Payment Option
74069  , p_source_50            IN VARCHAR2
74070 --Accounting Reversal Indicator
74071  , p_source_52            IN VARCHAR2
74072 --Business Flow Accounts Payable Application Identifier
74073  , p_source_54            IN NUMBER
74074 --Distribution Link Type
74075  , p_source_60            IN VARCHAR2
74076 --Override Accounted Amount Indicator
74077  , p_source_64            IN VARCHAR2
74078  , p_source_64_meaning    IN VARCHAR2
74079 --Third Party Type
74080  , p_source_67            IN VARCHAR2
74081 --Invoice Distribution Tax Line Identifier
74082  , p_source_69            IN NUMBER
74083 --Invoice Distribution Summary Tax Line Identifier
74084  , p_source_70            IN NUMBER
74085 --Invoice Distribution Tax Distribution Identifier from Tax
74086  , p_source_77            IN NUMBER
74087 --Prepayment Distribution Type
74088  , p_source_78            IN VARCHAR2
74089 --Prepayment Application Distribution Identifier
74090  , p_source_82            IN NUMBER
74091 --Invoice Identifier
74092  , p_source_83            IN NUMBER
74093 --Upgrade Encumbrance Credit Account Class
74094  , p_source_88            IN VARCHAR2
74095 --Payables Encumbrance Upgrade Credit Account
74096  , p_source_89            IN NUMBER
74097 --Payables Encumbrance Upgrade Credit Amount
74098  , p_source_90            IN NUMBER
74099 --Invoice Currency Code
74100  , p_source_91            IN VARCHAR2
74101 --Payables Encumbrance Upgrade Credit Base Amount
74102  , p_source_92            IN NUMBER
74103 --Upgrade Encumbrance Debit Account Class
74104  , p_source_93            IN VARCHAR2
74105 --Payables Encumbrance Upgrade Debit Account
74106  , p_source_94            IN NUMBER
74107 --Payables Encumbrance Upgrade Debit Amount
74108  , p_source_95            IN NUMBER
74109 --Payables Encumbrance Upgrade Debit Base Amount
74110  , p_source_96            IN NUMBER
74111 --Payables Encumbrance Upgrade Option
74112  , p_source_97            IN VARCHAR2
74113 --Prepayment Distribution Amount
74114  , p_source_98            IN NUMBER
74115 --Deferred Accounting End Date
74116  , p_source_101            IN DATE
74117 --Deferred Accounting Option
74118  , p_source_102            IN VARCHAR2
74119 --Deferred Accounting Start Date
74120  , p_source_103            IN DATE
74121 --Identifier of the Prepayment Application Reversed
74122  , p_source_106            IN NUMBER
74123 --Payables Upgrade Credit Encumbrance Type Identifier
74124  , p_source_107            IN NUMBER
74125 --Payables Upgrade Debit Encumbrance Type Identifier
74126  , p_source_108            IN NUMBER
74127 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
74128  , p_source_110            IN NUMBER
74129 --Business Flow Prepay Payment Id
74130  , p_source_144            IN NUMBER
74131 --Business Flow Prepayment Payment Distribution Type
74132  , p_source_145            IN VARCHAR2
74133 --Business Flow Cash Basis Prepayment Entity Code
74134  , p_source_146            IN VARCHAR2
74135 --Business Flow Prepay Payment Distribution Id
74136  , p_source_147            IN NUMBER
74137 )
74138 IS
74139 
74140 l_component_type              VARCHAR2(80);
74141 l_component_code              VARCHAR2(30);
74142 l_component_type_code         VARCHAR2(1);
74143 l_component_appl_id           INTEGER;
74144 l_amb_context_code            VARCHAR2(30);
74145 l_entity_code                 VARCHAR2(30);
74146 l_event_class_code            VARCHAR2(30);
74147 l_ae_header_id                NUMBER;
74148 l_event_type_code             VARCHAR2(30);
74149 l_line_definition_code        VARCHAR2(30);
74153 l_segment                     VARCHAR2(30);
74150 l_line_definition_owner_code  VARCHAR2(1);
74151 --
74152 -- adr variables
74154 l_ccid                        NUMBER;
74155 l_adr_transaction_coa_id      NUMBER;
74156 l_adr_accounting_coa_id       NUMBER;
74157 l_adr_flexfield_segment_code  VARCHAR2(30);
74158 l_adr_flex_value_set_id       NUMBER;
74159 l_adr_value_type_code         VARCHAR2(30);
74160 l_adr_value_combination_id    NUMBER;
74161 l_adr_value_segment_code      VARCHAR2(30);
74162 
74163 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
74164 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
74165 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
74166 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
74167 
74168 -- 4262811 Variables ------------------------------------------------------------------------------------------
74169 l_entered_amt_idx             NUMBER;
74170 l_accted_amt_idx              NUMBER;
74171 l_acc_rev_flag                VARCHAR2(1);
74172 l_accrual_line_num            NUMBER;
74173 l_tmp_amt                     NUMBER;
74174 l_acc_rev_natural_side_code   VARCHAR2(1);
74175 
74176 l_num_entries                 NUMBER;
74177 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
74178 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
74179 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
74180 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
74181 l_recog_line_1                NUMBER;
74182 l_recog_line_2                NUMBER;
74183 
74184 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
74185 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
74186 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
74187 
74188 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
74189 
74190 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
74191 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
74192 
74193 ---------------------------------------------------------------------------------------------------------------
74194 
74195 
74196 --
74197 -- bulk performance
74198 --
74199 l_balance_type_code           VARCHAR2(1);
74200 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
74201 l_log_module                  VARCHAR2(240);
74202 
74203 --
74204 -- Upgrade strategy
74205 --
74206 l_actual_upg_option           VARCHAR2(1);
74207 l_enc_upg_option           VARCHAR2(1);
74208 
74209 --
74210 BEGIN
74211 --
74212 IF g_log_enabled THEN
74213       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_135';
74214 END IF;
74215 --
74216 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74217 
74218       trace
74219          (p_msg      => 'BEGIN of AcctLineType_135'
74220          ,p_level    => C_LEVEL_PROCEDURE
74221          ,p_module   => l_log_module);
74222 
74223 END IF;
74224 --
74225 l_component_type             := 'AMB_JLT';
74226 l_component_code             := 'AP_PREPAID_EXP_CASH_PAY_XRATE';
74227 l_component_type_code        := 'S';
74228 l_component_appl_id          :=  200;
74229 l_amb_context_code           := 'DEFAULT';
74230 l_entity_code                := 'AP_INVOICES';
74231 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
74232 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
74233 l_line_definition_owner_code := 'S';
74234 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
74235 --
74236 l_balance_type_code          := 'A';
74237 l_segment                     := NULL;
74238 l_ccid                        := NULL;
74239 l_adr_transaction_coa_id      := NULL;
74240 l_adr_accounting_coa_id       := NULL;
74241 l_adr_flexfield_segment_code  := NULL;
74242 l_adr_flex_value_set_id       := NULL;
74243 l_adr_value_type_code         := NULL;
74244 l_adr_value_combination_id    := NULL;
74245 l_adr_value_segment_code      := NULL;
74246 
74247 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
74248 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
74249 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
74250 l_budgetary_control_flag     := 'N';
74251 
74252 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
74253 l_bflow_applied_to_amt       := NULL; -- 5132302
74254 l_entered_amt_idx            := NULL;          -- 4262811
74255 l_accted_amt_idx             := NULL;          -- 4262811
74256 l_acc_rev_flag               := NULL;          -- 4262811
74257 l_accrual_line_num           := NULL;          -- 4262811
74258 l_tmp_amt                    := NULL;          -- 4262811
74259 --
74260  
74261 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
74262     l_balance_type_code <> 'B' THEN
74263 IF NVL(p_source_50,'
74264 ') <>  'CLEAR_CLEAR' AND 
74265 (NVL(p_source_78,'
74266 ') =  'PREPAY APPL' OR 
74267 NVL(p_source_78,'
74268 ') =  'PREPAY APPL NONREC TAX' OR 
74269 NVL(p_source_78,'
74270 ') =  'PREPAY APPL REC TAX' OR 
74271 NVL(p_source_78,'
74272 ') =  'TAX DIFF' OR 
74273 NVL(p_source_78,'
74274 ') =  'FINAL APPLICATION ROUNDING')
74275  THEN 
74276 
74277    --
74278    XLA_AE_LINES_PKG.SetNewLine;
74279 
74283    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
74280    p_balance_type_code          := l_balance_type_code;
74281    -- set the flag so later we will know whether the gain loss line needs to be created
74282    
74284      p_actual_flag :='A';
74285    END IF;
74286 
74287    --
74288    -- bulk performance
74289    --
74290    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
74291                                       p_header_num   => 0); -- 4262811
74292    --
74293    -- set accounting line options
74294    --
74295    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
74296            p_natural_side_code          => 'D'
74297          , p_gain_or_loss_flag          => 'N'
74298          , p_gl_transfer_mode_code      => 'S'
74299          , p_acct_entry_type_code       => 'A'
74300          , p_switch_side_flag           => 'Y'
74301          , p_merge_duplicate_code       => 'A'
74302          );
74303    --
74304    l_acc_rev_natural_side_code := 'C';  -- 4262811
74305    -- 
74306    --
74307    -- set accounting line type info
74308    --
74309    xla_ae_lines_pkg.SetAcctLineType
74310       (p_component_type             => l_component_type
74311       ,p_event_type_code            => l_event_type_code
74312       ,p_line_definition_owner_code => l_line_definition_owner_code
74313       ,p_line_definition_code       => l_line_definition_code
74314       ,p_accounting_line_code       => l_component_code
74315       ,p_accounting_line_type_code  => l_component_type_code
74316       ,p_accounting_line_appl_id    => l_component_appl_id
74317       ,p_amb_context_code           => l_amb_context_code
74318       ,p_entity_code                => l_entity_code
74319       ,p_event_class_code           => l_event_class_code);
74320    --
74321    -- set accounting class
74322    --
74323    xla_ae_lines_pkg.SetAcctClass(
74324            p_accounting_class_code  => 'PREPAID_EXPENSE'
74325          , p_ae_header_id           => l_ae_header_id
74326          );
74327 
74328    --
74329    -- set rounding class
74330    --
74331    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
74332                       'PREPAID_EXPENSE';
74333 
74334    --
74335    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
74336    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
74337    --
74338    -- bulk performance
74339    --
74340    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
74341 
74342    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
74343       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
74344 
74345    -- 4955764
74346    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74347       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
74348 
74349    -- 4458381 Public Sector Enh
74350    
74351    --
74352    -- set accounting attributes for the line type
74353    --
74354    l_entered_amt_idx := 25;
74355    l_accted_amt_idx  := 27;
74356    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
74357    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
74358    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
74359    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
74360    l_rec_acct_attrs.array_num_value(2)  := 
74361 xla_ae_sources_pkg.GetSystemSourceNum(
74362    p_source_code           => 'XLA_EVENT_APPL_ID'
74363  , p_source_type_code      => 'Y'
74364  , p_source_application_id =>  602
74365 );
74366    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
74367    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
74368    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
74369    l_rec_acct_attrs.array_char_value(4)  := 
74370 xla_ae_sources_pkg.GetSystemSourceChar(
74371    p_source_code           => 'XLA_ENTITY_CODE'
74372  , p_source_type_code      => 'Y'
74373  , p_source_application_id =>  602
74374 );
74375    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
74376    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
74377    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
74378    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
74379    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
74380    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
74381    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
74382    l_rec_acct_attrs.array_char_value(8)  := p_source_145;
74383    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
74384    l_rec_acct_attrs.array_char_value(9)  := p_source_146;
74385    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
74386    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_147);
74387    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
74388    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_144);
74389    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
74390    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
74391    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
74392    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
74396    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
74393    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
74394    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
74395    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
74397    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
74398    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
74399    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
74400    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
74401    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
74402    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
74403    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
74404    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
74405    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
74406    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
74407    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
74408    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
74409    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
74410    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
74411    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
74412    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
74413    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
74414    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
74415    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
74416    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
74417    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
74418    l_rec_acct_attrs.array_char_value(26)  := p_source_91;
74419    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
74420    l_rec_acct_attrs.array_num_value(27)  := p_source_110;
74421    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
74422    l_rec_acct_attrs.array_date_value(28)  := p_source_101;
74423    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
74424    l_rec_acct_attrs.array_char_value(29)  := p_source_102;
74425    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
74426    l_rec_acct_attrs.array_date_value(30)  := p_source_103;
74427    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
74428    l_rec_acct_attrs.array_char_value(31)  := p_source_64;
74429    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
74430    l_rec_acct_attrs.array_char_value(32)  := p_source_67;
74431    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
74432    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_106);
74433    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
74434    l_rec_acct_attrs.array_char_value(34)  := p_source_60;
74435    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
74436    l_rec_acct_attrs.array_num_value(35)  := p_source_69;
74437    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
74438    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
74439    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
74440    l_rec_acct_attrs.array_num_value(37)  := p_source_70;
74441    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
74442    l_rec_acct_attrs.array_num_value(38)  := p_source_107;
74443    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
74444    l_rec_acct_attrs.array_num_value(39)  := p_source_108;
74445 
74446    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
74447    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
74448 
74449    ---------------------------------------------------------------------------------------------------------------
74450    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
74451    ---------------------------------------------------------------------------------------------------------------
74452    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
74453 
74454    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74455    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74456 
74457    IF xla_accounting_cache_pkg.GetValueChar
74458          (p_source_code         => 'LEDGER_CATEGORY_CODE'
74459          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
74460    AND l_bflow_method_code = 'PRIOR_ENTRY'
74461 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
74462    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
74463          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
74464        )
74465    THEN
74466          xla_ae_lines_pkg.BflowUpgEntry
74467            (p_business_method_code    => l_bflow_method_code
74468            ,p_business_class_code     => l_bflow_class_code
74469            ,p_balance_type            => l_balance_type_code);
74470    ELSE
74471       NULL;
74472 XLA_AE_LINES_PKG.business_flow_validation(
74473                                 p_business_method_code     => l_bflow_method_code
74474                                ,p_business_class_code      => l_bflow_class_code
74475                                ,p_inherit_description_flag => l_inherit_desc_flag);
74476    END IF;
74477 
74478    --
74479    -- call analytical criteria
74480    --
74484    --
74481    -- Inherited Analytical Criteria for business flow method of Prior Entry.
74482    --
74483    -- call description
74485    -- No description or it is inherited.
74486    --
74487    -- call ADRs
74488    -- Bug 4922099
74489    --
74490    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74491         (NVL(l_actual_upg_option, 'N') = 'O') OR
74492         (NVL(l_enc_upg_option, 'N') = 'O')
74493       )
74494    THEN
74495    NULL;
74496    --
74497    --
74498    
74499    --
74500    --
74501    END IF;
74502    --
74503    -- Bug 4922099
74504    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
74505           (NVL(l_enc_upg_option, 'N') = 'O')
74506         ) AND
74507         (l_bflow_method_code = 'PRIOR_ENTRY')
74508       )
74509    THEN
74510       IF
74511       --
74512       1 = 1
74513       --
74514       THEN
74515       xla_accounting_err_pkg.build_message
74516                                     (p_appli_s_name            => 'XLA'
74517                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74518                                     ,p_token_1                 => 'LINE_NUMBER'
74519                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
74520                                     ,p_token_2                 => 'LINE_TYPE_NAME'
74521                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
74522                                                                              l_component_type
74523                                                                             ,l_component_code
74524                                                                             ,l_component_type_code
74525                                                                             ,l_component_appl_id
74526                                                                             ,l_amb_context_code
74527                                                                             ,l_entity_code
74528                                                                             ,l_event_class_code
74529                                                                            )
74530                                     ,p_token_3                 => 'OWNER'
74531                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
74532                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
74533                                                                           ,p_lookup_code    => l_component_type_code
74534                                                                          )
74535                                     ,p_token_4                 => 'PRODUCT_NAME'
74536                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
74537                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
74538                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
74539                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
74540                                     ,p_ae_header_id            =>  NULL
74541                                        );
74542 
74543         IF (C_LEVEL_ERROR>= g_log_level) THEN
74544                  trace
74545                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74546                       ,p_level    => C_LEVEL_ERROR
74547                       ,p_module   => l_log_module);
74548         END IF;
74549       END IF;
74550    END IF;
74551    --
74552    --
74553    ------------------------------------------------------------------------------------------------
74554    -- 4219869 Business Flow
74555    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
74556    -- Prior Entry.  Currently, the following code is always generated.
74557    ------------------------------------------------------------------------------------------------
74558    -- No ValidateCurrentLine for business flow method of Prior Entry
74559 
74560    ------------------------------------------------------------------------------------
74561    -- 4219869 Business Flow
74562    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
74563    ------------------------------------------------------------------------------------
74564    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74565 
74566    ----------------------------------------------------------------------------------
74567    -- 4219869 Business Flow
74568    -- Update journal entry status -- Need to generate this within IF <condition>
74569    ----------------------------------------------------------------------------------
74570    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74571          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
74572          ,p_balance_type_code => l_balance_type_code
74573          );
74574 
74575    -------------------------------------------------------------------------------------------
74576    -- 4262811 - Generate the Accrual Reversal lines
74577    -------------------------------------------------------------------------------------------
74578    BEGIN
74579       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
74583       END IF;
74580                               (g_array_event(p_event_id).array_value_num('header_index'));
74581       IF l_acc_rev_flag IS NULL THEN
74582          l_acc_rev_flag := 'N';
74584    EXCEPTION
74585       WHEN OTHERS THEN
74586          l_acc_rev_flag := 'N';
74587    END;
74588    --
74589    IF (l_acc_rev_flag = 'Y') THEN
74590 
74591        -- 4645092  ------------------------------------------------------------------------------
74592        -- To allow MPA report to determine if it should generate report process
74593        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
74594        ------------------------------------------------------------------------------------------
74595 
74596        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
74597        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
74598    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
74599    -- call ADRs
74600    -- Bug 4922099
74601    --
74602    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74603         (NVL(l_actual_upg_option, 'N') = 'O') OR
74604         (NVL(l_enc_upg_option, 'N') = 'O')
74605       )
74606    THEN
74607    NULL;
74608    --
74609    --
74610    
74611    --
74612    --
74613    END IF;
74614 
74615        --
74616        -- Update the line information that should be overwritten
74617        --
74618        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
74619                                          p_header_num   => 1);
74620        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
74621 
74622        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
74623 
74624        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
74625           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
74626        END IF;
74627 
74628       --
74629       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
74630       --
74631       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
74632           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
74633       ELSE
74634           ---------------------------------------------------------------------------------------------------
74635           -- 4262811a Switch Sign
74636           ---------------------------------------------------------------------------------------------------
74637           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
74638           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74639                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74640           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74641                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74642           -- 5132302
74643           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
74644                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74645 
74646       END IF;
74647 
74648       -- 4955764
74649       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74650       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
74651 
74652 
74653       XLA_AE_LINES_PKG.ValidateCurrentLine;
74654       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74655 
74656       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74657                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
74658                ,p_balance_type_code => l_balance_type_code);
74659 
74660    END IF;
74661 
74662    -----------------------------------------------------------------------------------------
74663    -- 4262811 Multiperiod Accounting
74664    -----------------------------------------------------------------------------------------
74665      -- No MPA option is assigned.
74666 
74667 
74668 END IF;
74669 END IF;
74670 --
74671 
74672 --
74673 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74674    trace
74675       (p_msg      => 'END of AcctLineType_135'
74676       ,p_level    => C_LEVEL_PROCEDURE
74677       ,p_module   => l_log_module);
74678 END IF;
74679 --
74680 EXCEPTION
74681   WHEN xla_exceptions_pkg.application_exception THEN
74682       RAISE;
74683   WHEN OTHERS THEN
74684        xla_exceptions_pkg.raise_message
74685            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_135');
74686 END AcctLineType_135;
74687 --
74688 
74689 ---------------------------------------
74690 --
74691 -- PRIVATE FUNCTION
74692 --         AcctLineType_136
74693 --
74694 ---------------------------------------
74695 PROCEDURE AcctLineType_136 (
74696   p_application_id        IN NUMBER
74697  ,p_event_id              IN NUMBER
74698  ,p_calculate_acctd_flag  IN VARCHAR2
74699  ,p_calculate_g_l_flag    IN VARCHAR2
74700  ,p_actual_flag           IN OUT VARCHAR2
74701  ,p_balance_type_code     OUT VARCHAR2
74702  ,p_gain_or_loss_ref      OUT VARCHAR2
74703  
74704 --Recipient Invoice Distribution Account
74705  , p_source_48            IN NUMBER
74709  , p_source_52            IN VARCHAR2
74706 --When to Account for Payment Option
74707  , p_source_50            IN VARCHAR2
74708 --Accounting Reversal Indicator
74710 --Business Flow Accounts Payable Application Identifier
74711  , p_source_54            IN NUMBER
74712 --Distribution Link Type
74713  , p_source_60            IN VARCHAR2
74714 --Override Accounted Amount Indicator
74715  , p_source_64            IN VARCHAR2
74716  , p_source_64_meaning    IN VARCHAR2
74717 --Third Party Type
74718  , p_source_67            IN VARCHAR2
74719 --Invoice Distribution Tax Line Identifier
74720  , p_source_69            IN NUMBER
74721 --Invoice Distribution Summary Tax Line Identifier
74722  , p_source_70            IN NUMBER
74723 --Invoice Distribution Tax Distribution Identifier from Tax
74724  , p_source_77            IN NUMBER
74725 --Prepayment Distribution Type
74726  , p_source_78            IN VARCHAR2
74727 --Recipient Invoice Distribution Type
74728  , p_source_79            IN VARCHAR2
74729  , p_source_79_meaning    IN VARCHAR2
74730 --Prepayment Application Distribution Identifier
74731  , p_source_82            IN NUMBER
74732 --Invoice Identifier
74733  , p_source_83            IN NUMBER
74734 --Business Flow Prepayment Invoice Distribution Type
74735  , p_source_84            IN VARCHAR2
74736 --Business Flow Prepayment Invoice Entity Code
74737  , p_source_85            IN VARCHAR2
74738 --Business Flow Prepayment Invoice Distribution Identifier
74739  , p_source_86            IN NUMBER
74740 --Business Flow Prepayment Invoice Identifier
74741  , p_source_87            IN NUMBER
74742 --Upgrade Encumbrance Credit Account Class
74743  , p_source_88            IN VARCHAR2
74744 --Payables Encumbrance Upgrade Credit Account
74745  , p_source_89            IN NUMBER
74746 --Payables Encumbrance Upgrade Credit Amount
74747  , p_source_90            IN NUMBER
74748 --Invoice Currency Code
74749  , p_source_91            IN VARCHAR2
74750 --Payables Encumbrance Upgrade Credit Base Amount
74751  , p_source_92            IN NUMBER
74752 --Upgrade Encumbrance Debit Account Class
74753  , p_source_93            IN VARCHAR2
74754 --Payables Encumbrance Upgrade Debit Account
74755  , p_source_94            IN NUMBER
74756 --Payables Encumbrance Upgrade Debit Amount
74757  , p_source_95            IN NUMBER
74758 --Payables Encumbrance Upgrade Debit Base Amount
74759  , p_source_96            IN NUMBER
74760 --Payables Encumbrance Upgrade Option
74761  , p_source_97            IN VARCHAR2
74762 --Prepayment Distribution Amount
74763  , p_source_98            IN NUMBER
74764 --Prepayment Clearing Currency Code
74765  , p_source_99            IN VARCHAR2
74766 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
74767  , p_source_100            IN NUMBER
74768 --Deferred Accounting End Date
74769  , p_source_101            IN DATE
74770 --Deferred Accounting Option
74771  , p_source_102            IN VARCHAR2
74772 --Deferred Accounting Start Date
74773  , p_source_103            IN DATE
74774 --Invoice Supplier Identifier
74775  , p_source_104            IN NUMBER
74776 --Invoice Supplier Site Identifier
74777  , p_source_105            IN NUMBER
74778 --Identifier of the Prepayment Application Reversed
74779  , p_source_106            IN NUMBER
74780 --Payables Upgrade Credit Encumbrance Type Identifier
74781  , p_source_107            IN NUMBER
74782 --Payables Upgrade Debit Encumbrance Type Identifier
74783  , p_source_108            IN NUMBER
74784 --Prepayment Clearing Exchange Date
74785  , p_source_125            IN DATE
74786 --Prepayment Clearing Exchange Rate
74787  , p_source_126            IN NUMBER
74788 --Prepayment Clearing Exchange Rate Type
74789  , p_source_127            IN VARCHAR2
74790 )
74791 IS
74792 
74793 l_component_type              VARCHAR2(80);
74794 l_component_code              VARCHAR2(30);
74795 l_component_type_code         VARCHAR2(1);
74796 l_component_appl_id           INTEGER;
74797 l_amb_context_code            VARCHAR2(30);
74798 l_entity_code                 VARCHAR2(30);
74799 l_event_class_code            VARCHAR2(30);
74800 l_ae_header_id                NUMBER;
74801 l_event_type_code             VARCHAR2(30);
74802 l_line_definition_code        VARCHAR2(30);
74803 l_line_definition_owner_code  VARCHAR2(1);
74804 --
74805 -- adr variables
74806 l_segment                     VARCHAR2(30);
74807 l_ccid                        NUMBER;
74808 l_adr_transaction_coa_id      NUMBER;
74809 l_adr_accounting_coa_id       NUMBER;
74810 l_adr_flexfield_segment_code  VARCHAR2(30);
74811 l_adr_flex_value_set_id       NUMBER;
74812 l_adr_value_type_code         VARCHAR2(30);
74813 l_adr_value_combination_id    NUMBER;
74814 l_adr_value_segment_code      VARCHAR2(30);
74815 
74816 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
74817 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
74818 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
74819 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
74820 
74821 -- 4262811 Variables ------------------------------------------------------------------------------------------
74822 l_entered_amt_idx             NUMBER;
74823 l_accted_amt_idx              NUMBER;
74824 l_acc_rev_flag                VARCHAR2(1);
74825 l_accrual_line_num            NUMBER;
74826 l_tmp_amt                     NUMBER;
74827 l_acc_rev_natural_side_code   VARCHAR2(1);
74828 
74829 l_num_entries                 NUMBER;
74833 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
74830 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
74831 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
74832 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
74834 l_recog_line_1                NUMBER;
74835 l_recog_line_2                NUMBER;
74836 
74837 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
74838 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
74839 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
74840 
74841 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
74842 
74843 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
74844 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
74845 
74846 ---------------------------------------------------------------------------------------------------------------
74847 
74848 
74849 --
74850 -- bulk performance
74851 --
74852 l_balance_type_code           VARCHAR2(1);
74853 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
74854 l_log_module                  VARCHAR2(240);
74855 
74856 --
74857 -- Upgrade strategy
74858 --
74859 l_actual_upg_option           VARCHAR2(1);
74860 l_enc_upg_option           VARCHAR2(1);
74861 
74862 --
74863 BEGIN
74864 --
74865 IF g_log_enabled THEN
74866       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_136';
74867 END IF;
74868 --
74869 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74870 
74871       trace
74872          (p_msg      => 'BEGIN of AcctLineType_136'
74873          ,p_level    => C_LEVEL_PROCEDURE
74874          ,p_module   => l_log_module);
74875 
74876 END IF;
74877 --
74878 l_component_type             := 'AMB_JLT';
74879 l_component_code             := 'AP_RECOV_PREPAY_CLR_RATE_APP';
74880 l_component_type_code        := 'S';
74881 l_component_appl_id          :=  200;
74882 l_amb_context_code           := 'DEFAULT';
74883 l_entity_code                := 'AP_INVOICES';
74884 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
74885 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
74886 l_line_definition_owner_code := 'S';
74887 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
74888 --
74889 l_balance_type_code          := 'A';
74890 l_segment                     := NULL;
74891 l_ccid                        := NULL;
74892 l_adr_transaction_coa_id      := NULL;
74893 l_adr_accounting_coa_id       := NULL;
74894 l_adr_flexfield_segment_code  := NULL;
74895 l_adr_flex_value_set_id       := NULL;
74896 l_adr_value_type_code         := NULL;
74897 l_adr_value_combination_id    := NULL;
74898 l_adr_value_segment_code      := NULL;
74899 
74900 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
74901 l_bflow_class_code           := '';    -- 4219869 Business Flow
74902 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
74903 l_budgetary_control_flag     := 'N';
74904 
74905 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
74906 l_bflow_applied_to_amt       := NULL; -- 5132302
74907 l_entered_amt_idx            := NULL;          -- 4262811
74908 l_accted_amt_idx             := NULL;          -- 4262811
74909 l_acc_rev_flag               := NULL;          -- 4262811
74910 l_accrual_line_num           := NULL;          -- 4262811
74911 l_tmp_amt                    := NULL;          -- 4262811
74912 --
74913  
74914 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
74915     l_balance_type_code <> 'B' THEN
74916 IF NVL(p_source_50,'
74917 ') =  'CLEAR_CLEAR' AND 
74918 (NVL(p_source_78,'
74919 ') =  'PREPAY APPL' OR 
74920 NVL(p_source_78,'
74921 ') =  'PREPAY APPL NONREC TAX' OR 
74922 NVL(p_source_78,'
74923 ') =  'PREPAY APPL REC TAX') AND 
74924 NVL(p_source_79,'
74925 ') =  'REC_TAX'
74926  THEN 
74927 
74928    --
74929    XLA_AE_LINES_PKG.SetNewLine;
74930 
74931    p_balance_type_code          := l_balance_type_code;
74932    -- set the flag so later we will know whether the gain loss line needs to be created
74933    
74934    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
74935      p_actual_flag :='A';
74936    END IF;
74937 
74938    --
74939    -- bulk performance
74940    --
74941    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
74942                                       p_header_num   => 0); -- 4262811
74943    --
74944    -- set accounting line options
74945    --
74946    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
74947            p_natural_side_code          => 'C'
74948          , p_gain_or_loss_flag          => 'N'
74949          , p_gl_transfer_mode_code      => 'S'
74950          , p_acct_entry_type_code       => 'A'
74951          , p_switch_side_flag           => 'Y'
74952          , p_merge_duplicate_code       => 'A'
74953          );
74954    --
74955    l_acc_rev_natural_side_code := 'D';  -- 4262811
74956    -- 
74957    --
74958    -- set accounting line type info
74959    --
74960    xla_ae_lines_pkg.SetAcctLineType
74961       (p_component_type             => l_component_type
74962       ,p_event_type_code            => l_event_type_code
74963       ,p_line_definition_owner_code => l_line_definition_owner_code
74964       ,p_line_definition_code       => l_line_definition_code
74968       ,p_amb_context_code           => l_amb_context_code
74965       ,p_accounting_line_code       => l_component_code
74966       ,p_accounting_line_type_code  => l_component_type_code
74967       ,p_accounting_line_appl_id    => l_component_appl_id
74969       ,p_entity_code                => l_entity_code
74970       ,p_event_class_code           => l_event_class_code);
74971    --
74972    -- set accounting class
74973    --
74974    xla_ae_lines_pkg.SetAcctClass(
74975            p_accounting_class_code  => 'RTAX'
74976          , p_ae_header_id           => l_ae_header_id
74977          );
74978 
74979    --
74980    -- set rounding class
74981    --
74982    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
74983                       'RTAX';
74984 
74985    --
74986    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
74987    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
74988    --
74989    -- bulk performance
74990    --
74991    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
74992 
74993    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
74994       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
74995 
74996    -- 4955764
74997    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74998       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
74999 
75000    -- 4458381 Public Sector Enh
75001    
75002    --
75003    -- set accounting attributes for the line type
75004    --
75005    l_entered_amt_idx := 25;
75006    l_accted_amt_idx  := 30;
75007    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
75008    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
75009    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
75010    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
75011    l_rec_acct_attrs.array_num_value(2)  := 
75012 xla_ae_sources_pkg.GetSystemSourceNum(
75013    p_source_code           => 'XLA_EVENT_APPL_ID'
75014  , p_source_type_code      => 'Y'
75015  , p_source_application_id =>  602
75016 );
75017    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
75018    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
75019    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
75020    l_rec_acct_attrs.array_char_value(4)  := 
75021 xla_ae_sources_pkg.GetSystemSourceChar(
75022    p_source_code           => 'XLA_ENTITY_CODE'
75023  , p_source_type_code      => 'Y'
75024  , p_source_application_id =>  602
75025 );
75026    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
75027    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
75028    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
75029    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
75030    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
75031    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
75032    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
75033    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
75034    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
75035    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
75036    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
75037    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
75038    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
75039    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
75040    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
75041    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
75042    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
75043    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
75044    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
75045    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
75046    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
75047    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
75048    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
75049    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
75050    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
75051    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
75052    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
75053    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
75054    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
75055    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
75056    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
75057    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
75058    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
75059    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
75060    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
75061    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
75062    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
75063    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
75064    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
75068    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
75065    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
75066    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
75067    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
75069    l_rec_acct_attrs.array_char_value(26)  := p_source_99;
75070    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
75071    l_rec_acct_attrs.array_date_value(27)  := p_source_125;
75072    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
75073    l_rec_acct_attrs.array_num_value(28)  := p_source_126;
75074    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
75075    l_rec_acct_attrs.array_char_value(29)  := p_source_127;
75076    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
75077    l_rec_acct_attrs.array_num_value(30)  := p_source_100;
75078    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
75079    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
75080    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
75081    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
75082    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
75083    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
75084    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
75085    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
75086    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
75087    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
75088    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
75089    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
75090    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
75091    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
75092    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
75093    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
75094    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
75095    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
75096    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
75097    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
75098    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
75099    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
75100    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
75101    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
75102    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
75103    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
75104    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
75105    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
75106 
75107    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
75108    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
75109 
75110    ---------------------------------------------------------------------------------------------------------------
75111    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
75112    ---------------------------------------------------------------------------------------------------------------
75113    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
75114 
75115    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75116    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75117 
75118    IF xla_accounting_cache_pkg.GetValueChar
75119          (p_source_code         => 'LEDGER_CATEGORY_CODE'
75120          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
75121    AND l_bflow_method_code = 'PRIOR_ENTRY'
75122 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
75123    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
75124          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
75125        )
75126    THEN
75127          xla_ae_lines_pkg.BflowUpgEntry
75128            (p_business_method_code    => l_bflow_method_code
75129            ,p_business_class_code     => l_bflow_class_code
75130            ,p_balance_type            => l_balance_type_code);
75131    ELSE
75132       NULL;
75133 -- No business flow processing for business flow method of NONE.
75134    END IF;
75135 
75136    --
75137    -- call analytical criteria
75138    --
75139    
75140    --
75141    -- call description
75142    --
75143    -- No description or it is inherited.
75144    --
75145    -- call ADRs
75146    -- Bug 4922099
75147    --
75148    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75149         (NVL(l_actual_upg_option, 'N') = 'O') OR
75150         (NVL(l_enc_upg_option, 'N') = 'O')
75151       )
75152    THEN
75153    NULL;
75154    --
75155    --
75156    
75157   l_ccid := AcctDerRule_35(
75158            p_application_id           => p_application_id
75159          , p_ae_header_id             => l_ae_header_id 
75160 , p_source_48 => p_source_48
75161          , x_transaction_coa_id       => l_adr_transaction_coa_id
75162          , x_accounting_coa_id        => l_adr_accounting_coa_id
75163          , x_value_type_code          => l_adr_value_type_code
75164          , p_side                     => 'NA'
75165    );
75166 
75167    xla_ae_lines_pkg.set_ccid(
75168     p_code_combination_id          => l_ccid
75172   , p_adr_code                     => 'AP_RECP_INV_DIST'
75169   , p_value_type_code              => l_adr_value_type_code
75170   , p_transaction_coa_id           => l_adr_transaction_coa_id
75171   , p_accounting_coa_id            => l_adr_accounting_coa_id
75173   , p_adr_type_code                => 'S'
75174   , p_component_type               => l_component_type
75175   , p_component_code               => l_component_code
75176   , p_component_type_code          => l_component_type_code
75177   , p_component_appl_id            => l_component_appl_id
75178   , p_amb_context_code             => l_amb_context_code
75179   , p_side                         => 'NA'
75180   );
75181 
75182 
75183    --
75184    --
75185    END IF;
75186    --
75187    -- Bug 4922099
75188    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
75189           (NVL(l_enc_upg_option, 'N') = 'O')
75190         ) AND
75191         (l_bflow_method_code = 'PRIOR_ENTRY')
75192       )
75193    THEN
75194       IF
75195       --
75196       1 = 2
75197       --
75198       THEN
75199       xla_accounting_err_pkg.build_message
75200                                     (p_appli_s_name            => 'XLA'
75201                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75202                                     ,p_token_1                 => 'LINE_NUMBER'
75203                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
75204                                     ,p_token_2                 => 'LINE_TYPE_NAME'
75205                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
75206                                                                              l_component_type
75207                                                                             ,l_component_code
75208                                                                             ,l_component_type_code
75209                                                                             ,l_component_appl_id
75210                                                                             ,l_amb_context_code
75211                                                                             ,l_entity_code
75212                                                                             ,l_event_class_code
75213                                                                            )
75214                                     ,p_token_3                 => 'OWNER'
75215                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
75216                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
75217                                                                           ,p_lookup_code    => l_component_type_code
75218                                                                          )
75219                                     ,p_token_4                 => 'PRODUCT_NAME'
75220                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
75221                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
75222                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
75223                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
75224                                     ,p_ae_header_id            =>  NULL
75225                                        );
75226 
75227         IF (C_LEVEL_ERROR>= g_log_level) THEN
75228                  trace
75229                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75230                       ,p_level    => C_LEVEL_ERROR
75231                       ,p_module   => l_log_module);
75232         END IF;
75233       END IF;
75234    END IF;
75235    --
75236    --
75237    ------------------------------------------------------------------------------------------------
75238    -- 4219869 Business Flow
75239    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
75240    -- Prior Entry.  Currently, the following code is always generated.
75241    ------------------------------------------------------------------------------------------------
75242    XLA_AE_LINES_PKG.ValidateCurrentLine;
75243 
75244    ------------------------------------------------------------------------------------
75245    -- 4219869 Business Flow
75246    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
75247    ------------------------------------------------------------------------------------
75248    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75249 
75250    ----------------------------------------------------------------------------------
75251    -- 4219869 Business Flow
75252    -- Update journal entry status -- Need to generate this within IF <condition>
75253    ----------------------------------------------------------------------------------
75254    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75255          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
75256          ,p_balance_type_code => l_balance_type_code
75257          );
75258 
75259    -------------------------------------------------------------------------------------------
75260    -- 4262811 - Generate the Accrual Reversal lines
75261    -------------------------------------------------------------------------------------------
75262    BEGIN
75263       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
75267       END IF;
75264                               (g_array_event(p_event_id).array_value_num('header_index'));
75265       IF l_acc_rev_flag IS NULL THEN
75266          l_acc_rev_flag := 'N';
75268    EXCEPTION
75269       WHEN OTHERS THEN
75270          l_acc_rev_flag := 'N';
75271    END;
75272    --
75273    IF (l_acc_rev_flag = 'Y') THEN
75274 
75275        -- 4645092  ------------------------------------------------------------------------------
75276        -- To allow MPA report to determine if it should generate report process
75277        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
75278        ------------------------------------------------------------------------------------------
75279 
75280        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
75281        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
75282    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
75283    -- call ADRs
75284    -- Bug 4922099
75285    --
75286    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75287         (NVL(l_actual_upg_option, 'N') = 'O') OR
75288         (NVL(l_enc_upg_option, 'N') = 'O')
75289       )
75290    THEN
75291    NULL;
75292    --
75293    --
75294    
75295   l_ccid := AcctDerRule_35(
75296            p_application_id           => p_application_id
75297          , p_ae_header_id             => l_ae_header_id 
75298 , p_source_48 => p_source_48
75299          , x_transaction_coa_id       => l_adr_transaction_coa_id
75300          , x_accounting_coa_id        => l_adr_accounting_coa_id
75301          , x_value_type_code          => l_adr_value_type_code
75302          , p_side                     => 'NA'
75303    );
75304 
75305    xla_ae_lines_pkg.set_ccid(
75306     p_code_combination_id          => l_ccid
75307   , p_value_type_code              => l_adr_value_type_code
75308   , p_transaction_coa_id           => l_adr_transaction_coa_id
75309   , p_accounting_coa_id            => l_adr_accounting_coa_id
75310   , p_adr_code                     => 'AP_RECP_INV_DIST'
75311   , p_adr_type_code                => 'S'
75312   , p_component_type               => l_component_type
75313   , p_component_code               => l_component_code
75314   , p_component_type_code          => l_component_type_code
75315   , p_component_appl_id            => l_component_appl_id
75316   , p_amb_context_code             => l_amb_context_code
75317   , p_side                         => 'NA'
75318   );
75319 
75320 
75321    --
75322    --
75323    END IF;
75324 
75325        --
75326        -- Update the line information that should be overwritten
75327        --
75328        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
75329                                          p_header_num   => 1);
75330        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
75331 
75332        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
75333 
75334        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
75335           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
75336        END IF;
75337 
75338       --
75339       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
75340       --
75341       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
75342           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
75343       ELSE
75344           ---------------------------------------------------------------------------------------------------
75345           -- 4262811a Switch Sign
75346           ---------------------------------------------------------------------------------------------------
75347           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
75348           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75349                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75350           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75351                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75352           -- 5132302
75353           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
75354                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75355 
75356       END IF;
75357 
75358       -- 4955764
75359       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75360       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
75361 
75362 
75363       XLA_AE_LINES_PKG.ValidateCurrentLine;
75364       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75365 
75366       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75367                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
75368                ,p_balance_type_code => l_balance_type_code);
75369 
75370    END IF;
75371 
75372    -----------------------------------------------------------------------------------------
75373    -- 4262811 Multiperiod Accounting
75374    -----------------------------------------------------------------------------------------
75375      -- No MPA option is assigned.
75376 
75377 
75378 END IF;
75379 END IF;
75383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75380 --
75381 
75382 --
75384    trace
75385       (p_msg      => 'END of AcctLineType_136'
75386       ,p_level    => C_LEVEL_PROCEDURE
75387       ,p_module   => l_log_module);
75388 END IF;
75389 --
75390 EXCEPTION
75391   WHEN xla_exceptions_pkg.application_exception THEN
75392       RAISE;
75393   WHEN OTHERS THEN
75394        xla_exceptions_pkg.raise_message
75395            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_136');
75396 END AcctLineType_136;
75397 --
75398 
75399 ---------------------------------------
75400 --
75401 -- PRIVATE FUNCTION
75402 --         AcctLineType_137
75403 --
75404 ---------------------------------------
75405 PROCEDURE AcctLineType_137 (
75406   p_application_id        IN NUMBER
75407  ,p_event_id              IN NUMBER
75408  ,p_calculate_acctd_flag  IN VARCHAR2
75409  ,p_calculate_g_l_flag    IN VARCHAR2
75410  ,p_actual_flag           IN OUT VARCHAR2
75411  ,p_balance_type_code     OUT VARCHAR2
75412  ,p_gain_or_loss_ref      OUT VARCHAR2
75413  
75414 --Recipient Invoice Distribution Account
75415  , p_source_48            IN NUMBER
75416 --When to Account for Payment Option
75417  , p_source_50            IN VARCHAR2
75418 --Accounting Reversal Indicator
75419  , p_source_52            IN VARCHAR2
75420 --Business Flow Accounts Payable Application Identifier
75421  , p_source_54            IN NUMBER
75422 --Distribution Link Type
75423  , p_source_60            IN VARCHAR2
75424 --Override Accounted Amount Indicator
75425  , p_source_64            IN VARCHAR2
75426  , p_source_64_meaning    IN VARCHAR2
75427 --Third Party Type
75428  , p_source_67            IN VARCHAR2
75429 --Invoice Distribution Tax Line Identifier
75430  , p_source_69            IN NUMBER
75431 --Invoice Distribution Summary Tax Line Identifier
75432  , p_source_70            IN NUMBER
75433 --Invoice Distribution Tax Distribution Identifier from Tax
75434  , p_source_77            IN NUMBER
75435 --Prepayment Distribution Type
75436  , p_source_78            IN VARCHAR2
75437 --Recipient Invoice Distribution Type
75438  , p_source_79            IN VARCHAR2
75439  , p_source_79_meaning    IN VARCHAR2
75440 --Prepayment Application Distribution Identifier
75441  , p_source_82            IN NUMBER
75442 --Invoice Identifier
75443  , p_source_83            IN NUMBER
75444 --Business Flow Prepayment Invoice Distribution Type
75445  , p_source_84            IN VARCHAR2
75446 --Business Flow Prepayment Invoice Entity Code
75447  , p_source_85            IN VARCHAR2
75448 --Business Flow Prepayment Invoice Distribution Identifier
75449  , p_source_86            IN NUMBER
75450 --Business Flow Prepayment Invoice Identifier
75451  , p_source_87            IN NUMBER
75452 --Upgrade Encumbrance Credit Account Class
75453  , p_source_88            IN VARCHAR2
75454 --Payables Encumbrance Upgrade Credit Account
75455  , p_source_89            IN NUMBER
75456 --Payables Encumbrance Upgrade Credit Amount
75457  , p_source_90            IN NUMBER
75458 --Invoice Currency Code
75459  , p_source_91            IN VARCHAR2
75460 --Payables Encumbrance Upgrade Credit Base Amount
75461  , p_source_92            IN NUMBER
75462 --Upgrade Encumbrance Debit Account Class
75463  , p_source_93            IN VARCHAR2
75464 --Payables Encumbrance Upgrade Debit Account
75465  , p_source_94            IN NUMBER
75466 --Payables Encumbrance Upgrade Debit Amount
75467  , p_source_95            IN NUMBER
75468 --Payables Encumbrance Upgrade Debit Base Amount
75469  , p_source_96            IN NUMBER
75470 --Payables Encumbrance Upgrade Option
75471  , p_source_97            IN VARCHAR2
75472 --Prepayment Distribution Amount
75473  , p_source_98            IN NUMBER
75474 --Deferred Accounting End Date
75475  , p_source_101            IN DATE
75476 --Deferred Accounting Option
75477  , p_source_102            IN VARCHAR2
75478 --Deferred Accounting Start Date
75479  , p_source_103            IN DATE
75480 --Invoice Supplier Identifier
75481  , p_source_104            IN NUMBER
75482 --Invoice Supplier Site Identifier
75483  , p_source_105            IN NUMBER
75484 --Identifier of the Prepayment Application Reversed
75485  , p_source_106            IN NUMBER
75486 --Payables Upgrade Credit Encumbrance Type Identifier
75487  , p_source_107            IN NUMBER
75488 --Payables Upgrade Debit Encumbrance Type Identifier
75489  , p_source_108            IN NUMBER
75490 --Prepayment Payment Currency Code
75491  , p_source_109            IN VARCHAR2
75492 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
75493  , p_source_110            IN NUMBER
75494 --Prepayment Payment Exchange Date
75495  , p_source_128            IN DATE
75496 --Prepayment Payment Exchange Rate
75497  , p_source_129            IN NUMBER
75498 --Prepayment Payment Exchange Rate Type
75499  , p_source_130            IN VARCHAR2
75500 )
75501 IS
75502 
75503 l_component_type              VARCHAR2(80);
75504 l_component_code              VARCHAR2(30);
75505 l_component_type_code         VARCHAR2(1);
75506 l_component_appl_id           INTEGER;
75507 l_amb_context_code            VARCHAR2(30);
75508 l_entity_code                 VARCHAR2(30);
75509 l_event_class_code            VARCHAR2(30);
75510 l_ae_header_id                NUMBER;
75511 l_event_type_code             VARCHAR2(30);
75512 l_line_definition_code        VARCHAR2(30);
75513 l_line_definition_owner_code  VARCHAR2(1);
75514 --
75518 l_adr_transaction_coa_id      NUMBER;
75515 -- adr variables
75516 l_segment                     VARCHAR2(30);
75517 l_ccid                        NUMBER;
75519 l_adr_accounting_coa_id       NUMBER;
75520 l_adr_flexfield_segment_code  VARCHAR2(30);
75521 l_adr_flex_value_set_id       NUMBER;
75522 l_adr_value_type_code         VARCHAR2(30);
75523 l_adr_value_combination_id    NUMBER;
75524 l_adr_value_segment_code      VARCHAR2(30);
75525 
75526 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
75527 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
75528 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
75529 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
75530 
75531 -- 4262811 Variables ------------------------------------------------------------------------------------------
75532 l_entered_amt_idx             NUMBER;
75533 l_accted_amt_idx              NUMBER;
75534 l_acc_rev_flag                VARCHAR2(1);
75535 l_accrual_line_num            NUMBER;
75536 l_tmp_amt                     NUMBER;
75537 l_acc_rev_natural_side_code   VARCHAR2(1);
75538 
75539 l_num_entries                 NUMBER;
75540 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
75541 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
75542 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
75543 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
75544 l_recog_line_1                NUMBER;
75545 l_recog_line_2                NUMBER;
75546 
75547 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
75548 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
75549 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
75550 
75551 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
75552 
75553 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
75554 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
75555 
75556 ---------------------------------------------------------------------------------------------------------------
75557 
75558 
75559 --
75560 -- bulk performance
75561 --
75562 l_balance_type_code           VARCHAR2(1);
75563 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
75564 l_log_module                  VARCHAR2(240);
75565 
75566 --
75567 -- Upgrade strategy
75568 --
75569 l_actual_upg_option           VARCHAR2(1);
75570 l_enc_upg_option           VARCHAR2(1);
75571 
75572 --
75573 BEGIN
75574 --
75575 IF g_log_enabled THEN
75576       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_137';
75577 END IF;
75578 --
75579 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75580 
75581       trace
75582          (p_msg      => 'BEGIN of AcctLineType_137'
75583          ,p_level    => C_LEVEL_PROCEDURE
75584          ,p_module   => l_log_module);
75585 
75586 END IF;
75587 --
75588 l_component_type             := 'AMB_JLT';
75589 l_component_code             := 'AP_RECOV_PREPAY_PAY_RATE_APP';
75590 l_component_type_code        := 'S';
75591 l_component_appl_id          :=  200;
75592 l_amb_context_code           := 'DEFAULT';
75593 l_entity_code                := 'AP_INVOICES';
75594 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
75595 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
75596 l_line_definition_owner_code := 'S';
75597 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
75598 --
75599 l_balance_type_code          := 'A';
75600 l_segment                     := NULL;
75601 l_ccid                        := NULL;
75602 l_adr_transaction_coa_id      := NULL;
75603 l_adr_accounting_coa_id       := NULL;
75604 l_adr_flexfield_segment_code  := NULL;
75605 l_adr_flex_value_set_id       := NULL;
75606 l_adr_value_type_code         := NULL;
75607 l_adr_value_combination_id    := NULL;
75608 l_adr_value_segment_code      := NULL;
75609 
75610 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
75611 l_bflow_class_code           := '';    -- 4219869 Business Flow
75612 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
75613 l_budgetary_control_flag     := 'N';
75614 
75615 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
75616 l_bflow_applied_to_amt       := NULL; -- 5132302
75617 l_entered_amt_idx            := NULL;          -- 4262811
75618 l_accted_amt_idx             := NULL;          -- 4262811
75619 l_acc_rev_flag               := NULL;          -- 4262811
75620 l_accrual_line_num           := NULL;          -- 4262811
75621 l_tmp_amt                    := NULL;          -- 4262811
75622 --
75623  
75624 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
75625     l_balance_type_code <> 'B' THEN
75626 IF NVL(p_source_50,'
75627 ') <>  'CLEAR_CLEAR' AND 
75628 (NVL(p_source_78,'
75629 ') =  'PREPAY APPL' OR 
75630 NVL(p_source_78,'
75631 ') =  'PREPAY APPL NONREC TAX' OR 
75632 NVL(p_source_78,'
75633 ') =  'PREPAY APPL REC TAX') AND 
75634 NVL(p_source_79,'
75635 ') =  'REC_TAX'
75636  THEN 
75637 
75638    --
75639    XLA_AE_LINES_PKG.SetNewLine;
75640 
75641    p_balance_type_code          := l_balance_type_code;
75642    -- set the flag so later we will know whether the gain loss line needs to be created
75643    
75644    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
75648    --
75645      p_actual_flag :='A';
75646    END IF;
75647 
75649    -- bulk performance
75650    --
75651    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
75652                                       p_header_num   => 0); -- 4262811
75653    --
75654    -- set accounting line options
75655    --
75656    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
75657            p_natural_side_code          => 'C'
75658          , p_gain_or_loss_flag          => 'N'
75659          , p_gl_transfer_mode_code      => 'S'
75660          , p_acct_entry_type_code       => 'A'
75661          , p_switch_side_flag           => 'Y'
75662          , p_merge_duplicate_code       => 'A'
75663          );
75664    --
75665    l_acc_rev_natural_side_code := 'D';  -- 4262811
75666    -- 
75667    --
75668    -- set accounting line type info
75669    --
75670    xla_ae_lines_pkg.SetAcctLineType
75671       (p_component_type             => l_component_type
75672       ,p_event_type_code            => l_event_type_code
75673       ,p_line_definition_owner_code => l_line_definition_owner_code
75674       ,p_line_definition_code       => l_line_definition_code
75675       ,p_accounting_line_code       => l_component_code
75676       ,p_accounting_line_type_code  => l_component_type_code
75677       ,p_accounting_line_appl_id    => l_component_appl_id
75678       ,p_amb_context_code           => l_amb_context_code
75679       ,p_entity_code                => l_entity_code
75680       ,p_event_class_code           => l_event_class_code);
75681    --
75682    -- set accounting class
75683    --
75684    xla_ae_lines_pkg.SetAcctClass(
75685            p_accounting_class_code  => 'RTAX'
75686          , p_ae_header_id           => l_ae_header_id
75687          );
75688 
75689    --
75690    -- set rounding class
75691    --
75692    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
75693                       'RTAX';
75694 
75695    --
75696    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
75697    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
75698    --
75699    -- bulk performance
75700    --
75701    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
75702 
75703    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
75704       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
75705 
75706    -- 4955764
75707    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75708       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
75709 
75710    -- 4458381 Public Sector Enh
75711    
75712    --
75713    -- set accounting attributes for the line type
75714    --
75715    l_entered_amt_idx := 25;
75716    l_accted_amt_idx  := 30;
75717    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
75718    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
75719    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
75720    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
75721    l_rec_acct_attrs.array_num_value(2)  := 
75722 xla_ae_sources_pkg.GetSystemSourceNum(
75723    p_source_code           => 'XLA_EVENT_APPL_ID'
75724  , p_source_type_code      => 'Y'
75725  , p_source_application_id =>  602
75726 );
75727    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
75728    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
75729    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
75730    l_rec_acct_attrs.array_char_value(4)  := 
75731 xla_ae_sources_pkg.GetSystemSourceChar(
75732    p_source_code           => 'XLA_ENTITY_CODE'
75733  , p_source_type_code      => 'Y'
75734  , p_source_application_id =>  602
75735 );
75736    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
75737    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
75738    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
75739    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
75740    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
75741    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
75742    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
75743    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
75744    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
75745    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
75746    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
75747    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
75748    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
75749    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
75750    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
75751    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
75752    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
75753    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
75754    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
75755    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
75756    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
75760    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
75757    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
75758    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
75759    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
75761    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
75762    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
75763    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
75764    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
75765    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
75766    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
75767    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
75768    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
75769    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
75770    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
75771    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
75772    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
75773    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
75774    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
75775    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
75776    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
75777    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
75778    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
75779    l_rec_acct_attrs.array_char_value(26)  := p_source_109;
75780    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
75781    l_rec_acct_attrs.array_date_value(27)  := p_source_128;
75782    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
75783    l_rec_acct_attrs.array_num_value(28)  := p_source_129;
75784    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
75785    l_rec_acct_attrs.array_char_value(29)  := p_source_130;
75786    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
75787    l_rec_acct_attrs.array_num_value(30)  := p_source_110;
75788    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
75789    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
75790    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
75791    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
75792    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
75793    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
75794    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
75795    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
75796    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
75797    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
75798    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
75799    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
75800    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
75801    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
75802    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
75803    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
75804    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
75805    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
75806    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
75807    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
75808    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
75809    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
75810    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
75811    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
75812    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
75813    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
75814    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
75815    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
75816 
75817    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
75818    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
75819 
75820    ---------------------------------------------------------------------------------------------------------------
75821    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
75822    ---------------------------------------------------------------------------------------------------------------
75823    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
75824 
75825    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75826    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75827 
75828    IF xla_accounting_cache_pkg.GetValueChar
75829          (p_source_code         => 'LEDGER_CATEGORY_CODE'
75830          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
75831    AND l_bflow_method_code = 'PRIOR_ENTRY'
75832 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
75833    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
75834          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
75835        )
75836    THEN
75837          xla_ae_lines_pkg.BflowUpgEntry
75838            (p_business_method_code    => l_bflow_method_code
75839            ,p_business_class_code     => l_bflow_class_code
75840            ,p_balance_type            => l_balance_type_code);
75841    ELSE
75845 
75842       NULL;
75843 -- No business flow processing for business flow method of NONE.
75844    END IF;
75846    --
75847    -- call analytical criteria
75848    --
75849    
75850    --
75851    -- call description
75852    --
75853    -- No description or it is inherited.
75854    --
75855    -- call ADRs
75856    -- Bug 4922099
75857    --
75858    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75859         (NVL(l_actual_upg_option, 'N') = 'O') OR
75860         (NVL(l_enc_upg_option, 'N') = 'O')
75861       )
75862    THEN
75863    NULL;
75864    --
75865    --
75866    
75867   l_ccid := AcctDerRule_35(
75868            p_application_id           => p_application_id
75869          , p_ae_header_id             => l_ae_header_id 
75870 , p_source_48 => p_source_48
75871          , x_transaction_coa_id       => l_adr_transaction_coa_id
75872          , x_accounting_coa_id        => l_adr_accounting_coa_id
75873          , x_value_type_code          => l_adr_value_type_code
75874          , p_side                     => 'NA'
75875    );
75876 
75877    xla_ae_lines_pkg.set_ccid(
75878     p_code_combination_id          => l_ccid
75879   , p_value_type_code              => l_adr_value_type_code
75880   , p_transaction_coa_id           => l_adr_transaction_coa_id
75881   , p_accounting_coa_id            => l_adr_accounting_coa_id
75882   , p_adr_code                     => 'AP_RECP_INV_DIST'
75883   , p_adr_type_code                => 'S'
75884   , p_component_type               => l_component_type
75885   , p_component_code               => l_component_code
75886   , p_component_type_code          => l_component_type_code
75887   , p_component_appl_id            => l_component_appl_id
75888   , p_amb_context_code             => l_amb_context_code
75889   , p_side                         => 'NA'
75890   );
75891 
75892 
75893    --
75894    --
75895    END IF;
75896    --
75897    -- Bug 4922099
75898    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
75899           (NVL(l_enc_upg_option, 'N') = 'O')
75900         ) AND
75901         (l_bflow_method_code = 'PRIOR_ENTRY')
75902       )
75903    THEN
75904       IF
75905       --
75906       1 = 2
75907       --
75908       THEN
75909       xla_accounting_err_pkg.build_message
75910                                     (p_appli_s_name            => 'XLA'
75911                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75912                                     ,p_token_1                 => 'LINE_NUMBER'
75913                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
75914                                     ,p_token_2                 => 'LINE_TYPE_NAME'
75915                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
75916                                                                              l_component_type
75917                                                                             ,l_component_code
75918                                                                             ,l_component_type_code
75919                                                                             ,l_component_appl_id
75920                                                                             ,l_amb_context_code
75921                                                                             ,l_entity_code
75922                                                                             ,l_event_class_code
75923                                                                            )
75924                                     ,p_token_3                 => 'OWNER'
75925                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
75926                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
75927                                                                           ,p_lookup_code    => l_component_type_code
75928                                                                          )
75929                                     ,p_token_4                 => 'PRODUCT_NAME'
75930                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
75931                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
75932                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
75933                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
75934                                     ,p_ae_header_id            =>  NULL
75935                                        );
75936 
75937         IF (C_LEVEL_ERROR>= g_log_level) THEN
75938                  trace
75939                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75940                       ,p_level    => C_LEVEL_ERROR
75941                       ,p_module   => l_log_module);
75942         END IF;
75943       END IF;
75944    END IF;
75945    --
75946    --
75947    ------------------------------------------------------------------------------------------------
75948    -- 4219869 Business Flow
75949    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
75950    -- Prior Entry.  Currently, the following code is always generated.
75951    ------------------------------------------------------------------------------------------------
75952    XLA_AE_LINES_PKG.ValidateCurrentLine;
75953 
75957    ------------------------------------------------------------------------------------
75954    ------------------------------------------------------------------------------------
75955    -- 4219869 Business Flow
75956    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
75958    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75959 
75960    ----------------------------------------------------------------------------------
75961    -- 4219869 Business Flow
75962    -- Update journal entry status -- Need to generate this within IF <condition>
75963    ----------------------------------------------------------------------------------
75964    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75965          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
75966          ,p_balance_type_code => l_balance_type_code
75967          );
75968 
75969    -------------------------------------------------------------------------------------------
75970    -- 4262811 - Generate the Accrual Reversal lines
75971    -------------------------------------------------------------------------------------------
75972    BEGIN
75973       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
75974                               (g_array_event(p_event_id).array_value_num('header_index'));
75975       IF l_acc_rev_flag IS NULL THEN
75976          l_acc_rev_flag := 'N';
75977       END IF;
75978    EXCEPTION
75979       WHEN OTHERS THEN
75980          l_acc_rev_flag := 'N';
75981    END;
75982    --
75983    IF (l_acc_rev_flag = 'Y') THEN
75984 
75985        -- 4645092  ------------------------------------------------------------------------------
75986        -- To allow MPA report to determine if it should generate report process
75987        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
75988        ------------------------------------------------------------------------------------------
75989 
75990        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
75991        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
75992    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
75993    -- call ADRs
75994    -- Bug 4922099
75995    --
75996    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75997         (NVL(l_actual_upg_option, 'N') = 'O') OR
75998         (NVL(l_enc_upg_option, 'N') = 'O')
75999       )
76000    THEN
76001    NULL;
76002    --
76003    --
76004    
76005   l_ccid := AcctDerRule_35(
76006            p_application_id           => p_application_id
76007          , p_ae_header_id             => l_ae_header_id 
76008 , p_source_48 => p_source_48
76009          , x_transaction_coa_id       => l_adr_transaction_coa_id
76010          , x_accounting_coa_id        => l_adr_accounting_coa_id
76011          , x_value_type_code          => l_adr_value_type_code
76012          , p_side                     => 'NA'
76013    );
76014 
76015    xla_ae_lines_pkg.set_ccid(
76016     p_code_combination_id          => l_ccid
76017   , p_value_type_code              => l_adr_value_type_code
76018   , p_transaction_coa_id           => l_adr_transaction_coa_id
76019   , p_accounting_coa_id            => l_adr_accounting_coa_id
76020   , p_adr_code                     => 'AP_RECP_INV_DIST'
76021   , p_adr_type_code                => 'S'
76022   , p_component_type               => l_component_type
76023   , p_component_code               => l_component_code
76024   , p_component_type_code          => l_component_type_code
76025   , p_component_appl_id            => l_component_appl_id
76026   , p_amb_context_code             => l_amb_context_code
76027   , p_side                         => 'NA'
76028   );
76029 
76030 
76031    --
76032    --
76033    END IF;
76034 
76035        --
76036        -- Update the line information that should be overwritten
76037        --
76038        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
76039                                          p_header_num   => 1);
76040        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
76041 
76042        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
76043 
76044        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
76045           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
76046        END IF;
76047 
76048       --
76049       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
76050       --
76051       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
76052           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
76053       ELSE
76054           ---------------------------------------------------------------------------------------------------
76055           -- 4262811a Switch Sign
76056           ---------------------------------------------------------------------------------------------------
76057           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
76058           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76059                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76060           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76061                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76065 
76062           -- 5132302
76063           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
76064                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76066       END IF;
76067 
76068       -- 4955764
76069       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76070       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
76071 
76072 
76073       XLA_AE_LINES_PKG.ValidateCurrentLine;
76074       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76075 
76076       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76077                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
76078                ,p_balance_type_code => l_balance_type_code);
76079 
76080    END IF;
76081 
76082    -----------------------------------------------------------------------------------------
76083    -- 4262811 Multiperiod Accounting
76084    -----------------------------------------------------------------------------------------
76085      -- No MPA option is assigned.
76086 
76087 
76088 END IF;
76089 END IF;
76090 --
76091 
76092 --
76093 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76094    trace
76095       (p_msg      => 'END of AcctLineType_137'
76096       ,p_level    => C_LEVEL_PROCEDURE
76097       ,p_module   => l_log_module);
76098 END IF;
76099 --
76100 EXCEPTION
76101   WHEN xla_exceptions_pkg.application_exception THEN
76102       RAISE;
76103   WHEN OTHERS THEN
76104        xla_exceptions_pkg.raise_message
76105            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_137');
76106 END AcctLineType_137;
76107 --
76108 
76109 ---------------------------------------
76110 --
76111 -- PRIVATE FUNCTION
76112 --         AcctLineType_138
76113 --
76114 ---------------------------------------
76115 PROCEDURE AcctLineType_138 (
76116   p_application_id        IN NUMBER
76117  ,p_event_id              IN NUMBER
76118  ,p_calculate_acctd_flag  IN VARCHAR2
76119  ,p_calculate_g_l_flag    IN VARCHAR2
76120  ,p_actual_flag           IN OUT VARCHAR2
76121  ,p_balance_type_code     OUT VARCHAR2
76122  ,p_gain_or_loss_ref      OUT VARCHAR2
76123  
76124 --Payment Currency Code
76125  , p_source_12            IN VARCHAR2
76126 --Payment Distribution (Cleared Rate) Ledger Amount
76127  , p_source_22            IN NUMBER
76128 --Invoice Distribution Account
76129  , p_source_29            IN NUMBER
76130 --Invoice Distribution Type
76131  , p_source_32            IN VARCHAR2
76132  , p_source_32_meaning    IN VARCHAR2
76133 --When to Account for Payment Option
76134  , p_source_50            IN VARCHAR2
76135 --Payment Distribution Type
76136  , p_source_51            IN VARCHAR2
76137  , p_source_51_meaning    IN VARCHAR2
76138 --Accounting Reversal Indicator
76139  , p_source_52            IN VARCHAR2
76140 --Payment Distribution Amount
76141  , p_source_53            IN NUMBER
76142 --Business Flow Accounts Payable Application Identifier
76143  , p_source_54            IN NUMBER
76144 --Business Flow Payment Distribution Type
76145  , p_source_55            IN VARCHAR2
76146 --Business Flow Payment Entity Code
76147  , p_source_56            IN VARCHAR2
76148 --Business Flow Payment Distribution Identifier
76149  , p_source_57            IN NUMBER
76150 --Business Flow Payment Identifier
76151  , p_source_58            IN NUMBER
76152 --Payment Distribution Identifier
76153  , p_source_59            IN NUMBER
76154 --Distribution Link Type
76155  , p_source_60            IN VARCHAR2
76156 --Override Accounted Amount Indicator
76157  , p_source_64            IN VARCHAR2
76158  , p_source_64_meaning    IN VARCHAR2
76159 --Payment Supplier Identifier
76160  , p_source_65            IN NUMBER
76161 --Payment Supplier Site Identifier
76162  , p_source_66            IN NUMBER
76163 --Third Party Type
76164  , p_source_67            IN VARCHAR2
76165 --Payment Distribution Reversed Identifier
76166  , p_source_68            IN NUMBER
76167 --Invoice Distribution Tax Line Identifier
76168  , p_source_69            IN NUMBER
76169 --Invoice Distribution Summary Tax Line Identifier
76170  , p_source_70            IN NUMBER
76171 --Cleared Exchange Date
76172  , p_source_114            IN DATE
76173 --Cleared Exchange Rate
76174  , p_source_115            IN NUMBER
76175 --Cleared Exchange Rate Type
76176  , p_source_116            IN VARCHAR2
76177 )
76178 IS
76179 
76180 l_component_type              VARCHAR2(80);
76181 l_component_code              VARCHAR2(30);
76182 l_component_type_code         VARCHAR2(1);
76183 l_component_appl_id           INTEGER;
76184 l_amb_context_code            VARCHAR2(30);
76185 l_entity_code                 VARCHAR2(30);
76186 l_event_class_code            VARCHAR2(30);
76187 l_ae_header_id                NUMBER;
76188 l_event_type_code             VARCHAR2(30);
76189 l_line_definition_code        VARCHAR2(30);
76190 l_line_definition_owner_code  VARCHAR2(1);
76191 --
76192 -- adr variables
76193 l_segment                     VARCHAR2(30);
76194 l_ccid                        NUMBER;
76195 l_adr_transaction_coa_id      NUMBER;
76196 l_adr_accounting_coa_id       NUMBER;
76197 l_adr_flexfield_segment_code  VARCHAR2(30);
76198 l_adr_flex_value_set_id       NUMBER;
76199 l_adr_value_type_code         VARCHAR2(30);
76200 l_adr_value_combination_id    NUMBER;
76204 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
76201 l_adr_value_segment_code      VARCHAR2(30);
76202 
76203 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
76205 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
76206 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
76207 
76208 -- 4262811 Variables ------------------------------------------------------------------------------------------
76209 l_entered_amt_idx             NUMBER;
76210 l_accted_amt_idx              NUMBER;
76211 l_acc_rev_flag                VARCHAR2(1);
76212 l_accrual_line_num            NUMBER;
76213 l_tmp_amt                     NUMBER;
76214 l_acc_rev_natural_side_code   VARCHAR2(1);
76215 
76216 l_num_entries                 NUMBER;
76217 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
76218 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
76219 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
76220 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
76221 l_recog_line_1                NUMBER;
76222 l_recog_line_2                NUMBER;
76223 
76224 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
76225 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
76226 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
76227 
76228 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
76229 
76230 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
76231 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
76232 
76233 ---------------------------------------------------------------------------------------------------------------
76234 
76235 
76236 --
76237 -- bulk performance
76238 --
76239 l_balance_type_code           VARCHAR2(1);
76240 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
76241 l_log_module                  VARCHAR2(240);
76242 
76243 --
76244 -- Upgrade strategy
76245 --
76246 l_actual_upg_option           VARCHAR2(1);
76247 l_enc_upg_option           VARCHAR2(1);
76248 
76249 --
76250 BEGIN
76251 --
76252 IF g_log_enabled THEN
76253       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_138';
76254 END IF;
76255 --
76256 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76257 
76258       trace
76259          (p_msg      => 'BEGIN of AcctLineType_138'
76260          ,p_level    => C_LEVEL_PROCEDURE
76261          ,p_module   => l_log_module);
76262 
76263 END IF;
76264 --
76265 l_component_type             := 'AMB_JLT';
76266 l_component_code             := 'AP_RECOV_TAX_CLEAR';
76267 l_component_type_code        := 'S';
76268 l_component_appl_id          :=  200;
76269 l_amb_context_code           := 'DEFAULT';
76270 l_entity_code                := 'AP_PAYMENTS';
76271 l_event_class_code           := 'RECONCILED PAYMENTS';
76272 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
76273 l_line_definition_owner_code := 'S';
76274 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
76275 --
76276 l_balance_type_code          := 'A';
76277 l_segment                     := NULL;
76278 l_ccid                        := NULL;
76279 l_adr_transaction_coa_id      := NULL;
76280 l_adr_accounting_coa_id       := NULL;
76281 l_adr_flexfield_segment_code  := NULL;
76282 l_adr_flex_value_set_id       := NULL;
76283 l_adr_value_type_code         := NULL;
76284 l_adr_value_combination_id    := NULL;
76285 l_adr_value_segment_code      := NULL;
76286 
76287 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
76288 l_bflow_class_code           := '';    -- 4219869 Business Flow
76289 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
76290 l_budgetary_control_flag     := 'N';
76291 
76292 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
76293 l_bflow_applied_to_amt       := NULL; -- 5132302
76294 l_entered_amt_idx            := NULL;          -- 4262811
76295 l_accted_amt_idx             := NULL;          -- 4262811
76296 l_acc_rev_flag               := NULL;          -- 4262811
76297 l_accrual_line_num           := NULL;          -- 4262811
76298 l_tmp_amt                    := NULL;          -- 4262811
76299 --
76300  
76301 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
76302     l_balance_type_code <> 'B' THEN
76303 IF NVL(p_source_50,'
76304 ') =  'CLEAR_CLEAR' AND 
76305 NVL(p_source_32,'
76306 ') =  'REC_TAX' AND 
76307 (NVL(p_source_51,'
76308 ') =  'CASH' OR 
76309 NVL(p_source_51,'
76310 ') =  'AWT' OR 
76311 NVL(p_source_51,'
76312 ') =  'DISCOUNT')
76313  THEN 
76314 
76315    --
76316    XLA_AE_LINES_PKG.SetNewLine;
76317 
76318    p_balance_type_code          := l_balance_type_code;
76319    -- set the flag so later we will know whether the gain loss line needs to be created
76320    
76321    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
76322      p_actual_flag :='A';
76323    END IF;
76324 
76325    --
76326    -- bulk performance
76327    --
76328    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
76329                                       p_header_num   => 0); -- 4262811
76330    --
76331    -- set accounting line options
76335          , p_gain_or_loss_flag          => 'N'
76332    --
76333    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
76334            p_natural_side_code          => 'D'
76336          , p_gl_transfer_mode_code      => 'S'
76337          , p_acct_entry_type_code       => 'A'
76338          , p_switch_side_flag           => 'Y'
76339          , p_merge_duplicate_code       => 'A'
76340          );
76341    --
76342    l_acc_rev_natural_side_code := 'C';  -- 4262811
76343    -- 
76344    --
76345    -- set accounting line type info
76346    --
76347    xla_ae_lines_pkg.SetAcctLineType
76348       (p_component_type             => l_component_type
76349       ,p_event_type_code            => l_event_type_code
76350       ,p_line_definition_owner_code => l_line_definition_owner_code
76351       ,p_line_definition_code       => l_line_definition_code
76352       ,p_accounting_line_code       => l_component_code
76353       ,p_accounting_line_type_code  => l_component_type_code
76354       ,p_accounting_line_appl_id    => l_component_appl_id
76355       ,p_amb_context_code           => l_amb_context_code
76356       ,p_entity_code                => l_entity_code
76357       ,p_event_class_code           => l_event_class_code);
76358    --
76359    -- set accounting class
76360    --
76361    xla_ae_lines_pkg.SetAcctClass(
76362            p_accounting_class_code  => 'RTAX'
76363          , p_ae_header_id           => l_ae_header_id
76364          );
76365 
76366    --
76367    -- set rounding class
76368    --
76369    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
76370                       'RTAX';
76371 
76372    --
76373    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
76374    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
76375    --
76376    -- bulk performance
76377    --
76378    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
76379 
76380    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
76381       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
76382 
76383    -- 4955764
76384    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76385       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
76386 
76387    -- 4458381 Public Sector Enh
76388    
76389    --
76390    -- set accounting attributes for the line type
76391    --
76392    l_entered_amt_idx := 10;
76393    l_accted_amt_idx  := 15;
76394    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
76395    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
76396    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
76397    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
76398    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
76399    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
76400    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
76401    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
76402    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
76403    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
76404    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
76405    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
76406    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
76407    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
76408    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
76409    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
76410    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
76411    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
76412    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
76413    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
76414    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
76415    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
76416    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
76417    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
76418    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
76419    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
76420    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
76421    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
76422    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
76423    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
76424    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
76425    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
76426    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
76427    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
76428    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
76429    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
76430    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
76431    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
76432    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
76433    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
76434    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
76438    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
76435    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
76436    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
76437    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
76439    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
76440    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
76441    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
76442    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
76443 
76444    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
76445    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
76446 
76447    ---------------------------------------------------------------------------------------------------------------
76448    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
76449    ---------------------------------------------------------------------------------------------------------------
76450    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
76451 
76452    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76453    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76454 
76455    IF xla_accounting_cache_pkg.GetValueChar
76456          (p_source_code         => 'LEDGER_CATEGORY_CODE'
76457          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
76458    AND l_bflow_method_code = 'PRIOR_ENTRY'
76459 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
76460    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
76461          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
76462        )
76463    THEN
76464          xla_ae_lines_pkg.BflowUpgEntry
76465            (p_business_method_code    => l_bflow_method_code
76466            ,p_business_class_code     => l_bflow_class_code
76467            ,p_balance_type            => l_balance_type_code);
76468    ELSE
76469       NULL;
76470 -- No business flow processing for business flow method of NONE.
76471    END IF;
76472 
76473    --
76474    -- call analytical criteria
76475    --
76476    
76477    --
76478    -- call description
76479    --
76480    -- No description or it is inherited.
76481    --
76482    -- call ADRs
76483    -- Bug 4922099
76484    --
76485    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76486         (NVL(l_actual_upg_option, 'N') = 'O') OR
76487         (NVL(l_enc_upg_option, 'N') = 'O')
76488       )
76489    THEN
76490    NULL;
76491    --
76492    --
76493    
76494   l_ccid := AcctDerRule_28(
76495            p_application_id           => p_application_id
76496          , p_ae_header_id             => l_ae_header_id 
76497 , p_source_29 => p_source_29
76498          , x_transaction_coa_id       => l_adr_transaction_coa_id
76499          , x_accounting_coa_id        => l_adr_accounting_coa_id
76500          , x_value_type_code          => l_adr_value_type_code
76501          , p_side                     => 'NA'
76502    );
76503 
76504    xla_ae_lines_pkg.set_ccid(
76505     p_code_combination_id          => l_ccid
76506   , p_value_type_code              => l_adr_value_type_code
76507   , p_transaction_coa_id           => l_adr_transaction_coa_id
76508   , p_accounting_coa_id            => l_adr_accounting_coa_id
76509   , p_adr_code                     => 'AP_INVOICE_DIST'
76510   , p_adr_type_code                => 'S'
76511   , p_component_type               => l_component_type
76512   , p_component_code               => l_component_code
76513   , p_component_type_code          => l_component_type_code
76514   , p_component_appl_id            => l_component_appl_id
76515   , p_amb_context_code             => l_amb_context_code
76516   , p_side                         => 'NA'
76517   );
76518 
76519 
76520    --
76521    --
76522    END IF;
76523    --
76524    -- Bug 4922099
76525    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
76526           (NVL(l_enc_upg_option, 'N') = 'O')
76527         ) AND
76528         (l_bflow_method_code = 'PRIOR_ENTRY')
76529       )
76530    THEN
76531       IF
76532       --
76533       1 = 2
76534       --
76535       THEN
76536       xla_accounting_err_pkg.build_message
76537                                     (p_appli_s_name            => 'XLA'
76538                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76539                                     ,p_token_1                 => 'LINE_NUMBER'
76540                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
76541                                     ,p_token_2                 => 'LINE_TYPE_NAME'
76542                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
76543                                                                              l_component_type
76544                                                                             ,l_component_code
76545                                                                             ,l_component_type_code
76546                                                                             ,l_component_appl_id
76547                                                                             ,l_amb_context_code
76548                                                                             ,l_entity_code
76552                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
76549                                                                             ,l_event_class_code
76550                                                                            )
76551                                     ,p_token_3                 => 'OWNER'
76553                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
76554                                                                           ,p_lookup_code    => l_component_type_code
76555                                                                          )
76556                                     ,p_token_4                 => 'PRODUCT_NAME'
76557                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
76558                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
76559                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
76560                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
76561                                     ,p_ae_header_id            =>  NULL
76562                                        );
76563 
76564         IF (C_LEVEL_ERROR>= g_log_level) THEN
76565                  trace
76566                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76567                       ,p_level    => C_LEVEL_ERROR
76568                       ,p_module   => l_log_module);
76569         END IF;
76570       END IF;
76571    END IF;
76572    --
76573    --
76574    ------------------------------------------------------------------------------------------------
76575    -- 4219869 Business Flow
76576    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
76577    -- Prior Entry.  Currently, the following code is always generated.
76578    ------------------------------------------------------------------------------------------------
76579    XLA_AE_LINES_PKG.ValidateCurrentLine;
76580 
76581    ------------------------------------------------------------------------------------
76582    -- 4219869 Business Flow
76583    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
76584    ------------------------------------------------------------------------------------
76585    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76586 
76587    ----------------------------------------------------------------------------------
76588    -- 4219869 Business Flow
76589    -- Update journal entry status -- Need to generate this within IF <condition>
76590    ----------------------------------------------------------------------------------
76591    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76592          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
76593          ,p_balance_type_code => l_balance_type_code
76594          );
76595 
76596    -------------------------------------------------------------------------------------------
76597    -- 4262811 - Generate the Accrual Reversal lines
76598    -------------------------------------------------------------------------------------------
76599    BEGIN
76600       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
76601                               (g_array_event(p_event_id).array_value_num('header_index'));
76602       IF l_acc_rev_flag IS NULL THEN
76603          l_acc_rev_flag := 'N';
76604       END IF;
76605    EXCEPTION
76606       WHEN OTHERS THEN
76607          l_acc_rev_flag := 'N';
76608    END;
76609    --
76610    IF (l_acc_rev_flag = 'Y') THEN
76611 
76612        -- 4645092  ------------------------------------------------------------------------------
76613        -- To allow MPA report to determine if it should generate report process
76614        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
76615        ------------------------------------------------------------------------------------------
76616 
76617        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
76618        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
76619    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
76620    -- call ADRs
76621    -- Bug 4922099
76622    --
76623    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76624         (NVL(l_actual_upg_option, 'N') = 'O') OR
76625         (NVL(l_enc_upg_option, 'N') = 'O')
76626       )
76627    THEN
76628    NULL;
76629    --
76630    --
76631    
76632   l_ccid := AcctDerRule_28(
76633            p_application_id           => p_application_id
76634          , p_ae_header_id             => l_ae_header_id 
76635 , p_source_29 => p_source_29
76636          , x_transaction_coa_id       => l_adr_transaction_coa_id
76637          , x_accounting_coa_id        => l_adr_accounting_coa_id
76638          , x_value_type_code          => l_adr_value_type_code
76639          , p_side                     => 'NA'
76640    );
76641 
76642    xla_ae_lines_pkg.set_ccid(
76643     p_code_combination_id          => l_ccid
76644   , p_value_type_code              => l_adr_value_type_code
76645   , p_transaction_coa_id           => l_adr_transaction_coa_id
76646   , p_accounting_coa_id            => l_adr_accounting_coa_id
76647   , p_adr_code                     => 'AP_INVOICE_DIST'
76648   , p_adr_type_code                => 'S'
76649   , p_component_type               => l_component_type
76650   , p_component_code               => l_component_code
76654   , p_side                         => 'NA'
76651   , p_component_type_code          => l_component_type_code
76652   , p_component_appl_id            => l_component_appl_id
76653   , p_amb_context_code             => l_amb_context_code
76655   );
76656 
76657 
76658    --
76659    --
76660    END IF;
76661 
76662        --
76663        -- Update the line information that should be overwritten
76664        --
76665        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
76666                                          p_header_num   => 1);
76667        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
76668 
76669        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
76670 
76671        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
76672           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
76673        END IF;
76674 
76675       --
76676       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
76677       --
76678       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
76679           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
76680       ELSE
76681           ---------------------------------------------------------------------------------------------------
76682           -- 4262811a Switch Sign
76683           ---------------------------------------------------------------------------------------------------
76684           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
76685           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76686                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76687           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76688                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76689           -- 5132302
76690           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
76691                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76692 
76693       END IF;
76694 
76695       -- 4955764
76696       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76697       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
76698 
76699 
76700       XLA_AE_LINES_PKG.ValidateCurrentLine;
76701       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76702 
76703       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76704                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
76705                ,p_balance_type_code => l_balance_type_code);
76706 
76707    END IF;
76708 
76709    -----------------------------------------------------------------------------------------
76710    -- 4262811 Multiperiod Accounting
76711    -----------------------------------------------------------------------------------------
76712      -- No MPA option is assigned.
76713 
76714 
76715 END IF;
76716 END IF;
76717 --
76718 
76719 --
76720 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76721    trace
76722       (p_msg      => 'END of AcctLineType_138'
76723       ,p_level    => C_LEVEL_PROCEDURE
76724       ,p_module   => l_log_module);
76725 END IF;
76726 --
76727 EXCEPTION
76728   WHEN xla_exceptions_pkg.application_exception THEN
76729       RAISE;
76730   WHEN OTHERS THEN
76731        xla_exceptions_pkg.raise_message
76732            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_138');
76733 END AcctLineType_138;
76734 --
76735 
76736 ---------------------------------------
76737 --
76738 -- PRIVATE FUNCTION
76739 --         AcctLineType_139
76740 --
76741 ---------------------------------------
76742 PROCEDURE AcctLineType_139 (
76743   p_application_id        IN NUMBER
76744  ,p_event_id              IN NUMBER
76745  ,p_calculate_acctd_flag  IN VARCHAR2
76746  ,p_calculate_g_l_flag    IN VARCHAR2
76747  ,p_actual_flag           IN OUT VARCHAR2
76748  ,p_balance_type_code     OUT VARCHAR2
76749  ,p_gain_or_loss_ref      OUT VARCHAR2
76750  
76751 --Payment Currency Code
76752  , p_source_12            IN VARCHAR2
76753 --Payment Distribution (Payment Rate) Ledger Amount
76754  , p_source_21            IN NUMBER
76755 --Invoice Distribution Account
76756  , p_source_29            IN NUMBER
76757 --Invoice Distribution Type
76758  , p_source_32            IN VARCHAR2
76759  , p_source_32_meaning    IN VARCHAR2
76760 --When to Account for Payment Option
76761  , p_source_50            IN VARCHAR2
76762 --Payment Distribution Type
76763  , p_source_51            IN VARCHAR2
76764  , p_source_51_meaning    IN VARCHAR2
76765 --Accounting Reversal Indicator
76766  , p_source_52            IN VARCHAR2
76767 --Payment Distribution Amount
76768  , p_source_53            IN NUMBER
76769 --Business Flow Accounts Payable Application Identifier
76770  , p_source_54            IN NUMBER
76771 --Payment Distribution Identifier
76772  , p_source_59            IN NUMBER
76773 --Distribution Link Type
76774  , p_source_60            IN VARCHAR2
76775 --Override Accounted Amount Indicator
76776  , p_source_64            IN VARCHAR2
76780 --Payment Supplier Site Identifier
76777  , p_source_64_meaning    IN VARCHAR2
76778 --Payment Supplier Identifier
76779  , p_source_65            IN NUMBER
76781  , p_source_66            IN NUMBER
76782 --Third Party Type
76783  , p_source_67            IN VARCHAR2
76784 --Payment Distribution Reversed Identifier
76785  , p_source_68            IN NUMBER
76786 --Invoice Distribution Tax Line Identifier
76787  , p_source_69            IN NUMBER
76788 --Invoice Distribution Summary Tax Line Identifier
76789  , p_source_70            IN NUMBER
76790 --Payment Type
76791  , p_source_71            IN VARCHAR2
76792  , p_source_71_meaning    IN VARCHAR2
76793 --Invoice Distribution Amount of the Payment Distribution
76794  , p_source_72            IN NUMBER
76795 --Business Flow Invoice Distribution Type
76796  , p_source_73            IN VARCHAR2
76797 --Business Flow Invoice Entity Code
76798  , p_source_74            IN VARCHAR2
76799 --Business Flow Invoice Distribution Identifier
76800  , p_source_75            IN NUMBER
76801 --Business Flow Invoice Identifier
76802  , p_source_76            IN NUMBER
76803 --Invoice Distribution Tax Distribution Identifier from Tax
76804  , p_source_77            IN NUMBER
76805 --Payment Exchange Date
76806  , p_source_121            IN DATE
76807 --Payment Exchange Rate
76808  , p_source_122            IN NUMBER
76809 --Payment Exchange Rate Type
76810  , p_source_123            IN VARCHAR2
76811 )
76812 IS
76813 
76814 l_component_type              VARCHAR2(80);
76815 l_component_code              VARCHAR2(30);
76816 l_component_type_code         VARCHAR2(1);
76817 l_component_appl_id           INTEGER;
76818 l_amb_context_code            VARCHAR2(30);
76819 l_entity_code                 VARCHAR2(30);
76820 l_event_class_code            VARCHAR2(30);
76821 l_ae_header_id                NUMBER;
76822 l_event_type_code             VARCHAR2(30);
76823 l_line_definition_code        VARCHAR2(30);
76824 l_line_definition_owner_code  VARCHAR2(1);
76825 --
76826 -- adr variables
76827 l_segment                     VARCHAR2(30);
76828 l_ccid                        NUMBER;
76829 l_adr_transaction_coa_id      NUMBER;
76830 l_adr_accounting_coa_id       NUMBER;
76831 l_adr_flexfield_segment_code  VARCHAR2(30);
76832 l_adr_flex_value_set_id       NUMBER;
76833 l_adr_value_type_code         VARCHAR2(30);
76834 l_adr_value_combination_id    NUMBER;
76835 l_adr_value_segment_code      VARCHAR2(30);
76836 
76837 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
76838 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
76839 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
76840 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
76841 
76842 -- 4262811 Variables ------------------------------------------------------------------------------------------
76843 l_entered_amt_idx             NUMBER;
76844 l_accted_amt_idx              NUMBER;
76845 l_acc_rev_flag                VARCHAR2(1);
76846 l_accrual_line_num            NUMBER;
76847 l_tmp_amt                     NUMBER;
76848 l_acc_rev_natural_side_code   VARCHAR2(1);
76849 
76850 l_num_entries                 NUMBER;
76851 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
76852 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
76853 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
76854 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
76855 l_recog_line_1                NUMBER;
76856 l_recog_line_2                NUMBER;
76857 
76858 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
76859 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
76860 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
76861 
76862 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
76863 
76864 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
76865 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
76866 
76867 ---------------------------------------------------------------------------------------------------------------
76868 
76869 
76870 --
76871 -- bulk performance
76872 --
76873 l_balance_type_code           VARCHAR2(1);
76874 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
76875 l_log_module                  VARCHAR2(240);
76876 
76877 --
76878 -- Upgrade strategy
76879 --
76880 l_actual_upg_option           VARCHAR2(1);
76881 l_enc_upg_option           VARCHAR2(1);
76882 
76883 --
76884 BEGIN
76885 --
76886 IF g_log_enabled THEN
76887       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_139';
76888 END IF;
76889 --
76890 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76891 
76892       trace
76893          (p_msg      => 'BEGIN of AcctLineType_139'
76894          ,p_level    => C_LEVEL_PROCEDURE
76895          ,p_module   => l_log_module);
76896 
76897 END IF;
76898 --
76899 l_component_type             := 'AMB_JLT';
76900 l_component_code             := 'AP_RECOV_TAX_PMT';
76901 l_component_type_code        := 'S';
76902 l_component_appl_id          :=  200;
76903 l_amb_context_code           := 'DEFAULT';
76904 l_entity_code                := 'AP_PAYMENTS';
76905 l_event_class_code           := 'PAYMENTS';
76909 --
76906 l_event_type_code            := 'PAYMENTS_ALL';
76907 l_line_definition_owner_code := 'S';
76908 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
76910 l_balance_type_code          := 'A';
76911 l_segment                     := NULL;
76912 l_ccid                        := NULL;
76913 l_adr_transaction_coa_id      := NULL;
76914 l_adr_accounting_coa_id       := NULL;
76915 l_adr_flexfield_segment_code  := NULL;
76916 l_adr_flex_value_set_id       := NULL;
76917 l_adr_value_type_code         := NULL;
76918 l_adr_value_combination_id    := NULL;
76919 l_adr_value_segment_code      := NULL;
76920 
76921 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
76922 l_bflow_class_code           := '';    -- 4219869 Business Flow
76923 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
76924 l_budgetary_control_flag     := 'N';
76925 
76926 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
76927 l_bflow_applied_to_amt       := NULL; -- 5132302
76928 l_entered_amt_idx            := NULL;          -- 4262811
76929 l_accted_amt_idx             := NULL;          -- 4262811
76930 l_acc_rev_flag               := NULL;          -- 4262811
76931 l_accrual_line_num           := NULL;          -- 4262811
76932 l_tmp_amt                    := NULL;          -- 4262811
76933 --
76934  
76935 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
76936     l_balance_type_code <> 'B' THEN
76937 IF NVL(p_source_50,'
76938 ') <>  'CLEAR_CLEAR' AND 
76939 NVL(p_source_32,'
76940 ') =  'REC_TAX' AND 
76941 (NVL(p_source_51,'
76942 ') =  'CASH' OR 
76943 NVL(p_source_51,'
76944 ') =  'AWT' OR 
76945 NVL(p_source_51,'
76946 ') =  'DISCOUNT') AND 
76947 NVL(p_source_71,'
76948 ') <>  'R'
76949  THEN 
76950 
76951    --
76952    XLA_AE_LINES_PKG.SetNewLine;
76953 
76954    p_balance_type_code          := l_balance_type_code;
76955    -- set the flag so later we will know whether the gain loss line needs to be created
76956    
76957    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
76958      p_actual_flag :='A';
76959    END IF;
76960 
76961    --
76962    -- bulk performance
76963    --
76964    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
76965                                       p_header_num   => 0); -- 4262811
76966    --
76967    -- set accounting line options
76968    --
76969    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
76970            p_natural_side_code          => 'D'
76971          , p_gain_or_loss_flag          => 'N'
76972          , p_gl_transfer_mode_code      => 'S'
76973          , p_acct_entry_type_code       => 'A'
76974          , p_switch_side_flag           => 'Y'
76975          , p_merge_duplicate_code       => 'A'
76976          );
76977    --
76978    l_acc_rev_natural_side_code := 'C';  -- 4262811
76979    -- 
76980    --
76981    -- set accounting line type info
76982    --
76983    xla_ae_lines_pkg.SetAcctLineType
76984       (p_component_type             => l_component_type
76985       ,p_event_type_code            => l_event_type_code
76986       ,p_line_definition_owner_code => l_line_definition_owner_code
76987       ,p_line_definition_code       => l_line_definition_code
76988       ,p_accounting_line_code       => l_component_code
76989       ,p_accounting_line_type_code  => l_component_type_code
76990       ,p_accounting_line_appl_id    => l_component_appl_id
76991       ,p_amb_context_code           => l_amb_context_code
76992       ,p_entity_code                => l_entity_code
76993       ,p_event_class_code           => l_event_class_code);
76994    --
76995    -- set accounting class
76996    --
76997    xla_ae_lines_pkg.SetAcctClass(
76998            p_accounting_class_code  => 'RTAX'
76999          , p_ae_header_id           => l_ae_header_id
77000          );
77001 
77002    --
77003    -- set rounding class
77004    --
77005    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
77006                       'RTAX';
77007 
77008    --
77009    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
77010    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
77011    --
77012    -- bulk performance
77013    --
77014    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
77015 
77016    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
77017       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
77018 
77019    -- 4955764
77020    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77021       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
77022 
77023    -- 4458381 Public Sector Enh
77024    
77025    --
77026    -- set accounting attributes for the line type
77027    --
77028    l_entered_amt_idx := 10;
77029    l_accted_amt_idx  := 15;
77030    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
77031    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
77032    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
77033    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
77034    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
77038    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
77035    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
77036    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
77037    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
77039    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
77040    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
77041    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
77042    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
77043    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
77044    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
77045    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
77046    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
77047    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
77048    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
77049    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
77050    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
77051    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
77052    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
77053    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
77054    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
77055    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
77056    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
77057    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
77058    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
77059    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
77060    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
77061    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
77062    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
77063    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
77064    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
77065    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
77066    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
77067    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
77068    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
77069    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
77070    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
77071    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
77072    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
77073    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
77074    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
77075    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
77076    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
77077    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
77078    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
77079 
77080    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
77081    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
77082 
77083    ---------------------------------------------------------------------------------------------------------------
77084    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
77085    ---------------------------------------------------------------------------------------------------------------
77086    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
77087 
77088    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77089    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77090 
77091    IF xla_accounting_cache_pkg.GetValueChar
77092          (p_source_code         => 'LEDGER_CATEGORY_CODE'
77093          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
77094    AND l_bflow_method_code = 'PRIOR_ENTRY'
77095 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
77096    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
77097          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
77098        )
77099    THEN
77100          xla_ae_lines_pkg.BflowUpgEntry
77101            (p_business_method_code    => l_bflow_method_code
77102            ,p_business_class_code     => l_bflow_class_code
77103            ,p_balance_type            => l_balance_type_code);
77104    ELSE
77105       NULL;
77106 -- No business flow processing for business flow method of NONE.
77107    END IF;
77108 
77109    --
77110    -- call analytical criteria
77111    --
77112    
77113    --
77114    -- call description
77115    --
77116    -- No description or it is inherited.
77117    --
77118    -- call ADRs
77119    -- Bug 4922099
77120    --
77121    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77122         (NVL(l_actual_upg_option, 'N') = 'O') OR
77123         (NVL(l_enc_upg_option, 'N') = 'O')
77124       )
77125    THEN
77126    NULL;
77127    --
77128    --
77129    
77130   l_ccid := AcctDerRule_28(
77131            p_application_id           => p_application_id
77132          , p_ae_header_id             => l_ae_header_id 
77133 , p_source_29 => p_source_29
77134          , x_transaction_coa_id       => l_adr_transaction_coa_id
77135          , x_accounting_coa_id        => l_adr_accounting_coa_id
77139 
77136          , x_value_type_code          => l_adr_value_type_code
77137          , p_side                     => 'NA'
77138    );
77140    xla_ae_lines_pkg.set_ccid(
77141     p_code_combination_id          => l_ccid
77142   , p_value_type_code              => l_adr_value_type_code
77143   , p_transaction_coa_id           => l_adr_transaction_coa_id
77144   , p_accounting_coa_id            => l_adr_accounting_coa_id
77145   , p_adr_code                     => 'AP_INVOICE_DIST'
77146   , p_adr_type_code                => 'S'
77147   , p_component_type               => l_component_type
77148   , p_component_code               => l_component_code
77149   , p_component_type_code          => l_component_type_code
77150   , p_component_appl_id            => l_component_appl_id
77151   , p_amb_context_code             => l_amb_context_code
77152   , p_side                         => 'NA'
77153   );
77154 
77155 
77156    --
77157    --
77158    END IF;
77159    --
77160    -- Bug 4922099
77161    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
77162           (NVL(l_enc_upg_option, 'N') = 'O')
77163         ) AND
77164         (l_bflow_method_code = 'PRIOR_ENTRY')
77165       )
77166    THEN
77167       IF
77168       --
77169       1 = 2
77170       --
77171       THEN
77172       xla_accounting_err_pkg.build_message
77173                                     (p_appli_s_name            => 'XLA'
77174                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77175                                     ,p_token_1                 => 'LINE_NUMBER'
77176                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
77177                                     ,p_token_2                 => 'LINE_TYPE_NAME'
77178                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
77179                                                                              l_component_type
77180                                                                             ,l_component_code
77181                                                                             ,l_component_type_code
77182                                                                             ,l_component_appl_id
77183                                                                             ,l_amb_context_code
77184                                                                             ,l_entity_code
77185                                                                             ,l_event_class_code
77186                                                                            )
77187                                     ,p_token_3                 => 'OWNER'
77188                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
77189                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
77190                                                                           ,p_lookup_code    => l_component_type_code
77191                                                                          )
77192                                     ,p_token_4                 => 'PRODUCT_NAME'
77193                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
77194                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
77195                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
77196                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
77197                                     ,p_ae_header_id            =>  NULL
77198                                        );
77199 
77200         IF (C_LEVEL_ERROR>= g_log_level) THEN
77201                  trace
77202                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77203                       ,p_level    => C_LEVEL_ERROR
77204                       ,p_module   => l_log_module);
77205         END IF;
77206       END IF;
77207    END IF;
77208    --
77209    --
77210    ------------------------------------------------------------------------------------------------
77211    -- 4219869 Business Flow
77212    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
77213    -- Prior Entry.  Currently, the following code is always generated.
77214    ------------------------------------------------------------------------------------------------
77215    XLA_AE_LINES_PKG.ValidateCurrentLine;
77216 
77217    ------------------------------------------------------------------------------------
77218    -- 4219869 Business Flow
77219    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
77220    ------------------------------------------------------------------------------------
77221    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77222 
77223    ----------------------------------------------------------------------------------
77224    -- 4219869 Business Flow
77225    -- Update journal entry status -- Need to generate this within IF <condition>
77226    ----------------------------------------------------------------------------------
77227    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77228          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
77229          ,p_balance_type_code => l_balance_type_code
77230          );
77231 
77232    -------------------------------------------------------------------------------------------
77233    -- 4262811 - Generate the Accrual Reversal lines
77237                               (g_array_event(p_event_id).array_value_num('header_index'));
77234    -------------------------------------------------------------------------------------------
77235    BEGIN
77236       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
77238       IF l_acc_rev_flag IS NULL THEN
77239          l_acc_rev_flag := 'N';
77240       END IF;
77241    EXCEPTION
77242       WHEN OTHERS THEN
77243          l_acc_rev_flag := 'N';
77244    END;
77245    --
77246    IF (l_acc_rev_flag = 'Y') THEN
77247 
77248        -- 4645092  ------------------------------------------------------------------------------
77249        -- To allow MPA report to determine if it should generate report process
77250        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
77251        ------------------------------------------------------------------------------------------
77252 
77253        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
77254        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
77255    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
77256    -- call ADRs
77257    -- Bug 4922099
77258    --
77259    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77260         (NVL(l_actual_upg_option, 'N') = 'O') OR
77261         (NVL(l_enc_upg_option, 'N') = 'O')
77262       )
77263    THEN
77264    NULL;
77265    --
77266    --
77267    
77268   l_ccid := AcctDerRule_28(
77269            p_application_id           => p_application_id
77270          , p_ae_header_id             => l_ae_header_id 
77271 , p_source_29 => p_source_29
77272          , x_transaction_coa_id       => l_adr_transaction_coa_id
77273          , x_accounting_coa_id        => l_adr_accounting_coa_id
77274          , x_value_type_code          => l_adr_value_type_code
77275          , p_side                     => 'NA'
77276    );
77277 
77278    xla_ae_lines_pkg.set_ccid(
77279     p_code_combination_id          => l_ccid
77280   , p_value_type_code              => l_adr_value_type_code
77281   , p_transaction_coa_id           => l_adr_transaction_coa_id
77282   , p_accounting_coa_id            => l_adr_accounting_coa_id
77283   , p_adr_code                     => 'AP_INVOICE_DIST'
77284   , p_adr_type_code                => 'S'
77285   , p_component_type               => l_component_type
77286   , p_component_code               => l_component_code
77287   , p_component_type_code          => l_component_type_code
77288   , p_component_appl_id            => l_component_appl_id
77289   , p_amb_context_code             => l_amb_context_code
77290   , p_side                         => 'NA'
77291   );
77292 
77293 
77294    --
77295    --
77296    END IF;
77297 
77298        --
77299        -- Update the line information that should be overwritten
77300        --
77301        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
77302                                          p_header_num   => 1);
77303        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
77304 
77305        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
77306 
77307        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
77308           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
77309        END IF;
77310 
77311       --
77312       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
77313       --
77314       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
77315           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
77316       ELSE
77317           ---------------------------------------------------------------------------------------------------
77318           -- 4262811a Switch Sign
77319           ---------------------------------------------------------------------------------------------------
77320           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
77321           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77322                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77323           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77324                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77325           -- 5132302
77326           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
77327                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77328 
77329       END IF;
77330 
77331       -- 4955764
77332       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77333       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
77334 
77335 
77336       XLA_AE_LINES_PKG.ValidateCurrentLine;
77337       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77338 
77339       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77340                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
77341                ,p_balance_type_code => l_balance_type_code);
77342 
77343    END IF;
77344 
77345    -----------------------------------------------------------------------------------------
77349 
77346    -- 4262811 Multiperiod Accounting
77347    -----------------------------------------------------------------------------------------
77348      -- No MPA option is assigned.
77350 
77351 END IF;
77352 END IF;
77353 --
77354 
77355 --
77356 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77357    trace
77358       (p_msg      => 'END of AcctLineType_139'
77359       ,p_level    => C_LEVEL_PROCEDURE
77360       ,p_module   => l_log_module);
77361 END IF;
77362 --
77363 EXCEPTION
77364   WHEN xla_exceptions_pkg.application_exception THEN
77365       RAISE;
77366   WHEN OTHERS THEN
77367        xla_exceptions_pkg.raise_message
77368            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_139');
77369 END AcctLineType_139;
77370 --
77371 
77372 ---------------------------------------
77373 --
77374 -- PRIVATE FUNCTION
77375 --         AcctLineType_140
77376 --
77377 ---------------------------------------
77378 PROCEDURE AcctLineType_140 (
77379   p_application_id        IN NUMBER
77380  ,p_event_id              IN NUMBER
77381  ,p_calculate_acctd_flag  IN VARCHAR2
77382  ,p_calculate_g_l_flag    IN VARCHAR2
77383  ,p_actual_flag           IN OUT VARCHAR2
77384  ,p_balance_type_code     OUT VARCHAR2
77385  ,p_gain_or_loss_ref      OUT VARCHAR2
77386  
77387 --Payment Currency Code
77388  , p_source_12            IN VARCHAR2
77389 --Payment Distribution (Payment Rate) Ledger Amount
77390  , p_source_21            IN NUMBER
77391 --Invoice Distribution Account
77392  , p_source_29            IN NUMBER
77393 --Invoice Distribution Type
77394  , p_source_32            IN VARCHAR2
77395  , p_source_32_meaning    IN VARCHAR2
77396 --When to Account for Payment Option
77397  , p_source_50            IN VARCHAR2
77398 --Payment Distribution Type
77399  , p_source_51            IN VARCHAR2
77400  , p_source_51_meaning    IN VARCHAR2
77401 --Accounting Reversal Indicator
77402  , p_source_52            IN VARCHAR2
77403 --Payment Distribution Amount
77404  , p_source_53            IN NUMBER
77405 --Business Flow Accounts Payable Application Identifier
77406  , p_source_54            IN NUMBER
77407 --Payment Distribution Identifier
77408  , p_source_59            IN NUMBER
77409 --Distribution Link Type
77410  , p_source_60            IN VARCHAR2
77411 --Override Accounted Amount Indicator
77412  , p_source_64            IN VARCHAR2
77413  , p_source_64_meaning    IN VARCHAR2
77414 --Payment Supplier Identifier
77415  , p_source_65            IN NUMBER
77416 --Payment Supplier Site Identifier
77417  , p_source_66            IN NUMBER
77418 --Third Party Type
77419  , p_source_67            IN VARCHAR2
77420 --Payment Distribution Reversed Identifier
77421  , p_source_68            IN NUMBER
77422 --Invoice Distribution Tax Line Identifier
77423  , p_source_69            IN NUMBER
77424 --Invoice Distribution Summary Tax Line Identifier
77425  , p_source_70            IN NUMBER
77426 --Payment Type
77427  , p_source_71            IN VARCHAR2
77428  , p_source_71_meaning    IN VARCHAR2
77429 --Business Flow Invoice Distribution Type
77430  , p_source_73            IN VARCHAR2
77431 --Business Flow Invoice Entity Code
77432  , p_source_74            IN VARCHAR2
77433 --Business Flow Invoice Distribution Identifier
77434  , p_source_75            IN NUMBER
77435 --Business Flow Invoice Identifier
77436  , p_source_76            IN NUMBER
77437 --Invoice Distribution Tax Distribution Identifier from Tax
77438  , p_source_77            IN NUMBER
77439 --Payment Exchange Date
77440  , p_source_121            IN DATE
77441 --Payment Exchange Rate
77442  , p_source_122            IN NUMBER
77443 --Payment Exchange Rate Type
77444  , p_source_123            IN VARCHAR2
77445 )
77446 IS
77447 
77448 l_component_type              VARCHAR2(80);
77449 l_component_code              VARCHAR2(30);
77450 l_component_type_code         VARCHAR2(1);
77451 l_component_appl_id           INTEGER;
77452 l_amb_context_code            VARCHAR2(30);
77453 l_entity_code                 VARCHAR2(30);
77454 l_event_class_code            VARCHAR2(30);
77455 l_ae_header_id                NUMBER;
77456 l_event_type_code             VARCHAR2(30);
77457 l_line_definition_code        VARCHAR2(30);
77458 l_line_definition_owner_code  VARCHAR2(1);
77459 --
77460 -- adr variables
77461 l_segment                     VARCHAR2(30);
77462 l_ccid                        NUMBER;
77463 l_adr_transaction_coa_id      NUMBER;
77464 l_adr_accounting_coa_id       NUMBER;
77465 l_adr_flexfield_segment_code  VARCHAR2(30);
77466 l_adr_flex_value_set_id       NUMBER;
77467 l_adr_value_type_code         VARCHAR2(30);
77468 l_adr_value_combination_id    NUMBER;
77469 l_adr_value_segment_code      VARCHAR2(30);
77470 
77471 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
77472 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
77473 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
77474 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
77475 
77476 -- 4262811 Variables ------------------------------------------------------------------------------------------
77477 l_entered_amt_idx             NUMBER;
77478 l_accted_amt_idx              NUMBER;
77479 l_acc_rev_flag                VARCHAR2(1);
77480 l_accrual_line_num            NUMBER;
77481 l_tmp_amt                     NUMBER;
77482 l_acc_rev_natural_side_code   VARCHAR2(1);
77483 
77484 l_num_entries                 NUMBER;
77488 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
77485 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
77486 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
77487 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
77489 l_recog_line_1                NUMBER;
77490 l_recog_line_2                NUMBER;
77491 
77492 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
77493 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
77494 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
77495 
77496 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
77497 
77498 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
77499 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
77500 
77501 ---------------------------------------------------------------------------------------------------------------
77502 
77503 
77504 --
77505 -- bulk performance
77506 --
77507 l_balance_type_code           VARCHAR2(1);
77508 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
77509 l_log_module                  VARCHAR2(240);
77510 
77511 --
77512 -- Upgrade strategy
77513 --
77514 l_actual_upg_option           VARCHAR2(1);
77515 l_enc_upg_option           VARCHAR2(1);
77516 
77517 --
77518 BEGIN
77519 --
77520 IF g_log_enabled THEN
77521       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_140';
77522 END IF;
77523 --
77524 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77525 
77526       trace
77527          (p_msg      => 'BEGIN of AcctLineType_140'
77528          ,p_level    => C_LEVEL_PROCEDURE
77529          ,p_module   => l_log_module);
77530 
77531 END IF;
77532 --
77533 l_component_type             := 'AMB_JLT';
77534 l_component_code             := 'AP_RECOV_TAX_REF';
77535 l_component_type_code        := 'S';
77536 l_component_appl_id          :=  200;
77537 l_amb_context_code           := 'DEFAULT';
77538 l_entity_code                := 'AP_PAYMENTS';
77539 l_event_class_code           := 'REFUNDS';
77540 l_event_type_code            := 'REFUNDS_ALL';
77541 l_line_definition_owner_code := 'S';
77542 l_line_definition_code       := 'CASH_REFUNDS_ALL';
77543 --
77544 l_balance_type_code          := 'A';
77545 l_segment                     := NULL;
77546 l_ccid                        := NULL;
77547 l_adr_transaction_coa_id      := NULL;
77548 l_adr_accounting_coa_id       := NULL;
77549 l_adr_flexfield_segment_code  := NULL;
77550 l_adr_flex_value_set_id       := NULL;
77551 l_adr_value_type_code         := NULL;
77552 l_adr_value_combination_id    := NULL;
77553 l_adr_value_segment_code      := NULL;
77554 
77555 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
77556 l_bflow_class_code           := '';    -- 4219869 Business Flow
77557 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
77558 l_budgetary_control_flag     := 'N';
77559 
77560 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
77561 l_bflow_applied_to_amt       := NULL; -- 5132302
77562 l_entered_amt_idx            := NULL;          -- 4262811
77563 l_accted_amt_idx             := NULL;          -- 4262811
77564 l_acc_rev_flag               := NULL;          -- 4262811
77565 l_accrual_line_num           := NULL;          -- 4262811
77566 l_tmp_amt                    := NULL;          -- 4262811
77567 --
77568  
77569 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
77570     l_balance_type_code <> 'B' THEN
77571 IF NVL(p_source_50,'
77572 ') <>  'CLEAR_CLEAR' AND 
77573 NVL(p_source_32,'
77574 ') =  'REC_TAX' AND 
77575 (NVL(p_source_51,'
77576 ') =  'CASH' OR 
77577 NVL(p_source_51,'
77578 ') =  'DISCOUNT') AND 
77579 NVL(p_source_71,'
77580 ') =  'R'
77581  THEN 
77582 
77583    --
77584    XLA_AE_LINES_PKG.SetNewLine;
77585 
77586    p_balance_type_code          := l_balance_type_code;
77587    -- set the flag so later we will know whether the gain loss line needs to be created
77588    
77589    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
77590      p_actual_flag :='A';
77591    END IF;
77592 
77593    --
77594    -- bulk performance
77595    --
77596    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
77597                                       p_header_num   => 0); -- 4262811
77598    --
77599    -- set accounting line options
77600    --
77601    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
77602            p_natural_side_code          => 'D'
77603          , p_gain_or_loss_flag          => 'N'
77604          , p_gl_transfer_mode_code      => 'S'
77605          , p_acct_entry_type_code       => 'A'
77606          , p_switch_side_flag           => 'Y'
77607          , p_merge_duplicate_code       => 'A'
77608          );
77609    --
77610    l_acc_rev_natural_side_code := 'C';  -- 4262811
77611    -- 
77612    --
77613    -- set accounting line type info
77614    --
77615    xla_ae_lines_pkg.SetAcctLineType
77616       (p_component_type             => l_component_type
77617       ,p_event_type_code            => l_event_type_code
77618       ,p_line_definition_owner_code => l_line_definition_owner_code
77622       ,p_accounting_line_appl_id    => l_component_appl_id
77619       ,p_line_definition_code       => l_line_definition_code
77620       ,p_accounting_line_code       => l_component_code
77621       ,p_accounting_line_type_code  => l_component_type_code
77623       ,p_amb_context_code           => l_amb_context_code
77624       ,p_entity_code                => l_entity_code
77625       ,p_event_class_code           => l_event_class_code);
77626    --
77627    -- set accounting class
77628    --
77629    xla_ae_lines_pkg.SetAcctClass(
77630            p_accounting_class_code  => 'RTAX'
77631          , p_ae_header_id           => l_ae_header_id
77632          );
77633 
77634    --
77635    -- set rounding class
77636    --
77637    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
77638                       'RTAX';
77639 
77640    --
77641    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
77642    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
77643    --
77644    -- bulk performance
77645    --
77646    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
77647 
77648    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
77649       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
77650 
77651    -- 4955764
77652    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77653       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
77654 
77655    -- 4458381 Public Sector Enh
77656    
77657    --
77658    -- set accounting attributes for the line type
77659    --
77660    l_entered_amt_idx := 9;
77661    l_accted_amt_idx  := 14;
77662    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
77663    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
77664    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
77665    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
77666    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
77667    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
77668    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
77669    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
77670    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
77671    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
77672    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
77673    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
77674    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
77675    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
77676    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
77677    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
77678    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
77679    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
77680    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
77681    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
77682    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
77683    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
77684    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
77685    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
77686    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
77687    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
77688    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
77689    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
77690    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
77691    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
77692    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
77693    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
77694    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
77695    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
77696    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
77697    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
77698    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
77699    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
77700    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
77701    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
77702    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
77703    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
77704    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
77705    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
77706    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
77707    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
77708    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
77709 
77710    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
77711    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
77712 
77713    ---------------------------------------------------------------------------------------------------------------
77714    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
77715    ---------------------------------------------------------------------------------------------------------------
77719    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77716    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
77717 
77718    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77720 
77721    IF xla_accounting_cache_pkg.GetValueChar
77722          (p_source_code         => 'LEDGER_CATEGORY_CODE'
77723          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
77724    AND l_bflow_method_code = 'PRIOR_ENTRY'
77725 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
77726    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
77727          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
77728        )
77729    THEN
77730          xla_ae_lines_pkg.BflowUpgEntry
77731            (p_business_method_code    => l_bflow_method_code
77732            ,p_business_class_code     => l_bflow_class_code
77733            ,p_balance_type            => l_balance_type_code);
77734    ELSE
77735       NULL;
77736 -- No business flow processing for business flow method of NONE.
77737    END IF;
77738 
77739    --
77740    -- call analytical criteria
77741    --
77742    
77743    --
77744    -- call description
77745    --
77746    -- No description or it is inherited.
77747    --
77748    -- call ADRs
77749    -- Bug 4922099
77750    --
77751    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77752         (NVL(l_actual_upg_option, 'N') = 'O') OR
77753         (NVL(l_enc_upg_option, 'N') = 'O')
77754       )
77755    THEN
77756    NULL;
77757    --
77758    --
77759    
77760   l_ccid := AcctDerRule_28(
77761            p_application_id           => p_application_id
77762          , p_ae_header_id             => l_ae_header_id 
77763 , p_source_29 => p_source_29
77764          , x_transaction_coa_id       => l_adr_transaction_coa_id
77765          , x_accounting_coa_id        => l_adr_accounting_coa_id
77766          , x_value_type_code          => l_adr_value_type_code
77767          , p_side                     => 'NA'
77768    );
77769 
77770    xla_ae_lines_pkg.set_ccid(
77771     p_code_combination_id          => l_ccid
77772   , p_value_type_code              => l_adr_value_type_code
77773   , p_transaction_coa_id           => l_adr_transaction_coa_id
77774   , p_accounting_coa_id            => l_adr_accounting_coa_id
77775   , p_adr_code                     => 'AP_INVOICE_DIST'
77776   , p_adr_type_code                => 'S'
77777   , p_component_type               => l_component_type
77778   , p_component_code               => l_component_code
77779   , p_component_type_code          => l_component_type_code
77780   , p_component_appl_id            => l_component_appl_id
77781   , p_amb_context_code             => l_amb_context_code
77782   , p_side                         => 'NA'
77783   );
77784 
77785 
77786    --
77787    --
77788    END IF;
77789    --
77790    -- Bug 4922099
77791    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
77792           (NVL(l_enc_upg_option, 'N') = 'O')
77793         ) AND
77794         (l_bflow_method_code = 'PRIOR_ENTRY')
77795       )
77796    THEN
77797       IF
77798       --
77799       1 = 2
77800       --
77801       THEN
77802       xla_accounting_err_pkg.build_message
77803                                     (p_appli_s_name            => 'XLA'
77804                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77805                                     ,p_token_1                 => 'LINE_NUMBER'
77806                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
77807                                     ,p_token_2                 => 'LINE_TYPE_NAME'
77808                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
77809                                                                              l_component_type
77810                                                                             ,l_component_code
77811                                                                             ,l_component_type_code
77812                                                                             ,l_component_appl_id
77813                                                                             ,l_amb_context_code
77814                                                                             ,l_entity_code
77815                                                                             ,l_event_class_code
77816                                                                            )
77817                                     ,p_token_3                 => 'OWNER'
77818                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
77819                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
77820                                                                           ,p_lookup_code    => l_component_type_code
77821                                                                          )
77822                                     ,p_token_4                 => 'PRODUCT_NAME'
77823                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
77824                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
77828                                        );
77825                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
77826                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
77827                                     ,p_ae_header_id            =>  NULL
77829 
77830         IF (C_LEVEL_ERROR>= g_log_level) THEN
77831                  trace
77832                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77833                       ,p_level    => C_LEVEL_ERROR
77834                       ,p_module   => l_log_module);
77835         END IF;
77836       END IF;
77837    END IF;
77838    --
77839    --
77840    ------------------------------------------------------------------------------------------------
77841    -- 4219869 Business Flow
77842    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
77843    -- Prior Entry.  Currently, the following code is always generated.
77844    ------------------------------------------------------------------------------------------------
77845    XLA_AE_LINES_PKG.ValidateCurrentLine;
77846 
77847    ------------------------------------------------------------------------------------
77848    -- 4219869 Business Flow
77849    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
77850    ------------------------------------------------------------------------------------
77851    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77852 
77853    ----------------------------------------------------------------------------------
77854    -- 4219869 Business Flow
77855    -- Update journal entry status -- Need to generate this within IF <condition>
77856    ----------------------------------------------------------------------------------
77857    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77858          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
77859          ,p_balance_type_code => l_balance_type_code
77860          );
77861 
77862    -------------------------------------------------------------------------------------------
77863    -- 4262811 - Generate the Accrual Reversal lines
77864    -------------------------------------------------------------------------------------------
77865    BEGIN
77866       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
77867                               (g_array_event(p_event_id).array_value_num('header_index'));
77868       IF l_acc_rev_flag IS NULL THEN
77869          l_acc_rev_flag := 'N';
77870       END IF;
77871    EXCEPTION
77872       WHEN OTHERS THEN
77873          l_acc_rev_flag := 'N';
77874    END;
77875    --
77876    IF (l_acc_rev_flag = 'Y') THEN
77877 
77878        -- 4645092  ------------------------------------------------------------------------------
77879        -- To allow MPA report to determine if it should generate report process
77880        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
77881        ------------------------------------------------------------------------------------------
77882 
77883        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
77884        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
77885    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
77886    -- call ADRs
77887    -- Bug 4922099
77888    --
77889    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77890         (NVL(l_actual_upg_option, 'N') = 'O') OR
77891         (NVL(l_enc_upg_option, 'N') = 'O')
77892       )
77893    THEN
77894    NULL;
77895    --
77896    --
77897    
77898   l_ccid := AcctDerRule_28(
77899            p_application_id           => p_application_id
77900          , p_ae_header_id             => l_ae_header_id 
77901 , p_source_29 => p_source_29
77902          , x_transaction_coa_id       => l_adr_transaction_coa_id
77903          , x_accounting_coa_id        => l_adr_accounting_coa_id
77904          , x_value_type_code          => l_adr_value_type_code
77905          , p_side                     => 'NA'
77906    );
77907 
77908    xla_ae_lines_pkg.set_ccid(
77909     p_code_combination_id          => l_ccid
77910   , p_value_type_code              => l_adr_value_type_code
77911   , p_transaction_coa_id           => l_adr_transaction_coa_id
77912   , p_accounting_coa_id            => l_adr_accounting_coa_id
77913   , p_adr_code                     => 'AP_INVOICE_DIST'
77914   , p_adr_type_code                => 'S'
77915   , p_component_type               => l_component_type
77916   , p_component_code               => l_component_code
77917   , p_component_type_code          => l_component_type_code
77918   , p_component_appl_id            => l_component_appl_id
77919   , p_amb_context_code             => l_amb_context_code
77920   , p_side                         => 'NA'
77921   );
77922 
77923 
77924    --
77925    --
77926    END IF;
77927 
77928        --
77929        -- Update the line information that should be overwritten
77930        --
77931        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
77932                                          p_header_num   => 1);
77933        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
77934 
77935        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
77936 
77937        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
77941       --
77938           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
77939        END IF;
77940 
77942       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
77943       --
77944       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
77945           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
77946       ELSE
77947           ---------------------------------------------------------------------------------------------------
77948           -- 4262811a Switch Sign
77949           ---------------------------------------------------------------------------------------------------
77950           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
77951           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77952                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77953           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77954                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77955           -- 5132302
77956           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
77957                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77958 
77959       END IF;
77960 
77961       -- 4955764
77962       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77963       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
77964 
77965 
77966       XLA_AE_LINES_PKG.ValidateCurrentLine;
77967       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77968 
77969       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77970                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
77971                ,p_balance_type_code => l_balance_type_code);
77972 
77973    END IF;
77974 
77975    -----------------------------------------------------------------------------------------
77976    -- 4262811 Multiperiod Accounting
77977    -----------------------------------------------------------------------------------------
77978      -- No MPA option is assigned.
77979 
77980 
77981 END IF;
77982 END IF;
77983 --
77984 
77985 --
77986 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77987    trace
77988       (p_msg      => 'END of AcctLineType_140'
77989       ,p_level    => C_LEVEL_PROCEDURE
77990       ,p_module   => l_log_module);
77991 END IF;
77992 --
77993 EXCEPTION
77994   WHEN xla_exceptions_pkg.application_exception THEN
77995       RAISE;
77996   WHEN OTHERS THEN
77997        xla_exceptions_pkg.raise_message
77998            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_140');
77999 END AcctLineType_140;
78000 --
78001 
78002 ---------------------------------------
78003 --
78004 -- PRIVATE FUNCTION
78005 --         AcctLineType_141
78006 --
78007 ---------------------------------------
78008 PROCEDURE AcctLineType_141 (
78009   p_application_id        IN NUMBER
78010  ,p_event_id              IN NUMBER
78011  ,p_calculate_acctd_flag  IN VARCHAR2
78012  ,p_calculate_g_l_flag    IN VARCHAR2
78013  ,p_actual_flag           IN OUT VARCHAR2
78014  ,p_balance_type_code     OUT VARCHAR2
78015  ,p_gain_or_loss_ref      OUT VARCHAR2
78016  
78017 --Payment Currency Code
78018  , p_source_12            IN VARCHAR2
78019 --Automatic Offsets Value
78020  , p_source_16            IN VARCHAR2
78021  , p_source_16_meaning    IN VARCHAR2
78022 --Payment Distribution (Cleared Rate) Ledger Amount
78023  , p_source_22            IN NUMBER
78024 --Invoice Distribution Account
78025  , p_source_29            IN NUMBER
78026 --Invoice Distribution Type
78027  , p_source_32            IN VARCHAR2
78028  , p_source_32_meaning    IN VARCHAR2
78029 --Retainage Account
78030  , p_source_34            IN NUMBER
78031 --Retainage Related Item Distribution Account
78032  , p_source_35            IN NUMBER
78033 --When to Account for Payment Option
78034  , p_source_50            IN VARCHAR2
78035 --Accounting Reversal Indicator
78036  , p_source_52            IN VARCHAR2
78037 --Payment Distribution Amount
78038  , p_source_53            IN NUMBER
78039 --Business Flow Accounts Payable Application Identifier
78040  , p_source_54            IN NUMBER
78041 --Business Flow Payment Distribution Type
78042  , p_source_55            IN VARCHAR2
78043 --Business Flow Payment Entity Code
78044  , p_source_56            IN VARCHAR2
78045 --Business Flow Payment Distribution Identifier
78046  , p_source_57            IN NUMBER
78047 --Business Flow Payment Identifier
78048  , p_source_58            IN NUMBER
78049 --Payment Distribution Identifier
78050  , p_source_59            IN NUMBER
78051 --Distribution Link Type
78052  , p_source_60            IN VARCHAR2
78053 --Override Accounted Amount Indicator
78054  , p_source_64            IN VARCHAR2
78055  , p_source_64_meaning    IN VARCHAR2
78056 --Payment Supplier Identifier
78057  , p_source_65            IN NUMBER
78058 --Payment Supplier Site Identifier
78059  , p_source_66            IN NUMBER
78060 --Third Party Type
78061  , p_source_67            IN VARCHAR2
78062 --Payment Distribution Reversed Identifier
78066 --Invoice Distribution Summary Tax Line Identifier
78063  , p_source_68            IN NUMBER
78064 --Invoice Distribution Tax Line Identifier
78065  , p_source_69            IN NUMBER
78067  , p_source_70            IN NUMBER
78068 --Invoice Type Paid
78069  , p_source_112            IN VARCHAR2
78070  , p_source_112_meaning    IN VARCHAR2
78071 --Cleared Exchange Date
78072  , p_source_114            IN DATE
78073 --Cleared Exchange Rate
78074  , p_source_115            IN NUMBER
78075 --Cleared Exchange Rate Type
78076  , p_source_116            IN VARCHAR2
78077 )
78078 IS
78079 
78080 l_component_type              VARCHAR2(80);
78081 l_component_code              VARCHAR2(30);
78082 l_component_type_code         VARCHAR2(1);
78083 l_component_appl_id           INTEGER;
78084 l_amb_context_code            VARCHAR2(30);
78085 l_entity_code                 VARCHAR2(30);
78086 l_event_class_code            VARCHAR2(30);
78087 l_ae_header_id                NUMBER;
78088 l_event_type_code             VARCHAR2(30);
78089 l_line_definition_code        VARCHAR2(30);
78090 l_line_definition_owner_code  VARCHAR2(1);
78091 --
78092 -- adr variables
78093 l_segment                     VARCHAR2(30);
78094 l_ccid                        NUMBER;
78095 l_adr_transaction_coa_id      NUMBER;
78096 l_adr_accounting_coa_id       NUMBER;
78097 l_adr_flexfield_segment_code  VARCHAR2(30);
78098 l_adr_flex_value_set_id       NUMBER;
78099 l_adr_value_type_code         VARCHAR2(30);
78100 l_adr_value_combination_id    NUMBER;
78101 l_adr_value_segment_code      VARCHAR2(30);
78102 
78103 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
78104 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
78105 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
78106 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
78107 
78108 -- 4262811 Variables ------------------------------------------------------------------------------------------
78109 l_entered_amt_idx             NUMBER;
78110 l_accted_amt_idx              NUMBER;
78111 l_acc_rev_flag                VARCHAR2(1);
78112 l_accrual_line_num            NUMBER;
78113 l_tmp_amt                     NUMBER;
78114 l_acc_rev_natural_side_code   VARCHAR2(1);
78115 
78116 l_num_entries                 NUMBER;
78117 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
78118 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
78119 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
78120 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
78121 l_recog_line_1                NUMBER;
78122 l_recog_line_2                NUMBER;
78123 
78124 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
78125 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
78126 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
78127 
78128 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
78129 
78130 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
78131 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
78132 
78133 ---------------------------------------------------------------------------------------------------------------
78134 
78135 
78136 --
78137 -- bulk performance
78138 --
78139 l_balance_type_code           VARCHAR2(1);
78140 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
78141 l_log_module                  VARCHAR2(240);
78142 
78143 --
78144 -- Upgrade strategy
78145 --
78146 l_actual_upg_option           VARCHAR2(1);
78147 l_enc_upg_option           VARCHAR2(1);
78148 
78149 --
78150 BEGIN
78151 --
78152 IF g_log_enabled THEN
78153       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_141';
78154 END IF;
78155 --
78156 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78157 
78158       trace
78159          (p_msg      => 'BEGIN of AcctLineType_141'
78160          ,p_level    => C_LEVEL_PROCEDURE
78161          ,p_module   => l_log_module);
78162 
78163 END IF;
78164 --
78165 l_component_type             := 'AMB_JLT';
78166 l_component_code             := 'AP_RETAINAGE_CLR_CASH';
78167 l_component_type_code        := 'S';
78168 l_component_appl_id          :=  200;
78169 l_amb_context_code           := 'DEFAULT';
78170 l_entity_code                := 'AP_PAYMENTS';
78171 l_event_class_code           := 'RECONCILED PAYMENTS';
78172 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
78173 l_line_definition_owner_code := 'S';
78174 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
78175 --
78176 l_balance_type_code          := 'A';
78177 l_segment                     := NULL;
78178 l_ccid                        := NULL;
78179 l_adr_transaction_coa_id      := NULL;
78180 l_adr_accounting_coa_id       := NULL;
78181 l_adr_flexfield_segment_code  := NULL;
78182 l_adr_flex_value_set_id       := NULL;
78183 l_adr_value_type_code         := NULL;
78184 l_adr_value_combination_id    := NULL;
78185 l_adr_value_segment_code      := NULL;
78186 
78187 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
78188 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
78189 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
78190 l_budgetary_control_flag     := 'N';
78194 l_entered_amt_idx            := NULL;          -- 4262811
78191 
78192 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
78193 l_bflow_applied_to_amt       := NULL; -- 5132302
78195 l_accted_amt_idx             := NULL;          -- 4262811
78196 l_acc_rev_flag               := NULL;          -- 4262811
78197 l_accrual_line_num           := NULL;          -- 4262811
78198 l_tmp_amt                    := NULL;          -- 4262811
78199 --
78200  
78201 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
78202     l_balance_type_code <> 'B' THEN
78203 IF NVL(p_source_50,'
78204 ') =  'CLEAR_CLEAR' AND 
78205 NVL(p_source_112,'
78206 ') <>  'STANDARD' AND 
78207 NVL(p_source_32,'
78208 ') =  'RETAINAGE'
78209  THEN 
78210 
78211    --
78212    XLA_AE_LINES_PKG.SetNewLine;
78213 
78214    p_balance_type_code          := l_balance_type_code;
78215    -- set the flag so later we will know whether the gain loss line needs to be created
78216    
78217    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
78218      p_actual_flag :='A';
78219    END IF;
78220 
78221    --
78222    -- bulk performance
78223    --
78224    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
78225                                       p_header_num   => 0); -- 4262811
78226    --
78227    -- set accounting line options
78228    --
78229    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
78230            p_natural_side_code          => 'D'
78231          , p_gain_or_loss_flag          => 'N'
78232          , p_gl_transfer_mode_code      => 'S'
78233          , p_acct_entry_type_code       => 'A'
78234          , p_switch_side_flag           => 'Y'
78235          , p_merge_duplicate_code       => 'A'
78236          );
78237    --
78238    l_acc_rev_natural_side_code := 'C';  -- 4262811
78239    -- 
78240    --
78241    -- set accounting line type info
78242    --
78243    xla_ae_lines_pkg.SetAcctLineType
78244       (p_component_type             => l_component_type
78245       ,p_event_type_code            => l_event_type_code
78246       ,p_line_definition_owner_code => l_line_definition_owner_code
78247       ,p_line_definition_code       => l_line_definition_code
78248       ,p_accounting_line_code       => l_component_code
78249       ,p_accounting_line_type_code  => l_component_type_code
78250       ,p_accounting_line_appl_id    => l_component_appl_id
78251       ,p_amb_context_code           => l_amb_context_code
78252       ,p_entity_code                => l_entity_code
78253       ,p_event_class_code           => l_event_class_code);
78254    --
78255    -- set accounting class
78256    --
78257    xla_ae_lines_pkg.SetAcctClass(
78258            p_accounting_class_code  => 'RETAINAGE'
78259          , p_ae_header_id           => l_ae_header_id
78260          );
78261 
78262    --
78263    -- set rounding class
78264    --
78265    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
78266                       'RETAINAGE';
78267 
78268    --
78269    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
78270    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
78271    --
78272    -- bulk performance
78273    --
78274    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
78275 
78276    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
78277       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
78278 
78279    -- 4955764
78280    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78281       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
78282 
78283    -- 4458381 Public Sector Enh
78284    
78285    --
78286    -- set accounting attributes for the line type
78287    --
78288    l_entered_amt_idx := 10;
78289    l_accted_amt_idx  := 15;
78290    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
78291    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
78292    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
78293    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
78294    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
78295    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
78296    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
78297    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
78298    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
78299    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
78300    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
78301    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
78302    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
78303    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
78304    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
78305    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
78306    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
78307    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
78308    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
78309    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
78313    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
78310    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
78311    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
78312    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
78314    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
78315    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
78316    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
78317    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
78318    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
78319    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
78320    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
78321    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
78322    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
78323    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
78324    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
78325    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
78326    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
78327    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
78328    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
78329    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
78330    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
78331    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
78332    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
78333    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
78334    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
78335    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
78336    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
78337    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
78338    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
78339 
78340    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
78341    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
78342 
78343    ---------------------------------------------------------------------------------------------------------------
78344    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
78345    ---------------------------------------------------------------------------------------------------------------
78346    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
78347 
78348    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78349    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78350 
78351    IF xla_accounting_cache_pkg.GetValueChar
78352          (p_source_code         => 'LEDGER_CATEGORY_CODE'
78353          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
78354    AND l_bflow_method_code = 'PRIOR_ENTRY'
78355 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
78356    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
78357          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
78358        )
78359    THEN
78360          xla_ae_lines_pkg.BflowUpgEntry
78361            (p_business_method_code    => l_bflow_method_code
78362            ,p_business_class_code     => l_bflow_class_code
78363            ,p_balance_type            => l_balance_type_code);
78364    ELSE
78365       NULL;
78366 -- No business flow processing for business flow method of NONE.
78367    END IF;
78368 
78369    --
78370    -- call analytical criteria
78371    --
78372    
78373    --
78374    -- call description
78375    --
78376    -- No description or it is inherited.
78377    --
78378    -- call ADRs
78379    -- Bug 4922099
78380    --
78381    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78382         (NVL(l_actual_upg_option, 'N') = 'O') OR
78383         (NVL(l_enc_upg_option, 'N') = 'O')
78384       )
78385    THEN
78386    NULL;
78387    --
78388    --
78389    
78390   l_ccid := AcctDerRule_36(
78391            p_application_id           => p_application_id
78392          , p_ae_header_id             => l_ae_header_id 
78393 , p_source_16 => p_source_16
78394 , p_source_16_meaning => p_source_16_meaning
78395 , p_source_29 => p_source_29
78396 , p_source_35 => p_source_35
78397          , x_transaction_coa_id       => l_adr_transaction_coa_id
78398          , x_accounting_coa_id        => l_adr_accounting_coa_id
78399          , x_value_type_code          => l_adr_value_type_code
78400          , p_side                     => 'NA'
78401    );
78402 
78403    xla_ae_lines_pkg.set_ccid(
78404     p_code_combination_id          => l_ccid
78405   , p_value_type_code              => l_adr_value_type_code
78406   , p_transaction_coa_id           => l_adr_transaction_coa_id
78407   , p_accounting_coa_id            => l_adr_accounting_coa_id
78408   , p_adr_code                     => 'AP_RETAINAGE'
78409   , p_adr_type_code                => 'S'
78410   , p_component_type               => l_component_type
78411   , p_component_code               => l_component_code
78412   , p_component_type_code          => l_component_type_code
78413   , p_component_appl_id            => l_component_appl_id
78414   , p_amb_context_code             => l_amb_context_code
78415   , p_side                         => 'NA'
78416   );
78417 
78421          , p_ae_header_id             => l_ae_header_id 
78418 
78419    l_segment := AcctDerRule_14(
78420            p_application_id           => p_application_id
78422 , p_source_34 => p_source_34
78423          , x_transaction_coa_id       => l_adr_transaction_coa_id
78424          , x_accounting_coa_id        => l_adr_accounting_coa_id
78425          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
78426          , x_flex_value_set_id        => l_adr_flex_value_set_id
78427          , x_value_type_code          => l_adr_value_type_code
78428          , x_value_combination_id     => l_adr_value_combination_id
78429          , x_value_segment_code       => l_adr_value_segment_code
78430          , p_side                     => 'NA'
78431          , p_override_seg_flag        => 'Y'
78432    );
78433 
78434    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
78435 
78436       xla_ae_lines_pkg.set_segment(
78437           p_to_segment_code         => 'GL_ACCOUNT'
78438         , p_segment_value           => l_segment
78439         , p_from_segment_code       => l_adr_value_segment_code
78440         , p_from_combination_id     => l_adr_value_combination_id
78441         , p_value_type_code         => l_adr_value_type_code
78442         , p_transaction_coa_id      => l_adr_transaction_coa_id
78443         , p_accounting_coa_id       => l_adr_accounting_coa_id
78444         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
78445         , p_flex_value_set_id       => l_adr_flex_value_set_id
78446         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
78447         , p_adr_type_code           => 'S'
78448         , p_component_type          => l_component_type
78449         , p_component_code          => l_component_code
78450         , p_component_type_code     => l_component_type_code
78451         , p_component_appl_id       => l_component_appl_id
78452         , p_amb_context_code        => l_amb_context_code
78453         , p_entity_code             => 'AP_PAYMENTS'
78454         , p_event_class_code        => 'RECONCILED PAYMENTS'
78455         , p_side                    => 'NA'
78456         );
78457 
78458   END IF;
78459 
78460    l_segment := AcctDerRule_18(
78461            p_application_id           => p_application_id
78462          , p_ae_header_id             => l_ae_header_id 
78463 , p_source_16 => p_source_16
78464 , p_source_16_meaning => p_source_16_meaning
78465 , p_source_35 => p_source_35
78466          , x_transaction_coa_id       => l_adr_transaction_coa_id
78467          , x_accounting_coa_id        => l_adr_accounting_coa_id
78468          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
78469          , x_flex_value_set_id        => l_adr_flex_value_set_id
78470          , x_value_type_code          => l_adr_value_type_code
78471          , x_value_combination_id     => l_adr_value_combination_id
78472          , x_value_segment_code       => l_adr_value_segment_code
78473          , p_side                     => 'NA'
78474          , p_override_seg_flag        => 'Y'
78475    );
78476 
78477    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
78478 
78479       xla_ae_lines_pkg.set_segment(
78480           p_to_segment_code         => 'GL_BALANCING'
78481         , p_segment_value           => l_segment
78482         , p_from_segment_code       => l_adr_value_segment_code
78483         , p_from_combination_id     => l_adr_value_combination_id
78484         , p_value_type_code         => l_adr_value_type_code
78485         , p_transaction_coa_id      => l_adr_transaction_coa_id
78486         , p_accounting_coa_id       => l_adr_accounting_coa_id
78487         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
78488         , p_flex_value_set_id       => l_adr_flex_value_set_id
78489         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
78490         , p_adr_type_code           => 'S'
78491         , p_component_type          => l_component_type
78492         , p_component_code          => l_component_code
78493         , p_component_type_code     => l_component_type_code
78494         , p_component_appl_id       => l_component_appl_id
78495         , p_amb_context_code        => l_amb_context_code
78496         , p_entity_code             => 'AP_PAYMENTS'
78497         , p_event_class_code        => 'RECONCILED PAYMENTS'
78498         , p_side                    => 'NA'
78499         );
78500 
78501   END IF;
78502 
78503    --
78504    --
78505    END IF;
78506    --
78507    -- Bug 4922099
78508    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
78509           (NVL(l_enc_upg_option, 'N') = 'O')
78510         ) AND
78511         (l_bflow_method_code = 'PRIOR_ENTRY')
78512       )
78513    THEN
78514       IF
78515       --
78516       1 = 2
78517       --
78518       THEN
78519       xla_accounting_err_pkg.build_message
78520                                     (p_appli_s_name            => 'XLA'
78521                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78522                                     ,p_token_1                 => 'LINE_NUMBER'
78523                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
78524                                     ,p_token_2                 => 'LINE_TYPE_NAME'
78525                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
78526                                                                              l_component_type
78527                                                                             ,l_component_code
78531                                                                             ,l_entity_code
78528                                                                             ,l_component_type_code
78529                                                                             ,l_component_appl_id
78530                                                                             ,l_amb_context_code
78532                                                                             ,l_event_class_code
78533                                                                            )
78534                                     ,p_token_3                 => 'OWNER'
78535                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
78536                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
78537                                                                           ,p_lookup_code    => l_component_type_code
78538                                                                          )
78539                                     ,p_token_4                 => 'PRODUCT_NAME'
78540                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
78541                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
78542                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
78543                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
78544                                     ,p_ae_header_id            =>  NULL
78545                                        );
78546 
78547         IF (C_LEVEL_ERROR>= g_log_level) THEN
78548                  trace
78549                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78550                       ,p_level    => C_LEVEL_ERROR
78551                       ,p_module   => l_log_module);
78552         END IF;
78553       END IF;
78554    END IF;
78555    --
78556    --
78557    ------------------------------------------------------------------------------------------------
78558    -- 4219869 Business Flow
78559    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
78560    -- Prior Entry.  Currently, the following code is always generated.
78561    ------------------------------------------------------------------------------------------------
78562    XLA_AE_LINES_PKG.ValidateCurrentLine;
78563 
78564    ------------------------------------------------------------------------------------
78565    -- 4219869 Business Flow
78566    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
78567    ------------------------------------------------------------------------------------
78568    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78569 
78570    ----------------------------------------------------------------------------------
78571    -- 4219869 Business Flow
78572    -- Update journal entry status -- Need to generate this within IF <condition>
78573    ----------------------------------------------------------------------------------
78574    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78575          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
78576          ,p_balance_type_code => l_balance_type_code
78577          );
78578 
78579    -------------------------------------------------------------------------------------------
78580    -- 4262811 - Generate the Accrual Reversal lines
78581    -------------------------------------------------------------------------------------------
78582    BEGIN
78583       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
78584                               (g_array_event(p_event_id).array_value_num('header_index'));
78585       IF l_acc_rev_flag IS NULL THEN
78586          l_acc_rev_flag := 'N';
78587       END IF;
78588    EXCEPTION
78589       WHEN OTHERS THEN
78590          l_acc_rev_flag := 'N';
78591    END;
78592    --
78593    IF (l_acc_rev_flag = 'Y') THEN
78594 
78595        -- 4645092  ------------------------------------------------------------------------------
78596        -- To allow MPA report to determine if it should generate report process
78597        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
78598        ------------------------------------------------------------------------------------------
78599 
78600        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
78601        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
78602    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
78603    -- call ADRs
78604    -- Bug 4922099
78605    --
78606    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78607         (NVL(l_actual_upg_option, 'N') = 'O') OR
78608         (NVL(l_enc_upg_option, 'N') = 'O')
78609       )
78610    THEN
78611    NULL;
78612    --
78613    --
78614    
78615   l_ccid := AcctDerRule_36(
78616            p_application_id           => p_application_id
78617          , p_ae_header_id             => l_ae_header_id 
78618 , p_source_16 => p_source_16
78619 , p_source_16_meaning => p_source_16_meaning
78620 , p_source_29 => p_source_29
78621 , p_source_35 => p_source_35
78622          , x_transaction_coa_id       => l_adr_transaction_coa_id
78623          , x_accounting_coa_id        => l_adr_accounting_coa_id
78624          , x_value_type_code          => l_adr_value_type_code
78625          , p_side                     => 'NA'
78626    );
78627 
78631   , p_transaction_coa_id           => l_adr_transaction_coa_id
78628    xla_ae_lines_pkg.set_ccid(
78629     p_code_combination_id          => l_ccid
78630   , p_value_type_code              => l_adr_value_type_code
78632   , p_accounting_coa_id            => l_adr_accounting_coa_id
78633   , p_adr_code                     => 'AP_RETAINAGE'
78634   , p_adr_type_code                => 'S'
78635   , p_component_type               => l_component_type
78636   , p_component_code               => l_component_code
78637   , p_component_type_code          => l_component_type_code
78638   , p_component_appl_id            => l_component_appl_id
78639   , p_amb_context_code             => l_amb_context_code
78640   , p_side                         => 'NA'
78641   );
78642 
78643 
78644    l_segment := AcctDerRule_14(
78645            p_application_id           => p_application_id
78646          , p_ae_header_id             => l_ae_header_id 
78647 , p_source_34 => p_source_34
78648          , x_transaction_coa_id       => l_adr_transaction_coa_id
78649          , x_accounting_coa_id        => l_adr_accounting_coa_id
78650          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
78651          , x_flex_value_set_id        => l_adr_flex_value_set_id
78652          , x_value_type_code          => l_adr_value_type_code
78653          , x_value_combination_id     => l_adr_value_combination_id
78654          , x_value_segment_code       => l_adr_value_segment_code
78655          , p_side                     => 'NA'
78656          , p_override_seg_flag        => 'Y'
78657    );
78658 
78659    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
78660 
78661       xla_ae_lines_pkg.set_segment(
78662           p_to_segment_code         => 'GL_ACCOUNT'
78663         , p_segment_value           => l_segment
78664         , p_from_segment_code       => l_adr_value_segment_code
78665         , p_from_combination_id     => l_adr_value_combination_id
78666         , p_value_type_code         => l_adr_value_type_code
78667         , p_transaction_coa_id      => l_adr_transaction_coa_id
78668         , p_accounting_coa_id       => l_adr_accounting_coa_id
78669         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
78670         , p_flex_value_set_id       => l_adr_flex_value_set_id
78671         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
78672         , p_adr_type_code           => 'S'
78673         , p_component_type          => l_component_type
78674         , p_component_code          => l_component_code
78675         , p_component_type_code     => l_component_type_code
78676         , p_component_appl_id       => l_component_appl_id
78677         , p_amb_context_code        => l_amb_context_code
78678         , p_entity_code             => 'AP_PAYMENTS'
78679         , p_event_class_code        => 'RECONCILED PAYMENTS'
78680         , p_side                    => 'NA'
78681         );
78682 
78683   END IF;
78684 
78685    l_segment := AcctDerRule_18(
78686            p_application_id           => p_application_id
78687          , p_ae_header_id             => l_ae_header_id 
78688 , p_source_16 => p_source_16
78689 , p_source_16_meaning => p_source_16_meaning
78690 , p_source_35 => p_source_35
78691          , x_transaction_coa_id       => l_adr_transaction_coa_id
78692          , x_accounting_coa_id        => l_adr_accounting_coa_id
78693          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
78694          , x_flex_value_set_id        => l_adr_flex_value_set_id
78695          , x_value_type_code          => l_adr_value_type_code
78696          , x_value_combination_id     => l_adr_value_combination_id
78697          , x_value_segment_code       => l_adr_value_segment_code
78698          , p_side                     => 'NA'
78699          , p_override_seg_flag        => 'Y'
78700    );
78701 
78702    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
78703 
78704       xla_ae_lines_pkg.set_segment(
78705           p_to_segment_code         => 'GL_BALANCING'
78706         , p_segment_value           => l_segment
78707         , p_from_segment_code       => l_adr_value_segment_code
78708         , p_from_combination_id     => l_adr_value_combination_id
78709         , p_value_type_code         => l_adr_value_type_code
78710         , p_transaction_coa_id      => l_adr_transaction_coa_id
78711         , p_accounting_coa_id       => l_adr_accounting_coa_id
78712         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
78713         , p_flex_value_set_id       => l_adr_flex_value_set_id
78714         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
78715         , p_adr_type_code           => 'S'
78716         , p_component_type          => l_component_type
78717         , p_component_code          => l_component_code
78718         , p_component_type_code     => l_component_type_code
78719         , p_component_appl_id       => l_component_appl_id
78720         , p_amb_context_code        => l_amb_context_code
78721         , p_entity_code             => 'AP_PAYMENTS'
78722         , p_event_class_code        => 'RECONCILED PAYMENTS'
78723         , p_side                    => 'NA'
78724         );
78725 
78726   END IF;
78727 
78728    --
78729    --
78730    END IF;
78731 
78732        --
78733        -- Update the line information that should be overwritten
78734        --
78735        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
78736                                          p_header_num   => 1);
78737        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
78738 
78742           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
78739        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
78740 
78741        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
78743        END IF;
78744 
78745       --
78746       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
78747       --
78748       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
78749           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
78750       ELSE
78751           ---------------------------------------------------------------------------------------------------
78752           -- 4262811a Switch Sign
78753           ---------------------------------------------------------------------------------------------------
78754           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
78755           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78756                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78757           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78758                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78759           -- 5132302
78760           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
78761                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78762 
78763       END IF;
78764 
78765       -- 4955764
78766       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78767       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
78768 
78769 
78770       XLA_AE_LINES_PKG.ValidateCurrentLine;
78771       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78772 
78773       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78774                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
78775                ,p_balance_type_code => l_balance_type_code);
78776 
78777    END IF;
78778 
78779    -----------------------------------------------------------------------------------------
78780    -- 4262811 Multiperiod Accounting
78781    -----------------------------------------------------------------------------------------
78782      -- No MPA option is assigned.
78783 
78784 
78785 END IF;
78786 END IF;
78787 --
78788 
78789 --
78790 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78791    trace
78792       (p_msg      => 'END of AcctLineType_141'
78793       ,p_level    => C_LEVEL_PROCEDURE
78794       ,p_module   => l_log_module);
78795 END IF;
78796 --
78797 EXCEPTION
78798   WHEN xla_exceptions_pkg.application_exception THEN
78799       RAISE;
78800   WHEN OTHERS THEN
78801        xla_exceptions_pkg.raise_message
78802            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_141');
78803 END AcctLineType_141;
78804 --
78805 
78806 ---------------------------------------
78807 --
78808 -- PRIVATE FUNCTION
78809 --         AcctLineType_142
78810 --
78811 ---------------------------------------
78812 PROCEDURE AcctLineType_142 (
78813   p_application_id        IN NUMBER
78814  ,p_event_id              IN NUMBER
78815  ,p_calculate_acctd_flag  IN VARCHAR2
78816  ,p_calculate_g_l_flag    IN VARCHAR2
78817  ,p_actual_flag           IN OUT VARCHAR2
78818  ,p_balance_type_code     OUT VARCHAR2
78819  ,p_gain_or_loss_ref      OUT VARCHAR2
78820  
78821 --Payment Currency Code
78822  , p_source_12            IN VARCHAR2
78823 --Automatic Offsets Value
78824  , p_source_16            IN VARCHAR2
78825  , p_source_16_meaning    IN VARCHAR2
78826 --Payment Distribution (Payment Rate) Ledger Amount
78827  , p_source_21            IN NUMBER
78828 --Invoice Distribution Account
78829  , p_source_29            IN NUMBER
78830 --Invoice Distribution Type
78831  , p_source_32            IN VARCHAR2
78832  , p_source_32_meaning    IN VARCHAR2
78833 --Retainage Account
78834  , p_source_34            IN NUMBER
78835 --Retainage Related Item Distribution Account
78836  , p_source_35            IN NUMBER
78837 --When to Account for Payment Option
78838  , p_source_50            IN VARCHAR2
78839 --Accounting Reversal Indicator
78840  , p_source_52            IN VARCHAR2
78841 --Payment Distribution Amount
78842  , p_source_53            IN NUMBER
78843 --Business Flow Accounts Payable Application Identifier
78844  , p_source_54            IN NUMBER
78845 --Payment Distribution Identifier
78846  , p_source_59            IN NUMBER
78847 --Distribution Link Type
78848  , p_source_60            IN VARCHAR2
78849 --Override Accounted Amount Indicator
78850  , p_source_64            IN VARCHAR2
78851  , p_source_64_meaning    IN VARCHAR2
78852 --Payment Supplier Identifier
78853  , p_source_65            IN NUMBER
78854 --Payment Supplier Site Identifier
78855  , p_source_66            IN NUMBER
78856 --Third Party Type
78857  , p_source_67            IN VARCHAR2
78858 --Payment Distribution Reversed Identifier
78859  , p_source_68            IN NUMBER
78860 --Invoice Distribution Tax Line Identifier
78864 --Invoice Distribution Amount of the Payment Distribution
78861  , p_source_69            IN NUMBER
78862 --Invoice Distribution Summary Tax Line Identifier
78863  , p_source_70            IN NUMBER
78865  , p_source_72            IN NUMBER
78866 --Business Flow Invoice Distribution Type
78867  , p_source_73            IN VARCHAR2
78868 --Business Flow Invoice Entity Code
78869  , p_source_74            IN VARCHAR2
78870 --Business Flow Invoice Distribution Identifier
78871  , p_source_75            IN NUMBER
78872 --Business Flow Invoice Identifier
78873  , p_source_76            IN NUMBER
78874 --Invoice Distribution Tax Distribution Identifier from Tax
78875  , p_source_77            IN NUMBER
78876 --Invoice Type Paid
78877  , p_source_112            IN VARCHAR2
78878  , p_source_112_meaning    IN VARCHAR2
78879 --Payment Exchange Date
78880  , p_source_121            IN DATE
78881 --Payment Exchange Rate
78882  , p_source_122            IN NUMBER
78883 --Payment Exchange Rate Type
78884  , p_source_123            IN VARCHAR2
78885 )
78886 IS
78887 
78888 l_component_type              VARCHAR2(80);
78889 l_component_code              VARCHAR2(30);
78890 l_component_type_code         VARCHAR2(1);
78891 l_component_appl_id           INTEGER;
78892 l_amb_context_code            VARCHAR2(30);
78893 l_entity_code                 VARCHAR2(30);
78894 l_event_class_code            VARCHAR2(30);
78895 l_ae_header_id                NUMBER;
78896 l_event_type_code             VARCHAR2(30);
78897 l_line_definition_code        VARCHAR2(30);
78898 l_line_definition_owner_code  VARCHAR2(1);
78899 --
78900 -- adr variables
78901 l_segment                     VARCHAR2(30);
78902 l_ccid                        NUMBER;
78903 l_adr_transaction_coa_id      NUMBER;
78904 l_adr_accounting_coa_id       NUMBER;
78905 l_adr_flexfield_segment_code  VARCHAR2(30);
78906 l_adr_flex_value_set_id       NUMBER;
78907 l_adr_value_type_code         VARCHAR2(30);
78908 l_adr_value_combination_id    NUMBER;
78909 l_adr_value_segment_code      VARCHAR2(30);
78910 
78911 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
78912 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
78913 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
78914 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
78915 
78916 -- 4262811 Variables ------------------------------------------------------------------------------------------
78917 l_entered_amt_idx             NUMBER;
78918 l_accted_amt_idx              NUMBER;
78919 l_acc_rev_flag                VARCHAR2(1);
78920 l_accrual_line_num            NUMBER;
78921 l_tmp_amt                     NUMBER;
78922 l_acc_rev_natural_side_code   VARCHAR2(1);
78923 
78924 l_num_entries                 NUMBER;
78925 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
78926 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
78927 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
78928 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
78929 l_recog_line_1                NUMBER;
78930 l_recog_line_2                NUMBER;
78931 
78932 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
78933 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
78934 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
78935 
78936 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
78937 
78938 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
78939 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
78940 
78941 ---------------------------------------------------------------------------------------------------------------
78942 
78943 
78944 --
78945 -- bulk performance
78946 --
78947 l_balance_type_code           VARCHAR2(1);
78948 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
78949 l_log_module                  VARCHAR2(240);
78950 
78951 --
78952 -- Upgrade strategy
78953 --
78954 l_actual_upg_option           VARCHAR2(1);
78955 l_enc_upg_option           VARCHAR2(1);
78956 
78957 --
78958 BEGIN
78959 --
78960 IF g_log_enabled THEN
78961       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_142';
78962 END IF;
78963 --
78964 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78965 
78966       trace
78967          (p_msg      => 'BEGIN of AcctLineType_142'
78968          ,p_level    => C_LEVEL_PROCEDURE
78969          ,p_module   => l_log_module);
78970 
78971 END IF;
78972 --
78973 l_component_type             := 'AMB_JLT';
78974 l_component_code             := 'AP_RETAINAGE_PMT_CASH';
78975 l_component_type_code        := 'S';
78976 l_component_appl_id          :=  200;
78977 l_amb_context_code           := 'DEFAULT';
78978 l_entity_code                := 'AP_PAYMENTS';
78979 l_event_class_code           := 'PAYMENTS';
78980 l_event_type_code            := 'PAYMENTS_ALL';
78981 l_line_definition_owner_code := 'S';
78982 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
78983 --
78984 l_balance_type_code          := 'A';
78985 l_segment                     := NULL;
78986 l_ccid                        := NULL;
78987 l_adr_transaction_coa_id      := NULL;
78988 l_adr_accounting_coa_id       := NULL;
78992 l_adr_value_combination_id    := NULL;
78989 l_adr_flexfield_segment_code  := NULL;
78990 l_adr_flex_value_set_id       := NULL;
78991 l_adr_value_type_code         := NULL;
78993 l_adr_value_segment_code      := NULL;
78994 
78995 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
78996 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
78997 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
78998 l_budgetary_control_flag     := 'N';
78999 
79000 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
79001 l_bflow_applied_to_amt       := NULL; -- 5132302
79002 l_entered_amt_idx            := NULL;          -- 4262811
79003 l_accted_amt_idx             := NULL;          -- 4262811
79004 l_acc_rev_flag               := NULL;          -- 4262811
79005 l_accrual_line_num           := NULL;          -- 4262811
79006 l_tmp_amt                    := NULL;          -- 4262811
79007 --
79008  
79009 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
79010     l_balance_type_code <> 'B' THEN
79011 IF NVL(p_source_50,'
79012 ') <>  'CLEAR_CLEAR' AND 
79013 NVL(p_source_112,'
79014 ') <>  'RETAINAGE RELEASE' AND 
79015 NVL(p_source_32,'
79016 ') =  'RETAINAGE'
79017  THEN 
79018 
79019    --
79020    XLA_AE_LINES_PKG.SetNewLine;
79021 
79022    p_balance_type_code          := l_balance_type_code;
79023    -- set the flag so later we will know whether the gain loss line needs to be created
79024    
79025    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
79026      p_actual_flag :='A';
79027    END IF;
79028 
79029    --
79030    -- bulk performance
79031    --
79032    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
79033                                       p_header_num   => 0); -- 4262811
79034    --
79035    -- set accounting line options
79036    --
79037    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
79038            p_natural_side_code          => 'D'
79039          , p_gain_or_loss_flag          => 'N'
79040          , p_gl_transfer_mode_code      => 'S'
79041          , p_acct_entry_type_code       => 'A'
79042          , p_switch_side_flag           => 'Y'
79043          , p_merge_duplicate_code       => 'A'
79044          );
79045    --
79046    l_acc_rev_natural_side_code := 'C';  -- 4262811
79047    -- 
79048    --
79049    -- set accounting line type info
79050    --
79051    xla_ae_lines_pkg.SetAcctLineType
79052       (p_component_type             => l_component_type
79053       ,p_event_type_code            => l_event_type_code
79054       ,p_line_definition_owner_code => l_line_definition_owner_code
79055       ,p_line_definition_code       => l_line_definition_code
79056       ,p_accounting_line_code       => l_component_code
79057       ,p_accounting_line_type_code  => l_component_type_code
79058       ,p_accounting_line_appl_id    => l_component_appl_id
79059       ,p_amb_context_code           => l_amb_context_code
79060       ,p_entity_code                => l_entity_code
79061       ,p_event_class_code           => l_event_class_code);
79062    --
79063    -- set accounting class
79064    --
79065    xla_ae_lines_pkg.SetAcctClass(
79066            p_accounting_class_code  => 'RETAINAGE'
79067          , p_ae_header_id           => l_ae_header_id
79068          );
79069 
79070    --
79071    -- set rounding class
79072    --
79073    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
79074                       'RETAINAGE';
79075 
79076    --
79077    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
79078    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
79079    --
79080    -- bulk performance
79081    --
79082    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
79083 
79084    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
79085       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
79086 
79087    -- 4955764
79088    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79089       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
79090 
79091    -- 4458381 Public Sector Enh
79092    
79093    --
79094    -- set accounting attributes for the line type
79095    --
79096    l_entered_amt_idx := 10;
79097    l_accted_amt_idx  := 15;
79098    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
79099    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
79100    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
79101    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
79102    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
79103    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
79104    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
79105    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
79106    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
79107    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
79108    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
79109    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
79110    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
79111    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
79115    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
79112    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
79113    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
79114    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
79116    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
79117    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
79118    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
79119    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
79120    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
79121    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
79122    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
79123    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
79124    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
79125    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
79126    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
79127    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
79128    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
79129    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
79130    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
79131    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
79132    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
79133    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
79134    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
79135    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
79136    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
79137    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
79138    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
79139    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
79140    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
79141    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
79142    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
79143    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
79144    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
79145    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
79146    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
79147 
79148    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
79149    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
79150 
79151    ---------------------------------------------------------------------------------------------------------------
79152    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
79153    ---------------------------------------------------------------------------------------------------------------
79154    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
79155 
79156    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79157    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79158 
79159    IF xla_accounting_cache_pkg.GetValueChar
79160          (p_source_code         => 'LEDGER_CATEGORY_CODE'
79161          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
79162    AND l_bflow_method_code = 'PRIOR_ENTRY'
79163 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
79164    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
79165          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
79166        )
79167    THEN
79168          xla_ae_lines_pkg.BflowUpgEntry
79169            (p_business_method_code    => l_bflow_method_code
79170            ,p_business_class_code     => l_bflow_class_code
79171            ,p_balance_type            => l_balance_type_code);
79172    ELSE
79173       NULL;
79174 -- No business flow processing for business flow method of NONE.
79175    END IF;
79176 
79177    --
79178    -- call analytical criteria
79179    --
79180    
79181    --
79182    -- call description
79183    --
79184    -- No description or it is inherited.
79185    --
79186    -- call ADRs
79187    -- Bug 4922099
79188    --
79189    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79190         (NVL(l_actual_upg_option, 'N') = 'O') OR
79191         (NVL(l_enc_upg_option, 'N') = 'O')
79192       )
79193    THEN
79194    NULL;
79195    --
79196    --
79197    
79198   l_ccid := AcctDerRule_36(
79199            p_application_id           => p_application_id
79200          , p_ae_header_id             => l_ae_header_id 
79201 , p_source_16 => p_source_16
79202 , p_source_16_meaning => p_source_16_meaning
79203 , p_source_29 => p_source_29
79204 , p_source_35 => p_source_35
79205          , x_transaction_coa_id       => l_adr_transaction_coa_id
79206          , x_accounting_coa_id        => l_adr_accounting_coa_id
79207          , x_value_type_code          => l_adr_value_type_code
79208          , p_side                     => 'NA'
79209    );
79210 
79211    xla_ae_lines_pkg.set_ccid(
79212     p_code_combination_id          => l_ccid
79213   , p_value_type_code              => l_adr_value_type_code
79214   , p_transaction_coa_id           => l_adr_transaction_coa_id
79215   , p_accounting_coa_id            => l_adr_accounting_coa_id
79216   , p_adr_code                     => 'AP_RETAINAGE'
79217   , p_adr_type_code                => 'S'
79218   , p_component_type               => l_component_type
79222   , p_amb_context_code             => l_amb_context_code
79219   , p_component_code               => l_component_code
79220   , p_component_type_code          => l_component_type_code
79221   , p_component_appl_id            => l_component_appl_id
79223   , p_side                         => 'NA'
79224   );
79225 
79226 
79227    l_segment := AcctDerRule_14(
79228            p_application_id           => p_application_id
79229          , p_ae_header_id             => l_ae_header_id 
79230 , p_source_34 => p_source_34
79231          , x_transaction_coa_id       => l_adr_transaction_coa_id
79232          , x_accounting_coa_id        => l_adr_accounting_coa_id
79233          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
79234          , x_flex_value_set_id        => l_adr_flex_value_set_id
79235          , x_value_type_code          => l_adr_value_type_code
79236          , x_value_combination_id     => l_adr_value_combination_id
79237          , x_value_segment_code       => l_adr_value_segment_code
79238          , p_side                     => 'NA'
79239          , p_override_seg_flag        => 'Y'
79240    );
79241 
79242    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
79243 
79244       xla_ae_lines_pkg.set_segment(
79245           p_to_segment_code         => 'GL_ACCOUNT'
79246         , p_segment_value           => l_segment
79247         , p_from_segment_code       => l_adr_value_segment_code
79248         , p_from_combination_id     => l_adr_value_combination_id
79249         , p_value_type_code         => l_adr_value_type_code
79250         , p_transaction_coa_id      => l_adr_transaction_coa_id
79251         , p_accounting_coa_id       => l_adr_accounting_coa_id
79252         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
79253         , p_flex_value_set_id       => l_adr_flex_value_set_id
79254         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
79255         , p_adr_type_code           => 'S'
79256         , p_component_type          => l_component_type
79257         , p_component_code          => l_component_code
79258         , p_component_type_code     => l_component_type_code
79259         , p_component_appl_id       => l_component_appl_id
79260         , p_amb_context_code        => l_amb_context_code
79261         , p_entity_code             => 'AP_PAYMENTS'
79262         , p_event_class_code        => 'PAYMENTS'
79263         , p_side                    => 'NA'
79264         );
79265 
79266   END IF;
79267 
79268    l_segment := AcctDerRule_18(
79269            p_application_id           => p_application_id
79270          , p_ae_header_id             => l_ae_header_id 
79271 , p_source_16 => p_source_16
79272 , p_source_16_meaning => p_source_16_meaning
79273 , p_source_35 => p_source_35
79274          , x_transaction_coa_id       => l_adr_transaction_coa_id
79275          , x_accounting_coa_id        => l_adr_accounting_coa_id
79276          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
79277          , x_flex_value_set_id        => l_adr_flex_value_set_id
79278          , x_value_type_code          => l_adr_value_type_code
79279          , x_value_combination_id     => l_adr_value_combination_id
79280          , x_value_segment_code       => l_adr_value_segment_code
79281          , p_side                     => 'NA'
79282          , p_override_seg_flag        => 'Y'
79283    );
79284 
79285    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
79286 
79287       xla_ae_lines_pkg.set_segment(
79288           p_to_segment_code         => 'GL_BALANCING'
79289         , p_segment_value           => l_segment
79290         , p_from_segment_code       => l_adr_value_segment_code
79291         , p_from_combination_id     => l_adr_value_combination_id
79292         , p_value_type_code         => l_adr_value_type_code
79293         , p_transaction_coa_id      => l_adr_transaction_coa_id
79294         , p_accounting_coa_id       => l_adr_accounting_coa_id
79295         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
79296         , p_flex_value_set_id       => l_adr_flex_value_set_id
79297         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
79298         , p_adr_type_code           => 'S'
79299         , p_component_type          => l_component_type
79300         , p_component_code          => l_component_code
79301         , p_component_type_code     => l_component_type_code
79302         , p_component_appl_id       => l_component_appl_id
79303         , p_amb_context_code        => l_amb_context_code
79304         , p_entity_code             => 'AP_PAYMENTS'
79305         , p_event_class_code        => 'PAYMENTS'
79306         , p_side                    => 'NA'
79307         );
79308 
79309   END IF;
79310 
79311    --
79312    --
79313    END IF;
79314    --
79315    -- Bug 4922099
79316    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
79317           (NVL(l_enc_upg_option, 'N') = 'O')
79318         ) AND
79319         (l_bflow_method_code = 'PRIOR_ENTRY')
79320       )
79321    THEN
79322       IF
79323       --
79324       1 = 2
79325       --
79326       THEN
79327       xla_accounting_err_pkg.build_message
79328                                     (p_appli_s_name            => 'XLA'
79329                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79330                                     ,p_token_1                 => 'LINE_NUMBER'
79331                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
79332                                     ,p_token_2                 => 'LINE_TYPE_NAME'
79336                                                                             ,l_component_type_code
79333                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
79334                                                                              l_component_type
79335                                                                             ,l_component_code
79337                                                                             ,l_component_appl_id
79338                                                                             ,l_amb_context_code
79339                                                                             ,l_entity_code
79340                                                                             ,l_event_class_code
79341                                                                            )
79342                                     ,p_token_3                 => 'OWNER'
79343                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
79344                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
79345                                                                           ,p_lookup_code    => l_component_type_code
79346                                                                          )
79347                                     ,p_token_4                 => 'PRODUCT_NAME'
79348                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
79349                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
79350                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
79351                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
79352                                     ,p_ae_header_id            =>  NULL
79353                                        );
79354 
79355         IF (C_LEVEL_ERROR>= g_log_level) THEN
79356                  trace
79357                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79358                       ,p_level    => C_LEVEL_ERROR
79359                       ,p_module   => l_log_module);
79360         END IF;
79361       END IF;
79362    END IF;
79363    --
79364    --
79365    ------------------------------------------------------------------------------------------------
79366    -- 4219869 Business Flow
79367    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
79368    -- Prior Entry.  Currently, the following code is always generated.
79369    ------------------------------------------------------------------------------------------------
79370    XLA_AE_LINES_PKG.ValidateCurrentLine;
79371 
79372    ------------------------------------------------------------------------------------
79373    -- 4219869 Business Flow
79374    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
79375    ------------------------------------------------------------------------------------
79376    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79377 
79378    ----------------------------------------------------------------------------------
79379    -- 4219869 Business Flow
79380    -- Update journal entry status -- Need to generate this within IF <condition>
79381    ----------------------------------------------------------------------------------
79382    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79383          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
79384          ,p_balance_type_code => l_balance_type_code
79385          );
79386 
79387    -------------------------------------------------------------------------------------------
79388    -- 4262811 - Generate the Accrual Reversal lines
79389    -------------------------------------------------------------------------------------------
79390    BEGIN
79391       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
79392                               (g_array_event(p_event_id).array_value_num('header_index'));
79393       IF l_acc_rev_flag IS NULL THEN
79394          l_acc_rev_flag := 'N';
79395       END IF;
79396    EXCEPTION
79397       WHEN OTHERS THEN
79398          l_acc_rev_flag := 'N';
79399    END;
79400    --
79401    IF (l_acc_rev_flag = 'Y') THEN
79402 
79403        -- 4645092  ------------------------------------------------------------------------------
79404        -- To allow MPA report to determine if it should generate report process
79405        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
79406        ------------------------------------------------------------------------------------------
79407 
79408        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
79409        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
79410    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
79411    -- call ADRs
79412    -- Bug 4922099
79413    --
79414    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79415         (NVL(l_actual_upg_option, 'N') = 'O') OR
79416         (NVL(l_enc_upg_option, 'N') = 'O')
79417       )
79418    THEN
79419    NULL;
79420    --
79421    --
79422    
79423   l_ccid := AcctDerRule_36(
79424            p_application_id           => p_application_id
79425          , p_ae_header_id             => l_ae_header_id 
79426 , p_source_16 => p_source_16
79427 , p_source_16_meaning => p_source_16_meaning
79428 , p_source_29 => p_source_29
79429 , p_source_35 => p_source_35
79433          , p_side                     => 'NA'
79430          , x_transaction_coa_id       => l_adr_transaction_coa_id
79431          , x_accounting_coa_id        => l_adr_accounting_coa_id
79432          , x_value_type_code          => l_adr_value_type_code
79434    );
79435 
79436    xla_ae_lines_pkg.set_ccid(
79437     p_code_combination_id          => l_ccid
79438   , p_value_type_code              => l_adr_value_type_code
79439   , p_transaction_coa_id           => l_adr_transaction_coa_id
79440   , p_accounting_coa_id            => l_adr_accounting_coa_id
79441   , p_adr_code                     => 'AP_RETAINAGE'
79442   , p_adr_type_code                => 'S'
79443   , p_component_type               => l_component_type
79444   , p_component_code               => l_component_code
79445   , p_component_type_code          => l_component_type_code
79446   , p_component_appl_id            => l_component_appl_id
79447   , p_amb_context_code             => l_amb_context_code
79448   , p_side                         => 'NA'
79449   );
79450 
79451 
79452    l_segment := AcctDerRule_14(
79453            p_application_id           => p_application_id
79454          , p_ae_header_id             => l_ae_header_id 
79455 , p_source_34 => p_source_34
79456          , x_transaction_coa_id       => l_adr_transaction_coa_id
79457          , x_accounting_coa_id        => l_adr_accounting_coa_id
79458          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
79459          , x_flex_value_set_id        => l_adr_flex_value_set_id
79460          , x_value_type_code          => l_adr_value_type_code
79461          , x_value_combination_id     => l_adr_value_combination_id
79462          , x_value_segment_code       => l_adr_value_segment_code
79463          , p_side                     => 'NA'
79464          , p_override_seg_flag        => 'Y'
79465    );
79466 
79467    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
79468 
79469       xla_ae_lines_pkg.set_segment(
79470           p_to_segment_code         => 'GL_ACCOUNT'
79471         , p_segment_value           => l_segment
79472         , p_from_segment_code       => l_adr_value_segment_code
79473         , p_from_combination_id     => l_adr_value_combination_id
79474         , p_value_type_code         => l_adr_value_type_code
79475         , p_transaction_coa_id      => l_adr_transaction_coa_id
79476         , p_accounting_coa_id       => l_adr_accounting_coa_id
79477         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
79478         , p_flex_value_set_id       => l_adr_flex_value_set_id
79479         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
79480         , p_adr_type_code           => 'S'
79481         , p_component_type          => l_component_type
79482         , p_component_code          => l_component_code
79483         , p_component_type_code     => l_component_type_code
79484         , p_component_appl_id       => l_component_appl_id
79485         , p_amb_context_code        => l_amb_context_code
79486         , p_entity_code             => 'AP_PAYMENTS'
79487         , p_event_class_code        => 'PAYMENTS'
79488         , p_side                    => 'NA'
79489         );
79490 
79491   END IF;
79492 
79493    l_segment := AcctDerRule_18(
79494            p_application_id           => p_application_id
79495          , p_ae_header_id             => l_ae_header_id 
79496 , p_source_16 => p_source_16
79497 , p_source_16_meaning => p_source_16_meaning
79498 , p_source_35 => p_source_35
79499          , x_transaction_coa_id       => l_adr_transaction_coa_id
79500          , x_accounting_coa_id        => l_adr_accounting_coa_id
79501          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
79502          , x_flex_value_set_id        => l_adr_flex_value_set_id
79503          , x_value_type_code          => l_adr_value_type_code
79504          , x_value_combination_id     => l_adr_value_combination_id
79505          , x_value_segment_code       => l_adr_value_segment_code
79506          , p_side                     => 'NA'
79507          , p_override_seg_flag        => 'Y'
79508    );
79509 
79510    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
79511 
79512       xla_ae_lines_pkg.set_segment(
79513           p_to_segment_code         => 'GL_BALANCING'
79514         , p_segment_value           => l_segment
79515         , p_from_segment_code       => l_adr_value_segment_code
79516         , p_from_combination_id     => l_adr_value_combination_id
79517         , p_value_type_code         => l_adr_value_type_code
79518         , p_transaction_coa_id      => l_adr_transaction_coa_id
79519         , p_accounting_coa_id       => l_adr_accounting_coa_id
79520         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
79521         , p_flex_value_set_id       => l_adr_flex_value_set_id
79522         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
79523         , p_adr_type_code           => 'S'
79524         , p_component_type          => l_component_type
79525         , p_component_code          => l_component_code
79526         , p_component_type_code     => l_component_type_code
79527         , p_component_appl_id       => l_component_appl_id
79528         , p_amb_context_code        => l_amb_context_code
79529         , p_entity_code             => 'AP_PAYMENTS'
79530         , p_event_class_code        => 'PAYMENTS'
79531         , p_side                    => 'NA'
79532         );
79533 
79534   END IF;
79535 
79536    --
79537    --
79538    END IF;
79539 
79540        --
79544                                          p_header_num   => 1);
79541        -- Update the line information that should be overwritten
79542        --
79543        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
79545        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
79546 
79547        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
79548 
79549        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
79550           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
79551        END IF;
79552 
79553       --
79554       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
79555       --
79556       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
79557           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
79558       ELSE
79559           ---------------------------------------------------------------------------------------------------
79560           -- 4262811a Switch Sign
79561           ---------------------------------------------------------------------------------------------------
79562           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
79563           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79564                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79565           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79566                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79567           -- 5132302
79568           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
79569                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79570 
79571       END IF;
79572 
79573       -- 4955764
79574       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79575       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
79576 
79577 
79578       XLA_AE_LINES_PKG.ValidateCurrentLine;
79579       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79580 
79581       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79582                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
79583                ,p_balance_type_code => l_balance_type_code);
79584 
79585    END IF;
79586 
79587    -----------------------------------------------------------------------------------------
79588    -- 4262811 Multiperiod Accounting
79589    -----------------------------------------------------------------------------------------
79590      -- No MPA option is assigned.
79591 
79592 
79593 END IF;
79594 END IF;
79595 --
79596 
79597 --
79598 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79599    trace
79600       (p_msg      => 'END of AcctLineType_142'
79601       ,p_level    => C_LEVEL_PROCEDURE
79602       ,p_module   => l_log_module);
79603 END IF;
79604 --
79605 EXCEPTION
79606   WHEN xla_exceptions_pkg.application_exception THEN
79607       RAISE;
79608   WHEN OTHERS THEN
79609        xla_exceptions_pkg.raise_message
79610            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_142');
79611 END AcctLineType_142;
79612 --
79613 
79614 ---------------------------------------
79615 --
79616 -- PRIVATE FUNCTION
79617 --         AcctLineType_143
79618 --
79619 ---------------------------------------
79620 PROCEDURE AcctLineType_143 (
79621   p_application_id        IN NUMBER
79622  ,p_event_id              IN NUMBER
79623  ,p_calculate_acctd_flag  IN VARCHAR2
79624  ,p_calculate_g_l_flag    IN VARCHAR2
79625  ,p_actual_flag           IN OUT VARCHAR2
79626  ,p_balance_type_code     OUT VARCHAR2
79627  ,p_gain_or_loss_ref      OUT VARCHAR2
79628  
79629 --Automatic Offsets Value
79630  , p_source_16            IN VARCHAR2
79631  , p_source_16_meaning    IN VARCHAR2
79632 --Invoice Distribution Account
79633  , p_source_29            IN NUMBER
79634 --Retainage Account
79635  , p_source_34            IN NUMBER
79636 --Retainage Related Item Distribution Account
79637  , p_source_35            IN NUMBER
79638 --When to Account for Payment Option
79639  , p_source_50            IN VARCHAR2
79640 --Accounting Reversal Indicator
79641  , p_source_52            IN VARCHAR2
79642 --Business Flow Accounts Payable Application Identifier
79643  , p_source_54            IN NUMBER
79644 --Distribution Link Type
79645  , p_source_60            IN VARCHAR2
79646 --Override Accounted Amount Indicator
79647  , p_source_64            IN VARCHAR2
79648  , p_source_64_meaning    IN VARCHAR2
79649 --Third Party Type
79650  , p_source_67            IN VARCHAR2
79651 --Invoice Distribution Tax Line Identifier
79652  , p_source_69            IN NUMBER
79653 --Invoice Distribution Summary Tax Line Identifier
79654  , p_source_70            IN NUMBER
79655 --Business Flow Invoice Distribution Type
79656  , p_source_73            IN VARCHAR2
79657 --Business Flow Invoice Entity Code
79658  , p_source_74            IN VARCHAR2
79662  , p_source_78            IN VARCHAR2
79659 --Invoice Distribution Tax Distribution Identifier from Tax
79660  , p_source_77            IN NUMBER
79661 --Prepayment Distribution Type
79663 --Recipient Invoice Distribution Type
79664  , p_source_79            IN VARCHAR2
79665  , p_source_79_meaning    IN VARCHAR2
79666 --Prepayment Application Distribution Identifier
79667  , p_source_82            IN NUMBER
79668 --Invoice Identifier
79669  , p_source_83            IN NUMBER
79670 --Upgrade Encumbrance Credit Account Class
79671  , p_source_88            IN VARCHAR2
79672 --Payables Encumbrance Upgrade Credit Account
79673  , p_source_89            IN NUMBER
79674 --Payables Encumbrance Upgrade Credit Amount
79675  , p_source_90            IN NUMBER
79676 --Invoice Currency Code
79677  , p_source_91            IN VARCHAR2
79678 --Payables Encumbrance Upgrade Credit Base Amount
79679  , p_source_92            IN NUMBER
79680 --Upgrade Encumbrance Debit Account Class
79681  , p_source_93            IN VARCHAR2
79682 --Payables Encumbrance Upgrade Debit Account
79683  , p_source_94            IN NUMBER
79684 --Payables Encumbrance Upgrade Debit Amount
79685  , p_source_95            IN NUMBER
79686 --Payables Encumbrance Upgrade Debit Base Amount
79687  , p_source_96            IN NUMBER
79688 --Payables Encumbrance Upgrade Option
79689  , p_source_97            IN VARCHAR2
79690 --Prepayment Distribution Amount
79691  , p_source_98            IN NUMBER
79692 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
79693  , p_source_100            IN NUMBER
79694 --Deferred Accounting End Date
79695  , p_source_101            IN DATE
79696 --Deferred Accounting Option
79697  , p_source_102            IN VARCHAR2
79698 --Deferred Accounting Start Date
79699  , p_source_103            IN DATE
79700 --Invoice Supplier Identifier
79701  , p_source_104            IN NUMBER
79702 --Invoice Supplier Site Identifier
79703  , p_source_105            IN NUMBER
79704 --Identifier of the Prepayment Application Reversed
79705  , p_source_106            IN NUMBER
79706 --Payables Upgrade Credit Encumbrance Type Identifier
79707  , p_source_107            IN NUMBER
79708 --Payables Upgrade Debit Encumbrance Type Identifier
79709  , p_source_108            IN NUMBER
79710 --Invoice Exchange Date
79711  , p_source_131            IN DATE
79712 --Invoice Exchange Rate
79713  , p_source_132            IN NUMBER
79714 --Invoice Exchange Rate Type
79715  , p_source_133            IN VARCHAR2
79716 --Prepayment Application Recipient Invoice Type
79717  , p_source_148            IN VARCHAR2
79718  , p_source_148_meaning    IN VARCHAR2
79719 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
79720  , p_source_149            IN NUMBER
79721 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
79722  , p_source_150            IN NUMBER
79723 )
79724 IS
79725 
79726 l_component_type              VARCHAR2(80);
79727 l_component_code              VARCHAR2(30);
79728 l_component_type_code         VARCHAR2(1);
79729 l_component_appl_id           INTEGER;
79730 l_amb_context_code            VARCHAR2(30);
79731 l_entity_code                 VARCHAR2(30);
79732 l_event_class_code            VARCHAR2(30);
79733 l_ae_header_id                NUMBER;
79734 l_event_type_code             VARCHAR2(30);
79735 l_line_definition_code        VARCHAR2(30);
79736 l_line_definition_owner_code  VARCHAR2(1);
79737 --
79738 -- adr variables
79739 l_segment                     VARCHAR2(30);
79740 l_ccid                        NUMBER;
79741 l_adr_transaction_coa_id      NUMBER;
79742 l_adr_accounting_coa_id       NUMBER;
79743 l_adr_flexfield_segment_code  VARCHAR2(30);
79744 l_adr_flex_value_set_id       NUMBER;
79745 l_adr_value_type_code         VARCHAR2(30);
79746 l_adr_value_combination_id    NUMBER;
79747 l_adr_value_segment_code      VARCHAR2(30);
79748 
79749 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
79750 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
79751 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
79752 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
79753 
79754 -- 4262811 Variables ------------------------------------------------------------------------------------------
79755 l_entered_amt_idx             NUMBER;
79756 l_accted_amt_idx              NUMBER;
79757 l_acc_rev_flag                VARCHAR2(1);
79758 l_accrual_line_num            NUMBER;
79759 l_tmp_amt                     NUMBER;
79760 l_acc_rev_natural_side_code   VARCHAR2(1);
79761 
79762 l_num_entries                 NUMBER;
79763 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
79764 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
79765 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
79766 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
79767 l_recog_line_1                NUMBER;
79768 l_recog_line_2                NUMBER;
79769 
79770 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
79771 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
79772 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
79773 
79774 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
79775 
79776 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
79777 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
79778 
79782 --
79779 ---------------------------------------------------------------------------------------------------------------
79780 
79781 
79783 -- bulk performance
79784 --
79785 l_balance_type_code           VARCHAR2(1);
79786 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
79787 l_log_module                  VARCHAR2(240);
79788 
79789 --
79790 -- Upgrade strategy
79791 --
79792 l_actual_upg_option           VARCHAR2(1);
79793 l_enc_upg_option           VARCHAR2(1);
79794 
79795 --
79796 BEGIN
79797 --
79798 IF g_log_enabled THEN
79799       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_143';
79800 END IF;
79801 --
79802 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79803 
79804       trace
79805          (p_msg      => 'BEGIN of AcctLineType_143'
79806          ,p_level    => C_LEVEL_PROCEDURE
79807          ,p_module   => l_log_module);
79808 
79809 END IF;
79810 --
79811 l_component_type             := 'AMB_JLT';
79812 l_component_code             := 'AP_RET_CASH_CLR_XRATE';
79813 l_component_type_code        := 'S';
79814 l_component_appl_id          :=  200;
79815 l_amb_context_code           := 'DEFAULT';
79816 l_entity_code                := 'AP_INVOICES';
79817 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
79818 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
79819 l_line_definition_owner_code := 'S';
79820 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
79821 --
79822 l_balance_type_code          := 'A';
79823 l_segment                     := NULL;
79824 l_ccid                        := NULL;
79825 l_adr_transaction_coa_id      := NULL;
79826 l_adr_accounting_coa_id       := NULL;
79827 l_adr_flexfield_segment_code  := NULL;
79828 l_adr_flex_value_set_id       := NULL;
79829 l_adr_value_type_code         := NULL;
79830 l_adr_value_combination_id    := NULL;
79831 l_adr_value_segment_code      := NULL;
79832 
79833 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
79834 l_bflow_class_code           := '';    -- 4219869 Business Flow
79835 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
79836 l_budgetary_control_flag     := 'N';
79837 
79838 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
79839 l_bflow_applied_to_amt       := NULL; -- 5132302
79840 l_entered_amt_idx            := NULL;          -- 4262811
79841 l_accted_amt_idx             := NULL;          -- 4262811
79842 l_acc_rev_flag               := NULL;          -- 4262811
79843 l_accrual_line_num           := NULL;          -- 4262811
79844 l_tmp_amt                    := NULL;          -- 4262811
79845 --
79846  
79847 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
79848     l_balance_type_code <> 'B' THEN
79849 IF NVL(p_source_50,'
79850 ') =  'CLEAR_CLEAR' AND 
79851 NVL(p_source_79,'
79852 ') =  'RETAINAGE' AND 
79853 NVL(p_source_148,'
79854 ') <>  'RETAINAGE RELEASE' AND 
79855 (NVL(p_source_78,'
79856 ') =  'PREPAY APPL' OR 
79857 NVL(p_source_78,'
79858 ') =  'PREPAY APPL NONREC TAX' OR 
79859 NVL(p_source_78,'
79860 ') =  'PREPAY APPL REC TAX')
79861  THEN 
79862 
79863    --
79864    XLA_AE_LINES_PKG.SetNewLine;
79865 
79866    p_balance_type_code          := l_balance_type_code;
79867    -- set the flag so later we will know whether the gain loss line needs to be created
79868    
79869    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
79870      p_actual_flag :='A';
79871    END IF;
79872 
79873    --
79874    -- bulk performance
79875    --
79876    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
79877                                       p_header_num   => 0); -- 4262811
79878    --
79879    -- set accounting line options
79880    --
79881    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
79882            p_natural_side_code          => 'C'
79883          , p_gain_or_loss_flag          => 'N'
79884          , p_gl_transfer_mode_code      => 'S'
79885          , p_acct_entry_type_code       => 'A'
79886          , p_switch_side_flag           => 'Y'
79887          , p_merge_duplicate_code       => 'A'
79888          );
79889    --
79890    l_acc_rev_natural_side_code := 'D';  -- 4262811
79891    -- 
79892    --
79893    -- set accounting line type info
79894    --
79895    xla_ae_lines_pkg.SetAcctLineType
79896       (p_component_type             => l_component_type
79897       ,p_event_type_code            => l_event_type_code
79898       ,p_line_definition_owner_code => l_line_definition_owner_code
79899       ,p_line_definition_code       => l_line_definition_code
79900       ,p_accounting_line_code       => l_component_code
79901       ,p_accounting_line_type_code  => l_component_type_code
79902       ,p_accounting_line_appl_id    => l_component_appl_id
79903       ,p_amb_context_code           => l_amb_context_code
79904       ,p_entity_code                => l_entity_code
79905       ,p_event_class_code           => l_event_class_code);
79906    --
79907    -- set accounting class
79908    --
79909    xla_ae_lines_pkg.SetAcctClass(
79910            p_accounting_class_code  => 'RETAINAGE'
79911          , p_ae_header_id           => l_ae_header_id
79912          );
79913 
79914    --
79915    -- set rounding class
79916    --
79917    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
79918                       'RETAINAGE';
79922    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
79919 
79920    --
79921    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
79923    --
79924    -- bulk performance
79925    --
79926    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
79927 
79928    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
79929       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
79930 
79931    -- 4955764
79932    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79933       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
79934 
79935    -- 4458381 Public Sector Enh
79936    
79937    --
79938    -- set accounting attributes for the line type
79939    --
79940    l_entered_amt_idx := 25;
79941    l_accted_amt_idx  := 30;
79942    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
79943    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
79944    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
79945    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
79946    l_rec_acct_attrs.array_num_value(2)  := 
79947 xla_ae_sources_pkg.GetSystemSourceNum(
79948    p_source_code           => 'XLA_EVENT_APPL_ID'
79949  , p_source_type_code      => 'Y'
79950  , p_source_application_id =>  602
79951 );
79952    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
79953    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
79954    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
79955    l_rec_acct_attrs.array_char_value(4)  := 
79956 xla_ae_sources_pkg.GetSystemSourceChar(
79957    p_source_code           => 'XLA_ENTITY_CODE'
79958  , p_source_type_code      => 'Y'
79959  , p_source_application_id =>  602
79960 );
79961    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
79962    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
79963    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
79964    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
79965    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
79966    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
79967    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
79968    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
79969    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
79970    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
79971    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
79972    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_149);
79973    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
79974    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_150);
79975    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
79976    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
79977    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
79978    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
79979    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
79980    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
79981    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
79982    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
79983    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
79984    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
79985    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
79986    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
79987    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
79988    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
79989    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
79990    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
79991    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
79992    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
79993    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
79994    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
79995    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
79996    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
79997    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
79998    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
79999    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
80000    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
80001    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
80002    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
80003    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
80004    l_rec_acct_attrs.array_char_value(26)  := p_source_91;
80005    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
80006    l_rec_acct_attrs.array_date_value(27)  := p_source_131;
80007    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
80008    l_rec_acct_attrs.array_num_value(28)  := p_source_132;
80009    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
80010    l_rec_acct_attrs.array_char_value(29)  := p_source_133;
80011    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
80012    l_rec_acct_attrs.array_num_value(30)  := p_source_100;
80013    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
80017    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
80014    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
80015    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
80016    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
80018    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
80019    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
80020    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
80021    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
80022    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
80023    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
80024    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
80025    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
80026    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
80027    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
80028    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
80029    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
80030    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
80031    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
80032    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
80033    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
80034    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
80035    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
80036    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
80037    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
80038    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
80039    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
80040    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
80041 
80042    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
80043    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
80044 
80045    ---------------------------------------------------------------------------------------------------------------
80046    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
80047    ---------------------------------------------------------------------------------------------------------------
80048    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
80049 
80050    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80051    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80052 
80053    IF xla_accounting_cache_pkg.GetValueChar
80054          (p_source_code         => 'LEDGER_CATEGORY_CODE'
80055          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
80056    AND l_bflow_method_code = 'PRIOR_ENTRY'
80057 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
80058    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
80059          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
80060        )
80061    THEN
80062          xla_ae_lines_pkg.BflowUpgEntry
80063            (p_business_method_code    => l_bflow_method_code
80064            ,p_business_class_code     => l_bflow_class_code
80065            ,p_balance_type            => l_balance_type_code);
80066    ELSE
80067       NULL;
80068 -- No business flow processing for business flow method of NONE.
80069    END IF;
80070 
80071    --
80072    -- call analytical criteria
80073    --
80074    
80075    --
80076    -- call description
80077    --
80078    -- No description or it is inherited.
80079    --
80080    -- call ADRs
80081    -- Bug 4922099
80082    --
80083    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80084         (NVL(l_actual_upg_option, 'N') = 'O') OR
80085         (NVL(l_enc_upg_option, 'N') = 'O')
80086       )
80087    THEN
80088    NULL;
80089    --
80090    --
80091    
80092   l_ccid := AcctDerRule_36(
80093            p_application_id           => p_application_id
80094          , p_ae_header_id             => l_ae_header_id 
80095 , p_source_16 => p_source_16
80096 , p_source_16_meaning => p_source_16_meaning
80097 , p_source_29 => p_source_29
80098 , p_source_35 => p_source_35
80099          , x_transaction_coa_id       => l_adr_transaction_coa_id
80100          , x_accounting_coa_id        => l_adr_accounting_coa_id
80101          , x_value_type_code          => l_adr_value_type_code
80102          , p_side                     => 'NA'
80103    );
80104 
80105    xla_ae_lines_pkg.set_ccid(
80106     p_code_combination_id          => l_ccid
80107   , p_value_type_code              => l_adr_value_type_code
80108   , p_transaction_coa_id           => l_adr_transaction_coa_id
80109   , p_accounting_coa_id            => l_adr_accounting_coa_id
80110   , p_adr_code                     => 'AP_RETAINAGE'
80111   , p_adr_type_code                => 'S'
80112   , p_component_type               => l_component_type
80113   , p_component_code               => l_component_code
80114   , p_component_type_code          => l_component_type_code
80115   , p_component_appl_id            => l_component_appl_id
80116   , p_amb_context_code             => l_amb_context_code
80117   , p_side                         => 'NA'
80118   );
80119 
80120 
80121    l_segment := AcctDerRule_14(
80125          , x_transaction_coa_id       => l_adr_transaction_coa_id
80122            p_application_id           => p_application_id
80123          , p_ae_header_id             => l_ae_header_id 
80124 , p_source_34 => p_source_34
80126          , x_accounting_coa_id        => l_adr_accounting_coa_id
80127          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
80128          , x_flex_value_set_id        => l_adr_flex_value_set_id
80129          , x_value_type_code          => l_adr_value_type_code
80130          , x_value_combination_id     => l_adr_value_combination_id
80131          , x_value_segment_code       => l_adr_value_segment_code
80132          , p_side                     => 'NA'
80133          , p_override_seg_flag        => 'Y'
80134    );
80135 
80136    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
80137 
80138       xla_ae_lines_pkg.set_segment(
80139           p_to_segment_code         => 'GL_ACCOUNT'
80140         , p_segment_value           => l_segment
80141         , p_from_segment_code       => l_adr_value_segment_code
80142         , p_from_combination_id     => l_adr_value_combination_id
80143         , p_value_type_code         => l_adr_value_type_code
80144         , p_transaction_coa_id      => l_adr_transaction_coa_id
80145         , p_accounting_coa_id       => l_adr_accounting_coa_id
80146         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
80147         , p_flex_value_set_id       => l_adr_flex_value_set_id
80148         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
80149         , p_adr_type_code           => 'S'
80150         , p_component_type          => l_component_type
80151         , p_component_code          => l_component_code
80152         , p_component_type_code     => l_component_type_code
80153         , p_component_appl_id       => l_component_appl_id
80154         , p_amb_context_code        => l_amb_context_code
80155         , p_entity_code             => 'AP_INVOICES'
80156         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
80157         , p_side                    => 'NA'
80158         );
80159 
80160   END IF;
80161 
80162    l_segment := AcctDerRule_18(
80163            p_application_id           => p_application_id
80164          , p_ae_header_id             => l_ae_header_id 
80165 , p_source_16 => p_source_16
80166 , p_source_16_meaning => p_source_16_meaning
80167 , p_source_35 => p_source_35
80168          , x_transaction_coa_id       => l_adr_transaction_coa_id
80169          , x_accounting_coa_id        => l_adr_accounting_coa_id
80170          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
80171          , x_flex_value_set_id        => l_adr_flex_value_set_id
80172          , x_value_type_code          => l_adr_value_type_code
80173          , x_value_combination_id     => l_adr_value_combination_id
80174          , x_value_segment_code       => l_adr_value_segment_code
80175          , p_side                     => 'NA'
80176          , p_override_seg_flag        => 'Y'
80177    );
80178 
80179    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
80180 
80181       xla_ae_lines_pkg.set_segment(
80182           p_to_segment_code         => 'GL_BALANCING'
80183         , p_segment_value           => l_segment
80184         , p_from_segment_code       => l_adr_value_segment_code
80185         , p_from_combination_id     => l_adr_value_combination_id
80186         , p_value_type_code         => l_adr_value_type_code
80187         , p_transaction_coa_id      => l_adr_transaction_coa_id
80188         , p_accounting_coa_id       => l_adr_accounting_coa_id
80189         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
80190         , p_flex_value_set_id       => l_adr_flex_value_set_id
80191         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
80192         , p_adr_type_code           => 'S'
80193         , p_component_type          => l_component_type
80194         , p_component_code          => l_component_code
80195         , p_component_type_code     => l_component_type_code
80196         , p_component_appl_id       => l_component_appl_id
80197         , p_amb_context_code        => l_amb_context_code
80198         , p_entity_code             => 'AP_INVOICES'
80199         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
80200         , p_side                    => 'NA'
80201         );
80202 
80203   END IF;
80204 
80205    --
80206    --
80207    END IF;
80208    --
80209    -- Bug 4922099
80210    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
80211           (NVL(l_enc_upg_option, 'N') = 'O')
80212         ) AND
80213         (l_bflow_method_code = 'PRIOR_ENTRY')
80214       )
80215    THEN
80216       IF
80217       --
80218       1 = 2
80219       --
80220       THEN
80221       xla_accounting_err_pkg.build_message
80222                                     (p_appli_s_name            => 'XLA'
80223                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80224                                     ,p_token_1                 => 'LINE_NUMBER'
80225                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
80226                                     ,p_token_2                 => 'LINE_TYPE_NAME'
80227                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
80228                                                                              l_component_type
80232                                                                             ,l_amb_context_code
80229                                                                             ,l_component_code
80230                                                                             ,l_component_type_code
80231                                                                             ,l_component_appl_id
80233                                                                             ,l_entity_code
80234                                                                             ,l_event_class_code
80235                                                                            )
80236                                     ,p_token_3                 => 'OWNER'
80237                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
80238                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
80239                                                                           ,p_lookup_code    => l_component_type_code
80240                                                                          )
80241                                     ,p_token_4                 => 'PRODUCT_NAME'
80242                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
80243                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
80244                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
80245                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
80246                                     ,p_ae_header_id            =>  NULL
80247                                        );
80248 
80249         IF (C_LEVEL_ERROR>= g_log_level) THEN
80250                  trace
80251                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80252                       ,p_level    => C_LEVEL_ERROR
80253                       ,p_module   => l_log_module);
80254         END IF;
80255       END IF;
80256    END IF;
80257    --
80258    --
80259    ------------------------------------------------------------------------------------------------
80260    -- 4219869 Business Flow
80261    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
80262    -- Prior Entry.  Currently, the following code is always generated.
80263    ------------------------------------------------------------------------------------------------
80264    XLA_AE_LINES_PKG.ValidateCurrentLine;
80265 
80266    ------------------------------------------------------------------------------------
80267    -- 4219869 Business Flow
80268    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
80269    ------------------------------------------------------------------------------------
80270    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80271 
80272    ----------------------------------------------------------------------------------
80273    -- 4219869 Business Flow
80274    -- Update journal entry status -- Need to generate this within IF <condition>
80275    ----------------------------------------------------------------------------------
80276    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80277          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
80278          ,p_balance_type_code => l_balance_type_code
80279          );
80280 
80281    -------------------------------------------------------------------------------------------
80282    -- 4262811 - Generate the Accrual Reversal lines
80283    -------------------------------------------------------------------------------------------
80284    BEGIN
80285       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
80286                               (g_array_event(p_event_id).array_value_num('header_index'));
80287       IF l_acc_rev_flag IS NULL THEN
80288          l_acc_rev_flag := 'N';
80289       END IF;
80290    EXCEPTION
80291       WHEN OTHERS THEN
80292          l_acc_rev_flag := 'N';
80293    END;
80294    --
80295    IF (l_acc_rev_flag = 'Y') THEN
80296 
80297        -- 4645092  ------------------------------------------------------------------------------
80298        -- To allow MPA report to determine if it should generate report process
80299        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
80300        ------------------------------------------------------------------------------------------
80301 
80302        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
80303        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
80304    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
80305    -- call ADRs
80306    -- Bug 4922099
80307    --
80308    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80309         (NVL(l_actual_upg_option, 'N') = 'O') OR
80310         (NVL(l_enc_upg_option, 'N') = 'O')
80311       )
80312    THEN
80313    NULL;
80314    --
80315    --
80316    
80317   l_ccid := AcctDerRule_36(
80318            p_application_id           => p_application_id
80319          , p_ae_header_id             => l_ae_header_id 
80320 , p_source_16 => p_source_16
80321 , p_source_16_meaning => p_source_16_meaning
80322 , p_source_29 => p_source_29
80323 , p_source_35 => p_source_35
80324          , x_transaction_coa_id       => l_adr_transaction_coa_id
80325          , x_accounting_coa_id        => l_adr_accounting_coa_id
80326          , x_value_type_code          => l_adr_value_type_code
80330    xla_ae_lines_pkg.set_ccid(
80327          , p_side                     => 'NA'
80328    );
80329 
80331     p_code_combination_id          => l_ccid
80332   , p_value_type_code              => l_adr_value_type_code
80333   , p_transaction_coa_id           => l_adr_transaction_coa_id
80334   , p_accounting_coa_id            => l_adr_accounting_coa_id
80335   , p_adr_code                     => 'AP_RETAINAGE'
80336   , p_adr_type_code                => 'S'
80337   , p_component_type               => l_component_type
80338   , p_component_code               => l_component_code
80339   , p_component_type_code          => l_component_type_code
80340   , p_component_appl_id            => l_component_appl_id
80341   , p_amb_context_code             => l_amb_context_code
80342   , p_side                         => 'NA'
80343   );
80344 
80345 
80346    l_segment := AcctDerRule_14(
80347            p_application_id           => p_application_id
80348          , p_ae_header_id             => l_ae_header_id 
80349 , p_source_34 => p_source_34
80350          , x_transaction_coa_id       => l_adr_transaction_coa_id
80351          , x_accounting_coa_id        => l_adr_accounting_coa_id
80352          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
80353          , x_flex_value_set_id        => l_adr_flex_value_set_id
80354          , x_value_type_code          => l_adr_value_type_code
80355          , x_value_combination_id     => l_adr_value_combination_id
80356          , x_value_segment_code       => l_adr_value_segment_code
80357          , p_side                     => 'NA'
80358          , p_override_seg_flag        => 'Y'
80359    );
80360 
80361    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
80362 
80363       xla_ae_lines_pkg.set_segment(
80364           p_to_segment_code         => 'GL_ACCOUNT'
80365         , p_segment_value           => l_segment
80366         , p_from_segment_code       => l_adr_value_segment_code
80367         , p_from_combination_id     => l_adr_value_combination_id
80368         , p_value_type_code         => l_adr_value_type_code
80369         , p_transaction_coa_id      => l_adr_transaction_coa_id
80370         , p_accounting_coa_id       => l_adr_accounting_coa_id
80371         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
80372         , p_flex_value_set_id       => l_adr_flex_value_set_id
80373         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
80374         , p_adr_type_code           => 'S'
80375         , p_component_type          => l_component_type
80376         , p_component_code          => l_component_code
80377         , p_component_type_code     => l_component_type_code
80378         , p_component_appl_id       => l_component_appl_id
80379         , p_amb_context_code        => l_amb_context_code
80380         , p_entity_code             => 'AP_INVOICES'
80381         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
80382         , p_side                    => 'NA'
80383         );
80384 
80385   END IF;
80386 
80387    l_segment := AcctDerRule_18(
80388            p_application_id           => p_application_id
80389          , p_ae_header_id             => l_ae_header_id 
80390 , p_source_16 => p_source_16
80391 , p_source_16_meaning => p_source_16_meaning
80392 , p_source_35 => p_source_35
80393          , x_transaction_coa_id       => l_adr_transaction_coa_id
80394          , x_accounting_coa_id        => l_adr_accounting_coa_id
80395          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
80396          , x_flex_value_set_id        => l_adr_flex_value_set_id
80397          , x_value_type_code          => l_adr_value_type_code
80398          , x_value_combination_id     => l_adr_value_combination_id
80399          , x_value_segment_code       => l_adr_value_segment_code
80400          , p_side                     => 'NA'
80401          , p_override_seg_flag        => 'Y'
80402    );
80403 
80404    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
80405 
80406       xla_ae_lines_pkg.set_segment(
80407           p_to_segment_code         => 'GL_BALANCING'
80408         , p_segment_value           => l_segment
80409         , p_from_segment_code       => l_adr_value_segment_code
80410         , p_from_combination_id     => l_adr_value_combination_id
80411         , p_value_type_code         => l_adr_value_type_code
80412         , p_transaction_coa_id      => l_adr_transaction_coa_id
80413         , p_accounting_coa_id       => l_adr_accounting_coa_id
80414         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
80415         , p_flex_value_set_id       => l_adr_flex_value_set_id
80416         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
80417         , p_adr_type_code           => 'S'
80418         , p_component_type          => l_component_type
80419         , p_component_code          => l_component_code
80420         , p_component_type_code     => l_component_type_code
80421         , p_component_appl_id       => l_component_appl_id
80422         , p_amb_context_code        => l_amb_context_code
80423         , p_entity_code             => 'AP_INVOICES'
80424         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
80425         , p_side                    => 'NA'
80426         );
80427 
80428   END IF;
80429 
80430    --
80431    --
80432    END IF;
80433 
80434        --
80435        -- Update the line information that should be overwritten
80436        --
80437        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
80438                                          p_header_num   => 1);
80442 
80439        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
80440 
80441        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
80443        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
80444           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
80445        END IF;
80446 
80447       --
80448       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
80449       --
80450       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
80451           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
80452       ELSE
80453           ---------------------------------------------------------------------------------------------------
80454           -- 4262811a Switch Sign
80455           ---------------------------------------------------------------------------------------------------
80456           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
80457           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80458                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80459           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80460                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80461           -- 5132302
80462           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
80463                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80464 
80465       END IF;
80466 
80467       -- 4955764
80468       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80469       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
80470 
80471 
80472       XLA_AE_LINES_PKG.ValidateCurrentLine;
80473       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80474 
80475       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80476                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
80477                ,p_balance_type_code => l_balance_type_code);
80478 
80479    END IF;
80480 
80481    -----------------------------------------------------------------------------------------
80482    -- 4262811 Multiperiod Accounting
80483    -----------------------------------------------------------------------------------------
80484      -- No MPA option is assigned.
80485 
80486 
80487 END IF;
80488 END IF;
80489 --
80490 
80491 --
80492 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80493    trace
80494       (p_msg      => 'END of AcctLineType_143'
80495       ,p_level    => C_LEVEL_PROCEDURE
80496       ,p_module   => l_log_module);
80497 END IF;
80498 --
80499 EXCEPTION
80500   WHEN xla_exceptions_pkg.application_exception THEN
80501       RAISE;
80502   WHEN OTHERS THEN
80503        xla_exceptions_pkg.raise_message
80504            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_143');
80505 END AcctLineType_143;
80506 --
80507 
80508 ---------------------------------------
80509 --
80510 -- PRIVATE FUNCTION
80511 --         AcctLineType_144
80512 --
80513 ---------------------------------------
80514 PROCEDURE AcctLineType_144 (
80515   p_application_id        IN NUMBER
80516  ,p_event_id              IN NUMBER
80517  ,p_calculate_acctd_flag  IN VARCHAR2
80518  ,p_calculate_g_l_flag    IN VARCHAR2
80519  ,p_actual_flag           IN OUT VARCHAR2
80520  ,p_balance_type_code     OUT VARCHAR2
80521  ,p_gain_or_loss_ref      OUT VARCHAR2
80522  
80523 --Automatic Offsets Value
80524  , p_source_16            IN VARCHAR2
80525  , p_source_16_meaning    IN VARCHAR2
80526 --Invoice Distribution Account
80527  , p_source_29            IN NUMBER
80528 --Retainage Account
80529  , p_source_34            IN NUMBER
80530 --Retainage Related Item Distribution Account
80531  , p_source_35            IN NUMBER
80532 --When to Account for Payment Option
80533  , p_source_50            IN VARCHAR2
80534 --Accounting Reversal Indicator
80535  , p_source_52            IN VARCHAR2
80536 --Business Flow Accounts Payable Application Identifier
80537  , p_source_54            IN NUMBER
80538 --Distribution Link Type
80539  , p_source_60            IN VARCHAR2
80540 --Override Accounted Amount Indicator
80541  , p_source_64            IN VARCHAR2
80542  , p_source_64_meaning    IN VARCHAR2
80543 --Third Party Type
80544  , p_source_67            IN VARCHAR2
80545 --Invoice Distribution Tax Line Identifier
80546  , p_source_69            IN NUMBER
80547 --Invoice Distribution Summary Tax Line Identifier
80548  , p_source_70            IN NUMBER
80549 --Business Flow Invoice Distribution Type
80550  , p_source_73            IN VARCHAR2
80551 --Business Flow Invoice Entity Code
80552  , p_source_74            IN VARCHAR2
80553 --Invoice Distribution Tax Distribution Identifier from Tax
80554  , p_source_77            IN NUMBER
80555 --Prepayment Distribution Type
80556  , p_source_78            IN VARCHAR2
80557 --Recipient Invoice Distribution Type
80558  , p_source_79            IN VARCHAR2
80559  , p_source_79_meaning    IN VARCHAR2
80560 --Prepayment Application Distribution Identifier
80561  , p_source_82            IN NUMBER
80565  , p_source_88            IN VARCHAR2
80562 --Invoice Identifier
80563  , p_source_83            IN NUMBER
80564 --Upgrade Encumbrance Credit Account Class
80566 --Payables Encumbrance Upgrade Credit Account
80567  , p_source_89            IN NUMBER
80568 --Payables Encumbrance Upgrade Credit Amount
80569  , p_source_90            IN NUMBER
80570 --Invoice Currency Code
80571  , p_source_91            IN VARCHAR2
80572 --Payables Encumbrance Upgrade Credit Base Amount
80573  , p_source_92            IN NUMBER
80574 --Upgrade Encumbrance Debit Account Class
80575  , p_source_93            IN VARCHAR2
80576 --Payables Encumbrance Upgrade Debit Account
80577  , p_source_94            IN NUMBER
80578 --Payables Encumbrance Upgrade Debit Amount
80579  , p_source_95            IN NUMBER
80580 --Payables Encumbrance Upgrade Debit Base Amount
80581  , p_source_96            IN NUMBER
80582 --Payables Encumbrance Upgrade Option
80583  , p_source_97            IN VARCHAR2
80584 --Prepayment Distribution Amount
80585  , p_source_98            IN NUMBER
80586 --Deferred Accounting End Date
80587  , p_source_101            IN DATE
80588 --Deferred Accounting Option
80589  , p_source_102            IN VARCHAR2
80590 --Deferred Accounting Start Date
80591  , p_source_103            IN DATE
80592 --Invoice Supplier Identifier
80593  , p_source_104            IN NUMBER
80594 --Invoice Supplier Site Identifier
80595  , p_source_105            IN NUMBER
80596 --Identifier of the Prepayment Application Reversed
80597  , p_source_106            IN NUMBER
80598 --Payables Upgrade Credit Encumbrance Type Identifier
80599  , p_source_107            IN NUMBER
80600 --Payables Upgrade Debit Encumbrance Type Identifier
80601  , p_source_108            IN NUMBER
80602 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
80603  , p_source_110            IN NUMBER
80604 --Invoice Exchange Date
80605  , p_source_131            IN DATE
80606 --Invoice Exchange Rate
80607  , p_source_132            IN NUMBER
80608 --Invoice Exchange Rate Type
80609  , p_source_133            IN VARCHAR2
80610 --Prepayment Application Recipient Invoice Type
80611  , p_source_148            IN VARCHAR2
80612  , p_source_148_meaning    IN VARCHAR2
80613 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
80614  , p_source_149            IN NUMBER
80615 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
80616  , p_source_150            IN NUMBER
80617 )
80618 IS
80619 
80620 l_component_type              VARCHAR2(80);
80621 l_component_code              VARCHAR2(30);
80622 l_component_type_code         VARCHAR2(1);
80623 l_component_appl_id           INTEGER;
80624 l_amb_context_code            VARCHAR2(30);
80625 l_entity_code                 VARCHAR2(30);
80626 l_event_class_code            VARCHAR2(30);
80627 l_ae_header_id                NUMBER;
80628 l_event_type_code             VARCHAR2(30);
80629 l_line_definition_code        VARCHAR2(30);
80630 l_line_definition_owner_code  VARCHAR2(1);
80631 --
80632 -- adr variables
80633 l_segment                     VARCHAR2(30);
80634 l_ccid                        NUMBER;
80635 l_adr_transaction_coa_id      NUMBER;
80636 l_adr_accounting_coa_id       NUMBER;
80637 l_adr_flexfield_segment_code  VARCHAR2(30);
80638 l_adr_flex_value_set_id       NUMBER;
80639 l_adr_value_type_code         VARCHAR2(30);
80640 l_adr_value_combination_id    NUMBER;
80641 l_adr_value_segment_code      VARCHAR2(30);
80642 
80643 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
80644 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
80645 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
80646 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
80647 
80648 -- 4262811 Variables ------------------------------------------------------------------------------------------
80649 l_entered_amt_idx             NUMBER;
80650 l_accted_amt_idx              NUMBER;
80651 l_acc_rev_flag                VARCHAR2(1);
80652 l_accrual_line_num            NUMBER;
80653 l_tmp_amt                     NUMBER;
80654 l_acc_rev_natural_side_code   VARCHAR2(1);
80655 
80656 l_num_entries                 NUMBER;
80657 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
80658 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
80659 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
80660 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
80661 l_recog_line_1                NUMBER;
80662 l_recog_line_2                NUMBER;
80663 
80664 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
80665 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
80666 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
80667 
80668 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
80669 
80670 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
80671 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
80672 
80673 ---------------------------------------------------------------------------------------------------------------
80674 
80675 
80676 --
80677 -- bulk performance
80678 --
80679 l_balance_type_code           VARCHAR2(1);
80680 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
80684 -- Upgrade strategy
80681 l_log_module                  VARCHAR2(240);
80682 
80683 --
80685 --
80686 l_actual_upg_option           VARCHAR2(1);
80687 l_enc_upg_option           VARCHAR2(1);
80688 
80689 --
80690 BEGIN
80691 --
80692 IF g_log_enabled THEN
80693       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_144';
80694 END IF;
80695 --
80696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80697 
80698       trace
80699          (p_msg      => 'BEGIN of AcctLineType_144'
80700          ,p_level    => C_LEVEL_PROCEDURE
80701          ,p_module   => l_log_module);
80702 
80703 END IF;
80704 --
80705 l_component_type             := 'AMB_JLT';
80706 l_component_code             := 'AP_RET_CASH_PAY_XRATE';
80707 l_component_type_code        := 'S';
80708 l_component_appl_id          :=  200;
80709 l_amb_context_code           := 'DEFAULT';
80710 l_entity_code                := 'AP_INVOICES';
80711 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
80712 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
80713 l_line_definition_owner_code := 'S';
80714 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
80715 --
80716 l_balance_type_code          := 'A';
80717 l_segment                     := NULL;
80718 l_ccid                        := NULL;
80719 l_adr_transaction_coa_id      := NULL;
80720 l_adr_accounting_coa_id       := NULL;
80721 l_adr_flexfield_segment_code  := NULL;
80722 l_adr_flex_value_set_id       := NULL;
80723 l_adr_value_type_code         := NULL;
80724 l_adr_value_combination_id    := NULL;
80725 l_adr_value_segment_code      := NULL;
80726 
80727 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
80728 l_bflow_class_code           := '';    -- 4219869 Business Flow
80729 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
80730 l_budgetary_control_flag     := 'N';
80731 
80732 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
80733 l_bflow_applied_to_amt       := NULL; -- 5132302
80734 l_entered_amt_idx            := NULL;          -- 4262811
80735 l_accted_amt_idx             := NULL;          -- 4262811
80736 l_acc_rev_flag               := NULL;          -- 4262811
80737 l_accrual_line_num           := NULL;          -- 4262811
80738 l_tmp_amt                    := NULL;          -- 4262811
80739 --
80740  
80741 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
80742     l_balance_type_code <> 'B' THEN
80743 IF NVL(p_source_50,'
80744 ') <>  'CLEAR_CLEAR' AND 
80745 NVL(p_source_79,'
80746 ') =  'RETAINAGE' AND 
80747 NVL(p_source_148,'
80748 ') <>  'RETAINAGE RELEASE' AND 
80749 (NVL(p_source_78,'
80750 ') =  'PREPAY APPL' OR 
80751 NVL(p_source_78,'
80752 ') =  'PREPAY APPL NONREC TAX' OR 
80753 NVL(p_source_78,'
80754 ') =  'PREPAY APPL REC TAX')
80755  THEN 
80756 
80757    --
80758    XLA_AE_LINES_PKG.SetNewLine;
80759 
80760    p_balance_type_code          := l_balance_type_code;
80761    -- set the flag so later we will know whether the gain loss line needs to be created
80762    
80763    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
80764      p_actual_flag :='A';
80765    END IF;
80766 
80767    --
80768    -- bulk performance
80769    --
80770    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
80771                                       p_header_num   => 0); -- 4262811
80772    --
80773    -- set accounting line options
80774    --
80775    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
80776            p_natural_side_code          => 'C'
80777          , p_gain_or_loss_flag          => 'N'
80778          , p_gl_transfer_mode_code      => 'S'
80779          , p_acct_entry_type_code       => 'A'
80780          , p_switch_side_flag           => 'Y'
80781          , p_merge_duplicate_code       => 'A'
80782          );
80783    --
80784    l_acc_rev_natural_side_code := 'D';  -- 4262811
80785    -- 
80786    --
80787    -- set accounting line type info
80788    --
80789    xla_ae_lines_pkg.SetAcctLineType
80790       (p_component_type             => l_component_type
80791       ,p_event_type_code            => l_event_type_code
80792       ,p_line_definition_owner_code => l_line_definition_owner_code
80793       ,p_line_definition_code       => l_line_definition_code
80794       ,p_accounting_line_code       => l_component_code
80795       ,p_accounting_line_type_code  => l_component_type_code
80796       ,p_accounting_line_appl_id    => l_component_appl_id
80797       ,p_amb_context_code           => l_amb_context_code
80798       ,p_entity_code                => l_entity_code
80799       ,p_event_class_code           => l_event_class_code);
80800    --
80801    -- set accounting class
80802    --
80803    xla_ae_lines_pkg.SetAcctClass(
80804            p_accounting_class_code  => 'RETAINAGE'
80805          , p_ae_header_id           => l_ae_header_id
80806          );
80807 
80808    --
80809    -- set rounding class
80810    --
80811    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
80812                       'RETAINAGE';
80813 
80814    --
80815    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
80816    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
80820    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
80817    --
80818    -- bulk performance
80819    --
80821 
80822    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
80823       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
80824 
80825    -- 4955764
80826    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80827       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
80828 
80829    -- 4458381 Public Sector Enh
80830    
80831    --
80832    -- set accounting attributes for the line type
80833    --
80834    l_entered_amt_idx := 25;
80835    l_accted_amt_idx  := 30;
80836    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
80837    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
80838    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
80839    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
80840    l_rec_acct_attrs.array_num_value(2)  := 
80841 xla_ae_sources_pkg.GetSystemSourceNum(
80842    p_source_code           => 'XLA_EVENT_APPL_ID'
80843  , p_source_type_code      => 'Y'
80844  , p_source_application_id =>  602
80845 );
80846    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
80847    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
80848    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
80849    l_rec_acct_attrs.array_char_value(4)  := 
80850 xla_ae_sources_pkg.GetSystemSourceChar(
80851    p_source_code           => 'XLA_ENTITY_CODE'
80852  , p_source_type_code      => 'Y'
80853  , p_source_application_id =>  602
80854 );
80855    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
80856    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
80857    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
80858    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
80859    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
80860    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
80861    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
80862    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
80863    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
80864    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
80865    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
80866    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_149);
80867    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
80868    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_150);
80869    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
80870    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
80871    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
80872    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
80873    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
80874    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
80875    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
80876    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
80877    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
80878    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
80879    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
80880    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
80881    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
80882    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
80883    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
80884    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
80885    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
80886    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
80887    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
80888    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
80889    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
80890    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
80891    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
80892    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
80893    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
80894    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
80895    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
80896    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
80897    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
80898    l_rec_acct_attrs.array_char_value(26)  := p_source_91;
80899    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
80900    l_rec_acct_attrs.array_date_value(27)  := p_source_131;
80901    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
80902    l_rec_acct_attrs.array_num_value(28)  := p_source_132;
80903    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
80904    l_rec_acct_attrs.array_char_value(29)  := p_source_133;
80905    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
80906    l_rec_acct_attrs.array_num_value(30)  := p_source_110;
80907    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
80908    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
80909    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
80910    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
80914    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
80911    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
80912    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
80913    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
80915    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
80916    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
80917    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
80918    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
80919    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
80920    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
80921    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
80922    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
80923    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
80924    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
80925    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
80926    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
80927    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
80928    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
80929    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
80930    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
80931    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
80932    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
80933    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
80934    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
80935 
80936    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
80937    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
80938 
80939    ---------------------------------------------------------------------------------------------------------------
80940    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
80941    ---------------------------------------------------------------------------------------------------------------
80942    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
80943 
80944    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80945    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80946 
80947    IF xla_accounting_cache_pkg.GetValueChar
80948          (p_source_code         => 'LEDGER_CATEGORY_CODE'
80949          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
80950    AND l_bflow_method_code = 'PRIOR_ENTRY'
80951 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
80952    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
80953          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
80954        )
80955    THEN
80956          xla_ae_lines_pkg.BflowUpgEntry
80957            (p_business_method_code    => l_bflow_method_code
80958            ,p_business_class_code     => l_bflow_class_code
80959            ,p_balance_type            => l_balance_type_code);
80960    ELSE
80961       NULL;
80962 -- No business flow processing for business flow method of NONE.
80963    END IF;
80964 
80965    --
80966    -- call analytical criteria
80967    --
80968    
80969    --
80970    -- call description
80971    --
80972    -- No description or it is inherited.
80973    --
80974    -- call ADRs
80975    -- Bug 4922099
80976    --
80977    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80978         (NVL(l_actual_upg_option, 'N') = 'O') OR
80979         (NVL(l_enc_upg_option, 'N') = 'O')
80980       )
80981    THEN
80982    NULL;
80983    --
80984    --
80985    
80986   l_ccid := AcctDerRule_36(
80987            p_application_id           => p_application_id
80988          , p_ae_header_id             => l_ae_header_id 
80989 , p_source_16 => p_source_16
80990 , p_source_16_meaning => p_source_16_meaning
80991 , p_source_29 => p_source_29
80992 , p_source_35 => p_source_35
80993          , x_transaction_coa_id       => l_adr_transaction_coa_id
80994          , x_accounting_coa_id        => l_adr_accounting_coa_id
80995          , x_value_type_code          => l_adr_value_type_code
80996          , p_side                     => 'NA'
80997    );
80998 
80999    xla_ae_lines_pkg.set_ccid(
81000     p_code_combination_id          => l_ccid
81001   , p_value_type_code              => l_adr_value_type_code
81002   , p_transaction_coa_id           => l_adr_transaction_coa_id
81003   , p_accounting_coa_id            => l_adr_accounting_coa_id
81004   , p_adr_code                     => 'AP_RETAINAGE'
81005   , p_adr_type_code                => 'S'
81006   , p_component_type               => l_component_type
81007   , p_component_code               => l_component_code
81008   , p_component_type_code          => l_component_type_code
81009   , p_component_appl_id            => l_component_appl_id
81010   , p_amb_context_code             => l_amb_context_code
81011   , p_side                         => 'NA'
81012   );
81013 
81014 
81015    l_segment := AcctDerRule_14(
81016            p_application_id           => p_application_id
81017          , p_ae_header_id             => l_ae_header_id 
81018 , p_source_34 => p_source_34
81019          , x_transaction_coa_id       => l_adr_transaction_coa_id
81020          , x_accounting_coa_id        => l_adr_accounting_coa_id
81024          , x_value_combination_id     => l_adr_value_combination_id
81021          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
81022          , x_flex_value_set_id        => l_adr_flex_value_set_id
81023          , x_value_type_code          => l_adr_value_type_code
81025          , x_value_segment_code       => l_adr_value_segment_code
81026          , p_side                     => 'NA'
81027          , p_override_seg_flag        => 'Y'
81028    );
81029 
81030    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
81031 
81032       xla_ae_lines_pkg.set_segment(
81033           p_to_segment_code         => 'GL_ACCOUNT'
81034         , p_segment_value           => l_segment
81035         , p_from_segment_code       => l_adr_value_segment_code
81036         , p_from_combination_id     => l_adr_value_combination_id
81037         , p_value_type_code         => l_adr_value_type_code
81038         , p_transaction_coa_id      => l_adr_transaction_coa_id
81039         , p_accounting_coa_id       => l_adr_accounting_coa_id
81040         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
81041         , p_flex_value_set_id       => l_adr_flex_value_set_id
81042         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
81043         , p_adr_type_code           => 'S'
81044         , p_component_type          => l_component_type
81045         , p_component_code          => l_component_code
81046         , p_component_type_code     => l_component_type_code
81047         , p_component_appl_id       => l_component_appl_id
81048         , p_amb_context_code        => l_amb_context_code
81049         , p_entity_code             => 'AP_INVOICES'
81050         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
81051         , p_side                    => 'NA'
81052         );
81053 
81054   END IF;
81055 
81056    l_segment := AcctDerRule_18(
81057            p_application_id           => p_application_id
81058          , p_ae_header_id             => l_ae_header_id 
81059 , p_source_16 => p_source_16
81060 , p_source_16_meaning => p_source_16_meaning
81061 , p_source_35 => p_source_35
81062          , x_transaction_coa_id       => l_adr_transaction_coa_id
81063          , x_accounting_coa_id        => l_adr_accounting_coa_id
81064          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
81065          , x_flex_value_set_id        => l_adr_flex_value_set_id
81066          , x_value_type_code          => l_adr_value_type_code
81067          , x_value_combination_id     => l_adr_value_combination_id
81068          , x_value_segment_code       => l_adr_value_segment_code
81069          , p_side                     => 'NA'
81070          , p_override_seg_flag        => 'Y'
81071    );
81072 
81073    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
81074 
81075       xla_ae_lines_pkg.set_segment(
81076           p_to_segment_code         => 'GL_BALANCING'
81077         , p_segment_value           => l_segment
81078         , p_from_segment_code       => l_adr_value_segment_code
81079         , p_from_combination_id     => l_adr_value_combination_id
81080         , p_value_type_code         => l_adr_value_type_code
81081         , p_transaction_coa_id      => l_adr_transaction_coa_id
81082         , p_accounting_coa_id       => l_adr_accounting_coa_id
81083         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
81084         , p_flex_value_set_id       => l_adr_flex_value_set_id
81085         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
81086         , p_adr_type_code           => 'S'
81087         , p_component_type          => l_component_type
81088         , p_component_code          => l_component_code
81089         , p_component_type_code     => l_component_type_code
81090         , p_component_appl_id       => l_component_appl_id
81091         , p_amb_context_code        => l_amb_context_code
81092         , p_entity_code             => 'AP_INVOICES'
81093         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
81094         , p_side                    => 'NA'
81095         );
81096 
81097   END IF;
81098 
81099    --
81100    --
81101    END IF;
81102    --
81103    -- Bug 4922099
81104    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
81105           (NVL(l_enc_upg_option, 'N') = 'O')
81106         ) AND
81107         (l_bflow_method_code = 'PRIOR_ENTRY')
81108       )
81109    THEN
81110       IF
81111       --
81112       1 = 2
81113       --
81114       THEN
81115       xla_accounting_err_pkg.build_message
81116                                     (p_appli_s_name            => 'XLA'
81117                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81118                                     ,p_token_1                 => 'LINE_NUMBER'
81119                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
81120                                     ,p_token_2                 => 'LINE_TYPE_NAME'
81121                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
81122                                                                              l_component_type
81123                                                                             ,l_component_code
81124                                                                             ,l_component_type_code
81125                                                                             ,l_component_appl_id
81126                                                                             ,l_amb_context_code
81127                                                                             ,l_entity_code
81131                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
81128                                                                             ,l_event_class_code
81129                                                                            )
81130                                     ,p_token_3                 => 'OWNER'
81132                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
81133                                                                           ,p_lookup_code    => l_component_type_code
81134                                                                          )
81135                                     ,p_token_4                 => 'PRODUCT_NAME'
81136                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
81137                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
81138                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
81139                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
81140                                     ,p_ae_header_id            =>  NULL
81141                                        );
81142 
81143         IF (C_LEVEL_ERROR>= g_log_level) THEN
81144                  trace
81145                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81146                       ,p_level    => C_LEVEL_ERROR
81147                       ,p_module   => l_log_module);
81148         END IF;
81149       END IF;
81150    END IF;
81151    --
81152    --
81153    ------------------------------------------------------------------------------------------------
81154    -- 4219869 Business Flow
81155    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
81156    -- Prior Entry.  Currently, the following code is always generated.
81157    ------------------------------------------------------------------------------------------------
81158    XLA_AE_LINES_PKG.ValidateCurrentLine;
81159 
81160    ------------------------------------------------------------------------------------
81161    -- 4219869 Business Flow
81162    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
81163    ------------------------------------------------------------------------------------
81164    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81165 
81166    ----------------------------------------------------------------------------------
81167    -- 4219869 Business Flow
81168    -- Update journal entry status -- Need to generate this within IF <condition>
81169    ----------------------------------------------------------------------------------
81170    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81171          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
81172          ,p_balance_type_code => l_balance_type_code
81173          );
81174 
81175    -------------------------------------------------------------------------------------------
81176    -- 4262811 - Generate the Accrual Reversal lines
81177    -------------------------------------------------------------------------------------------
81178    BEGIN
81179       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
81180                               (g_array_event(p_event_id).array_value_num('header_index'));
81181       IF l_acc_rev_flag IS NULL THEN
81182          l_acc_rev_flag := 'N';
81183       END IF;
81184    EXCEPTION
81185       WHEN OTHERS THEN
81186          l_acc_rev_flag := 'N';
81187    END;
81188    --
81189    IF (l_acc_rev_flag = 'Y') THEN
81190 
81191        -- 4645092  ------------------------------------------------------------------------------
81192        -- To allow MPA report to determine if it should generate report process
81193        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
81194        ------------------------------------------------------------------------------------------
81195 
81196        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
81197        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
81198    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
81199    -- call ADRs
81200    -- Bug 4922099
81201    --
81202    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81203         (NVL(l_actual_upg_option, 'N') = 'O') OR
81204         (NVL(l_enc_upg_option, 'N') = 'O')
81205       )
81206    THEN
81207    NULL;
81208    --
81209    --
81210    
81211   l_ccid := AcctDerRule_36(
81212            p_application_id           => p_application_id
81213          , p_ae_header_id             => l_ae_header_id 
81214 , p_source_16 => p_source_16
81215 , p_source_16_meaning => p_source_16_meaning
81216 , p_source_29 => p_source_29
81217 , p_source_35 => p_source_35
81218          , x_transaction_coa_id       => l_adr_transaction_coa_id
81219          , x_accounting_coa_id        => l_adr_accounting_coa_id
81220          , x_value_type_code          => l_adr_value_type_code
81221          , p_side                     => 'NA'
81222    );
81223 
81224    xla_ae_lines_pkg.set_ccid(
81225     p_code_combination_id          => l_ccid
81226   , p_value_type_code              => l_adr_value_type_code
81227   , p_transaction_coa_id           => l_adr_transaction_coa_id
81228   , p_accounting_coa_id            => l_adr_accounting_coa_id
81229   , p_adr_code                     => 'AP_RETAINAGE'
81230   , p_adr_type_code                => 'S'
81231   , p_component_type               => l_component_type
81235   , p_amb_context_code             => l_amb_context_code
81232   , p_component_code               => l_component_code
81233   , p_component_type_code          => l_component_type_code
81234   , p_component_appl_id            => l_component_appl_id
81236   , p_side                         => 'NA'
81237   );
81238 
81239 
81240    l_segment := AcctDerRule_14(
81241            p_application_id           => p_application_id
81242          , p_ae_header_id             => l_ae_header_id 
81243 , p_source_34 => p_source_34
81244          , x_transaction_coa_id       => l_adr_transaction_coa_id
81245          , x_accounting_coa_id        => l_adr_accounting_coa_id
81246          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
81247          , x_flex_value_set_id        => l_adr_flex_value_set_id
81248          , x_value_type_code          => l_adr_value_type_code
81249          , x_value_combination_id     => l_adr_value_combination_id
81250          , x_value_segment_code       => l_adr_value_segment_code
81251          , p_side                     => 'NA'
81252          , p_override_seg_flag        => 'Y'
81253    );
81254 
81255    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
81256 
81257       xla_ae_lines_pkg.set_segment(
81258           p_to_segment_code         => 'GL_ACCOUNT'
81259         , p_segment_value           => l_segment
81260         , p_from_segment_code       => l_adr_value_segment_code
81261         , p_from_combination_id     => l_adr_value_combination_id
81262         , p_value_type_code         => l_adr_value_type_code
81263         , p_transaction_coa_id      => l_adr_transaction_coa_id
81264         , p_accounting_coa_id       => l_adr_accounting_coa_id
81265         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
81266         , p_flex_value_set_id       => l_adr_flex_value_set_id
81267         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
81268         , p_adr_type_code           => 'S'
81269         , p_component_type          => l_component_type
81270         , p_component_code          => l_component_code
81271         , p_component_type_code     => l_component_type_code
81272         , p_component_appl_id       => l_component_appl_id
81273         , p_amb_context_code        => l_amb_context_code
81274         , p_entity_code             => 'AP_INVOICES'
81275         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
81276         , p_side                    => 'NA'
81277         );
81278 
81279   END IF;
81280 
81281    l_segment := AcctDerRule_18(
81282            p_application_id           => p_application_id
81283          , p_ae_header_id             => l_ae_header_id 
81284 , p_source_16 => p_source_16
81285 , p_source_16_meaning => p_source_16_meaning
81286 , p_source_35 => p_source_35
81287          , x_transaction_coa_id       => l_adr_transaction_coa_id
81288          , x_accounting_coa_id        => l_adr_accounting_coa_id
81289          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
81290          , x_flex_value_set_id        => l_adr_flex_value_set_id
81291          , x_value_type_code          => l_adr_value_type_code
81292          , x_value_combination_id     => l_adr_value_combination_id
81293          , x_value_segment_code       => l_adr_value_segment_code
81294          , p_side                     => 'NA'
81295          , p_override_seg_flag        => 'Y'
81296    );
81297 
81298    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
81299 
81300       xla_ae_lines_pkg.set_segment(
81301           p_to_segment_code         => 'GL_BALANCING'
81302         , p_segment_value           => l_segment
81303         , p_from_segment_code       => l_adr_value_segment_code
81304         , p_from_combination_id     => l_adr_value_combination_id
81305         , p_value_type_code         => l_adr_value_type_code
81306         , p_transaction_coa_id      => l_adr_transaction_coa_id
81307         , p_accounting_coa_id       => l_adr_accounting_coa_id
81308         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
81309         , p_flex_value_set_id       => l_adr_flex_value_set_id
81310         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
81311         , p_adr_type_code           => 'S'
81312         , p_component_type          => l_component_type
81313         , p_component_code          => l_component_code
81314         , p_component_type_code     => l_component_type_code
81315         , p_component_appl_id       => l_component_appl_id
81316         , p_amb_context_code        => l_amb_context_code
81317         , p_entity_code             => 'AP_INVOICES'
81318         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
81319         , p_side                    => 'NA'
81320         );
81321 
81322   END IF;
81323 
81324    --
81325    --
81326    END IF;
81327 
81328        --
81329        -- Update the line information that should be overwritten
81330        --
81331        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
81332                                          p_header_num   => 1);
81333        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
81334 
81335        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
81336 
81337        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
81338           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
81339        END IF;
81340 
81344       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
81341       --
81342       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
81343       --
81345           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
81346       ELSE
81347           ---------------------------------------------------------------------------------------------------
81348           -- 4262811a Switch Sign
81349           ---------------------------------------------------------------------------------------------------
81350           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
81351           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81352                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81353           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81354                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81355           -- 5132302
81356           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
81357                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81358 
81359       END IF;
81360 
81361       -- 4955764
81362       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81363       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
81364 
81365 
81366       XLA_AE_LINES_PKG.ValidateCurrentLine;
81367       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81368 
81369       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81370                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
81371                ,p_balance_type_code => l_balance_type_code);
81372 
81373    END IF;
81374 
81375    -----------------------------------------------------------------------------------------
81376    -- 4262811 Multiperiod Accounting
81377    -----------------------------------------------------------------------------------------
81378      -- No MPA option is assigned.
81379 
81380 
81381 END IF;
81382 END IF;
81383 --
81384 
81385 --
81386 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81387    trace
81388       (p_msg      => 'END of AcctLineType_144'
81389       ,p_level    => C_LEVEL_PROCEDURE
81390       ,p_module   => l_log_module);
81391 END IF;
81392 --
81393 EXCEPTION
81394   WHEN xla_exceptions_pkg.application_exception THEN
81395       RAISE;
81396   WHEN OTHERS THEN
81397        xla_exceptions_pkg.raise_message
81398            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_144');
81399 END AcctLineType_144;
81400 --
81401 
81402 ---------------------------------------
81403 --
81404 -- PRIVATE FUNCTION
81405 --         AcctLineType_145
81406 --
81407 ---------------------------------------
81408 PROCEDURE AcctLineType_145 (
81409   p_application_id        IN NUMBER
81410  ,p_event_id              IN NUMBER
81411  ,p_calculate_acctd_flag  IN VARCHAR2
81412  ,p_calculate_g_l_flag    IN VARCHAR2
81413  ,p_actual_flag           IN OUT VARCHAR2
81414  ,p_balance_type_code     OUT VARCHAR2
81415  ,p_gain_or_loss_ref      OUT VARCHAR2
81416  
81417 --When to Account for Payment Option
81418  , p_source_50            IN VARCHAR2
81419 --Accounting Reversal Indicator
81420  , p_source_52            IN VARCHAR2
81421 --Business Flow Accounts Payable Application Identifier
81422  , p_source_54            IN NUMBER
81423 --Distribution Link Type
81424  , p_source_60            IN VARCHAR2
81425 --Override Accounted Amount Indicator
81426  , p_source_64            IN VARCHAR2
81427  , p_source_64_meaning    IN VARCHAR2
81428 --Third Party Type
81429  , p_source_67            IN VARCHAR2
81430 --Invoice Distribution Tax Line Identifier
81431  , p_source_69            IN NUMBER
81432 --Invoice Distribution Summary Tax Line Identifier
81433  , p_source_70            IN NUMBER
81434 --Business Flow Invoice Distribution Type
81435  , p_source_73            IN VARCHAR2
81436 --Business Flow Invoice Entity Code
81437  , p_source_74            IN VARCHAR2
81438 --Invoice Distribution Tax Distribution Identifier from Tax
81439  , p_source_77            IN NUMBER
81440 --Prepayment Distribution Type
81441  , p_source_78            IN VARCHAR2
81442 --Recipient Invoice Distribution Type
81443  , p_source_79            IN VARCHAR2
81444  , p_source_79_meaning    IN VARCHAR2
81445 --Prepayment Application Distribution Identifier
81446  , p_source_82            IN NUMBER
81447 --Invoice Identifier
81448  , p_source_83            IN NUMBER
81449 --Upgrade Encumbrance Credit Account Class
81450  , p_source_88            IN VARCHAR2
81451 --Payables Encumbrance Upgrade Credit Account
81452  , p_source_89            IN NUMBER
81453 --Payables Encumbrance Upgrade Credit Amount
81454  , p_source_90            IN NUMBER
81455 --Invoice Currency Code
81456  , p_source_91            IN VARCHAR2
81457 --Payables Encumbrance Upgrade Credit Base Amount
81458  , p_source_92            IN NUMBER
81459 --Upgrade Encumbrance Debit Account Class
81460  , p_source_93            IN VARCHAR2
81461 --Payables Encumbrance Upgrade Debit Account
81465 --Payables Encumbrance Upgrade Debit Base Amount
81462  , p_source_94            IN NUMBER
81463 --Payables Encumbrance Upgrade Debit Amount
81464  , p_source_95            IN NUMBER
81466  , p_source_96            IN NUMBER
81467 --Payables Encumbrance Upgrade Option
81468  , p_source_97            IN VARCHAR2
81469 --Prepayment Distribution Amount
81470  , p_source_98            IN NUMBER
81471 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
81472  , p_source_100            IN NUMBER
81473 --Deferred Accounting End Date
81474  , p_source_101            IN DATE
81475 --Deferred Accounting Option
81476  , p_source_102            IN VARCHAR2
81477 --Deferred Accounting Start Date
81478  , p_source_103            IN DATE
81479 --Identifier of the Prepayment Application Reversed
81480  , p_source_106            IN NUMBER
81481 --Payables Upgrade Credit Encumbrance Type Identifier
81482  , p_source_107            IN NUMBER
81483 --Payables Upgrade Debit Encumbrance Type Identifier
81484  , p_source_108            IN NUMBER
81485 --Prepayment Application Recipient Invoice Type
81486  , p_source_148            IN VARCHAR2
81487  , p_source_148_meaning    IN VARCHAR2
81488 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
81489  , p_source_149            IN NUMBER
81490 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
81491  , p_source_150            IN NUMBER
81492 )
81493 IS
81494 
81495 l_component_type              VARCHAR2(80);
81496 l_component_code              VARCHAR2(30);
81497 l_component_type_code         VARCHAR2(1);
81498 l_component_appl_id           INTEGER;
81499 l_amb_context_code            VARCHAR2(30);
81500 l_entity_code                 VARCHAR2(30);
81501 l_event_class_code            VARCHAR2(30);
81502 l_ae_header_id                NUMBER;
81503 l_event_type_code             VARCHAR2(30);
81504 l_line_definition_code        VARCHAR2(30);
81505 l_line_definition_owner_code  VARCHAR2(1);
81506 --
81507 -- adr variables
81508 l_segment                     VARCHAR2(30);
81509 l_ccid                        NUMBER;
81510 l_adr_transaction_coa_id      NUMBER;
81511 l_adr_accounting_coa_id       NUMBER;
81512 l_adr_flexfield_segment_code  VARCHAR2(30);
81513 l_adr_flex_value_set_id       NUMBER;
81514 l_adr_value_type_code         VARCHAR2(30);
81515 l_adr_value_combination_id    NUMBER;
81516 l_adr_value_segment_code      VARCHAR2(30);
81517 
81518 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
81519 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
81520 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
81521 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
81522 
81523 -- 4262811 Variables ------------------------------------------------------------------------------------------
81524 l_entered_amt_idx             NUMBER;
81525 l_accted_amt_idx              NUMBER;
81526 l_acc_rev_flag                VARCHAR2(1);
81527 l_accrual_line_num            NUMBER;
81528 l_tmp_amt                     NUMBER;
81529 l_acc_rev_natural_side_code   VARCHAR2(1);
81530 
81531 l_num_entries                 NUMBER;
81532 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
81533 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
81534 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
81535 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
81536 l_recog_line_1                NUMBER;
81537 l_recog_line_2                NUMBER;
81538 
81539 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
81540 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
81541 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
81542 
81543 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
81544 
81545 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
81546 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
81547 
81548 ---------------------------------------------------------------------------------------------------------------
81549 
81550 
81551 --
81552 -- bulk performance
81553 --
81554 l_balance_type_code           VARCHAR2(1);
81555 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
81556 l_log_module                  VARCHAR2(240);
81557 
81558 --
81559 -- Upgrade strategy
81560 --
81561 l_actual_upg_option           VARCHAR2(1);
81562 l_enc_upg_option           VARCHAR2(1);
81563 
81564 --
81565 BEGIN
81566 --
81567 IF g_log_enabled THEN
81568       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_145';
81569 END IF;
81570 --
81571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81572 
81573       trace
81574          (p_msg      => 'BEGIN of AcctLineType_145'
81575          ,p_level    => C_LEVEL_PROCEDURE
81576          ,p_module   => l_log_module);
81577 
81578 END IF;
81579 --
81580 l_component_type             := 'AMB_JLT';
81581 l_component_code             := 'AP_RET_REL_CASH_CLR_XRATE';
81582 l_component_type_code        := 'S';
81583 l_component_appl_id          :=  200;
81584 l_amb_context_code           := 'DEFAULT';
81585 l_entity_code                := 'AP_INVOICES';
81586 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
81587 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
81588 l_line_definition_owner_code := 'S';
81592 l_segment                     := NULL;
81589 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
81590 --
81591 l_balance_type_code          := 'A';
81593 l_ccid                        := NULL;
81594 l_adr_transaction_coa_id      := NULL;
81595 l_adr_accounting_coa_id       := NULL;
81596 l_adr_flexfield_segment_code  := NULL;
81597 l_adr_flex_value_set_id       := NULL;
81598 l_adr_value_type_code         := NULL;
81599 l_adr_value_combination_id    := NULL;
81600 l_adr_value_segment_code      := NULL;
81601 
81602 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
81603 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
81604 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
81605 l_budgetary_control_flag     := 'N';
81606 
81607 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
81608 l_bflow_applied_to_amt       := NULL; -- 5132302
81609 l_entered_amt_idx            := NULL;          -- 4262811
81610 l_accted_amt_idx             := NULL;          -- 4262811
81611 l_acc_rev_flag               := NULL;          -- 4262811
81612 l_accrual_line_num           := NULL;          -- 4262811
81613 l_tmp_amt                    := NULL;          -- 4262811
81614 --
81615  
81616 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
81617     l_balance_type_code <> 'B' THEN
81618 IF NVL(p_source_50,'
81619 ') =  'CLEAR_CLEAR' AND 
81620 NVL(p_source_79,'
81621 ') =  'RETAINAGE' AND 
81622 NVL(p_source_148,'
81623 ') =  'RETAINAGE RELEASE' AND 
81624 (NVL(p_source_78,'
81625 ') =  'PREPAY APPL' OR 
81626 NVL(p_source_78,'
81627 ') =  'PREPAY APPL NONREC TAX' OR 
81628 NVL(p_source_78,'
81629 ') =  'PREPAY APPL REC TAX')
81630  THEN 
81631 
81632    --
81633    XLA_AE_LINES_PKG.SetNewLine;
81634 
81635    p_balance_type_code          := l_balance_type_code;
81636    -- set the flag so later we will know whether the gain loss line needs to be created
81637    
81638    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
81639      p_actual_flag :='A';
81640    END IF;
81641 
81642    --
81643    -- bulk performance
81644    --
81645    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
81646                                       p_header_num   => 0); -- 4262811
81647    --
81648    -- set accounting line options
81649    --
81650    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
81651            p_natural_side_code          => 'C'
81652          , p_gain_or_loss_flag          => 'N'
81653          , p_gl_transfer_mode_code      => 'S'
81654          , p_acct_entry_type_code       => 'A'
81655          , p_switch_side_flag           => 'Y'
81656          , p_merge_duplicate_code       => 'A'
81657          );
81658    --
81659    l_acc_rev_natural_side_code := 'D';  -- 4262811
81660    -- 
81661    --
81662    -- set accounting line type info
81663    --
81664    xla_ae_lines_pkg.SetAcctLineType
81665       (p_component_type             => l_component_type
81666       ,p_event_type_code            => l_event_type_code
81667       ,p_line_definition_owner_code => l_line_definition_owner_code
81668       ,p_line_definition_code       => l_line_definition_code
81669       ,p_accounting_line_code       => l_component_code
81670       ,p_accounting_line_type_code  => l_component_type_code
81671       ,p_accounting_line_appl_id    => l_component_appl_id
81672       ,p_amb_context_code           => l_amb_context_code
81673       ,p_entity_code                => l_entity_code
81674       ,p_event_class_code           => l_event_class_code);
81675    --
81676    -- set accounting class
81677    --
81678    xla_ae_lines_pkg.SetAcctClass(
81679            p_accounting_class_code  => 'RETAINAGE'
81680          , p_ae_header_id           => l_ae_header_id
81681          );
81682 
81683    --
81684    -- set rounding class
81685    --
81686    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
81687                       'RETAINAGE';
81688 
81689    --
81690    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
81691    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
81692    --
81693    -- bulk performance
81694    --
81695    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
81696 
81697    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
81698       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
81699 
81700    -- 4955764
81701    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81702       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
81703 
81704    -- 4458381 Public Sector Enh
81705    
81706    --
81707    -- set accounting attributes for the line type
81708    --
81709    l_entered_amt_idx := 25;
81710    l_accted_amt_idx  := 27;
81711    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
81712    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
81713    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
81714    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
81715    l_rec_acct_attrs.array_num_value(2)  := 
81716 xla_ae_sources_pkg.GetSystemSourceNum(
81720 );
81717    p_source_code           => 'XLA_EVENT_APPL_ID'
81718  , p_source_type_code      => 'Y'
81719  , p_source_application_id =>  602
81721    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
81722    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
81723    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
81724    l_rec_acct_attrs.array_char_value(4)  := 
81725 xla_ae_sources_pkg.GetSystemSourceChar(
81726    p_source_code           => 'XLA_ENTITY_CODE'
81727  , p_source_type_code      => 'Y'
81728  , p_source_application_id =>  602
81729 );
81730    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
81731    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
81732    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
81733    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
81734    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
81735    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
81736    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
81737    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
81738    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
81739    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
81740    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
81741    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_149);
81742    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
81743    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_150);
81744    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
81745    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
81746    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
81747    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
81748    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
81749    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
81750    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
81751    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
81752    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
81753    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
81754    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
81755    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
81756    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
81757    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
81758    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
81759    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
81760    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
81761    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
81762    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
81763    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
81764    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
81765    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
81766    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
81767    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
81768    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
81769    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
81770    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
81771    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
81772    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
81773    l_rec_acct_attrs.array_char_value(26)  := p_source_91;
81774    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
81775    l_rec_acct_attrs.array_num_value(27)  := p_source_100;
81776    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
81777    l_rec_acct_attrs.array_date_value(28)  := p_source_101;
81778    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
81779    l_rec_acct_attrs.array_char_value(29)  := p_source_102;
81780    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
81781    l_rec_acct_attrs.array_date_value(30)  := p_source_103;
81782    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
81783    l_rec_acct_attrs.array_char_value(31)  := p_source_64;
81784    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
81785    l_rec_acct_attrs.array_char_value(32)  := p_source_67;
81786    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
81787    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_106);
81788    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
81789    l_rec_acct_attrs.array_char_value(34)  := p_source_60;
81790    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
81791    l_rec_acct_attrs.array_num_value(35)  := p_source_69;
81792    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
81793    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
81794    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
81795    l_rec_acct_attrs.array_num_value(37)  := p_source_70;
81796    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
81797    l_rec_acct_attrs.array_num_value(38)  := p_source_107;
81798    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
81799    l_rec_acct_attrs.array_num_value(39)  := p_source_108;
81800 
81801    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
81802    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
81803 
81804    ---------------------------------------------------------------------------------------------------------------
81808 
81805    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
81806    ---------------------------------------------------------------------------------------------------------------
81807    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
81809    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81810    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81811 
81812    IF xla_accounting_cache_pkg.GetValueChar
81813          (p_source_code         => 'LEDGER_CATEGORY_CODE'
81814          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
81815    AND l_bflow_method_code = 'PRIOR_ENTRY'
81816 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
81817    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
81818          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
81819        )
81820    THEN
81821          xla_ae_lines_pkg.BflowUpgEntry
81822            (p_business_method_code    => l_bflow_method_code
81823            ,p_business_class_code     => l_bflow_class_code
81824            ,p_balance_type            => l_balance_type_code);
81825    ELSE
81826       NULL;
81827 XLA_AE_LINES_PKG.business_flow_validation(
81828                                 p_business_method_code     => l_bflow_method_code
81829                                ,p_business_class_code      => l_bflow_class_code
81830                                ,p_inherit_description_flag => l_inherit_desc_flag);
81831    END IF;
81832 
81833    --
81834    -- call analytical criteria
81835    --
81836    -- Inherited Analytical Criteria for business flow method of Prior Entry.
81837    --
81838    -- call description
81839    --
81840    -- No description or it is inherited.
81841    --
81842    -- call ADRs
81843    -- Bug 4922099
81844    --
81845    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81846         (NVL(l_actual_upg_option, 'N') = 'O') OR
81847         (NVL(l_enc_upg_option, 'N') = 'O')
81848       )
81849    THEN
81850    NULL;
81851    --
81852    --
81853    
81854    --
81855    --
81856    END IF;
81857    --
81858    -- Bug 4922099
81859    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
81860           (NVL(l_enc_upg_option, 'N') = 'O')
81861         ) AND
81862         (l_bflow_method_code = 'PRIOR_ENTRY')
81863       )
81864    THEN
81865       IF
81866       --
81867       1 = 1
81868       --
81869       THEN
81870       xla_accounting_err_pkg.build_message
81871                                     (p_appli_s_name            => 'XLA'
81872                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81873                                     ,p_token_1                 => 'LINE_NUMBER'
81874                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
81875                                     ,p_token_2                 => 'LINE_TYPE_NAME'
81876                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
81877                                                                              l_component_type
81878                                                                             ,l_component_code
81879                                                                             ,l_component_type_code
81880                                                                             ,l_component_appl_id
81881                                                                             ,l_amb_context_code
81882                                                                             ,l_entity_code
81883                                                                             ,l_event_class_code
81884                                                                            )
81885                                     ,p_token_3                 => 'OWNER'
81886                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
81887                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
81888                                                                           ,p_lookup_code    => l_component_type_code
81889                                                                          )
81890                                     ,p_token_4                 => 'PRODUCT_NAME'
81891                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
81892                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
81893                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
81894                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
81895                                     ,p_ae_header_id            =>  NULL
81896                                        );
81897 
81898         IF (C_LEVEL_ERROR>= g_log_level) THEN
81899                  trace
81900                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81901                       ,p_level    => C_LEVEL_ERROR
81902                       ,p_module   => l_log_module);
81903         END IF;
81904       END IF;
81905    END IF;
81906    --
81907    --
81911    -- Prior Entry.  Currently, the following code is always generated.
81908    ------------------------------------------------------------------------------------------------
81909    -- 4219869 Business Flow
81910    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
81912    ------------------------------------------------------------------------------------------------
81913    -- No ValidateCurrentLine for business flow method of Prior Entry
81914 
81915    ------------------------------------------------------------------------------------
81916    -- 4219869 Business Flow
81917    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
81918    ------------------------------------------------------------------------------------
81919    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81920 
81921    ----------------------------------------------------------------------------------
81922    -- 4219869 Business Flow
81923    -- Update journal entry status -- Need to generate this within IF <condition>
81924    ----------------------------------------------------------------------------------
81925    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81926          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
81927          ,p_balance_type_code => l_balance_type_code
81928          );
81929 
81930    -------------------------------------------------------------------------------------------
81931    -- 4262811 - Generate the Accrual Reversal lines
81932    -------------------------------------------------------------------------------------------
81933    BEGIN
81934       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
81935                               (g_array_event(p_event_id).array_value_num('header_index'));
81936       IF l_acc_rev_flag IS NULL THEN
81937          l_acc_rev_flag := 'N';
81938       END IF;
81939    EXCEPTION
81940       WHEN OTHERS THEN
81941          l_acc_rev_flag := 'N';
81942    END;
81943    --
81944    IF (l_acc_rev_flag = 'Y') THEN
81945 
81946        -- 4645092  ------------------------------------------------------------------------------
81947        -- To allow MPA report to determine if it should generate report process
81948        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
81949        ------------------------------------------------------------------------------------------
81950 
81951        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
81952        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
81953    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
81954    -- call ADRs
81955    -- Bug 4922099
81956    --
81957    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81958         (NVL(l_actual_upg_option, 'N') = 'O') OR
81959         (NVL(l_enc_upg_option, 'N') = 'O')
81960       )
81961    THEN
81962    NULL;
81963    --
81964    --
81965    
81966    --
81967    --
81968    END IF;
81969 
81970        --
81971        -- Update the line information that should be overwritten
81972        --
81973        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
81974                                          p_header_num   => 1);
81975        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
81976 
81977        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
81978 
81979        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
81980           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
81981        END IF;
81982 
81983       --
81984       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
81985       --
81986       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
81987           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
81988       ELSE
81989           ---------------------------------------------------------------------------------------------------
81990           -- 4262811a Switch Sign
81991           ---------------------------------------------------------------------------------------------------
81992           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
81993           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81994                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81995           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81996                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81997           -- 5132302
81998           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
81999                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82000 
82001       END IF;
82002 
82003       -- 4955764
82004       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82005       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
82006 
82007 
82008       XLA_AE_LINES_PKG.ValidateCurrentLine;
82009       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82010 
82014 
82011       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82012                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
82013                ,p_balance_type_code => l_balance_type_code);
82015    END IF;
82016 
82017    -----------------------------------------------------------------------------------------
82018    -- 4262811 Multiperiod Accounting
82019    -----------------------------------------------------------------------------------------
82020      -- No MPA option is assigned.
82021 
82022 
82023 END IF;
82024 END IF;
82025 --
82026 
82027 --
82028 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82029    trace
82030       (p_msg      => 'END of AcctLineType_145'
82031       ,p_level    => C_LEVEL_PROCEDURE
82032       ,p_module   => l_log_module);
82033 END IF;
82034 --
82035 EXCEPTION
82036   WHEN xla_exceptions_pkg.application_exception THEN
82037       RAISE;
82038   WHEN OTHERS THEN
82039        xla_exceptions_pkg.raise_message
82040            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_145');
82041 END AcctLineType_145;
82042 --
82043 
82044 ---------------------------------------
82045 --
82046 -- PRIVATE FUNCTION
82047 --         AcctLineType_146
82048 --
82049 ---------------------------------------
82050 PROCEDURE AcctLineType_146 (
82051   p_application_id        IN NUMBER
82052  ,p_event_id              IN NUMBER
82053  ,p_calculate_acctd_flag  IN VARCHAR2
82054  ,p_calculate_g_l_flag    IN VARCHAR2
82055  ,p_actual_flag           IN OUT VARCHAR2
82056  ,p_balance_type_code     OUT VARCHAR2
82057  ,p_gain_or_loss_ref      OUT VARCHAR2
82058  
82059 --When to Account for Payment Option
82060  , p_source_50            IN VARCHAR2
82061 --Accounting Reversal Indicator
82062  , p_source_52            IN VARCHAR2
82063 --Business Flow Accounts Payable Application Identifier
82064  , p_source_54            IN NUMBER
82065 --Distribution Link Type
82066  , p_source_60            IN VARCHAR2
82067 --Override Accounted Amount Indicator
82068  , p_source_64            IN VARCHAR2
82069  , p_source_64_meaning    IN VARCHAR2
82070 --Third Party Type
82071  , p_source_67            IN VARCHAR2
82072 --Invoice Distribution Tax Line Identifier
82073  , p_source_69            IN NUMBER
82074 --Invoice Distribution Summary Tax Line Identifier
82075  , p_source_70            IN NUMBER
82076 --Business Flow Invoice Distribution Type
82077  , p_source_73            IN VARCHAR2
82078 --Business Flow Invoice Entity Code
82079  , p_source_74            IN VARCHAR2
82080 --Invoice Distribution Tax Distribution Identifier from Tax
82081  , p_source_77            IN NUMBER
82082 --Prepayment Distribution Type
82083  , p_source_78            IN VARCHAR2
82084 --Recipient Invoice Distribution Type
82085  , p_source_79            IN VARCHAR2
82086  , p_source_79_meaning    IN VARCHAR2
82087 --Prepayment Application Distribution Identifier
82088  , p_source_82            IN NUMBER
82089 --Invoice Identifier
82090  , p_source_83            IN NUMBER
82091 --Upgrade Encumbrance Credit Account Class
82092  , p_source_88            IN VARCHAR2
82093 --Payables Encumbrance Upgrade Credit Account
82094  , p_source_89            IN NUMBER
82095 --Payables Encumbrance Upgrade Credit Amount
82096  , p_source_90            IN NUMBER
82097 --Invoice Currency Code
82098  , p_source_91            IN VARCHAR2
82099 --Payables Encumbrance Upgrade Credit Base Amount
82100  , p_source_92            IN NUMBER
82101 --Upgrade Encumbrance Debit Account Class
82102  , p_source_93            IN VARCHAR2
82103 --Payables Encumbrance Upgrade Debit Account
82104  , p_source_94            IN NUMBER
82105 --Payables Encumbrance Upgrade Debit Amount
82106  , p_source_95            IN NUMBER
82107 --Payables Encumbrance Upgrade Debit Base Amount
82108  , p_source_96            IN NUMBER
82109 --Payables Encumbrance Upgrade Option
82110  , p_source_97            IN VARCHAR2
82111 --Prepayment Distribution Amount
82112  , p_source_98            IN NUMBER
82113 --Deferred Accounting End Date
82114  , p_source_101            IN DATE
82115 --Deferred Accounting Option
82116  , p_source_102            IN VARCHAR2
82117 --Deferred Accounting Start Date
82118  , p_source_103            IN DATE
82119 --Identifier of the Prepayment Application Reversed
82120  , p_source_106            IN NUMBER
82121 --Payables Upgrade Credit Encumbrance Type Identifier
82122  , p_source_107            IN NUMBER
82123 --Payables Upgrade Debit Encumbrance Type Identifier
82124  , p_source_108            IN NUMBER
82125 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
82126  , p_source_110            IN NUMBER
82127 --Prepayment Application Recipient Invoice Type
82128  , p_source_148            IN VARCHAR2
82129  , p_source_148_meaning    IN VARCHAR2
82130 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
82131  , p_source_149            IN NUMBER
82132 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
82133  , p_source_150            IN NUMBER
82134 )
82135 IS
82136 
82137 l_component_type              VARCHAR2(80);
82138 l_component_code              VARCHAR2(30);
82139 l_component_type_code         VARCHAR2(1);
82140 l_component_appl_id           INTEGER;
82141 l_amb_context_code            VARCHAR2(30);
82142 l_entity_code                 VARCHAR2(30);
82143 l_event_class_code            VARCHAR2(30);
82147 l_line_definition_owner_code  VARCHAR2(1);
82144 l_ae_header_id                NUMBER;
82145 l_event_type_code             VARCHAR2(30);
82146 l_line_definition_code        VARCHAR2(30);
82148 --
82149 -- adr variables
82150 l_segment                     VARCHAR2(30);
82151 l_ccid                        NUMBER;
82152 l_adr_transaction_coa_id      NUMBER;
82153 l_adr_accounting_coa_id       NUMBER;
82154 l_adr_flexfield_segment_code  VARCHAR2(30);
82155 l_adr_flex_value_set_id       NUMBER;
82156 l_adr_value_type_code         VARCHAR2(30);
82157 l_adr_value_combination_id    NUMBER;
82158 l_adr_value_segment_code      VARCHAR2(30);
82159 
82160 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
82161 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
82162 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
82163 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
82164 
82165 -- 4262811 Variables ------------------------------------------------------------------------------------------
82166 l_entered_amt_idx             NUMBER;
82167 l_accted_amt_idx              NUMBER;
82168 l_acc_rev_flag                VARCHAR2(1);
82169 l_accrual_line_num            NUMBER;
82170 l_tmp_amt                     NUMBER;
82171 l_acc_rev_natural_side_code   VARCHAR2(1);
82172 
82173 l_num_entries                 NUMBER;
82174 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
82175 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
82176 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
82177 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
82178 l_recog_line_1                NUMBER;
82179 l_recog_line_2                NUMBER;
82180 
82181 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
82182 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
82183 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
82184 
82185 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
82186 
82187 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
82188 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
82189 
82190 ---------------------------------------------------------------------------------------------------------------
82191 
82192 
82193 --
82194 -- bulk performance
82195 --
82196 l_balance_type_code           VARCHAR2(1);
82197 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
82198 l_log_module                  VARCHAR2(240);
82199 
82200 --
82201 -- Upgrade strategy
82202 --
82203 l_actual_upg_option           VARCHAR2(1);
82204 l_enc_upg_option           VARCHAR2(1);
82205 
82206 --
82207 BEGIN
82208 --
82209 IF g_log_enabled THEN
82210       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_146';
82211 END IF;
82212 --
82213 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82214 
82215       trace
82216          (p_msg      => 'BEGIN of AcctLineType_146'
82217          ,p_level    => C_LEVEL_PROCEDURE
82218          ,p_module   => l_log_module);
82219 
82220 END IF;
82221 --
82222 l_component_type             := 'AMB_JLT';
82223 l_component_code             := 'AP_RET_REL_CASH_PAY_XRATE';
82224 l_component_type_code        := 'S';
82225 l_component_appl_id          :=  200;
82226 l_amb_context_code           := 'DEFAULT';
82227 l_entity_code                := 'AP_INVOICES';
82228 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
82229 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
82230 l_line_definition_owner_code := 'S';
82231 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
82232 --
82233 l_balance_type_code          := 'A';
82234 l_segment                     := NULL;
82235 l_ccid                        := NULL;
82236 l_adr_transaction_coa_id      := NULL;
82237 l_adr_accounting_coa_id       := NULL;
82238 l_adr_flexfield_segment_code  := NULL;
82239 l_adr_flex_value_set_id       := NULL;
82240 l_adr_value_type_code         := NULL;
82241 l_adr_value_combination_id    := NULL;
82242 l_adr_value_segment_code      := NULL;
82243 
82244 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
82245 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
82246 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
82247 l_budgetary_control_flag     := 'N';
82248 
82249 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
82250 l_bflow_applied_to_amt       := NULL; -- 5132302
82251 l_entered_amt_idx            := NULL;          -- 4262811
82252 l_accted_amt_idx             := NULL;          -- 4262811
82253 l_acc_rev_flag               := NULL;          -- 4262811
82254 l_accrual_line_num           := NULL;          -- 4262811
82255 l_tmp_amt                    := NULL;          -- 4262811
82256 --
82257  
82258 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
82259     l_balance_type_code <> 'B' THEN
82260 IF NVL(p_source_50,'
82261 ') <>  'CLEAR_CLEAR' AND 
82262 NVL(p_source_79,'
82263 ') =  'RETAINAGE' AND 
82264 NVL(p_source_148,'
82265 ') =  'RETAINAGE RELEASE' AND 
82266 (NVL(p_source_78,'
82267 ') =  'PREPAY APPL' OR 
82268 NVL(p_source_78,'
82269 ') =  'PREPAY APPL NONREC TAX' OR 
82270 NVL(p_source_78,'
82271 ') =  'PREPAY APPL REC TAX')
82272  THEN 
82273 
82277    p_balance_type_code          := l_balance_type_code;
82274    --
82275    XLA_AE_LINES_PKG.SetNewLine;
82276 
82278    -- set the flag so later we will know whether the gain loss line needs to be created
82279    
82280    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
82281      p_actual_flag :='A';
82282    END IF;
82283 
82284    --
82285    -- bulk performance
82286    --
82287    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
82288                                       p_header_num   => 0); -- 4262811
82289    --
82290    -- set accounting line options
82291    --
82292    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
82293            p_natural_side_code          => 'C'
82294          , p_gain_or_loss_flag          => 'N'
82295          , p_gl_transfer_mode_code      => 'S'
82296          , p_acct_entry_type_code       => 'A'
82297          , p_switch_side_flag           => 'Y'
82298          , p_merge_duplicate_code       => 'A'
82299          );
82300    --
82301    l_acc_rev_natural_side_code := 'D';  -- 4262811
82302    -- 
82303    --
82304    -- set accounting line type info
82305    --
82306    xla_ae_lines_pkg.SetAcctLineType
82307       (p_component_type             => l_component_type
82308       ,p_event_type_code            => l_event_type_code
82309       ,p_line_definition_owner_code => l_line_definition_owner_code
82310       ,p_line_definition_code       => l_line_definition_code
82311       ,p_accounting_line_code       => l_component_code
82312       ,p_accounting_line_type_code  => l_component_type_code
82313       ,p_accounting_line_appl_id    => l_component_appl_id
82314       ,p_amb_context_code           => l_amb_context_code
82315       ,p_entity_code                => l_entity_code
82316       ,p_event_class_code           => l_event_class_code);
82317    --
82318    -- set accounting class
82319    --
82320    xla_ae_lines_pkg.SetAcctClass(
82321            p_accounting_class_code  => 'RETAINAGE'
82322          , p_ae_header_id           => l_ae_header_id
82323          );
82324 
82325    --
82326    -- set rounding class
82327    --
82328    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
82329                       'RETAINAGE';
82330 
82331    --
82332    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
82333    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
82334    --
82335    -- bulk performance
82336    --
82337    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
82338 
82339    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
82340       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
82341 
82342    -- 4955764
82343    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82344       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
82345 
82346    -- 4458381 Public Sector Enh
82347    
82348    --
82349    -- set accounting attributes for the line type
82350    --
82351    l_entered_amt_idx := 25;
82352    l_accted_amt_idx  := 27;
82353    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
82354    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82355    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
82356    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
82357    l_rec_acct_attrs.array_num_value(2)  := 
82358 xla_ae_sources_pkg.GetSystemSourceNum(
82359    p_source_code           => 'XLA_EVENT_APPL_ID'
82360  , p_source_type_code      => 'Y'
82361  , p_source_application_id =>  602
82362 );
82363    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
82364    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
82365    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
82366    l_rec_acct_attrs.array_char_value(4)  := 
82367 xla_ae_sources_pkg.GetSystemSourceChar(
82368    p_source_code           => 'XLA_ENTITY_CODE'
82369  , p_source_type_code      => 'Y'
82370  , p_source_application_id =>  602
82371 );
82372    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
82373    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
82374    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
82375    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
82376    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
82377    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
82378    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82379    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
82380    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
82381    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
82382    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
82383    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_149);
82384    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82385    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_150);
82386    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
82387    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
82388    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
82389    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
82393    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
82390    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
82391    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
82392    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
82394    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
82395    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
82396    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
82397    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
82398    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
82399    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
82400    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
82401    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
82402    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
82403    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
82404    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
82405    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
82406    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
82407    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
82408    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
82409    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
82410    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
82411    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
82412    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
82413    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
82414    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
82415    l_rec_acct_attrs.array_char_value(26)  := p_source_91;
82416    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
82417    l_rec_acct_attrs.array_num_value(27)  := p_source_110;
82418    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
82419    l_rec_acct_attrs.array_date_value(28)  := p_source_101;
82420    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
82421    l_rec_acct_attrs.array_char_value(29)  := p_source_102;
82422    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
82423    l_rec_acct_attrs.array_date_value(30)  := p_source_103;
82424    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
82425    l_rec_acct_attrs.array_char_value(31)  := p_source_64;
82426    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
82427    l_rec_acct_attrs.array_char_value(32)  := p_source_67;
82428    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
82429    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_106);
82430    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
82431    l_rec_acct_attrs.array_char_value(34)  := p_source_60;
82432    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
82433    l_rec_acct_attrs.array_num_value(35)  := p_source_69;
82434    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
82435    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
82436    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
82437    l_rec_acct_attrs.array_num_value(37)  := p_source_70;
82438    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
82439    l_rec_acct_attrs.array_num_value(38)  := p_source_107;
82440    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
82441    l_rec_acct_attrs.array_num_value(39)  := p_source_108;
82442 
82443    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82444    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82445 
82446    ---------------------------------------------------------------------------------------------------------------
82447    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
82448    ---------------------------------------------------------------------------------------------------------------
82449    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
82450 
82451    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82452    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82453 
82454    IF xla_accounting_cache_pkg.GetValueChar
82455          (p_source_code         => 'LEDGER_CATEGORY_CODE'
82456          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
82457    AND l_bflow_method_code = 'PRIOR_ENTRY'
82458 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
82459    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
82460          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
82461        )
82462    THEN
82463          xla_ae_lines_pkg.BflowUpgEntry
82464            (p_business_method_code    => l_bflow_method_code
82465            ,p_business_class_code     => l_bflow_class_code
82466            ,p_balance_type            => l_balance_type_code);
82467    ELSE
82468       NULL;
82469 XLA_AE_LINES_PKG.business_flow_validation(
82470                                 p_business_method_code     => l_bflow_method_code
82471                                ,p_business_class_code      => l_bflow_class_code
82472                                ,p_inherit_description_flag => l_inherit_desc_flag);
82473    END IF;
82474 
82475    --
82476    -- call analytical criteria
82477    --
82481    --
82478    -- Inherited Analytical Criteria for business flow method of Prior Entry.
82479    --
82480    -- call description
82482    -- No description or it is inherited.
82483    --
82484    -- call ADRs
82485    -- Bug 4922099
82486    --
82487    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82488         (NVL(l_actual_upg_option, 'N') = 'O') OR
82489         (NVL(l_enc_upg_option, 'N') = 'O')
82490       )
82491    THEN
82492    NULL;
82493    --
82494    --
82495    
82496    --
82497    --
82498    END IF;
82499    --
82500    -- Bug 4922099
82501    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
82502           (NVL(l_enc_upg_option, 'N') = 'O')
82503         ) AND
82504         (l_bflow_method_code = 'PRIOR_ENTRY')
82505       )
82506    THEN
82507       IF
82508       --
82509       1 = 1
82510       --
82511       THEN
82512       xla_accounting_err_pkg.build_message
82513                                     (p_appli_s_name            => 'XLA'
82514                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82515                                     ,p_token_1                 => 'LINE_NUMBER'
82516                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
82517                                     ,p_token_2                 => 'LINE_TYPE_NAME'
82518                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
82519                                                                              l_component_type
82520                                                                             ,l_component_code
82521                                                                             ,l_component_type_code
82522                                                                             ,l_component_appl_id
82523                                                                             ,l_amb_context_code
82524                                                                             ,l_entity_code
82525                                                                             ,l_event_class_code
82526                                                                            )
82527                                     ,p_token_3                 => 'OWNER'
82528                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
82529                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
82530                                                                           ,p_lookup_code    => l_component_type_code
82531                                                                          )
82532                                     ,p_token_4                 => 'PRODUCT_NAME'
82533                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
82534                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
82535                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
82536                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
82537                                     ,p_ae_header_id            =>  NULL
82538                                        );
82539 
82540         IF (C_LEVEL_ERROR>= g_log_level) THEN
82541                  trace
82542                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82543                       ,p_level    => C_LEVEL_ERROR
82544                       ,p_module   => l_log_module);
82545         END IF;
82546       END IF;
82547    END IF;
82548    --
82549    --
82550    ------------------------------------------------------------------------------------------------
82551    -- 4219869 Business Flow
82552    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
82553    -- Prior Entry.  Currently, the following code is always generated.
82554    ------------------------------------------------------------------------------------------------
82555    -- No ValidateCurrentLine for business flow method of Prior Entry
82556 
82557    ------------------------------------------------------------------------------------
82558    -- 4219869 Business Flow
82559    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
82560    ------------------------------------------------------------------------------------
82561    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82562 
82563    ----------------------------------------------------------------------------------
82564    -- 4219869 Business Flow
82565    -- Update journal entry status -- Need to generate this within IF <condition>
82566    ----------------------------------------------------------------------------------
82567    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82568          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
82569          ,p_balance_type_code => l_balance_type_code
82570          );
82571 
82572    -------------------------------------------------------------------------------------------
82573    -- 4262811 - Generate the Accrual Reversal lines
82574    -------------------------------------------------------------------------------------------
82575    BEGIN
82576       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
82580       END IF;
82577                               (g_array_event(p_event_id).array_value_num('header_index'));
82578       IF l_acc_rev_flag IS NULL THEN
82579          l_acc_rev_flag := 'N';
82581    EXCEPTION
82582       WHEN OTHERS THEN
82583          l_acc_rev_flag := 'N';
82584    END;
82585    --
82586    IF (l_acc_rev_flag = 'Y') THEN
82587 
82588        -- 4645092  ------------------------------------------------------------------------------
82589        -- To allow MPA report to determine if it should generate report process
82590        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
82591        ------------------------------------------------------------------------------------------
82592 
82593        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
82594        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
82595    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
82596    -- call ADRs
82597    -- Bug 4922099
82598    --
82599    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82600         (NVL(l_actual_upg_option, 'N') = 'O') OR
82601         (NVL(l_enc_upg_option, 'N') = 'O')
82602       )
82603    THEN
82604    NULL;
82605    --
82606    --
82607    
82608    --
82609    --
82610    END IF;
82611 
82612        --
82613        -- Update the line information that should be overwritten
82614        --
82615        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
82616                                          p_header_num   => 1);
82617        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
82618 
82619        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
82620 
82621        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
82622           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
82623        END IF;
82624 
82625       --
82626       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
82627       --
82628       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
82629           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
82630       ELSE
82631           ---------------------------------------------------------------------------------------------------
82632           -- 4262811a Switch Sign
82633           ---------------------------------------------------------------------------------------------------
82634           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
82635           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82636                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82637           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82638                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82639           -- 5132302
82640           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
82641                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82642 
82643       END IF;
82644 
82645       -- 4955764
82646       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82647       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
82648 
82649 
82650       XLA_AE_LINES_PKG.ValidateCurrentLine;
82651       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82652 
82653       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82654                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
82655                ,p_balance_type_code => l_balance_type_code);
82656 
82657    END IF;
82658 
82659    -----------------------------------------------------------------------------------------
82660    -- 4262811 Multiperiod Accounting
82661    -----------------------------------------------------------------------------------------
82662      -- No MPA option is assigned.
82663 
82664 
82665 END IF;
82666 END IF;
82667 --
82668 
82669 --
82670 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82671    trace
82672       (p_msg      => 'END of AcctLineType_146'
82673       ,p_level    => C_LEVEL_PROCEDURE
82674       ,p_module   => l_log_module);
82675 END IF;
82676 --
82677 EXCEPTION
82678   WHEN xla_exceptions_pkg.application_exception THEN
82679       RAISE;
82680   WHEN OTHERS THEN
82681        xla_exceptions_pkg.raise_message
82682            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_146');
82683 END AcctLineType_146;
82684 --
82685 
82686 ---------------------------------------
82687 --
82688 -- PRIVATE FUNCTION
82689 --         AcctLineType_147
82690 --
82691 ---------------------------------------
82692 PROCEDURE AcctLineType_147 (
82693   p_application_id        IN NUMBER
82694  ,p_event_id              IN NUMBER
82695  ,p_calculate_acctd_flag  IN VARCHAR2
82696  ,p_calculate_g_l_flag    IN VARCHAR2
82697  ,p_actual_flag           IN OUT VARCHAR2
82698  ,p_balance_type_code     OUT VARCHAR2
82699  ,p_gain_or_loss_ref      OUT VARCHAR2
82700  
82701 --Payment Currency Code
82705 --Invoice Distribution Type
82702  , p_source_12            IN VARCHAR2
82703 --Payment Distribution (Cleared Rate) Ledger Amount
82704  , p_source_22            IN NUMBER
82706  , p_source_32            IN VARCHAR2
82707  , p_source_32_meaning    IN VARCHAR2
82708 --When to Account for Payment Option
82709  , p_source_50            IN VARCHAR2
82710 --Accounting Reversal Indicator
82711  , p_source_52            IN VARCHAR2
82712 --Payment Distribution Amount
82713  , p_source_53            IN NUMBER
82714 --Business Flow Accounts Payable Application Identifier
82715  , p_source_54            IN NUMBER
82716 --Business Flow Payment Distribution Type
82717  , p_source_55            IN VARCHAR2
82718 --Business Flow Payment Entity Code
82719  , p_source_56            IN VARCHAR2
82720 --Payment Distribution Identifier
82721  , p_source_59            IN NUMBER
82722 --Distribution Link Type
82723  , p_source_60            IN VARCHAR2
82724 --Override Accounted Amount Indicator
82725  , p_source_64            IN VARCHAR2
82726  , p_source_64_meaning    IN VARCHAR2
82727 --Third Party Type
82728  , p_source_67            IN VARCHAR2
82729 --Payment Distribution Reversed Identifier
82730  , p_source_68            IN NUMBER
82731 --Invoice Distribution Tax Line Identifier
82732  , p_source_69            IN NUMBER
82733 --Invoice Distribution Summary Tax Line Identifier
82734  , p_source_70            IN NUMBER
82735 --Invoice Type Paid
82736  , p_source_112            IN VARCHAR2
82737  , p_source_112_meaning    IN VARCHAR2
82738 --Business Flow Retained Invoice Distribution Associated with Payment Clearing
82739  , p_source_151            IN NUMBER
82740 --Business Flow Retained Invoice Associated with Payment Clearing
82741  , p_source_152            IN NUMBER
82742 )
82743 IS
82744 
82745 l_component_type              VARCHAR2(80);
82746 l_component_code              VARCHAR2(30);
82747 l_component_type_code         VARCHAR2(1);
82748 l_component_appl_id           INTEGER;
82749 l_amb_context_code            VARCHAR2(30);
82750 l_entity_code                 VARCHAR2(30);
82751 l_event_class_code            VARCHAR2(30);
82752 l_ae_header_id                NUMBER;
82753 l_event_type_code             VARCHAR2(30);
82754 l_line_definition_code        VARCHAR2(30);
82755 l_line_definition_owner_code  VARCHAR2(1);
82756 --
82757 -- adr variables
82758 l_segment                     VARCHAR2(30);
82759 l_ccid                        NUMBER;
82760 l_adr_transaction_coa_id      NUMBER;
82761 l_adr_accounting_coa_id       NUMBER;
82762 l_adr_flexfield_segment_code  VARCHAR2(30);
82763 l_adr_flex_value_set_id       NUMBER;
82764 l_adr_value_type_code         VARCHAR2(30);
82765 l_adr_value_combination_id    NUMBER;
82766 l_adr_value_segment_code      VARCHAR2(30);
82767 
82768 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
82769 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
82770 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
82771 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
82772 
82773 -- 4262811 Variables ------------------------------------------------------------------------------------------
82774 l_entered_amt_idx             NUMBER;
82775 l_accted_amt_idx              NUMBER;
82776 l_acc_rev_flag                VARCHAR2(1);
82777 l_accrual_line_num            NUMBER;
82778 l_tmp_amt                     NUMBER;
82779 l_acc_rev_natural_side_code   VARCHAR2(1);
82780 
82781 l_num_entries                 NUMBER;
82782 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
82783 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
82784 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
82785 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
82786 l_recog_line_1                NUMBER;
82787 l_recog_line_2                NUMBER;
82788 
82789 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
82790 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
82791 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
82792 
82793 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
82794 
82795 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
82796 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
82797 
82798 ---------------------------------------------------------------------------------------------------------------
82799 
82800 
82801 --
82802 -- bulk performance
82803 --
82804 l_balance_type_code           VARCHAR2(1);
82805 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
82806 l_log_module                  VARCHAR2(240);
82807 
82808 --
82809 -- Upgrade strategy
82810 --
82811 l_actual_upg_option           VARCHAR2(1);
82812 l_enc_upg_option           VARCHAR2(1);
82813 
82814 --
82815 BEGIN
82816 --
82817 IF g_log_enabled THEN
82818       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_147';
82819 END IF;
82820 --
82821 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82822 
82823       trace
82824          (p_msg      => 'BEGIN of AcctLineType_147'
82825          ,p_level    => C_LEVEL_PROCEDURE
82826          ,p_module   => l_log_module);
82827 
82828 END IF;
82829 --
82830 l_component_type             := 'AMB_JLT';
82831 l_component_code             := 'AP_RET_REL_CLR_CASH';
82832 l_component_type_code        := 'S';
82836 l_event_class_code           := 'RECONCILED PAYMENTS';
82833 l_component_appl_id          :=  200;
82834 l_amb_context_code           := 'DEFAULT';
82835 l_entity_code                := 'AP_PAYMENTS';
82837 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
82838 l_line_definition_owner_code := 'S';
82839 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
82840 --
82841 l_balance_type_code          := 'A';
82842 l_segment                     := NULL;
82843 l_ccid                        := NULL;
82844 l_adr_transaction_coa_id      := NULL;
82845 l_adr_accounting_coa_id       := NULL;
82846 l_adr_flexfield_segment_code  := NULL;
82847 l_adr_flex_value_set_id       := NULL;
82848 l_adr_value_type_code         := NULL;
82849 l_adr_value_combination_id    := NULL;
82850 l_adr_value_segment_code      := NULL;
82851 
82852 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
82853 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
82854 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
82855 l_budgetary_control_flag     := 'N';
82856 
82857 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
82858 l_bflow_applied_to_amt       := NULL; -- 5132302
82859 l_entered_amt_idx            := NULL;          -- 4262811
82860 l_accted_amt_idx             := NULL;          -- 4262811
82861 l_acc_rev_flag               := NULL;          -- 4262811
82862 l_accrual_line_num           := NULL;          -- 4262811
82863 l_tmp_amt                    := NULL;          -- 4262811
82864 --
82865  
82866 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
82867     l_balance_type_code <> 'B' THEN
82868 IF NVL(p_source_50,'
82869 ') =  'CLEAR_CLEAR' AND 
82870 NVL(p_source_112,'
82871 ') =  'RETAINAGE RELEASE' AND 
82872 NVL(p_source_32,'
82873 ') =  'RETAINAGE'
82874  THEN 
82875 
82876    --
82877    XLA_AE_LINES_PKG.SetNewLine;
82878 
82879    p_balance_type_code          := l_balance_type_code;
82880    -- set the flag so later we will know whether the gain loss line needs to be created
82881    
82882    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
82883      p_actual_flag :='A';
82884    END IF;
82885 
82886    --
82887    -- bulk performance
82888    --
82889    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
82890                                       p_header_num   => 0); -- 4262811
82891    --
82892    -- set accounting line options
82893    --
82894    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
82895            p_natural_side_code          => 'D'
82896          , p_gain_or_loss_flag          => 'N'
82897          , p_gl_transfer_mode_code      => 'S'
82898          , p_acct_entry_type_code       => 'A'
82899          , p_switch_side_flag           => 'Y'
82900          , p_merge_duplicate_code       => 'A'
82901          );
82902    --
82903    l_acc_rev_natural_side_code := 'C';  -- 4262811
82904    -- 
82905    --
82906    -- set accounting line type info
82907    --
82908    xla_ae_lines_pkg.SetAcctLineType
82909       (p_component_type             => l_component_type
82910       ,p_event_type_code            => l_event_type_code
82911       ,p_line_definition_owner_code => l_line_definition_owner_code
82912       ,p_line_definition_code       => l_line_definition_code
82913       ,p_accounting_line_code       => l_component_code
82914       ,p_accounting_line_type_code  => l_component_type_code
82915       ,p_accounting_line_appl_id    => l_component_appl_id
82916       ,p_amb_context_code           => l_amb_context_code
82917       ,p_entity_code                => l_entity_code
82918       ,p_event_class_code           => l_event_class_code);
82919    --
82920    -- set accounting class
82921    --
82922    xla_ae_lines_pkg.SetAcctClass(
82923            p_accounting_class_code  => 'RETAINAGE'
82924          , p_ae_header_id           => l_ae_header_id
82925          );
82926 
82927    --
82928    -- set rounding class
82929    --
82930    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
82931                       'RETAINAGE';
82932 
82933    --
82934    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
82935    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
82936    --
82937    -- bulk performance
82938    --
82939    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
82940 
82941    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
82942       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
82943 
82944    -- 4955764
82945    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82946       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
82947 
82948    -- 4458381 Public Sector Enh
82949    
82950    --
82951    -- set accounting attributes for the line type
82952    --
82953    l_entered_amt_idx := 10;
82954    l_accted_amt_idx  := 12;
82955    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
82956    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82957    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
82958    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
82959    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
82963    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
82960    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
82961    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
82962    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82964    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
82965    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
82966    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
82967    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_151);
82968    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82969    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_152);
82970    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
82971    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
82972    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
82973    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
82974    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
82975    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
82976    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
82977    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
82978    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
82979    l_rec_acct_attrs.array_num_value(12)  := p_source_22;
82980    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
82981    l_rec_acct_attrs.array_char_value(13)  := p_source_64;
82982    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
82983    l_rec_acct_attrs.array_char_value(14)  := p_source_67;
82984    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
82985    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_68);
82986    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
82987    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
82988    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
82989    l_rec_acct_attrs.array_num_value(17)  := p_source_69;
82990    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
82991    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
82992    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
82993    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
82994 
82995    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82996    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82997 
82998    ---------------------------------------------------------------------------------------------------------------
82999    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
83000    ---------------------------------------------------------------------------------------------------------------
83001    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
83002 
83003    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83004    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83005 
83006    IF xla_accounting_cache_pkg.GetValueChar
83007          (p_source_code         => 'LEDGER_CATEGORY_CODE'
83008          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
83009    AND l_bflow_method_code = 'PRIOR_ENTRY'
83010 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
83011    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
83012          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
83013        )
83014    THEN
83015          xla_ae_lines_pkg.BflowUpgEntry
83016            (p_business_method_code    => l_bflow_method_code
83017            ,p_business_class_code     => l_bflow_class_code
83018            ,p_balance_type            => l_balance_type_code);
83019    ELSE
83020       NULL;
83021 XLA_AE_LINES_PKG.business_flow_validation(
83022                                 p_business_method_code     => l_bflow_method_code
83023                                ,p_business_class_code      => l_bflow_class_code
83024                                ,p_inherit_description_flag => l_inherit_desc_flag);
83025    END IF;
83026 
83027    --
83028    -- call analytical criteria
83029    --
83030    -- Inherited Analytical Criteria for business flow method of Prior Entry.
83031    --
83032    -- call description
83033    --
83034    -- No description or it is inherited.
83035    --
83036    -- call ADRs
83037    -- Bug 4922099
83038    --
83039    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83040         (NVL(l_actual_upg_option, 'N') = 'O') OR
83041         (NVL(l_enc_upg_option, 'N') = 'O')
83042       )
83043    THEN
83044    NULL;
83045    --
83046    --
83047    
83048    --
83049    --
83050    END IF;
83051    --
83052    -- Bug 4922099
83053    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
83054           (NVL(l_enc_upg_option, 'N') = 'O')
83055         ) AND
83056         (l_bflow_method_code = 'PRIOR_ENTRY')
83057       )
83058    THEN
83059       IF
83060       --
83061       1 = 1
83062       --
83063       THEN
83064       xla_accounting_err_pkg.build_message
83065                                     (p_appli_s_name            => 'XLA'
83066                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83067                                     ,p_token_1                 => 'LINE_NUMBER'
83071                                                                              l_component_type
83068                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
83069                                     ,p_token_2                 => 'LINE_TYPE_NAME'
83070                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
83072                                                                             ,l_component_code
83073                                                                             ,l_component_type_code
83074                                                                             ,l_component_appl_id
83075                                                                             ,l_amb_context_code
83076                                                                             ,l_entity_code
83077                                                                             ,l_event_class_code
83078                                                                            )
83079                                     ,p_token_3                 => 'OWNER'
83080                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
83081                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
83082                                                                           ,p_lookup_code    => l_component_type_code
83083                                                                          )
83084                                     ,p_token_4                 => 'PRODUCT_NAME'
83085                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
83086                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
83087                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
83088                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
83089                                     ,p_ae_header_id            =>  NULL
83090                                        );
83091 
83092         IF (C_LEVEL_ERROR>= g_log_level) THEN
83093                  trace
83094                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83095                       ,p_level    => C_LEVEL_ERROR
83096                       ,p_module   => l_log_module);
83097         END IF;
83098       END IF;
83099    END IF;
83100    --
83101    --
83102    ------------------------------------------------------------------------------------------------
83103    -- 4219869 Business Flow
83104    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
83105    -- Prior Entry.  Currently, the following code is always generated.
83106    ------------------------------------------------------------------------------------------------
83107    -- No ValidateCurrentLine for business flow method of Prior Entry
83108 
83109    ------------------------------------------------------------------------------------
83110    -- 4219869 Business Flow
83111    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
83112    ------------------------------------------------------------------------------------
83113    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83114 
83115    ----------------------------------------------------------------------------------
83116    -- 4219869 Business Flow
83117    -- Update journal entry status -- Need to generate this within IF <condition>
83118    ----------------------------------------------------------------------------------
83119    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83120          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
83121          ,p_balance_type_code => l_balance_type_code
83122          );
83123 
83124    -------------------------------------------------------------------------------------------
83125    -- 4262811 - Generate the Accrual Reversal lines
83126    -------------------------------------------------------------------------------------------
83127    BEGIN
83128       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
83129                               (g_array_event(p_event_id).array_value_num('header_index'));
83130       IF l_acc_rev_flag IS NULL THEN
83131          l_acc_rev_flag := 'N';
83132       END IF;
83133    EXCEPTION
83134       WHEN OTHERS THEN
83135          l_acc_rev_flag := 'N';
83136    END;
83137    --
83138    IF (l_acc_rev_flag = 'Y') THEN
83139 
83140        -- 4645092  ------------------------------------------------------------------------------
83141        -- To allow MPA report to determine if it should generate report process
83142        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
83143        ------------------------------------------------------------------------------------------
83144 
83145        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
83146        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
83147    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
83148    -- call ADRs
83149    -- Bug 4922099
83150    --
83151    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83152         (NVL(l_actual_upg_option, 'N') = 'O') OR
83153         (NVL(l_enc_upg_option, 'N') = 'O')
83154       )
83155    THEN
83156    NULL;
83157    --
83158    --
83159    
83160    --
83161    --
83162    END IF;
83166        --
83163 
83164        --
83165        -- Update the line information that should be overwritten
83167        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
83168                                          p_header_num   => 1);
83169        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
83170 
83171        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
83172 
83173        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
83174           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
83175        END IF;
83176 
83177       --
83178       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
83179       --
83180       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
83181           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
83182       ELSE
83183           ---------------------------------------------------------------------------------------------------
83184           -- 4262811a Switch Sign
83185           ---------------------------------------------------------------------------------------------------
83186           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
83187           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83188                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83189           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83190                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83191           -- 5132302
83192           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
83193                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83194 
83195       END IF;
83196 
83197       -- 4955764
83198       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83199       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
83200 
83201 
83202       XLA_AE_LINES_PKG.ValidateCurrentLine;
83203       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83204 
83205       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83206                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
83207                ,p_balance_type_code => l_balance_type_code);
83208 
83209    END IF;
83210 
83211    -----------------------------------------------------------------------------------------
83212    -- 4262811 Multiperiod Accounting
83213    -----------------------------------------------------------------------------------------
83214      -- No MPA option is assigned.
83215 
83216 
83217 END IF;
83218 END IF;
83219 --
83220 
83221 --
83222 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83223    trace
83224       (p_msg      => 'END of AcctLineType_147'
83225       ,p_level    => C_LEVEL_PROCEDURE
83226       ,p_module   => l_log_module);
83227 END IF;
83228 --
83229 EXCEPTION
83230   WHEN xla_exceptions_pkg.application_exception THEN
83231       RAISE;
83232   WHEN OTHERS THEN
83233        xla_exceptions_pkg.raise_message
83234            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_147');
83235 END AcctLineType_147;
83236 --
83237 
83238 ---------------------------------------
83239 --
83240 -- PRIVATE FUNCTION
83241 --         AcctLineType_148
83242 --
83243 ---------------------------------------
83244 PROCEDURE AcctLineType_148 (
83245   p_application_id        IN NUMBER
83246  ,p_event_id              IN NUMBER
83247  ,p_calculate_acctd_flag  IN VARCHAR2
83248  ,p_calculate_g_l_flag    IN VARCHAR2
83249  ,p_actual_flag           IN OUT VARCHAR2
83250  ,p_balance_type_code     OUT VARCHAR2
83251  ,p_gain_or_loss_ref      OUT VARCHAR2
83252  
83253 --Payment Currency Code
83254  , p_source_12            IN VARCHAR2
83255 --Payment Distribution (Payment Rate) Ledger Amount
83256  , p_source_21            IN NUMBER
83257 --Invoice Distribution Type
83258  , p_source_32            IN VARCHAR2
83259  , p_source_32_meaning    IN VARCHAR2
83260 --When to Account for Payment Option
83261  , p_source_50            IN VARCHAR2
83262 --Accounting Reversal Indicator
83263  , p_source_52            IN VARCHAR2
83264 --Payment Distribution Amount
83265  , p_source_53            IN NUMBER
83266 --Business Flow Accounts Payable Application Identifier
83267  , p_source_54            IN NUMBER
83268 --Payment Distribution Identifier
83269  , p_source_59            IN NUMBER
83270 --Distribution Link Type
83271  , p_source_60            IN VARCHAR2
83272 --Override Accounted Amount Indicator
83273  , p_source_64            IN VARCHAR2
83274  , p_source_64_meaning    IN VARCHAR2
83275 --Third Party Type
83276  , p_source_67            IN VARCHAR2
83277 --Payment Distribution Reversed Identifier
83278  , p_source_68            IN NUMBER
83279 --Invoice Distribution Tax Line Identifier
83280  , p_source_69            IN NUMBER
83281 --Invoice Distribution Summary Tax Line Identifier
83282  , p_source_70            IN NUMBER
83286  , p_source_73            IN VARCHAR2
83283 --Invoice Distribution Amount of the Payment Distribution
83284  , p_source_72            IN NUMBER
83285 --Business Flow Invoice Distribution Type
83287 --Business Flow Invoice Entity Code
83288  , p_source_74            IN VARCHAR2
83289 --Invoice Distribution Tax Distribution Identifier from Tax
83290  , p_source_77            IN NUMBER
83291 --Invoice Type Paid
83292  , p_source_112            IN VARCHAR2
83293  , p_source_112_meaning    IN VARCHAR2
83294 --Business Flow Retained Invoice Distribution Associated with Payment
83295  , p_source_153            IN NUMBER
83296 --Business Flow Retained Invoice Associated with Payment
83297  , p_source_154            IN NUMBER
83298 )
83299 IS
83300 
83301 l_component_type              VARCHAR2(80);
83302 l_component_code              VARCHAR2(30);
83303 l_component_type_code         VARCHAR2(1);
83304 l_component_appl_id           INTEGER;
83305 l_amb_context_code            VARCHAR2(30);
83306 l_entity_code                 VARCHAR2(30);
83307 l_event_class_code            VARCHAR2(30);
83308 l_ae_header_id                NUMBER;
83309 l_event_type_code             VARCHAR2(30);
83310 l_line_definition_code        VARCHAR2(30);
83311 l_line_definition_owner_code  VARCHAR2(1);
83312 --
83313 -- adr variables
83314 l_segment                     VARCHAR2(30);
83315 l_ccid                        NUMBER;
83316 l_adr_transaction_coa_id      NUMBER;
83317 l_adr_accounting_coa_id       NUMBER;
83318 l_adr_flexfield_segment_code  VARCHAR2(30);
83319 l_adr_flex_value_set_id       NUMBER;
83320 l_adr_value_type_code         VARCHAR2(30);
83321 l_adr_value_combination_id    NUMBER;
83322 l_adr_value_segment_code      VARCHAR2(30);
83323 
83324 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
83325 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
83326 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
83327 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
83328 
83329 -- 4262811 Variables ------------------------------------------------------------------------------------------
83330 l_entered_amt_idx             NUMBER;
83331 l_accted_amt_idx              NUMBER;
83332 l_acc_rev_flag                VARCHAR2(1);
83333 l_accrual_line_num            NUMBER;
83334 l_tmp_amt                     NUMBER;
83335 l_acc_rev_natural_side_code   VARCHAR2(1);
83336 
83337 l_num_entries                 NUMBER;
83338 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
83339 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
83340 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
83341 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
83342 l_recog_line_1                NUMBER;
83343 l_recog_line_2                NUMBER;
83344 
83345 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
83346 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
83347 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
83348 
83349 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
83350 
83351 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
83352 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
83353 
83354 ---------------------------------------------------------------------------------------------------------------
83355 
83356 
83357 --
83358 -- bulk performance
83359 --
83360 l_balance_type_code           VARCHAR2(1);
83361 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
83362 l_log_module                  VARCHAR2(240);
83363 
83364 --
83365 -- Upgrade strategy
83366 --
83367 l_actual_upg_option           VARCHAR2(1);
83368 l_enc_upg_option           VARCHAR2(1);
83369 
83370 --
83371 BEGIN
83372 --
83373 IF g_log_enabled THEN
83374       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_148';
83375 END IF;
83376 --
83377 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83378 
83379       trace
83380          (p_msg      => 'BEGIN of AcctLineType_148'
83381          ,p_level    => C_LEVEL_PROCEDURE
83382          ,p_module   => l_log_module);
83383 
83384 END IF;
83385 --
83386 l_component_type             := 'AMB_JLT';
83387 l_component_code             := 'AP_RET_REL_PMT_CASH';
83388 l_component_type_code        := 'S';
83389 l_component_appl_id          :=  200;
83390 l_amb_context_code           := 'DEFAULT';
83391 l_entity_code                := 'AP_PAYMENTS';
83392 l_event_class_code           := 'PAYMENTS';
83393 l_event_type_code            := 'PAYMENTS_ALL';
83394 l_line_definition_owner_code := 'S';
83395 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
83396 --
83397 l_balance_type_code          := 'A';
83398 l_segment                     := NULL;
83399 l_ccid                        := NULL;
83400 l_adr_transaction_coa_id      := NULL;
83401 l_adr_accounting_coa_id       := NULL;
83402 l_adr_flexfield_segment_code  := NULL;
83403 l_adr_flex_value_set_id       := NULL;
83404 l_adr_value_type_code         := NULL;
83405 l_adr_value_combination_id    := NULL;
83406 l_adr_value_segment_code      := NULL;
83407 
83408 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
83409 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
83413 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
83410 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
83411 l_budgetary_control_flag     := 'N';
83412 
83414 l_bflow_applied_to_amt       := NULL; -- 5132302
83415 l_entered_amt_idx            := NULL;          -- 4262811
83416 l_accted_amt_idx             := NULL;          -- 4262811
83417 l_acc_rev_flag               := NULL;          -- 4262811
83418 l_accrual_line_num           := NULL;          -- 4262811
83419 l_tmp_amt                    := NULL;          -- 4262811
83420 --
83421  
83422 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
83423     l_balance_type_code <> 'B' THEN
83424 IF NVL(p_source_50,'
83425 ') <>  'CLEAR_CLEAR' AND 
83426 NVL(p_source_112,'
83427 ') =  'RETAINAGE RELEASE' AND 
83428 NVL(p_source_32,'
83429 ') =  'RETAINAGE'
83430  THEN 
83431 
83432    --
83433    XLA_AE_LINES_PKG.SetNewLine;
83434 
83435    p_balance_type_code          := l_balance_type_code;
83436    -- set the flag so later we will know whether the gain loss line needs to be created
83437    
83438    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
83439      p_actual_flag :='A';
83440    END IF;
83441 
83442    --
83443    -- bulk performance
83444    --
83445    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
83446                                       p_header_num   => 0); -- 4262811
83447    --
83448    -- set accounting line options
83449    --
83450    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
83451            p_natural_side_code          => 'D'
83452          , p_gain_or_loss_flag          => 'N'
83453          , p_gl_transfer_mode_code      => 'S'
83454          , p_acct_entry_type_code       => 'A'
83455          , p_switch_side_flag           => 'Y'
83456          , p_merge_duplicate_code       => 'A'
83457          );
83458    --
83459    l_acc_rev_natural_side_code := 'C';  -- 4262811
83460    -- 
83461    --
83462    -- set accounting line type info
83463    --
83464    xla_ae_lines_pkg.SetAcctLineType
83465       (p_component_type             => l_component_type
83466       ,p_event_type_code            => l_event_type_code
83467       ,p_line_definition_owner_code => l_line_definition_owner_code
83468       ,p_line_definition_code       => l_line_definition_code
83469       ,p_accounting_line_code       => l_component_code
83470       ,p_accounting_line_type_code  => l_component_type_code
83471       ,p_accounting_line_appl_id    => l_component_appl_id
83472       ,p_amb_context_code           => l_amb_context_code
83473       ,p_entity_code                => l_entity_code
83474       ,p_event_class_code           => l_event_class_code);
83475    --
83476    -- set accounting class
83477    --
83478    xla_ae_lines_pkg.SetAcctClass(
83479            p_accounting_class_code  => 'RETAINAGE'
83480          , p_ae_header_id           => l_ae_header_id
83481          );
83482 
83483    --
83484    -- set rounding class
83485    --
83486    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
83487                       'RETAINAGE';
83488 
83489    --
83490    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
83491    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
83492    --
83493    -- bulk performance
83494    --
83495    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
83496 
83497    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
83498       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
83499 
83500    -- 4955764
83501    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83502       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
83503 
83504    -- 4458381 Public Sector Enh
83505    
83506    --
83507    -- set accounting attributes for the line type
83508    --
83509    l_entered_amt_idx := 10;
83510    l_accted_amt_idx  := 12;
83511    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
83512    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
83513    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
83514    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
83515    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
83516    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
83517    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
83518    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
83519    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
83520    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
83521    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
83522    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
83523    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_153);
83524    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
83525    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_154);
83526    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
83527    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
83528    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
83529    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
83530    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
83534    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
83531    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
83532    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
83533    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
83535    l_rec_acct_attrs.array_num_value(12)  := p_source_21;
83536    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
83537    l_rec_acct_attrs.array_char_value(13)  := p_source_64;
83538    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
83539    l_rec_acct_attrs.array_char_value(14)  := p_source_67;
83540    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
83541    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_68);
83542    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
83543    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
83544    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
83545    l_rec_acct_attrs.array_num_value(17)  := p_source_69;
83546    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
83547    l_rec_acct_attrs.array_num_value(18)  := p_source_77;
83548    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
83549    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
83550 
83551    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
83552    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
83553 
83554    ---------------------------------------------------------------------------------------------------------------
83555    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
83556    ---------------------------------------------------------------------------------------------------------------
83557    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
83558 
83559    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83560    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83561 
83562    IF xla_accounting_cache_pkg.GetValueChar
83563          (p_source_code         => 'LEDGER_CATEGORY_CODE'
83564          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
83565    AND l_bflow_method_code = 'PRIOR_ENTRY'
83566 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
83567    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
83568          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
83569        )
83570    THEN
83571          xla_ae_lines_pkg.BflowUpgEntry
83572            (p_business_method_code    => l_bflow_method_code
83573            ,p_business_class_code     => l_bflow_class_code
83574            ,p_balance_type            => l_balance_type_code);
83575    ELSE
83576       NULL;
83577 XLA_AE_LINES_PKG.business_flow_validation(
83578                                 p_business_method_code     => l_bflow_method_code
83579                                ,p_business_class_code      => l_bflow_class_code
83580                                ,p_inherit_description_flag => l_inherit_desc_flag);
83581    END IF;
83582 
83583    --
83584    -- call analytical criteria
83585    --
83586    -- Inherited Analytical Criteria for business flow method of Prior Entry.
83587    --
83588    -- call description
83589    --
83590    -- No description or it is inherited.
83591    --
83592    -- call ADRs
83593    -- Bug 4922099
83594    --
83595    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83596         (NVL(l_actual_upg_option, 'N') = 'O') OR
83597         (NVL(l_enc_upg_option, 'N') = 'O')
83598       )
83599    THEN
83600    NULL;
83601    --
83602    --
83603    
83604    --
83605    --
83606    END IF;
83607    --
83608    -- Bug 4922099
83609    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
83610           (NVL(l_enc_upg_option, 'N') = 'O')
83611         ) AND
83612         (l_bflow_method_code = 'PRIOR_ENTRY')
83613       )
83614    THEN
83615       IF
83616       --
83617       1 = 1
83618       --
83619       THEN
83620       xla_accounting_err_pkg.build_message
83621                                     (p_appli_s_name            => 'XLA'
83622                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83623                                     ,p_token_1                 => 'LINE_NUMBER'
83624                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
83625                                     ,p_token_2                 => 'LINE_TYPE_NAME'
83626                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
83627                                                                              l_component_type
83628                                                                             ,l_component_code
83629                                                                             ,l_component_type_code
83630                                                                             ,l_component_appl_id
83631                                                                             ,l_amb_context_code
83632                                                                             ,l_entity_code
83633                                                                             ,l_event_class_code
83634                                                                            )
83638                                                                           ,p_lookup_code    => l_component_type_code
83635                                     ,p_token_3                 => 'OWNER'
83636                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
83637                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
83639                                                                          )
83640                                     ,p_token_4                 => 'PRODUCT_NAME'
83641                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
83642                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
83643                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
83644                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
83645                                     ,p_ae_header_id            =>  NULL
83646                                        );
83647 
83648         IF (C_LEVEL_ERROR>= g_log_level) THEN
83649                  trace
83650                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83651                       ,p_level    => C_LEVEL_ERROR
83652                       ,p_module   => l_log_module);
83653         END IF;
83654       END IF;
83655    END IF;
83656    --
83657    --
83658    ------------------------------------------------------------------------------------------------
83659    -- 4219869 Business Flow
83660    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
83661    -- Prior Entry.  Currently, the following code is always generated.
83662    ------------------------------------------------------------------------------------------------
83663    -- No ValidateCurrentLine for business flow method of Prior Entry
83664 
83665    ------------------------------------------------------------------------------------
83666    -- 4219869 Business Flow
83667    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
83668    ------------------------------------------------------------------------------------
83669    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83670 
83671    ----------------------------------------------------------------------------------
83672    -- 4219869 Business Flow
83673    -- Update journal entry status -- Need to generate this within IF <condition>
83674    ----------------------------------------------------------------------------------
83675    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83676          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
83677          ,p_balance_type_code => l_balance_type_code
83678          );
83679 
83680    -------------------------------------------------------------------------------------------
83681    -- 4262811 - Generate the Accrual Reversal lines
83682    -------------------------------------------------------------------------------------------
83683    BEGIN
83684       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
83685                               (g_array_event(p_event_id).array_value_num('header_index'));
83686       IF l_acc_rev_flag IS NULL THEN
83687          l_acc_rev_flag := 'N';
83688       END IF;
83689    EXCEPTION
83690       WHEN OTHERS THEN
83691          l_acc_rev_flag := 'N';
83692    END;
83693    --
83694    IF (l_acc_rev_flag = 'Y') THEN
83695 
83696        -- 4645092  ------------------------------------------------------------------------------
83697        -- To allow MPA report to determine if it should generate report process
83698        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
83699        ------------------------------------------------------------------------------------------
83700 
83701        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
83702        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
83703    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
83704    -- call ADRs
83705    -- Bug 4922099
83706    --
83707    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83708         (NVL(l_actual_upg_option, 'N') = 'O') OR
83709         (NVL(l_enc_upg_option, 'N') = 'O')
83710       )
83711    THEN
83712    NULL;
83713    --
83714    --
83715    
83716    --
83717    --
83718    END IF;
83719 
83720        --
83721        -- Update the line information that should be overwritten
83722        --
83723        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
83724                                          p_header_num   => 1);
83725        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
83726 
83727        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
83728 
83729        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
83730           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
83731        END IF;
83732 
83733       --
83734       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
83735       --
83736       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
83740           -- 4262811a Switch Sign
83737           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
83738       ELSE
83739           ---------------------------------------------------------------------------------------------------
83741           ---------------------------------------------------------------------------------------------------
83742           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
83743           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83744                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83745           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83746                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83747           -- 5132302
83748           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
83749                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83750 
83751       END IF;
83752 
83753       -- 4955764
83754       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83755       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
83756 
83757 
83758       XLA_AE_LINES_PKG.ValidateCurrentLine;
83759       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83760 
83761       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83762                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
83763                ,p_balance_type_code => l_balance_type_code);
83764 
83765    END IF;
83766 
83767    -----------------------------------------------------------------------------------------
83768    -- 4262811 Multiperiod Accounting
83769    -----------------------------------------------------------------------------------------
83770      -- No MPA option is assigned.
83771 
83772 
83773 END IF;
83774 END IF;
83775 --
83776 
83777 --
83778 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83779    trace
83780       (p_msg      => 'END of AcctLineType_148'
83781       ,p_level    => C_LEVEL_PROCEDURE
83782       ,p_module   => l_log_module);
83783 END IF;
83784 --
83785 EXCEPTION
83786   WHEN xla_exceptions_pkg.application_exception THEN
83787       RAISE;
83788   WHEN OTHERS THEN
83789        xla_exceptions_pkg.raise_message
83790            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_148');
83791 END AcctLineType_148;
83792 --
83793 
83794 ---------------------------------------
83795 --
83796 -- PRIVATE FUNCTION
83797 --         AcctLineType_149
83798 --
83799 ---------------------------------------
83800 PROCEDURE AcctLineType_149 (
83801   p_application_id        IN NUMBER
83802  ,p_event_id              IN NUMBER
83803  ,p_calculate_acctd_flag  IN VARCHAR2
83804  ,p_calculate_g_l_flag    IN VARCHAR2
83805  ,p_actual_flag           IN OUT VARCHAR2
83806  ,p_balance_type_code     OUT VARCHAR2
83807  ,p_gain_or_loss_ref      OUT VARCHAR2
83808  
83809 --Payment Currency Code
83810  , p_source_12            IN VARCHAR2
83811 --Automatic Offsets Value
83812  , p_source_16            IN VARCHAR2
83813  , p_source_16_meaning    IN VARCHAR2
83814 --Purchase Order Rate Variance Gain Account
83815  , p_source_17            IN NUMBER
83816 --Destination Type of the PO Distribution
83817  , p_source_19            IN VARCHAR2
83818  , p_source_19_meaning    IN VARCHAR2
83819 --Purchase Order Rate Variance Loss Account
83820  , p_source_20            IN NUMBER
83821 --Payment Distribution (Payment Rate) Ledger Amount
83822  , p_source_21            IN NUMBER
83823 --Payment Distribution (Cleared Rate) Ledger Amount
83824  , p_source_22            IN NUMBER
83825 --Invoice Distribution Account
83826  , p_source_29            IN NUMBER
83827 --Automatic Offsets Flag
83828  , p_source_42            IN VARCHAR2
83829  , p_source_42_meaning    IN VARCHAR2
83830 --When to Account for Payment Option
83831  , p_source_50            IN VARCHAR2
83832 --Payment Distribution Type
83833  , p_source_51            IN VARCHAR2
83834  , p_source_51_meaning    IN VARCHAR2
83835 --Accounting Reversal Indicator
83836  , p_source_52            IN VARCHAR2
83837 --Payment Distribution Amount
83838  , p_source_53            IN NUMBER
83839 --Business Flow Accounts Payable Application Identifier
83840  , p_source_54            IN NUMBER
83841 --Business Flow Payment Distribution Type
83842  , p_source_55            IN VARCHAR2
83843 --Business Flow Payment Entity Code
83844  , p_source_56            IN VARCHAR2
83845 --Business Flow Payment Distribution Identifier
83846  , p_source_57            IN NUMBER
83847 --Business Flow Payment Identifier
83848  , p_source_58            IN NUMBER
83849 --Payment Distribution Identifier
83850  , p_source_59            IN NUMBER
83851 --Distribution Link Type
83852  , p_source_60            IN VARCHAR2
83853 --Override Accounted Amount Indicator
83854  , p_source_64            IN VARCHAR2
83855  , p_source_64_meaning    IN VARCHAR2
83856 --Payment Supplier Identifier
83857  , p_source_65            IN NUMBER
83858 --Payment Supplier Site Identifier
83859  , p_source_66            IN NUMBER
83860 --Third Party Type
83864 --Invoice Distribution Tax Line Identifier
83861  , p_source_67            IN VARCHAR2
83862 --Payment Distribution Reversed Identifier
83863  , p_source_68            IN NUMBER
83865  , p_source_69            IN NUMBER
83866 --Invoice Distribution Summary Tax Line Identifier
83867  , p_source_70            IN NUMBER
83868 --Accrue on Receipt Option
83869  , p_source_111            IN VARCHAR2
83870  , p_source_111_meaning    IN VARCHAR2
83871 --Cleared Exchange Date
83872  , p_source_114            IN DATE
83873 --Cleared Exchange Rate
83874  , p_source_115            IN NUMBER
83875 --Cleared Exchange Rate Type
83876  , p_source_116            IN VARCHAR2
83877 )
83878 IS
83879 
83880 l_component_type              VARCHAR2(80);
83881 l_component_code              VARCHAR2(30);
83882 l_component_type_code         VARCHAR2(1);
83883 l_component_appl_id           INTEGER;
83884 l_amb_context_code            VARCHAR2(30);
83885 l_entity_code                 VARCHAR2(30);
83886 l_event_class_code            VARCHAR2(30);
83887 l_ae_header_id                NUMBER;
83888 l_event_type_code             VARCHAR2(30);
83889 l_line_definition_code        VARCHAR2(30);
83890 l_line_definition_owner_code  VARCHAR2(1);
83891 --
83892 -- adr variables
83893 l_segment                     VARCHAR2(30);
83894 l_ccid                        NUMBER;
83895 l_adr_transaction_coa_id      NUMBER;
83896 l_adr_accounting_coa_id       NUMBER;
83897 l_adr_flexfield_segment_code  VARCHAR2(30);
83898 l_adr_flex_value_set_id       NUMBER;
83899 l_adr_value_type_code         VARCHAR2(30);
83900 l_adr_value_combination_id    NUMBER;
83901 l_adr_value_segment_code      VARCHAR2(30);
83902 
83903 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
83904 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
83905 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
83906 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
83907 
83908 -- 4262811 Variables ------------------------------------------------------------------------------------------
83909 l_entered_amt_idx             NUMBER;
83910 l_accted_amt_idx              NUMBER;
83911 l_acc_rev_flag                VARCHAR2(1);
83912 l_accrual_line_num            NUMBER;
83913 l_tmp_amt                     NUMBER;
83914 l_acc_rev_natural_side_code   VARCHAR2(1);
83915 
83916 l_num_entries                 NUMBER;
83917 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
83918 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
83919 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
83920 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
83921 l_recog_line_1                NUMBER;
83922 l_recog_line_2                NUMBER;
83923 
83924 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
83925 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
83926 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
83927 
83928 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
83929 
83930 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
83931 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
83932 
83933 ---------------------------------------------------------------------------------------------------------------
83934 
83935 
83936 --
83937 -- bulk performance
83938 --
83939 l_balance_type_code           VARCHAR2(1);
83940 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
83941 l_log_module                  VARCHAR2(240);
83942 
83943 --
83944 -- Upgrade strategy
83945 --
83946 l_actual_upg_option           VARCHAR2(1);
83947 l_enc_upg_option           VARCHAR2(1);
83948 
83949 --
83950 BEGIN
83951 --
83952 IF g_log_enabled THEN
83953       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_149';
83954 END IF;
83955 --
83956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83957 
83958       trace
83959          (p_msg      => 'BEGIN of AcctLineType_149'
83960          ,p_level    => C_LEVEL_PROCEDURE
83961          ,p_module   => l_log_module);
83962 
83963 END IF;
83964 --
83965 l_component_type             := 'AMB_JLT';
83966 l_component_code             := 'AP_TAX_EX_RATE_VAR_CLEAR';
83967 l_component_type_code        := 'S';
83968 l_component_appl_id          :=  200;
83969 l_amb_context_code           := 'DEFAULT';
83970 l_entity_code                := 'AP_PAYMENTS';
83971 l_event_class_code           := 'RECONCILED PAYMENTS';
83972 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
83973 l_line_definition_owner_code := 'S';
83974 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
83975 --
83976 l_balance_type_code          := 'A';
83977 l_segment                     := NULL;
83978 l_ccid                        := NULL;
83979 l_adr_transaction_coa_id      := NULL;
83980 l_adr_accounting_coa_id       := NULL;
83981 l_adr_flexfield_segment_code  := NULL;
83982 l_adr_flex_value_set_id       := NULL;
83983 l_adr_value_type_code         := NULL;
83984 l_adr_value_combination_id    := NULL;
83985 l_adr_value_segment_code      := NULL;
83986 
83987 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
83988 l_bflow_class_code           := '';    -- 4219869 Business Flow
83992 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
83989 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
83990 l_budgetary_control_flag     := 'N';
83991 
83993 l_bflow_applied_to_amt       := NULL; -- 5132302
83994 l_entered_amt_idx            := NULL;          -- 4262811
83995 l_accted_amt_idx             := NULL;          -- 4262811
83996 l_acc_rev_flag               := NULL;          -- 4262811
83997 l_accrual_line_num           := NULL;          -- 4262811
83998 l_tmp_amt                    := NULL;          -- 4262811
83999 --
84000 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
84001             (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
84002                return;
84003   END IF;
84004   
84005 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
84006     l_balance_type_code <> 'B' THEN
84007 IF NVL(p_source_50,'
84008 ') =  'CLEAR_CLEAR' AND 
84009 NVL(p_source_51,'
84010 ') =  'TAX EXCHANGE RATE VARIANCE' AND 
84011 NVL(p_source_111,'
84012 ') =  'Y'
84013  THEN 
84014 
84015    --
84016    XLA_AE_LINES_PKG.SetNewLine;
84017 
84018    p_balance_type_code          := l_balance_type_code;
84019    -- set the flag so later we will know whether the gain loss line needs to be created
84020    
84021    IF(l_balance_type_code = 'A' ) THEN
84022      p_actual_flag :='G';
84023    END IF;
84024 
84025    --
84026    -- bulk performance
84027    --
84028    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
84029                                       p_header_num   => 0); -- 4262811
84030    --
84031    -- set accounting line options
84032    --
84033    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
84034            p_natural_side_code          => 'D'
84035          , p_gain_or_loss_flag          => 'Y'
84036          , p_gl_transfer_mode_code      => 'S'
84037          , p_acct_entry_type_code       => 'A'
84038          , p_switch_side_flag           => 'Y'
84039          , p_merge_duplicate_code       => 'A'
84040          );
84041    --
84042    l_acc_rev_natural_side_code := 'C';  -- 4262811
84043    -- 
84044    --
84045    -- set accounting line type info
84046    --
84047    xla_ae_lines_pkg.SetAcctLineType
84048       (p_component_type             => l_component_type
84049       ,p_event_type_code            => l_event_type_code
84050       ,p_line_definition_owner_code => l_line_definition_owner_code
84051       ,p_line_definition_code       => l_line_definition_code
84052       ,p_accounting_line_code       => l_component_code
84053       ,p_accounting_line_type_code  => l_component_type_code
84054       ,p_accounting_line_appl_id    => l_component_appl_id
84055       ,p_amb_context_code           => l_amb_context_code
84056       ,p_entity_code                => l_entity_code
84057       ,p_event_class_code           => l_event_class_code);
84058    --
84059    -- set accounting class
84060    --
84061    xla_ae_lines_pkg.SetAcctClass(
84062            p_accounting_class_code  => 'TERV'
84063          , p_ae_header_id           => l_ae_header_id
84064          );
84065 
84066    --
84067    -- set rounding class
84068    --
84069    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
84070                       'TERV';
84071 
84072    --
84073    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
84074    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
84075    --
84076    -- bulk performance
84077    --
84078    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
84079 
84080    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
84081       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
84082 
84083    -- 4955764
84084    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84085       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
84086 
84087    -- 4458381 Public Sector Enh
84088    
84089    --
84090    -- set accounting attributes for the line type
84091    --
84092    l_entered_amt_idx := 10;
84093    l_accted_amt_idx  := 15;
84094    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
84095    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
84096    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
84097    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
84098    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
84099    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
84100    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
84101    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
84102    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
84103    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
84104    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
84105    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
84106    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
84107    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
84108    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
84112    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
84109    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
84110    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
84111    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
84113    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
84114    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
84115    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
84116    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
84117    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
84118    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
84119    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
84120    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
84121    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
84122    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
84123    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
84124    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
84125    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
84126    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
84127    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
84128    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
84129    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
84130    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
84131    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
84132    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
84133    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
84134    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
84135    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
84136    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
84137    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
84138    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
84139    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
84140    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
84141    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
84142    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
84143 
84144    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
84145    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
84146 
84147    ---------------------------------------------------------------------------------------------------------------
84148    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
84149    ---------------------------------------------------------------------------------------------------------------
84150    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
84151 
84152    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84153    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84154 
84155    IF xla_accounting_cache_pkg.GetValueChar
84156          (p_source_code         => 'LEDGER_CATEGORY_CODE'
84157          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
84158    AND l_bflow_method_code = 'PRIOR_ENTRY'
84159 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
84160    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
84161          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
84162        )
84163    THEN
84164          xla_ae_lines_pkg.BflowUpgEntry
84165            (p_business_method_code    => l_bflow_method_code
84166            ,p_business_class_code     => l_bflow_class_code
84167            ,p_balance_type            => l_balance_type_code);
84168    ELSE
84169       NULL;
84170 -- No business flow processing for business flow method of NONE.
84171    END IF;
84172 
84173    --
84174    -- call analytical criteria
84175    --
84176    
84177    --
84178    -- call description
84179    --
84180    -- No description or it is inherited.
84181    --
84182    -- call ADRs
84183    -- Bug 4922099
84184    --
84185    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84186         (NVL(l_actual_upg_option, 'N') = 'O') OR
84187         (NVL(l_enc_upg_option, 'N') = 'O')
84188       )
84189    THEN
84190    NULL;
84191    --
84192    --
84193    
84194   l_ccid := AcctDerRule_24(
84195            p_application_id           => p_application_id
84196          , p_ae_header_id             => l_ae_header_id 
84197 , p_source_16 => p_source_16
84198 , p_source_16_meaning => p_source_16_meaning
84199 , p_source_17 => p_source_17
84200 , p_source_19 => p_source_19
84201 , p_source_19_meaning => p_source_19_meaning
84202 , p_source_20 => p_source_20
84203 , p_source_21 => p_source_21
84204 , p_source_22 => p_source_22
84205 , p_source_29 => p_source_29
84206 , p_source_42 => p_source_42
84207 , p_source_42_meaning => p_source_42_meaning
84208          , x_transaction_coa_id       => l_adr_transaction_coa_id
84209          , x_accounting_coa_id        => l_adr_accounting_coa_id
84210          , x_value_type_code          => l_adr_value_type_code
84211          , p_side                     => 'NA'
84212    );
84213 
84214    xla_ae_lines_pkg.set_ccid(
84215     p_code_combination_id          => l_ccid
84216   , p_value_type_code              => l_adr_value_type_code
84220   , p_adr_type_code                => 'S'
84217   , p_transaction_coa_id           => l_adr_transaction_coa_id
84218   , p_accounting_coa_id            => l_adr_accounting_coa_id
84219   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
84221   , p_component_type               => l_component_type
84222   , p_component_code               => l_component_code
84223   , p_component_type_code          => l_component_type_code
84224   , p_component_appl_id            => l_component_appl_id
84225   , p_amb_context_code             => l_amb_context_code
84226   , p_side                         => 'NA'
84227   );
84228 
84229 
84230    l_segment := AcctDerRule_6(
84231            p_application_id           => p_application_id
84232          , p_ae_header_id             => l_ae_header_id 
84233 , p_source_16 => p_source_16
84234 , p_source_16_meaning => p_source_16_meaning
84235 , p_source_17 => p_source_17
84236 , p_source_19 => p_source_19
84237 , p_source_19_meaning => p_source_19_meaning
84238 , p_source_20 => p_source_20
84239 , p_source_21 => p_source_21
84240 , p_source_22 => p_source_22
84241          , x_transaction_coa_id       => l_adr_transaction_coa_id
84242          , x_accounting_coa_id        => l_adr_accounting_coa_id
84243          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
84244          , x_flex_value_set_id        => l_adr_flex_value_set_id
84245          , x_value_type_code          => l_adr_value_type_code
84246          , x_value_combination_id     => l_adr_value_combination_id
84247          , x_value_segment_code       => l_adr_value_segment_code
84248          , p_side                     => 'NA'
84249          , p_override_seg_flag        => 'Y'
84250    );
84251 
84252    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
84253 
84254       xla_ae_lines_pkg.set_segment(
84255           p_to_segment_code         => 'GL_ACCOUNT'
84256         , p_segment_value           => l_segment
84257         , p_from_segment_code       => l_adr_value_segment_code
84258         , p_from_combination_id     => l_adr_value_combination_id
84259         , p_value_type_code         => l_adr_value_type_code
84260         , p_transaction_coa_id      => l_adr_transaction_coa_id
84261         , p_accounting_coa_id       => l_adr_accounting_coa_id
84262         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
84263         , p_flex_value_set_id       => l_adr_flex_value_set_id
84264         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
84265         , p_adr_type_code           => 'S'
84266         , p_component_type          => l_component_type
84267         , p_component_code          => l_component_code
84268         , p_component_type_code     => l_component_type_code
84269         , p_component_appl_id       => l_component_appl_id
84270         , p_amb_context_code        => l_amb_context_code
84271         , p_entity_code             => 'AP_PAYMENTS'
84272         , p_event_class_code        => 'RECONCILED PAYMENTS'
84273         , p_side                    => 'NA'
84274         );
84275 
84276   END IF;
84277 
84278    l_segment := AcctDerRule_17(
84279            p_application_id           => p_application_id
84280          , p_ae_header_id             => l_ae_header_id 
84281 , p_source_16 => p_source_16
84282 , p_source_16_meaning => p_source_16_meaning
84283 , p_source_19 => p_source_19
84284 , p_source_19_meaning => p_source_19_meaning
84285 , p_source_29 => p_source_29
84286          , x_transaction_coa_id       => l_adr_transaction_coa_id
84287          , x_accounting_coa_id        => l_adr_accounting_coa_id
84288          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
84289          , x_flex_value_set_id        => l_adr_flex_value_set_id
84290          , x_value_type_code          => l_adr_value_type_code
84291          , x_value_combination_id     => l_adr_value_combination_id
84292          , x_value_segment_code       => l_adr_value_segment_code
84293          , p_side                     => 'NA'
84294          , p_override_seg_flag        => 'Y'
84295    );
84296 
84297    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
84298 
84299       xla_ae_lines_pkg.set_segment(
84300           p_to_segment_code         => 'GL_BALANCING'
84301         , p_segment_value           => l_segment
84302         , p_from_segment_code       => l_adr_value_segment_code
84303         , p_from_combination_id     => l_adr_value_combination_id
84304         , p_value_type_code         => l_adr_value_type_code
84305         , p_transaction_coa_id      => l_adr_transaction_coa_id
84306         , p_accounting_coa_id       => l_adr_accounting_coa_id
84307         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
84308         , p_flex_value_set_id       => l_adr_flex_value_set_id
84309         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
84310         , p_adr_type_code           => 'S'
84311         , p_component_type          => l_component_type
84312         , p_component_code          => l_component_code
84313         , p_component_type_code     => l_component_type_code
84314         , p_component_appl_id       => l_component_appl_id
84315         , p_amb_context_code        => l_amb_context_code
84316         , p_entity_code             => 'AP_PAYMENTS'
84317         , p_event_class_code        => 'RECONCILED PAYMENTS'
84318         , p_side                    => 'NA'
84319         );
84320 
84321   END IF;
84322 
84323    --
84324    --
84325    END IF;
84326    --
84327    -- Bug 4922099
84331         (l_bflow_method_code = 'PRIOR_ENTRY')
84328    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
84329           (NVL(l_enc_upg_option, 'N') = 'O')
84330         ) AND
84332       )
84333    THEN
84334       IF
84335       --
84336       1 = 2
84337       --
84338       THEN
84339       xla_accounting_err_pkg.build_message
84340                                     (p_appli_s_name            => 'XLA'
84341                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84342                                     ,p_token_1                 => 'LINE_NUMBER'
84343                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
84344                                     ,p_token_2                 => 'LINE_TYPE_NAME'
84345                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
84346                                                                              l_component_type
84347                                                                             ,l_component_code
84348                                                                             ,l_component_type_code
84349                                                                             ,l_component_appl_id
84350                                                                             ,l_amb_context_code
84351                                                                             ,l_entity_code
84352                                                                             ,l_event_class_code
84353                                                                            )
84354                                     ,p_token_3                 => 'OWNER'
84355                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
84356                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
84357                                                                           ,p_lookup_code    => l_component_type_code
84358                                                                          )
84359                                     ,p_token_4                 => 'PRODUCT_NAME'
84360                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
84361                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
84362                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
84363                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
84364                                     ,p_ae_header_id            =>  NULL
84365                                        );
84366 
84367         IF (C_LEVEL_ERROR>= g_log_level) THEN
84368                  trace
84369                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84370                       ,p_level    => C_LEVEL_ERROR
84371                       ,p_module   => l_log_module);
84372         END IF;
84373       END IF;
84374    END IF;
84375    --
84376    --
84377    ------------------------------------------------------------------------------------------------
84378    -- 4219869 Business Flow
84379    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
84380    -- Prior Entry.  Currently, the following code is always generated.
84381    ------------------------------------------------------------------------------------------------
84382    XLA_AE_LINES_PKG.ValidateCurrentLine;
84383 
84384    ------------------------------------------------------------------------------------
84385    -- 4219869 Business Flow
84386    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
84387    ------------------------------------------------------------------------------------
84388    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84389 
84390    ----------------------------------------------------------------------------------
84391    -- 4219869 Business Flow
84392    -- Update journal entry status -- Need to generate this within IF <condition>
84393    ----------------------------------------------------------------------------------
84394    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84395          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
84396          ,p_balance_type_code => l_balance_type_code
84397          );
84398 
84399    -------------------------------------------------------------------------------------------
84400    -- 4262811 - Generate the Accrual Reversal lines
84401    -------------------------------------------------------------------------------------------
84402    BEGIN
84403       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
84404                               (g_array_event(p_event_id).array_value_num('header_index'));
84405       IF l_acc_rev_flag IS NULL THEN
84406          l_acc_rev_flag := 'N';
84407       END IF;
84408    EXCEPTION
84409       WHEN OTHERS THEN
84410          l_acc_rev_flag := 'N';
84411    END;
84412    --
84413    IF (l_acc_rev_flag = 'Y') THEN
84414 
84415        -- 4645092  ------------------------------------------------------------------------------
84416        -- To allow MPA report to determine if it should generate report process
84417        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
84418        ------------------------------------------------------------------------------------------
84419 
84423    -- call ADRs
84420        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
84421        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
84422    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
84424    -- Bug 4922099
84425    --
84426    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84427         (NVL(l_actual_upg_option, 'N') = 'O') OR
84428         (NVL(l_enc_upg_option, 'N') = 'O')
84429       )
84430    THEN
84431    NULL;
84432    --
84433    --
84434    
84435   l_ccid := AcctDerRule_24(
84436            p_application_id           => p_application_id
84437          , p_ae_header_id             => l_ae_header_id 
84438 , p_source_16 => p_source_16
84439 , p_source_16_meaning => p_source_16_meaning
84440 , p_source_17 => p_source_17
84441 , p_source_19 => p_source_19
84442 , p_source_19_meaning => p_source_19_meaning
84443 , p_source_20 => p_source_20
84444 , p_source_21 => p_source_21
84445 , p_source_22 => p_source_22
84446 , p_source_29 => p_source_29
84447 , p_source_42 => p_source_42
84448 , p_source_42_meaning => p_source_42_meaning
84449          , x_transaction_coa_id       => l_adr_transaction_coa_id
84450          , x_accounting_coa_id        => l_adr_accounting_coa_id
84451          , x_value_type_code          => l_adr_value_type_code
84452          , p_side                     => 'NA'
84453    );
84454 
84455    xla_ae_lines_pkg.set_ccid(
84456     p_code_combination_id          => l_ccid
84457   , p_value_type_code              => l_adr_value_type_code
84458   , p_transaction_coa_id           => l_adr_transaction_coa_id
84459   , p_accounting_coa_id            => l_adr_accounting_coa_id
84460   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
84461   , p_adr_type_code                => 'S'
84462   , p_component_type               => l_component_type
84463   , p_component_code               => l_component_code
84464   , p_component_type_code          => l_component_type_code
84465   , p_component_appl_id            => l_component_appl_id
84466   , p_amb_context_code             => l_amb_context_code
84467   , p_side                         => 'NA'
84468   );
84469 
84470 
84471    l_segment := AcctDerRule_6(
84472            p_application_id           => p_application_id
84473          , p_ae_header_id             => l_ae_header_id 
84474 , p_source_16 => p_source_16
84475 , p_source_16_meaning => p_source_16_meaning
84476 , p_source_17 => p_source_17
84477 , p_source_19 => p_source_19
84478 , p_source_19_meaning => p_source_19_meaning
84479 , p_source_20 => p_source_20
84480 , p_source_21 => p_source_21
84481 , p_source_22 => p_source_22
84482          , x_transaction_coa_id       => l_adr_transaction_coa_id
84483          , x_accounting_coa_id        => l_adr_accounting_coa_id
84484          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
84485          , x_flex_value_set_id        => l_adr_flex_value_set_id
84486          , x_value_type_code          => l_adr_value_type_code
84487          , x_value_combination_id     => l_adr_value_combination_id
84488          , x_value_segment_code       => l_adr_value_segment_code
84489          , p_side                     => 'NA'
84490          , p_override_seg_flag        => 'Y'
84491    );
84492 
84493    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
84494 
84495       xla_ae_lines_pkg.set_segment(
84496           p_to_segment_code         => 'GL_ACCOUNT'
84497         , p_segment_value           => l_segment
84498         , p_from_segment_code       => l_adr_value_segment_code
84499         , p_from_combination_id     => l_adr_value_combination_id
84500         , p_value_type_code         => l_adr_value_type_code
84501         , p_transaction_coa_id      => l_adr_transaction_coa_id
84502         , p_accounting_coa_id       => l_adr_accounting_coa_id
84503         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
84504         , p_flex_value_set_id       => l_adr_flex_value_set_id
84505         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
84506         , p_adr_type_code           => 'S'
84507         , p_component_type          => l_component_type
84508         , p_component_code          => l_component_code
84509         , p_component_type_code     => l_component_type_code
84510         , p_component_appl_id       => l_component_appl_id
84511         , p_amb_context_code        => l_amb_context_code
84512         , p_entity_code             => 'AP_PAYMENTS'
84513         , p_event_class_code        => 'RECONCILED PAYMENTS'
84514         , p_side                    => 'NA'
84515         );
84516 
84517   END IF;
84518 
84519    l_segment := AcctDerRule_17(
84520            p_application_id           => p_application_id
84521          , p_ae_header_id             => l_ae_header_id 
84522 , p_source_16 => p_source_16
84523 , p_source_16_meaning => p_source_16_meaning
84524 , p_source_19 => p_source_19
84525 , p_source_19_meaning => p_source_19_meaning
84526 , p_source_29 => p_source_29
84527          , x_transaction_coa_id       => l_adr_transaction_coa_id
84528          , x_accounting_coa_id        => l_adr_accounting_coa_id
84529          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
84530          , x_flex_value_set_id        => l_adr_flex_value_set_id
84531          , x_value_type_code          => l_adr_value_type_code
84532          , x_value_combination_id     => l_adr_value_combination_id
84533          , x_value_segment_code       => l_adr_value_segment_code
84534          , p_side                     => 'NA'
84538    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
84535          , p_override_seg_flag        => 'Y'
84536    );
84537 
84539 
84540       xla_ae_lines_pkg.set_segment(
84541           p_to_segment_code         => 'GL_BALANCING'
84542         , p_segment_value           => l_segment
84543         , p_from_segment_code       => l_adr_value_segment_code
84544         , p_from_combination_id     => l_adr_value_combination_id
84545         , p_value_type_code         => l_adr_value_type_code
84546         , p_transaction_coa_id      => l_adr_transaction_coa_id
84547         , p_accounting_coa_id       => l_adr_accounting_coa_id
84548         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
84549         , p_flex_value_set_id       => l_adr_flex_value_set_id
84550         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
84551         , p_adr_type_code           => 'S'
84552         , p_component_type          => l_component_type
84553         , p_component_code          => l_component_code
84554         , p_component_type_code     => l_component_type_code
84555         , p_component_appl_id       => l_component_appl_id
84556         , p_amb_context_code        => l_amb_context_code
84557         , p_entity_code             => 'AP_PAYMENTS'
84558         , p_event_class_code        => 'RECONCILED PAYMENTS'
84559         , p_side                    => 'NA'
84560         );
84561 
84562   END IF;
84563 
84564    --
84565    --
84566    END IF;
84567 
84568        --
84569        -- Update the line information that should be overwritten
84570        --
84571        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
84572                                          p_header_num   => 1);
84573        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
84574 
84575        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
84576 
84577        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
84578           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
84579        END IF;
84580 
84581       --
84582       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
84583       --
84584       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
84585           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
84586       ELSE
84587           ---------------------------------------------------------------------------------------------------
84588           -- 4262811a Switch Sign
84589           ---------------------------------------------------------------------------------------------------
84590           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
84591           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84592                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84593           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84594                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84595           -- 5132302
84596           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
84597                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84598 
84599       END IF;
84600 
84601       -- 4955764
84602       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84603       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
84604 
84605 
84606       XLA_AE_LINES_PKG.ValidateCurrentLine;
84607       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84608 
84609       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84610                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
84611                ,p_balance_type_code => l_balance_type_code);
84612 
84613    END IF;
84614 
84615    -----------------------------------------------------------------------------------------
84616    -- 4262811 Multiperiod Accounting
84617    -----------------------------------------------------------------------------------------
84618      -- No MPA option is assigned.
84619 
84620 
84621 END IF;
84622 END IF;
84623 --
84624 
84625 --
84626 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84627    trace
84628       (p_msg      => 'END of AcctLineType_149'
84629       ,p_level    => C_LEVEL_PROCEDURE
84630       ,p_module   => l_log_module);
84631 END IF;
84632 --
84633 EXCEPTION
84634   WHEN xla_exceptions_pkg.application_exception THEN
84635       RAISE;
84636   WHEN OTHERS THEN
84637        xla_exceptions_pkg.raise_message
84638            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_149');
84639 END AcctLineType_149;
84640 --
84641 
84642 ---------------------------------------
84643 --
84644 -- PRIVATE FUNCTION
84645 --         AcctLineType_150
84646 --
84647 ---------------------------------------
84648 PROCEDURE AcctLineType_150 (
84649   p_application_id        IN NUMBER
84650  ,p_event_id              IN NUMBER
84651  ,p_calculate_acctd_flag  IN VARCHAR2
84652  ,p_calculate_g_l_flag    IN VARCHAR2
84653  ,p_actual_flag           IN OUT VARCHAR2
84654  ,p_balance_type_code     OUT VARCHAR2
84658  , p_source_12            IN VARCHAR2
84655  ,p_gain_or_loss_ref      OUT VARCHAR2
84656  
84657 --Payment Currency Code
84659 --Automatic Offsets Value
84660  , p_source_16            IN VARCHAR2
84661  , p_source_16_meaning    IN VARCHAR2
84662 --Purchase Order Rate Variance Gain Account
84663  , p_source_17            IN NUMBER
84664 --Destination Type of the PO Distribution
84665  , p_source_19            IN VARCHAR2
84666  , p_source_19_meaning    IN VARCHAR2
84667 --Purchase Order Rate Variance Loss Account
84668  , p_source_20            IN NUMBER
84669 --Payment Distribution (Payment Rate) Ledger Amount
84670  , p_source_21            IN NUMBER
84671 --Payment Distribution (Cleared Rate) Ledger Amount
84672  , p_source_22            IN NUMBER
84673 --Invoice Distribution Account
84674  , p_source_29            IN NUMBER
84675 --Automatic Offsets Flag
84676  , p_source_42            IN VARCHAR2
84677  , p_source_42_meaning    IN VARCHAR2
84678 --When to Account for Payment Option
84679  , p_source_50            IN VARCHAR2
84680 --Payment Distribution Type
84681  , p_source_51            IN VARCHAR2
84682  , p_source_51_meaning    IN VARCHAR2
84683 --Accounting Reversal Indicator
84684  , p_source_52            IN VARCHAR2
84685 --Payment Distribution Amount
84686  , p_source_53            IN NUMBER
84687 --Business Flow Accounts Payable Application Identifier
84688  , p_source_54            IN NUMBER
84689 --Payment Distribution Identifier
84690  , p_source_59            IN NUMBER
84691 --Distribution Link Type
84692  , p_source_60            IN VARCHAR2
84693 --Override Accounted Amount Indicator
84694  , p_source_64            IN VARCHAR2
84695  , p_source_64_meaning    IN VARCHAR2
84696 --Payment Supplier Identifier
84697  , p_source_65            IN NUMBER
84698 --Payment Supplier Site Identifier
84699  , p_source_66            IN NUMBER
84700 --Third Party Type
84701  , p_source_67            IN VARCHAR2
84702 --Payment Distribution Reversed Identifier
84703  , p_source_68            IN NUMBER
84704 --Invoice Distribution Tax Line Identifier
84705  , p_source_69            IN NUMBER
84706 --Invoice Distribution Summary Tax Line Identifier
84707  , p_source_70            IN NUMBER
84708 --Payment Type
84709  , p_source_71            IN VARCHAR2
84710  , p_source_71_meaning    IN VARCHAR2
84711 --Invoice Distribution Amount of the Payment Distribution
84712  , p_source_72            IN NUMBER
84713 --Business Flow Invoice Distribution Type
84714  , p_source_73            IN VARCHAR2
84715 --Business Flow Invoice Entity Code
84716  , p_source_74            IN VARCHAR2
84717 --Business Flow Invoice Distribution Identifier
84718  , p_source_75            IN NUMBER
84719 --Business Flow Invoice Identifier
84720  , p_source_76            IN NUMBER
84721 --Invoice Distribution Tax Distribution Identifier from Tax
84722  , p_source_77            IN NUMBER
84723 --Accrue on Receipt Option
84724  , p_source_111            IN VARCHAR2
84725  , p_source_111_meaning    IN VARCHAR2
84726 --Invoice Type Paid
84727  , p_source_112            IN VARCHAR2
84728  , p_source_112_meaning    IN VARCHAR2
84729 --Payment Exchange Date
84730  , p_source_121            IN DATE
84731 --Payment Exchange Rate
84732  , p_source_122            IN NUMBER
84733 --Payment Exchange Rate Type
84734  , p_source_123            IN VARCHAR2
84735 )
84736 IS
84737 
84738 l_component_type              VARCHAR2(80);
84739 l_component_code              VARCHAR2(30);
84740 l_component_type_code         VARCHAR2(1);
84741 l_component_appl_id           INTEGER;
84742 l_amb_context_code            VARCHAR2(30);
84743 l_entity_code                 VARCHAR2(30);
84744 l_event_class_code            VARCHAR2(30);
84745 l_ae_header_id                NUMBER;
84746 l_event_type_code             VARCHAR2(30);
84747 l_line_definition_code        VARCHAR2(30);
84748 l_line_definition_owner_code  VARCHAR2(1);
84749 --
84750 -- adr variables
84751 l_segment                     VARCHAR2(30);
84752 l_ccid                        NUMBER;
84753 l_adr_transaction_coa_id      NUMBER;
84754 l_adr_accounting_coa_id       NUMBER;
84755 l_adr_flexfield_segment_code  VARCHAR2(30);
84756 l_adr_flex_value_set_id       NUMBER;
84757 l_adr_value_type_code         VARCHAR2(30);
84758 l_adr_value_combination_id    NUMBER;
84759 l_adr_value_segment_code      VARCHAR2(30);
84760 
84761 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
84762 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
84763 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
84764 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
84765 
84766 -- 4262811 Variables ------------------------------------------------------------------------------------------
84767 l_entered_amt_idx             NUMBER;
84768 l_accted_amt_idx              NUMBER;
84769 l_acc_rev_flag                VARCHAR2(1);
84770 l_accrual_line_num            NUMBER;
84771 l_tmp_amt                     NUMBER;
84772 l_acc_rev_natural_side_code   VARCHAR2(1);
84773 
84774 l_num_entries                 NUMBER;
84775 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
84776 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
84777 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
84778 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
84779 l_recog_line_1                NUMBER;
84780 l_recog_line_2                NUMBER;
84781 
84785 
84782 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
84783 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
84784 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
84786 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
84787 
84788 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
84789 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
84790 
84791 ---------------------------------------------------------------------------------------------------------------
84792 
84793 
84794 --
84795 -- bulk performance
84796 --
84797 l_balance_type_code           VARCHAR2(1);
84798 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
84799 l_log_module                  VARCHAR2(240);
84800 
84801 --
84802 -- Upgrade strategy
84803 --
84804 l_actual_upg_option           VARCHAR2(1);
84805 l_enc_upg_option           VARCHAR2(1);
84806 
84807 --
84808 BEGIN
84809 --
84810 IF g_log_enabled THEN
84811       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_150';
84812 END IF;
84813 --
84814 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84815 
84816       trace
84817          (p_msg      => 'BEGIN of AcctLineType_150'
84818          ,p_level    => C_LEVEL_PROCEDURE
84819          ,p_module   => l_log_module);
84820 
84821 END IF;
84822 --
84823 l_component_type             := 'AMB_JLT';
84824 l_component_code             := 'AP_TAX_EX_RATE_VAR_PMT';
84825 l_component_type_code        := 'S';
84826 l_component_appl_id          :=  200;
84827 l_amb_context_code           := 'DEFAULT';
84828 l_entity_code                := 'AP_PAYMENTS';
84829 l_event_class_code           := 'PAYMENTS';
84830 l_event_type_code            := 'PAYMENTS_ALL';
84831 l_line_definition_owner_code := 'S';
84832 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
84833 --
84834 l_balance_type_code          := 'A';
84835 l_segment                     := NULL;
84836 l_ccid                        := NULL;
84837 l_adr_transaction_coa_id      := NULL;
84838 l_adr_accounting_coa_id       := NULL;
84839 l_adr_flexfield_segment_code  := NULL;
84840 l_adr_flex_value_set_id       := NULL;
84841 l_adr_value_type_code         := NULL;
84842 l_adr_value_combination_id    := NULL;
84843 l_adr_value_segment_code      := NULL;
84844 
84845 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
84846 l_bflow_class_code           := '';    -- 4219869 Business Flow
84847 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
84848 l_budgetary_control_flag     := 'N';
84849 
84850 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
84851 l_bflow_applied_to_amt       := NULL; -- 5132302
84852 l_entered_amt_idx            := NULL;          -- 4262811
84853 l_accted_amt_idx             := NULL;          -- 4262811
84854 l_acc_rev_flag               := NULL;          -- 4262811
84855 l_accrual_line_num           := NULL;          -- 4262811
84856 l_tmp_amt                    := NULL;          -- 4262811
84857 --
84858 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
84859             (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
84860                return;
84861   END IF;
84862   
84863 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
84864     l_balance_type_code <> 'B' THEN
84865 IF NVL(p_source_50,'
84866 ') <>  'CLEAR_CLEAR' AND 
84867 NVL(p_source_51,'
84868 ') =  'TAX EXCHANGE RATE VARIANCE' AND 
84869 NVL(p_source_111,'
84870 ') =  'Y' AND 
84871 NVL(p_source_112,'
84872 ') <>  'INTEREST' AND 
84873 NVL(p_source_71,'
84874 ') <>  'R'
84875  THEN 
84876 
84877    --
84878    XLA_AE_LINES_PKG.SetNewLine;
84879 
84880    p_balance_type_code          := l_balance_type_code;
84881    -- set the flag so later we will know whether the gain loss line needs to be created
84882    
84883    IF(l_balance_type_code = 'A' ) THEN
84884      p_actual_flag :='G';
84885    END IF;
84886 
84887    --
84888    -- bulk performance
84889    --
84890    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
84891                                       p_header_num   => 0); -- 4262811
84892    --
84893    -- set accounting line options
84894    --
84895    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
84896            p_natural_side_code          => 'D'
84897          , p_gain_or_loss_flag          => 'Y'
84898          , p_gl_transfer_mode_code      => 'S'
84899          , p_acct_entry_type_code       => 'A'
84900          , p_switch_side_flag           => 'Y'
84901          , p_merge_duplicate_code       => 'A'
84902          );
84903    --
84904    l_acc_rev_natural_side_code := 'C';  -- 4262811
84905    -- 
84906    --
84907    -- set accounting line type info
84908    --
84909    xla_ae_lines_pkg.SetAcctLineType
84910       (p_component_type             => l_component_type
84911       ,p_event_type_code            => l_event_type_code
84912       ,p_line_definition_owner_code => l_line_definition_owner_code
84913       ,p_line_definition_code       => l_line_definition_code
84917       ,p_amb_context_code           => l_amb_context_code
84914       ,p_accounting_line_code       => l_component_code
84915       ,p_accounting_line_type_code  => l_component_type_code
84916       ,p_accounting_line_appl_id    => l_component_appl_id
84918       ,p_entity_code                => l_entity_code
84919       ,p_event_class_code           => l_event_class_code);
84920    --
84921    -- set accounting class
84922    --
84923    xla_ae_lines_pkg.SetAcctClass(
84924            p_accounting_class_code  => 'TERV'
84925          , p_ae_header_id           => l_ae_header_id
84926          );
84927 
84928    --
84929    -- set rounding class
84930    --
84931    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
84932                       'TERV';
84933 
84934    --
84935    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
84936    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
84937    --
84938    -- bulk performance
84939    --
84940    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
84941 
84942    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
84943       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
84944 
84945    -- 4955764
84946    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84947       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
84948 
84949    -- 4458381 Public Sector Enh
84950    
84951    --
84952    -- set accounting attributes for the line type
84953    --
84954    l_entered_amt_idx := 10;
84955    l_accted_amt_idx  := 15;
84956    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
84957    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
84958    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
84959    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
84960    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
84961    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
84962    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
84963    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
84964    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
84965    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
84966    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
84967    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
84968    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
84969    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
84970    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
84971    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
84972    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
84973    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
84974    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
84975    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
84976    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
84977    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
84978    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
84979    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
84980    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
84981    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
84982    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
84983    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
84984    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
84985    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
84986    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
84987    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
84988    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
84989    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
84990    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
84991    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
84992    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
84993    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
84994    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
84995    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
84996    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
84997    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
84998    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
84999    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
85000    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
85001    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
85002    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
85003    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
85004    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
85005 
85006    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
85007    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
85008 
85009    ---------------------------------------------------------------------------------------------------------------
85010    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
85014    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85011    ---------------------------------------------------------------------------------------------------------------
85012    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
85013 
85015    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85016 
85017    IF xla_accounting_cache_pkg.GetValueChar
85018          (p_source_code         => 'LEDGER_CATEGORY_CODE'
85019          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
85020    AND l_bflow_method_code = 'PRIOR_ENTRY'
85021 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
85022    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
85023          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
85024        )
85025    THEN
85026          xla_ae_lines_pkg.BflowUpgEntry
85027            (p_business_method_code    => l_bflow_method_code
85028            ,p_business_class_code     => l_bflow_class_code
85029            ,p_balance_type            => l_balance_type_code);
85030    ELSE
85031       NULL;
85032 -- No business flow processing for business flow method of NONE.
85033    END IF;
85034 
85035    --
85036    -- call analytical criteria
85037    --
85038    
85039    --
85040    -- call description
85041    --
85042    -- No description or it is inherited.
85043    --
85044    -- call ADRs
85045    -- Bug 4922099
85046    --
85047    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85048         (NVL(l_actual_upg_option, 'N') = 'O') OR
85049         (NVL(l_enc_upg_option, 'N') = 'O')
85050       )
85051    THEN
85052    NULL;
85053    --
85054    --
85055    
85056   l_ccid := AcctDerRule_24(
85057            p_application_id           => p_application_id
85058          , p_ae_header_id             => l_ae_header_id 
85059 , p_source_16 => p_source_16
85060 , p_source_16_meaning => p_source_16_meaning
85061 , p_source_17 => p_source_17
85062 , p_source_19 => p_source_19
85063 , p_source_19_meaning => p_source_19_meaning
85064 , p_source_20 => p_source_20
85065 , p_source_21 => p_source_21
85066 , p_source_22 => p_source_22
85067 , p_source_29 => p_source_29
85068 , p_source_42 => p_source_42
85069 , p_source_42_meaning => p_source_42_meaning
85070          , x_transaction_coa_id       => l_adr_transaction_coa_id
85071          , x_accounting_coa_id        => l_adr_accounting_coa_id
85072          , x_value_type_code          => l_adr_value_type_code
85073          , p_side                     => 'NA'
85074    );
85075 
85076    xla_ae_lines_pkg.set_ccid(
85077     p_code_combination_id          => l_ccid
85078   , p_value_type_code              => l_adr_value_type_code
85079   , p_transaction_coa_id           => l_adr_transaction_coa_id
85080   , p_accounting_coa_id            => l_adr_accounting_coa_id
85081   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
85082   , p_adr_type_code                => 'S'
85083   , p_component_type               => l_component_type
85084   , p_component_code               => l_component_code
85085   , p_component_type_code          => l_component_type_code
85086   , p_component_appl_id            => l_component_appl_id
85087   , p_amb_context_code             => l_amb_context_code
85088   , p_side                         => 'NA'
85089   );
85090 
85091 
85092    l_segment := AcctDerRule_6(
85093            p_application_id           => p_application_id
85094          , p_ae_header_id             => l_ae_header_id 
85095 , p_source_16 => p_source_16
85096 , p_source_16_meaning => p_source_16_meaning
85097 , p_source_17 => p_source_17
85098 , p_source_19 => p_source_19
85099 , p_source_19_meaning => p_source_19_meaning
85100 , p_source_20 => p_source_20
85101 , p_source_21 => p_source_21
85102 , p_source_22 => p_source_22
85103          , x_transaction_coa_id       => l_adr_transaction_coa_id
85104          , x_accounting_coa_id        => l_adr_accounting_coa_id
85105          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
85106          , x_flex_value_set_id        => l_adr_flex_value_set_id
85107          , x_value_type_code          => l_adr_value_type_code
85108          , x_value_combination_id     => l_adr_value_combination_id
85109          , x_value_segment_code       => l_adr_value_segment_code
85110          , p_side                     => 'NA'
85111          , p_override_seg_flag        => 'Y'
85112    );
85113 
85114    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
85115 
85116       xla_ae_lines_pkg.set_segment(
85117           p_to_segment_code         => 'GL_ACCOUNT'
85118         , p_segment_value           => l_segment
85119         , p_from_segment_code       => l_adr_value_segment_code
85120         , p_from_combination_id     => l_adr_value_combination_id
85121         , p_value_type_code         => l_adr_value_type_code
85122         , p_transaction_coa_id      => l_adr_transaction_coa_id
85123         , p_accounting_coa_id       => l_adr_accounting_coa_id
85124         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
85125         , p_flex_value_set_id       => l_adr_flex_value_set_id
85126         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
85127         , p_adr_type_code           => 'S'
85128         , p_component_type          => l_component_type
85132         , p_amb_context_code        => l_amb_context_code
85129         , p_component_code          => l_component_code
85130         , p_component_type_code     => l_component_type_code
85131         , p_component_appl_id       => l_component_appl_id
85133         , p_entity_code             => 'AP_PAYMENTS'
85134         , p_event_class_code        => 'PAYMENTS'
85135         , p_side                    => 'NA'
85136         );
85137 
85138   END IF;
85139 
85140    l_segment := AcctDerRule_17(
85141            p_application_id           => p_application_id
85142          , p_ae_header_id             => l_ae_header_id 
85143 , p_source_16 => p_source_16
85144 , p_source_16_meaning => p_source_16_meaning
85145 , p_source_19 => p_source_19
85146 , p_source_19_meaning => p_source_19_meaning
85147 , p_source_29 => p_source_29
85148          , x_transaction_coa_id       => l_adr_transaction_coa_id
85149          , x_accounting_coa_id        => l_adr_accounting_coa_id
85150          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
85151          , x_flex_value_set_id        => l_adr_flex_value_set_id
85152          , x_value_type_code          => l_adr_value_type_code
85153          , x_value_combination_id     => l_adr_value_combination_id
85154          , x_value_segment_code       => l_adr_value_segment_code
85155          , p_side                     => 'NA'
85156          , p_override_seg_flag        => 'Y'
85157    );
85158 
85159    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
85160 
85161       xla_ae_lines_pkg.set_segment(
85162           p_to_segment_code         => 'GL_BALANCING'
85163         , p_segment_value           => l_segment
85164         , p_from_segment_code       => l_adr_value_segment_code
85165         , p_from_combination_id     => l_adr_value_combination_id
85166         , p_value_type_code         => l_adr_value_type_code
85167         , p_transaction_coa_id      => l_adr_transaction_coa_id
85168         , p_accounting_coa_id       => l_adr_accounting_coa_id
85169         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
85170         , p_flex_value_set_id       => l_adr_flex_value_set_id
85171         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
85172         , p_adr_type_code           => 'S'
85173         , p_component_type          => l_component_type
85174         , p_component_code          => l_component_code
85175         , p_component_type_code     => l_component_type_code
85176         , p_component_appl_id       => l_component_appl_id
85177         , p_amb_context_code        => l_amb_context_code
85178         , p_entity_code             => 'AP_PAYMENTS'
85179         , p_event_class_code        => 'PAYMENTS'
85180         , p_side                    => 'NA'
85181         );
85182 
85183   END IF;
85184 
85185    --
85186    --
85187    END IF;
85188    --
85189    -- Bug 4922099
85190    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
85191           (NVL(l_enc_upg_option, 'N') = 'O')
85192         ) AND
85193         (l_bflow_method_code = 'PRIOR_ENTRY')
85194       )
85195    THEN
85196       IF
85197       --
85198       1 = 2
85199       --
85200       THEN
85201       xla_accounting_err_pkg.build_message
85202                                     (p_appli_s_name            => 'XLA'
85203                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85204                                     ,p_token_1                 => 'LINE_NUMBER'
85205                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
85206                                     ,p_token_2                 => 'LINE_TYPE_NAME'
85207                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
85208                                                                              l_component_type
85209                                                                             ,l_component_code
85210                                                                             ,l_component_type_code
85211                                                                             ,l_component_appl_id
85212                                                                             ,l_amb_context_code
85213                                                                             ,l_entity_code
85214                                                                             ,l_event_class_code
85215                                                                            )
85216                                     ,p_token_3                 => 'OWNER'
85217                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
85218                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
85219                                                                           ,p_lookup_code    => l_component_type_code
85220                                                                          )
85221                                     ,p_token_4                 => 'PRODUCT_NAME'
85222                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
85223                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
85224                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
85225                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
85226                                     ,p_ae_header_id            =>  NULL
85227                                        );
85228 
85229         IF (C_LEVEL_ERROR>= g_log_level) THEN
85233                       ,p_module   => l_log_module);
85230                  trace
85231                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85232                       ,p_level    => C_LEVEL_ERROR
85234         END IF;
85235       END IF;
85236    END IF;
85237    --
85238    --
85239    ------------------------------------------------------------------------------------------------
85240    -- 4219869 Business Flow
85241    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
85242    -- Prior Entry.  Currently, the following code is always generated.
85243    ------------------------------------------------------------------------------------------------
85244    XLA_AE_LINES_PKG.ValidateCurrentLine;
85245 
85246    ------------------------------------------------------------------------------------
85247    -- 4219869 Business Flow
85248    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
85249    ------------------------------------------------------------------------------------
85250    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85251 
85252    ----------------------------------------------------------------------------------
85253    -- 4219869 Business Flow
85254    -- Update journal entry status -- Need to generate this within IF <condition>
85255    ----------------------------------------------------------------------------------
85256    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85257          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
85258          ,p_balance_type_code => l_balance_type_code
85259          );
85260 
85261    -------------------------------------------------------------------------------------------
85262    -- 4262811 - Generate the Accrual Reversal lines
85263    -------------------------------------------------------------------------------------------
85264    BEGIN
85265       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
85266                               (g_array_event(p_event_id).array_value_num('header_index'));
85267       IF l_acc_rev_flag IS NULL THEN
85268          l_acc_rev_flag := 'N';
85269       END IF;
85270    EXCEPTION
85271       WHEN OTHERS THEN
85272          l_acc_rev_flag := 'N';
85273    END;
85274    --
85275    IF (l_acc_rev_flag = 'Y') THEN
85276 
85277        -- 4645092  ------------------------------------------------------------------------------
85278        -- To allow MPA report to determine if it should generate report process
85279        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
85280        ------------------------------------------------------------------------------------------
85281 
85282        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
85283        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
85284    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
85285    -- call ADRs
85286    -- Bug 4922099
85287    --
85288    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85289         (NVL(l_actual_upg_option, 'N') = 'O') OR
85290         (NVL(l_enc_upg_option, 'N') = 'O')
85291       )
85292    THEN
85293    NULL;
85294    --
85295    --
85296    
85297   l_ccid := AcctDerRule_24(
85298            p_application_id           => p_application_id
85299          , p_ae_header_id             => l_ae_header_id 
85300 , p_source_16 => p_source_16
85301 , p_source_16_meaning => p_source_16_meaning
85302 , p_source_17 => p_source_17
85303 , p_source_19 => p_source_19
85304 , p_source_19_meaning => p_source_19_meaning
85305 , p_source_20 => p_source_20
85306 , p_source_21 => p_source_21
85307 , p_source_22 => p_source_22
85308 , p_source_29 => p_source_29
85309 , p_source_42 => p_source_42
85310 , p_source_42_meaning => p_source_42_meaning
85311          , x_transaction_coa_id       => l_adr_transaction_coa_id
85312          , x_accounting_coa_id        => l_adr_accounting_coa_id
85313          , x_value_type_code          => l_adr_value_type_code
85314          , p_side                     => 'NA'
85315    );
85316 
85317    xla_ae_lines_pkg.set_ccid(
85318     p_code_combination_id          => l_ccid
85319   , p_value_type_code              => l_adr_value_type_code
85320   , p_transaction_coa_id           => l_adr_transaction_coa_id
85321   , p_accounting_coa_id            => l_adr_accounting_coa_id
85322   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
85323   , p_adr_type_code                => 'S'
85324   , p_component_type               => l_component_type
85325   , p_component_code               => l_component_code
85326   , p_component_type_code          => l_component_type_code
85327   , p_component_appl_id            => l_component_appl_id
85328   , p_amb_context_code             => l_amb_context_code
85329   , p_side                         => 'NA'
85330   );
85331 
85332 
85333    l_segment := AcctDerRule_6(
85334            p_application_id           => p_application_id
85335          , p_ae_header_id             => l_ae_header_id 
85336 , p_source_16 => p_source_16
85337 , p_source_16_meaning => p_source_16_meaning
85338 , p_source_17 => p_source_17
85339 , p_source_19 => p_source_19
85340 , p_source_19_meaning => p_source_19_meaning
85341 , p_source_20 => p_source_20
85342 , p_source_21 => p_source_21
85343 , p_source_22 => p_source_22
85344          , x_transaction_coa_id       => l_adr_transaction_coa_id
85345          , x_accounting_coa_id        => l_adr_accounting_coa_id
85349          , x_value_combination_id     => l_adr_value_combination_id
85346          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
85347          , x_flex_value_set_id        => l_adr_flex_value_set_id
85348          , x_value_type_code          => l_adr_value_type_code
85350          , x_value_segment_code       => l_adr_value_segment_code
85351          , p_side                     => 'NA'
85352          , p_override_seg_flag        => 'Y'
85353    );
85354 
85355    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
85356 
85357       xla_ae_lines_pkg.set_segment(
85358           p_to_segment_code         => 'GL_ACCOUNT'
85359         , p_segment_value           => l_segment
85360         , p_from_segment_code       => l_adr_value_segment_code
85361         , p_from_combination_id     => l_adr_value_combination_id
85362         , p_value_type_code         => l_adr_value_type_code
85363         , p_transaction_coa_id      => l_adr_transaction_coa_id
85364         , p_accounting_coa_id       => l_adr_accounting_coa_id
85365         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
85366         , p_flex_value_set_id       => l_adr_flex_value_set_id
85367         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
85368         , p_adr_type_code           => 'S'
85369         , p_component_type          => l_component_type
85370         , p_component_code          => l_component_code
85371         , p_component_type_code     => l_component_type_code
85372         , p_component_appl_id       => l_component_appl_id
85373         , p_amb_context_code        => l_amb_context_code
85374         , p_entity_code             => 'AP_PAYMENTS'
85375         , p_event_class_code        => 'PAYMENTS'
85376         , p_side                    => 'NA'
85377         );
85378 
85379   END IF;
85380 
85381    l_segment := AcctDerRule_17(
85382            p_application_id           => p_application_id
85383          , p_ae_header_id             => l_ae_header_id 
85384 , p_source_16 => p_source_16
85385 , p_source_16_meaning => p_source_16_meaning
85386 , p_source_19 => p_source_19
85387 , p_source_19_meaning => p_source_19_meaning
85388 , p_source_29 => p_source_29
85389          , x_transaction_coa_id       => l_adr_transaction_coa_id
85390          , x_accounting_coa_id        => l_adr_accounting_coa_id
85391          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
85392          , x_flex_value_set_id        => l_adr_flex_value_set_id
85393          , x_value_type_code          => l_adr_value_type_code
85394          , x_value_combination_id     => l_adr_value_combination_id
85395          , x_value_segment_code       => l_adr_value_segment_code
85396          , p_side                     => 'NA'
85397          , p_override_seg_flag        => 'Y'
85398    );
85399 
85400    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
85401 
85402       xla_ae_lines_pkg.set_segment(
85403           p_to_segment_code         => 'GL_BALANCING'
85404         , p_segment_value           => l_segment
85405         , p_from_segment_code       => l_adr_value_segment_code
85406         , p_from_combination_id     => l_adr_value_combination_id
85407         , p_value_type_code         => l_adr_value_type_code
85408         , p_transaction_coa_id      => l_adr_transaction_coa_id
85409         , p_accounting_coa_id       => l_adr_accounting_coa_id
85410         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
85411         , p_flex_value_set_id       => l_adr_flex_value_set_id
85412         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
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_entity_code             => 'AP_PAYMENTS'
85420         , p_event_class_code        => 'PAYMENTS'
85421         , p_side                    => 'NA'
85422         );
85423 
85424   END IF;
85425 
85426    --
85427    --
85428    END IF;
85429 
85430        --
85431        -- Update the line information that should be overwritten
85432        --
85433        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
85434                                          p_header_num   => 1);
85435        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
85436 
85437        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
85438 
85439        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
85440           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
85441        END IF;
85442 
85443       --
85444       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
85445       --
85446       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
85447           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
85448       ELSE
85449           ---------------------------------------------------------------------------------------------------
85450           -- 4262811a Switch Sign
85451           ---------------------------------------------------------------------------------------------------
85455           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85452           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
85453           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85454                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85456                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85457           -- 5132302
85458           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
85459                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85460 
85461       END IF;
85462 
85463       -- 4955764
85464       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85465       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
85466 
85467 
85468       XLA_AE_LINES_PKG.ValidateCurrentLine;
85469       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85470 
85471       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85472                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
85473                ,p_balance_type_code => l_balance_type_code);
85474 
85475    END IF;
85476 
85477    -----------------------------------------------------------------------------------------
85478    -- 4262811 Multiperiod Accounting
85479    -----------------------------------------------------------------------------------------
85480      -- No MPA option is assigned.
85481 
85482 
85483 END IF;
85484 END IF;
85485 --
85486 
85487 --
85488 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85489    trace
85490       (p_msg      => 'END of AcctLineType_150'
85491       ,p_level    => C_LEVEL_PROCEDURE
85492       ,p_module   => l_log_module);
85493 END IF;
85494 --
85495 EXCEPTION
85496   WHEN xla_exceptions_pkg.application_exception THEN
85497       RAISE;
85498   WHEN OTHERS THEN
85499        xla_exceptions_pkg.raise_message
85500            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_150');
85501 END AcctLineType_150;
85502 --
85503 
85504 ---------------------------------------
85505 --
85506 -- PRIVATE FUNCTION
85507 --         AcctLineType_151
85508 --
85509 ---------------------------------------
85510 PROCEDURE AcctLineType_151 (
85511   p_application_id        IN NUMBER
85512  ,p_event_id              IN NUMBER
85513  ,p_calculate_acctd_flag  IN VARCHAR2
85514  ,p_calculate_g_l_flag    IN VARCHAR2
85515  ,p_actual_flag           IN OUT VARCHAR2
85516  ,p_balance_type_code     OUT VARCHAR2
85517  ,p_gain_or_loss_ref      OUT VARCHAR2
85518  
85519 --Payment Currency Code
85520  , p_source_12            IN VARCHAR2
85521 --Automatic Offsets Value
85522  , p_source_16            IN VARCHAR2
85523  , p_source_16_meaning    IN VARCHAR2
85524 --Purchase Order Rate Variance Gain Account
85525  , p_source_17            IN NUMBER
85526 --Destination Type of the PO Distribution
85527  , p_source_19            IN VARCHAR2
85528  , p_source_19_meaning    IN VARCHAR2
85529 --Purchase Order Rate Variance Loss Account
85530  , p_source_20            IN NUMBER
85531 --Payment Distribution (Payment Rate) Ledger Amount
85532  , p_source_21            IN NUMBER
85533 --Payment Distribution (Cleared Rate) Ledger Amount
85534  , p_source_22            IN NUMBER
85535 --Invoice Distribution Account
85536  , p_source_29            IN NUMBER
85537 --Automatic Offsets Flag
85538  , p_source_42            IN VARCHAR2
85539  , p_source_42_meaning    IN VARCHAR2
85540 --When to Account for Payment Option
85541  , p_source_50            IN VARCHAR2
85542 --Payment Distribution Type
85543  , p_source_51            IN VARCHAR2
85544  , p_source_51_meaning    IN VARCHAR2
85545 --Accounting Reversal Indicator
85546  , p_source_52            IN VARCHAR2
85547 --Payment Distribution Amount
85548  , p_source_53            IN NUMBER
85549 --Business Flow Accounts Payable Application Identifier
85550  , p_source_54            IN NUMBER
85551 --Payment Distribution Identifier
85552  , p_source_59            IN NUMBER
85553 --Distribution Link Type
85554  , p_source_60            IN VARCHAR2
85555 --Override Accounted Amount Indicator
85556  , p_source_64            IN VARCHAR2
85557  , p_source_64_meaning    IN VARCHAR2
85558 --Payment Supplier Identifier
85559  , p_source_65            IN NUMBER
85560 --Payment Supplier Site Identifier
85561  , p_source_66            IN NUMBER
85562 --Third Party Type
85563  , p_source_67            IN VARCHAR2
85564 --Payment Distribution Reversed Identifier
85565  , p_source_68            IN NUMBER
85566 --Invoice Distribution Tax Line Identifier
85567  , p_source_69            IN NUMBER
85568 --Invoice Distribution Summary Tax Line Identifier
85569  , p_source_70            IN NUMBER
85570 --Payment Type
85571  , p_source_71            IN VARCHAR2
85572  , p_source_71_meaning    IN VARCHAR2
85573 --Business Flow Invoice Distribution Type
85574  , p_source_73            IN VARCHAR2
85575 --Business Flow Invoice Entity Code
85576  , p_source_74            IN VARCHAR2
85577 --Business Flow Invoice Distribution Identifier
85578  , p_source_75            IN NUMBER
85579 --Business Flow Invoice Identifier
85583 --Accrue on Receipt Option
85580  , p_source_76            IN NUMBER
85581 --Invoice Distribution Tax Distribution Identifier from Tax
85582  , p_source_77            IN NUMBER
85584  , p_source_111            IN VARCHAR2
85585  , p_source_111_meaning    IN VARCHAR2
85586 --Payment Exchange Date
85587  , p_source_121            IN DATE
85588 --Payment Exchange Rate
85589  , p_source_122            IN NUMBER
85590 --Payment Exchange Rate Type
85591  , p_source_123            IN VARCHAR2
85592 )
85593 IS
85594 
85595 l_component_type              VARCHAR2(80);
85596 l_component_code              VARCHAR2(30);
85597 l_component_type_code         VARCHAR2(1);
85598 l_component_appl_id           INTEGER;
85599 l_amb_context_code            VARCHAR2(30);
85600 l_entity_code                 VARCHAR2(30);
85601 l_event_class_code            VARCHAR2(30);
85602 l_ae_header_id                NUMBER;
85603 l_event_type_code             VARCHAR2(30);
85604 l_line_definition_code        VARCHAR2(30);
85605 l_line_definition_owner_code  VARCHAR2(1);
85606 --
85607 -- adr variables
85608 l_segment                     VARCHAR2(30);
85609 l_ccid                        NUMBER;
85610 l_adr_transaction_coa_id      NUMBER;
85611 l_adr_accounting_coa_id       NUMBER;
85612 l_adr_flexfield_segment_code  VARCHAR2(30);
85613 l_adr_flex_value_set_id       NUMBER;
85614 l_adr_value_type_code         VARCHAR2(30);
85615 l_adr_value_combination_id    NUMBER;
85616 l_adr_value_segment_code      VARCHAR2(30);
85617 
85618 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
85619 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
85620 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
85621 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
85622 
85623 -- 4262811 Variables ------------------------------------------------------------------------------------------
85624 l_entered_amt_idx             NUMBER;
85625 l_accted_amt_idx              NUMBER;
85626 l_acc_rev_flag                VARCHAR2(1);
85627 l_accrual_line_num            NUMBER;
85628 l_tmp_amt                     NUMBER;
85629 l_acc_rev_natural_side_code   VARCHAR2(1);
85630 
85631 l_num_entries                 NUMBER;
85632 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
85633 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
85634 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
85635 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
85636 l_recog_line_1                NUMBER;
85637 l_recog_line_2                NUMBER;
85638 
85639 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
85640 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
85641 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
85642 
85643 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
85644 
85645 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
85646 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
85647 
85648 ---------------------------------------------------------------------------------------------------------------
85649 
85650 
85651 --
85652 -- bulk performance
85653 --
85654 l_balance_type_code           VARCHAR2(1);
85655 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
85656 l_log_module                  VARCHAR2(240);
85657 
85658 --
85659 -- Upgrade strategy
85660 --
85661 l_actual_upg_option           VARCHAR2(1);
85662 l_enc_upg_option           VARCHAR2(1);
85663 
85664 --
85665 BEGIN
85666 --
85667 IF g_log_enabled THEN
85668       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_151';
85669 END IF;
85670 --
85671 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85672 
85673       trace
85674          (p_msg      => 'BEGIN of AcctLineType_151'
85675          ,p_level    => C_LEVEL_PROCEDURE
85676          ,p_module   => l_log_module);
85677 
85678 END IF;
85679 --
85680 l_component_type             := 'AMB_JLT';
85681 l_component_code             := 'AP_TAX_EX_RATE_VAR_REF';
85682 l_component_type_code        := 'S';
85683 l_component_appl_id          :=  200;
85684 l_amb_context_code           := 'DEFAULT';
85685 l_entity_code                := 'AP_PAYMENTS';
85686 l_event_class_code           := 'REFUNDS';
85687 l_event_type_code            := 'REFUNDS_ALL';
85688 l_line_definition_owner_code := 'S';
85689 l_line_definition_code       := 'CASH_REFUNDS_ALL';
85690 --
85691 l_balance_type_code          := 'A';
85692 l_segment                     := NULL;
85693 l_ccid                        := NULL;
85694 l_adr_transaction_coa_id      := NULL;
85695 l_adr_accounting_coa_id       := NULL;
85696 l_adr_flexfield_segment_code  := NULL;
85697 l_adr_flex_value_set_id       := NULL;
85698 l_adr_value_type_code         := NULL;
85699 l_adr_value_combination_id    := NULL;
85700 l_adr_value_segment_code      := NULL;
85701 
85702 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
85703 l_bflow_class_code           := '';    -- 4219869 Business Flow
85704 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
85705 l_budgetary_control_flag     := 'N';
85706 
85707 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
85711 l_acc_rev_flag               := NULL;          -- 4262811
85708 l_bflow_applied_to_amt       := NULL; -- 5132302
85709 l_entered_amt_idx            := NULL;          -- 4262811
85710 l_accted_amt_idx             := NULL;          -- 4262811
85712 l_accrual_line_num           := NULL;          -- 4262811
85713 l_tmp_amt                    := NULL;          -- 4262811
85714 --
85715 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
85716             (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
85717                return;
85718   END IF;
85719   
85720 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
85721     l_balance_type_code <> 'B' THEN
85722 IF NVL(p_source_50,'
85723 ') <>  'CLEAR_CLEAR' AND 
85724 NVL(p_source_51,'
85725 ') =  'TAX EXCHANGE RATE VARIANCE' AND 
85726 NVL(p_source_111,'
85727 ') =  'Y' AND 
85728 NVL(p_source_71,'
85729 ') =  'R'
85730  THEN 
85731 
85732    --
85733    XLA_AE_LINES_PKG.SetNewLine;
85734 
85735    p_balance_type_code          := l_balance_type_code;
85736    -- set the flag so later we will know whether the gain loss line needs to be created
85737    
85738    IF(l_balance_type_code = 'A' ) THEN
85739      p_actual_flag :='G';
85740    END IF;
85741 
85742    --
85743    -- bulk performance
85744    --
85745    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
85746                                       p_header_num   => 0); -- 4262811
85747    --
85748    -- set accounting line options
85749    --
85750    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
85751            p_natural_side_code          => 'D'
85752          , p_gain_or_loss_flag          => 'Y'
85753          , p_gl_transfer_mode_code      => 'S'
85754          , p_acct_entry_type_code       => 'A'
85755          , p_switch_side_flag           => 'Y'
85756          , p_merge_duplicate_code       => 'A'
85757          );
85758    --
85759    l_acc_rev_natural_side_code := 'C';  -- 4262811
85760    -- 
85761    --
85762    -- set accounting line type info
85763    --
85764    xla_ae_lines_pkg.SetAcctLineType
85765       (p_component_type             => l_component_type
85766       ,p_event_type_code            => l_event_type_code
85767       ,p_line_definition_owner_code => l_line_definition_owner_code
85768       ,p_line_definition_code       => l_line_definition_code
85769       ,p_accounting_line_code       => l_component_code
85770       ,p_accounting_line_type_code  => l_component_type_code
85771       ,p_accounting_line_appl_id    => l_component_appl_id
85772       ,p_amb_context_code           => l_amb_context_code
85773       ,p_entity_code                => l_entity_code
85774       ,p_event_class_code           => l_event_class_code);
85775    --
85776    -- set accounting class
85777    --
85778    xla_ae_lines_pkg.SetAcctClass(
85779            p_accounting_class_code  => 'TERV'
85780          , p_ae_header_id           => l_ae_header_id
85781          );
85782 
85783    --
85784    -- set rounding class
85785    --
85786    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
85787                       'TERV';
85788 
85789    --
85790    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
85791    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
85792    --
85793    -- bulk performance
85794    --
85795    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
85796 
85797    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
85798       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
85799 
85800    -- 4955764
85801    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85802       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
85803 
85804    -- 4458381 Public Sector Enh
85805    
85806    --
85807    -- set accounting attributes for the line type
85808    --
85809    l_entered_amt_idx := 9;
85810    l_accted_amt_idx  := 14;
85811    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
85812    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
85813    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
85814    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
85815    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
85816    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
85817    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
85818    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
85819    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
85820    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
85821    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
85822    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
85823    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
85824    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
85825    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
85826    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
85827    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
85831    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
85828    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
85829    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
85830    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
85832    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
85833    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
85834    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
85835    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
85836    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
85837    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
85838    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
85839    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
85840    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
85841    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
85842    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
85843    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
85844    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
85845    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
85846    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
85847    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
85848    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
85849    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
85850    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
85851    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
85852    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
85853    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
85854    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
85855    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
85856    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
85857    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
85858 
85859    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
85860    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
85861 
85862    ---------------------------------------------------------------------------------------------------------------
85863    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
85864    ---------------------------------------------------------------------------------------------------------------
85865    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
85866 
85867    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85868    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85869 
85870    IF xla_accounting_cache_pkg.GetValueChar
85871          (p_source_code         => 'LEDGER_CATEGORY_CODE'
85872          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
85873    AND l_bflow_method_code = 'PRIOR_ENTRY'
85874 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
85875    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
85876          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
85877        )
85878    THEN
85879          xla_ae_lines_pkg.BflowUpgEntry
85880            (p_business_method_code    => l_bflow_method_code
85881            ,p_business_class_code     => l_bflow_class_code
85882            ,p_balance_type            => l_balance_type_code);
85883    ELSE
85884       NULL;
85885 -- No business flow processing for business flow method of NONE.
85886    END IF;
85887 
85888    --
85889    -- call analytical criteria
85890    --
85891    
85892    --
85893    -- call description
85894    --
85895    -- No description or it is inherited.
85896    --
85897    -- call ADRs
85898    -- Bug 4922099
85899    --
85900    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85901         (NVL(l_actual_upg_option, 'N') = 'O') OR
85902         (NVL(l_enc_upg_option, 'N') = 'O')
85903       )
85904    THEN
85905    NULL;
85906    --
85907    --
85908    
85909   l_ccid := AcctDerRule_24(
85910            p_application_id           => p_application_id
85911          , p_ae_header_id             => l_ae_header_id 
85912 , p_source_16 => p_source_16
85913 , p_source_16_meaning => p_source_16_meaning
85914 , p_source_17 => p_source_17
85915 , p_source_19 => p_source_19
85916 , p_source_19_meaning => p_source_19_meaning
85917 , p_source_20 => p_source_20
85918 , p_source_21 => p_source_21
85919 , p_source_22 => p_source_22
85920 , p_source_29 => p_source_29
85921 , p_source_42 => p_source_42
85922 , p_source_42_meaning => p_source_42_meaning
85923          , x_transaction_coa_id       => l_adr_transaction_coa_id
85924          , x_accounting_coa_id        => l_adr_accounting_coa_id
85925          , x_value_type_code          => l_adr_value_type_code
85926          , p_side                     => 'NA'
85927    );
85928 
85929    xla_ae_lines_pkg.set_ccid(
85930     p_code_combination_id          => l_ccid
85931   , p_value_type_code              => l_adr_value_type_code
85932   , p_transaction_coa_id           => l_adr_transaction_coa_id
85933   , p_accounting_coa_id            => l_adr_accounting_coa_id
85934   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
85935   , p_adr_type_code                => 'S'
85936   , p_component_type               => l_component_type
85937   , p_component_code               => l_component_code
85941   , p_side                         => 'NA'
85938   , p_component_type_code          => l_component_type_code
85939   , p_component_appl_id            => l_component_appl_id
85940   , p_amb_context_code             => l_amb_context_code
85942   );
85943 
85944 
85945    l_segment := AcctDerRule_6(
85946            p_application_id           => p_application_id
85947          , p_ae_header_id             => l_ae_header_id 
85948 , p_source_16 => p_source_16
85949 , p_source_16_meaning => p_source_16_meaning
85950 , p_source_17 => p_source_17
85951 , p_source_19 => p_source_19
85952 , p_source_19_meaning => p_source_19_meaning
85953 , p_source_20 => p_source_20
85954 , p_source_21 => p_source_21
85955 , p_source_22 => p_source_22
85956          , x_transaction_coa_id       => l_adr_transaction_coa_id
85957          , x_accounting_coa_id        => l_adr_accounting_coa_id
85958          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
85959          , x_flex_value_set_id        => l_adr_flex_value_set_id
85960          , x_value_type_code          => l_adr_value_type_code
85961          , x_value_combination_id     => l_adr_value_combination_id
85962          , x_value_segment_code       => l_adr_value_segment_code
85963          , p_side                     => 'NA'
85964          , p_override_seg_flag        => 'Y'
85965    );
85966 
85967    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
85968 
85969       xla_ae_lines_pkg.set_segment(
85970           p_to_segment_code         => 'GL_ACCOUNT'
85971         , p_segment_value           => l_segment
85972         , p_from_segment_code       => l_adr_value_segment_code
85973         , p_from_combination_id     => l_adr_value_combination_id
85974         , p_value_type_code         => l_adr_value_type_code
85975         , p_transaction_coa_id      => l_adr_transaction_coa_id
85976         , p_accounting_coa_id       => l_adr_accounting_coa_id
85977         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
85978         , p_flex_value_set_id       => l_adr_flex_value_set_id
85979         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
85980         , p_adr_type_code           => 'S'
85981         , p_component_type          => l_component_type
85982         , p_component_code          => l_component_code
85983         , p_component_type_code     => l_component_type_code
85984         , p_component_appl_id       => l_component_appl_id
85985         , p_amb_context_code        => l_amb_context_code
85986         , p_entity_code             => 'AP_PAYMENTS'
85987         , p_event_class_code        => 'REFUNDS'
85988         , p_side                    => 'NA'
85989         );
85990 
85991   END IF;
85992 
85993    l_segment := AcctDerRule_17(
85994            p_application_id           => p_application_id
85995          , p_ae_header_id             => l_ae_header_id 
85996 , p_source_16 => p_source_16
85997 , p_source_16_meaning => p_source_16_meaning
85998 , p_source_19 => p_source_19
85999 , p_source_19_meaning => p_source_19_meaning
86000 , p_source_29 => p_source_29
86001          , x_transaction_coa_id       => l_adr_transaction_coa_id
86002          , x_accounting_coa_id        => l_adr_accounting_coa_id
86003          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
86004          , x_flex_value_set_id        => l_adr_flex_value_set_id
86005          , x_value_type_code          => l_adr_value_type_code
86006          , x_value_combination_id     => l_adr_value_combination_id
86007          , x_value_segment_code       => l_adr_value_segment_code
86008          , p_side                     => 'NA'
86009          , p_override_seg_flag        => 'Y'
86010    );
86011 
86012    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
86013 
86014       xla_ae_lines_pkg.set_segment(
86015           p_to_segment_code         => 'GL_BALANCING'
86016         , p_segment_value           => l_segment
86017         , p_from_segment_code       => l_adr_value_segment_code
86018         , p_from_combination_id     => l_adr_value_combination_id
86019         , p_value_type_code         => l_adr_value_type_code
86020         , p_transaction_coa_id      => l_adr_transaction_coa_id
86021         , p_accounting_coa_id       => l_adr_accounting_coa_id
86022         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
86023         , p_flex_value_set_id       => l_adr_flex_value_set_id
86024         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
86025         , p_adr_type_code           => 'S'
86026         , p_component_type          => l_component_type
86027         , p_component_code          => l_component_code
86028         , p_component_type_code     => l_component_type_code
86029         , p_component_appl_id       => l_component_appl_id
86030         , p_amb_context_code        => l_amb_context_code
86031         , p_entity_code             => 'AP_PAYMENTS'
86032         , p_event_class_code        => 'REFUNDS'
86033         , p_side                    => 'NA'
86034         );
86035 
86036   END IF;
86037 
86038    --
86039    --
86040    END IF;
86041    --
86042    -- Bug 4922099
86043    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
86044           (NVL(l_enc_upg_option, 'N') = 'O')
86045         ) AND
86046         (l_bflow_method_code = 'PRIOR_ENTRY')
86047       )
86048    THEN
86049       IF
86050       --
86051       1 = 2
86052       --
86053       THEN
86054       xla_accounting_err_pkg.build_message
86055                                     (p_appli_s_name            => 'XLA'
86059                                     ,p_token_2                 => 'LINE_TYPE_NAME'
86056                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86057                                     ,p_token_1                 => 'LINE_NUMBER'
86058                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
86060                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
86061                                                                              l_component_type
86062                                                                             ,l_component_code
86063                                                                             ,l_component_type_code
86064                                                                             ,l_component_appl_id
86065                                                                             ,l_amb_context_code
86066                                                                             ,l_entity_code
86067                                                                             ,l_event_class_code
86068                                                                            )
86069                                     ,p_token_3                 => 'OWNER'
86070                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
86071                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
86072                                                                           ,p_lookup_code    => l_component_type_code
86073                                                                          )
86074                                     ,p_token_4                 => 'PRODUCT_NAME'
86075                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
86076                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
86077                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
86078                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
86079                                     ,p_ae_header_id            =>  NULL
86080                                        );
86081 
86082         IF (C_LEVEL_ERROR>= g_log_level) THEN
86083                  trace
86084                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86085                       ,p_level    => C_LEVEL_ERROR
86086                       ,p_module   => l_log_module);
86087         END IF;
86088       END IF;
86089    END IF;
86090    --
86091    --
86092    ------------------------------------------------------------------------------------------------
86093    -- 4219869 Business Flow
86094    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
86095    -- Prior Entry.  Currently, the following code is always generated.
86096    ------------------------------------------------------------------------------------------------
86097    XLA_AE_LINES_PKG.ValidateCurrentLine;
86098 
86099    ------------------------------------------------------------------------------------
86100    -- 4219869 Business Flow
86101    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
86102    ------------------------------------------------------------------------------------
86103    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86104 
86105    ----------------------------------------------------------------------------------
86106    -- 4219869 Business Flow
86107    -- Update journal entry status -- Need to generate this within IF <condition>
86108    ----------------------------------------------------------------------------------
86109    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86110          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
86111          ,p_balance_type_code => l_balance_type_code
86112          );
86113 
86114    -------------------------------------------------------------------------------------------
86115    -- 4262811 - Generate the Accrual Reversal lines
86116    -------------------------------------------------------------------------------------------
86117    BEGIN
86118       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
86119                               (g_array_event(p_event_id).array_value_num('header_index'));
86120       IF l_acc_rev_flag IS NULL THEN
86121          l_acc_rev_flag := 'N';
86122       END IF;
86123    EXCEPTION
86124       WHEN OTHERS THEN
86125          l_acc_rev_flag := 'N';
86126    END;
86127    --
86128    IF (l_acc_rev_flag = 'Y') THEN
86129 
86130        -- 4645092  ------------------------------------------------------------------------------
86131        -- To allow MPA report to determine if it should generate report process
86132        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
86133        ------------------------------------------------------------------------------------------
86134 
86135        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
86136        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
86137    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
86138    -- call ADRs
86139    -- Bug 4922099
86140    --
86141    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86142         (NVL(l_actual_upg_option, 'N') = 'O') OR
86143         (NVL(l_enc_upg_option, 'N') = 'O')
86144       )
86145    THEN
86146    NULL;
86150   l_ccid := AcctDerRule_24(
86147    --
86148    --
86149    
86151            p_application_id           => p_application_id
86152          , p_ae_header_id             => l_ae_header_id 
86153 , p_source_16 => p_source_16
86154 , p_source_16_meaning => p_source_16_meaning
86155 , p_source_17 => p_source_17
86156 , p_source_19 => p_source_19
86157 , p_source_19_meaning => p_source_19_meaning
86158 , p_source_20 => p_source_20
86159 , p_source_21 => p_source_21
86160 , p_source_22 => p_source_22
86161 , p_source_29 => p_source_29
86162 , p_source_42 => p_source_42
86163 , p_source_42_meaning => p_source_42_meaning
86164          , x_transaction_coa_id       => l_adr_transaction_coa_id
86165          , x_accounting_coa_id        => l_adr_accounting_coa_id
86166          , x_value_type_code          => l_adr_value_type_code
86167          , p_side                     => 'NA'
86168    );
86169 
86170    xla_ae_lines_pkg.set_ccid(
86171     p_code_combination_id          => l_ccid
86172   , p_value_type_code              => l_adr_value_type_code
86173   , p_transaction_coa_id           => l_adr_transaction_coa_id
86174   , p_accounting_coa_id            => l_adr_accounting_coa_id
86175   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
86176   , p_adr_type_code                => 'S'
86177   , p_component_type               => l_component_type
86178   , p_component_code               => l_component_code
86179   , p_component_type_code          => l_component_type_code
86180   , p_component_appl_id            => l_component_appl_id
86181   , p_amb_context_code             => l_amb_context_code
86182   , p_side                         => 'NA'
86183   );
86184 
86185 
86186    l_segment := AcctDerRule_6(
86187            p_application_id           => p_application_id
86188          , p_ae_header_id             => l_ae_header_id 
86189 , p_source_16 => p_source_16
86190 , p_source_16_meaning => p_source_16_meaning
86191 , p_source_17 => p_source_17
86192 , p_source_19 => p_source_19
86193 , p_source_19_meaning => p_source_19_meaning
86194 , p_source_20 => p_source_20
86195 , p_source_21 => p_source_21
86196 , p_source_22 => p_source_22
86197          , x_transaction_coa_id       => l_adr_transaction_coa_id
86198          , x_accounting_coa_id        => l_adr_accounting_coa_id
86199          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
86200          , x_flex_value_set_id        => l_adr_flex_value_set_id
86201          , x_value_type_code          => l_adr_value_type_code
86202          , x_value_combination_id     => l_adr_value_combination_id
86203          , x_value_segment_code       => l_adr_value_segment_code
86204          , p_side                     => 'NA'
86205          , p_override_seg_flag        => 'Y'
86206    );
86207 
86208    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
86209 
86210       xla_ae_lines_pkg.set_segment(
86211           p_to_segment_code         => 'GL_ACCOUNT'
86212         , p_segment_value           => l_segment
86213         , p_from_segment_code       => l_adr_value_segment_code
86214         , p_from_combination_id     => l_adr_value_combination_id
86215         , p_value_type_code         => l_adr_value_type_code
86216         , p_transaction_coa_id      => l_adr_transaction_coa_id
86217         , p_accounting_coa_id       => l_adr_accounting_coa_id
86218         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
86219         , p_flex_value_set_id       => l_adr_flex_value_set_id
86220         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
86221         , p_adr_type_code           => 'S'
86222         , p_component_type          => l_component_type
86223         , p_component_code          => l_component_code
86224         , p_component_type_code     => l_component_type_code
86225         , p_component_appl_id       => l_component_appl_id
86226         , p_amb_context_code        => l_amb_context_code
86227         , p_entity_code             => 'AP_PAYMENTS'
86228         , p_event_class_code        => 'REFUNDS'
86229         , p_side                    => 'NA'
86230         );
86231 
86232   END IF;
86233 
86234    l_segment := AcctDerRule_17(
86235            p_application_id           => p_application_id
86236          , p_ae_header_id             => l_ae_header_id 
86237 , p_source_16 => p_source_16
86238 , p_source_16_meaning => p_source_16_meaning
86239 , p_source_19 => p_source_19
86240 , p_source_19_meaning => p_source_19_meaning
86241 , p_source_29 => p_source_29
86242          , x_transaction_coa_id       => l_adr_transaction_coa_id
86243          , x_accounting_coa_id        => l_adr_accounting_coa_id
86244          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
86245          , x_flex_value_set_id        => l_adr_flex_value_set_id
86246          , x_value_type_code          => l_adr_value_type_code
86247          , x_value_combination_id     => l_adr_value_combination_id
86248          , x_value_segment_code       => l_adr_value_segment_code
86249          , p_side                     => 'NA'
86250          , p_override_seg_flag        => 'Y'
86251    );
86252 
86253    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
86254 
86255       xla_ae_lines_pkg.set_segment(
86256           p_to_segment_code         => 'GL_BALANCING'
86257         , p_segment_value           => l_segment
86258         , p_from_segment_code       => l_adr_value_segment_code
86259         , p_from_combination_id     => l_adr_value_combination_id
86263         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
86260         , p_value_type_code         => l_adr_value_type_code
86261         , p_transaction_coa_id      => l_adr_transaction_coa_id
86262         , p_accounting_coa_id       => l_adr_accounting_coa_id
86264         , p_flex_value_set_id       => l_adr_flex_value_set_id
86265         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
86266         , p_adr_type_code           => 'S'
86267         , p_component_type          => l_component_type
86268         , p_component_code          => l_component_code
86269         , p_component_type_code     => l_component_type_code
86270         , p_component_appl_id       => l_component_appl_id
86271         , p_amb_context_code        => l_amb_context_code
86272         , p_entity_code             => 'AP_PAYMENTS'
86273         , p_event_class_code        => 'REFUNDS'
86274         , p_side                    => 'NA'
86275         );
86276 
86277   END IF;
86278 
86279    --
86280    --
86281    END IF;
86282 
86283        --
86284        -- Update the line information that should be overwritten
86285        --
86286        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
86287                                          p_header_num   => 1);
86288        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
86289 
86290        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
86291 
86292        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
86293           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
86294        END IF;
86295 
86296       --
86297       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
86298       --
86299       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
86300           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
86301       ELSE
86302           ---------------------------------------------------------------------------------------------------
86303           -- 4262811a Switch Sign
86304           ---------------------------------------------------------------------------------------------------
86305           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
86306           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86307                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86308           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86309                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86310           -- 5132302
86311           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
86312                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86313 
86314       END IF;
86315 
86316       -- 4955764
86317       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86318       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
86319 
86320 
86321       XLA_AE_LINES_PKG.ValidateCurrentLine;
86322       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86323 
86324       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86325                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
86326                ,p_balance_type_code => l_balance_type_code);
86327 
86328    END IF;
86329 
86330    -----------------------------------------------------------------------------------------
86331    -- 4262811 Multiperiod Accounting
86332    -----------------------------------------------------------------------------------------
86333      -- No MPA option is assigned.
86334 
86335 
86336 END IF;
86337 END IF;
86338 --
86339 
86340 --
86341 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86342    trace
86343       (p_msg      => 'END of AcctLineType_151'
86344       ,p_level    => C_LEVEL_PROCEDURE
86345       ,p_module   => l_log_module);
86346 END IF;
86347 --
86348 EXCEPTION
86349   WHEN xla_exceptions_pkg.application_exception THEN
86350       RAISE;
86351   WHEN OTHERS THEN
86352        xla_exceptions_pkg.raise_message
86353            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_151');
86354 END AcctLineType_151;
86355 --
86356 
86357 ---------------------------------------
86358 --
86359 -- PRIVATE FUNCTION
86360 --         AcctLineType_152
86361 --
86362 ---------------------------------------
86363 PROCEDURE AcctLineType_152 (
86364   p_application_id        IN NUMBER
86365  ,p_event_id              IN NUMBER
86366  ,p_calculate_acctd_flag  IN VARCHAR2
86367  ,p_calculate_g_l_flag    IN VARCHAR2
86368  ,p_actual_flag           IN OUT VARCHAR2
86369  ,p_balance_type_code     OUT VARCHAR2
86370  ,p_gain_or_loss_ref      OUT VARCHAR2
86371  
86372 --Payment Currency Code
86373  , p_source_12            IN VARCHAR2
86374 --Payment Distribution (Cleared Rate) Ledger Amount
86375  , p_source_22            IN NUMBER
86376 --Invoice Distribution Account
86377  , p_source_29            IN NUMBER
86378 --Invoice Distribution Type
86382  , p_source_50            IN VARCHAR2
86379  , p_source_32            IN VARCHAR2
86380  , p_source_32_meaning    IN VARCHAR2
86381 --When to Account for Payment Option
86383 --Payment Distribution Type
86384  , p_source_51            IN VARCHAR2
86385  , p_source_51_meaning    IN VARCHAR2
86386 --Accounting Reversal Indicator
86387  , p_source_52            IN VARCHAR2
86388 --Payment Distribution Amount
86389  , p_source_53            IN NUMBER
86390 --Business Flow Accounts Payable Application Identifier
86391  , p_source_54            IN NUMBER
86392 --Business Flow Payment Distribution Type
86393  , p_source_55            IN VARCHAR2
86394 --Business Flow Payment Entity Code
86395  , p_source_56            IN VARCHAR2
86396 --Business Flow Payment Distribution Identifier
86397  , p_source_57            IN NUMBER
86398 --Business Flow Payment Identifier
86399  , p_source_58            IN NUMBER
86400 --Payment Distribution Identifier
86401  , p_source_59            IN NUMBER
86402 --Distribution Link Type
86403  , p_source_60            IN VARCHAR2
86404 --Override Accounted Amount Indicator
86405  , p_source_64            IN VARCHAR2
86406  , p_source_64_meaning    IN VARCHAR2
86407 --Payment Supplier Identifier
86408  , p_source_65            IN NUMBER
86409 --Payment Supplier Site Identifier
86410  , p_source_66            IN NUMBER
86411 --Third Party Type
86412  , p_source_67            IN VARCHAR2
86413 --Payment Distribution Reversed Identifier
86414  , p_source_68            IN NUMBER
86415 --Invoice Distribution Tax Line Identifier
86416  , p_source_69            IN NUMBER
86417 --Invoice Distribution Summary Tax Line Identifier
86418  , p_source_70            IN NUMBER
86419 --Accrue on Receipt Option
86420  , p_source_111            IN VARCHAR2
86421  , p_source_111_meaning    IN VARCHAR2
86422 --Cleared Exchange Date
86423  , p_source_114            IN DATE
86424 --Cleared Exchange Rate
86425  , p_source_115            IN NUMBER
86426 --Cleared Exchange Rate Type
86427  , p_source_116            IN VARCHAR2
86428 )
86429 IS
86430 
86431 l_component_type              VARCHAR2(80);
86432 l_component_code              VARCHAR2(30);
86433 l_component_type_code         VARCHAR2(1);
86434 l_component_appl_id           INTEGER;
86435 l_amb_context_code            VARCHAR2(30);
86436 l_entity_code                 VARCHAR2(30);
86437 l_event_class_code            VARCHAR2(30);
86438 l_ae_header_id                NUMBER;
86439 l_event_type_code             VARCHAR2(30);
86440 l_line_definition_code        VARCHAR2(30);
86441 l_line_definition_owner_code  VARCHAR2(1);
86442 --
86443 -- adr variables
86444 l_segment                     VARCHAR2(30);
86445 l_ccid                        NUMBER;
86446 l_adr_transaction_coa_id      NUMBER;
86447 l_adr_accounting_coa_id       NUMBER;
86448 l_adr_flexfield_segment_code  VARCHAR2(30);
86449 l_adr_flex_value_set_id       NUMBER;
86450 l_adr_value_type_code         VARCHAR2(30);
86451 l_adr_value_combination_id    NUMBER;
86452 l_adr_value_segment_code      VARCHAR2(30);
86453 
86454 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
86455 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
86456 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
86457 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
86458 
86459 -- 4262811 Variables ------------------------------------------------------------------------------------------
86460 l_entered_amt_idx             NUMBER;
86461 l_accted_amt_idx              NUMBER;
86462 l_acc_rev_flag                VARCHAR2(1);
86463 l_accrual_line_num            NUMBER;
86464 l_tmp_amt                     NUMBER;
86465 l_acc_rev_natural_side_code   VARCHAR2(1);
86466 
86467 l_num_entries                 NUMBER;
86468 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
86469 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
86470 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
86471 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
86472 l_recog_line_1                NUMBER;
86473 l_recog_line_2                NUMBER;
86474 
86475 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
86476 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
86477 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
86478 
86479 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
86480 
86481 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
86482 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
86483 
86484 ---------------------------------------------------------------------------------------------------------------
86485 
86486 
86487 --
86488 -- bulk performance
86489 --
86490 l_balance_type_code           VARCHAR2(1);
86491 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
86492 l_log_module                  VARCHAR2(240);
86493 
86494 --
86495 -- Upgrade strategy
86496 --
86497 l_actual_upg_option           VARCHAR2(1);
86498 l_enc_upg_option           VARCHAR2(1);
86499 
86500 --
86501 BEGIN
86502 --
86503 IF g_log_enabled THEN
86504       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_152';
86505 END IF;
86506 --
86507 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86508 
86509       trace
86510          (p_msg      => 'BEGIN of AcctLineType_152'
86514 END IF;
86511          ,p_level    => C_LEVEL_PROCEDURE
86512          ,p_module   => l_log_module);
86513 
86515 --
86516 l_component_type             := 'AMB_JLT';
86517 l_component_code             := 'AP_TAX_INV_PRICE_VAR_CLEAR';
86518 l_component_type_code        := 'S';
86519 l_component_appl_id          :=  200;
86520 l_amb_context_code           := 'DEFAULT';
86521 l_entity_code                := 'AP_PAYMENTS';
86522 l_event_class_code           := 'RECONCILED PAYMENTS';
86523 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
86524 l_line_definition_owner_code := 'S';
86525 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
86526 --
86527 l_balance_type_code          := 'A';
86528 l_segment                     := NULL;
86529 l_ccid                        := NULL;
86530 l_adr_transaction_coa_id      := NULL;
86531 l_adr_accounting_coa_id       := NULL;
86532 l_adr_flexfield_segment_code  := NULL;
86533 l_adr_flex_value_set_id       := NULL;
86534 l_adr_value_type_code         := NULL;
86535 l_adr_value_combination_id    := NULL;
86536 l_adr_value_segment_code      := NULL;
86537 
86538 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
86539 l_bflow_class_code           := '';    -- 4219869 Business Flow
86540 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
86541 l_budgetary_control_flag     := 'N';
86542 
86543 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
86544 l_bflow_applied_to_amt       := NULL; -- 5132302
86545 l_entered_amt_idx            := NULL;          -- 4262811
86546 l_accted_amt_idx             := NULL;          -- 4262811
86547 l_acc_rev_flag               := NULL;          -- 4262811
86548 l_accrual_line_num           := NULL;          -- 4262811
86549 l_tmp_amt                    := NULL;          -- 4262811
86550 --
86551  
86552 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
86553     l_balance_type_code <> 'B' THEN
86554 IF NVL(p_source_50,'
86555 ') =  'CLEAR_CLEAR' AND 
86556 NVL(p_source_32,'
86557 ') =  'TIPV' AND 
86558 (NVL(p_source_51,'
86559 ') =  'CASH' OR 
86560 NVL(p_source_51,'
86561 ') =  'AWT' OR 
86562 NVL(p_source_51,'
86563 ') =  'DISCOUNT') AND 
86564 NVL(p_source_111,'
86565 ') =  'Y'
86566  THEN 
86567 
86568    --
86569    XLA_AE_LINES_PKG.SetNewLine;
86570 
86571    p_balance_type_code          := l_balance_type_code;
86572    -- set the flag so later we will know whether the gain loss line needs to be created
86573    
86574    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
86575      p_actual_flag :='A';
86576    END IF;
86577 
86578    --
86579    -- bulk performance
86580    --
86581    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
86582                                       p_header_num   => 0); -- 4262811
86583    --
86584    -- set accounting line options
86585    --
86586    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
86587            p_natural_side_code          => 'D'
86588          , p_gain_or_loss_flag          => 'N'
86589          , p_gl_transfer_mode_code      => 'S'
86590          , p_acct_entry_type_code       => 'A'
86591          , p_switch_side_flag           => 'Y'
86592          , p_merge_duplicate_code       => 'A'
86593          );
86594    --
86595    l_acc_rev_natural_side_code := 'C';  -- 4262811
86596    -- 
86597    --
86598    -- set accounting line type info
86599    --
86600    xla_ae_lines_pkg.SetAcctLineType
86601       (p_component_type             => l_component_type
86602       ,p_event_type_code            => l_event_type_code
86603       ,p_line_definition_owner_code => l_line_definition_owner_code
86604       ,p_line_definition_code       => l_line_definition_code
86605       ,p_accounting_line_code       => l_component_code
86606       ,p_accounting_line_type_code  => l_component_type_code
86607       ,p_accounting_line_appl_id    => l_component_appl_id
86608       ,p_amb_context_code           => l_amb_context_code
86609       ,p_entity_code                => l_entity_code
86610       ,p_event_class_code           => l_event_class_code);
86611    --
86612    -- set accounting class
86613    --
86614    xla_ae_lines_pkg.SetAcctClass(
86615            p_accounting_class_code  => 'TIPV'
86616          , p_ae_header_id           => l_ae_header_id
86617          );
86618 
86619    --
86620    -- set rounding class
86621    --
86622    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
86623                       'TIPV';
86624 
86625    --
86626    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
86627    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
86628    --
86629    -- bulk performance
86630    --
86631    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
86632 
86633    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
86634       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
86635 
86636    -- 4955764
86637    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86638       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
86639 
86640    -- 4458381 Public Sector Enh
86641    
86642    --
86643    -- set accounting attributes for the line type
86644    --
86648    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
86645    l_entered_amt_idx := 10;
86646    l_accted_amt_idx  := 15;
86647    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
86649    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
86650    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
86651    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
86652    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
86653    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
86654    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
86655    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
86656    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
86657    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
86658    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
86659    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
86660    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
86661    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
86662    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
86663    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
86664    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
86665    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
86666    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
86667    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
86668    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
86669    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
86670    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
86671    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
86672    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
86673    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
86674    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
86675    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
86676    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
86677    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
86678    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
86679    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
86680    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
86681    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
86682    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
86683    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
86684    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
86685    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
86686    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
86687    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
86688    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
86689    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
86690    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
86691    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
86692    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
86693    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
86694    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
86695    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
86696 
86697    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
86698    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
86699 
86700    ---------------------------------------------------------------------------------------------------------------
86701    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
86702    ---------------------------------------------------------------------------------------------------------------
86703    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
86704 
86705    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86706    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86707 
86708    IF xla_accounting_cache_pkg.GetValueChar
86709          (p_source_code         => 'LEDGER_CATEGORY_CODE'
86710          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
86711    AND l_bflow_method_code = 'PRIOR_ENTRY'
86712 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
86713    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
86714          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
86715        )
86716    THEN
86717          xla_ae_lines_pkg.BflowUpgEntry
86718            (p_business_method_code    => l_bflow_method_code
86719            ,p_business_class_code     => l_bflow_class_code
86720            ,p_balance_type            => l_balance_type_code);
86721    ELSE
86722       NULL;
86723 -- No business flow processing for business flow method of NONE.
86724    END IF;
86725 
86726    --
86727    -- call analytical criteria
86728    --
86729    
86730    --
86731    -- call description
86732    --
86733    -- No description or it is inherited.
86734    --
86735    -- call ADRs
86736    -- Bug 4922099
86737    --
86738    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86739         (NVL(l_actual_upg_option, 'N') = 'O') OR
86740         (NVL(l_enc_upg_option, 'N') = 'O')
86741       )
86742    THEN
86743    NULL;
86744    --
86745    --
86749          , p_ae_header_id             => l_ae_header_id 
86746    
86747   l_ccid := AcctDerRule_28(
86748            p_application_id           => p_application_id
86750 , p_source_29 => p_source_29
86751          , x_transaction_coa_id       => l_adr_transaction_coa_id
86752          , x_accounting_coa_id        => l_adr_accounting_coa_id
86753          , x_value_type_code          => l_adr_value_type_code
86754          , p_side                     => 'NA'
86755    );
86756 
86757    xla_ae_lines_pkg.set_ccid(
86758     p_code_combination_id          => l_ccid
86759   , p_value_type_code              => l_adr_value_type_code
86760   , p_transaction_coa_id           => l_adr_transaction_coa_id
86761   , p_accounting_coa_id            => l_adr_accounting_coa_id
86762   , p_adr_code                     => 'AP_INVOICE_DIST'
86763   , p_adr_type_code                => 'S'
86764   , p_component_type               => l_component_type
86765   , p_component_code               => l_component_code
86766   , p_component_type_code          => l_component_type_code
86767   , p_component_appl_id            => l_component_appl_id
86768   , p_amb_context_code             => l_amb_context_code
86769   , p_side                         => 'NA'
86770   );
86771 
86772 
86773    --
86774    --
86775    END IF;
86776    --
86777    -- Bug 4922099
86778    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
86779           (NVL(l_enc_upg_option, 'N') = 'O')
86780         ) AND
86781         (l_bflow_method_code = 'PRIOR_ENTRY')
86782       )
86783    THEN
86784       IF
86785       --
86786       1 = 2
86787       --
86788       THEN
86789       xla_accounting_err_pkg.build_message
86790                                     (p_appli_s_name            => 'XLA'
86791                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86792                                     ,p_token_1                 => 'LINE_NUMBER'
86793                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
86794                                     ,p_token_2                 => 'LINE_TYPE_NAME'
86795                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
86796                                                                              l_component_type
86797                                                                             ,l_component_code
86798                                                                             ,l_component_type_code
86799                                                                             ,l_component_appl_id
86800                                                                             ,l_amb_context_code
86801                                                                             ,l_entity_code
86802                                                                             ,l_event_class_code
86803                                                                            )
86804                                     ,p_token_3                 => 'OWNER'
86805                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
86806                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
86807                                                                           ,p_lookup_code    => l_component_type_code
86808                                                                          )
86809                                     ,p_token_4                 => 'PRODUCT_NAME'
86810                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
86811                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
86812                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
86813                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
86814                                     ,p_ae_header_id            =>  NULL
86815                                        );
86816 
86817         IF (C_LEVEL_ERROR>= g_log_level) THEN
86818                  trace
86819                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86820                       ,p_level    => C_LEVEL_ERROR
86821                       ,p_module   => l_log_module);
86822         END IF;
86823       END IF;
86824    END IF;
86825    --
86826    --
86827    ------------------------------------------------------------------------------------------------
86828    -- 4219869 Business Flow
86829    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
86830    -- Prior Entry.  Currently, the following code is always generated.
86831    ------------------------------------------------------------------------------------------------
86832    XLA_AE_LINES_PKG.ValidateCurrentLine;
86833 
86834    ------------------------------------------------------------------------------------
86835    -- 4219869 Business Flow
86836    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
86837    ------------------------------------------------------------------------------------
86838    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86839 
86840    ----------------------------------------------------------------------------------
86841    -- 4219869 Business Flow
86842    -- Update journal entry status -- Need to generate this within IF <condition>
86843    ----------------------------------------------------------------------------------
86847          );
86844    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86845          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
86846          ,p_balance_type_code => l_balance_type_code
86848 
86849    -------------------------------------------------------------------------------------------
86850    -- 4262811 - Generate the Accrual Reversal lines
86851    -------------------------------------------------------------------------------------------
86852    BEGIN
86853       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
86854                               (g_array_event(p_event_id).array_value_num('header_index'));
86855       IF l_acc_rev_flag IS NULL THEN
86856          l_acc_rev_flag := 'N';
86857       END IF;
86858    EXCEPTION
86859       WHEN OTHERS THEN
86860          l_acc_rev_flag := 'N';
86861    END;
86862    --
86863    IF (l_acc_rev_flag = 'Y') THEN
86864 
86865        -- 4645092  ------------------------------------------------------------------------------
86866        -- To allow MPA report to determine if it should generate report process
86867        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
86868        ------------------------------------------------------------------------------------------
86869 
86870        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
86871        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
86872    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
86873    -- call ADRs
86874    -- Bug 4922099
86875    --
86876    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86877         (NVL(l_actual_upg_option, 'N') = 'O') OR
86878         (NVL(l_enc_upg_option, 'N') = 'O')
86879       )
86880    THEN
86881    NULL;
86882    --
86883    --
86884    
86885   l_ccid := AcctDerRule_28(
86886            p_application_id           => p_application_id
86887          , p_ae_header_id             => l_ae_header_id 
86888 , p_source_29 => p_source_29
86889          , x_transaction_coa_id       => l_adr_transaction_coa_id
86890          , x_accounting_coa_id        => l_adr_accounting_coa_id
86891          , x_value_type_code          => l_adr_value_type_code
86892          , p_side                     => 'NA'
86893    );
86894 
86895    xla_ae_lines_pkg.set_ccid(
86896     p_code_combination_id          => l_ccid
86897   , p_value_type_code              => l_adr_value_type_code
86898   , p_transaction_coa_id           => l_adr_transaction_coa_id
86899   , p_accounting_coa_id            => l_adr_accounting_coa_id
86900   , p_adr_code                     => 'AP_INVOICE_DIST'
86901   , p_adr_type_code                => 'S'
86902   , p_component_type               => l_component_type
86903   , p_component_code               => l_component_code
86904   , p_component_type_code          => l_component_type_code
86905   , p_component_appl_id            => l_component_appl_id
86906   , p_amb_context_code             => l_amb_context_code
86907   , p_side                         => 'NA'
86908   );
86909 
86910 
86911    --
86912    --
86913    END IF;
86914 
86915        --
86916        -- Update the line information that should be overwritten
86917        --
86918        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
86919                                          p_header_num   => 1);
86920        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
86921 
86922        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
86923 
86924        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
86925           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
86926        END IF;
86927 
86928       --
86929       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
86930       --
86931       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
86932           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
86933       ELSE
86934           ---------------------------------------------------------------------------------------------------
86935           -- 4262811a Switch Sign
86936           ---------------------------------------------------------------------------------------------------
86937           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
86938           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86939                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86940           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86941                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86942           -- 5132302
86943           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
86944                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86945 
86946       END IF;
86947 
86948       -- 4955764
86949       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86950       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
86951 
86952 
86956       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86953       XLA_AE_LINES_PKG.ValidateCurrentLine;
86954       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86955 
86957                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
86958                ,p_balance_type_code => l_balance_type_code);
86959 
86960    END IF;
86961 
86962    -----------------------------------------------------------------------------------------
86963    -- 4262811 Multiperiod Accounting
86964    -----------------------------------------------------------------------------------------
86965      -- No MPA option is assigned.
86966 
86967 
86968 END IF;
86969 END IF;
86970 --
86971 
86972 --
86973 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86974    trace
86975       (p_msg      => 'END of AcctLineType_152'
86976       ,p_level    => C_LEVEL_PROCEDURE
86977       ,p_module   => l_log_module);
86978 END IF;
86979 --
86980 EXCEPTION
86981   WHEN xla_exceptions_pkg.application_exception THEN
86982       RAISE;
86983   WHEN OTHERS THEN
86984        xla_exceptions_pkg.raise_message
86985            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_152');
86986 END AcctLineType_152;
86987 --
86988 
86989 ---------------------------------------
86990 --
86991 -- PRIVATE FUNCTION
86992 --         AcctLineType_153
86993 --
86994 ---------------------------------------
86995 PROCEDURE AcctLineType_153 (
86996   p_application_id        IN NUMBER
86997  ,p_event_id              IN NUMBER
86998  ,p_calculate_acctd_flag  IN VARCHAR2
86999  ,p_calculate_g_l_flag    IN VARCHAR2
87000  ,p_actual_flag           IN OUT VARCHAR2
87001  ,p_balance_type_code     OUT VARCHAR2
87002  ,p_gain_or_loss_ref      OUT VARCHAR2
87003  
87004 --Payment Currency Code
87005  , p_source_12            IN VARCHAR2
87006 --Payment Distribution (Payment Rate) Ledger Amount
87007  , p_source_21            IN NUMBER
87008 --Invoice Distribution Account
87009  , p_source_29            IN NUMBER
87010 --Invoice Distribution Type
87011  , p_source_32            IN VARCHAR2
87012  , p_source_32_meaning    IN VARCHAR2
87013 --When to Account for Payment Option
87014  , p_source_50            IN VARCHAR2
87015 --Payment Distribution Type
87016  , p_source_51            IN VARCHAR2
87017  , p_source_51_meaning    IN VARCHAR2
87018 --Accounting Reversal Indicator
87019  , p_source_52            IN VARCHAR2
87020 --Payment Distribution Amount
87021  , p_source_53            IN NUMBER
87022 --Business Flow Accounts Payable Application Identifier
87023  , p_source_54            IN NUMBER
87024 --Payment Distribution Identifier
87025  , p_source_59            IN NUMBER
87026 --Distribution Link Type
87027  , p_source_60            IN VARCHAR2
87028 --Override Accounted Amount Indicator
87029  , p_source_64            IN VARCHAR2
87030  , p_source_64_meaning    IN VARCHAR2
87031 --Payment Supplier Identifier
87032  , p_source_65            IN NUMBER
87033 --Payment Supplier Site Identifier
87034  , p_source_66            IN NUMBER
87035 --Third Party Type
87036  , p_source_67            IN VARCHAR2
87037 --Payment Distribution Reversed Identifier
87038  , p_source_68            IN NUMBER
87039 --Invoice Distribution Tax Line Identifier
87040  , p_source_69            IN NUMBER
87041 --Invoice Distribution Summary Tax Line Identifier
87042  , p_source_70            IN NUMBER
87043 --Payment Type
87044  , p_source_71            IN VARCHAR2
87045  , p_source_71_meaning    IN VARCHAR2
87046 --Invoice Distribution Amount of the Payment Distribution
87047  , p_source_72            IN NUMBER
87048 --Business Flow Invoice Distribution Type
87049  , p_source_73            IN VARCHAR2
87050 --Business Flow Invoice Entity Code
87051  , p_source_74            IN VARCHAR2
87052 --Business Flow Invoice Distribution Identifier
87053  , p_source_75            IN NUMBER
87054 --Business Flow Invoice Identifier
87055  , p_source_76            IN NUMBER
87056 --Invoice Distribution Tax Distribution Identifier from Tax
87057  , p_source_77            IN NUMBER
87058 --Accrue on Receipt Option
87059  , p_source_111            IN VARCHAR2
87060  , p_source_111_meaning    IN VARCHAR2
87061 --Invoice Type Paid
87062  , p_source_112            IN VARCHAR2
87063  , p_source_112_meaning    IN VARCHAR2
87064 --Payment Exchange Date
87065  , p_source_121            IN DATE
87066 --Payment Exchange Rate
87067  , p_source_122            IN NUMBER
87068 --Payment Exchange Rate Type
87069  , p_source_123            IN VARCHAR2
87070 )
87071 IS
87072 
87073 l_component_type              VARCHAR2(80);
87074 l_component_code              VARCHAR2(30);
87075 l_component_type_code         VARCHAR2(1);
87076 l_component_appl_id           INTEGER;
87077 l_amb_context_code            VARCHAR2(30);
87078 l_entity_code                 VARCHAR2(30);
87079 l_event_class_code            VARCHAR2(30);
87080 l_ae_header_id                NUMBER;
87081 l_event_type_code             VARCHAR2(30);
87082 l_line_definition_code        VARCHAR2(30);
87083 l_line_definition_owner_code  VARCHAR2(1);
87084 --
87085 -- adr variables
87086 l_segment                     VARCHAR2(30);
87087 l_ccid                        NUMBER;
87088 l_adr_transaction_coa_id      NUMBER;
87089 l_adr_accounting_coa_id       NUMBER;
87090 l_adr_flexfield_segment_code  VARCHAR2(30);
87094 l_adr_value_segment_code      VARCHAR2(30);
87091 l_adr_flex_value_set_id       NUMBER;
87092 l_adr_value_type_code         VARCHAR2(30);
87093 l_adr_value_combination_id    NUMBER;
87095 
87096 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
87097 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
87098 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
87099 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
87100 
87101 -- 4262811 Variables ------------------------------------------------------------------------------------------
87102 l_entered_amt_idx             NUMBER;
87103 l_accted_amt_idx              NUMBER;
87104 l_acc_rev_flag                VARCHAR2(1);
87105 l_accrual_line_num            NUMBER;
87106 l_tmp_amt                     NUMBER;
87107 l_acc_rev_natural_side_code   VARCHAR2(1);
87108 
87109 l_num_entries                 NUMBER;
87110 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
87111 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
87112 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
87113 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
87114 l_recog_line_1                NUMBER;
87115 l_recog_line_2                NUMBER;
87116 
87117 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
87118 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
87119 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
87120 
87121 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
87122 
87123 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
87124 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
87125 
87126 ---------------------------------------------------------------------------------------------------------------
87127 
87128 
87129 --
87130 -- bulk performance
87131 --
87132 l_balance_type_code           VARCHAR2(1);
87133 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
87134 l_log_module                  VARCHAR2(240);
87135 
87136 --
87137 -- Upgrade strategy
87138 --
87139 l_actual_upg_option           VARCHAR2(1);
87140 l_enc_upg_option           VARCHAR2(1);
87141 
87142 --
87143 BEGIN
87144 --
87145 IF g_log_enabled THEN
87146       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_153';
87147 END IF;
87148 --
87149 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87150 
87151       trace
87152          (p_msg      => 'BEGIN of AcctLineType_153'
87153          ,p_level    => C_LEVEL_PROCEDURE
87154          ,p_module   => l_log_module);
87155 
87156 END IF;
87157 --
87158 l_component_type             := 'AMB_JLT';
87159 l_component_code             := 'AP_TAX_INV_PRICE_VAR_PMT';
87160 l_component_type_code        := 'S';
87161 l_component_appl_id          :=  200;
87162 l_amb_context_code           := 'DEFAULT';
87163 l_entity_code                := 'AP_PAYMENTS';
87164 l_event_class_code           := 'PAYMENTS';
87165 l_event_type_code            := 'PAYMENTS_ALL';
87166 l_line_definition_owner_code := 'S';
87167 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
87168 --
87169 l_balance_type_code          := 'A';
87170 l_segment                     := NULL;
87171 l_ccid                        := NULL;
87172 l_adr_transaction_coa_id      := NULL;
87173 l_adr_accounting_coa_id       := NULL;
87174 l_adr_flexfield_segment_code  := NULL;
87175 l_adr_flex_value_set_id       := NULL;
87176 l_adr_value_type_code         := NULL;
87177 l_adr_value_combination_id    := NULL;
87178 l_adr_value_segment_code      := NULL;
87179 
87180 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
87181 l_bflow_class_code           := '';    -- 4219869 Business Flow
87182 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
87183 l_budgetary_control_flag     := 'N';
87184 
87185 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
87186 l_bflow_applied_to_amt       := NULL; -- 5132302
87187 l_entered_amt_idx            := NULL;          -- 4262811
87188 l_accted_amt_idx             := NULL;          -- 4262811
87189 l_acc_rev_flag               := NULL;          -- 4262811
87190 l_accrual_line_num           := NULL;          -- 4262811
87191 l_tmp_amt                    := NULL;          -- 4262811
87192 --
87193  
87194 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
87195     l_balance_type_code <> 'B' THEN
87196 IF NVL(p_source_50,'
87197 ') <>  'CLEAR_CLEAR' AND 
87198 NVL(p_source_32,'
87199 ') =  'TIPV' AND 
87200 NVL(p_source_112,'
87201 ') <>  'INTEREST' AND 
87202 (NVL(p_source_51,'
87203 ') =  'CASH' OR 
87204 NVL(p_source_51,'
87205 ') =  'AWT' OR 
87206 NVL(p_source_51,'
87207 ') =  'DISCOUNT') AND 
87208 NVL(p_source_71,'
87209 ') <>  'R' AND 
87210 NVL(p_source_111,'
87211 ') =  'Y'
87212  THEN 
87213 
87214    --
87215    XLA_AE_LINES_PKG.SetNewLine;
87216 
87217    p_balance_type_code          := l_balance_type_code;
87218    -- set the flag so later we will know whether the gain loss line needs to be created
87219    
87220    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
87221      p_actual_flag :='A';
87222    END IF;
87223 
87224    --
87225    -- bulk performance
87226    --
87230    -- set accounting line options
87227    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
87228                                       p_header_num   => 0); -- 4262811
87229    --
87231    --
87232    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
87233            p_natural_side_code          => 'D'
87234          , p_gain_or_loss_flag          => 'N'
87235          , p_gl_transfer_mode_code      => 'S'
87236          , p_acct_entry_type_code       => 'A'
87237          , p_switch_side_flag           => 'Y'
87238          , p_merge_duplicate_code       => 'A'
87239          );
87240    --
87241    l_acc_rev_natural_side_code := 'C';  -- 4262811
87242    -- 
87243    --
87244    -- set accounting line type info
87245    --
87246    xla_ae_lines_pkg.SetAcctLineType
87247       (p_component_type             => l_component_type
87248       ,p_event_type_code            => l_event_type_code
87249       ,p_line_definition_owner_code => l_line_definition_owner_code
87250       ,p_line_definition_code       => l_line_definition_code
87251       ,p_accounting_line_code       => l_component_code
87252       ,p_accounting_line_type_code  => l_component_type_code
87253       ,p_accounting_line_appl_id    => l_component_appl_id
87254       ,p_amb_context_code           => l_amb_context_code
87255       ,p_entity_code                => l_entity_code
87256       ,p_event_class_code           => l_event_class_code);
87257    --
87258    -- set accounting class
87259    --
87260    xla_ae_lines_pkg.SetAcctClass(
87261            p_accounting_class_code  => 'TIPV'
87262          , p_ae_header_id           => l_ae_header_id
87263          );
87264 
87265    --
87266    -- set rounding class
87267    --
87268    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
87269                       'TIPV';
87270 
87271    --
87272    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
87273    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
87274    --
87275    -- bulk performance
87276    --
87277    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
87278 
87279    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
87280       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
87281 
87282    -- 4955764
87283    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87284       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
87285 
87286    -- 4458381 Public Sector Enh
87287    
87288    --
87289    -- set accounting attributes for the line type
87290    --
87291    l_entered_amt_idx := 10;
87292    l_accted_amt_idx  := 15;
87293    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
87294    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
87295    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
87296    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
87297    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
87298    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
87299    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
87300    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
87301    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
87302    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
87303    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
87304    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
87305    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
87306    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
87307    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
87308    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
87309    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
87310    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
87311    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
87312    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
87313    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
87314    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
87315    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
87316    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
87317    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
87318    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
87319    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
87320    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
87321    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
87322    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
87323    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
87324    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
87325    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
87326    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
87327    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
87328    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
87329    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
87330    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
87331    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
87335    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
87332    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
87333    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
87334    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
87336    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
87337    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
87338    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
87339    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
87340    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
87341    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
87342 
87343    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
87344    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
87345 
87346    ---------------------------------------------------------------------------------------------------------------
87347    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
87348    ---------------------------------------------------------------------------------------------------------------
87349    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
87350 
87351    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87352    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87353 
87354    IF xla_accounting_cache_pkg.GetValueChar
87355          (p_source_code         => 'LEDGER_CATEGORY_CODE'
87356          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
87357    AND l_bflow_method_code = 'PRIOR_ENTRY'
87358 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
87359    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
87360          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
87361        )
87362    THEN
87363          xla_ae_lines_pkg.BflowUpgEntry
87364            (p_business_method_code    => l_bflow_method_code
87365            ,p_business_class_code     => l_bflow_class_code
87366            ,p_balance_type            => l_balance_type_code);
87367    ELSE
87368       NULL;
87369 -- No business flow processing for business flow method of NONE.
87370    END IF;
87371 
87372    --
87373    -- call analytical criteria
87374    --
87375    
87376    --
87377    -- call description
87378    --
87379    -- No description or it is inherited.
87380    --
87381    -- call ADRs
87382    -- Bug 4922099
87383    --
87384    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87385         (NVL(l_actual_upg_option, 'N') = 'O') OR
87386         (NVL(l_enc_upg_option, 'N') = 'O')
87387       )
87388    THEN
87389    NULL;
87390    --
87391    --
87392    
87393   l_ccid := AcctDerRule_28(
87394            p_application_id           => p_application_id
87395          , p_ae_header_id             => l_ae_header_id 
87396 , p_source_29 => p_source_29
87397          , x_transaction_coa_id       => l_adr_transaction_coa_id
87398          , x_accounting_coa_id        => l_adr_accounting_coa_id
87399          , x_value_type_code          => l_adr_value_type_code
87400          , p_side                     => 'NA'
87401    );
87402 
87403    xla_ae_lines_pkg.set_ccid(
87404     p_code_combination_id          => l_ccid
87405   , p_value_type_code              => l_adr_value_type_code
87406   , p_transaction_coa_id           => l_adr_transaction_coa_id
87407   , p_accounting_coa_id            => l_adr_accounting_coa_id
87408   , p_adr_code                     => 'AP_INVOICE_DIST'
87409   , p_adr_type_code                => 'S'
87410   , p_component_type               => l_component_type
87411   , p_component_code               => l_component_code
87412   , p_component_type_code          => l_component_type_code
87413   , p_component_appl_id            => l_component_appl_id
87414   , p_amb_context_code             => l_amb_context_code
87415   , p_side                         => 'NA'
87416   );
87417 
87418 
87419    --
87420    --
87421    END IF;
87422    --
87423    -- Bug 4922099
87424    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
87425           (NVL(l_enc_upg_option, 'N') = 'O')
87426         ) AND
87427         (l_bflow_method_code = 'PRIOR_ENTRY')
87428       )
87429    THEN
87430       IF
87431       --
87432       1 = 2
87433       --
87434       THEN
87435       xla_accounting_err_pkg.build_message
87436                                     (p_appli_s_name            => 'XLA'
87437                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87438                                     ,p_token_1                 => 'LINE_NUMBER'
87439                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
87440                                     ,p_token_2                 => 'LINE_TYPE_NAME'
87441                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
87442                                                                              l_component_type
87443                                                                             ,l_component_code
87444                                                                             ,l_component_type_code
87445                                                                             ,l_component_appl_id
87449                                                                            )
87446                                                                             ,l_amb_context_code
87447                                                                             ,l_entity_code
87448                                                                             ,l_event_class_code
87450                                     ,p_token_3                 => 'OWNER'
87451                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
87452                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
87453                                                                           ,p_lookup_code    => l_component_type_code
87454                                                                          )
87455                                     ,p_token_4                 => 'PRODUCT_NAME'
87456                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
87457                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
87458                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
87459                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
87460                                     ,p_ae_header_id            =>  NULL
87461                                        );
87462 
87463         IF (C_LEVEL_ERROR>= g_log_level) THEN
87464                  trace
87465                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87466                       ,p_level    => C_LEVEL_ERROR
87467                       ,p_module   => l_log_module);
87468         END IF;
87469       END IF;
87470    END IF;
87471    --
87472    --
87473    ------------------------------------------------------------------------------------------------
87474    -- 4219869 Business Flow
87475    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
87476    -- Prior Entry.  Currently, the following code is always generated.
87477    ------------------------------------------------------------------------------------------------
87478    XLA_AE_LINES_PKG.ValidateCurrentLine;
87479 
87480    ------------------------------------------------------------------------------------
87481    -- 4219869 Business Flow
87482    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
87483    ------------------------------------------------------------------------------------
87484    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87485 
87486    ----------------------------------------------------------------------------------
87487    -- 4219869 Business Flow
87488    -- Update journal entry status -- Need to generate this within IF <condition>
87489    ----------------------------------------------------------------------------------
87490    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87491          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
87492          ,p_balance_type_code => l_balance_type_code
87493          );
87494 
87495    -------------------------------------------------------------------------------------------
87496    -- 4262811 - Generate the Accrual Reversal lines
87497    -------------------------------------------------------------------------------------------
87498    BEGIN
87499       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
87500                               (g_array_event(p_event_id).array_value_num('header_index'));
87501       IF l_acc_rev_flag IS NULL THEN
87502          l_acc_rev_flag := 'N';
87503       END IF;
87504    EXCEPTION
87505       WHEN OTHERS THEN
87506          l_acc_rev_flag := 'N';
87507    END;
87508    --
87509    IF (l_acc_rev_flag = 'Y') THEN
87510 
87511        -- 4645092  ------------------------------------------------------------------------------
87512        -- To allow MPA report to determine if it should generate report process
87513        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
87514        ------------------------------------------------------------------------------------------
87515 
87516        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
87517        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
87518    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
87519    -- call ADRs
87520    -- Bug 4922099
87521    --
87522    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87523         (NVL(l_actual_upg_option, 'N') = 'O') OR
87524         (NVL(l_enc_upg_option, 'N') = 'O')
87525       )
87526    THEN
87527    NULL;
87528    --
87529    --
87530    
87531   l_ccid := AcctDerRule_28(
87532            p_application_id           => p_application_id
87533          , p_ae_header_id             => l_ae_header_id 
87534 , p_source_29 => p_source_29
87535          , x_transaction_coa_id       => l_adr_transaction_coa_id
87536          , x_accounting_coa_id        => l_adr_accounting_coa_id
87537          , x_value_type_code          => l_adr_value_type_code
87538          , p_side                     => 'NA'
87539    );
87540 
87541    xla_ae_lines_pkg.set_ccid(
87542     p_code_combination_id          => l_ccid
87543   , p_value_type_code              => l_adr_value_type_code
87544   , p_transaction_coa_id           => l_adr_transaction_coa_id
87548   , p_component_type               => l_component_type
87545   , p_accounting_coa_id            => l_adr_accounting_coa_id
87546   , p_adr_code                     => 'AP_INVOICE_DIST'
87547   , p_adr_type_code                => 'S'
87549   , p_component_code               => l_component_code
87550   , p_component_type_code          => l_component_type_code
87551   , p_component_appl_id            => l_component_appl_id
87552   , p_amb_context_code             => l_amb_context_code
87553   , p_side                         => 'NA'
87554   );
87555 
87556 
87557    --
87558    --
87559    END IF;
87560 
87561        --
87562        -- Update the line information that should be overwritten
87563        --
87564        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
87565                                          p_header_num   => 1);
87566        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
87567 
87568        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
87569 
87570        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
87571           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
87572        END IF;
87573 
87574       --
87575       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
87576       --
87577       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
87578           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
87579       ELSE
87580           ---------------------------------------------------------------------------------------------------
87581           -- 4262811a Switch Sign
87582           ---------------------------------------------------------------------------------------------------
87583           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
87584           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87585                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87586           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87587                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87588           -- 5132302
87589           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
87590                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87591 
87592       END IF;
87593 
87594       -- 4955764
87595       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87596       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
87597 
87598 
87599       XLA_AE_LINES_PKG.ValidateCurrentLine;
87600       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87601 
87602       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87603                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
87604                ,p_balance_type_code => l_balance_type_code);
87605 
87606    END IF;
87607 
87608    -----------------------------------------------------------------------------------------
87609    -- 4262811 Multiperiod Accounting
87610    -----------------------------------------------------------------------------------------
87611      -- No MPA option is assigned.
87612 
87613 
87614 END IF;
87615 END IF;
87616 --
87617 
87618 --
87619 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87620    trace
87621       (p_msg      => 'END of AcctLineType_153'
87622       ,p_level    => C_LEVEL_PROCEDURE
87623       ,p_module   => l_log_module);
87624 END IF;
87625 --
87626 EXCEPTION
87627   WHEN xla_exceptions_pkg.application_exception THEN
87628       RAISE;
87629   WHEN OTHERS THEN
87630        xla_exceptions_pkg.raise_message
87631            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_153');
87632 END AcctLineType_153;
87633 --
87634 
87635 ---------------------------------------
87636 --
87637 -- PRIVATE FUNCTION
87638 --         AcctLineType_154
87639 --
87640 ---------------------------------------
87641 PROCEDURE AcctLineType_154 (
87642   p_application_id        IN NUMBER
87643  ,p_event_id              IN NUMBER
87644  ,p_calculate_acctd_flag  IN VARCHAR2
87645  ,p_calculate_g_l_flag    IN VARCHAR2
87646  ,p_actual_flag           IN OUT VARCHAR2
87647  ,p_balance_type_code     OUT VARCHAR2
87648  ,p_gain_or_loss_ref      OUT VARCHAR2
87649  
87650 --Payment Currency Code
87651  , p_source_12            IN VARCHAR2
87652 --Payment Distribution (Payment Rate) Ledger Amount
87653  , p_source_21            IN NUMBER
87654 --Invoice Distribution Account
87655  , p_source_29            IN NUMBER
87656 --Invoice Distribution Type
87657  , p_source_32            IN VARCHAR2
87658  , p_source_32_meaning    IN VARCHAR2
87659 --When to Account for Payment Option
87660  , p_source_50            IN VARCHAR2
87661 --Payment Distribution Type
87662  , p_source_51            IN VARCHAR2
87663  , p_source_51_meaning    IN VARCHAR2
87664 --Accounting Reversal Indicator
87665  , p_source_52            IN VARCHAR2
87669  , p_source_54            IN NUMBER
87666 --Payment Distribution Amount
87667  , p_source_53            IN NUMBER
87668 --Business Flow Accounts Payable Application Identifier
87670 --Payment Distribution Identifier
87671  , p_source_59            IN NUMBER
87672 --Distribution Link Type
87673  , p_source_60            IN VARCHAR2
87674 --Override Accounted Amount Indicator
87675  , p_source_64            IN VARCHAR2
87676  , p_source_64_meaning    IN VARCHAR2
87677 --Payment Supplier Identifier
87678  , p_source_65            IN NUMBER
87679 --Payment Supplier Site Identifier
87680  , p_source_66            IN NUMBER
87681 --Third Party Type
87682  , p_source_67            IN VARCHAR2
87683 --Payment Distribution Reversed Identifier
87684  , p_source_68            IN NUMBER
87685 --Invoice Distribution Tax Line Identifier
87686  , p_source_69            IN NUMBER
87687 --Invoice Distribution Summary Tax Line Identifier
87688  , p_source_70            IN NUMBER
87689 --Payment Type
87690  , p_source_71            IN VARCHAR2
87691  , p_source_71_meaning    IN VARCHAR2
87692 --Business Flow Invoice Distribution Type
87693  , p_source_73            IN VARCHAR2
87694 --Business Flow Invoice Entity Code
87695  , p_source_74            IN VARCHAR2
87696 --Business Flow Invoice Distribution Identifier
87697  , p_source_75            IN NUMBER
87698 --Business Flow Invoice Identifier
87699  , p_source_76            IN NUMBER
87700 --Invoice Distribution Tax Distribution Identifier from Tax
87701  , p_source_77            IN NUMBER
87702 --Accrue on Receipt Option
87703  , p_source_111            IN VARCHAR2
87704  , p_source_111_meaning    IN VARCHAR2
87705 --Payment Exchange Date
87706  , p_source_121            IN DATE
87707 --Payment Exchange Rate
87708  , p_source_122            IN NUMBER
87709 --Payment Exchange Rate Type
87710  , p_source_123            IN VARCHAR2
87711 )
87712 IS
87713 
87714 l_component_type              VARCHAR2(80);
87715 l_component_code              VARCHAR2(30);
87716 l_component_type_code         VARCHAR2(1);
87717 l_component_appl_id           INTEGER;
87718 l_amb_context_code            VARCHAR2(30);
87719 l_entity_code                 VARCHAR2(30);
87720 l_event_class_code            VARCHAR2(30);
87721 l_ae_header_id                NUMBER;
87722 l_event_type_code             VARCHAR2(30);
87723 l_line_definition_code        VARCHAR2(30);
87724 l_line_definition_owner_code  VARCHAR2(1);
87725 --
87726 -- adr variables
87727 l_segment                     VARCHAR2(30);
87728 l_ccid                        NUMBER;
87729 l_adr_transaction_coa_id      NUMBER;
87730 l_adr_accounting_coa_id       NUMBER;
87731 l_adr_flexfield_segment_code  VARCHAR2(30);
87732 l_adr_flex_value_set_id       NUMBER;
87733 l_adr_value_type_code         VARCHAR2(30);
87734 l_adr_value_combination_id    NUMBER;
87735 l_adr_value_segment_code      VARCHAR2(30);
87736 
87737 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
87738 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
87739 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
87740 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
87741 
87742 -- 4262811 Variables ------------------------------------------------------------------------------------------
87743 l_entered_amt_idx             NUMBER;
87744 l_accted_amt_idx              NUMBER;
87745 l_acc_rev_flag                VARCHAR2(1);
87746 l_accrual_line_num            NUMBER;
87747 l_tmp_amt                     NUMBER;
87748 l_acc_rev_natural_side_code   VARCHAR2(1);
87749 
87750 l_num_entries                 NUMBER;
87751 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
87752 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
87753 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
87754 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
87755 l_recog_line_1                NUMBER;
87756 l_recog_line_2                NUMBER;
87757 
87758 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
87759 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
87760 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
87761 
87762 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
87763 
87764 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
87765 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
87766 
87767 ---------------------------------------------------------------------------------------------------------------
87768 
87769 
87770 --
87771 -- bulk performance
87772 --
87773 l_balance_type_code           VARCHAR2(1);
87774 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
87775 l_log_module                  VARCHAR2(240);
87776 
87777 --
87778 -- Upgrade strategy
87779 --
87780 l_actual_upg_option           VARCHAR2(1);
87781 l_enc_upg_option           VARCHAR2(1);
87782 
87783 --
87784 BEGIN
87785 --
87786 IF g_log_enabled THEN
87787       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_154';
87788 END IF;
87789 --
87790 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87791 
87792       trace
87793          (p_msg      => 'BEGIN of AcctLineType_154'
87794          ,p_level    => C_LEVEL_PROCEDURE
87795          ,p_module   => l_log_module);
87796 
87797 END IF;
87798 --
87802 l_component_appl_id          :=  200;
87799 l_component_type             := 'AMB_JLT';
87800 l_component_code             := 'AP_TAX_INV_PRICE_VAR_REF';
87801 l_component_type_code        := 'S';
87803 l_amb_context_code           := 'DEFAULT';
87804 l_entity_code                := 'AP_PAYMENTS';
87805 l_event_class_code           := 'REFUNDS';
87806 l_event_type_code            := 'REFUNDS_ALL';
87807 l_line_definition_owner_code := 'S';
87808 l_line_definition_code       := 'CASH_REFUNDS_ALL';
87809 --
87810 l_balance_type_code          := 'A';
87811 l_segment                     := NULL;
87812 l_ccid                        := NULL;
87813 l_adr_transaction_coa_id      := NULL;
87814 l_adr_accounting_coa_id       := NULL;
87815 l_adr_flexfield_segment_code  := NULL;
87816 l_adr_flex_value_set_id       := NULL;
87817 l_adr_value_type_code         := NULL;
87818 l_adr_value_combination_id    := NULL;
87819 l_adr_value_segment_code      := NULL;
87820 
87821 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
87822 l_bflow_class_code           := '';    -- 4219869 Business Flow
87823 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
87824 l_budgetary_control_flag     := 'N';
87825 
87826 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
87827 l_bflow_applied_to_amt       := NULL; -- 5132302
87828 l_entered_amt_idx            := NULL;          -- 4262811
87829 l_accted_amt_idx             := NULL;          -- 4262811
87830 l_acc_rev_flag               := NULL;          -- 4262811
87831 l_accrual_line_num           := NULL;          -- 4262811
87832 l_tmp_amt                    := NULL;          -- 4262811
87833 --
87834  
87835 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
87836     l_balance_type_code <> 'B' THEN
87837 IF NVL(p_source_50,'
87838 ') <>  'CLEAR_CLEAR' AND 
87839 NVL(p_source_32,'
87840 ') =  'TIPV' AND 
87841 (NVL(p_source_51,'
87842 ') =  'CASH' OR 
87843 NVL(p_source_51,'
87844 ') =  'DISCOUNT') AND 
87845 NVL(p_source_71,'
87846 ') =  'R' AND 
87847 NVL(p_source_111,'
87848 ') =  'Y'
87849  THEN 
87850 
87851    --
87852    XLA_AE_LINES_PKG.SetNewLine;
87853 
87854    p_balance_type_code          := l_balance_type_code;
87855    -- set the flag so later we will know whether the gain loss line needs to be created
87856    
87857    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
87858      p_actual_flag :='A';
87859    END IF;
87860 
87861    --
87862    -- bulk performance
87863    --
87864    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
87865                                       p_header_num   => 0); -- 4262811
87866    --
87867    -- set accounting line options
87868    --
87869    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
87870            p_natural_side_code          => 'D'
87871          , p_gain_or_loss_flag          => 'N'
87872          , p_gl_transfer_mode_code      => 'S'
87873          , p_acct_entry_type_code       => 'A'
87874          , p_switch_side_flag           => 'Y'
87875          , p_merge_duplicate_code       => 'A'
87876          );
87877    --
87878    l_acc_rev_natural_side_code := 'C';  -- 4262811
87879    -- 
87880    --
87881    -- set accounting line type info
87882    --
87883    xla_ae_lines_pkg.SetAcctLineType
87884       (p_component_type             => l_component_type
87885       ,p_event_type_code            => l_event_type_code
87886       ,p_line_definition_owner_code => l_line_definition_owner_code
87887       ,p_line_definition_code       => l_line_definition_code
87888       ,p_accounting_line_code       => l_component_code
87889       ,p_accounting_line_type_code  => l_component_type_code
87890       ,p_accounting_line_appl_id    => l_component_appl_id
87891       ,p_amb_context_code           => l_amb_context_code
87892       ,p_entity_code                => l_entity_code
87893       ,p_event_class_code           => l_event_class_code);
87894    --
87895    -- set accounting class
87896    --
87897    xla_ae_lines_pkg.SetAcctClass(
87898            p_accounting_class_code  => 'TIPV'
87899          , p_ae_header_id           => l_ae_header_id
87900          );
87901 
87902    --
87903    -- set rounding class
87904    --
87905    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
87906                       'TIPV';
87907 
87908    --
87909    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
87910    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
87911    --
87912    -- bulk performance
87913    --
87914    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
87915 
87916    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
87917       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
87918 
87919    -- 4955764
87920    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87921       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
87922 
87923    -- 4458381 Public Sector Enh
87924    
87925    --
87926    -- set accounting attributes for the line type
87927    --
87928    l_entered_amt_idx := 9;
87929    l_accted_amt_idx  := 14;
87933    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
87930    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
87931    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
87932    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
87934    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
87935    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
87936    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
87937    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
87938    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
87939    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
87940    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
87941    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
87942    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
87943    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
87944    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
87945    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
87946    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
87947    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
87948    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
87949    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
87950    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
87951    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
87952    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
87953    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
87954    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
87955    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
87956    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
87957    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
87958    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
87959    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
87960    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
87961    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
87962    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
87963    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
87964    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
87965    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
87966    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
87967    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
87968    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
87969    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
87970    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
87971    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
87972    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
87973    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
87974    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
87975    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
87976    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
87977 
87978    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
87979    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
87980 
87981    ---------------------------------------------------------------------------------------------------------------
87982    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
87983    ---------------------------------------------------------------------------------------------------------------
87984    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
87985 
87986    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87987    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87988 
87989    IF xla_accounting_cache_pkg.GetValueChar
87990          (p_source_code         => 'LEDGER_CATEGORY_CODE'
87991          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
87992    AND l_bflow_method_code = 'PRIOR_ENTRY'
87993 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
87994    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
87995          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
87996        )
87997    THEN
87998          xla_ae_lines_pkg.BflowUpgEntry
87999            (p_business_method_code    => l_bflow_method_code
88000            ,p_business_class_code     => l_bflow_class_code
88001            ,p_balance_type            => l_balance_type_code);
88002    ELSE
88003       NULL;
88004 -- No business flow processing for business flow method of NONE.
88005    END IF;
88006 
88007    --
88008    -- call analytical criteria
88009    --
88010    
88011    --
88012    -- call description
88013    --
88014    -- No description or it is inherited.
88015    --
88016    -- call ADRs
88017    -- Bug 4922099
88018    --
88019    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88020         (NVL(l_actual_upg_option, 'N') = 'O') OR
88021         (NVL(l_enc_upg_option, 'N') = 'O')
88022       )
88023    THEN
88024    NULL;
88025    --
88026    --
88027    
88028   l_ccid := AcctDerRule_28(
88029            p_application_id           => p_application_id
88030          , p_ae_header_id             => l_ae_header_id 
88034          , x_value_type_code          => l_adr_value_type_code
88031 , p_source_29 => p_source_29
88032          , x_transaction_coa_id       => l_adr_transaction_coa_id
88033          , x_accounting_coa_id        => l_adr_accounting_coa_id
88035          , p_side                     => 'NA'
88036    );
88037 
88038    xla_ae_lines_pkg.set_ccid(
88039     p_code_combination_id          => l_ccid
88040   , p_value_type_code              => l_adr_value_type_code
88041   , p_transaction_coa_id           => l_adr_transaction_coa_id
88042   , p_accounting_coa_id            => l_adr_accounting_coa_id
88043   , p_adr_code                     => 'AP_INVOICE_DIST'
88044   , p_adr_type_code                => 'S'
88045   , p_component_type               => l_component_type
88046   , p_component_code               => l_component_code
88047   , p_component_type_code          => l_component_type_code
88048   , p_component_appl_id            => l_component_appl_id
88049   , p_amb_context_code             => l_amb_context_code
88050   , p_side                         => 'NA'
88051   );
88052 
88053 
88054    --
88055    --
88056    END IF;
88057    --
88058    -- Bug 4922099
88059    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
88060           (NVL(l_enc_upg_option, 'N') = 'O')
88061         ) AND
88062         (l_bflow_method_code = 'PRIOR_ENTRY')
88063       )
88064    THEN
88065       IF
88066       --
88067       1 = 2
88068       --
88069       THEN
88070       xla_accounting_err_pkg.build_message
88071                                     (p_appli_s_name            => 'XLA'
88072                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88073                                     ,p_token_1                 => 'LINE_NUMBER'
88074                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
88075                                     ,p_token_2                 => 'LINE_TYPE_NAME'
88076                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
88077                                                                              l_component_type
88078                                                                             ,l_component_code
88079                                                                             ,l_component_type_code
88080                                                                             ,l_component_appl_id
88081                                                                             ,l_amb_context_code
88082                                                                             ,l_entity_code
88083                                                                             ,l_event_class_code
88084                                                                            )
88085                                     ,p_token_3                 => 'OWNER'
88086                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
88087                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
88088                                                                           ,p_lookup_code    => l_component_type_code
88089                                                                          )
88090                                     ,p_token_4                 => 'PRODUCT_NAME'
88091                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
88092                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
88093                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
88094                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
88095                                     ,p_ae_header_id            =>  NULL
88096                                        );
88097 
88098         IF (C_LEVEL_ERROR>= g_log_level) THEN
88099                  trace
88100                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88101                       ,p_level    => C_LEVEL_ERROR
88102                       ,p_module   => l_log_module);
88103         END IF;
88104       END IF;
88105    END IF;
88106    --
88107    --
88108    ------------------------------------------------------------------------------------------------
88109    -- 4219869 Business Flow
88110    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
88111    -- Prior Entry.  Currently, the following code is always generated.
88112    ------------------------------------------------------------------------------------------------
88113    XLA_AE_LINES_PKG.ValidateCurrentLine;
88114 
88115    ------------------------------------------------------------------------------------
88116    -- 4219869 Business Flow
88117    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
88118    ------------------------------------------------------------------------------------
88119    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88120 
88121    ----------------------------------------------------------------------------------
88122    -- 4219869 Business Flow
88123    -- Update journal entry status -- Need to generate this within IF <condition>
88124    ----------------------------------------------------------------------------------
88125    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88126          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
88130    -------------------------------------------------------------------------------------------
88127          ,p_balance_type_code => l_balance_type_code
88128          );
88129 
88131    -- 4262811 - Generate the Accrual Reversal lines
88132    -------------------------------------------------------------------------------------------
88133    BEGIN
88134       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
88135                               (g_array_event(p_event_id).array_value_num('header_index'));
88136       IF l_acc_rev_flag IS NULL THEN
88137          l_acc_rev_flag := 'N';
88138       END IF;
88139    EXCEPTION
88140       WHEN OTHERS THEN
88141          l_acc_rev_flag := 'N';
88142    END;
88143    --
88144    IF (l_acc_rev_flag = 'Y') THEN
88145 
88146        -- 4645092  ------------------------------------------------------------------------------
88147        -- To allow MPA report to determine if it should generate report process
88148        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
88149        ------------------------------------------------------------------------------------------
88150 
88151        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
88152        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
88153    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
88154    -- call ADRs
88155    -- Bug 4922099
88156    --
88157    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88158         (NVL(l_actual_upg_option, 'N') = 'O') OR
88159         (NVL(l_enc_upg_option, 'N') = 'O')
88160       )
88161    THEN
88162    NULL;
88163    --
88164    --
88165    
88166   l_ccid := AcctDerRule_28(
88167            p_application_id           => p_application_id
88168          , p_ae_header_id             => l_ae_header_id 
88169 , p_source_29 => p_source_29
88170          , x_transaction_coa_id       => l_adr_transaction_coa_id
88171          , x_accounting_coa_id        => l_adr_accounting_coa_id
88172          , x_value_type_code          => l_adr_value_type_code
88173          , p_side                     => 'NA'
88174    );
88175 
88176    xla_ae_lines_pkg.set_ccid(
88177     p_code_combination_id          => l_ccid
88178   , p_value_type_code              => l_adr_value_type_code
88179   , p_transaction_coa_id           => l_adr_transaction_coa_id
88180   , p_accounting_coa_id            => l_adr_accounting_coa_id
88181   , p_adr_code                     => 'AP_INVOICE_DIST'
88182   , p_adr_type_code                => 'S'
88183   , p_component_type               => l_component_type
88184   , p_component_code               => l_component_code
88185   , p_component_type_code          => l_component_type_code
88186   , p_component_appl_id            => l_component_appl_id
88187   , p_amb_context_code             => l_amb_context_code
88188   , p_side                         => 'NA'
88189   );
88190 
88191 
88192    --
88193    --
88194    END IF;
88195 
88196        --
88197        -- Update the line information that should be overwritten
88198        --
88199        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
88200                                          p_header_num   => 1);
88201        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
88202 
88203        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
88204 
88205        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
88206           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
88207        END IF;
88208 
88209       --
88210       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
88211       --
88212       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
88213           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
88214       ELSE
88215           ---------------------------------------------------------------------------------------------------
88216           -- 4262811a Switch Sign
88217           ---------------------------------------------------------------------------------------------------
88218           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
88219           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88220                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88221           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88222                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88223           -- 5132302
88224           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
88225                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88226 
88227       END IF;
88228 
88229       -- 4955764
88230       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88231       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
88232 
88233 
88234       XLA_AE_LINES_PKG.ValidateCurrentLine;
88235       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88236 
88240 
88237       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88238                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
88239                ,p_balance_type_code => l_balance_type_code);
88241    END IF;
88242 
88243    -----------------------------------------------------------------------------------------
88244    -- 4262811 Multiperiod Accounting
88245    -----------------------------------------------------------------------------------------
88246      -- No MPA option is assigned.
88247 
88248 
88249 END IF;
88250 END IF;
88251 --
88252 
88253 --
88254 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88255    trace
88256       (p_msg      => 'END of AcctLineType_154'
88257       ,p_level    => C_LEVEL_PROCEDURE
88258       ,p_module   => l_log_module);
88259 END IF;
88260 --
88261 EXCEPTION
88262   WHEN xla_exceptions_pkg.application_exception THEN
88263       RAISE;
88264   WHEN OTHERS THEN
88265        xla_exceptions_pkg.raise_message
88266            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_154');
88267 END AcctLineType_154;
88268 --
88269 
88270 ---------------------------------------
88271 --
88272 -- PRIVATE FUNCTION
88273 --         AcctLineType_155
88274 --
88275 ---------------------------------------
88276 PROCEDURE AcctLineType_155 (
88277   p_application_id        IN NUMBER
88278  ,p_event_id              IN NUMBER
88279  ,p_calculate_acctd_flag  IN VARCHAR2
88280  ,p_calculate_g_l_flag    IN VARCHAR2
88281  ,p_actual_flag           IN OUT VARCHAR2
88282  ,p_balance_type_code     OUT VARCHAR2
88283  ,p_gain_or_loss_ref      OUT VARCHAR2
88284  
88285 --Payment Currency Code
88286  , p_source_12            IN VARCHAR2
88287 --Payment Distribution (Cleared Rate) Ledger Amount
88288  , p_source_22            IN NUMBER
88289 --Invoice Distribution Account
88290  , p_source_29            IN NUMBER
88291 --Invoice Distribution Type
88292  , p_source_32            IN VARCHAR2
88293  , p_source_32_meaning    IN VARCHAR2
88294 --When to Account for Payment Option
88295  , p_source_50            IN VARCHAR2
88296 --Payment Distribution Type
88297  , p_source_51            IN VARCHAR2
88298  , p_source_51_meaning    IN VARCHAR2
88299 --Accounting Reversal Indicator
88300  , p_source_52            IN VARCHAR2
88301 --Payment Distribution Amount
88302  , p_source_53            IN NUMBER
88303 --Business Flow Accounts Payable Application Identifier
88304  , p_source_54            IN NUMBER
88305 --Business Flow Payment Distribution Type
88306  , p_source_55            IN VARCHAR2
88307 --Business Flow Payment Entity Code
88308  , p_source_56            IN VARCHAR2
88309 --Business Flow Payment Distribution Identifier
88310  , p_source_57            IN NUMBER
88311 --Business Flow Payment Identifier
88312  , p_source_58            IN NUMBER
88313 --Payment Distribution Identifier
88314  , p_source_59            IN NUMBER
88315 --Distribution Link Type
88316  , p_source_60            IN VARCHAR2
88317 --Override Accounted Amount Indicator
88318  , p_source_64            IN VARCHAR2
88319  , p_source_64_meaning    IN VARCHAR2
88320 --Payment Supplier Identifier
88321  , p_source_65            IN NUMBER
88322 --Payment Supplier Site Identifier
88323  , p_source_66            IN NUMBER
88324 --Third Party Type
88325  , p_source_67            IN VARCHAR2
88326 --Payment Distribution Reversed Identifier
88327  , p_source_68            IN NUMBER
88328 --Invoice Distribution Tax Line Identifier
88329  , p_source_69            IN NUMBER
88330 --Invoice Distribution Summary Tax Line Identifier
88331  , p_source_70            IN NUMBER
88332 --Accrue on Receipt Option
88333  , p_source_111            IN VARCHAR2
88334  , p_source_111_meaning    IN VARCHAR2
88335 --Cleared Exchange Date
88336  , p_source_114            IN DATE
88337 --Cleared Exchange Rate
88338  , p_source_115            IN NUMBER
88339 --Cleared Exchange Rate Type
88340  , p_source_116            IN VARCHAR2
88341 )
88342 IS
88343 
88344 l_component_type              VARCHAR2(80);
88345 l_component_code              VARCHAR2(30);
88346 l_component_type_code         VARCHAR2(1);
88347 l_component_appl_id           INTEGER;
88348 l_amb_context_code            VARCHAR2(30);
88349 l_entity_code                 VARCHAR2(30);
88350 l_event_class_code            VARCHAR2(30);
88351 l_ae_header_id                NUMBER;
88352 l_event_type_code             VARCHAR2(30);
88353 l_line_definition_code        VARCHAR2(30);
88354 l_line_definition_owner_code  VARCHAR2(1);
88355 --
88356 -- adr variables
88357 l_segment                     VARCHAR2(30);
88358 l_ccid                        NUMBER;
88359 l_adr_transaction_coa_id      NUMBER;
88360 l_adr_accounting_coa_id       NUMBER;
88361 l_adr_flexfield_segment_code  VARCHAR2(30);
88362 l_adr_flex_value_set_id       NUMBER;
88363 l_adr_value_type_code         VARCHAR2(30);
88364 l_adr_value_combination_id    NUMBER;
88365 l_adr_value_segment_code      VARCHAR2(30);
88366 
88367 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
88368 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
88369 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
88370 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
88371 
88372 -- 4262811 Variables ------------------------------------------------------------------------------------------
88373 l_entered_amt_idx             NUMBER;
88377 l_tmp_amt                     NUMBER;
88374 l_accted_amt_idx              NUMBER;
88375 l_acc_rev_flag                VARCHAR2(1);
88376 l_accrual_line_num            NUMBER;
88378 l_acc_rev_natural_side_code   VARCHAR2(1);
88379 
88380 l_num_entries                 NUMBER;
88381 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
88382 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
88383 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
88384 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
88385 l_recog_line_1                NUMBER;
88386 l_recog_line_2                NUMBER;
88387 
88388 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
88389 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
88390 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
88391 
88392 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
88393 
88394 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
88395 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
88396 
88397 ---------------------------------------------------------------------------------------------------------------
88398 
88399 
88400 --
88401 -- bulk performance
88402 --
88403 l_balance_type_code           VARCHAR2(1);
88404 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
88405 l_log_module                  VARCHAR2(240);
88406 
88407 --
88408 -- Upgrade strategy
88409 --
88410 l_actual_upg_option           VARCHAR2(1);
88411 l_enc_upg_option           VARCHAR2(1);
88412 
88413 --
88414 BEGIN
88415 --
88416 IF g_log_enabled THEN
88417       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_155';
88418 END IF;
88419 --
88420 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88421 
88422       trace
88423          (p_msg      => 'BEGIN of AcctLineType_155'
88424          ,p_level    => C_LEVEL_PROCEDURE
88425          ,p_module   => l_log_module);
88426 
88427 END IF;
88428 --
88429 l_component_type             := 'AMB_JLT';
88430 l_component_code             := 'AP_TAX_RATE_VAR_CLEAR';
88431 l_component_type_code        := 'S';
88432 l_component_appl_id          :=  200;
88433 l_amb_context_code           := 'DEFAULT';
88434 l_entity_code                := 'AP_PAYMENTS';
88435 l_event_class_code           := 'RECONCILED PAYMENTS';
88436 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
88437 l_line_definition_owner_code := 'S';
88438 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
88439 --
88440 l_balance_type_code          := 'A';
88441 l_segment                     := NULL;
88442 l_ccid                        := NULL;
88443 l_adr_transaction_coa_id      := NULL;
88444 l_adr_accounting_coa_id       := NULL;
88445 l_adr_flexfield_segment_code  := NULL;
88446 l_adr_flex_value_set_id       := NULL;
88447 l_adr_value_type_code         := NULL;
88448 l_adr_value_combination_id    := NULL;
88449 l_adr_value_segment_code      := NULL;
88450 
88451 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
88452 l_bflow_class_code           := '';    -- 4219869 Business Flow
88453 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
88454 l_budgetary_control_flag     := 'N';
88455 
88456 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
88457 l_bflow_applied_to_amt       := NULL; -- 5132302
88458 l_entered_amt_idx            := NULL;          -- 4262811
88459 l_accted_amt_idx             := NULL;          -- 4262811
88460 l_acc_rev_flag               := NULL;          -- 4262811
88461 l_accrual_line_num           := NULL;          -- 4262811
88462 l_tmp_amt                    := NULL;          -- 4262811
88463 --
88464  
88465 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
88466     l_balance_type_code <> 'B' THEN
88467 IF NVL(p_source_50,'
88468 ') =  'CLEAR_CLEAR' AND 
88469 NVL(p_source_32,'
88470 ') =  'TRV' AND 
88471 (NVL(p_source_51,'
88472 ') =  'CASH' OR 
88473 NVL(p_source_51,'
88474 ') =  'AWT' OR 
88475 NVL(p_source_51,'
88476 ') =  'DISCOUNT') AND 
88477 NVL(p_source_111,'
88478 ') =  'Y'
88479  THEN 
88480 
88481    --
88482    XLA_AE_LINES_PKG.SetNewLine;
88483 
88484    p_balance_type_code          := l_balance_type_code;
88485    -- set the flag so later we will know whether the gain loss line needs to be created
88486    
88487    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
88488      p_actual_flag :='A';
88489    END IF;
88490 
88491    --
88492    -- bulk performance
88493    --
88494    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
88495                                       p_header_num   => 0); -- 4262811
88496    --
88497    -- set accounting line options
88498    --
88499    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
88500            p_natural_side_code          => 'D'
88501          , p_gain_or_loss_flag          => 'N'
88502          , p_gl_transfer_mode_code      => 'S'
88503          , p_acct_entry_type_code       => 'A'
88504          , p_switch_side_flag           => 'Y'
88505          , p_merge_duplicate_code       => 'A'
88506          );
88507    --
88508    l_acc_rev_natural_side_code := 'C';  -- 4262811
88509    -- 
88510    --
88511    -- set accounting line type info
88512    --
88516       ,p_line_definition_owner_code => l_line_definition_owner_code
88513    xla_ae_lines_pkg.SetAcctLineType
88514       (p_component_type             => l_component_type
88515       ,p_event_type_code            => l_event_type_code
88517       ,p_line_definition_code       => l_line_definition_code
88518       ,p_accounting_line_code       => l_component_code
88519       ,p_accounting_line_type_code  => l_component_type_code
88520       ,p_accounting_line_appl_id    => l_component_appl_id
88521       ,p_amb_context_code           => l_amb_context_code
88522       ,p_entity_code                => l_entity_code
88523       ,p_event_class_code           => l_event_class_code);
88524    --
88525    -- set accounting class
88526    --
88527    xla_ae_lines_pkg.SetAcctClass(
88528            p_accounting_class_code  => 'TRV'
88529          , p_ae_header_id           => l_ae_header_id
88530          );
88531 
88532    --
88533    -- set rounding class
88534    --
88535    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
88536                       'TRV';
88537 
88538    --
88539    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
88540    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
88541    --
88542    -- bulk performance
88543    --
88544    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
88545 
88546    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
88547       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
88548 
88549    -- 4955764
88550    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88551       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
88552 
88553    -- 4458381 Public Sector Enh
88554    
88555    --
88556    -- set accounting attributes for the line type
88557    --
88558    l_entered_amt_idx := 10;
88559    l_accted_amt_idx  := 15;
88560    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
88561    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
88562    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
88563    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
88564    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
88565    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
88566    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
88567    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
88568    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
88569    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
88570    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
88571    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
88572    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
88573    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
88574    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
88575    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
88576    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
88577    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
88578    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
88579    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
88580    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
88581    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
88582    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
88583    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
88584    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
88585    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
88586    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
88587    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
88588    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
88589    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
88590    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
88591    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
88592    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
88593    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
88594    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
88595    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
88596    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
88597    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
88598    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
88599    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
88600    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
88601    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
88602    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
88603    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
88604    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
88605    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
88606    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
88607    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
88608    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
88609 
88610    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
88614    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
88611    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
88612 
88613    ---------------------------------------------------------------------------------------------------------------
88615    ---------------------------------------------------------------------------------------------------------------
88616    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
88617 
88618    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88619    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88620 
88621    IF xla_accounting_cache_pkg.GetValueChar
88622          (p_source_code         => 'LEDGER_CATEGORY_CODE'
88623          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
88624    AND l_bflow_method_code = 'PRIOR_ENTRY'
88625 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
88626    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
88627          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
88628        )
88629    THEN
88630          xla_ae_lines_pkg.BflowUpgEntry
88631            (p_business_method_code    => l_bflow_method_code
88632            ,p_business_class_code     => l_bflow_class_code
88633            ,p_balance_type            => l_balance_type_code);
88634    ELSE
88635       NULL;
88636 -- No business flow processing for business flow method of NONE.
88637    END IF;
88638 
88639    --
88640    -- call analytical criteria
88641    --
88642    
88643    --
88644    -- call description
88645    --
88646    -- No description or it is inherited.
88647    --
88648    -- call ADRs
88649    -- Bug 4922099
88650    --
88651    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88652         (NVL(l_actual_upg_option, 'N') = 'O') OR
88653         (NVL(l_enc_upg_option, 'N') = 'O')
88654       )
88655    THEN
88656    NULL;
88657    --
88658    --
88659    
88660   l_ccid := AcctDerRule_28(
88661            p_application_id           => p_application_id
88662          , p_ae_header_id             => l_ae_header_id 
88663 , p_source_29 => p_source_29
88664          , x_transaction_coa_id       => l_adr_transaction_coa_id
88665          , x_accounting_coa_id        => l_adr_accounting_coa_id
88666          , x_value_type_code          => l_adr_value_type_code
88667          , p_side                     => 'NA'
88668    );
88669 
88670    xla_ae_lines_pkg.set_ccid(
88671     p_code_combination_id          => l_ccid
88672   , p_value_type_code              => l_adr_value_type_code
88673   , p_transaction_coa_id           => l_adr_transaction_coa_id
88674   , p_accounting_coa_id            => l_adr_accounting_coa_id
88675   , p_adr_code                     => 'AP_INVOICE_DIST'
88676   , p_adr_type_code                => 'S'
88677   , p_component_type               => l_component_type
88678   , p_component_code               => l_component_code
88679   , p_component_type_code          => l_component_type_code
88680   , p_component_appl_id            => l_component_appl_id
88681   , p_amb_context_code             => l_amb_context_code
88682   , p_side                         => 'NA'
88683   );
88684 
88685 
88686    --
88687    --
88688    END IF;
88689    --
88690    -- Bug 4922099
88691    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
88692           (NVL(l_enc_upg_option, 'N') = 'O')
88693         ) AND
88694         (l_bflow_method_code = 'PRIOR_ENTRY')
88695       )
88696    THEN
88697       IF
88698       --
88699       1 = 2
88700       --
88701       THEN
88702       xla_accounting_err_pkg.build_message
88703                                     (p_appli_s_name            => 'XLA'
88704                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88705                                     ,p_token_1                 => 'LINE_NUMBER'
88706                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
88707                                     ,p_token_2                 => 'LINE_TYPE_NAME'
88708                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
88709                                                                              l_component_type
88710                                                                             ,l_component_code
88711                                                                             ,l_component_type_code
88712                                                                             ,l_component_appl_id
88713                                                                             ,l_amb_context_code
88714                                                                             ,l_entity_code
88715                                                                             ,l_event_class_code
88716                                                                            )
88717                                     ,p_token_3                 => 'OWNER'
88718                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
88719                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
88720                                                                           ,p_lookup_code    => l_component_type_code
88724                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
88721                                                                          )
88722                                     ,p_token_4                 => 'PRODUCT_NAME'
88723                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
88725                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
88726                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
88727                                     ,p_ae_header_id            =>  NULL
88728                                        );
88729 
88730         IF (C_LEVEL_ERROR>= g_log_level) THEN
88731                  trace
88732                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88733                       ,p_level    => C_LEVEL_ERROR
88734                       ,p_module   => l_log_module);
88735         END IF;
88736       END IF;
88737    END IF;
88738    --
88739    --
88740    ------------------------------------------------------------------------------------------------
88741    -- 4219869 Business Flow
88742    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
88743    -- Prior Entry.  Currently, the following code is always generated.
88744    ------------------------------------------------------------------------------------------------
88745    XLA_AE_LINES_PKG.ValidateCurrentLine;
88746 
88747    ------------------------------------------------------------------------------------
88748    -- 4219869 Business Flow
88749    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
88750    ------------------------------------------------------------------------------------
88751    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88752 
88753    ----------------------------------------------------------------------------------
88754    -- 4219869 Business Flow
88755    -- Update journal entry status -- Need to generate this within IF <condition>
88756    ----------------------------------------------------------------------------------
88757    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88758          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
88759          ,p_balance_type_code => l_balance_type_code
88760          );
88761 
88762    -------------------------------------------------------------------------------------------
88763    -- 4262811 - Generate the Accrual Reversal lines
88764    -------------------------------------------------------------------------------------------
88765    BEGIN
88766       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
88767                               (g_array_event(p_event_id).array_value_num('header_index'));
88768       IF l_acc_rev_flag IS NULL THEN
88769          l_acc_rev_flag := 'N';
88770       END IF;
88771    EXCEPTION
88772       WHEN OTHERS THEN
88773          l_acc_rev_flag := 'N';
88774    END;
88775    --
88776    IF (l_acc_rev_flag = 'Y') THEN
88777 
88778        -- 4645092  ------------------------------------------------------------------------------
88779        -- To allow MPA report to determine if it should generate report process
88780        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
88781        ------------------------------------------------------------------------------------------
88782 
88783        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
88784        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
88785    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
88786    -- call ADRs
88787    -- Bug 4922099
88788    --
88789    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88790         (NVL(l_actual_upg_option, 'N') = 'O') OR
88791         (NVL(l_enc_upg_option, 'N') = 'O')
88792       )
88793    THEN
88794    NULL;
88795    --
88796    --
88797    
88798   l_ccid := AcctDerRule_28(
88799            p_application_id           => p_application_id
88800          , p_ae_header_id             => l_ae_header_id 
88801 , p_source_29 => p_source_29
88802          , x_transaction_coa_id       => l_adr_transaction_coa_id
88803          , x_accounting_coa_id        => l_adr_accounting_coa_id
88804          , x_value_type_code          => l_adr_value_type_code
88805          , p_side                     => 'NA'
88806    );
88807 
88808    xla_ae_lines_pkg.set_ccid(
88809     p_code_combination_id          => l_ccid
88810   , p_value_type_code              => l_adr_value_type_code
88811   , p_transaction_coa_id           => l_adr_transaction_coa_id
88812   , p_accounting_coa_id            => l_adr_accounting_coa_id
88813   , p_adr_code                     => 'AP_INVOICE_DIST'
88814   , p_adr_type_code                => 'S'
88815   , p_component_type               => l_component_type
88816   , p_component_code               => l_component_code
88817   , p_component_type_code          => l_component_type_code
88818   , p_component_appl_id            => l_component_appl_id
88819   , p_amb_context_code             => l_amb_context_code
88820   , p_side                         => 'NA'
88821   );
88822 
88823 
88824    --
88825    --
88826    END IF;
88827 
88828        --
88829        -- Update the line information that should be overwritten
88830        --
88831        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
88835        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
88832                                          p_header_num   => 1);
88833        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
88834 
88836 
88837        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
88838           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
88839        END IF;
88840 
88841       --
88842       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
88843       --
88844       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
88845           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
88846       ELSE
88847           ---------------------------------------------------------------------------------------------------
88848           -- 4262811a Switch Sign
88849           ---------------------------------------------------------------------------------------------------
88850           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
88851           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88852                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88853           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88854                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88855           -- 5132302
88856           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
88857                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88858 
88859       END IF;
88860 
88861       -- 4955764
88862       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88863       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
88864 
88865 
88866       XLA_AE_LINES_PKG.ValidateCurrentLine;
88867       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88868 
88869       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88870                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
88871                ,p_balance_type_code => l_balance_type_code);
88872 
88873    END IF;
88874 
88875    -----------------------------------------------------------------------------------------
88876    -- 4262811 Multiperiod Accounting
88877    -----------------------------------------------------------------------------------------
88878      -- No MPA option is assigned.
88879 
88880 
88881 END IF;
88882 END IF;
88883 --
88884 
88885 --
88886 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88887    trace
88888       (p_msg      => 'END of AcctLineType_155'
88889       ,p_level    => C_LEVEL_PROCEDURE
88890       ,p_module   => l_log_module);
88891 END IF;
88892 --
88893 EXCEPTION
88894   WHEN xla_exceptions_pkg.application_exception THEN
88895       RAISE;
88896   WHEN OTHERS THEN
88897        xla_exceptions_pkg.raise_message
88898            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_155');
88899 END AcctLineType_155;
88900 --
88901 
88902 ---------------------------------------
88903 --
88904 -- PRIVATE FUNCTION
88905 --         AcctLineType_156
88906 --
88907 ---------------------------------------
88908 PROCEDURE AcctLineType_156 (
88909   p_application_id        IN NUMBER
88910  ,p_event_id              IN NUMBER
88911  ,p_calculate_acctd_flag  IN VARCHAR2
88912  ,p_calculate_g_l_flag    IN VARCHAR2
88913  ,p_actual_flag           IN OUT VARCHAR2
88914  ,p_balance_type_code     OUT VARCHAR2
88915  ,p_gain_or_loss_ref      OUT VARCHAR2
88916  
88917 --Payment Currency Code
88918  , p_source_12            IN VARCHAR2
88919 --Payment Distribution (Payment Rate) Ledger Amount
88920  , p_source_21            IN NUMBER
88921 --Invoice Distribution Account
88922  , p_source_29            IN NUMBER
88923 --Invoice Distribution Type
88924  , p_source_32            IN VARCHAR2
88925  , p_source_32_meaning    IN VARCHAR2
88926 --When to Account for Payment Option
88927  , p_source_50            IN VARCHAR2
88928 --Payment Distribution Type
88929  , p_source_51            IN VARCHAR2
88930  , p_source_51_meaning    IN VARCHAR2
88931 --Accounting Reversal Indicator
88932  , p_source_52            IN VARCHAR2
88933 --Payment Distribution Amount
88934  , p_source_53            IN NUMBER
88935 --Business Flow Accounts Payable Application Identifier
88936  , p_source_54            IN NUMBER
88937 --Payment Distribution Identifier
88938  , p_source_59            IN NUMBER
88939 --Distribution Link Type
88940  , p_source_60            IN VARCHAR2
88941 --Override Accounted Amount Indicator
88942  , p_source_64            IN VARCHAR2
88943  , p_source_64_meaning    IN VARCHAR2
88944 --Payment Supplier Identifier
88945  , p_source_65            IN NUMBER
88946 --Payment Supplier Site Identifier
88947  , p_source_66            IN NUMBER
88948 --Third Party Type
88949  , p_source_67            IN VARCHAR2
88950 --Payment Distribution Reversed Identifier
88951  , p_source_68            IN NUMBER
88952 --Invoice Distribution Tax Line Identifier
88956 --Payment Type
88953  , p_source_69            IN NUMBER
88954 --Invoice Distribution Summary Tax Line Identifier
88955  , p_source_70            IN NUMBER
88957  , p_source_71            IN VARCHAR2
88958  , p_source_71_meaning    IN VARCHAR2
88959 --Invoice Distribution Amount of the Payment Distribution
88960  , p_source_72            IN NUMBER
88961 --Business Flow Invoice Distribution Type
88962  , p_source_73            IN VARCHAR2
88963 --Business Flow Invoice Entity Code
88964  , p_source_74            IN VARCHAR2
88965 --Business Flow Invoice Distribution Identifier
88966  , p_source_75            IN NUMBER
88967 --Business Flow Invoice Identifier
88968  , p_source_76            IN NUMBER
88969 --Invoice Distribution Tax Distribution Identifier from Tax
88970  , p_source_77            IN NUMBER
88971 --Accrue on Receipt Option
88972  , p_source_111            IN VARCHAR2
88973  , p_source_111_meaning    IN VARCHAR2
88974 --Invoice Type Paid
88975  , p_source_112            IN VARCHAR2
88976  , p_source_112_meaning    IN VARCHAR2
88977 --Payment Exchange Date
88978  , p_source_121            IN DATE
88979 --Payment Exchange Rate
88980  , p_source_122            IN NUMBER
88981 --Payment Exchange Rate Type
88982  , p_source_123            IN VARCHAR2
88983 )
88984 IS
88985 
88986 l_component_type              VARCHAR2(80);
88987 l_component_code              VARCHAR2(30);
88988 l_component_type_code         VARCHAR2(1);
88989 l_component_appl_id           INTEGER;
88990 l_amb_context_code            VARCHAR2(30);
88991 l_entity_code                 VARCHAR2(30);
88992 l_event_class_code            VARCHAR2(30);
88993 l_ae_header_id                NUMBER;
88994 l_event_type_code             VARCHAR2(30);
88995 l_line_definition_code        VARCHAR2(30);
88996 l_line_definition_owner_code  VARCHAR2(1);
88997 --
88998 -- adr variables
88999 l_segment                     VARCHAR2(30);
89000 l_ccid                        NUMBER;
89001 l_adr_transaction_coa_id      NUMBER;
89002 l_adr_accounting_coa_id       NUMBER;
89003 l_adr_flexfield_segment_code  VARCHAR2(30);
89004 l_adr_flex_value_set_id       NUMBER;
89005 l_adr_value_type_code         VARCHAR2(30);
89006 l_adr_value_combination_id    NUMBER;
89007 l_adr_value_segment_code      VARCHAR2(30);
89008 
89009 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
89010 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
89011 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
89012 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
89013 
89014 -- 4262811 Variables ------------------------------------------------------------------------------------------
89015 l_entered_amt_idx             NUMBER;
89016 l_accted_amt_idx              NUMBER;
89017 l_acc_rev_flag                VARCHAR2(1);
89018 l_accrual_line_num            NUMBER;
89019 l_tmp_amt                     NUMBER;
89020 l_acc_rev_natural_side_code   VARCHAR2(1);
89021 
89022 l_num_entries                 NUMBER;
89023 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
89024 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
89025 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
89026 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
89027 l_recog_line_1                NUMBER;
89028 l_recog_line_2                NUMBER;
89029 
89030 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
89031 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
89032 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
89033 
89034 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
89035 
89036 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
89037 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
89038 
89039 ---------------------------------------------------------------------------------------------------------------
89040 
89041 
89042 --
89043 -- bulk performance
89044 --
89045 l_balance_type_code           VARCHAR2(1);
89046 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
89047 l_log_module                  VARCHAR2(240);
89048 
89049 --
89050 -- Upgrade strategy
89051 --
89052 l_actual_upg_option           VARCHAR2(1);
89053 l_enc_upg_option           VARCHAR2(1);
89054 
89055 --
89056 BEGIN
89057 --
89058 IF g_log_enabled THEN
89059       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_156';
89060 END IF;
89061 --
89062 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89063 
89064       trace
89065          (p_msg      => 'BEGIN of AcctLineType_156'
89066          ,p_level    => C_LEVEL_PROCEDURE
89067          ,p_module   => l_log_module);
89068 
89069 END IF;
89070 --
89071 l_component_type             := 'AMB_JLT';
89072 l_component_code             := 'AP_TAX_RATE_VAR_PMT';
89073 l_component_type_code        := 'S';
89074 l_component_appl_id          :=  200;
89075 l_amb_context_code           := 'DEFAULT';
89076 l_entity_code                := 'AP_PAYMENTS';
89077 l_event_class_code           := 'PAYMENTS';
89078 l_event_type_code            := 'PAYMENTS_ALL';
89079 l_line_definition_owner_code := 'S';
89080 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
89081 --
89085 l_adr_transaction_coa_id      := NULL;
89082 l_balance_type_code          := 'A';
89083 l_segment                     := NULL;
89084 l_ccid                        := NULL;
89086 l_adr_accounting_coa_id       := NULL;
89087 l_adr_flexfield_segment_code  := NULL;
89088 l_adr_flex_value_set_id       := NULL;
89089 l_adr_value_type_code         := NULL;
89090 l_adr_value_combination_id    := NULL;
89091 l_adr_value_segment_code      := NULL;
89092 
89093 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
89094 l_bflow_class_code           := '';    -- 4219869 Business Flow
89095 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
89096 l_budgetary_control_flag     := 'N';
89097 
89098 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
89099 l_bflow_applied_to_amt       := NULL; -- 5132302
89100 l_entered_amt_idx            := NULL;          -- 4262811
89101 l_accted_amt_idx             := NULL;          -- 4262811
89102 l_acc_rev_flag               := NULL;          -- 4262811
89103 l_accrual_line_num           := NULL;          -- 4262811
89104 l_tmp_amt                    := NULL;          -- 4262811
89105 --
89106  
89107 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
89108     l_balance_type_code <> 'B' THEN
89109 IF NVL(p_source_50,'
89110 ') <>  'CLEAR_CLEAR' AND 
89111 NVL(p_source_32,'
89112 ') =  'TRV' AND 
89113 NVL(p_source_112,'
89114 ') <>  'INTEREST' AND 
89115 (NVL(p_source_51,'
89116 ') =  'CASH' OR 
89117 NVL(p_source_51,'
89118 ') =  'AWT' OR 
89119 NVL(p_source_51,'
89120 ') =  'DISCOUNT') AND 
89121 NVL(p_source_71,'
89122 ') <>  'R' AND 
89123 NVL(p_source_111,'
89124 ') =  'Y'
89125  THEN 
89126 
89127    --
89128    XLA_AE_LINES_PKG.SetNewLine;
89129 
89130    p_balance_type_code          := l_balance_type_code;
89131    -- set the flag so later we will know whether the gain loss line needs to be created
89132    
89133    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
89134      p_actual_flag :='A';
89135    END IF;
89136 
89137    --
89138    -- bulk performance
89139    --
89140    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
89141                                       p_header_num   => 0); -- 4262811
89142    --
89143    -- set accounting line options
89144    --
89145    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
89146            p_natural_side_code          => 'D'
89147          , p_gain_or_loss_flag          => 'N'
89148          , p_gl_transfer_mode_code      => 'S'
89149          , p_acct_entry_type_code       => 'A'
89150          , p_switch_side_flag           => 'Y'
89151          , p_merge_duplicate_code       => 'A'
89152          );
89153    --
89154    l_acc_rev_natural_side_code := 'C';  -- 4262811
89155    -- 
89156    --
89157    -- set accounting line type info
89158    --
89159    xla_ae_lines_pkg.SetAcctLineType
89160       (p_component_type             => l_component_type
89161       ,p_event_type_code            => l_event_type_code
89162       ,p_line_definition_owner_code => l_line_definition_owner_code
89163       ,p_line_definition_code       => l_line_definition_code
89164       ,p_accounting_line_code       => l_component_code
89165       ,p_accounting_line_type_code  => l_component_type_code
89166       ,p_accounting_line_appl_id    => l_component_appl_id
89167       ,p_amb_context_code           => l_amb_context_code
89168       ,p_entity_code                => l_entity_code
89169       ,p_event_class_code           => l_event_class_code);
89170    --
89171    -- set accounting class
89172    --
89173    xla_ae_lines_pkg.SetAcctClass(
89174            p_accounting_class_code  => 'TRV'
89175          , p_ae_header_id           => l_ae_header_id
89176          );
89177 
89178    --
89179    -- set rounding class
89180    --
89181    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
89182                       'TRV';
89183 
89184    --
89185    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
89186    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
89187    --
89188    -- bulk performance
89189    --
89190    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
89191 
89192    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
89193       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
89194 
89195    -- 4955764
89196    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89197       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
89198 
89199    -- 4458381 Public Sector Enh
89200    
89201    --
89202    -- set accounting attributes for the line type
89203    --
89204    l_entered_amt_idx := 10;
89205    l_accted_amt_idx  := 15;
89206    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
89207    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
89208    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
89209    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
89210    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
89211    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
89212    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
89216    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
89213    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
89214    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
89215    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
89217    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
89218    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
89219    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
89220    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
89221    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
89222    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
89223    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
89224    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
89225    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
89226    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
89227    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
89228    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
89229    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
89230    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
89231    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
89232    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
89233    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
89234    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
89235    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
89236    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
89237    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
89238    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
89239    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
89240    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
89241    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
89242    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
89243    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
89244    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
89245    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
89246    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
89247    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
89248    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
89249    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
89250    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
89251    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
89252    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
89253    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
89254    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
89255 
89256    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
89257    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
89258 
89259    ---------------------------------------------------------------------------------------------------------------
89260    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
89261    ---------------------------------------------------------------------------------------------------------------
89262    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
89263 
89264    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89265    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89266 
89267    IF xla_accounting_cache_pkg.GetValueChar
89268          (p_source_code         => 'LEDGER_CATEGORY_CODE'
89269          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
89270    AND l_bflow_method_code = 'PRIOR_ENTRY'
89271 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
89272    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
89273          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
89274        )
89275    THEN
89276          xla_ae_lines_pkg.BflowUpgEntry
89277            (p_business_method_code    => l_bflow_method_code
89278            ,p_business_class_code     => l_bflow_class_code
89279            ,p_balance_type            => l_balance_type_code);
89280    ELSE
89281       NULL;
89282 -- No business flow processing for business flow method of NONE.
89283    END IF;
89284 
89285    --
89286    -- call analytical criteria
89287    --
89288    
89289    --
89290    -- call description
89291    --
89292    -- No description or it is inherited.
89293    --
89294    -- call ADRs
89295    -- Bug 4922099
89296    --
89297    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89298         (NVL(l_actual_upg_option, 'N') = 'O') OR
89299         (NVL(l_enc_upg_option, 'N') = 'O')
89300       )
89301    THEN
89302    NULL;
89303    --
89304    --
89305    
89306   l_ccid := AcctDerRule_28(
89307            p_application_id           => p_application_id
89308          , p_ae_header_id             => l_ae_header_id 
89309 , p_source_29 => p_source_29
89310          , x_transaction_coa_id       => l_adr_transaction_coa_id
89311          , x_accounting_coa_id        => l_adr_accounting_coa_id
89312          , x_value_type_code          => l_adr_value_type_code
89313          , p_side                     => 'NA'
89314    );
89315 
89319   , p_transaction_coa_id           => l_adr_transaction_coa_id
89316    xla_ae_lines_pkg.set_ccid(
89317     p_code_combination_id          => l_ccid
89318   , p_value_type_code              => l_adr_value_type_code
89320   , p_accounting_coa_id            => l_adr_accounting_coa_id
89321   , p_adr_code                     => 'AP_INVOICE_DIST'
89322   , p_adr_type_code                => 'S'
89323   , p_component_type               => l_component_type
89324   , p_component_code               => l_component_code
89325   , p_component_type_code          => l_component_type_code
89326   , p_component_appl_id            => l_component_appl_id
89327   , p_amb_context_code             => l_amb_context_code
89328   , p_side                         => 'NA'
89329   );
89330 
89331 
89332    --
89333    --
89334    END IF;
89335    --
89336    -- Bug 4922099
89337    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
89338           (NVL(l_enc_upg_option, 'N') = 'O')
89339         ) AND
89340         (l_bflow_method_code = 'PRIOR_ENTRY')
89341       )
89342    THEN
89343       IF
89344       --
89345       1 = 2
89346       --
89347       THEN
89348       xla_accounting_err_pkg.build_message
89349                                     (p_appli_s_name            => 'XLA'
89350                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89351                                     ,p_token_1                 => 'LINE_NUMBER'
89352                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
89353                                     ,p_token_2                 => 'LINE_TYPE_NAME'
89354                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
89355                                                                              l_component_type
89356                                                                             ,l_component_code
89357                                                                             ,l_component_type_code
89358                                                                             ,l_component_appl_id
89359                                                                             ,l_amb_context_code
89360                                                                             ,l_entity_code
89361                                                                             ,l_event_class_code
89362                                                                            )
89363                                     ,p_token_3                 => 'OWNER'
89364                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
89365                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
89366                                                                           ,p_lookup_code    => l_component_type_code
89367                                                                          )
89368                                     ,p_token_4                 => 'PRODUCT_NAME'
89369                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
89370                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
89371                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
89372                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
89373                                     ,p_ae_header_id            =>  NULL
89374                                        );
89375 
89376         IF (C_LEVEL_ERROR>= g_log_level) THEN
89377                  trace
89378                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89379                       ,p_level    => C_LEVEL_ERROR
89380                       ,p_module   => l_log_module);
89381         END IF;
89382       END IF;
89383    END IF;
89384    --
89385    --
89386    ------------------------------------------------------------------------------------------------
89387    -- 4219869 Business Flow
89388    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
89389    -- Prior Entry.  Currently, the following code is always generated.
89390    ------------------------------------------------------------------------------------------------
89391    XLA_AE_LINES_PKG.ValidateCurrentLine;
89392 
89393    ------------------------------------------------------------------------------------
89394    -- 4219869 Business Flow
89395    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
89396    ------------------------------------------------------------------------------------
89397    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89398 
89399    ----------------------------------------------------------------------------------
89400    -- 4219869 Business Flow
89401    -- Update journal entry status -- Need to generate this within IF <condition>
89402    ----------------------------------------------------------------------------------
89403    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89404          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
89405          ,p_balance_type_code => l_balance_type_code
89406          );
89407 
89408    -------------------------------------------------------------------------------------------
89409    -- 4262811 - Generate the Accrual Reversal lines
89410    -------------------------------------------------------------------------------------------
89411    BEGIN
89415          l_acc_rev_flag := 'N';
89412       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
89413                               (g_array_event(p_event_id).array_value_num('header_index'));
89414       IF l_acc_rev_flag IS NULL THEN
89416       END IF;
89417    EXCEPTION
89418       WHEN OTHERS THEN
89419          l_acc_rev_flag := 'N';
89420    END;
89421    --
89422    IF (l_acc_rev_flag = 'Y') THEN
89423 
89424        -- 4645092  ------------------------------------------------------------------------------
89425        -- To allow MPA report to determine if it should generate report process
89426        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
89427        ------------------------------------------------------------------------------------------
89428 
89429        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
89430        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
89431    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
89432    -- call ADRs
89433    -- Bug 4922099
89434    --
89435    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89436         (NVL(l_actual_upg_option, 'N') = 'O') OR
89437         (NVL(l_enc_upg_option, 'N') = 'O')
89438       )
89439    THEN
89440    NULL;
89441    --
89442    --
89443    
89444   l_ccid := AcctDerRule_28(
89445            p_application_id           => p_application_id
89446          , p_ae_header_id             => l_ae_header_id 
89447 , p_source_29 => p_source_29
89448          , x_transaction_coa_id       => l_adr_transaction_coa_id
89449          , x_accounting_coa_id        => l_adr_accounting_coa_id
89450          , x_value_type_code          => l_adr_value_type_code
89451          , p_side                     => 'NA'
89452    );
89453 
89454    xla_ae_lines_pkg.set_ccid(
89455     p_code_combination_id          => l_ccid
89456   , p_value_type_code              => l_adr_value_type_code
89457   , p_transaction_coa_id           => l_adr_transaction_coa_id
89458   , p_accounting_coa_id            => l_adr_accounting_coa_id
89459   , p_adr_code                     => 'AP_INVOICE_DIST'
89460   , p_adr_type_code                => 'S'
89461   , p_component_type               => l_component_type
89462   , p_component_code               => l_component_code
89463   , p_component_type_code          => l_component_type_code
89464   , p_component_appl_id            => l_component_appl_id
89465   , p_amb_context_code             => l_amb_context_code
89466   , p_side                         => 'NA'
89467   );
89468 
89469 
89470    --
89471    --
89472    END IF;
89473 
89474        --
89475        -- Update the line information that should be overwritten
89476        --
89477        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
89478                                          p_header_num   => 1);
89479        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
89480 
89481        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
89482 
89483        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
89484           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
89485        END IF;
89486 
89487       --
89488       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
89489       --
89490       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
89491           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
89492       ELSE
89493           ---------------------------------------------------------------------------------------------------
89494           -- 4262811a Switch Sign
89495           ---------------------------------------------------------------------------------------------------
89496           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
89497           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89498                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89499           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89500                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89501           -- 5132302
89502           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
89503                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89504 
89505       END IF;
89506 
89507       -- 4955764
89508       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89509       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
89510 
89511 
89512       XLA_AE_LINES_PKG.ValidateCurrentLine;
89513       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89514 
89515       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89516                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
89517                ,p_balance_type_code => l_balance_type_code);
89518 
89519    END IF;
89520 
89521    -----------------------------------------------------------------------------------------
89522    -- 4262811 Multiperiod Accounting
89526 
89523    -----------------------------------------------------------------------------------------
89524      -- No MPA option is assigned.
89525 
89527 END IF;
89528 END IF;
89529 --
89530 
89531 --
89532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89533    trace
89534       (p_msg      => 'END of AcctLineType_156'
89535       ,p_level    => C_LEVEL_PROCEDURE
89536       ,p_module   => l_log_module);
89537 END IF;
89538 --
89539 EXCEPTION
89540   WHEN xla_exceptions_pkg.application_exception THEN
89541       RAISE;
89542   WHEN OTHERS THEN
89543        xla_exceptions_pkg.raise_message
89544            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_156');
89545 END AcctLineType_156;
89546 --
89547 
89548 ---------------------------------------
89549 --
89550 -- PRIVATE FUNCTION
89551 --         AcctLineType_157
89552 --
89553 ---------------------------------------
89554 PROCEDURE AcctLineType_157 (
89555   p_application_id        IN NUMBER
89556  ,p_event_id              IN NUMBER
89557  ,p_calculate_acctd_flag  IN VARCHAR2
89558  ,p_calculate_g_l_flag    IN VARCHAR2
89559  ,p_actual_flag           IN OUT VARCHAR2
89560  ,p_balance_type_code     OUT VARCHAR2
89561  ,p_gain_or_loss_ref      OUT VARCHAR2
89562  
89563 --Payment Currency Code
89564  , p_source_12            IN VARCHAR2
89565 --Payment Distribution (Payment Rate) Ledger Amount
89566  , p_source_21            IN NUMBER
89567 --Invoice Distribution Account
89568  , p_source_29            IN NUMBER
89569 --Invoice Distribution Type
89570  , p_source_32            IN VARCHAR2
89571  , p_source_32_meaning    IN VARCHAR2
89572 --When to Account for Payment Option
89573  , p_source_50            IN VARCHAR2
89574 --Payment Distribution Type
89575  , p_source_51            IN VARCHAR2
89576  , p_source_51_meaning    IN VARCHAR2
89577 --Accounting Reversal Indicator
89578  , p_source_52            IN VARCHAR2
89579 --Payment Distribution Amount
89580  , p_source_53            IN NUMBER
89581 --Business Flow Accounts Payable Application Identifier
89582  , p_source_54            IN NUMBER
89583 --Payment Distribution Identifier
89584  , p_source_59            IN NUMBER
89585 --Distribution Link Type
89586  , p_source_60            IN VARCHAR2
89587 --Override Accounted Amount Indicator
89588  , p_source_64            IN VARCHAR2
89589  , p_source_64_meaning    IN VARCHAR2
89590 --Payment Supplier Identifier
89591  , p_source_65            IN NUMBER
89592 --Payment Supplier Site Identifier
89593  , p_source_66            IN NUMBER
89594 --Third Party Type
89595  , p_source_67            IN VARCHAR2
89596 --Payment Distribution Reversed Identifier
89597  , p_source_68            IN NUMBER
89598 --Invoice Distribution Tax Line Identifier
89599  , p_source_69            IN NUMBER
89600 --Invoice Distribution Summary Tax Line Identifier
89601  , p_source_70            IN NUMBER
89602 --Payment Type
89603  , p_source_71            IN VARCHAR2
89604  , p_source_71_meaning    IN VARCHAR2
89605 --Business Flow Invoice Distribution Type
89606  , p_source_73            IN VARCHAR2
89607 --Business Flow Invoice Entity Code
89608  , p_source_74            IN VARCHAR2
89609 --Business Flow Invoice Distribution Identifier
89610  , p_source_75            IN NUMBER
89611 --Business Flow Invoice Identifier
89612  , p_source_76            IN NUMBER
89613 --Invoice Distribution Tax Distribution Identifier from Tax
89614  , p_source_77            IN NUMBER
89615 --Accrue on Receipt Option
89616  , p_source_111            IN VARCHAR2
89617  , p_source_111_meaning    IN VARCHAR2
89618 --Payment Exchange Date
89619  , p_source_121            IN DATE
89620 --Payment Exchange Rate
89621  , p_source_122            IN NUMBER
89622 --Payment Exchange Rate Type
89623  , p_source_123            IN VARCHAR2
89624 )
89625 IS
89626 
89627 l_component_type              VARCHAR2(80);
89628 l_component_code              VARCHAR2(30);
89629 l_component_type_code         VARCHAR2(1);
89630 l_component_appl_id           INTEGER;
89631 l_amb_context_code            VARCHAR2(30);
89632 l_entity_code                 VARCHAR2(30);
89633 l_event_class_code            VARCHAR2(30);
89634 l_ae_header_id                NUMBER;
89635 l_event_type_code             VARCHAR2(30);
89636 l_line_definition_code        VARCHAR2(30);
89637 l_line_definition_owner_code  VARCHAR2(1);
89638 --
89639 -- adr variables
89640 l_segment                     VARCHAR2(30);
89641 l_ccid                        NUMBER;
89642 l_adr_transaction_coa_id      NUMBER;
89643 l_adr_accounting_coa_id       NUMBER;
89644 l_adr_flexfield_segment_code  VARCHAR2(30);
89645 l_adr_flex_value_set_id       NUMBER;
89646 l_adr_value_type_code         VARCHAR2(30);
89647 l_adr_value_combination_id    NUMBER;
89648 l_adr_value_segment_code      VARCHAR2(30);
89649 
89650 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
89651 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
89652 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
89653 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
89654 
89655 -- 4262811 Variables ------------------------------------------------------------------------------------------
89656 l_entered_amt_idx             NUMBER;
89657 l_accted_amt_idx              NUMBER;
89658 l_acc_rev_flag                VARCHAR2(1);
89662 
89659 l_accrual_line_num            NUMBER;
89660 l_tmp_amt                     NUMBER;
89661 l_acc_rev_natural_side_code   VARCHAR2(1);
89663 l_num_entries                 NUMBER;
89664 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
89665 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
89666 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
89667 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
89668 l_recog_line_1                NUMBER;
89669 l_recog_line_2                NUMBER;
89670 
89671 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
89672 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
89673 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
89674 
89675 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
89676 
89677 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
89678 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
89679 
89680 ---------------------------------------------------------------------------------------------------------------
89681 
89682 
89683 --
89684 -- bulk performance
89685 --
89686 l_balance_type_code           VARCHAR2(1);
89687 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
89688 l_log_module                  VARCHAR2(240);
89689 
89690 --
89691 -- Upgrade strategy
89692 --
89693 l_actual_upg_option           VARCHAR2(1);
89694 l_enc_upg_option           VARCHAR2(1);
89695 
89696 --
89697 BEGIN
89698 --
89699 IF g_log_enabled THEN
89700       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_157';
89701 END IF;
89702 --
89703 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89704 
89705       trace
89706          (p_msg      => 'BEGIN of AcctLineType_157'
89707          ,p_level    => C_LEVEL_PROCEDURE
89708          ,p_module   => l_log_module);
89709 
89710 END IF;
89711 --
89712 l_component_type             := 'AMB_JLT';
89713 l_component_code             := 'AP_TAX_RATE_VAR_REF';
89714 l_component_type_code        := 'S';
89715 l_component_appl_id          :=  200;
89716 l_amb_context_code           := 'DEFAULT';
89717 l_entity_code                := 'AP_PAYMENTS';
89718 l_event_class_code           := 'REFUNDS';
89719 l_event_type_code            := 'REFUNDS_ALL';
89720 l_line_definition_owner_code := 'S';
89721 l_line_definition_code       := 'CASH_REFUNDS_ALL';
89722 --
89723 l_balance_type_code          := 'A';
89724 l_segment                     := NULL;
89725 l_ccid                        := NULL;
89726 l_adr_transaction_coa_id      := NULL;
89727 l_adr_accounting_coa_id       := NULL;
89728 l_adr_flexfield_segment_code  := NULL;
89729 l_adr_flex_value_set_id       := NULL;
89730 l_adr_value_type_code         := NULL;
89731 l_adr_value_combination_id    := NULL;
89732 l_adr_value_segment_code      := NULL;
89733 
89734 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
89735 l_bflow_class_code           := '';    -- 4219869 Business Flow
89736 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
89737 l_budgetary_control_flag     := 'N';
89738 
89739 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
89740 l_bflow_applied_to_amt       := NULL; -- 5132302
89741 l_entered_amt_idx            := NULL;          -- 4262811
89742 l_accted_amt_idx             := NULL;          -- 4262811
89743 l_acc_rev_flag               := NULL;          -- 4262811
89744 l_accrual_line_num           := NULL;          -- 4262811
89745 l_tmp_amt                    := NULL;          -- 4262811
89746 --
89747  
89748 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
89749     l_balance_type_code <> 'B' THEN
89750 IF NVL(p_source_50,'
89751 ') <>  'CLEAR_CLEAR' AND 
89752 NVL(p_source_32,'
89753 ') =  'TRV' AND 
89754 (NVL(p_source_51,'
89755 ') =  'CASH' OR 
89756 NVL(p_source_51,'
89757 ') =  'DISCOUNT') AND 
89758 NVL(p_source_71,'
89759 ') =  'R' AND 
89760 NVL(p_source_111,'
89761 ') =  'Y'
89762  THEN 
89763 
89764    --
89765    XLA_AE_LINES_PKG.SetNewLine;
89766 
89767    p_balance_type_code          := l_balance_type_code;
89768    -- set the flag so later we will know whether the gain loss line needs to be created
89769    
89770    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
89771      p_actual_flag :='A';
89772    END IF;
89773 
89774    --
89775    -- bulk performance
89776    --
89777    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
89778                                       p_header_num   => 0); -- 4262811
89779    --
89780    -- set accounting line options
89781    --
89782    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
89783            p_natural_side_code          => 'D'
89784          , p_gain_or_loss_flag          => 'N'
89785          , p_gl_transfer_mode_code      => 'S'
89786          , p_acct_entry_type_code       => 'A'
89787          , p_switch_side_flag           => 'Y'
89788          , p_merge_duplicate_code       => 'A'
89789          );
89790    --
89791    l_acc_rev_natural_side_code := 'C';  -- 4262811
89792    -- 
89793    --
89794    -- set accounting line type info
89795    --
89799       ,p_line_definition_owner_code => l_line_definition_owner_code
89796    xla_ae_lines_pkg.SetAcctLineType
89797       (p_component_type             => l_component_type
89798       ,p_event_type_code            => l_event_type_code
89800       ,p_line_definition_code       => l_line_definition_code
89801       ,p_accounting_line_code       => l_component_code
89802       ,p_accounting_line_type_code  => l_component_type_code
89803       ,p_accounting_line_appl_id    => l_component_appl_id
89804       ,p_amb_context_code           => l_amb_context_code
89805       ,p_entity_code                => l_entity_code
89806       ,p_event_class_code           => l_event_class_code);
89807    --
89808    -- set accounting class
89809    --
89810    xla_ae_lines_pkg.SetAcctClass(
89811            p_accounting_class_code  => 'TRV'
89812          , p_ae_header_id           => l_ae_header_id
89813          );
89814 
89815    --
89816    -- set rounding class
89817    --
89818    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
89819                       'TRV';
89820 
89821    --
89822    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
89823    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
89824    --
89825    -- bulk performance
89826    --
89827    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
89828 
89829    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
89830       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
89831 
89832    -- 4955764
89833    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89834       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
89835 
89836    -- 4458381 Public Sector Enh
89837    
89838    --
89839    -- set accounting attributes for the line type
89840    --
89841    l_entered_amt_idx := 9;
89842    l_accted_amt_idx  := 14;
89843    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
89844    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
89845    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
89846    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
89847    l_rec_acct_attrs.array_num_value(2)  := p_source_54;
89848    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
89849    l_rec_acct_attrs.array_char_value(3)  := p_source_73;
89850    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
89851    l_rec_acct_attrs.array_char_value(4)  := p_source_74;
89852    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
89853    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_75);
89854    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
89855    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_76);
89856    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
89857    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_59);
89858    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
89859    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
89860    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
89861    l_rec_acct_attrs.array_num_value(9)  := p_source_53;
89862    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
89863    l_rec_acct_attrs.array_char_value(10)  := p_source_12;
89864    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
89865    l_rec_acct_attrs.array_date_value(11)  := p_source_121;
89866    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
89867    l_rec_acct_attrs.array_num_value(12)  := p_source_122;
89868    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
89869    l_rec_acct_attrs.array_char_value(13)  := p_source_123;
89870    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
89871    l_rec_acct_attrs.array_num_value(14)  := p_source_21;
89872    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
89873    l_rec_acct_attrs.array_char_value(15)  := p_source_64;
89874    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
89875    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
89876    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
89877    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
89878    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
89879    l_rec_acct_attrs.array_char_value(18)  := p_source_67;
89880    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
89881    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_68);
89882    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
89883    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
89884    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
89885    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
89886    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
89887    l_rec_acct_attrs.array_num_value(22)  := p_source_77;
89888    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
89889    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
89890 
89891    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
89892    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
89893 
89897    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
89894    ---------------------------------------------------------------------------------------------------------------
89895    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
89896    ---------------------------------------------------------------------------------------------------------------
89898 
89899    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89900    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89901 
89902    IF xla_accounting_cache_pkg.GetValueChar
89903          (p_source_code         => 'LEDGER_CATEGORY_CODE'
89904          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
89905    AND l_bflow_method_code = 'PRIOR_ENTRY'
89906 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
89907    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
89908          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
89909        )
89910    THEN
89911          xla_ae_lines_pkg.BflowUpgEntry
89912            (p_business_method_code    => l_bflow_method_code
89913            ,p_business_class_code     => l_bflow_class_code
89914            ,p_balance_type            => l_balance_type_code);
89915    ELSE
89916       NULL;
89917 -- No business flow processing for business flow method of NONE.
89918    END IF;
89919 
89920    --
89921    -- call analytical criteria
89922    --
89923    
89924    --
89925    -- call description
89926    --
89927    -- No description or it is inherited.
89928    --
89929    -- call ADRs
89930    -- Bug 4922099
89931    --
89932    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89933         (NVL(l_actual_upg_option, 'N') = 'O') OR
89934         (NVL(l_enc_upg_option, 'N') = 'O')
89935       )
89936    THEN
89937    NULL;
89938    --
89939    --
89940    
89941   l_ccid := AcctDerRule_28(
89942            p_application_id           => p_application_id
89943          , p_ae_header_id             => l_ae_header_id 
89944 , p_source_29 => p_source_29
89945          , x_transaction_coa_id       => l_adr_transaction_coa_id
89946          , x_accounting_coa_id        => l_adr_accounting_coa_id
89947          , x_value_type_code          => l_adr_value_type_code
89948          , p_side                     => 'NA'
89949    );
89950 
89951    xla_ae_lines_pkg.set_ccid(
89952     p_code_combination_id          => l_ccid
89953   , p_value_type_code              => l_adr_value_type_code
89954   , p_transaction_coa_id           => l_adr_transaction_coa_id
89955   , p_accounting_coa_id            => l_adr_accounting_coa_id
89956   , p_adr_code                     => 'AP_INVOICE_DIST'
89957   , p_adr_type_code                => 'S'
89958   , p_component_type               => l_component_type
89959   , p_component_code               => l_component_code
89960   , p_component_type_code          => l_component_type_code
89961   , p_component_appl_id            => l_component_appl_id
89962   , p_amb_context_code             => l_amb_context_code
89963   , p_side                         => 'NA'
89964   );
89965 
89966 
89967    --
89968    --
89969    END IF;
89970    --
89971    -- Bug 4922099
89972    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
89973           (NVL(l_enc_upg_option, 'N') = 'O')
89974         ) AND
89975         (l_bflow_method_code = 'PRIOR_ENTRY')
89976       )
89977    THEN
89978       IF
89979       --
89980       1 = 2
89981       --
89982       THEN
89983       xla_accounting_err_pkg.build_message
89984                                     (p_appli_s_name            => 'XLA'
89985                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89986                                     ,p_token_1                 => 'LINE_NUMBER'
89987                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
89988                                     ,p_token_2                 => 'LINE_TYPE_NAME'
89989                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
89990                                                                              l_component_type
89991                                                                             ,l_component_code
89992                                                                             ,l_component_type_code
89993                                                                             ,l_component_appl_id
89994                                                                             ,l_amb_context_code
89995                                                                             ,l_entity_code
89996                                                                             ,l_event_class_code
89997                                                                            )
89998                                     ,p_token_3                 => 'OWNER'
89999                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
90000                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
90001                                                                           ,p_lookup_code    => l_component_type_code
90002                                                                          )
90003                                     ,p_token_4                 => 'PRODUCT_NAME'
90007                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
90004                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
90005                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
90006                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
90008                                     ,p_ae_header_id            =>  NULL
90009                                        );
90010 
90011         IF (C_LEVEL_ERROR>= g_log_level) THEN
90012                  trace
90013                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90014                       ,p_level    => C_LEVEL_ERROR
90015                       ,p_module   => l_log_module);
90016         END IF;
90017       END IF;
90018    END IF;
90019    --
90020    --
90021    ------------------------------------------------------------------------------------------------
90022    -- 4219869 Business Flow
90023    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
90024    -- Prior Entry.  Currently, the following code is always generated.
90025    ------------------------------------------------------------------------------------------------
90026    XLA_AE_LINES_PKG.ValidateCurrentLine;
90027 
90028    ------------------------------------------------------------------------------------
90029    -- 4219869 Business Flow
90030    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
90031    ------------------------------------------------------------------------------------
90032    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90033 
90034    ----------------------------------------------------------------------------------
90035    -- 4219869 Business Flow
90036    -- Update journal entry status -- Need to generate this within IF <condition>
90037    ----------------------------------------------------------------------------------
90038    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90039          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
90040          ,p_balance_type_code => l_balance_type_code
90041          );
90042 
90043    -------------------------------------------------------------------------------------------
90044    -- 4262811 - Generate the Accrual Reversal lines
90045    -------------------------------------------------------------------------------------------
90046    BEGIN
90047       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
90048                               (g_array_event(p_event_id).array_value_num('header_index'));
90049       IF l_acc_rev_flag IS NULL THEN
90050          l_acc_rev_flag := 'N';
90051       END IF;
90052    EXCEPTION
90053       WHEN OTHERS THEN
90054          l_acc_rev_flag := 'N';
90055    END;
90056    --
90057    IF (l_acc_rev_flag = 'Y') THEN
90058 
90059        -- 4645092  ------------------------------------------------------------------------------
90060        -- To allow MPA report to determine if it should generate report process
90061        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
90062        ------------------------------------------------------------------------------------------
90063 
90064        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
90065        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
90066    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
90067    -- call ADRs
90068    -- Bug 4922099
90069    --
90070    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90071         (NVL(l_actual_upg_option, 'N') = 'O') OR
90072         (NVL(l_enc_upg_option, 'N') = 'O')
90073       )
90074    THEN
90075    NULL;
90076    --
90077    --
90078    
90079   l_ccid := AcctDerRule_28(
90080            p_application_id           => p_application_id
90081          , p_ae_header_id             => l_ae_header_id 
90082 , p_source_29 => p_source_29
90083          , x_transaction_coa_id       => l_adr_transaction_coa_id
90084          , x_accounting_coa_id        => l_adr_accounting_coa_id
90085          , x_value_type_code          => l_adr_value_type_code
90086          , p_side                     => 'NA'
90087    );
90088 
90089    xla_ae_lines_pkg.set_ccid(
90090     p_code_combination_id          => l_ccid
90091   , p_value_type_code              => l_adr_value_type_code
90092   , p_transaction_coa_id           => l_adr_transaction_coa_id
90093   , p_accounting_coa_id            => l_adr_accounting_coa_id
90094   , p_adr_code                     => 'AP_INVOICE_DIST'
90095   , p_adr_type_code                => 'S'
90096   , p_component_type               => l_component_type
90097   , p_component_code               => l_component_code
90098   , p_component_type_code          => l_component_type_code
90099   , p_component_appl_id            => l_component_appl_id
90100   , p_amb_context_code             => l_amb_context_code
90101   , p_side                         => 'NA'
90102   );
90103 
90104 
90105    --
90106    --
90107    END IF;
90108 
90109        --
90110        -- Update the line information that should be overwritten
90111        --
90112        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
90113                                          p_header_num   => 1);
90114        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
90115 
90119           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
90116        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
90117 
90118        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
90120        END IF;
90121 
90122       --
90123       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
90124       --
90125       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
90126           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
90127       ELSE
90128           ---------------------------------------------------------------------------------------------------
90129           -- 4262811a Switch Sign
90130           ---------------------------------------------------------------------------------------------------
90131           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
90132           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90133                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90134           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90135                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90136           -- 5132302
90137           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
90138                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90139 
90140       END IF;
90141 
90142       -- 4955764
90143       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90144       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
90145 
90146 
90147       XLA_AE_LINES_PKG.ValidateCurrentLine;
90148       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90149 
90150       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90151                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
90152                ,p_balance_type_code => l_balance_type_code);
90153 
90154    END IF;
90155 
90156    -----------------------------------------------------------------------------------------
90157    -- 4262811 Multiperiod Accounting
90158    -----------------------------------------------------------------------------------------
90159      -- No MPA option is assigned.
90160 
90161 
90162 END IF;
90163 END IF;
90164 --
90165 
90166 --
90167 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90168    trace
90169       (p_msg      => 'END of AcctLineType_157'
90170       ,p_level    => C_LEVEL_PROCEDURE
90171       ,p_module   => l_log_module);
90172 END IF;
90173 --
90174 EXCEPTION
90175   WHEN xla_exceptions_pkg.application_exception THEN
90176       RAISE;
90177   WHEN OTHERS THEN
90178        xla_exceptions_pkg.raise_message
90179            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_157');
90180 END AcctLineType_157;
90181 --
90182 
90183 ---------------------------------------
90184 --
90185 -- PRIVATE FUNCTION
90186 --         AcctLineType_158
90187 --
90188 ---------------------------------------
90189 PROCEDURE AcctLineType_158 (
90190   p_application_id        IN NUMBER
90191  ,p_event_id              IN NUMBER
90192  ,p_calculate_acctd_flag  IN VARCHAR2
90193  ,p_calculate_g_l_flag    IN VARCHAR2
90194  ,p_actual_flag           IN OUT VARCHAR2
90195  ,p_balance_type_code     OUT VARCHAR2
90196  ,p_gain_or_loss_ref      OUT VARCHAR2
90197  
90198 --Automatic Offsets Value
90199  , p_source_16            IN VARCHAR2
90200  , p_source_16_meaning    IN VARCHAR2
90201 --Purchase Order Rate Variance Gain Account
90202  , p_source_17            IN NUMBER
90203 --Invoice Distribution Ledger Amount
90204  , p_source_18            IN NUMBER
90205 --Destination Type of the PO Distribution
90206  , p_source_19            IN VARCHAR2
90207  , p_source_19_meaning    IN VARCHAR2
90208 --Purchase Order Rate Variance Loss Account
90209  , p_source_20            IN NUMBER
90210 --Invoice Distribution Account
90211  , p_source_29            IN NUMBER
90212 --Automatic Offsets Flag
90213  , p_source_42            IN VARCHAR2
90214  , p_source_42_meaning    IN VARCHAR2
90215 --When to Account for Payment Option
90216  , p_source_50            IN VARCHAR2
90217 --Accounting Reversal Indicator
90218  , p_source_52            IN VARCHAR2
90219 --Business Flow Accounts Payable Application Identifier
90220  , p_source_54            IN NUMBER
90221 --Distribution Link Type
90222  , p_source_60            IN VARCHAR2
90223 --Override Accounted Amount Indicator
90224  , p_source_64            IN VARCHAR2
90225  , p_source_64_meaning    IN VARCHAR2
90226 --Third Party Type
90227  , p_source_67            IN VARCHAR2
90228 --Invoice Distribution Tax Line Identifier
90229  , p_source_69            IN NUMBER
90230 --Invoice Distribution Summary Tax Line Identifier
90231  , p_source_70            IN NUMBER
90232 --Invoice Distribution Tax Distribution Identifier from Tax
90233  , p_source_77            IN NUMBER
90234 --Prepayment Distribution Type
90235  , p_source_78            IN VARCHAR2
90236 --Recipient Invoice Distribution Type
90240  , p_source_82            IN NUMBER
90237  , p_source_79            IN VARCHAR2
90238  , p_source_79_meaning    IN VARCHAR2
90239 --Prepayment Application Distribution Identifier
90241 --Invoice Identifier
90242  , p_source_83            IN NUMBER
90243 --Business Flow Prepayment Invoice Distribution Type
90244  , p_source_84            IN VARCHAR2
90245 --Business Flow Prepayment Invoice Entity Code
90246  , p_source_85            IN VARCHAR2
90247 --Business Flow Prepayment Invoice Distribution Identifier
90248  , p_source_86            IN NUMBER
90249 --Business Flow Prepayment Invoice Identifier
90250  , p_source_87            IN NUMBER
90251 --Upgrade Encumbrance Credit Account Class
90252  , p_source_88            IN VARCHAR2
90253 --Payables Encumbrance Upgrade Credit Account
90254  , p_source_89            IN NUMBER
90255 --Payables Encumbrance Upgrade Credit Amount
90256  , p_source_90            IN NUMBER
90257 --Invoice Currency Code
90258  , p_source_91            IN VARCHAR2
90259 --Payables Encumbrance Upgrade Credit Base Amount
90260  , p_source_92            IN NUMBER
90261 --Upgrade Encumbrance Debit Account Class
90262  , p_source_93            IN VARCHAR2
90263 --Payables Encumbrance Upgrade Debit Account
90264  , p_source_94            IN NUMBER
90265 --Payables Encumbrance Upgrade Debit Amount
90266  , p_source_95            IN NUMBER
90267 --Payables Encumbrance Upgrade Debit Base Amount
90268  , p_source_96            IN NUMBER
90269 --Payables Encumbrance Upgrade Option
90270  , p_source_97            IN VARCHAR2
90271 --Prepayment Distribution Amount
90272  , p_source_98            IN NUMBER
90273 --Prepayment Clearing Currency Code
90274  , p_source_99            IN VARCHAR2
90275 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
90276  , p_source_100            IN NUMBER
90277 --Deferred Accounting End Date
90278  , p_source_101            IN DATE
90279 --Deferred Accounting Option
90280  , p_source_102            IN VARCHAR2
90281 --Deferred Accounting Start Date
90282  , p_source_103            IN DATE
90283 --Invoice Supplier Identifier
90284  , p_source_104            IN NUMBER
90285 --Invoice Supplier Site Identifier
90286  , p_source_105            IN NUMBER
90287 --Identifier of the Prepayment Application Reversed
90288  , p_source_106            IN NUMBER
90289 --Payables Upgrade Credit Encumbrance Type Identifier
90290  , p_source_107            IN NUMBER
90291 --Payables Upgrade Debit Encumbrance Type Identifier
90292  , p_source_108            IN NUMBER
90293 --Accrue on Receipt Option
90294  , p_source_111            IN VARCHAR2
90295  , p_source_111_meaning    IN VARCHAR2
90296 --Prepayment Clearing Exchange Date
90297  , p_source_125            IN DATE
90298 --Prepayment Clearing Exchange Rate
90299  , p_source_126            IN NUMBER
90300 --Prepayment Clearing Exchange Rate Type
90301  , p_source_127            IN VARCHAR2
90302 )
90303 IS
90304 
90305 l_component_type              VARCHAR2(80);
90306 l_component_code              VARCHAR2(30);
90307 l_component_type_code         VARCHAR2(1);
90308 l_component_appl_id           INTEGER;
90309 l_amb_context_code            VARCHAR2(30);
90310 l_entity_code                 VARCHAR2(30);
90311 l_event_class_code            VARCHAR2(30);
90312 l_ae_header_id                NUMBER;
90313 l_event_type_code             VARCHAR2(30);
90314 l_line_definition_code        VARCHAR2(30);
90315 l_line_definition_owner_code  VARCHAR2(1);
90316 --
90317 -- adr variables
90318 l_segment                     VARCHAR2(30);
90319 l_ccid                        NUMBER;
90320 l_adr_transaction_coa_id      NUMBER;
90321 l_adr_accounting_coa_id       NUMBER;
90322 l_adr_flexfield_segment_code  VARCHAR2(30);
90323 l_adr_flex_value_set_id       NUMBER;
90324 l_adr_value_type_code         VARCHAR2(30);
90325 l_adr_value_combination_id    NUMBER;
90326 l_adr_value_segment_code      VARCHAR2(30);
90327 
90328 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
90329 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
90330 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
90331 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
90332 
90333 -- 4262811 Variables ------------------------------------------------------------------------------------------
90334 l_entered_amt_idx             NUMBER;
90335 l_accted_amt_idx              NUMBER;
90336 l_acc_rev_flag                VARCHAR2(1);
90337 l_accrual_line_num            NUMBER;
90338 l_tmp_amt                     NUMBER;
90339 l_acc_rev_natural_side_code   VARCHAR2(1);
90340 
90341 l_num_entries                 NUMBER;
90342 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
90343 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
90344 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
90345 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
90346 l_recog_line_1                NUMBER;
90347 l_recog_line_2                NUMBER;
90348 
90349 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
90350 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
90351 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
90352 
90353 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
90354 
90355 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
90359 
90356 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
90357 
90358 ---------------------------------------------------------------------------------------------------------------
90360 
90361 --
90362 -- bulk performance
90363 --
90364 l_balance_type_code           VARCHAR2(1);
90365 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
90366 l_log_module                  VARCHAR2(240);
90367 
90368 --
90369 -- Upgrade strategy
90370 --
90371 l_actual_upg_option           VARCHAR2(1);
90372 l_enc_upg_option           VARCHAR2(1);
90373 
90374 --
90375 BEGIN
90376 --
90377 IF g_log_enabled THEN
90378       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_158';
90379 END IF;
90380 --
90381 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90382 
90383       trace
90384          (p_msg      => 'BEGIN of AcctLineType_158'
90385          ,p_level    => C_LEVEL_PROCEDURE
90386          ,p_module   => l_log_module);
90387 
90388 END IF;
90389 --
90390 l_component_type             := 'AMB_JLT';
90391 l_component_code             := 'AP_TERV_CLR_RATE_APP';
90392 l_component_type_code        := 'S';
90393 l_component_appl_id          :=  200;
90394 l_amb_context_code           := 'DEFAULT';
90395 l_entity_code                := 'AP_INVOICES';
90396 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
90397 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
90398 l_line_definition_owner_code := 'S';
90399 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
90400 --
90401 l_balance_type_code          := 'A';
90402 l_segment                     := NULL;
90403 l_ccid                        := NULL;
90404 l_adr_transaction_coa_id      := NULL;
90405 l_adr_accounting_coa_id       := NULL;
90406 l_adr_flexfield_segment_code  := NULL;
90407 l_adr_flex_value_set_id       := NULL;
90408 l_adr_value_type_code         := NULL;
90409 l_adr_value_combination_id    := NULL;
90410 l_adr_value_segment_code      := NULL;
90411 
90412 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
90413 l_bflow_class_code           := '';    -- 4219869 Business Flow
90414 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
90415 l_budgetary_control_flag     := 'N';
90416 
90417 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
90418 l_bflow_applied_to_amt       := NULL; -- 5132302
90419 l_entered_amt_idx            := NULL;          -- 4262811
90420 l_accted_amt_idx             := NULL;          -- 4262811
90421 l_acc_rev_flag               := NULL;          -- 4262811
90422 l_accrual_line_num           := NULL;          -- 4262811
90423 l_tmp_amt                    := NULL;          -- 4262811
90424 --
90425 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
90426             (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
90427                return;
90428   END IF;
90429   
90430 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
90431     l_balance_type_code <> 'B' THEN
90432 IF NVL(p_source_50,'
90433 ') =  'CLEAR_CLEAR' AND 
90434 (NVL(p_source_78,'
90435 ') =  'PREPAY APPL' OR 
90436 NVL(p_source_78,'
90437 ') =  'PREPAY APPL NONREC TAX' OR 
90438 NVL(p_source_78,'
90439 ') =  'PREPAY APPL REC TAX') AND 
90440 NVL(p_source_79,'
90441 ') =  'TERV' AND 
90442 NVL(p_source_111,'
90443 ') =  'Y'
90444  THEN 
90445 
90446    --
90447    XLA_AE_LINES_PKG.SetNewLine;
90448 
90449    p_balance_type_code          := l_balance_type_code;
90450    -- set the flag so later we will know whether the gain loss line needs to be created
90451    
90452    IF(l_balance_type_code = 'A' ) THEN
90453      p_actual_flag :='G';
90454    END IF;
90455 
90456    --
90457    -- bulk performance
90458    --
90459    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
90460                                       p_header_num   => 0); -- 4262811
90461    --
90462    -- set accounting line options
90463    --
90464    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
90465            p_natural_side_code          => 'C'
90466          , p_gain_or_loss_flag          => 'Y'
90467          , p_gl_transfer_mode_code      => 'S'
90468          , p_acct_entry_type_code       => 'A'
90469          , p_switch_side_flag           => 'Y'
90470          , p_merge_duplicate_code       => 'A'
90471          );
90472    --
90473    l_acc_rev_natural_side_code := 'D';  -- 4262811
90474    -- 
90475    --
90476    -- set accounting line type info
90477    --
90478    xla_ae_lines_pkg.SetAcctLineType
90479       (p_component_type             => l_component_type
90480       ,p_event_type_code            => l_event_type_code
90481       ,p_line_definition_owner_code => l_line_definition_owner_code
90482       ,p_line_definition_code       => l_line_definition_code
90483       ,p_accounting_line_code       => l_component_code
90484       ,p_accounting_line_type_code  => l_component_type_code
90485       ,p_accounting_line_appl_id    => l_component_appl_id
90486       ,p_amb_context_code           => l_amb_context_code
90487       ,p_entity_code                => l_entity_code
90488       ,p_event_class_code           => l_event_class_code);
90492    xla_ae_lines_pkg.SetAcctClass(
90489    --
90490    -- set accounting class
90491    --
90493            p_accounting_class_code  => 'TERV'
90494          , p_ae_header_id           => l_ae_header_id
90495          );
90496 
90497    --
90498    -- set rounding class
90499    --
90500    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
90501                       'TERV';
90502 
90503    --
90504    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
90505    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
90506    --
90507    -- bulk performance
90508    --
90509    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
90510 
90511    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
90512       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
90513 
90514    -- 4955764
90515    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90516       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
90517 
90518    -- 4458381 Public Sector Enh
90519    
90520    --
90521    -- set accounting attributes for the line type
90522    --
90523    l_entered_amt_idx := 25;
90524    l_accted_amt_idx  := 30;
90525    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
90526    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
90527    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
90528    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
90529    l_rec_acct_attrs.array_num_value(2)  := 
90530 xla_ae_sources_pkg.GetSystemSourceNum(
90531    p_source_code           => 'XLA_EVENT_APPL_ID'
90532  , p_source_type_code      => 'Y'
90533  , p_source_application_id =>  602
90534 );
90535    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
90536    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
90537    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
90538    l_rec_acct_attrs.array_char_value(4)  := 
90539 xla_ae_sources_pkg.GetSystemSourceChar(
90540    p_source_code           => 'XLA_ENTITY_CODE'
90541  , p_source_type_code      => 'Y'
90542  , p_source_application_id =>  602
90543 );
90544    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
90545    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
90546    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
90547    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
90548    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
90549    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
90550    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
90551    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
90552    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
90553    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
90554    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
90555    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
90556    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
90557    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
90558    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
90559    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
90560    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
90561    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
90562    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
90563    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
90564    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
90565    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
90566    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
90567    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
90568    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
90569    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
90570    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
90571    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
90572    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
90573    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
90574    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
90575    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
90576    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
90577    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
90578    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
90579    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
90580    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
90581    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
90582    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
90583    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
90584    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
90585    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
90586    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
90587    l_rec_acct_attrs.array_char_value(26)  := p_source_99;
90588    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
90592    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
90589    l_rec_acct_attrs.array_date_value(27)  := p_source_125;
90590    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
90591    l_rec_acct_attrs.array_num_value(28)  := p_source_126;
90593    l_rec_acct_attrs.array_char_value(29)  := p_source_127;
90594    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
90595    l_rec_acct_attrs.array_num_value(30)  := p_source_100;
90596    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
90597    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
90598    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
90599    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
90600    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
90601    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
90602    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
90603    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
90604    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
90605    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
90606    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
90607    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
90608    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
90609    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
90610    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
90611    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
90612    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
90613    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
90614    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
90615    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
90616    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
90617    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
90618    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
90619    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
90620    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
90621    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
90622    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
90623    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
90624 
90625    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
90626    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
90627 
90628    ---------------------------------------------------------------------------------------------------------------
90629    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
90630    ---------------------------------------------------------------------------------------------------------------
90631    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
90632 
90633    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90634    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90635 
90636    IF xla_accounting_cache_pkg.GetValueChar
90637          (p_source_code         => 'LEDGER_CATEGORY_CODE'
90638          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
90639    AND l_bflow_method_code = 'PRIOR_ENTRY'
90640 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
90641    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
90642          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
90643        )
90644    THEN
90645          xla_ae_lines_pkg.BflowUpgEntry
90646            (p_business_method_code    => l_bflow_method_code
90647            ,p_business_class_code     => l_bflow_class_code
90648            ,p_balance_type            => l_balance_type_code);
90649    ELSE
90650       NULL;
90651 -- No business flow processing for business flow method of NONE.
90652    END IF;
90653 
90654    --
90655    -- call analytical criteria
90656    --
90657    
90658    --
90659    -- call description
90660    --
90661    -- No description or it is inherited.
90662    --
90663    -- call ADRs
90664    -- Bug 4922099
90665    --
90666    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90667         (NVL(l_actual_upg_option, 'N') = 'O') OR
90668         (NVL(l_enc_upg_option, 'N') = 'O')
90669       )
90670    THEN
90671    NULL;
90672    --
90673    --
90674    
90675   l_ccid := AcctDerRule_25(
90676            p_application_id           => p_application_id
90677          , p_ae_header_id             => l_ae_header_id 
90678 , p_source_16 => p_source_16
90679 , p_source_16_meaning => p_source_16_meaning
90680 , p_source_17 => p_source_17
90681 , p_source_18 => p_source_18
90682 , p_source_19 => p_source_19
90683 , p_source_19_meaning => p_source_19_meaning
90684 , p_source_20 => p_source_20
90685 , p_source_29 => p_source_29
90686 , p_source_42 => p_source_42
90687 , p_source_42_meaning => p_source_42_meaning
90688          , x_transaction_coa_id       => l_adr_transaction_coa_id
90689          , x_accounting_coa_id        => l_adr_accounting_coa_id
90690          , x_value_type_code          => l_adr_value_type_code
90691          , p_side                     => 'NA'
90692    );
90693 
90694    xla_ae_lines_pkg.set_ccid(
90695     p_code_combination_id          => l_ccid
90696   , p_value_type_code              => l_adr_value_type_code
90700   , p_adr_type_code                => 'S'
90697   , p_transaction_coa_id           => l_adr_transaction_coa_id
90698   , p_accounting_coa_id            => l_adr_accounting_coa_id
90699   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
90701   , p_component_type               => l_component_type
90702   , p_component_code               => l_component_code
90703   , p_component_type_code          => l_component_type_code
90704   , p_component_appl_id            => l_component_appl_id
90705   , p_amb_context_code             => l_amb_context_code
90706   , p_side                         => 'NA'
90707   );
90708 
90709 
90710    l_segment := AcctDerRule_5(
90711            p_application_id           => p_application_id
90712          , p_ae_header_id             => l_ae_header_id 
90713 , p_source_16 => p_source_16
90714 , p_source_16_meaning => p_source_16_meaning
90715 , p_source_17 => p_source_17
90716 , p_source_18 => p_source_18
90717 , p_source_19 => p_source_19
90718 , p_source_19_meaning => p_source_19_meaning
90719 , p_source_20 => p_source_20
90720          , x_transaction_coa_id       => l_adr_transaction_coa_id
90721          , x_accounting_coa_id        => l_adr_accounting_coa_id
90722          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
90723          , x_flex_value_set_id        => l_adr_flex_value_set_id
90724          , x_value_type_code          => l_adr_value_type_code
90725          , x_value_combination_id     => l_adr_value_combination_id
90726          , x_value_segment_code       => l_adr_value_segment_code
90727          , p_side                     => 'NA'
90728          , p_override_seg_flag        => 'Y'
90729    );
90730 
90731    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
90732 
90733       xla_ae_lines_pkg.set_segment(
90734           p_to_segment_code         => 'GL_ACCOUNT'
90735         , p_segment_value           => l_segment
90736         , p_from_segment_code       => l_adr_value_segment_code
90737         , p_from_combination_id     => l_adr_value_combination_id
90738         , p_value_type_code         => l_adr_value_type_code
90739         , p_transaction_coa_id      => l_adr_transaction_coa_id
90740         , p_accounting_coa_id       => l_adr_accounting_coa_id
90741         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
90742         , p_flex_value_set_id       => l_adr_flex_value_set_id
90743         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
90744         , p_adr_type_code           => 'S'
90745         , p_component_type          => l_component_type
90746         , p_component_code          => l_component_code
90747         , p_component_type_code     => l_component_type_code
90748         , p_component_appl_id       => l_component_appl_id
90749         , p_amb_context_code        => l_amb_context_code
90750         , p_entity_code             => 'AP_INVOICES'
90751         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
90752         , p_side                    => 'NA'
90753         );
90754 
90755   END IF;
90756 
90757    l_segment := AcctDerRule_17(
90758            p_application_id           => p_application_id
90759          , p_ae_header_id             => l_ae_header_id 
90760 , p_source_16 => p_source_16
90761 , p_source_16_meaning => p_source_16_meaning
90762 , p_source_19 => p_source_19
90763 , p_source_19_meaning => p_source_19_meaning
90764 , p_source_29 => p_source_29
90765          , x_transaction_coa_id       => l_adr_transaction_coa_id
90766          , x_accounting_coa_id        => l_adr_accounting_coa_id
90767          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
90768          , x_flex_value_set_id        => l_adr_flex_value_set_id
90769          , x_value_type_code          => l_adr_value_type_code
90770          , x_value_combination_id     => l_adr_value_combination_id
90771          , x_value_segment_code       => l_adr_value_segment_code
90772          , p_side                     => 'NA'
90773          , p_override_seg_flag        => 'Y'
90774    );
90775 
90776    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
90777 
90778       xla_ae_lines_pkg.set_segment(
90779           p_to_segment_code         => 'GL_BALANCING'
90780         , p_segment_value           => l_segment
90781         , p_from_segment_code       => l_adr_value_segment_code
90782         , p_from_combination_id     => l_adr_value_combination_id
90783         , p_value_type_code         => l_adr_value_type_code
90784         , p_transaction_coa_id      => l_adr_transaction_coa_id
90785         , p_accounting_coa_id       => l_adr_accounting_coa_id
90786         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
90787         , p_flex_value_set_id       => l_adr_flex_value_set_id
90788         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
90789         , p_adr_type_code           => 'S'
90790         , p_component_type          => l_component_type
90791         , p_component_code          => l_component_code
90792         , p_component_type_code     => l_component_type_code
90793         , p_component_appl_id       => l_component_appl_id
90794         , p_amb_context_code        => l_amb_context_code
90795         , p_entity_code             => 'AP_INVOICES'
90796         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
90797         , p_side                    => 'NA'
90798         );
90799 
90800   END IF;
90801 
90802    --
90803    --
90804    END IF;
90805    --
90806    -- Bug 4922099
90807    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
90808           (NVL(l_enc_upg_option, 'N') = 'O')
90809         ) AND
90810         (l_bflow_method_code = 'PRIOR_ENTRY')
90814       --
90811       )
90812    THEN
90813       IF
90815       1 = 2
90816       --
90817       THEN
90818       xla_accounting_err_pkg.build_message
90819                                     (p_appli_s_name            => 'XLA'
90820                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90821                                     ,p_token_1                 => 'LINE_NUMBER'
90822                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
90823                                     ,p_token_2                 => 'LINE_TYPE_NAME'
90824                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
90825                                                                              l_component_type
90826                                                                             ,l_component_code
90827                                                                             ,l_component_type_code
90828                                                                             ,l_component_appl_id
90829                                                                             ,l_amb_context_code
90830                                                                             ,l_entity_code
90831                                                                             ,l_event_class_code
90832                                                                            )
90833                                     ,p_token_3                 => 'OWNER'
90834                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
90835                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
90836                                                                           ,p_lookup_code    => l_component_type_code
90837                                                                          )
90838                                     ,p_token_4                 => 'PRODUCT_NAME'
90839                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
90840                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
90841                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
90842                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
90843                                     ,p_ae_header_id            =>  NULL
90844                                        );
90845 
90846         IF (C_LEVEL_ERROR>= g_log_level) THEN
90847                  trace
90848                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90849                       ,p_level    => C_LEVEL_ERROR
90850                       ,p_module   => l_log_module);
90851         END IF;
90852       END IF;
90853    END IF;
90854    --
90855    --
90856    ------------------------------------------------------------------------------------------------
90857    -- 4219869 Business Flow
90858    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
90859    -- Prior Entry.  Currently, the following code is always generated.
90860    ------------------------------------------------------------------------------------------------
90861    XLA_AE_LINES_PKG.ValidateCurrentLine;
90862 
90863    ------------------------------------------------------------------------------------
90864    -- 4219869 Business Flow
90865    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
90866    ------------------------------------------------------------------------------------
90867    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90868 
90869    ----------------------------------------------------------------------------------
90870    -- 4219869 Business Flow
90871    -- Update journal entry status -- Need to generate this within IF <condition>
90872    ----------------------------------------------------------------------------------
90873    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90874          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
90875          ,p_balance_type_code => l_balance_type_code
90876          );
90877 
90878    -------------------------------------------------------------------------------------------
90879    -- 4262811 - Generate the Accrual Reversal lines
90880    -------------------------------------------------------------------------------------------
90881    BEGIN
90882       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
90883                               (g_array_event(p_event_id).array_value_num('header_index'));
90884       IF l_acc_rev_flag IS NULL THEN
90885          l_acc_rev_flag := 'N';
90886       END IF;
90887    EXCEPTION
90888       WHEN OTHERS THEN
90889          l_acc_rev_flag := 'N';
90890    END;
90891    --
90892    IF (l_acc_rev_flag = 'Y') THEN
90893 
90894        -- 4645092  ------------------------------------------------------------------------------
90895        -- To allow MPA report to determine if it should generate report process
90896        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
90897        ------------------------------------------------------------------------------------------
90898 
90899        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
90900        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
90901    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
90902    -- call ADRs
90903    -- Bug 4922099
90907         (NVL(l_enc_upg_option, 'N') = 'O')
90904    --
90905    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90906         (NVL(l_actual_upg_option, 'N') = 'O') OR
90908       )
90909    THEN
90910    NULL;
90911    --
90912    --
90913    
90914   l_ccid := AcctDerRule_25(
90915            p_application_id           => p_application_id
90916          , p_ae_header_id             => l_ae_header_id 
90917 , p_source_16 => p_source_16
90918 , p_source_16_meaning => p_source_16_meaning
90919 , p_source_17 => p_source_17
90920 , p_source_18 => p_source_18
90921 , p_source_19 => p_source_19
90922 , p_source_19_meaning => p_source_19_meaning
90923 , p_source_20 => p_source_20
90924 , p_source_29 => p_source_29
90925 , p_source_42 => p_source_42
90926 , p_source_42_meaning => p_source_42_meaning
90927          , x_transaction_coa_id       => l_adr_transaction_coa_id
90928          , x_accounting_coa_id        => l_adr_accounting_coa_id
90929          , x_value_type_code          => l_adr_value_type_code
90930          , p_side                     => 'NA'
90931    );
90932 
90933    xla_ae_lines_pkg.set_ccid(
90934     p_code_combination_id          => l_ccid
90935   , p_value_type_code              => l_adr_value_type_code
90936   , p_transaction_coa_id           => l_adr_transaction_coa_id
90937   , p_accounting_coa_id            => l_adr_accounting_coa_id
90938   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
90939   , p_adr_type_code                => 'S'
90940   , p_component_type               => l_component_type
90941   , p_component_code               => l_component_code
90942   , p_component_type_code          => l_component_type_code
90943   , p_component_appl_id            => l_component_appl_id
90944   , p_amb_context_code             => l_amb_context_code
90945   , p_side                         => 'NA'
90946   );
90947 
90948 
90949    l_segment := AcctDerRule_5(
90950            p_application_id           => p_application_id
90951          , p_ae_header_id             => l_ae_header_id 
90952 , p_source_16 => p_source_16
90953 , p_source_16_meaning => p_source_16_meaning
90954 , p_source_17 => p_source_17
90955 , p_source_18 => p_source_18
90956 , p_source_19 => p_source_19
90957 , p_source_19_meaning => p_source_19_meaning
90958 , p_source_20 => p_source_20
90959          , x_transaction_coa_id       => l_adr_transaction_coa_id
90960          , x_accounting_coa_id        => l_adr_accounting_coa_id
90961          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
90962          , x_flex_value_set_id        => l_adr_flex_value_set_id
90963          , x_value_type_code          => l_adr_value_type_code
90964          , x_value_combination_id     => l_adr_value_combination_id
90965          , x_value_segment_code       => l_adr_value_segment_code
90966          , p_side                     => 'NA'
90967          , p_override_seg_flag        => 'Y'
90968    );
90969 
90970    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
90971 
90972       xla_ae_lines_pkg.set_segment(
90973           p_to_segment_code         => 'GL_ACCOUNT'
90974         , p_segment_value           => l_segment
90975         , p_from_segment_code       => l_adr_value_segment_code
90976         , p_from_combination_id     => l_adr_value_combination_id
90977         , p_value_type_code         => l_adr_value_type_code
90978         , p_transaction_coa_id      => l_adr_transaction_coa_id
90979         , p_accounting_coa_id       => l_adr_accounting_coa_id
90980         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
90981         , p_flex_value_set_id       => l_adr_flex_value_set_id
90982         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
90983         , p_adr_type_code           => 'S'
90984         , p_component_type          => l_component_type
90985         , p_component_code          => l_component_code
90986         , p_component_type_code     => l_component_type_code
90987         , p_component_appl_id       => l_component_appl_id
90988         , p_amb_context_code        => l_amb_context_code
90989         , p_entity_code             => 'AP_INVOICES'
90990         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
90991         , p_side                    => 'NA'
90992         );
90993 
90994   END IF;
90995 
90996    l_segment := AcctDerRule_17(
90997            p_application_id           => p_application_id
90998          , p_ae_header_id             => l_ae_header_id 
90999 , p_source_16 => p_source_16
91000 , p_source_16_meaning => p_source_16_meaning
91001 , p_source_19 => p_source_19
91002 , p_source_19_meaning => p_source_19_meaning
91003 , p_source_29 => p_source_29
91004          , x_transaction_coa_id       => l_adr_transaction_coa_id
91005          , x_accounting_coa_id        => l_adr_accounting_coa_id
91006          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
91007          , x_flex_value_set_id        => l_adr_flex_value_set_id
91008          , x_value_type_code          => l_adr_value_type_code
91009          , x_value_combination_id     => l_adr_value_combination_id
91010          , x_value_segment_code       => l_adr_value_segment_code
91011          , p_side                     => 'NA'
91012          , p_override_seg_flag        => 'Y'
91013    );
91014 
91015    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
91016 
91017       xla_ae_lines_pkg.set_segment(
91018           p_to_segment_code         => 'GL_BALANCING'
91019         , p_segment_value           => l_segment
91020         , p_from_segment_code       => l_adr_value_segment_code
91024         , p_accounting_coa_id       => l_adr_accounting_coa_id
91021         , p_from_combination_id     => l_adr_value_combination_id
91022         , p_value_type_code         => l_adr_value_type_code
91023         , p_transaction_coa_id      => l_adr_transaction_coa_id
91025         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
91026         , p_flex_value_set_id       => l_adr_flex_value_set_id
91027         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
91028         , p_adr_type_code           => 'S'
91029         , p_component_type          => l_component_type
91030         , p_component_code          => l_component_code
91031         , p_component_type_code     => l_component_type_code
91032         , p_component_appl_id       => l_component_appl_id
91033         , p_amb_context_code        => l_amb_context_code
91034         , p_entity_code             => 'AP_INVOICES'
91035         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
91036         , p_side                    => 'NA'
91037         );
91038 
91039   END IF;
91040 
91041    --
91042    --
91043    END IF;
91044 
91045        --
91046        -- Update the line information that should be overwritten
91047        --
91048        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
91049                                          p_header_num   => 1);
91050        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
91051 
91052        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
91053 
91054        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
91055           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
91056        END IF;
91057 
91058       --
91059       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
91060       --
91061       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
91062           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
91063       ELSE
91064           ---------------------------------------------------------------------------------------------------
91065           -- 4262811a Switch Sign
91066           ---------------------------------------------------------------------------------------------------
91067           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
91068           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91069                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91070           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91071                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91072           -- 5132302
91073           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
91074                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91075 
91076       END IF;
91077 
91078       -- 4955764
91079       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91080       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
91081 
91082 
91083       XLA_AE_LINES_PKG.ValidateCurrentLine;
91084       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91085 
91086       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91087                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
91088                ,p_balance_type_code => l_balance_type_code);
91089 
91090    END IF;
91091 
91092    -----------------------------------------------------------------------------------------
91093    -- 4262811 Multiperiod Accounting
91094    -----------------------------------------------------------------------------------------
91095      -- No MPA option is assigned.
91096 
91097 
91098 END IF;
91099 END IF;
91100 --
91101 
91102 --
91103 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91104    trace
91105       (p_msg      => 'END of AcctLineType_158'
91106       ,p_level    => C_LEVEL_PROCEDURE
91107       ,p_module   => l_log_module);
91108 END IF;
91109 --
91110 EXCEPTION
91111   WHEN xla_exceptions_pkg.application_exception THEN
91112       RAISE;
91113   WHEN OTHERS THEN
91114        xla_exceptions_pkg.raise_message
91115            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_158');
91116 END AcctLineType_158;
91117 --
91118 
91119 ---------------------------------------
91120 --
91121 -- PRIVATE FUNCTION
91122 --         AcctLineType_159
91123 --
91124 ---------------------------------------
91125 PROCEDURE AcctLineType_159 (
91126   p_application_id        IN NUMBER
91127  ,p_event_id              IN NUMBER
91128  ,p_calculate_acctd_flag  IN VARCHAR2
91129  ,p_calculate_g_l_flag    IN VARCHAR2
91130  ,p_actual_flag           IN OUT VARCHAR2
91131  ,p_balance_type_code     OUT VARCHAR2
91132  ,p_gain_or_loss_ref      OUT VARCHAR2
91133  
91134 --Automatic Offsets Value
91135  , p_source_16            IN VARCHAR2
91136  , p_source_16_meaning    IN VARCHAR2
91137 --Purchase Order Rate Variance Gain Account
91138  , p_source_17            IN NUMBER
91142  , p_source_19            IN VARCHAR2
91139 --Invoice Distribution Ledger Amount
91140  , p_source_18            IN NUMBER
91141 --Destination Type of the PO Distribution
91143  , p_source_19_meaning    IN VARCHAR2
91144 --Purchase Order Rate Variance Loss Account
91145  , p_source_20            IN NUMBER
91146 --Invoice Distribution Account
91147  , p_source_29            IN NUMBER
91148 --Automatic Offsets Flag
91149  , p_source_42            IN VARCHAR2
91150  , p_source_42_meaning    IN VARCHAR2
91151 --When to Account for Payment Option
91152  , p_source_50            IN VARCHAR2
91153 --Accounting Reversal Indicator
91154  , p_source_52            IN VARCHAR2
91155 --Business Flow Accounts Payable Application Identifier
91156  , p_source_54            IN NUMBER
91157 --Distribution Link Type
91158  , p_source_60            IN VARCHAR2
91159 --Override Accounted Amount Indicator
91160  , p_source_64            IN VARCHAR2
91161  , p_source_64_meaning    IN VARCHAR2
91162 --Third Party Type
91163  , p_source_67            IN VARCHAR2
91164 --Invoice Distribution Tax Line Identifier
91165  , p_source_69            IN NUMBER
91166 --Invoice Distribution Summary Tax Line Identifier
91167  , p_source_70            IN NUMBER
91168 --Invoice Distribution Tax Distribution Identifier from Tax
91169  , p_source_77            IN NUMBER
91170 --Prepayment Distribution Type
91171  , p_source_78            IN VARCHAR2
91172 --Recipient Invoice Distribution Type
91173  , p_source_79            IN VARCHAR2
91174  , p_source_79_meaning    IN VARCHAR2
91175 --Prepayment Application Distribution Identifier
91176  , p_source_82            IN NUMBER
91177 --Invoice Identifier
91178  , p_source_83            IN NUMBER
91179 --Business Flow Prepayment Invoice Distribution Type
91180  , p_source_84            IN VARCHAR2
91181 --Business Flow Prepayment Invoice Entity Code
91182  , p_source_85            IN VARCHAR2
91183 --Business Flow Prepayment Invoice Distribution Identifier
91184  , p_source_86            IN NUMBER
91185 --Business Flow Prepayment Invoice Identifier
91186  , p_source_87            IN NUMBER
91187 --Upgrade Encumbrance Credit Account Class
91188  , p_source_88            IN VARCHAR2
91189 --Payables Encumbrance Upgrade Credit Account
91190  , p_source_89            IN NUMBER
91191 --Payables Encumbrance Upgrade Credit Amount
91192  , p_source_90            IN NUMBER
91193 --Invoice Currency Code
91194  , p_source_91            IN VARCHAR2
91195 --Payables Encumbrance Upgrade Credit Base Amount
91196  , p_source_92            IN NUMBER
91197 --Upgrade Encumbrance Debit Account Class
91198  , p_source_93            IN VARCHAR2
91199 --Payables Encumbrance Upgrade Debit Account
91200  , p_source_94            IN NUMBER
91201 --Payables Encumbrance Upgrade Debit Amount
91202  , p_source_95            IN NUMBER
91203 --Payables Encumbrance Upgrade Debit Base Amount
91204  , p_source_96            IN NUMBER
91205 --Payables Encumbrance Upgrade Option
91206  , p_source_97            IN VARCHAR2
91207 --Prepayment Distribution Amount
91208  , p_source_98            IN NUMBER
91209 --Deferred Accounting End Date
91210  , p_source_101            IN DATE
91211 --Deferred Accounting Option
91212  , p_source_102            IN VARCHAR2
91213 --Deferred Accounting Start Date
91214  , p_source_103            IN DATE
91215 --Invoice Supplier Identifier
91216  , p_source_104            IN NUMBER
91217 --Invoice Supplier Site Identifier
91218  , p_source_105            IN NUMBER
91219 --Identifier of the Prepayment Application Reversed
91220  , p_source_106            IN NUMBER
91221 --Payables Upgrade Credit Encumbrance Type Identifier
91222  , p_source_107            IN NUMBER
91223 --Payables Upgrade Debit Encumbrance Type Identifier
91224  , p_source_108            IN NUMBER
91225 --Prepayment Payment Currency Code
91226  , p_source_109            IN VARCHAR2
91227 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
91228  , p_source_110            IN NUMBER
91229 --Accrue on Receipt Option
91230  , p_source_111            IN VARCHAR2
91231  , p_source_111_meaning    IN VARCHAR2
91232 --Prepayment Payment Exchange Date
91233  , p_source_128            IN DATE
91234 --Prepayment Payment Exchange Rate
91235  , p_source_129            IN NUMBER
91236 --Prepayment Payment Exchange Rate Type
91237  , p_source_130            IN VARCHAR2
91238 )
91239 IS
91240 
91241 l_component_type              VARCHAR2(80);
91242 l_component_code              VARCHAR2(30);
91243 l_component_type_code         VARCHAR2(1);
91244 l_component_appl_id           INTEGER;
91245 l_amb_context_code            VARCHAR2(30);
91246 l_entity_code                 VARCHAR2(30);
91247 l_event_class_code            VARCHAR2(30);
91248 l_ae_header_id                NUMBER;
91249 l_event_type_code             VARCHAR2(30);
91250 l_line_definition_code        VARCHAR2(30);
91251 l_line_definition_owner_code  VARCHAR2(1);
91252 --
91253 -- adr variables
91254 l_segment                     VARCHAR2(30);
91255 l_ccid                        NUMBER;
91256 l_adr_transaction_coa_id      NUMBER;
91257 l_adr_accounting_coa_id       NUMBER;
91258 l_adr_flexfield_segment_code  VARCHAR2(30);
91259 l_adr_flex_value_set_id       NUMBER;
91260 l_adr_value_type_code         VARCHAR2(30);
91261 l_adr_value_combination_id    NUMBER;
91262 l_adr_value_segment_code      VARCHAR2(30);
91263 
91267 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
91264 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
91265 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
91266 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
91268 
91269 -- 4262811 Variables ------------------------------------------------------------------------------------------
91270 l_entered_amt_idx             NUMBER;
91271 l_accted_amt_idx              NUMBER;
91272 l_acc_rev_flag                VARCHAR2(1);
91273 l_accrual_line_num            NUMBER;
91274 l_tmp_amt                     NUMBER;
91275 l_acc_rev_natural_side_code   VARCHAR2(1);
91276 
91277 l_num_entries                 NUMBER;
91278 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
91279 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
91280 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
91281 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
91282 l_recog_line_1                NUMBER;
91283 l_recog_line_2                NUMBER;
91284 
91285 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
91286 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
91287 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
91288 
91289 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
91290 
91291 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
91292 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
91293 
91294 ---------------------------------------------------------------------------------------------------------------
91295 
91296 
91297 --
91298 -- bulk performance
91299 --
91300 l_balance_type_code           VARCHAR2(1);
91301 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
91302 l_log_module                  VARCHAR2(240);
91303 
91304 --
91305 -- Upgrade strategy
91306 --
91307 l_actual_upg_option           VARCHAR2(1);
91308 l_enc_upg_option           VARCHAR2(1);
91309 
91310 --
91311 BEGIN
91312 --
91313 IF g_log_enabled THEN
91314       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_159';
91315 END IF;
91316 --
91317 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91318 
91319       trace
91320          (p_msg      => 'BEGIN of AcctLineType_159'
91321          ,p_level    => C_LEVEL_PROCEDURE
91322          ,p_module   => l_log_module);
91323 
91324 END IF;
91325 --
91326 l_component_type             := 'AMB_JLT';
91327 l_component_code             := 'AP_TERV_PREPAY_PAY_RATE';
91328 l_component_type_code        := 'S';
91329 l_component_appl_id          :=  200;
91330 l_amb_context_code           := 'DEFAULT';
91331 l_entity_code                := 'AP_INVOICES';
91332 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
91333 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
91334 l_line_definition_owner_code := 'S';
91335 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
91336 --
91337 l_balance_type_code          := 'A';
91338 l_segment                     := NULL;
91339 l_ccid                        := NULL;
91340 l_adr_transaction_coa_id      := NULL;
91341 l_adr_accounting_coa_id       := NULL;
91342 l_adr_flexfield_segment_code  := NULL;
91343 l_adr_flex_value_set_id       := NULL;
91344 l_adr_value_type_code         := NULL;
91345 l_adr_value_combination_id    := NULL;
91346 l_adr_value_segment_code      := NULL;
91347 
91348 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
91349 l_bflow_class_code           := '';    -- 4219869 Business Flow
91350 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
91351 l_budgetary_control_flag     := 'N';
91352 
91353 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
91354 l_bflow_applied_to_amt       := NULL; -- 5132302
91355 l_entered_amt_idx            := NULL;          -- 4262811
91356 l_accted_amt_idx             := NULL;          -- 4262811
91357 l_acc_rev_flag               := NULL;          -- 4262811
91358 l_accrual_line_num           := NULL;          -- 4262811
91359 l_tmp_amt                    := NULL;          -- 4262811
91360 --
91361 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
91362             (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
91363                return;
91364   END IF;
91365   
91366 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
91367     l_balance_type_code <> 'B' THEN
91368 IF NVL(p_source_50,'
91369 ') <>  'CLEAR_CLEAR' AND 
91370 (NVL(p_source_78,'
91371 ') =  'PREPAY APPL' OR 
91372 NVL(p_source_78,'
91373 ') =  'PREPAY APPL NONREC TAX' OR 
91374 NVL(p_source_78,'
91375 ') =  'PREPAY APPL REC TAX') AND 
91376 NVL(p_source_79,'
91377 ') =  'TERV' AND 
91378 NVL(p_source_111,'
91379 ') =  'Y'
91380  THEN 
91381 
91382    --
91383    XLA_AE_LINES_PKG.SetNewLine;
91384 
91385    p_balance_type_code          := l_balance_type_code;
91386    -- set the flag so later we will know whether the gain loss line needs to be created
91387    
91388    IF(l_balance_type_code = 'A' ) THEN
91389      p_actual_flag :='G';
91393    -- bulk performance
91390    END IF;
91391 
91392    --
91394    --
91395    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
91396                                       p_header_num   => 0); -- 4262811
91397    --
91398    -- set accounting line options
91399    --
91400    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
91401            p_natural_side_code          => 'C'
91402          , p_gain_or_loss_flag          => 'Y'
91403          , p_gl_transfer_mode_code      => 'S'
91404          , p_acct_entry_type_code       => 'A'
91405          , p_switch_side_flag           => 'Y'
91406          , p_merge_duplicate_code       => 'A'
91407          );
91408    --
91409    l_acc_rev_natural_side_code := 'D';  -- 4262811
91410    -- 
91411    --
91412    -- set accounting line type info
91413    --
91414    xla_ae_lines_pkg.SetAcctLineType
91415       (p_component_type             => l_component_type
91416       ,p_event_type_code            => l_event_type_code
91417       ,p_line_definition_owner_code => l_line_definition_owner_code
91418       ,p_line_definition_code       => l_line_definition_code
91419       ,p_accounting_line_code       => l_component_code
91420       ,p_accounting_line_type_code  => l_component_type_code
91421       ,p_accounting_line_appl_id    => l_component_appl_id
91422       ,p_amb_context_code           => l_amb_context_code
91423       ,p_entity_code                => l_entity_code
91424       ,p_event_class_code           => l_event_class_code);
91425    --
91426    -- set accounting class
91427    --
91428    xla_ae_lines_pkg.SetAcctClass(
91429            p_accounting_class_code  => 'TERV'
91430          , p_ae_header_id           => l_ae_header_id
91431          );
91432 
91433    --
91434    -- set rounding class
91435    --
91436    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
91437                       'TERV';
91438 
91439    --
91440    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
91441    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
91442    --
91443    -- bulk performance
91444    --
91445    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
91446 
91447    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
91448       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
91449 
91450    -- 4955764
91451    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91452       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
91453 
91454    -- 4458381 Public Sector Enh
91455    
91456    --
91457    -- set accounting attributes for the line type
91458    --
91459    l_entered_amt_idx := 25;
91460    l_accted_amt_idx  := 30;
91461    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
91462    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
91463    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
91464    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
91465    l_rec_acct_attrs.array_num_value(2)  := 
91466 xla_ae_sources_pkg.GetSystemSourceNum(
91467    p_source_code           => 'XLA_EVENT_APPL_ID'
91468  , p_source_type_code      => 'Y'
91469  , p_source_application_id =>  602
91470 );
91471    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
91472    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
91473    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
91474    l_rec_acct_attrs.array_char_value(4)  := 
91475 xla_ae_sources_pkg.GetSystemSourceChar(
91476    p_source_code           => 'XLA_ENTITY_CODE'
91477  , p_source_type_code      => 'Y'
91478  , p_source_application_id =>  602
91479 );
91480    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
91481    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
91482    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
91483    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
91484    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
91485    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
91486    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
91487    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
91488    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
91489    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
91490    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
91491    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
91492    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
91493    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
91494    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
91495    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
91496    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
91497    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
91498    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
91499    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
91500    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
91501    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
91502    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
91506    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
91503    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
91504    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
91505    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
91507    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
91508    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
91509    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
91510    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
91511    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
91512    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
91513    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
91514    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
91515    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
91516    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
91517    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
91518    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
91519    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
91520    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
91521    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
91522    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
91523    l_rec_acct_attrs.array_char_value(26)  := p_source_109;
91524    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
91525    l_rec_acct_attrs.array_date_value(27)  := p_source_128;
91526    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
91527    l_rec_acct_attrs.array_num_value(28)  := p_source_129;
91528    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
91529    l_rec_acct_attrs.array_char_value(29)  := p_source_130;
91530    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
91531    l_rec_acct_attrs.array_num_value(30)  := p_source_110;
91532    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
91533    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
91534    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
91535    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
91536    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
91537    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
91538    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
91539    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
91540    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
91541    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
91542    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
91543    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
91544    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
91545    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
91546    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
91547    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
91548    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
91549    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
91550    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
91551    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
91552    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
91553    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
91554    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
91555    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
91556    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
91557    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
91558    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
91559    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
91560 
91561    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
91562    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
91563 
91564    ---------------------------------------------------------------------------------------------------------------
91565    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
91566    ---------------------------------------------------------------------------------------------------------------
91567    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
91568 
91569    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91570    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91571 
91572    IF xla_accounting_cache_pkg.GetValueChar
91573          (p_source_code         => 'LEDGER_CATEGORY_CODE'
91574          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
91575    AND l_bflow_method_code = 'PRIOR_ENTRY'
91576 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
91577    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
91578          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
91579        )
91580    THEN
91581          xla_ae_lines_pkg.BflowUpgEntry
91582            (p_business_method_code    => l_bflow_method_code
91583            ,p_business_class_code     => l_bflow_class_code
91584            ,p_balance_type            => l_balance_type_code);
91585    ELSE
91586       NULL;
91587 -- No business flow processing for business flow method of NONE.
91588    END IF;
91589 
91590    --
91591    -- call analytical criteria
91592    --
91593    
91594    --
91598    --
91595    -- call description
91596    --
91597    -- No description or it is inherited.
91599    -- call ADRs
91600    -- Bug 4922099
91601    --
91602    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91603         (NVL(l_actual_upg_option, 'N') = 'O') OR
91604         (NVL(l_enc_upg_option, 'N') = 'O')
91605       )
91606    THEN
91607    NULL;
91608    --
91609    --
91610    
91611   l_ccid := AcctDerRule_25(
91612            p_application_id           => p_application_id
91613          , p_ae_header_id             => l_ae_header_id 
91614 , p_source_16 => p_source_16
91615 , p_source_16_meaning => p_source_16_meaning
91616 , p_source_17 => p_source_17
91617 , p_source_18 => p_source_18
91618 , p_source_19 => p_source_19
91619 , p_source_19_meaning => p_source_19_meaning
91620 , p_source_20 => p_source_20
91621 , p_source_29 => p_source_29
91622 , p_source_42 => p_source_42
91623 , p_source_42_meaning => p_source_42_meaning
91624          , x_transaction_coa_id       => l_adr_transaction_coa_id
91625          , x_accounting_coa_id        => l_adr_accounting_coa_id
91626          , x_value_type_code          => l_adr_value_type_code
91627          , p_side                     => 'NA'
91628    );
91629 
91630    xla_ae_lines_pkg.set_ccid(
91631     p_code_combination_id          => l_ccid
91632   , p_value_type_code              => l_adr_value_type_code
91633   , p_transaction_coa_id           => l_adr_transaction_coa_id
91634   , p_accounting_coa_id            => l_adr_accounting_coa_id
91635   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
91636   , p_adr_type_code                => 'S'
91637   , p_component_type               => l_component_type
91638   , p_component_code               => l_component_code
91639   , p_component_type_code          => l_component_type_code
91640   , p_component_appl_id            => l_component_appl_id
91641   , p_amb_context_code             => l_amb_context_code
91642   , p_side                         => 'NA'
91643   );
91644 
91645 
91646    l_segment := AcctDerRule_5(
91647            p_application_id           => p_application_id
91648          , p_ae_header_id             => l_ae_header_id 
91649 , p_source_16 => p_source_16
91650 , p_source_16_meaning => p_source_16_meaning
91651 , p_source_17 => p_source_17
91652 , p_source_18 => p_source_18
91653 , p_source_19 => p_source_19
91654 , p_source_19_meaning => p_source_19_meaning
91655 , p_source_20 => p_source_20
91656          , x_transaction_coa_id       => l_adr_transaction_coa_id
91657          , x_accounting_coa_id        => l_adr_accounting_coa_id
91658          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
91659          , x_flex_value_set_id        => l_adr_flex_value_set_id
91660          , x_value_type_code          => l_adr_value_type_code
91661          , x_value_combination_id     => l_adr_value_combination_id
91662          , x_value_segment_code       => l_adr_value_segment_code
91663          , p_side                     => 'NA'
91664          , p_override_seg_flag        => 'Y'
91665    );
91666 
91667    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
91668 
91669       xla_ae_lines_pkg.set_segment(
91670           p_to_segment_code         => 'GL_ACCOUNT'
91671         , p_segment_value           => l_segment
91672         , p_from_segment_code       => l_adr_value_segment_code
91673         , p_from_combination_id     => l_adr_value_combination_id
91674         , p_value_type_code         => l_adr_value_type_code
91675         , p_transaction_coa_id      => l_adr_transaction_coa_id
91676         , p_accounting_coa_id       => l_adr_accounting_coa_id
91677         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
91678         , p_flex_value_set_id       => l_adr_flex_value_set_id
91679         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
91680         , p_adr_type_code           => 'S'
91681         , p_component_type          => l_component_type
91682         , p_component_code          => l_component_code
91683         , p_component_type_code     => l_component_type_code
91684         , p_component_appl_id       => l_component_appl_id
91685         , p_amb_context_code        => l_amb_context_code
91686         , p_entity_code             => 'AP_INVOICES'
91687         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
91688         , p_side                    => 'NA'
91689         );
91690 
91691   END IF;
91692 
91693    l_segment := AcctDerRule_17(
91694            p_application_id           => p_application_id
91695          , p_ae_header_id             => l_ae_header_id 
91696 , p_source_16 => p_source_16
91697 , p_source_16_meaning => p_source_16_meaning
91698 , p_source_19 => p_source_19
91699 , p_source_19_meaning => p_source_19_meaning
91700 , p_source_29 => p_source_29
91701          , x_transaction_coa_id       => l_adr_transaction_coa_id
91702          , x_accounting_coa_id        => l_adr_accounting_coa_id
91703          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
91704          , x_flex_value_set_id        => l_adr_flex_value_set_id
91705          , x_value_type_code          => l_adr_value_type_code
91706          , x_value_combination_id     => l_adr_value_combination_id
91707          , x_value_segment_code       => l_adr_value_segment_code
91708          , p_side                     => 'NA'
91709          , p_override_seg_flag        => 'Y'
91710    );
91711 
91712    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
91713 
91717         , p_from_segment_code       => l_adr_value_segment_code
91714       xla_ae_lines_pkg.set_segment(
91715           p_to_segment_code         => 'GL_BALANCING'
91716         , p_segment_value           => l_segment
91718         , p_from_combination_id     => l_adr_value_combination_id
91719         , p_value_type_code         => l_adr_value_type_code
91720         , p_transaction_coa_id      => l_adr_transaction_coa_id
91721         , p_accounting_coa_id       => l_adr_accounting_coa_id
91722         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
91723         , p_flex_value_set_id       => l_adr_flex_value_set_id
91724         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
91725         , p_adr_type_code           => 'S'
91726         , p_component_type          => l_component_type
91727         , p_component_code          => l_component_code
91728         , p_component_type_code     => l_component_type_code
91729         , p_component_appl_id       => l_component_appl_id
91730         , p_amb_context_code        => l_amb_context_code
91731         , p_entity_code             => 'AP_INVOICES'
91732         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
91733         , p_side                    => 'NA'
91734         );
91735 
91736   END IF;
91737 
91738    --
91739    --
91740    END IF;
91741    --
91742    -- Bug 4922099
91743    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
91744           (NVL(l_enc_upg_option, 'N') = 'O')
91745         ) AND
91746         (l_bflow_method_code = 'PRIOR_ENTRY')
91747       )
91748    THEN
91749       IF
91750       --
91751       1 = 2
91752       --
91753       THEN
91754       xla_accounting_err_pkg.build_message
91755                                     (p_appli_s_name            => 'XLA'
91756                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91757                                     ,p_token_1                 => 'LINE_NUMBER'
91758                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
91759                                     ,p_token_2                 => 'LINE_TYPE_NAME'
91760                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
91761                                                                              l_component_type
91762                                                                             ,l_component_code
91763                                                                             ,l_component_type_code
91764                                                                             ,l_component_appl_id
91765                                                                             ,l_amb_context_code
91766                                                                             ,l_entity_code
91767                                                                             ,l_event_class_code
91768                                                                            )
91769                                     ,p_token_3                 => 'OWNER'
91770                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
91771                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
91772                                                                           ,p_lookup_code    => l_component_type_code
91773                                                                          )
91774                                     ,p_token_4                 => 'PRODUCT_NAME'
91775                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
91776                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
91777                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
91778                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
91779                                     ,p_ae_header_id            =>  NULL
91780                                        );
91781 
91782         IF (C_LEVEL_ERROR>= g_log_level) THEN
91783                  trace
91784                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91785                       ,p_level    => C_LEVEL_ERROR
91786                       ,p_module   => l_log_module);
91787         END IF;
91788       END IF;
91789    END IF;
91790    --
91791    --
91792    ------------------------------------------------------------------------------------------------
91793    -- 4219869 Business Flow
91794    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
91795    -- Prior Entry.  Currently, the following code is always generated.
91796    ------------------------------------------------------------------------------------------------
91797    XLA_AE_LINES_PKG.ValidateCurrentLine;
91798 
91799    ------------------------------------------------------------------------------------
91800    -- 4219869 Business Flow
91801    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
91802    ------------------------------------------------------------------------------------
91803    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91804 
91805    ----------------------------------------------------------------------------------
91806    -- 4219869 Business Flow
91807    -- Update journal entry status -- Need to generate this within IF <condition>
91808    ----------------------------------------------------------------------------------
91812          );
91809    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91810          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
91811          ,p_balance_type_code => l_balance_type_code
91813 
91814    -------------------------------------------------------------------------------------------
91815    -- 4262811 - Generate the Accrual Reversal lines
91816    -------------------------------------------------------------------------------------------
91817    BEGIN
91818       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
91819                               (g_array_event(p_event_id).array_value_num('header_index'));
91820       IF l_acc_rev_flag IS NULL THEN
91821          l_acc_rev_flag := 'N';
91822       END IF;
91823    EXCEPTION
91824       WHEN OTHERS THEN
91825          l_acc_rev_flag := 'N';
91826    END;
91827    --
91828    IF (l_acc_rev_flag = 'Y') THEN
91829 
91830        -- 4645092  ------------------------------------------------------------------------------
91831        -- To allow MPA report to determine if it should generate report process
91832        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
91833        ------------------------------------------------------------------------------------------
91834 
91835        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
91836        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
91837    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
91838    -- call ADRs
91839    -- Bug 4922099
91840    --
91841    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91842         (NVL(l_actual_upg_option, 'N') = 'O') OR
91843         (NVL(l_enc_upg_option, 'N') = 'O')
91844       )
91845    THEN
91846    NULL;
91847    --
91848    --
91849    
91850   l_ccid := AcctDerRule_25(
91851            p_application_id           => p_application_id
91852          , p_ae_header_id             => l_ae_header_id 
91853 , p_source_16 => p_source_16
91854 , p_source_16_meaning => p_source_16_meaning
91855 , p_source_17 => p_source_17
91856 , p_source_18 => p_source_18
91857 , p_source_19 => p_source_19
91858 , p_source_19_meaning => p_source_19_meaning
91859 , p_source_20 => p_source_20
91860 , p_source_29 => p_source_29
91861 , p_source_42 => p_source_42
91862 , p_source_42_meaning => p_source_42_meaning
91863          , x_transaction_coa_id       => l_adr_transaction_coa_id
91864          , x_accounting_coa_id        => l_adr_accounting_coa_id
91865          , x_value_type_code          => l_adr_value_type_code
91866          , p_side                     => 'NA'
91867    );
91868 
91869    xla_ae_lines_pkg.set_ccid(
91870     p_code_combination_id          => l_ccid
91871   , p_value_type_code              => l_adr_value_type_code
91872   , p_transaction_coa_id           => l_adr_transaction_coa_id
91873   , p_accounting_coa_id            => l_adr_accounting_coa_id
91874   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
91875   , p_adr_type_code                => 'S'
91876   , p_component_type               => l_component_type
91877   , p_component_code               => l_component_code
91878   , p_component_type_code          => l_component_type_code
91879   , p_component_appl_id            => l_component_appl_id
91880   , p_amb_context_code             => l_amb_context_code
91881   , p_side                         => 'NA'
91882   );
91883 
91884 
91885    l_segment := AcctDerRule_5(
91886            p_application_id           => p_application_id
91887          , p_ae_header_id             => l_ae_header_id 
91888 , p_source_16 => p_source_16
91889 , p_source_16_meaning => p_source_16_meaning
91890 , p_source_17 => p_source_17
91891 , p_source_18 => p_source_18
91892 , p_source_19 => p_source_19
91893 , p_source_19_meaning => p_source_19_meaning
91894 , p_source_20 => p_source_20
91895          , x_transaction_coa_id       => l_adr_transaction_coa_id
91896          , x_accounting_coa_id        => l_adr_accounting_coa_id
91897          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
91898          , x_flex_value_set_id        => l_adr_flex_value_set_id
91899          , x_value_type_code          => l_adr_value_type_code
91900          , x_value_combination_id     => l_adr_value_combination_id
91901          , x_value_segment_code       => l_adr_value_segment_code
91902          , p_side                     => 'NA'
91903          , p_override_seg_flag        => 'Y'
91904    );
91905 
91906    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
91907 
91908       xla_ae_lines_pkg.set_segment(
91909           p_to_segment_code         => 'GL_ACCOUNT'
91910         , p_segment_value           => l_segment
91911         , p_from_segment_code       => l_adr_value_segment_code
91912         , p_from_combination_id     => l_adr_value_combination_id
91913         , p_value_type_code         => l_adr_value_type_code
91914         , p_transaction_coa_id      => l_adr_transaction_coa_id
91915         , p_accounting_coa_id       => l_adr_accounting_coa_id
91916         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
91917         , p_flex_value_set_id       => l_adr_flex_value_set_id
91918         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
91919         , p_adr_type_code           => 'S'
91920         , p_component_type          => l_component_type
91921         , p_component_code          => l_component_code
91922         , p_component_type_code     => l_component_type_code
91926         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
91923         , p_component_appl_id       => l_component_appl_id
91924         , p_amb_context_code        => l_amb_context_code
91925         , p_entity_code             => 'AP_INVOICES'
91927         , p_side                    => 'NA'
91928         );
91929 
91930   END IF;
91931 
91932    l_segment := AcctDerRule_17(
91933            p_application_id           => p_application_id
91934          , p_ae_header_id             => l_ae_header_id 
91935 , p_source_16 => p_source_16
91936 , p_source_16_meaning => p_source_16_meaning
91937 , p_source_19 => p_source_19
91938 , p_source_19_meaning => p_source_19_meaning
91939 , p_source_29 => p_source_29
91940          , x_transaction_coa_id       => l_adr_transaction_coa_id
91941          , x_accounting_coa_id        => l_adr_accounting_coa_id
91942          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
91943          , x_flex_value_set_id        => l_adr_flex_value_set_id
91944          , x_value_type_code          => l_adr_value_type_code
91945          , x_value_combination_id     => l_adr_value_combination_id
91946          , x_value_segment_code       => l_adr_value_segment_code
91947          , p_side                     => 'NA'
91948          , p_override_seg_flag        => 'Y'
91949    );
91950 
91951    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
91952 
91953       xla_ae_lines_pkg.set_segment(
91954           p_to_segment_code         => 'GL_BALANCING'
91955         , p_segment_value           => l_segment
91956         , p_from_segment_code       => l_adr_value_segment_code
91957         , p_from_combination_id     => l_adr_value_combination_id
91958         , p_value_type_code         => l_adr_value_type_code
91959         , p_transaction_coa_id      => l_adr_transaction_coa_id
91960         , p_accounting_coa_id       => l_adr_accounting_coa_id
91961         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
91962         , p_flex_value_set_id       => l_adr_flex_value_set_id
91963         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
91964         , p_adr_type_code           => 'S'
91965         , p_component_type          => l_component_type
91966         , p_component_code          => l_component_code
91967         , p_component_type_code     => l_component_type_code
91968         , p_component_appl_id       => l_component_appl_id
91969         , p_amb_context_code        => l_amb_context_code
91970         , p_entity_code             => 'AP_INVOICES'
91971         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
91972         , p_side                    => 'NA'
91973         );
91974 
91975   END IF;
91976 
91977    --
91978    --
91979    END IF;
91980 
91981        --
91982        -- Update the line information that should be overwritten
91983        --
91984        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
91985                                          p_header_num   => 1);
91986        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
91987 
91988        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
91989 
91990        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
91991           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
91992        END IF;
91993 
91994       --
91995       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
91996       --
91997       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
91998           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
91999       ELSE
92000           ---------------------------------------------------------------------------------------------------
92001           -- 4262811a Switch Sign
92002           ---------------------------------------------------------------------------------------------------
92003           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
92004           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92005                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92006           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92007                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92008           -- 5132302
92009           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
92010                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92011 
92012       END IF;
92013 
92014       -- 4955764
92015       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92016       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
92017 
92018 
92019       XLA_AE_LINES_PKG.ValidateCurrentLine;
92020       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92021 
92022       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92023                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
92024                ,p_balance_type_code => l_balance_type_code);
92025 
92026    END IF;
92027 
92031      -- No MPA option is assigned.
92028    -----------------------------------------------------------------------------------------
92029    -- 4262811 Multiperiod Accounting
92030    -----------------------------------------------------------------------------------------
92032 
92033 
92034 END IF;
92035 END IF;
92036 --
92037 
92038 --
92039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92040    trace
92041       (p_msg      => 'END of AcctLineType_159'
92042       ,p_level    => C_LEVEL_PROCEDURE
92043       ,p_module   => l_log_module);
92044 END IF;
92045 --
92046 EXCEPTION
92047   WHEN xla_exceptions_pkg.application_exception THEN
92048       RAISE;
92049   WHEN OTHERS THEN
92050        xla_exceptions_pkg.raise_message
92051            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_159');
92052 END AcctLineType_159;
92053 --
92054 
92055 ---------------------------------------
92056 --
92057 -- PRIVATE FUNCTION
92058 --         AcctLineType_160
92059 --
92060 ---------------------------------------
92061 PROCEDURE AcctLineType_160 (
92062   p_application_id        IN NUMBER
92063  ,p_event_id              IN NUMBER
92064  ,p_calculate_acctd_flag  IN VARCHAR2
92065  ,p_calculate_g_l_flag    IN VARCHAR2
92066  ,p_actual_flag           IN OUT VARCHAR2
92067  ,p_balance_type_code     OUT VARCHAR2
92068  ,p_gain_or_loss_ref      OUT VARCHAR2
92069  
92070 --Recipient Invoice Distribution Account
92071  , p_source_48            IN NUMBER
92072 --When to Account for Payment Option
92073  , p_source_50            IN VARCHAR2
92074 --Accounting Reversal Indicator
92075  , p_source_52            IN VARCHAR2
92076 --Business Flow Accounts Payable Application Identifier
92077  , p_source_54            IN NUMBER
92078 --Distribution Link Type
92079  , p_source_60            IN VARCHAR2
92080 --Override Accounted Amount Indicator
92081  , p_source_64            IN VARCHAR2
92082  , p_source_64_meaning    IN VARCHAR2
92083 --Third Party Type
92084  , p_source_67            IN VARCHAR2
92085 --Invoice Distribution Tax Line Identifier
92086  , p_source_69            IN NUMBER
92087 --Invoice Distribution Summary Tax Line Identifier
92088  , p_source_70            IN NUMBER
92089 --Invoice Distribution Tax Distribution Identifier from Tax
92090  , p_source_77            IN NUMBER
92091 --Prepayment Distribution Type
92092  , p_source_78            IN VARCHAR2
92093 --Recipient Invoice Distribution Type
92094  , p_source_79            IN VARCHAR2
92095  , p_source_79_meaning    IN VARCHAR2
92096 --Prepayment Application Distribution Identifier
92097  , p_source_82            IN NUMBER
92098 --Invoice Identifier
92099  , p_source_83            IN NUMBER
92100 --Business Flow Prepayment Invoice Distribution Type
92101  , p_source_84            IN VARCHAR2
92102 --Business Flow Prepayment Invoice Entity Code
92103  , p_source_85            IN VARCHAR2
92104 --Business Flow Prepayment Invoice Distribution Identifier
92105  , p_source_86            IN NUMBER
92106 --Business Flow Prepayment Invoice Identifier
92107  , p_source_87            IN NUMBER
92108 --Upgrade Encumbrance Credit Account Class
92109  , p_source_88            IN VARCHAR2
92110 --Payables Encumbrance Upgrade Credit Account
92111  , p_source_89            IN NUMBER
92112 --Payables Encumbrance Upgrade Credit Amount
92113  , p_source_90            IN NUMBER
92114 --Invoice Currency Code
92115  , p_source_91            IN VARCHAR2
92116 --Payables Encumbrance Upgrade Credit Base Amount
92117  , p_source_92            IN NUMBER
92118 --Upgrade Encumbrance Debit Account Class
92119  , p_source_93            IN VARCHAR2
92120 --Payables Encumbrance Upgrade Debit Account
92121  , p_source_94            IN NUMBER
92122 --Payables Encumbrance Upgrade Debit Amount
92123  , p_source_95            IN NUMBER
92124 --Payables Encumbrance Upgrade Debit Base Amount
92125  , p_source_96            IN NUMBER
92126 --Payables Encumbrance Upgrade Option
92127  , p_source_97            IN VARCHAR2
92128 --Prepayment Distribution Amount
92129  , p_source_98            IN NUMBER
92130 --Prepayment Clearing Currency Code
92131  , p_source_99            IN VARCHAR2
92132 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
92133  , p_source_100            IN NUMBER
92134 --Deferred Accounting End Date
92135  , p_source_101            IN DATE
92136 --Deferred Accounting Option
92137  , p_source_102            IN VARCHAR2
92138 --Deferred Accounting Start Date
92139  , p_source_103            IN DATE
92140 --Invoice Supplier Identifier
92141  , p_source_104            IN NUMBER
92142 --Invoice Supplier Site Identifier
92143  , p_source_105            IN NUMBER
92144 --Identifier of the Prepayment Application Reversed
92145  , p_source_106            IN NUMBER
92146 --Payables Upgrade Credit Encumbrance Type Identifier
92147  , p_source_107            IN NUMBER
92148 --Payables Upgrade Debit Encumbrance Type Identifier
92149  , p_source_108            IN NUMBER
92150 --Accrue on Receipt Option
92151  , p_source_111            IN VARCHAR2
92152  , p_source_111_meaning    IN VARCHAR2
92153 --Prepayment Clearing Exchange Date
92154  , p_source_125            IN DATE
92155 --Prepayment Clearing Exchange Rate
92156  , p_source_126            IN NUMBER
92157 --Prepayment Clearing Exchange Rate Type
92158  , p_source_127            IN VARCHAR2
92159 )
92160 IS
92161 
92162 l_component_type              VARCHAR2(80);
92163 l_component_code              VARCHAR2(30);
92167 l_entity_code                 VARCHAR2(30);
92164 l_component_type_code         VARCHAR2(1);
92165 l_component_appl_id           INTEGER;
92166 l_amb_context_code            VARCHAR2(30);
92168 l_event_class_code            VARCHAR2(30);
92169 l_ae_header_id                NUMBER;
92170 l_event_type_code             VARCHAR2(30);
92171 l_line_definition_code        VARCHAR2(30);
92172 l_line_definition_owner_code  VARCHAR2(1);
92173 --
92174 -- adr variables
92175 l_segment                     VARCHAR2(30);
92176 l_ccid                        NUMBER;
92177 l_adr_transaction_coa_id      NUMBER;
92178 l_adr_accounting_coa_id       NUMBER;
92179 l_adr_flexfield_segment_code  VARCHAR2(30);
92180 l_adr_flex_value_set_id       NUMBER;
92181 l_adr_value_type_code         VARCHAR2(30);
92182 l_adr_value_combination_id    NUMBER;
92183 l_adr_value_segment_code      VARCHAR2(30);
92184 
92185 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
92186 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
92187 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
92188 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
92189 
92190 -- 4262811 Variables ------------------------------------------------------------------------------------------
92191 l_entered_amt_idx             NUMBER;
92192 l_accted_amt_idx              NUMBER;
92193 l_acc_rev_flag                VARCHAR2(1);
92194 l_accrual_line_num            NUMBER;
92195 l_tmp_amt                     NUMBER;
92196 l_acc_rev_natural_side_code   VARCHAR2(1);
92197 
92198 l_num_entries                 NUMBER;
92199 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
92200 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
92201 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
92202 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
92203 l_recog_line_1                NUMBER;
92204 l_recog_line_2                NUMBER;
92205 
92206 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
92207 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
92208 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
92209 
92210 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
92211 
92212 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
92213 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
92214 
92215 ---------------------------------------------------------------------------------------------------------------
92216 
92217 
92218 --
92219 -- bulk performance
92220 --
92221 l_balance_type_code           VARCHAR2(1);
92222 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
92223 l_log_module                  VARCHAR2(240);
92224 
92225 --
92226 -- Upgrade strategy
92227 --
92228 l_actual_upg_option           VARCHAR2(1);
92229 l_enc_upg_option           VARCHAR2(1);
92230 
92231 --
92232 BEGIN
92233 --
92234 IF g_log_enabled THEN
92235       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_160';
92236 END IF;
92237 --
92238 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92239 
92240       trace
92241          (p_msg      => 'BEGIN of AcctLineType_160'
92242          ,p_level    => C_LEVEL_PROCEDURE
92243          ,p_module   => l_log_module);
92244 
92245 END IF;
92246 --
92247 l_component_type             := 'AMB_JLT';
92248 l_component_code             := 'AP_TIPV_PREPAY_CLR_RATE_APP';
92249 l_component_type_code        := 'S';
92250 l_component_appl_id          :=  200;
92251 l_amb_context_code           := 'DEFAULT';
92252 l_entity_code                := 'AP_INVOICES';
92253 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
92254 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
92255 l_line_definition_owner_code := 'S';
92256 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
92257 --
92258 l_balance_type_code          := 'A';
92259 l_segment                     := NULL;
92260 l_ccid                        := NULL;
92261 l_adr_transaction_coa_id      := NULL;
92262 l_adr_accounting_coa_id       := NULL;
92263 l_adr_flexfield_segment_code  := NULL;
92264 l_adr_flex_value_set_id       := NULL;
92265 l_adr_value_type_code         := NULL;
92266 l_adr_value_combination_id    := NULL;
92267 l_adr_value_segment_code      := NULL;
92268 
92269 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
92270 l_bflow_class_code           := '';    -- 4219869 Business Flow
92271 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
92272 l_budgetary_control_flag     := 'N';
92273 
92274 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
92275 l_bflow_applied_to_amt       := NULL; -- 5132302
92276 l_entered_amt_idx            := NULL;          -- 4262811
92277 l_accted_amt_idx             := NULL;          -- 4262811
92278 l_acc_rev_flag               := NULL;          -- 4262811
92279 l_accrual_line_num           := NULL;          -- 4262811
92280 l_tmp_amt                    := NULL;          -- 4262811
92281 --
92282  
92283 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
92284     l_balance_type_code <> 'B' THEN
92285 IF NVL(p_source_50,'
92286 ') =  'CLEAR_CLEAR' AND 
92287 (NVL(p_source_78,'
92288 ') =  'PREPAY APPL' OR 
92289 NVL(p_source_78,'
92290 ') =  'PREPAY APPL NONREC TAX' OR 
92294 ') =  'TIPV' AND 
92291 NVL(p_source_78,'
92292 ') =  'PREPAY APPL REC TAX') AND 
92293 NVL(p_source_79,'
92295 NVL(p_source_111,'
92296 ') =  'Y'
92297  THEN 
92298 
92299    --
92300    XLA_AE_LINES_PKG.SetNewLine;
92301 
92302    p_balance_type_code          := l_balance_type_code;
92303    -- set the flag so later we will know whether the gain loss line needs to be created
92304    
92305    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
92306      p_actual_flag :='A';
92307    END IF;
92308 
92309    --
92310    -- bulk performance
92311    --
92312    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
92313                                       p_header_num   => 0); -- 4262811
92314    --
92315    -- set accounting line options
92316    --
92317    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
92318            p_natural_side_code          => 'C'
92319          , p_gain_or_loss_flag          => 'N'
92320          , p_gl_transfer_mode_code      => 'S'
92321          , p_acct_entry_type_code       => 'A'
92322          , p_switch_side_flag           => 'Y'
92323          , p_merge_duplicate_code       => 'A'
92324          );
92325    --
92326    l_acc_rev_natural_side_code := 'D';  -- 4262811
92327    -- 
92328    --
92329    -- set accounting line type info
92330    --
92331    xla_ae_lines_pkg.SetAcctLineType
92332       (p_component_type             => l_component_type
92333       ,p_event_type_code            => l_event_type_code
92334       ,p_line_definition_owner_code => l_line_definition_owner_code
92335       ,p_line_definition_code       => l_line_definition_code
92336       ,p_accounting_line_code       => l_component_code
92337       ,p_accounting_line_type_code  => l_component_type_code
92338       ,p_accounting_line_appl_id    => l_component_appl_id
92339       ,p_amb_context_code           => l_amb_context_code
92340       ,p_entity_code                => l_entity_code
92341       ,p_event_class_code           => l_event_class_code);
92342    --
92343    -- set accounting class
92344    --
92345    xla_ae_lines_pkg.SetAcctClass(
92346            p_accounting_class_code  => 'TIPV'
92347          , p_ae_header_id           => l_ae_header_id
92348          );
92349 
92350    --
92351    -- set rounding class
92352    --
92353    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
92354                       'TIPV';
92355 
92356    --
92357    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
92358    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
92359    --
92360    -- bulk performance
92361    --
92362    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
92363 
92364    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
92365       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
92366 
92367    -- 4955764
92368    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92369       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
92370 
92371    -- 4458381 Public Sector Enh
92372    
92373    --
92374    -- set accounting attributes for the line type
92375    --
92376    l_entered_amt_idx := 25;
92377    l_accted_amt_idx  := 30;
92378    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
92379    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
92380    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
92381    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
92382    l_rec_acct_attrs.array_num_value(2)  := 
92383 xla_ae_sources_pkg.GetSystemSourceNum(
92384    p_source_code           => 'XLA_EVENT_APPL_ID'
92385  , p_source_type_code      => 'Y'
92386  , p_source_application_id =>  602
92387 );
92388    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
92389    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
92390    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
92391    l_rec_acct_attrs.array_char_value(4)  := 
92392 xla_ae_sources_pkg.GetSystemSourceChar(
92393    p_source_code           => 'XLA_ENTITY_CODE'
92394  , p_source_type_code      => 'Y'
92395  , p_source_application_id =>  602
92396 );
92397    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
92398    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
92399    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
92400    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
92401    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
92402    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
92403    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
92404    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
92405    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
92406    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
92407    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
92408    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
92409    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
92410    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
92411    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
92415    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
92412    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
92413    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
92414    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
92416    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
92417    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
92418    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
92419    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
92420    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
92421    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
92422    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
92423    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
92424    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
92425    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
92426    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
92427    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
92428    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
92429    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
92430    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
92431    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
92432    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
92433    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
92434    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
92435    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
92436    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
92437    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
92438    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
92439    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
92440    l_rec_acct_attrs.array_char_value(26)  := p_source_99;
92441    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
92442    l_rec_acct_attrs.array_date_value(27)  := p_source_125;
92443    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
92444    l_rec_acct_attrs.array_num_value(28)  := p_source_126;
92445    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
92446    l_rec_acct_attrs.array_char_value(29)  := p_source_127;
92447    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
92448    l_rec_acct_attrs.array_num_value(30)  := p_source_100;
92449    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
92450    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
92451    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
92452    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
92453    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
92454    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
92455    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
92456    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
92457    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
92458    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
92459    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
92460    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
92461    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
92462    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
92463    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
92464    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
92465    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
92466    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
92467    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
92468    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
92469    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
92470    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
92471    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
92472    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
92473    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
92474    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
92475    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
92476    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
92477 
92478    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
92479    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
92480 
92481    ---------------------------------------------------------------------------------------------------------------
92482    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
92483    ---------------------------------------------------------------------------------------------------------------
92484    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
92485 
92486    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92487    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92488 
92489    IF xla_accounting_cache_pkg.GetValueChar
92490          (p_source_code         => 'LEDGER_CATEGORY_CODE'
92491          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
92492    AND l_bflow_method_code = 'PRIOR_ENTRY'
92493 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
92494    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
92495          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
92499            (p_business_method_code    => l_bflow_method_code
92496        )
92497    THEN
92498          xla_ae_lines_pkg.BflowUpgEntry
92500            ,p_business_class_code     => l_bflow_class_code
92501            ,p_balance_type            => l_balance_type_code);
92502    ELSE
92503       NULL;
92504 -- No business flow processing for business flow method of NONE.
92505    END IF;
92506 
92507    --
92508    -- call analytical criteria
92509    --
92510    
92511    --
92512    -- call description
92513    --
92514    -- No description or it is inherited.
92515    --
92516    -- call ADRs
92517    -- Bug 4922099
92518    --
92519    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92520         (NVL(l_actual_upg_option, 'N') = 'O') OR
92521         (NVL(l_enc_upg_option, 'N') = 'O')
92522       )
92523    THEN
92524    NULL;
92525    --
92526    --
92527    
92528   l_ccid := AcctDerRule_35(
92529            p_application_id           => p_application_id
92530          , p_ae_header_id             => l_ae_header_id 
92531 , p_source_48 => p_source_48
92532          , x_transaction_coa_id       => l_adr_transaction_coa_id
92533          , x_accounting_coa_id        => l_adr_accounting_coa_id
92534          , x_value_type_code          => l_adr_value_type_code
92535          , p_side                     => 'NA'
92536    );
92537 
92538    xla_ae_lines_pkg.set_ccid(
92539     p_code_combination_id          => l_ccid
92540   , p_value_type_code              => l_adr_value_type_code
92541   , p_transaction_coa_id           => l_adr_transaction_coa_id
92542   , p_accounting_coa_id            => l_adr_accounting_coa_id
92543   , p_adr_code                     => 'AP_RECP_INV_DIST'
92544   , p_adr_type_code                => 'S'
92545   , p_component_type               => l_component_type
92546   , p_component_code               => l_component_code
92547   , p_component_type_code          => l_component_type_code
92548   , p_component_appl_id            => l_component_appl_id
92549   , p_amb_context_code             => l_amb_context_code
92550   , p_side                         => 'NA'
92551   );
92552 
92553 
92554    --
92555    --
92556    END IF;
92557    --
92558    -- Bug 4922099
92559    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
92560           (NVL(l_enc_upg_option, 'N') = 'O')
92561         ) AND
92562         (l_bflow_method_code = 'PRIOR_ENTRY')
92563       )
92564    THEN
92565       IF
92566       --
92567       1 = 2
92568       --
92569       THEN
92570       xla_accounting_err_pkg.build_message
92571                                     (p_appli_s_name            => 'XLA'
92572                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92573                                     ,p_token_1                 => 'LINE_NUMBER'
92574                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
92575                                     ,p_token_2                 => 'LINE_TYPE_NAME'
92576                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
92577                                                                              l_component_type
92578                                                                             ,l_component_code
92579                                                                             ,l_component_type_code
92580                                                                             ,l_component_appl_id
92581                                                                             ,l_amb_context_code
92582                                                                             ,l_entity_code
92583                                                                             ,l_event_class_code
92584                                                                            )
92585                                     ,p_token_3                 => 'OWNER'
92586                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
92587                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
92588                                                                           ,p_lookup_code    => l_component_type_code
92589                                                                          )
92590                                     ,p_token_4                 => 'PRODUCT_NAME'
92591                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
92592                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
92593                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
92594                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
92595                                     ,p_ae_header_id            =>  NULL
92596                                        );
92597 
92598         IF (C_LEVEL_ERROR>= g_log_level) THEN
92599                  trace
92600                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92601                       ,p_level    => C_LEVEL_ERROR
92602                       ,p_module   => l_log_module);
92603         END IF;
92604       END IF;
92605    END IF;
92606    --
92607    --
92608    ------------------------------------------------------------------------------------------------
92609    -- 4219869 Business Flow
92613    XLA_AE_LINES_PKG.ValidateCurrentLine;
92610    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
92611    -- Prior Entry.  Currently, the following code is always generated.
92612    ------------------------------------------------------------------------------------------------
92614 
92615    ------------------------------------------------------------------------------------
92616    -- 4219869 Business Flow
92617    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
92618    ------------------------------------------------------------------------------------
92619    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92620 
92621    ----------------------------------------------------------------------------------
92622    -- 4219869 Business Flow
92623    -- Update journal entry status -- Need to generate this within IF <condition>
92624    ----------------------------------------------------------------------------------
92625    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92626          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
92627          ,p_balance_type_code => l_balance_type_code
92628          );
92629 
92630    -------------------------------------------------------------------------------------------
92631    -- 4262811 - Generate the Accrual Reversal lines
92632    -------------------------------------------------------------------------------------------
92633    BEGIN
92634       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
92635                               (g_array_event(p_event_id).array_value_num('header_index'));
92636       IF l_acc_rev_flag IS NULL THEN
92637          l_acc_rev_flag := 'N';
92638       END IF;
92639    EXCEPTION
92640       WHEN OTHERS THEN
92641          l_acc_rev_flag := 'N';
92642    END;
92643    --
92644    IF (l_acc_rev_flag = 'Y') THEN
92645 
92646        -- 4645092  ------------------------------------------------------------------------------
92647        -- To allow MPA report to determine if it should generate report process
92648        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
92649        ------------------------------------------------------------------------------------------
92650 
92651        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
92652        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
92653    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
92654    -- call ADRs
92655    -- Bug 4922099
92656    --
92657    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92658         (NVL(l_actual_upg_option, 'N') = 'O') OR
92659         (NVL(l_enc_upg_option, 'N') = 'O')
92660       )
92661    THEN
92662    NULL;
92663    --
92664    --
92665    
92666   l_ccid := AcctDerRule_35(
92667            p_application_id           => p_application_id
92668          , p_ae_header_id             => l_ae_header_id 
92669 , p_source_48 => p_source_48
92670          , x_transaction_coa_id       => l_adr_transaction_coa_id
92671          , x_accounting_coa_id        => l_adr_accounting_coa_id
92672          , x_value_type_code          => l_adr_value_type_code
92673          , p_side                     => 'NA'
92674    );
92675 
92676    xla_ae_lines_pkg.set_ccid(
92677     p_code_combination_id          => l_ccid
92678   , p_value_type_code              => l_adr_value_type_code
92679   , p_transaction_coa_id           => l_adr_transaction_coa_id
92680   , p_accounting_coa_id            => l_adr_accounting_coa_id
92681   , p_adr_code                     => 'AP_RECP_INV_DIST'
92682   , p_adr_type_code                => 'S'
92683   , p_component_type               => l_component_type
92684   , p_component_code               => l_component_code
92685   , p_component_type_code          => l_component_type_code
92686   , p_component_appl_id            => l_component_appl_id
92687   , p_amb_context_code             => l_amb_context_code
92688   , p_side                         => 'NA'
92689   );
92690 
92691 
92692    --
92693    --
92694    END IF;
92695 
92696        --
92697        -- Update the line information that should be overwritten
92698        --
92699        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
92700                                          p_header_num   => 1);
92701        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
92702 
92703        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
92704 
92705        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
92706           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
92707        END IF;
92708 
92709       --
92710       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
92711       --
92712       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
92713           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
92714       ELSE
92715           ---------------------------------------------------------------------------------------------------
92716           -- 4262811a Switch Sign
92717           ---------------------------------------------------------------------------------------------------
92718           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
92722                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92719           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92720                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92721           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92723           -- 5132302
92724           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
92725                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92726 
92727       END IF;
92728 
92729       -- 4955764
92730       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92731       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
92732 
92733 
92734       XLA_AE_LINES_PKG.ValidateCurrentLine;
92735       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92736 
92737       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92738                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
92739                ,p_balance_type_code => l_balance_type_code);
92740 
92741    END IF;
92742 
92743    -----------------------------------------------------------------------------------------
92744    -- 4262811 Multiperiod Accounting
92745    -----------------------------------------------------------------------------------------
92746      -- No MPA option is assigned.
92747 
92748 
92749 END IF;
92750 END IF;
92751 --
92752 
92753 --
92754 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92755    trace
92756       (p_msg      => 'END of AcctLineType_160'
92757       ,p_level    => C_LEVEL_PROCEDURE
92758       ,p_module   => l_log_module);
92759 END IF;
92760 --
92761 EXCEPTION
92762   WHEN xla_exceptions_pkg.application_exception THEN
92763       RAISE;
92764   WHEN OTHERS THEN
92765        xla_exceptions_pkg.raise_message
92766            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_160');
92767 END AcctLineType_160;
92768 --
92769 
92770 ---------------------------------------
92771 --
92772 -- PRIVATE FUNCTION
92773 --         AcctLineType_161
92774 --
92775 ---------------------------------------
92776 PROCEDURE AcctLineType_161 (
92777   p_application_id        IN NUMBER
92778  ,p_event_id              IN NUMBER
92779  ,p_calculate_acctd_flag  IN VARCHAR2
92780  ,p_calculate_g_l_flag    IN VARCHAR2
92781  ,p_actual_flag           IN OUT VARCHAR2
92782  ,p_balance_type_code     OUT VARCHAR2
92783  ,p_gain_or_loss_ref      OUT VARCHAR2
92784  
92785 --Recipient Invoice Distribution Account
92786  , p_source_48            IN NUMBER
92787 --When to Account for Payment Option
92788  , p_source_50            IN VARCHAR2
92789 --Accounting Reversal Indicator
92790  , p_source_52            IN VARCHAR2
92791 --Business Flow Accounts Payable Application Identifier
92792  , p_source_54            IN NUMBER
92793 --Distribution Link Type
92794  , p_source_60            IN VARCHAR2
92795 --Override Accounted Amount Indicator
92796  , p_source_64            IN VARCHAR2
92797  , p_source_64_meaning    IN VARCHAR2
92798 --Third Party Type
92799  , p_source_67            IN VARCHAR2
92800 --Invoice Distribution Tax Line Identifier
92801  , p_source_69            IN NUMBER
92802 --Invoice Distribution Summary Tax Line Identifier
92803  , p_source_70            IN NUMBER
92804 --Invoice Distribution Tax Distribution Identifier from Tax
92805  , p_source_77            IN NUMBER
92806 --Prepayment Distribution Type
92807  , p_source_78            IN VARCHAR2
92808 --Recipient Invoice Distribution Type
92809  , p_source_79            IN VARCHAR2
92810  , p_source_79_meaning    IN VARCHAR2
92811 --Prepayment Application Distribution Identifier
92812  , p_source_82            IN NUMBER
92813 --Invoice Identifier
92814  , p_source_83            IN NUMBER
92815 --Business Flow Prepayment Invoice Distribution Type
92816  , p_source_84            IN VARCHAR2
92817 --Business Flow Prepayment Invoice Entity Code
92818  , p_source_85            IN VARCHAR2
92819 --Business Flow Prepayment Invoice Distribution Identifier
92820  , p_source_86            IN NUMBER
92821 --Business Flow Prepayment Invoice Identifier
92822  , p_source_87            IN NUMBER
92823 --Upgrade Encumbrance Credit Account Class
92824  , p_source_88            IN VARCHAR2
92825 --Payables Encumbrance Upgrade Credit Account
92826  , p_source_89            IN NUMBER
92827 --Payables Encumbrance Upgrade Credit Amount
92828  , p_source_90            IN NUMBER
92829 --Invoice Currency Code
92830  , p_source_91            IN VARCHAR2
92831 --Payables Encumbrance Upgrade Credit Base Amount
92832  , p_source_92            IN NUMBER
92833 --Upgrade Encumbrance Debit Account Class
92834  , p_source_93            IN VARCHAR2
92835 --Payables Encumbrance Upgrade Debit Account
92836  , p_source_94            IN NUMBER
92837 --Payables Encumbrance Upgrade Debit Amount
92838  , p_source_95            IN NUMBER
92839 --Payables Encumbrance Upgrade Debit Base Amount
92840  , p_source_96            IN NUMBER
92841 --Payables Encumbrance Upgrade Option
92842  , p_source_97            IN VARCHAR2
92843 --Prepayment Distribution Amount
92844  , p_source_98            IN NUMBER
92848  , p_source_102            IN VARCHAR2
92845 --Deferred Accounting End Date
92846  , p_source_101            IN DATE
92847 --Deferred Accounting Option
92849 --Deferred Accounting Start Date
92850  , p_source_103            IN DATE
92851 --Invoice Supplier Identifier
92852  , p_source_104            IN NUMBER
92853 --Invoice Supplier Site Identifier
92854  , p_source_105            IN NUMBER
92855 --Identifier of the Prepayment Application Reversed
92856  , p_source_106            IN NUMBER
92857 --Payables Upgrade Credit Encumbrance Type Identifier
92858  , p_source_107            IN NUMBER
92859 --Payables Upgrade Debit Encumbrance Type Identifier
92860  , p_source_108            IN NUMBER
92861 --Prepayment Payment Currency Code
92862  , p_source_109            IN VARCHAR2
92863 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
92864  , p_source_110            IN NUMBER
92865 --Accrue on Receipt Option
92866  , p_source_111            IN VARCHAR2
92867  , p_source_111_meaning    IN VARCHAR2
92868 --Prepayment Payment Exchange Date
92869  , p_source_128            IN DATE
92870 --Prepayment Payment Exchange Rate
92871  , p_source_129            IN NUMBER
92872 --Prepayment Payment Exchange Rate Type
92873  , p_source_130            IN VARCHAR2
92874 )
92875 IS
92876 
92877 l_component_type              VARCHAR2(80);
92878 l_component_code              VARCHAR2(30);
92879 l_component_type_code         VARCHAR2(1);
92880 l_component_appl_id           INTEGER;
92881 l_amb_context_code            VARCHAR2(30);
92882 l_entity_code                 VARCHAR2(30);
92883 l_event_class_code            VARCHAR2(30);
92884 l_ae_header_id                NUMBER;
92885 l_event_type_code             VARCHAR2(30);
92886 l_line_definition_code        VARCHAR2(30);
92887 l_line_definition_owner_code  VARCHAR2(1);
92888 --
92889 -- adr variables
92890 l_segment                     VARCHAR2(30);
92891 l_ccid                        NUMBER;
92892 l_adr_transaction_coa_id      NUMBER;
92893 l_adr_accounting_coa_id       NUMBER;
92894 l_adr_flexfield_segment_code  VARCHAR2(30);
92895 l_adr_flex_value_set_id       NUMBER;
92896 l_adr_value_type_code         VARCHAR2(30);
92897 l_adr_value_combination_id    NUMBER;
92898 l_adr_value_segment_code      VARCHAR2(30);
92899 
92900 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
92901 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
92902 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
92903 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
92904 
92905 -- 4262811 Variables ------------------------------------------------------------------------------------------
92906 l_entered_amt_idx             NUMBER;
92907 l_accted_amt_idx              NUMBER;
92908 l_acc_rev_flag                VARCHAR2(1);
92909 l_accrual_line_num            NUMBER;
92910 l_tmp_amt                     NUMBER;
92911 l_acc_rev_natural_side_code   VARCHAR2(1);
92912 
92913 l_num_entries                 NUMBER;
92914 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
92915 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
92916 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
92917 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
92918 l_recog_line_1                NUMBER;
92919 l_recog_line_2                NUMBER;
92920 
92921 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
92922 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
92923 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
92924 
92925 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
92926 
92927 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
92928 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
92929 
92930 ---------------------------------------------------------------------------------------------------------------
92931 
92932 
92933 --
92934 -- bulk performance
92935 --
92936 l_balance_type_code           VARCHAR2(1);
92937 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
92938 l_log_module                  VARCHAR2(240);
92939 
92940 --
92941 -- Upgrade strategy
92942 --
92943 l_actual_upg_option           VARCHAR2(1);
92944 l_enc_upg_option           VARCHAR2(1);
92945 
92946 --
92947 BEGIN
92948 --
92949 IF g_log_enabled THEN
92950       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_161';
92951 END IF;
92952 --
92953 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92954 
92955       trace
92956          (p_msg      => 'BEGIN of AcctLineType_161'
92957          ,p_level    => C_LEVEL_PROCEDURE
92958          ,p_module   => l_log_module);
92959 
92960 END IF;
92961 --
92962 l_component_type             := 'AMB_JLT';
92963 l_component_code             := 'AP_TIPV_PREPAY_PAY_RATE_APP';
92964 l_component_type_code        := 'S';
92965 l_component_appl_id          :=  200;
92966 l_amb_context_code           := 'DEFAULT';
92967 l_entity_code                := 'AP_INVOICES';
92968 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
92969 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
92970 l_line_definition_owner_code := 'S';
92971 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
92972 --
92973 l_balance_type_code          := 'A';
92974 l_segment                     := NULL;
92978 l_adr_flexfield_segment_code  := NULL;
92975 l_ccid                        := NULL;
92976 l_adr_transaction_coa_id      := NULL;
92977 l_adr_accounting_coa_id       := NULL;
92979 l_adr_flex_value_set_id       := NULL;
92980 l_adr_value_type_code         := NULL;
92981 l_adr_value_combination_id    := NULL;
92982 l_adr_value_segment_code      := NULL;
92983 
92984 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
92985 l_bflow_class_code           := '';    -- 4219869 Business Flow
92986 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
92987 l_budgetary_control_flag     := 'N';
92988 
92989 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
92990 l_bflow_applied_to_amt       := NULL; -- 5132302
92991 l_entered_amt_idx            := NULL;          -- 4262811
92992 l_accted_amt_idx             := NULL;          -- 4262811
92993 l_acc_rev_flag               := NULL;          -- 4262811
92994 l_accrual_line_num           := NULL;          -- 4262811
92995 l_tmp_amt                    := NULL;          -- 4262811
92996 --
92997  
92998 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
92999     l_balance_type_code <> 'B' THEN
93000 IF NVL(p_source_50,'
93001 ') <>  'CLEAR_CLEAR' AND 
93002 (NVL(p_source_78,'
93003 ') =  'PREPAY APPL' OR 
93004 NVL(p_source_78,'
93005 ') =  'PREPAY APPL NONREC TAX' OR 
93006 NVL(p_source_78,'
93007 ') =  'PREPAY APPL REC TAX') AND 
93008 NVL(p_source_79,'
93009 ') =  'TIPV' AND 
93010 NVL(p_source_111,'
93011 ') =  'Y'
93012  THEN 
93013 
93014    --
93015    XLA_AE_LINES_PKG.SetNewLine;
93016 
93017    p_balance_type_code          := l_balance_type_code;
93018    -- set the flag so later we will know whether the gain loss line needs to be created
93019    
93020    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
93021      p_actual_flag :='A';
93022    END IF;
93023 
93024    --
93025    -- bulk performance
93026    --
93027    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
93028                                       p_header_num   => 0); -- 4262811
93029    --
93030    -- set accounting line options
93031    --
93032    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
93033            p_natural_side_code          => 'C'
93034          , p_gain_or_loss_flag          => 'N'
93035          , p_gl_transfer_mode_code      => 'S'
93036          , p_acct_entry_type_code       => 'A'
93037          , p_switch_side_flag           => 'Y'
93038          , p_merge_duplicate_code       => 'A'
93039          );
93040    --
93041    l_acc_rev_natural_side_code := 'D';  -- 4262811
93042    -- 
93043    --
93044    -- set accounting line type info
93045    --
93046    xla_ae_lines_pkg.SetAcctLineType
93047       (p_component_type             => l_component_type
93048       ,p_event_type_code            => l_event_type_code
93049       ,p_line_definition_owner_code => l_line_definition_owner_code
93050       ,p_line_definition_code       => l_line_definition_code
93051       ,p_accounting_line_code       => l_component_code
93052       ,p_accounting_line_type_code  => l_component_type_code
93053       ,p_accounting_line_appl_id    => l_component_appl_id
93054       ,p_amb_context_code           => l_amb_context_code
93055       ,p_entity_code                => l_entity_code
93056       ,p_event_class_code           => l_event_class_code);
93057    --
93058    -- set accounting class
93059    --
93060    xla_ae_lines_pkg.SetAcctClass(
93061            p_accounting_class_code  => 'TIPV'
93062          , p_ae_header_id           => l_ae_header_id
93063          );
93064 
93065    --
93066    -- set rounding class
93067    --
93068    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
93069                       'TIPV';
93070 
93071    --
93072    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
93073    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
93074    --
93075    -- bulk performance
93076    --
93077    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
93078 
93079    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
93080       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
93081 
93082    -- 4955764
93083    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93084       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
93085 
93086    -- 4458381 Public Sector Enh
93087    
93088    --
93089    -- set accounting attributes for the line type
93090    --
93091    l_entered_amt_idx := 25;
93092    l_accted_amt_idx  := 30;
93093    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
93094    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
93095    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
93096    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
93097    l_rec_acct_attrs.array_num_value(2)  := 
93098 xla_ae_sources_pkg.GetSystemSourceNum(
93099    p_source_code           => 'XLA_EVENT_APPL_ID'
93100  , p_source_type_code      => 'Y'
93101  , p_source_application_id =>  602
93102 );
93103    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
93104    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
93108    p_source_code           => 'XLA_ENTITY_CODE'
93105    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
93106    l_rec_acct_attrs.array_char_value(4)  := 
93107 xla_ae_sources_pkg.GetSystemSourceChar(
93109  , p_source_type_code      => 'Y'
93110  , p_source_application_id =>  602
93111 );
93112    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
93113    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
93114    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
93115    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
93116    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
93117    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
93118    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
93119    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
93120    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
93121    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
93122    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
93123    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
93124    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
93125    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
93126    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
93127    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
93128    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
93129    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
93130    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
93131    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
93132    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
93133    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
93134    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
93135    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
93136    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
93137    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
93138    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
93139    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
93140    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
93141    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
93142    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
93143    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
93144    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
93145    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
93146    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
93147    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
93148    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
93149    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
93150    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
93151    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
93152    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
93153    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
93154    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
93155    l_rec_acct_attrs.array_char_value(26)  := p_source_109;
93156    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
93157    l_rec_acct_attrs.array_date_value(27)  := p_source_128;
93158    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
93159    l_rec_acct_attrs.array_num_value(28)  := p_source_129;
93160    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
93161    l_rec_acct_attrs.array_char_value(29)  := p_source_130;
93162    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
93163    l_rec_acct_attrs.array_num_value(30)  := p_source_110;
93164    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
93165    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
93166    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
93167    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
93168    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
93169    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
93170    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
93171    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
93172    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
93173    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
93174    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
93175    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
93176    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
93177    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
93178    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
93179    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
93180    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
93181    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
93182    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
93183    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
93184    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
93185    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
93186    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
93187    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
93188    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
93189    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
93193    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
93190    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
93191    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
93192 
93194    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
93195 
93196    ---------------------------------------------------------------------------------------------------------------
93197    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
93198    ---------------------------------------------------------------------------------------------------------------
93199    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
93200 
93201    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93202    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93203 
93204    IF xla_accounting_cache_pkg.GetValueChar
93205          (p_source_code         => 'LEDGER_CATEGORY_CODE'
93206          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
93207    AND l_bflow_method_code = 'PRIOR_ENTRY'
93208 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
93209    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
93210          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
93211        )
93212    THEN
93213          xla_ae_lines_pkg.BflowUpgEntry
93214            (p_business_method_code    => l_bflow_method_code
93215            ,p_business_class_code     => l_bflow_class_code
93216            ,p_balance_type            => l_balance_type_code);
93217    ELSE
93218       NULL;
93219 -- No business flow processing for business flow method of NONE.
93220    END IF;
93221 
93222    --
93223    -- call analytical criteria
93224    --
93225    
93226    --
93227    -- call description
93228    --
93229    -- No description or it is inherited.
93230    --
93231    -- call ADRs
93232    -- Bug 4922099
93233    --
93234    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93235         (NVL(l_actual_upg_option, 'N') = 'O') OR
93236         (NVL(l_enc_upg_option, 'N') = 'O')
93237       )
93238    THEN
93239    NULL;
93240    --
93241    --
93242    
93243   l_ccid := AcctDerRule_35(
93244            p_application_id           => p_application_id
93245          , p_ae_header_id             => l_ae_header_id 
93246 , p_source_48 => p_source_48
93247          , x_transaction_coa_id       => l_adr_transaction_coa_id
93248          , x_accounting_coa_id        => l_adr_accounting_coa_id
93249          , x_value_type_code          => l_adr_value_type_code
93250          , p_side                     => 'NA'
93251    );
93252 
93253    xla_ae_lines_pkg.set_ccid(
93254     p_code_combination_id          => l_ccid
93255   , p_value_type_code              => l_adr_value_type_code
93256   , p_transaction_coa_id           => l_adr_transaction_coa_id
93257   , p_accounting_coa_id            => l_adr_accounting_coa_id
93258   , p_adr_code                     => 'AP_RECP_INV_DIST'
93259   , p_adr_type_code                => 'S'
93260   , p_component_type               => l_component_type
93261   , p_component_code               => l_component_code
93262   , p_component_type_code          => l_component_type_code
93263   , p_component_appl_id            => l_component_appl_id
93264   , p_amb_context_code             => l_amb_context_code
93265   , p_side                         => 'NA'
93266   );
93267 
93268 
93269    --
93270    --
93271    END IF;
93272    --
93273    -- Bug 4922099
93274    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
93275           (NVL(l_enc_upg_option, 'N') = 'O')
93276         ) AND
93277         (l_bflow_method_code = 'PRIOR_ENTRY')
93278       )
93279    THEN
93280       IF
93281       --
93282       1 = 2
93283       --
93284       THEN
93285       xla_accounting_err_pkg.build_message
93286                                     (p_appli_s_name            => 'XLA'
93287                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93288                                     ,p_token_1                 => 'LINE_NUMBER'
93289                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
93290                                     ,p_token_2                 => 'LINE_TYPE_NAME'
93291                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
93292                                                                              l_component_type
93293                                                                             ,l_component_code
93294                                                                             ,l_component_type_code
93295                                                                             ,l_component_appl_id
93296                                                                             ,l_amb_context_code
93297                                                                             ,l_entity_code
93298                                                                             ,l_event_class_code
93299                                                                            )
93300                                     ,p_token_3                 => 'OWNER'
93304                                                                          )
93301                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
93302                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
93303                                                                           ,p_lookup_code    => l_component_type_code
93305                                     ,p_token_4                 => 'PRODUCT_NAME'
93306                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
93307                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
93308                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
93309                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
93310                                     ,p_ae_header_id            =>  NULL
93311                                        );
93312 
93313         IF (C_LEVEL_ERROR>= g_log_level) THEN
93314                  trace
93315                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93316                       ,p_level    => C_LEVEL_ERROR
93317                       ,p_module   => l_log_module);
93318         END IF;
93319       END IF;
93320    END IF;
93321    --
93322    --
93323    ------------------------------------------------------------------------------------------------
93324    -- 4219869 Business Flow
93325    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
93326    -- Prior Entry.  Currently, the following code is always generated.
93327    ------------------------------------------------------------------------------------------------
93328    XLA_AE_LINES_PKG.ValidateCurrentLine;
93329 
93330    ------------------------------------------------------------------------------------
93331    -- 4219869 Business Flow
93332    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
93333    ------------------------------------------------------------------------------------
93334    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93335 
93336    ----------------------------------------------------------------------------------
93337    -- 4219869 Business Flow
93338    -- Update journal entry status -- Need to generate this within IF <condition>
93339    ----------------------------------------------------------------------------------
93340    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93341          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
93342          ,p_balance_type_code => l_balance_type_code
93343          );
93344 
93345    -------------------------------------------------------------------------------------------
93346    -- 4262811 - Generate the Accrual Reversal lines
93347    -------------------------------------------------------------------------------------------
93348    BEGIN
93349       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
93350                               (g_array_event(p_event_id).array_value_num('header_index'));
93351       IF l_acc_rev_flag IS NULL THEN
93352          l_acc_rev_flag := 'N';
93353       END IF;
93354    EXCEPTION
93355       WHEN OTHERS THEN
93356          l_acc_rev_flag := 'N';
93357    END;
93358    --
93359    IF (l_acc_rev_flag = 'Y') THEN
93360 
93361        -- 4645092  ------------------------------------------------------------------------------
93362        -- To allow MPA report to determine if it should generate report process
93363        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
93364        ------------------------------------------------------------------------------------------
93365 
93366        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
93367        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
93368    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
93369    -- call ADRs
93370    -- Bug 4922099
93371    --
93372    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93373         (NVL(l_actual_upg_option, 'N') = 'O') OR
93374         (NVL(l_enc_upg_option, 'N') = 'O')
93375       )
93376    THEN
93377    NULL;
93378    --
93379    --
93380    
93381   l_ccid := AcctDerRule_35(
93382            p_application_id           => p_application_id
93383          , p_ae_header_id             => l_ae_header_id 
93384 , p_source_48 => p_source_48
93385          , x_transaction_coa_id       => l_adr_transaction_coa_id
93386          , x_accounting_coa_id        => l_adr_accounting_coa_id
93387          , x_value_type_code          => l_adr_value_type_code
93388          , p_side                     => 'NA'
93389    );
93390 
93391    xla_ae_lines_pkg.set_ccid(
93392     p_code_combination_id          => l_ccid
93393   , p_value_type_code              => l_adr_value_type_code
93394   , p_transaction_coa_id           => l_adr_transaction_coa_id
93395   , p_accounting_coa_id            => l_adr_accounting_coa_id
93396   , p_adr_code                     => 'AP_RECP_INV_DIST'
93397   , p_adr_type_code                => 'S'
93398   , p_component_type               => l_component_type
93399   , p_component_code               => l_component_code
93400   , p_component_type_code          => l_component_type_code
93401   , p_component_appl_id            => l_component_appl_id
93402   , p_amb_context_code             => l_amb_context_code
93406 
93403   , p_side                         => 'NA'
93404   );
93405 
93407    --
93408    --
93409    END IF;
93410 
93411        --
93412        -- Update the line information that should be overwritten
93413        --
93414        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
93415                                          p_header_num   => 1);
93416        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
93417 
93418        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
93419 
93420        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
93421           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
93422        END IF;
93423 
93424       --
93425       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
93426       --
93427       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
93428           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
93429       ELSE
93430           ---------------------------------------------------------------------------------------------------
93431           -- 4262811a Switch Sign
93432           ---------------------------------------------------------------------------------------------------
93433           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
93434           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93435                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93436           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93437                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93438           -- 5132302
93439           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
93440                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93441 
93442       END IF;
93443 
93444       -- 4955764
93445       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93446       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
93447 
93448 
93449       XLA_AE_LINES_PKG.ValidateCurrentLine;
93450       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93451 
93452       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93453                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
93454                ,p_balance_type_code => l_balance_type_code);
93455 
93456    END IF;
93457 
93458    -----------------------------------------------------------------------------------------
93459    -- 4262811 Multiperiod Accounting
93460    -----------------------------------------------------------------------------------------
93461      -- No MPA option is assigned.
93462 
93463 
93464 END IF;
93465 END IF;
93466 --
93467 
93468 --
93469 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93470    trace
93471       (p_msg      => 'END of AcctLineType_161'
93472       ,p_level    => C_LEVEL_PROCEDURE
93473       ,p_module   => l_log_module);
93474 END IF;
93475 --
93476 EXCEPTION
93477   WHEN xla_exceptions_pkg.application_exception THEN
93478       RAISE;
93479   WHEN OTHERS THEN
93480        xla_exceptions_pkg.raise_message
93481            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_161');
93482 END AcctLineType_161;
93483 --
93484 
93485 ---------------------------------------
93486 --
93487 -- PRIVATE FUNCTION
93488 --         AcctLineType_162
93489 --
93490 ---------------------------------------
93491 PROCEDURE AcctLineType_162 (
93492   p_application_id        IN NUMBER
93493  ,p_event_id              IN NUMBER
93494  ,p_calculate_acctd_flag  IN VARCHAR2
93495  ,p_calculate_g_l_flag    IN VARCHAR2
93496  ,p_actual_flag           IN OUT VARCHAR2
93497  ,p_balance_type_code     OUT VARCHAR2
93498  ,p_gain_or_loss_ref      OUT VARCHAR2
93499  
93500 --Recipient Invoice Distribution Account
93501  , p_source_48            IN NUMBER
93502 --When to Account for Payment Option
93503  , p_source_50            IN VARCHAR2
93504 --Accounting Reversal Indicator
93505  , p_source_52            IN VARCHAR2
93506 --Business Flow Accounts Payable Application Identifier
93507  , p_source_54            IN NUMBER
93508 --Distribution Link Type
93509  , p_source_60            IN VARCHAR2
93510 --Override Accounted Amount Indicator
93511  , p_source_64            IN VARCHAR2
93512  , p_source_64_meaning    IN VARCHAR2
93513 --Third Party Type
93514  , p_source_67            IN VARCHAR2
93515 --Invoice Distribution Tax Line Identifier
93516  , p_source_69            IN NUMBER
93517 --Invoice Distribution Summary Tax Line Identifier
93518  , p_source_70            IN NUMBER
93519 --Invoice Distribution Tax Distribution Identifier from Tax
93520  , p_source_77            IN NUMBER
93521 --Prepayment Distribution Type
93522  , p_source_78            IN VARCHAR2
93523 --Recipient Invoice Distribution Type
93524  , p_source_79            IN VARCHAR2
93525  , p_source_79_meaning    IN VARCHAR2
93529  , p_source_83            IN NUMBER
93526 --Prepayment Application Distribution Identifier
93527  , p_source_82            IN NUMBER
93528 --Invoice Identifier
93530 --Business Flow Prepayment Invoice Distribution Type
93531  , p_source_84            IN VARCHAR2
93532 --Business Flow Prepayment Invoice Entity Code
93533  , p_source_85            IN VARCHAR2
93534 --Business Flow Prepayment Invoice Distribution Identifier
93535  , p_source_86            IN NUMBER
93536 --Business Flow Prepayment Invoice Identifier
93537  , p_source_87            IN NUMBER
93538 --Upgrade Encumbrance Credit Account Class
93539  , p_source_88            IN VARCHAR2
93540 --Payables Encumbrance Upgrade Credit Account
93541  , p_source_89            IN NUMBER
93542 --Payables Encumbrance Upgrade Credit Amount
93543  , p_source_90            IN NUMBER
93544 --Invoice Currency Code
93545  , p_source_91            IN VARCHAR2
93546 --Payables Encumbrance Upgrade Credit Base Amount
93547  , p_source_92            IN NUMBER
93548 --Upgrade Encumbrance Debit Account Class
93549  , p_source_93            IN VARCHAR2
93550 --Payables Encumbrance Upgrade Debit Account
93551  , p_source_94            IN NUMBER
93552 --Payables Encumbrance Upgrade Debit Amount
93553  , p_source_95            IN NUMBER
93554 --Payables Encumbrance Upgrade Debit Base Amount
93555  , p_source_96            IN NUMBER
93556 --Payables Encumbrance Upgrade Option
93557  , p_source_97            IN VARCHAR2
93558 --Prepayment Distribution Amount
93559  , p_source_98            IN NUMBER
93560 --Prepayment Clearing Currency Code
93561  , p_source_99            IN VARCHAR2
93562 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
93563  , p_source_100            IN NUMBER
93564 --Deferred Accounting End Date
93565  , p_source_101            IN DATE
93566 --Deferred Accounting Option
93567  , p_source_102            IN VARCHAR2
93568 --Deferred Accounting Start Date
93569  , p_source_103            IN DATE
93570 --Invoice Supplier Identifier
93571  , p_source_104            IN NUMBER
93572 --Invoice Supplier Site Identifier
93573  , p_source_105            IN NUMBER
93574 --Identifier of the Prepayment Application Reversed
93575  , p_source_106            IN NUMBER
93576 --Payables Upgrade Credit Encumbrance Type Identifier
93577  , p_source_107            IN NUMBER
93578 --Payables Upgrade Debit Encumbrance Type Identifier
93579  , p_source_108            IN NUMBER
93580 --Accrue on Receipt Option
93581  , p_source_111            IN VARCHAR2
93582  , p_source_111_meaning    IN VARCHAR2
93583 --Prepayment Clearing Exchange Date
93584  , p_source_125            IN DATE
93585 --Prepayment Clearing Exchange Rate
93586  , p_source_126            IN NUMBER
93587 --Prepayment Clearing Exchange Rate Type
93588  , p_source_127            IN VARCHAR2
93589 )
93590 IS
93591 
93592 l_component_type              VARCHAR2(80);
93593 l_component_code              VARCHAR2(30);
93594 l_component_type_code         VARCHAR2(1);
93595 l_component_appl_id           INTEGER;
93596 l_amb_context_code            VARCHAR2(30);
93597 l_entity_code                 VARCHAR2(30);
93598 l_event_class_code            VARCHAR2(30);
93599 l_ae_header_id                NUMBER;
93600 l_event_type_code             VARCHAR2(30);
93601 l_line_definition_code        VARCHAR2(30);
93602 l_line_definition_owner_code  VARCHAR2(1);
93603 --
93604 -- adr variables
93605 l_segment                     VARCHAR2(30);
93606 l_ccid                        NUMBER;
93607 l_adr_transaction_coa_id      NUMBER;
93608 l_adr_accounting_coa_id       NUMBER;
93609 l_adr_flexfield_segment_code  VARCHAR2(30);
93610 l_adr_flex_value_set_id       NUMBER;
93611 l_adr_value_type_code         VARCHAR2(30);
93612 l_adr_value_combination_id    NUMBER;
93613 l_adr_value_segment_code      VARCHAR2(30);
93614 
93615 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
93616 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
93617 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
93618 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
93619 
93620 -- 4262811 Variables ------------------------------------------------------------------------------------------
93621 l_entered_amt_idx             NUMBER;
93622 l_accted_amt_idx              NUMBER;
93623 l_acc_rev_flag                VARCHAR2(1);
93624 l_accrual_line_num            NUMBER;
93625 l_tmp_amt                     NUMBER;
93626 l_acc_rev_natural_side_code   VARCHAR2(1);
93627 
93628 l_num_entries                 NUMBER;
93629 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
93630 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
93631 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
93632 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
93633 l_recog_line_1                NUMBER;
93634 l_recog_line_2                NUMBER;
93635 
93636 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
93637 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
93638 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
93639 
93640 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
93641 
93642 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
93643 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
93647 
93644 
93645 ---------------------------------------------------------------------------------------------------------------
93646 
93648 --
93649 -- bulk performance
93650 --
93651 l_balance_type_code           VARCHAR2(1);
93652 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
93653 l_log_module                  VARCHAR2(240);
93654 
93655 --
93656 -- Upgrade strategy
93657 --
93658 l_actual_upg_option           VARCHAR2(1);
93659 l_enc_upg_option           VARCHAR2(1);
93660 
93661 --
93662 BEGIN
93663 --
93664 IF g_log_enabled THEN
93665       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_162';
93666 END IF;
93667 --
93668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93669 
93670       trace
93671          (p_msg      => 'BEGIN of AcctLineType_162'
93672          ,p_level    => C_LEVEL_PROCEDURE
93673          ,p_module   => l_log_module);
93674 
93675 END IF;
93676 --
93677 l_component_type             := 'AMB_JLT';
93678 l_component_code             := 'AP_TRV_PREPAY_CLR_RATE_APP';
93679 l_component_type_code        := 'S';
93680 l_component_appl_id          :=  200;
93681 l_amb_context_code           := 'DEFAULT';
93682 l_entity_code                := 'AP_INVOICES';
93683 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
93684 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
93685 l_line_definition_owner_code := 'S';
93686 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
93687 --
93688 l_balance_type_code          := 'A';
93689 l_segment                     := NULL;
93690 l_ccid                        := NULL;
93691 l_adr_transaction_coa_id      := NULL;
93692 l_adr_accounting_coa_id       := NULL;
93693 l_adr_flexfield_segment_code  := NULL;
93694 l_adr_flex_value_set_id       := NULL;
93695 l_adr_value_type_code         := NULL;
93696 l_adr_value_combination_id    := NULL;
93697 l_adr_value_segment_code      := NULL;
93698 
93699 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
93700 l_bflow_class_code           := '';    -- 4219869 Business Flow
93701 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
93702 l_budgetary_control_flag     := 'N';
93703 
93704 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
93705 l_bflow_applied_to_amt       := NULL; -- 5132302
93706 l_entered_amt_idx            := NULL;          -- 4262811
93707 l_accted_amt_idx             := NULL;          -- 4262811
93708 l_acc_rev_flag               := NULL;          -- 4262811
93709 l_accrual_line_num           := NULL;          -- 4262811
93710 l_tmp_amt                    := NULL;          -- 4262811
93711 --
93712  
93713 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
93714     l_balance_type_code <> 'B' THEN
93715 IF NVL(p_source_50,'
93716 ') =  'CLEAR_CLEAR' AND 
93717 (NVL(p_source_78,'
93718 ') =  'PREPAY APPL' OR 
93719 NVL(p_source_78,'
93720 ') =  'PREPAY APPL REC TAX' OR 
93721 NVL(p_source_78,'
93722 ') =  'PREPAY APPL NONREC TAX') AND 
93723 NVL(p_source_79,'
93724 ') =  'TRV' AND 
93725 NVL(p_source_111,'
93726 ') =  'Y'
93727  THEN 
93728 
93729    --
93730    XLA_AE_LINES_PKG.SetNewLine;
93731 
93732    p_balance_type_code          := l_balance_type_code;
93733    -- set the flag so later we will know whether the gain loss line needs to be created
93734    
93735    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
93736      p_actual_flag :='A';
93737    END IF;
93738 
93739    --
93740    -- bulk performance
93741    --
93742    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
93743                                       p_header_num   => 0); -- 4262811
93744    --
93745    -- set accounting line options
93746    --
93747    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
93748            p_natural_side_code          => 'C'
93749          , p_gain_or_loss_flag          => 'N'
93750          , p_gl_transfer_mode_code      => 'S'
93751          , p_acct_entry_type_code       => 'A'
93752          , p_switch_side_flag           => 'Y'
93753          , p_merge_duplicate_code       => 'A'
93754          );
93755    --
93756    l_acc_rev_natural_side_code := 'D';  -- 4262811
93757    -- 
93758    --
93759    -- set accounting line type info
93760    --
93761    xla_ae_lines_pkg.SetAcctLineType
93762       (p_component_type             => l_component_type
93763       ,p_event_type_code            => l_event_type_code
93764       ,p_line_definition_owner_code => l_line_definition_owner_code
93765       ,p_line_definition_code       => l_line_definition_code
93766       ,p_accounting_line_code       => l_component_code
93767       ,p_accounting_line_type_code  => l_component_type_code
93768       ,p_accounting_line_appl_id    => l_component_appl_id
93769       ,p_amb_context_code           => l_amb_context_code
93770       ,p_entity_code                => l_entity_code
93771       ,p_event_class_code           => l_event_class_code);
93772    --
93773    -- set accounting class
93774    --
93775    xla_ae_lines_pkg.SetAcctClass(
93776            p_accounting_class_code  => 'TRV'
93777          , p_ae_header_id           => l_ae_header_id
93778          );
93779 
93780    --
93781    -- set rounding class
93782    --
93783    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
93784                       'TRV';
93785 
93786    --
93790    -- bulk performance
93787    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
93788    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
93789    --
93791    --
93792    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
93793 
93794    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
93795       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
93796 
93797    -- 4955764
93798    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93799       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
93800 
93801    -- 4458381 Public Sector Enh
93802    
93803    --
93804    -- set accounting attributes for the line type
93805    --
93806    l_entered_amt_idx := 25;
93807    l_accted_amt_idx  := 30;
93808    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
93809    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
93810    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
93811    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
93812    l_rec_acct_attrs.array_num_value(2)  := 
93813 xla_ae_sources_pkg.GetSystemSourceNum(
93814    p_source_code           => 'XLA_EVENT_APPL_ID'
93815  , p_source_type_code      => 'Y'
93816  , p_source_application_id =>  602
93817 );
93818    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
93819    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
93820    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
93821    l_rec_acct_attrs.array_char_value(4)  := 
93822 xla_ae_sources_pkg.GetSystemSourceChar(
93823    p_source_code           => 'XLA_ENTITY_CODE'
93824  , p_source_type_code      => 'Y'
93825  , p_source_application_id =>  602
93826 );
93827    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
93828    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
93829    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
93830    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
93831    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
93832    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
93833    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
93834    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
93835    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
93836    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
93837    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
93838    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
93839    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
93840    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
93841    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
93842    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
93843    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
93844    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
93845    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
93846    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
93847    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
93848    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
93849    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
93850    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
93851    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
93852    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
93853    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
93854    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
93855    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
93856    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
93857    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
93858    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
93859    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
93860    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
93861    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
93862    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
93863    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
93864    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
93865    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
93866    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
93867    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
93868    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
93869    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
93870    l_rec_acct_attrs.array_char_value(26)  := p_source_99;
93871    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
93872    l_rec_acct_attrs.array_date_value(27)  := p_source_125;
93873    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
93874    l_rec_acct_attrs.array_num_value(28)  := p_source_126;
93875    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
93876    l_rec_acct_attrs.array_char_value(29)  := p_source_127;
93877    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
93878    l_rec_acct_attrs.array_num_value(30)  := p_source_100;
93879    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
93883    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
93880    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
93881    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
93882    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
93884    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
93885    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
93886    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
93887    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
93888    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
93889    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
93890    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
93891    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
93892    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
93893    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
93894    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
93895    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
93896    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
93897    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
93898    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
93899    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
93900    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
93901    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
93902    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
93903    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
93904    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
93905    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
93906    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
93907 
93908    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
93909    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
93910 
93911    ---------------------------------------------------------------------------------------------------------------
93912    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
93913    ---------------------------------------------------------------------------------------------------------------
93914    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
93915 
93916    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93917    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93918 
93919    IF xla_accounting_cache_pkg.GetValueChar
93920          (p_source_code         => 'LEDGER_CATEGORY_CODE'
93921          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
93922    AND l_bflow_method_code = 'PRIOR_ENTRY'
93923 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
93924    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
93925          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
93926        )
93927    THEN
93928          xla_ae_lines_pkg.BflowUpgEntry
93929            (p_business_method_code    => l_bflow_method_code
93930            ,p_business_class_code     => l_bflow_class_code
93931            ,p_balance_type            => l_balance_type_code);
93932    ELSE
93933       NULL;
93934 -- No business flow processing for business flow method of NONE.
93935    END IF;
93936 
93937    --
93938    -- call analytical criteria
93939    --
93940    
93941    --
93942    -- call description
93943    --
93944    -- No description or it is inherited.
93945    --
93946    -- call ADRs
93947    -- Bug 4922099
93948    --
93949    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93950         (NVL(l_actual_upg_option, 'N') = 'O') OR
93951         (NVL(l_enc_upg_option, 'N') = 'O')
93952       )
93953    THEN
93954    NULL;
93955    --
93956    --
93957    
93958   l_ccid := AcctDerRule_35(
93959            p_application_id           => p_application_id
93960          , p_ae_header_id             => l_ae_header_id 
93961 , p_source_48 => p_source_48
93962          , x_transaction_coa_id       => l_adr_transaction_coa_id
93963          , x_accounting_coa_id        => l_adr_accounting_coa_id
93964          , x_value_type_code          => l_adr_value_type_code
93965          , p_side                     => 'NA'
93966    );
93967 
93968    xla_ae_lines_pkg.set_ccid(
93969     p_code_combination_id          => l_ccid
93970   , p_value_type_code              => l_adr_value_type_code
93971   , p_transaction_coa_id           => l_adr_transaction_coa_id
93972   , p_accounting_coa_id            => l_adr_accounting_coa_id
93973   , p_adr_code                     => 'AP_RECP_INV_DIST'
93974   , p_adr_type_code                => 'S'
93975   , p_component_type               => l_component_type
93976   , p_component_code               => l_component_code
93977   , p_component_type_code          => l_component_type_code
93978   , p_component_appl_id            => l_component_appl_id
93979   , p_amb_context_code             => l_amb_context_code
93980   , p_side                         => 'NA'
93981   );
93982 
93983 
93984    --
93985    --
93986    END IF;
93987    --
93988    -- Bug 4922099
93989    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
93990           (NVL(l_enc_upg_option, 'N') = 'O')
93991         ) AND
93995       IF
93992         (l_bflow_method_code = 'PRIOR_ENTRY')
93993       )
93994    THEN
93996       --
93997       1 = 2
93998       --
93999       THEN
94000       xla_accounting_err_pkg.build_message
94001                                     (p_appli_s_name            => 'XLA'
94002                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94003                                     ,p_token_1                 => 'LINE_NUMBER'
94004                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
94005                                     ,p_token_2                 => 'LINE_TYPE_NAME'
94006                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
94007                                                                              l_component_type
94008                                                                             ,l_component_code
94009                                                                             ,l_component_type_code
94010                                                                             ,l_component_appl_id
94011                                                                             ,l_amb_context_code
94012                                                                             ,l_entity_code
94013                                                                             ,l_event_class_code
94014                                                                            )
94015                                     ,p_token_3                 => 'OWNER'
94016                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
94017                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
94018                                                                           ,p_lookup_code    => l_component_type_code
94019                                                                          )
94020                                     ,p_token_4                 => 'PRODUCT_NAME'
94021                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
94022                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
94023                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
94024                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
94025                                     ,p_ae_header_id            =>  NULL
94026                                        );
94027 
94028         IF (C_LEVEL_ERROR>= g_log_level) THEN
94029                  trace
94030                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94031                       ,p_level    => C_LEVEL_ERROR
94032                       ,p_module   => l_log_module);
94033         END IF;
94034       END IF;
94035    END IF;
94036    --
94037    --
94038    ------------------------------------------------------------------------------------------------
94039    -- 4219869 Business Flow
94040    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
94041    -- Prior Entry.  Currently, the following code is always generated.
94042    ------------------------------------------------------------------------------------------------
94043    XLA_AE_LINES_PKG.ValidateCurrentLine;
94044 
94045    ------------------------------------------------------------------------------------
94046    -- 4219869 Business Flow
94047    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
94048    ------------------------------------------------------------------------------------
94049    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94050 
94051    ----------------------------------------------------------------------------------
94052    -- 4219869 Business Flow
94053    -- Update journal entry status -- Need to generate this within IF <condition>
94054    ----------------------------------------------------------------------------------
94055    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94056          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
94057          ,p_balance_type_code => l_balance_type_code
94058          );
94059 
94060    -------------------------------------------------------------------------------------------
94061    -- 4262811 - Generate the Accrual Reversal lines
94062    -------------------------------------------------------------------------------------------
94063    BEGIN
94064       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
94065                               (g_array_event(p_event_id).array_value_num('header_index'));
94066       IF l_acc_rev_flag IS NULL THEN
94067          l_acc_rev_flag := 'N';
94068       END IF;
94069    EXCEPTION
94070       WHEN OTHERS THEN
94071          l_acc_rev_flag := 'N';
94072    END;
94073    --
94074    IF (l_acc_rev_flag = 'Y') THEN
94075 
94076        -- 4645092  ------------------------------------------------------------------------------
94077        -- To allow MPA report to determine if it should generate report process
94078        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
94079        ------------------------------------------------------------------------------------------
94080 
94081        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
94082        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
94083    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
94087    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94084    -- call ADRs
94085    -- Bug 4922099
94086    --
94088         (NVL(l_actual_upg_option, 'N') = 'O') OR
94089         (NVL(l_enc_upg_option, 'N') = 'O')
94090       )
94091    THEN
94092    NULL;
94093    --
94094    --
94095    
94096   l_ccid := AcctDerRule_35(
94097            p_application_id           => p_application_id
94098          , p_ae_header_id             => l_ae_header_id 
94099 , p_source_48 => p_source_48
94100          , x_transaction_coa_id       => l_adr_transaction_coa_id
94101          , x_accounting_coa_id        => l_adr_accounting_coa_id
94102          , x_value_type_code          => l_adr_value_type_code
94103          , p_side                     => 'NA'
94104    );
94105 
94106    xla_ae_lines_pkg.set_ccid(
94107     p_code_combination_id          => l_ccid
94108   , p_value_type_code              => l_adr_value_type_code
94109   , p_transaction_coa_id           => l_adr_transaction_coa_id
94110   , p_accounting_coa_id            => l_adr_accounting_coa_id
94111   , p_adr_code                     => 'AP_RECP_INV_DIST'
94112   , p_adr_type_code                => 'S'
94113   , p_component_type               => l_component_type
94114   , p_component_code               => l_component_code
94115   , p_component_type_code          => l_component_type_code
94116   , p_component_appl_id            => l_component_appl_id
94117   , p_amb_context_code             => l_amb_context_code
94118   , p_side                         => 'NA'
94119   );
94120 
94121 
94122    --
94123    --
94124    END IF;
94125 
94126        --
94127        -- Update the line information that should be overwritten
94128        --
94129        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
94130                                          p_header_num   => 1);
94131        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
94132 
94133        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
94134 
94135        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
94136           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
94137        END IF;
94138 
94139       --
94140       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
94141       --
94142       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
94143           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
94144       ELSE
94145           ---------------------------------------------------------------------------------------------------
94146           -- 4262811a Switch Sign
94147           ---------------------------------------------------------------------------------------------------
94148           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
94149           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94150                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94151           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94152                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94153           -- 5132302
94154           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
94155                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94156 
94157       END IF;
94158 
94159       -- 4955764
94160       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94161       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
94162 
94163 
94164       XLA_AE_LINES_PKG.ValidateCurrentLine;
94165       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94166 
94167       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94168                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
94169                ,p_balance_type_code => l_balance_type_code);
94170 
94171    END IF;
94172 
94173    -----------------------------------------------------------------------------------------
94174    -- 4262811 Multiperiod Accounting
94175    -----------------------------------------------------------------------------------------
94176      -- No MPA option is assigned.
94177 
94178 
94179 END IF;
94180 END IF;
94181 --
94182 
94183 --
94184 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94185    trace
94186       (p_msg      => 'END of AcctLineType_162'
94187       ,p_level    => C_LEVEL_PROCEDURE
94188       ,p_module   => l_log_module);
94189 END IF;
94190 --
94191 EXCEPTION
94192   WHEN xla_exceptions_pkg.application_exception THEN
94193       RAISE;
94194   WHEN OTHERS THEN
94195        xla_exceptions_pkg.raise_message
94196            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_162');
94197 END AcctLineType_162;
94198 --
94199 
94200 ---------------------------------------
94201 --
94202 -- PRIVATE FUNCTION
94203 --         AcctLineType_163
94204 --
94205 ---------------------------------------
94206 PROCEDURE AcctLineType_163 (
94210  ,p_calculate_g_l_flag    IN VARCHAR2
94207   p_application_id        IN NUMBER
94208  ,p_event_id              IN NUMBER
94209  ,p_calculate_acctd_flag  IN VARCHAR2
94211  ,p_actual_flag           IN OUT VARCHAR2
94212  ,p_balance_type_code     OUT VARCHAR2
94213  ,p_gain_or_loss_ref      OUT VARCHAR2
94214  
94215 --Recipient Invoice Distribution Account
94216  , p_source_48            IN NUMBER
94217 --When to Account for Payment Option
94218  , p_source_50            IN VARCHAR2
94219 --Accounting Reversal Indicator
94220  , p_source_52            IN VARCHAR2
94221 --Business Flow Accounts Payable Application Identifier
94222  , p_source_54            IN NUMBER
94223 --Distribution Link Type
94224  , p_source_60            IN VARCHAR2
94225 --Override Accounted Amount Indicator
94226  , p_source_64            IN VARCHAR2
94227  , p_source_64_meaning    IN VARCHAR2
94228 --Third Party Type
94229  , p_source_67            IN VARCHAR2
94230 --Invoice Distribution Tax Line Identifier
94231  , p_source_69            IN NUMBER
94232 --Invoice Distribution Summary Tax Line Identifier
94233  , p_source_70            IN NUMBER
94234 --Invoice Distribution Tax Distribution Identifier from Tax
94235  , p_source_77            IN NUMBER
94236 --Prepayment Distribution Type
94237  , p_source_78            IN VARCHAR2
94238 --Recipient Invoice Distribution Type
94239  , p_source_79            IN VARCHAR2
94240  , p_source_79_meaning    IN VARCHAR2
94241 --Prepayment Application Distribution Identifier
94242  , p_source_82            IN NUMBER
94243 --Invoice Identifier
94244  , p_source_83            IN NUMBER
94245 --Business Flow Prepayment Invoice Distribution Type
94246  , p_source_84            IN VARCHAR2
94247 --Business Flow Prepayment Invoice Entity Code
94248  , p_source_85            IN VARCHAR2
94249 --Business Flow Prepayment Invoice Distribution Identifier
94250  , p_source_86            IN NUMBER
94251 --Business Flow Prepayment Invoice Identifier
94252  , p_source_87            IN NUMBER
94253 --Upgrade Encumbrance Credit Account Class
94254  , p_source_88            IN VARCHAR2
94255 --Payables Encumbrance Upgrade Credit Account
94256  , p_source_89            IN NUMBER
94257 --Payables Encumbrance Upgrade Credit Amount
94258  , p_source_90            IN NUMBER
94259 --Invoice Currency Code
94260  , p_source_91            IN VARCHAR2
94261 --Payables Encumbrance Upgrade Credit Base Amount
94262  , p_source_92            IN NUMBER
94263 --Upgrade Encumbrance Debit Account Class
94264  , p_source_93            IN VARCHAR2
94265 --Payables Encumbrance Upgrade Debit Account
94266  , p_source_94            IN NUMBER
94267 --Payables Encumbrance Upgrade Debit Amount
94268  , p_source_95            IN NUMBER
94269 --Payables Encumbrance Upgrade Debit Base Amount
94270  , p_source_96            IN NUMBER
94271 --Payables Encumbrance Upgrade Option
94272  , p_source_97            IN VARCHAR2
94273 --Prepayment Distribution Amount
94274  , p_source_98            IN NUMBER
94275 --Deferred Accounting End Date
94276  , p_source_101            IN DATE
94277 --Deferred Accounting Option
94278  , p_source_102            IN VARCHAR2
94279 --Deferred Accounting Start Date
94280  , p_source_103            IN DATE
94281 --Invoice Supplier Identifier
94282  , p_source_104            IN NUMBER
94283 --Invoice Supplier Site Identifier
94284  , p_source_105            IN NUMBER
94285 --Identifier of the Prepayment Application Reversed
94286  , p_source_106            IN NUMBER
94287 --Payables Upgrade Credit Encumbrance Type Identifier
94288  , p_source_107            IN NUMBER
94289 --Payables Upgrade Debit Encumbrance Type Identifier
94290  , p_source_108            IN NUMBER
94291 --Prepayment Payment Currency Code
94292  , p_source_109            IN VARCHAR2
94293 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
94294  , p_source_110            IN NUMBER
94295 --Accrue on Receipt Option
94296  , p_source_111            IN VARCHAR2
94297  , p_source_111_meaning    IN VARCHAR2
94298 --Prepayment Payment Exchange Date
94299  , p_source_128            IN DATE
94300 --Prepayment Payment Exchange Rate
94301  , p_source_129            IN NUMBER
94302 --Prepayment Payment Exchange Rate Type
94303  , p_source_130            IN VARCHAR2
94304 )
94305 IS
94306 
94307 l_component_type              VARCHAR2(80);
94308 l_component_code              VARCHAR2(30);
94309 l_component_type_code         VARCHAR2(1);
94310 l_component_appl_id           INTEGER;
94311 l_amb_context_code            VARCHAR2(30);
94312 l_entity_code                 VARCHAR2(30);
94313 l_event_class_code            VARCHAR2(30);
94314 l_ae_header_id                NUMBER;
94315 l_event_type_code             VARCHAR2(30);
94316 l_line_definition_code        VARCHAR2(30);
94317 l_line_definition_owner_code  VARCHAR2(1);
94318 --
94319 -- adr variables
94320 l_segment                     VARCHAR2(30);
94321 l_ccid                        NUMBER;
94322 l_adr_transaction_coa_id      NUMBER;
94323 l_adr_accounting_coa_id       NUMBER;
94324 l_adr_flexfield_segment_code  VARCHAR2(30);
94325 l_adr_flex_value_set_id       NUMBER;
94326 l_adr_value_type_code         VARCHAR2(30);
94327 l_adr_value_combination_id    NUMBER;
94328 l_adr_value_segment_code      VARCHAR2(30);
94329 
94330 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
94331 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
94335 -- 4262811 Variables ------------------------------------------------------------------------------------------
94332 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
94333 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
94334 
94336 l_entered_amt_idx             NUMBER;
94337 l_accted_amt_idx              NUMBER;
94338 l_acc_rev_flag                VARCHAR2(1);
94339 l_accrual_line_num            NUMBER;
94340 l_tmp_amt                     NUMBER;
94341 l_acc_rev_natural_side_code   VARCHAR2(1);
94342 
94343 l_num_entries                 NUMBER;
94344 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
94345 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
94346 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
94347 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
94348 l_recog_line_1                NUMBER;
94349 l_recog_line_2                NUMBER;
94350 
94351 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
94352 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
94353 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
94354 
94355 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
94356 
94357 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
94358 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
94359 
94360 ---------------------------------------------------------------------------------------------------------------
94361 
94362 
94363 --
94364 -- bulk performance
94365 --
94366 l_balance_type_code           VARCHAR2(1);
94367 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
94368 l_log_module                  VARCHAR2(240);
94369 
94370 --
94371 -- Upgrade strategy
94372 --
94373 l_actual_upg_option           VARCHAR2(1);
94374 l_enc_upg_option           VARCHAR2(1);
94375 
94376 --
94377 BEGIN
94378 --
94379 IF g_log_enabled THEN
94380       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_163';
94381 END IF;
94382 --
94383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94384 
94385       trace
94386          (p_msg      => 'BEGIN of AcctLineType_163'
94387          ,p_level    => C_LEVEL_PROCEDURE
94388          ,p_module   => l_log_module);
94389 
94390 END IF;
94391 --
94392 l_component_type             := 'AMB_JLT';
94393 l_component_code             := 'AP_TRV_PREPAY_PAY_RATE_APP';
94394 l_component_type_code        := 'S';
94395 l_component_appl_id          :=  200;
94396 l_amb_context_code           := 'DEFAULT';
94397 l_entity_code                := 'AP_INVOICES';
94398 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
94399 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
94400 l_line_definition_owner_code := 'S';
94401 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
94402 --
94403 l_balance_type_code          := 'A';
94404 l_segment                     := NULL;
94405 l_ccid                        := NULL;
94406 l_adr_transaction_coa_id      := NULL;
94407 l_adr_accounting_coa_id       := NULL;
94408 l_adr_flexfield_segment_code  := NULL;
94409 l_adr_flex_value_set_id       := NULL;
94410 l_adr_value_type_code         := NULL;
94411 l_adr_value_combination_id    := NULL;
94412 l_adr_value_segment_code      := NULL;
94413 
94414 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
94415 l_bflow_class_code           := '';    -- 4219869 Business Flow
94416 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
94417 l_budgetary_control_flag     := 'N';
94418 
94419 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
94420 l_bflow_applied_to_amt       := NULL; -- 5132302
94421 l_entered_amt_idx            := NULL;          -- 4262811
94422 l_accted_amt_idx             := NULL;          -- 4262811
94423 l_acc_rev_flag               := NULL;          -- 4262811
94424 l_accrual_line_num           := NULL;          -- 4262811
94425 l_tmp_amt                    := NULL;          -- 4262811
94426 --
94427  
94428 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
94429     l_balance_type_code <> 'B' THEN
94430 IF NVL(p_source_50,'
94431 ') <>  'CLEAR_CLEAR' AND 
94432 (NVL(p_source_78,'
94433 ') =  'PREPAY APPL' OR 
94434 NVL(p_source_78,'
94435 ') =  'PREPAY APPL REC TAX' OR 
94436 NVL(p_source_78,'
94437 ') =  'PREPAY APPL NONREC TAX') AND 
94438 NVL(p_source_79,'
94439 ') =  'TRV' AND 
94440 NVL(p_source_111,'
94441 ') =  'Y'
94442  THEN 
94443 
94444    --
94445    XLA_AE_LINES_PKG.SetNewLine;
94446 
94447    p_balance_type_code          := l_balance_type_code;
94448    -- set the flag so later we will know whether the gain loss line needs to be created
94449    
94450    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
94451      p_actual_flag :='A';
94452    END IF;
94453 
94454    --
94455    -- bulk performance
94456    --
94457    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
94458                                       p_header_num   => 0); -- 4262811
94459    --
94460    -- set accounting line options
94461    --
94462    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
94463            p_natural_side_code          => 'C'
94464          , p_gain_or_loss_flag          => 'N'
94465          , p_gl_transfer_mode_code      => 'S'
94469          );
94466          , p_acct_entry_type_code       => 'A'
94467          , p_switch_side_flag           => 'Y'
94468          , p_merge_duplicate_code       => 'A'
94470    --
94471    l_acc_rev_natural_side_code := 'D';  -- 4262811
94472    -- 
94473    --
94474    -- set accounting line type info
94475    --
94476    xla_ae_lines_pkg.SetAcctLineType
94477       (p_component_type             => l_component_type
94478       ,p_event_type_code            => l_event_type_code
94479       ,p_line_definition_owner_code => l_line_definition_owner_code
94480       ,p_line_definition_code       => l_line_definition_code
94481       ,p_accounting_line_code       => l_component_code
94482       ,p_accounting_line_type_code  => l_component_type_code
94483       ,p_accounting_line_appl_id    => l_component_appl_id
94484       ,p_amb_context_code           => l_amb_context_code
94485       ,p_entity_code                => l_entity_code
94486       ,p_event_class_code           => l_event_class_code);
94487    --
94488    -- set accounting class
94489    --
94490    xla_ae_lines_pkg.SetAcctClass(
94491            p_accounting_class_code  => 'TRV'
94492          , p_ae_header_id           => l_ae_header_id
94493          );
94494 
94495    --
94496    -- set rounding class
94497    --
94498    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
94499                       'TRV';
94500 
94501    --
94502    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
94503    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
94504    --
94505    -- bulk performance
94506    --
94507    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
94508 
94509    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
94510       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
94511 
94512    -- 4955764
94513    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94514       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
94515 
94516    -- 4458381 Public Sector Enh
94517    
94518    --
94519    -- set accounting attributes for the line type
94520    --
94521    l_entered_amt_idx := 25;
94522    l_accted_amt_idx  := 30;
94523    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
94524    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
94525    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
94526    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
94527    l_rec_acct_attrs.array_num_value(2)  := 
94528 xla_ae_sources_pkg.GetSystemSourceNum(
94529    p_source_code           => 'XLA_EVENT_APPL_ID'
94530  , p_source_type_code      => 'Y'
94531  , p_source_application_id =>  602
94532 );
94533    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
94534    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
94535    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
94536    l_rec_acct_attrs.array_char_value(4)  := 
94537 xla_ae_sources_pkg.GetSystemSourceChar(
94538    p_source_code           => 'XLA_ENTITY_CODE'
94539  , p_source_type_code      => 'Y'
94540  , p_source_application_id =>  602
94541 );
94542    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
94543    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
94544    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
94545    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
94546    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
94547    l_rec_acct_attrs.array_num_value(7)  := p_source_54;
94548    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
94549    l_rec_acct_attrs.array_char_value(8)  := p_source_84;
94550    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
94551    l_rec_acct_attrs.array_char_value(9)  := p_source_85;
94552    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
94553    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_86);
94554    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
94555    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_87);
94556    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
94557    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_82);
94558    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
94559    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
94560    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
94561    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
94562    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
94563    l_rec_acct_attrs.array_num_value(15)  := p_source_89;
94564    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
94565    l_rec_acct_attrs.array_num_value(16)  := p_source_90;
94566    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
94567    l_rec_acct_attrs.array_char_value(17)  := p_source_91;
94568    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
94569    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
94570    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
94571    l_rec_acct_attrs.array_char_value(19)  := p_source_93;
94572    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
94576    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
94573    l_rec_acct_attrs.array_num_value(20)  := p_source_94;
94574    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
94575    l_rec_acct_attrs.array_num_value(21)  := p_source_95;
94577    l_rec_acct_attrs.array_char_value(22)  := p_source_91;
94578    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
94579    l_rec_acct_attrs.array_num_value(23)  := p_source_96;
94580    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
94581    l_rec_acct_attrs.array_char_value(24)  := p_source_97;
94582    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
94583    l_rec_acct_attrs.array_num_value(25)  := p_source_98;
94584    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
94585    l_rec_acct_attrs.array_char_value(26)  := p_source_109;
94586    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
94587    l_rec_acct_attrs.array_date_value(27)  := p_source_128;
94588    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
94589    l_rec_acct_attrs.array_num_value(28)  := p_source_129;
94590    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
94591    l_rec_acct_attrs.array_char_value(29)  := p_source_130;
94592    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
94593    l_rec_acct_attrs.array_num_value(30)  := p_source_110;
94594    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
94595    l_rec_acct_attrs.array_date_value(31)  := p_source_101;
94596    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
94597    l_rec_acct_attrs.array_char_value(32)  := p_source_102;
94598    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
94599    l_rec_acct_attrs.array_date_value(33)  := p_source_103;
94600    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
94601    l_rec_acct_attrs.array_char_value(34)  := p_source_64;
94602    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
94603    l_rec_acct_attrs.array_num_value(35)  := p_source_104;
94604    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
94605    l_rec_acct_attrs.array_num_value(36)  := p_source_105;
94606    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
94607    l_rec_acct_attrs.array_char_value(37)  := p_source_67;
94608    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
94609    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_106);
94610    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
94611    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
94612    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
94613    l_rec_acct_attrs.array_num_value(40)  := p_source_69;
94614    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
94615    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
94616    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
94617    l_rec_acct_attrs.array_num_value(42)  := p_source_70;
94618    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
94619    l_rec_acct_attrs.array_num_value(43)  := p_source_107;
94620    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
94621    l_rec_acct_attrs.array_num_value(44)  := p_source_108;
94622 
94623    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
94624    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
94625 
94626    ---------------------------------------------------------------------------------------------------------------
94627    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
94628    ---------------------------------------------------------------------------------------------------------------
94629    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
94630 
94631    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94632    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94633 
94634    IF xla_accounting_cache_pkg.GetValueChar
94635          (p_source_code         => 'LEDGER_CATEGORY_CODE'
94636          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
94637    AND l_bflow_method_code = 'PRIOR_ENTRY'
94638 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
94639    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
94640          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
94641        )
94642    THEN
94643          xla_ae_lines_pkg.BflowUpgEntry
94644            (p_business_method_code    => l_bflow_method_code
94645            ,p_business_class_code     => l_bflow_class_code
94646            ,p_balance_type            => l_balance_type_code);
94647    ELSE
94648       NULL;
94649 -- No business flow processing for business flow method of NONE.
94650    END IF;
94651 
94652    --
94653    -- call analytical criteria
94654    --
94655    
94656    --
94657    -- call description
94658    --
94659    -- No description or it is inherited.
94660    --
94661    -- call ADRs
94662    -- Bug 4922099
94663    --
94664    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94665         (NVL(l_actual_upg_option, 'N') = 'O') OR
94666         (NVL(l_enc_upg_option, 'N') = 'O')
94667       )
94668    THEN
94669    NULL;
94670    --
94671    --
94672    
94673   l_ccid := AcctDerRule_35(
94677          , x_transaction_coa_id       => l_adr_transaction_coa_id
94674            p_application_id           => p_application_id
94675          , p_ae_header_id             => l_ae_header_id 
94676 , p_source_48 => p_source_48
94678          , x_accounting_coa_id        => l_adr_accounting_coa_id
94679          , x_value_type_code          => l_adr_value_type_code
94680          , p_side                     => 'NA'
94681    );
94682 
94683    xla_ae_lines_pkg.set_ccid(
94684     p_code_combination_id          => l_ccid
94685   , p_value_type_code              => l_adr_value_type_code
94686   , p_transaction_coa_id           => l_adr_transaction_coa_id
94687   , p_accounting_coa_id            => l_adr_accounting_coa_id
94688   , p_adr_code                     => 'AP_RECP_INV_DIST'
94689   , p_adr_type_code                => 'S'
94690   , p_component_type               => l_component_type
94691   , p_component_code               => l_component_code
94692   , p_component_type_code          => l_component_type_code
94693   , p_component_appl_id            => l_component_appl_id
94694   , p_amb_context_code             => l_amb_context_code
94695   , p_side                         => 'NA'
94696   );
94697 
94698 
94699    --
94700    --
94701    END IF;
94702    --
94703    -- Bug 4922099
94704    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
94705           (NVL(l_enc_upg_option, 'N') = 'O')
94706         ) AND
94707         (l_bflow_method_code = 'PRIOR_ENTRY')
94708       )
94709    THEN
94710       IF
94711       --
94712       1 = 2
94713       --
94714       THEN
94715       xla_accounting_err_pkg.build_message
94716                                     (p_appli_s_name            => 'XLA'
94717                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94718                                     ,p_token_1                 => 'LINE_NUMBER'
94719                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
94720                                     ,p_token_2                 => 'LINE_TYPE_NAME'
94721                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
94722                                                                              l_component_type
94723                                                                             ,l_component_code
94724                                                                             ,l_component_type_code
94725                                                                             ,l_component_appl_id
94726                                                                             ,l_amb_context_code
94727                                                                             ,l_entity_code
94728                                                                             ,l_event_class_code
94729                                                                            )
94730                                     ,p_token_3                 => 'OWNER'
94731                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
94732                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
94733                                                                           ,p_lookup_code    => l_component_type_code
94734                                                                          )
94735                                     ,p_token_4                 => 'PRODUCT_NAME'
94736                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
94737                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
94738                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
94739                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
94740                                     ,p_ae_header_id            =>  NULL
94741                                        );
94742 
94743         IF (C_LEVEL_ERROR>= g_log_level) THEN
94744                  trace
94745                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94746                       ,p_level    => C_LEVEL_ERROR
94747                       ,p_module   => l_log_module);
94748         END IF;
94749       END IF;
94750    END IF;
94751    --
94752    --
94753    ------------------------------------------------------------------------------------------------
94754    -- 4219869 Business Flow
94755    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
94756    -- Prior Entry.  Currently, the following code is always generated.
94757    ------------------------------------------------------------------------------------------------
94758    XLA_AE_LINES_PKG.ValidateCurrentLine;
94759 
94760    ------------------------------------------------------------------------------------
94761    -- 4219869 Business Flow
94762    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
94763    ------------------------------------------------------------------------------------
94764    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94765 
94766    ----------------------------------------------------------------------------------
94767    -- 4219869 Business Flow
94768    -- Update journal entry status -- Need to generate this within IF <condition>
94772          ,p_balance_type_code => l_balance_type_code
94769    ----------------------------------------------------------------------------------
94770    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94771          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
94773          );
94774 
94775    -------------------------------------------------------------------------------------------
94776    -- 4262811 - Generate the Accrual Reversal lines
94777    -------------------------------------------------------------------------------------------
94778    BEGIN
94779       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
94780                               (g_array_event(p_event_id).array_value_num('header_index'));
94781       IF l_acc_rev_flag IS NULL THEN
94782          l_acc_rev_flag := 'N';
94783       END IF;
94784    EXCEPTION
94785       WHEN OTHERS THEN
94786          l_acc_rev_flag := 'N';
94787    END;
94788    --
94789    IF (l_acc_rev_flag = 'Y') THEN
94790 
94791        -- 4645092  ------------------------------------------------------------------------------
94792        -- To allow MPA report to determine if it should generate report process
94793        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
94794        ------------------------------------------------------------------------------------------
94795 
94796        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
94797        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
94798    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
94799    -- call ADRs
94800    -- Bug 4922099
94801    --
94802    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94803         (NVL(l_actual_upg_option, 'N') = 'O') OR
94804         (NVL(l_enc_upg_option, 'N') = 'O')
94805       )
94806    THEN
94807    NULL;
94808    --
94809    --
94810    
94811   l_ccid := AcctDerRule_35(
94812            p_application_id           => p_application_id
94813          , p_ae_header_id             => l_ae_header_id 
94814 , p_source_48 => p_source_48
94815          , x_transaction_coa_id       => l_adr_transaction_coa_id
94816          , x_accounting_coa_id        => l_adr_accounting_coa_id
94817          , x_value_type_code          => l_adr_value_type_code
94818          , p_side                     => 'NA'
94819    );
94820 
94821    xla_ae_lines_pkg.set_ccid(
94822     p_code_combination_id          => l_ccid
94823   , p_value_type_code              => l_adr_value_type_code
94824   , p_transaction_coa_id           => l_adr_transaction_coa_id
94825   , p_accounting_coa_id            => l_adr_accounting_coa_id
94826   , p_adr_code                     => 'AP_RECP_INV_DIST'
94827   , p_adr_type_code                => 'S'
94828   , p_component_type               => l_component_type
94829   , p_component_code               => l_component_code
94830   , p_component_type_code          => l_component_type_code
94831   , p_component_appl_id            => l_component_appl_id
94832   , p_amb_context_code             => l_amb_context_code
94833   , p_side                         => 'NA'
94834   );
94835 
94836 
94837    --
94838    --
94839    END IF;
94840 
94841        --
94842        -- Update the line information that should be overwritten
94843        --
94844        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
94845                                          p_header_num   => 1);
94846        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
94847 
94848        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
94849 
94850        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
94851           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
94852        END IF;
94853 
94854       --
94855       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
94856       --
94857       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
94858           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
94859       ELSE
94860           ---------------------------------------------------------------------------------------------------
94861           -- 4262811a Switch Sign
94862           ---------------------------------------------------------------------------------------------------
94863           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
94864           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94865                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94866           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94867                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94868           -- 5132302
94869           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
94870                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94871 
94872       END IF;
94873 
94874       -- 4955764
94875       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94879       XLA_AE_LINES_PKG.ValidateCurrentLine;
94876       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
94877 
94878 
94880       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94881 
94882       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94883                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
94884                ,p_balance_type_code => l_balance_type_code);
94885 
94886    END IF;
94887 
94888    -----------------------------------------------------------------------------------------
94889    -- 4262811 Multiperiod Accounting
94890    -----------------------------------------------------------------------------------------
94891      -- No MPA option is assigned.
94892 
94893 
94894 END IF;
94895 END IF;
94896 --
94897 
94898 --
94899 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94900    trace
94901       (p_msg      => 'END of AcctLineType_163'
94902       ,p_level    => C_LEVEL_PROCEDURE
94903       ,p_module   => l_log_module);
94904 END IF;
94905 --
94906 EXCEPTION
94907   WHEN xla_exceptions_pkg.application_exception THEN
94908       RAISE;
94909   WHEN OTHERS THEN
94910        xla_exceptions_pkg.raise_message
94911            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_163');
94912 END AcctLineType_163;
94913 --
94914 
94915 ---------------------------------------
94916 --
94917 -- PRIVATE FUNCTION
94918 --         AcctLineType_164
94919 --
94920 ---------------------------------------
94921 PROCEDURE AcctLineType_164 (
94922   p_application_id        IN NUMBER
94923  ,p_event_id              IN NUMBER
94924  ,p_calculate_acctd_flag  IN VARCHAR2
94925  ,p_calculate_g_l_flag    IN VARCHAR2
94926  ,p_actual_flag           IN OUT VARCHAR2
94927  ,p_balance_type_code     OUT VARCHAR2
94928  ,p_gain_or_loss_ref      OUT VARCHAR2
94929  
94930 --Automatic Offsets Value
94931  , p_source_16            IN VARCHAR2
94932  , p_source_16_meaning    IN VARCHAR2
94933 --Payment Distribution (Cleared Rate) Ledger Amount
94934  , p_source_22            IN NUMBER
94935 --Invoice Distribution Account
94936  , p_source_29            IN NUMBER
94937 --Withholding Related Distribution Account
94938  , p_source_36            IN NUMBER
94939 --When to Account for Payment Option
94940  , p_source_50            IN VARCHAR2
94941 --Payment Distribution Type
94942  , p_source_51            IN VARCHAR2
94943  , p_source_51_meaning    IN VARCHAR2
94944 --Accounting Reversal Indicator
94945  , p_source_52            IN VARCHAR2
94946 --Payment Distribution Amount
94947  , p_source_53            IN NUMBER
94948 --Business Flow Accounts Payable Application Identifier
94949  , p_source_54            IN NUMBER
94950 --Business Flow Payment Distribution Type
94951  , p_source_55            IN VARCHAR2
94952 --Business Flow Payment Entity Code
94953  , p_source_56            IN VARCHAR2
94954 --Business Flow Payment Distribution Identifier
94955  , p_source_57            IN NUMBER
94956 --Business Flow Payment Identifier
94957  , p_source_58            IN NUMBER
94958 --Payment Distribution Identifier
94959  , p_source_59            IN NUMBER
94960 --Distribution Link Type
94961  , p_source_60            IN VARCHAR2
94962 --Override Accounted Amount Indicator
94963  , p_source_64            IN VARCHAR2
94964  , p_source_64_meaning    IN VARCHAR2
94965 --Payment Supplier Identifier
94966  , p_source_65            IN NUMBER
94967 --Payment Supplier Site Identifier
94968  , p_source_66            IN NUMBER
94969 --Third Party Type
94970  , p_source_67            IN VARCHAR2
94971 --Payment Distribution Reversed Identifier
94972  , p_source_68            IN NUMBER
94973 --Invoice Distribution Tax Line Identifier
94974  , p_source_69            IN NUMBER
94975 --Invoice Distribution Summary Tax Line Identifier
94976  , p_source_70            IN NUMBER
94977 --Cleared Currency Code
94978  , p_source_113            IN VARCHAR2
94979 --Cleared Exchange Date
94980  , p_source_114            IN DATE
94981 --Cleared Exchange Rate
94982  , p_source_115            IN NUMBER
94983 --Cleared Exchange Rate Type
94984  , p_source_116            IN VARCHAR2
94985 --Withholding at Payment Indicator
94986  , p_source_155            IN VARCHAR2
94987  , p_source_155_meaning    IN VARCHAR2
94988 )
94989 IS
94990 
94991 l_component_type              VARCHAR2(80);
94992 l_component_code              VARCHAR2(30);
94993 l_component_type_code         VARCHAR2(1);
94994 l_component_appl_id           INTEGER;
94995 l_amb_context_code            VARCHAR2(30);
94996 l_entity_code                 VARCHAR2(30);
94997 l_event_class_code            VARCHAR2(30);
94998 l_ae_header_id                NUMBER;
94999 l_event_type_code             VARCHAR2(30);
95000 l_line_definition_code        VARCHAR2(30);
95001 l_line_definition_owner_code  VARCHAR2(1);
95002 --
95003 -- adr variables
95004 l_segment                     VARCHAR2(30);
95005 l_ccid                        NUMBER;
95006 l_adr_transaction_coa_id      NUMBER;
95007 l_adr_accounting_coa_id       NUMBER;
95008 l_adr_flexfield_segment_code  VARCHAR2(30);
95009 l_adr_flex_value_set_id       NUMBER;
95010 l_adr_value_type_code         VARCHAR2(30);
95011 l_adr_value_combination_id    NUMBER;
95012 l_adr_value_segment_code      VARCHAR2(30);
95013 
95017 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
95014 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
95015 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
95016 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
95018 
95019 -- 4262811 Variables ------------------------------------------------------------------------------------------
95020 l_entered_amt_idx             NUMBER;
95021 l_accted_amt_idx              NUMBER;
95022 l_acc_rev_flag                VARCHAR2(1);
95023 l_accrual_line_num            NUMBER;
95024 l_tmp_amt                     NUMBER;
95025 l_acc_rev_natural_side_code   VARCHAR2(1);
95026 
95027 l_num_entries                 NUMBER;
95028 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
95029 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
95030 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
95031 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
95032 l_recog_line_1                NUMBER;
95033 l_recog_line_2                NUMBER;
95034 
95035 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
95036 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
95037 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
95038 
95039 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
95040 
95041 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
95042 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
95043 
95044 ---------------------------------------------------------------------------------------------------------------
95045 
95046 
95047 --
95048 -- bulk performance
95049 --
95050 l_balance_type_code           VARCHAR2(1);
95051 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
95052 l_log_module                  VARCHAR2(240);
95053 
95054 --
95055 -- Upgrade strategy
95056 --
95057 l_actual_upg_option           VARCHAR2(1);
95058 l_enc_upg_option           VARCHAR2(1);
95059 
95060 --
95061 BEGIN
95062 --
95063 IF g_log_enabled THEN
95064       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_164';
95065 END IF;
95066 --
95067 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95068 
95069       trace
95070          (p_msg      => 'BEGIN of AcctLineType_164'
95071          ,p_level    => C_LEVEL_PROCEDURE
95072          ,p_module   => l_log_module);
95073 
95074 END IF;
95075 --
95076 l_component_type             := 'AMB_JLT';
95077 l_component_code             := 'AP_WITHHOLD_TAX_CASH_CLEAR';
95078 l_component_type_code        := 'S';
95079 l_component_appl_id          :=  200;
95080 l_amb_context_code           := 'DEFAULT';
95081 l_entity_code                := 'AP_PAYMENTS';
95082 l_event_class_code           := 'RECONCILED PAYMENTS';
95083 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
95084 l_line_definition_owner_code := 'S';
95085 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
95086 --
95087 l_balance_type_code          := 'A';
95088 l_segment                     := NULL;
95089 l_ccid                        := NULL;
95090 l_adr_transaction_coa_id      := NULL;
95091 l_adr_accounting_coa_id       := NULL;
95092 l_adr_flexfield_segment_code  := NULL;
95093 l_adr_flex_value_set_id       := NULL;
95094 l_adr_value_type_code         := NULL;
95095 l_adr_value_combination_id    := NULL;
95096 l_adr_value_segment_code      := NULL;
95097 
95098 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
95099 l_bflow_class_code           := '';    -- 4219869 Business Flow
95100 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
95101 l_budgetary_control_flag     := 'N';
95102 
95103 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
95104 l_bflow_applied_to_amt       := NULL; -- 5132302
95105 l_entered_amt_idx            := NULL;          -- 4262811
95106 l_accted_amt_idx             := NULL;          -- 4262811
95107 l_acc_rev_flag               := NULL;          -- 4262811
95108 l_accrual_line_num           := NULL;          -- 4262811
95109 l_tmp_amt                    := NULL;          -- 4262811
95110 --
95111  
95112 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
95113     l_balance_type_code <> 'B' THEN
95114 IF NVL(p_source_50,'
95115 ') =  'CLEAR_CLEAR' AND 
95116 NVL(p_source_51,'
95117 ') =  'AWT' AND 
95118 NVL(p_source_155,'
95119 ') =  'Y'
95120  THEN 
95121 
95122    --
95123    XLA_AE_LINES_PKG.SetNewLine;
95124 
95125    p_balance_type_code          := l_balance_type_code;
95126    -- set the flag so later we will know whether the gain loss line needs to be created
95127    
95128    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
95129      p_actual_flag :='A';
95130    END IF;
95131 
95132    --
95133    -- bulk performance
95134    --
95135    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
95136                                       p_header_num   => 0); -- 4262811
95137    --
95138    -- set accounting line options
95139    --
95140    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
95141            p_natural_side_code          => 'C'
95142          , p_gain_or_loss_flag          => 'N'
95143          , p_gl_transfer_mode_code      => 'S'
95144          , p_acct_entry_type_code       => 'A'
95148    --
95145          , p_switch_side_flag           => 'Y'
95146          , p_merge_duplicate_code       => 'A'
95147          );
95149    l_acc_rev_natural_side_code := 'D';  -- 4262811
95150    -- 
95151    --
95152    -- set accounting line type info
95153    --
95154    xla_ae_lines_pkg.SetAcctLineType
95155       (p_component_type             => l_component_type
95156       ,p_event_type_code            => l_event_type_code
95157       ,p_line_definition_owner_code => l_line_definition_owner_code
95158       ,p_line_definition_code       => l_line_definition_code
95159       ,p_accounting_line_code       => l_component_code
95160       ,p_accounting_line_type_code  => l_component_type_code
95161       ,p_accounting_line_appl_id    => l_component_appl_id
95162       ,p_amb_context_code           => l_amb_context_code
95163       ,p_entity_code                => l_entity_code
95164       ,p_event_class_code           => l_event_class_code);
95165    --
95166    -- set accounting class
95167    --
95168    xla_ae_lines_pkg.SetAcctClass(
95169            p_accounting_class_code  => 'AWT'
95170          , p_ae_header_id           => l_ae_header_id
95171          );
95172 
95173    --
95174    -- set rounding class
95175    --
95176    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
95177                       'AWT';
95178 
95179    --
95180    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
95181    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
95182    --
95183    -- bulk performance
95184    --
95185    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
95186 
95187    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
95188       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
95189 
95190    -- 4955764
95191    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95192       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
95193 
95194    -- 4458381 Public Sector Enh
95195    
95196    --
95197    -- set accounting attributes for the line type
95198    --
95199    l_entered_amt_idx := 10;
95200    l_accted_amt_idx  := 15;
95201    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
95202    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
95203    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
95204    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
95205    l_rec_acct_attrs.array_num_value(2)  := p_source_53;
95206    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
95207    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
95208    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
95209    l_rec_acct_attrs.array_char_value(4)  := p_source_55;
95210    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
95211    l_rec_acct_attrs.array_char_value(5)  := p_source_56;
95212    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
95213    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
95214    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
95215    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_58);
95216    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
95217    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
95218    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
95219    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
95220    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
95221    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
95222    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
95223    l_rec_acct_attrs.array_char_value(11)  := p_source_113;
95224    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
95225    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
95226    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
95227    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
95228    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
95229    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
95230    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
95231    l_rec_acct_attrs.array_num_value(15)  := p_source_22;
95232    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
95233    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
95234    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
95235    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
95236    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
95237    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
95238    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
95239    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
95240    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
95241    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
95242    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
95243    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
95244    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
95245    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
95246    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
95247    l_rec_acct_attrs.array_num_value(23)  := p_source_69;
95251    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
95248    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
95249    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
95250 
95252    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
95253 
95254    ---------------------------------------------------------------------------------------------------------------
95255    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
95256    ---------------------------------------------------------------------------------------------------------------
95257    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
95258 
95259    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95260    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95261 
95262    IF xla_accounting_cache_pkg.GetValueChar
95263          (p_source_code         => 'LEDGER_CATEGORY_CODE'
95264          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
95265    AND l_bflow_method_code = 'PRIOR_ENTRY'
95266 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
95267    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
95268          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
95269        )
95270    THEN
95271          xla_ae_lines_pkg.BflowUpgEntry
95272            (p_business_method_code    => l_bflow_method_code
95273            ,p_business_class_code     => l_bflow_class_code
95274            ,p_balance_type            => l_balance_type_code);
95275    ELSE
95276       NULL;
95277 -- No business flow processing for business flow method of NONE.
95278    END IF;
95279 
95280    --
95281    -- call analytical criteria
95282    --
95283    
95284    --
95285    -- call description
95286    --
95287    -- No description or it is inherited.
95288    --
95289    -- call ADRs
95290    -- Bug 4922099
95291    --
95292    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95293         (NVL(l_actual_upg_option, 'N') = 'O') OR
95294         (NVL(l_enc_upg_option, 'N') = 'O')
95295       )
95296    THEN
95297    NULL;
95298    --
95299    --
95300    
95301   l_ccid := AcctDerRule_38(
95302            p_application_id           => p_application_id
95303          , p_ae_header_id             => l_ae_header_id 
95304 , p_source_16 => p_source_16
95305 , p_source_16_meaning => p_source_16_meaning
95306 , p_source_29 => p_source_29
95307 , p_source_36 => p_source_36
95308          , x_transaction_coa_id       => l_adr_transaction_coa_id
95309          , x_accounting_coa_id        => l_adr_accounting_coa_id
95310          , x_value_type_code          => l_adr_value_type_code
95311          , p_side                     => 'NA'
95312    );
95313 
95314    xla_ae_lines_pkg.set_ccid(
95315     p_code_combination_id          => l_ccid
95316   , p_value_type_code              => l_adr_value_type_code
95317   , p_transaction_coa_id           => l_adr_transaction_coa_id
95318   , p_accounting_coa_id            => l_adr_accounting_coa_id
95319   , p_adr_code                     => 'AP_WH_DIST_ACCT'
95320   , p_adr_type_code                => 'S'
95321   , p_component_type               => l_component_type
95322   , p_component_code               => l_component_code
95323   , p_component_type_code          => l_component_type_code
95324   , p_component_appl_id            => l_component_appl_id
95325   , p_amb_context_code             => l_amb_context_code
95326   , p_side                         => 'NA'
95327   );
95328 
95329 
95330    l_segment := AcctDerRule_12(
95331            p_application_id           => p_application_id
95332          , p_ae_header_id             => l_ae_header_id 
95333 , p_source_16 => p_source_16
95334 , p_source_16_meaning => p_source_16_meaning
95335 , p_source_29 => p_source_29
95336          , x_transaction_coa_id       => l_adr_transaction_coa_id
95337          , x_accounting_coa_id        => l_adr_accounting_coa_id
95338          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95339          , x_flex_value_set_id        => l_adr_flex_value_set_id
95340          , x_value_type_code          => l_adr_value_type_code
95341          , x_value_combination_id     => l_adr_value_combination_id
95342          , x_value_segment_code       => l_adr_value_segment_code
95343          , p_side                     => 'NA'
95344          , p_override_seg_flag        => 'Y'
95345    );
95346 
95347    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95348 
95349       xla_ae_lines_pkg.set_segment(
95350           p_to_segment_code         => 'GL_ACCOUNT'
95351         , p_segment_value           => l_segment
95352         , p_from_segment_code       => l_adr_value_segment_code
95353         , p_from_combination_id     => l_adr_value_combination_id
95354         , p_value_type_code         => l_adr_value_type_code
95355         , p_transaction_coa_id      => l_adr_transaction_coa_id
95356         , p_accounting_coa_id       => l_adr_accounting_coa_id
95357         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95358         , p_flex_value_set_id       => l_adr_flex_value_set_id
95359         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
95360         , p_adr_type_code           => 'S'
95361         , p_component_type          => l_component_type
95365         , p_amb_context_code        => l_amb_context_code
95362         , p_component_code          => l_component_code
95363         , p_component_type_code     => l_component_type_code
95364         , p_component_appl_id       => l_component_appl_id
95366         , p_entity_code             => 'AP_PAYMENTS'
95367         , p_event_class_code        => 'RECONCILED PAYMENTS'
95368         , p_side                    => 'NA'
95369         );
95370 
95371   END IF;
95372 
95373    l_segment := AcctDerRule_19(
95374            p_application_id           => p_application_id
95375          , p_ae_header_id             => l_ae_header_id 
95376 , p_source_16 => p_source_16
95377 , p_source_16_meaning => p_source_16_meaning
95378 , p_source_36 => p_source_36
95379          , x_transaction_coa_id       => l_adr_transaction_coa_id
95380          , x_accounting_coa_id        => l_adr_accounting_coa_id
95381          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95382          , x_flex_value_set_id        => l_adr_flex_value_set_id
95383          , x_value_type_code          => l_adr_value_type_code
95384          , x_value_combination_id     => l_adr_value_combination_id
95385          , x_value_segment_code       => l_adr_value_segment_code
95386          , p_side                     => 'NA'
95387          , p_override_seg_flag        => 'Y'
95388    );
95389 
95390    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95391 
95392       xla_ae_lines_pkg.set_segment(
95393           p_to_segment_code         => 'GL_BALANCING'
95394         , p_segment_value           => l_segment
95395         , p_from_segment_code       => l_adr_value_segment_code
95396         , p_from_combination_id     => l_adr_value_combination_id
95397         , p_value_type_code         => l_adr_value_type_code
95398         , p_transaction_coa_id      => l_adr_transaction_coa_id
95399         , p_accounting_coa_id       => l_adr_accounting_coa_id
95400         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95401         , p_flex_value_set_id       => l_adr_flex_value_set_id
95402         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
95403         , p_adr_type_code           => 'S'
95404         , p_component_type          => l_component_type
95405         , p_component_code          => l_component_code
95406         , p_component_type_code     => l_component_type_code
95407         , p_component_appl_id       => l_component_appl_id
95408         , p_amb_context_code        => l_amb_context_code
95409         , p_entity_code             => 'AP_PAYMENTS'
95410         , p_event_class_code        => 'RECONCILED PAYMENTS'
95411         , p_side                    => 'NA'
95412         );
95413 
95414   END IF;
95415 
95416    --
95417    --
95418    END IF;
95419    --
95420    -- Bug 4922099
95421    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
95422           (NVL(l_enc_upg_option, 'N') = 'O')
95423         ) AND
95424         (l_bflow_method_code = 'PRIOR_ENTRY')
95425       )
95426    THEN
95427       IF
95428       --
95429       1 = 2
95430       --
95431       THEN
95432       xla_accounting_err_pkg.build_message
95433                                     (p_appli_s_name            => 'XLA'
95434                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95435                                     ,p_token_1                 => 'LINE_NUMBER'
95436                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
95437                                     ,p_token_2                 => 'LINE_TYPE_NAME'
95438                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
95439                                                                              l_component_type
95440                                                                             ,l_component_code
95441                                                                             ,l_component_type_code
95442                                                                             ,l_component_appl_id
95443                                                                             ,l_amb_context_code
95444                                                                             ,l_entity_code
95445                                                                             ,l_event_class_code
95446                                                                            )
95447                                     ,p_token_3                 => 'OWNER'
95448                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
95449                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
95450                                                                           ,p_lookup_code    => l_component_type_code
95451                                                                          )
95452                                     ,p_token_4                 => 'PRODUCT_NAME'
95453                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
95454                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
95455                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
95456                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
95460         IF (C_LEVEL_ERROR>= g_log_level) THEN
95457                                     ,p_ae_header_id            =>  NULL
95458                                        );
95459 
95461                  trace
95462                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95463                       ,p_level    => C_LEVEL_ERROR
95464                       ,p_module   => l_log_module);
95465         END IF;
95466       END IF;
95467    END IF;
95468    --
95469    --
95470    ------------------------------------------------------------------------------------------------
95471    -- 4219869 Business Flow
95472    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
95473    -- Prior Entry.  Currently, the following code is always generated.
95474    ------------------------------------------------------------------------------------------------
95475    XLA_AE_LINES_PKG.ValidateCurrentLine;
95476 
95477    ------------------------------------------------------------------------------------
95478    -- 4219869 Business Flow
95479    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
95480    ------------------------------------------------------------------------------------
95481    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95482 
95483    ----------------------------------------------------------------------------------
95484    -- 4219869 Business Flow
95485    -- Update journal entry status -- Need to generate this within IF <condition>
95486    ----------------------------------------------------------------------------------
95487    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95488          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
95489          ,p_balance_type_code => l_balance_type_code
95490          );
95491 
95492    -------------------------------------------------------------------------------------------
95493    -- 4262811 - Generate the Accrual Reversal lines
95494    -------------------------------------------------------------------------------------------
95495    BEGIN
95496       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
95497                               (g_array_event(p_event_id).array_value_num('header_index'));
95498       IF l_acc_rev_flag IS NULL THEN
95499          l_acc_rev_flag := 'N';
95500       END IF;
95501    EXCEPTION
95502       WHEN OTHERS THEN
95503          l_acc_rev_flag := 'N';
95504    END;
95505    --
95506    IF (l_acc_rev_flag = 'Y') THEN
95507 
95508        -- 4645092  ------------------------------------------------------------------------------
95509        -- To allow MPA report to determine if it should generate report process
95510        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
95511        ------------------------------------------------------------------------------------------
95512 
95513        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
95514        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
95515    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
95516    -- call ADRs
95517    -- Bug 4922099
95518    --
95519    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95520         (NVL(l_actual_upg_option, 'N') = 'O') OR
95521         (NVL(l_enc_upg_option, 'N') = 'O')
95522       )
95523    THEN
95524    NULL;
95525    --
95526    --
95527    
95528   l_ccid := AcctDerRule_38(
95529            p_application_id           => p_application_id
95530          , p_ae_header_id             => l_ae_header_id 
95531 , p_source_16 => p_source_16
95532 , p_source_16_meaning => p_source_16_meaning
95533 , p_source_29 => p_source_29
95534 , p_source_36 => p_source_36
95535          , x_transaction_coa_id       => l_adr_transaction_coa_id
95536          , x_accounting_coa_id        => l_adr_accounting_coa_id
95537          , x_value_type_code          => l_adr_value_type_code
95538          , p_side                     => 'NA'
95539    );
95540 
95541    xla_ae_lines_pkg.set_ccid(
95542     p_code_combination_id          => l_ccid
95543   , p_value_type_code              => l_adr_value_type_code
95544   , p_transaction_coa_id           => l_adr_transaction_coa_id
95545   , p_accounting_coa_id            => l_adr_accounting_coa_id
95546   , p_adr_code                     => 'AP_WH_DIST_ACCT'
95547   , p_adr_type_code                => 'S'
95548   , p_component_type               => l_component_type
95549   , p_component_code               => l_component_code
95550   , p_component_type_code          => l_component_type_code
95551   , p_component_appl_id            => l_component_appl_id
95552   , p_amb_context_code             => l_amb_context_code
95553   , p_side                         => 'NA'
95554   );
95555 
95556 
95557    l_segment := AcctDerRule_12(
95558            p_application_id           => p_application_id
95559          , p_ae_header_id             => l_ae_header_id 
95560 , p_source_16 => p_source_16
95561 , p_source_16_meaning => p_source_16_meaning
95562 , p_source_29 => p_source_29
95563          , x_transaction_coa_id       => l_adr_transaction_coa_id
95564          , x_accounting_coa_id        => l_adr_accounting_coa_id
95565          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95566          , x_flex_value_set_id        => l_adr_flex_value_set_id
95567          , x_value_type_code          => l_adr_value_type_code
95568          , x_value_combination_id     => l_adr_value_combination_id
95572    );
95569          , x_value_segment_code       => l_adr_value_segment_code
95570          , p_side                     => 'NA'
95571          , p_override_seg_flag        => 'Y'
95573 
95574    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95575 
95576       xla_ae_lines_pkg.set_segment(
95577           p_to_segment_code         => 'GL_ACCOUNT'
95578         , p_segment_value           => l_segment
95579         , p_from_segment_code       => l_adr_value_segment_code
95580         , p_from_combination_id     => l_adr_value_combination_id
95581         , p_value_type_code         => l_adr_value_type_code
95582         , p_transaction_coa_id      => l_adr_transaction_coa_id
95583         , p_accounting_coa_id       => l_adr_accounting_coa_id
95584         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95585         , p_flex_value_set_id       => l_adr_flex_value_set_id
95586         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
95587         , p_adr_type_code           => 'S'
95588         , p_component_type          => l_component_type
95589         , p_component_code          => l_component_code
95590         , p_component_type_code     => l_component_type_code
95591         , p_component_appl_id       => l_component_appl_id
95592         , p_amb_context_code        => l_amb_context_code
95593         , p_entity_code             => 'AP_PAYMENTS'
95594         , p_event_class_code        => 'RECONCILED PAYMENTS'
95595         , p_side                    => 'NA'
95596         );
95597 
95598   END IF;
95599 
95600    l_segment := AcctDerRule_19(
95601            p_application_id           => p_application_id
95602          , p_ae_header_id             => l_ae_header_id 
95603 , p_source_16 => p_source_16
95604 , p_source_16_meaning => p_source_16_meaning
95605 , p_source_36 => p_source_36
95606          , x_transaction_coa_id       => l_adr_transaction_coa_id
95607          , x_accounting_coa_id        => l_adr_accounting_coa_id
95608          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95609          , x_flex_value_set_id        => l_adr_flex_value_set_id
95610          , x_value_type_code          => l_adr_value_type_code
95611          , x_value_combination_id     => l_adr_value_combination_id
95612          , x_value_segment_code       => l_adr_value_segment_code
95613          , p_side                     => 'NA'
95614          , p_override_seg_flag        => 'Y'
95615    );
95616 
95617    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95618 
95619       xla_ae_lines_pkg.set_segment(
95620           p_to_segment_code         => 'GL_BALANCING'
95621         , p_segment_value           => l_segment
95622         , p_from_segment_code       => l_adr_value_segment_code
95623         , p_from_combination_id     => l_adr_value_combination_id
95624         , p_value_type_code         => l_adr_value_type_code
95625         , p_transaction_coa_id      => l_adr_transaction_coa_id
95626         , p_accounting_coa_id       => l_adr_accounting_coa_id
95627         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95628         , p_flex_value_set_id       => l_adr_flex_value_set_id
95629         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
95630         , p_adr_type_code           => 'S'
95631         , p_component_type          => l_component_type
95632         , p_component_code          => l_component_code
95633         , p_component_type_code     => l_component_type_code
95634         , p_component_appl_id       => l_component_appl_id
95635         , p_amb_context_code        => l_amb_context_code
95636         , p_entity_code             => 'AP_PAYMENTS'
95637         , p_event_class_code        => 'RECONCILED PAYMENTS'
95638         , p_side                    => 'NA'
95639         );
95640 
95641   END IF;
95642 
95643    --
95644    --
95645    END IF;
95646 
95647        --
95648        -- Update the line information that should be overwritten
95649        --
95650        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
95651                                          p_header_num   => 1);
95652        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
95653 
95654        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
95655 
95656        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
95657           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
95658        END IF;
95659 
95660       --
95661       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
95662       --
95663       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
95664           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
95665       ELSE
95666           ---------------------------------------------------------------------------------------------------
95667           -- 4262811a Switch Sign
95668           ---------------------------------------------------------------------------------------------------
95669           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
95670           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95671                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95675           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
95672           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95673                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95674           -- 5132302
95676                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95677 
95678       END IF;
95679 
95680       -- 4955764
95681       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95682       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
95683 
95684 
95685       XLA_AE_LINES_PKG.ValidateCurrentLine;
95686       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95687 
95688       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95689                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
95690                ,p_balance_type_code => l_balance_type_code);
95691 
95692    END IF;
95693 
95694    -----------------------------------------------------------------------------------------
95695    -- 4262811 Multiperiod Accounting
95696    -----------------------------------------------------------------------------------------
95697      -- No MPA option is assigned.
95698 
95699 
95700 END IF;
95701 END IF;
95702 --
95703 
95704 --
95705 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95706    trace
95707       (p_msg      => 'END of AcctLineType_164'
95708       ,p_level    => C_LEVEL_PROCEDURE
95709       ,p_module   => l_log_module);
95710 END IF;
95711 --
95712 EXCEPTION
95713   WHEN xla_exceptions_pkg.application_exception THEN
95714       RAISE;
95715   WHEN OTHERS THEN
95716        xla_exceptions_pkg.raise_message
95717            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_164');
95718 END AcctLineType_164;
95719 --
95720 
95721 ---------------------------------------
95722 --
95723 -- PRIVATE FUNCTION
95724 --         AcctLineType_165
95725 --
95726 ---------------------------------------
95727 PROCEDURE AcctLineType_165 (
95728   p_application_id        IN NUMBER
95729  ,p_event_id              IN NUMBER
95730  ,p_calculate_acctd_flag  IN VARCHAR2
95731  ,p_calculate_g_l_flag    IN VARCHAR2
95732  ,p_actual_flag           IN OUT VARCHAR2
95733  ,p_balance_type_code     OUT VARCHAR2
95734  ,p_gain_or_loss_ref      OUT VARCHAR2
95735  
95736 --Payment Currency Code
95737  , p_source_12            IN VARCHAR2
95738 --Automatic Offsets Value
95739  , p_source_16            IN VARCHAR2
95740  , p_source_16_meaning    IN VARCHAR2
95741 --Payment Distribution (Payment Rate) Ledger Amount
95742  , p_source_21            IN NUMBER
95743 --Invoice Distribution Account
95744  , p_source_29            IN NUMBER
95745 --Withholding Related Distribution Account
95746  , p_source_36            IN NUMBER
95747 --When to Account for Payment Option
95748  , p_source_50            IN VARCHAR2
95749 --Payment Distribution Type
95750  , p_source_51            IN VARCHAR2
95751  , p_source_51_meaning    IN VARCHAR2
95752 --Accounting Reversal Indicator
95753  , p_source_52            IN VARCHAR2
95754 --Payment Distribution Amount
95755  , p_source_53            IN NUMBER
95756 --Business Flow Accounts Payable Application Identifier
95757  , p_source_54            IN NUMBER
95758 --Payment Distribution Identifier
95759  , p_source_59            IN NUMBER
95760 --Distribution Link Type
95761  , p_source_60            IN VARCHAR2
95762 --Override Accounted Amount Indicator
95763  , p_source_64            IN VARCHAR2
95764  , p_source_64_meaning    IN VARCHAR2
95765 --Payment Supplier Identifier
95766  , p_source_65            IN NUMBER
95767 --Payment Supplier Site Identifier
95768  , p_source_66            IN NUMBER
95769 --Third Party Type
95770  , p_source_67            IN VARCHAR2
95771 --Payment Distribution Reversed Identifier
95772  , p_source_68            IN NUMBER
95773 --Invoice Distribution Tax Line Identifier
95774  , p_source_69            IN NUMBER
95775 --Invoice Distribution Summary Tax Line Identifier
95776  , p_source_70            IN NUMBER
95777 --Payment Type
95778  , p_source_71            IN VARCHAR2
95779  , p_source_71_meaning    IN VARCHAR2
95780 --Invoice Distribution Amount of the Payment Distribution
95781  , p_source_72            IN NUMBER
95782 --Business Flow Invoice Distribution Type
95783  , p_source_73            IN VARCHAR2
95784 --Business Flow Invoice Entity Code
95785  , p_source_74            IN VARCHAR2
95786 --Business Flow Invoice Distribution Identifier
95787  , p_source_75            IN NUMBER
95788 --Business Flow Invoice Identifier
95789  , p_source_76            IN NUMBER
95790 --Invoice Distribution Tax Distribution Identifier from Tax
95791  , p_source_77            IN NUMBER
95792 --Payment Exchange Date
95793  , p_source_121            IN DATE
95794 --Payment Exchange Rate
95795  , p_source_122            IN NUMBER
95796 --Payment Exchange Rate Type
95797  , p_source_123            IN VARCHAR2
95798 )
95799 IS
95800 
95801 l_component_type              VARCHAR2(80);
95802 l_component_code              VARCHAR2(30);
95803 l_component_type_code         VARCHAR2(1);
95804 l_component_appl_id           INTEGER;
95805 l_amb_context_code            VARCHAR2(30);
95806 l_entity_code                 VARCHAR2(30);
95810 l_line_definition_code        VARCHAR2(30);
95807 l_event_class_code            VARCHAR2(30);
95808 l_ae_header_id                NUMBER;
95809 l_event_type_code             VARCHAR2(30);
95811 l_line_definition_owner_code  VARCHAR2(1);
95812 --
95813 -- adr variables
95814 l_segment                     VARCHAR2(30);
95815 l_ccid                        NUMBER;
95816 l_adr_transaction_coa_id      NUMBER;
95817 l_adr_accounting_coa_id       NUMBER;
95818 l_adr_flexfield_segment_code  VARCHAR2(30);
95819 l_adr_flex_value_set_id       NUMBER;
95820 l_adr_value_type_code         VARCHAR2(30);
95821 l_adr_value_combination_id    NUMBER;
95822 l_adr_value_segment_code      VARCHAR2(30);
95823 
95824 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
95825 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
95826 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
95827 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
95828 
95829 -- 4262811 Variables ------------------------------------------------------------------------------------------
95830 l_entered_amt_idx             NUMBER;
95831 l_accted_amt_idx              NUMBER;
95832 l_acc_rev_flag                VARCHAR2(1);
95833 l_accrual_line_num            NUMBER;
95834 l_tmp_amt                     NUMBER;
95835 l_acc_rev_natural_side_code   VARCHAR2(1);
95836 
95837 l_num_entries                 NUMBER;
95838 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
95839 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
95840 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
95841 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
95842 l_recog_line_1                NUMBER;
95843 l_recog_line_2                NUMBER;
95844 
95845 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
95846 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
95847 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
95848 
95849 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
95850 
95851 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
95852 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
95853 
95854 ---------------------------------------------------------------------------------------------------------------
95855 
95856 
95857 --
95858 -- bulk performance
95859 --
95860 l_balance_type_code           VARCHAR2(1);
95861 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
95862 l_log_module                  VARCHAR2(240);
95863 
95864 --
95865 -- Upgrade strategy
95866 --
95867 l_actual_upg_option           VARCHAR2(1);
95868 l_enc_upg_option           VARCHAR2(1);
95869 
95870 --
95871 BEGIN
95872 --
95873 IF g_log_enabled THEN
95874       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_165';
95875 END IF;
95876 --
95877 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95878 
95879       trace
95880          (p_msg      => 'BEGIN of AcctLineType_165'
95881          ,p_level    => C_LEVEL_PROCEDURE
95882          ,p_module   => l_log_module);
95883 
95884 END IF;
95885 --
95886 l_component_type             := 'AMB_JLT';
95887 l_component_code             := 'AP_WITHHOLD_TAX_CASH_PMT';
95888 l_component_type_code        := 'S';
95889 l_component_appl_id          :=  200;
95890 l_amb_context_code           := 'DEFAULT';
95891 l_entity_code                := 'AP_PAYMENTS';
95892 l_event_class_code           := 'PAYMENTS';
95893 l_event_type_code            := 'PAYMENTS_ALL';
95894 l_line_definition_owner_code := 'S';
95895 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
95896 --
95897 l_balance_type_code          := 'A';
95898 l_segment                     := NULL;
95899 l_ccid                        := NULL;
95900 l_adr_transaction_coa_id      := NULL;
95901 l_adr_accounting_coa_id       := NULL;
95902 l_adr_flexfield_segment_code  := NULL;
95903 l_adr_flex_value_set_id       := NULL;
95904 l_adr_value_type_code         := NULL;
95905 l_adr_value_combination_id    := NULL;
95906 l_adr_value_segment_code      := NULL;
95907 
95908 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
95909 l_bflow_class_code           := '';    -- 4219869 Business Flow
95910 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
95911 l_budgetary_control_flag     := 'N';
95912 
95913 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
95914 l_bflow_applied_to_amt       := NULL; -- 5132302
95915 l_entered_amt_idx            := NULL;          -- 4262811
95916 l_accted_amt_idx             := NULL;          -- 4262811
95917 l_acc_rev_flag               := NULL;          -- 4262811
95918 l_accrual_line_num           := NULL;          -- 4262811
95919 l_tmp_amt                    := NULL;          -- 4262811
95920 --
95921  
95922 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
95923     l_balance_type_code <> 'B' THEN
95924 IF NVL(p_source_50,'
95925 ') <>  'CLEAR_CLEAR' AND 
95926 NVL(p_source_51,'
95927 ') =  'AWT' AND 
95928 NVL(p_source_71,'
95929 ') <>  'R'
95930  THEN 
95931 
95932    --
95933    XLA_AE_LINES_PKG.SetNewLine;
95934 
95935    p_balance_type_code          := l_balance_type_code;
95936    -- set the flag so later we will know whether the gain loss line needs to be created
95937    
95941 
95938    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
95939      p_actual_flag :='A';
95940    END IF;
95942    --
95943    -- bulk performance
95944    --
95945    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
95946                                       p_header_num   => 0); -- 4262811
95947    --
95948    -- set accounting line options
95949    --
95950    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
95951            p_natural_side_code          => 'C'
95952          , p_gain_or_loss_flag          => 'N'
95953          , p_gl_transfer_mode_code      => 'S'
95954          , p_acct_entry_type_code       => 'A'
95955          , p_switch_side_flag           => 'Y'
95956          , p_merge_duplicate_code       => 'A'
95957          );
95958    --
95959    l_acc_rev_natural_side_code := 'D';  -- 4262811
95960    -- 
95961    --
95962    -- set accounting line type info
95963    --
95964    xla_ae_lines_pkg.SetAcctLineType
95965       (p_component_type             => l_component_type
95966       ,p_event_type_code            => l_event_type_code
95967       ,p_line_definition_owner_code => l_line_definition_owner_code
95968       ,p_line_definition_code       => l_line_definition_code
95969       ,p_accounting_line_code       => l_component_code
95970       ,p_accounting_line_type_code  => l_component_type_code
95971       ,p_accounting_line_appl_id    => l_component_appl_id
95972       ,p_amb_context_code           => l_amb_context_code
95973       ,p_entity_code                => l_entity_code
95974       ,p_event_class_code           => l_event_class_code);
95975    --
95976    -- set accounting class
95977    --
95978    xla_ae_lines_pkg.SetAcctClass(
95979            p_accounting_class_code  => 'AWT'
95980          , p_ae_header_id           => l_ae_header_id
95981          );
95982 
95983    --
95984    -- set rounding class
95985    --
95986    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
95987                       'AWT';
95988 
95989    --
95990    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
95991    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
95992    --
95993    -- bulk performance
95994    --
95995    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
95996 
95997    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
95998       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
95999 
96000    -- 4955764
96001    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96002       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
96003 
96004    -- 4458381 Public Sector Enh
96005    
96006    --
96007    -- set accounting attributes for the line type
96008    --
96009    l_entered_amt_idx := 10;
96010    l_accted_amt_idx  := 15;
96011    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
96012    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
96013    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
96014    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
96015    l_rec_acct_attrs.array_num_value(2)  := p_source_72;
96016    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
96017    l_rec_acct_attrs.array_num_value(3)  := p_source_54;
96018    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
96019    l_rec_acct_attrs.array_char_value(4)  := p_source_73;
96020    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
96021    l_rec_acct_attrs.array_char_value(5)  := p_source_74;
96022    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
96023    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_75);
96024    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
96025    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_76);
96026    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
96027    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_59);
96028    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
96029    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
96030    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
96031    l_rec_acct_attrs.array_num_value(10)  := p_source_53;
96032    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
96033    l_rec_acct_attrs.array_char_value(11)  := p_source_12;
96034    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
96035    l_rec_acct_attrs.array_date_value(12)  := p_source_121;
96036    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
96037    l_rec_acct_attrs.array_num_value(13)  := p_source_122;
96038    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
96039    l_rec_acct_attrs.array_char_value(14)  := p_source_123;
96040    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
96041    l_rec_acct_attrs.array_num_value(15)  := p_source_21;
96042    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
96043    l_rec_acct_attrs.array_char_value(16)  := p_source_64;
96044    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
96045    l_rec_acct_attrs.array_num_value(17)  := p_source_65;
96049    l_rec_acct_attrs.array_char_value(19)  := p_source_67;
96046    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
96047    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
96048    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
96050    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
96051    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_68);
96052    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
96053    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
96054    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
96055    l_rec_acct_attrs.array_num_value(22)  := p_source_69;
96056    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
96057    l_rec_acct_attrs.array_num_value(23)  := p_source_77;
96058    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
96059    l_rec_acct_attrs.array_num_value(24)  := p_source_70;
96060 
96061    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
96062    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
96063 
96064    ---------------------------------------------------------------------------------------------------------------
96065    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
96066    ---------------------------------------------------------------------------------------------------------------
96067    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
96068 
96069    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96070    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96071 
96072    IF xla_accounting_cache_pkg.GetValueChar
96073          (p_source_code         => 'LEDGER_CATEGORY_CODE'
96074          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
96075    AND l_bflow_method_code = 'PRIOR_ENTRY'
96076 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
96077    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
96078          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
96079        )
96080    THEN
96081          xla_ae_lines_pkg.BflowUpgEntry
96082            (p_business_method_code    => l_bflow_method_code
96083            ,p_business_class_code     => l_bflow_class_code
96084            ,p_balance_type            => l_balance_type_code);
96085    ELSE
96086       NULL;
96087 -- No business flow processing for business flow method of NONE.
96088    END IF;
96089 
96090    --
96091    -- call analytical criteria
96092    --
96093    
96094    --
96095    -- call description
96096    --
96097    -- No description or it is inherited.
96098    --
96099    -- call ADRs
96100    -- Bug 4922099
96101    --
96102    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96103         (NVL(l_actual_upg_option, 'N') = 'O') OR
96104         (NVL(l_enc_upg_option, 'N') = 'O')
96105       )
96106    THEN
96107    NULL;
96108    --
96109    --
96110    
96111   l_ccid := AcctDerRule_38(
96112            p_application_id           => p_application_id
96113          , p_ae_header_id             => l_ae_header_id 
96114 , p_source_16 => p_source_16
96115 , p_source_16_meaning => p_source_16_meaning
96116 , p_source_29 => p_source_29
96117 , p_source_36 => p_source_36
96118          , x_transaction_coa_id       => l_adr_transaction_coa_id
96119          , x_accounting_coa_id        => l_adr_accounting_coa_id
96120          , x_value_type_code          => l_adr_value_type_code
96121          , p_side                     => 'NA'
96122    );
96123 
96124    xla_ae_lines_pkg.set_ccid(
96125     p_code_combination_id          => l_ccid
96126   , p_value_type_code              => l_adr_value_type_code
96127   , p_transaction_coa_id           => l_adr_transaction_coa_id
96128   , p_accounting_coa_id            => l_adr_accounting_coa_id
96129   , p_adr_code                     => 'AP_WH_DIST_ACCT'
96130   , p_adr_type_code                => 'S'
96131   , p_component_type               => l_component_type
96132   , p_component_code               => l_component_code
96133   , p_component_type_code          => l_component_type_code
96134   , p_component_appl_id            => l_component_appl_id
96135   , p_amb_context_code             => l_amb_context_code
96136   , p_side                         => 'NA'
96137   );
96138 
96139 
96140    l_segment := AcctDerRule_12(
96141            p_application_id           => p_application_id
96142          , p_ae_header_id             => l_ae_header_id 
96143 , p_source_16 => p_source_16
96144 , p_source_16_meaning => p_source_16_meaning
96145 , p_source_29 => p_source_29
96146          , x_transaction_coa_id       => l_adr_transaction_coa_id
96147          , x_accounting_coa_id        => l_adr_accounting_coa_id
96148          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96149          , x_flex_value_set_id        => l_adr_flex_value_set_id
96150          , x_value_type_code          => l_adr_value_type_code
96151          , x_value_combination_id     => l_adr_value_combination_id
96152          , x_value_segment_code       => l_adr_value_segment_code
96153          , p_side                     => 'NA'
96154          , p_override_seg_flag        => 'Y'
96155    );
96156 
96160           p_to_segment_code         => 'GL_ACCOUNT'
96157    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96158 
96159       xla_ae_lines_pkg.set_segment(
96161         , p_segment_value           => l_segment
96162         , p_from_segment_code       => l_adr_value_segment_code
96163         , p_from_combination_id     => l_adr_value_combination_id
96164         , p_value_type_code         => l_adr_value_type_code
96165         , p_transaction_coa_id      => l_adr_transaction_coa_id
96166         , p_accounting_coa_id       => l_adr_accounting_coa_id
96167         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96168         , p_flex_value_set_id       => l_adr_flex_value_set_id
96169         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
96170         , p_adr_type_code           => 'S'
96171         , p_component_type          => l_component_type
96172         , p_component_code          => l_component_code
96173         , p_component_type_code     => l_component_type_code
96174         , p_component_appl_id       => l_component_appl_id
96175         , p_amb_context_code        => l_amb_context_code
96176         , p_entity_code             => 'AP_PAYMENTS'
96177         , p_event_class_code        => 'PAYMENTS'
96178         , p_side                    => 'NA'
96179         );
96180 
96181   END IF;
96182 
96183    l_segment := AcctDerRule_19(
96184            p_application_id           => p_application_id
96185          , p_ae_header_id             => l_ae_header_id 
96186 , p_source_16 => p_source_16
96187 , p_source_16_meaning => p_source_16_meaning
96188 , p_source_36 => p_source_36
96189          , x_transaction_coa_id       => l_adr_transaction_coa_id
96190          , x_accounting_coa_id        => l_adr_accounting_coa_id
96191          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96192          , x_flex_value_set_id        => l_adr_flex_value_set_id
96193          , x_value_type_code          => l_adr_value_type_code
96194          , x_value_combination_id     => l_adr_value_combination_id
96195          , x_value_segment_code       => l_adr_value_segment_code
96196          , p_side                     => 'NA'
96197          , p_override_seg_flag        => 'Y'
96198    );
96199 
96200    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96201 
96202       xla_ae_lines_pkg.set_segment(
96203           p_to_segment_code         => 'GL_BALANCING'
96204         , p_segment_value           => l_segment
96205         , p_from_segment_code       => l_adr_value_segment_code
96206         , p_from_combination_id     => l_adr_value_combination_id
96207         , p_value_type_code         => l_adr_value_type_code
96208         , p_transaction_coa_id      => l_adr_transaction_coa_id
96209         , p_accounting_coa_id       => l_adr_accounting_coa_id
96210         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96211         , p_flex_value_set_id       => l_adr_flex_value_set_id
96212         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
96213         , p_adr_type_code           => 'S'
96214         , p_component_type          => l_component_type
96215         , p_component_code          => l_component_code
96216         , p_component_type_code     => l_component_type_code
96217         , p_component_appl_id       => l_component_appl_id
96218         , p_amb_context_code        => l_amb_context_code
96219         , p_entity_code             => 'AP_PAYMENTS'
96220         , p_event_class_code        => 'PAYMENTS'
96221         , p_side                    => 'NA'
96222         );
96223 
96224   END IF;
96225 
96226    --
96227    --
96228    END IF;
96229    --
96230    -- Bug 4922099
96231    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
96232           (NVL(l_enc_upg_option, 'N') = 'O')
96233         ) AND
96234         (l_bflow_method_code = 'PRIOR_ENTRY')
96235       )
96236    THEN
96237       IF
96238       --
96239       1 = 2
96240       --
96241       THEN
96242       xla_accounting_err_pkg.build_message
96243                                     (p_appli_s_name            => 'XLA'
96244                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96245                                     ,p_token_1                 => 'LINE_NUMBER'
96246                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
96247                                     ,p_token_2                 => 'LINE_TYPE_NAME'
96248                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
96249                                                                              l_component_type
96250                                                                             ,l_component_code
96251                                                                             ,l_component_type_code
96252                                                                             ,l_component_appl_id
96253                                                                             ,l_amb_context_code
96254                                                                             ,l_entity_code
96255                                                                             ,l_event_class_code
96256                                                                            )
96257                                     ,p_token_3                 => 'OWNER'
96258                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
96262                                     ,p_token_4                 => 'PRODUCT_NAME'
96259                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
96260                                                                           ,p_lookup_code    => l_component_type_code
96261                                                                          )
96263                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
96264                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
96265                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
96266                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
96267                                     ,p_ae_header_id            =>  NULL
96268                                        );
96269 
96270         IF (C_LEVEL_ERROR>= g_log_level) THEN
96271                  trace
96272                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96273                       ,p_level    => C_LEVEL_ERROR
96274                       ,p_module   => l_log_module);
96275         END IF;
96276       END IF;
96277    END IF;
96278    --
96279    --
96280    ------------------------------------------------------------------------------------------------
96281    -- 4219869 Business Flow
96282    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
96283    -- Prior Entry.  Currently, the following code is always generated.
96284    ------------------------------------------------------------------------------------------------
96285    XLA_AE_LINES_PKG.ValidateCurrentLine;
96286 
96287    ------------------------------------------------------------------------------------
96288    -- 4219869 Business Flow
96289    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
96290    ------------------------------------------------------------------------------------
96291    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96292 
96293    ----------------------------------------------------------------------------------
96294    -- 4219869 Business Flow
96295    -- Update journal entry status -- Need to generate this within IF <condition>
96296    ----------------------------------------------------------------------------------
96297    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96298          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
96299          ,p_balance_type_code => l_balance_type_code
96300          );
96301 
96302    -------------------------------------------------------------------------------------------
96303    -- 4262811 - Generate the Accrual Reversal lines
96304    -------------------------------------------------------------------------------------------
96305    BEGIN
96306       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
96307                               (g_array_event(p_event_id).array_value_num('header_index'));
96308       IF l_acc_rev_flag IS NULL THEN
96309          l_acc_rev_flag := 'N';
96310       END IF;
96311    EXCEPTION
96312       WHEN OTHERS THEN
96313          l_acc_rev_flag := 'N';
96314    END;
96315    --
96316    IF (l_acc_rev_flag = 'Y') THEN
96317 
96318        -- 4645092  ------------------------------------------------------------------------------
96319        -- To allow MPA report to determine if it should generate report process
96320        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
96321        ------------------------------------------------------------------------------------------
96322 
96323        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
96324        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
96325    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
96326    -- call ADRs
96327    -- Bug 4922099
96328    --
96329    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96330         (NVL(l_actual_upg_option, 'N') = 'O') OR
96331         (NVL(l_enc_upg_option, 'N') = 'O')
96332       )
96333    THEN
96334    NULL;
96335    --
96336    --
96337    
96338   l_ccid := AcctDerRule_38(
96339            p_application_id           => p_application_id
96340          , p_ae_header_id             => l_ae_header_id 
96341 , p_source_16 => p_source_16
96342 , p_source_16_meaning => p_source_16_meaning
96343 , p_source_29 => p_source_29
96344 , p_source_36 => p_source_36
96345          , x_transaction_coa_id       => l_adr_transaction_coa_id
96346          , x_accounting_coa_id        => l_adr_accounting_coa_id
96347          , x_value_type_code          => l_adr_value_type_code
96348          , p_side                     => 'NA'
96349    );
96350 
96351    xla_ae_lines_pkg.set_ccid(
96352     p_code_combination_id          => l_ccid
96353   , p_value_type_code              => l_adr_value_type_code
96354   , p_transaction_coa_id           => l_adr_transaction_coa_id
96355   , p_accounting_coa_id            => l_adr_accounting_coa_id
96356   , p_adr_code                     => 'AP_WH_DIST_ACCT'
96357   , p_adr_type_code                => 'S'
96358   , p_component_type               => l_component_type
96359   , p_component_code               => l_component_code
96360   , p_component_type_code          => l_component_type_code
96361   , p_component_appl_id            => l_component_appl_id
96362   , p_amb_context_code             => l_amb_context_code
96366 
96363   , p_side                         => 'NA'
96364   );
96365 
96367    l_segment := AcctDerRule_12(
96368            p_application_id           => p_application_id
96369          , p_ae_header_id             => l_ae_header_id 
96370 , p_source_16 => p_source_16
96371 , p_source_16_meaning => p_source_16_meaning
96372 , p_source_29 => p_source_29
96373          , x_transaction_coa_id       => l_adr_transaction_coa_id
96374          , x_accounting_coa_id        => l_adr_accounting_coa_id
96375          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96376          , x_flex_value_set_id        => l_adr_flex_value_set_id
96377          , x_value_type_code          => l_adr_value_type_code
96378          , x_value_combination_id     => l_adr_value_combination_id
96379          , x_value_segment_code       => l_adr_value_segment_code
96380          , p_side                     => 'NA'
96381          , p_override_seg_flag        => 'Y'
96382    );
96383 
96384    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96385 
96386       xla_ae_lines_pkg.set_segment(
96387           p_to_segment_code         => 'GL_ACCOUNT'
96388         , p_segment_value           => l_segment
96389         , p_from_segment_code       => l_adr_value_segment_code
96390         , p_from_combination_id     => l_adr_value_combination_id
96391         , p_value_type_code         => l_adr_value_type_code
96392         , p_transaction_coa_id      => l_adr_transaction_coa_id
96393         , p_accounting_coa_id       => l_adr_accounting_coa_id
96394         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96395         , p_flex_value_set_id       => l_adr_flex_value_set_id
96396         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
96397         , p_adr_type_code           => 'S'
96398         , p_component_type          => l_component_type
96399         , p_component_code          => l_component_code
96400         , p_component_type_code     => l_component_type_code
96401         , p_component_appl_id       => l_component_appl_id
96402         , p_amb_context_code        => l_amb_context_code
96403         , p_entity_code             => 'AP_PAYMENTS'
96404         , p_event_class_code        => 'PAYMENTS'
96405         , p_side                    => 'NA'
96406         );
96407 
96408   END IF;
96409 
96410    l_segment := AcctDerRule_19(
96411            p_application_id           => p_application_id
96412          , p_ae_header_id             => l_ae_header_id 
96413 , p_source_16 => p_source_16
96414 , p_source_16_meaning => p_source_16_meaning
96415 , p_source_36 => p_source_36
96416          , x_transaction_coa_id       => l_adr_transaction_coa_id
96417          , x_accounting_coa_id        => l_adr_accounting_coa_id
96418          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96419          , x_flex_value_set_id        => l_adr_flex_value_set_id
96420          , x_value_type_code          => l_adr_value_type_code
96421          , x_value_combination_id     => l_adr_value_combination_id
96422          , x_value_segment_code       => l_adr_value_segment_code
96423          , p_side                     => 'NA'
96424          , p_override_seg_flag        => 'Y'
96425    );
96426 
96427    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96428 
96429       xla_ae_lines_pkg.set_segment(
96430           p_to_segment_code         => 'GL_BALANCING'
96431         , p_segment_value           => l_segment
96432         , p_from_segment_code       => l_adr_value_segment_code
96433         , p_from_combination_id     => l_adr_value_combination_id
96434         , p_value_type_code         => l_adr_value_type_code
96435         , p_transaction_coa_id      => l_adr_transaction_coa_id
96436         , p_accounting_coa_id       => l_adr_accounting_coa_id
96437         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96438         , p_flex_value_set_id       => l_adr_flex_value_set_id
96439         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
96440         , p_adr_type_code           => 'S'
96441         , p_component_type          => l_component_type
96442         , p_component_code          => l_component_code
96443         , p_component_type_code     => l_component_type_code
96444         , p_component_appl_id       => l_component_appl_id
96445         , p_amb_context_code        => l_amb_context_code
96446         , p_entity_code             => 'AP_PAYMENTS'
96447         , p_event_class_code        => 'PAYMENTS'
96448         , p_side                    => 'NA'
96449         );
96450 
96451   END IF;
96452 
96453    --
96454    --
96455    END IF;
96456 
96457        --
96458        -- Update the line information that should be overwritten
96459        --
96460        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
96461                                          p_header_num   => 1);
96462        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
96463 
96464        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
96465 
96466        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
96467           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
96468        END IF;
96469 
96470       --
96471       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
96472       --
96473       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
96477           -- 4262811a Switch Sign
96474           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
96475       ELSE
96476           ---------------------------------------------------------------------------------------------------
96478           ---------------------------------------------------------------------------------------------------
96479           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
96480           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96481                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96482           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96483                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96484           -- 5132302
96485           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
96486                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96487 
96488       END IF;
96489 
96490       -- 4955764
96491       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96492       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
96493 
96494 
96495       XLA_AE_LINES_PKG.ValidateCurrentLine;
96496       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96497 
96498       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96499                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
96500                ,p_balance_type_code => l_balance_type_code);
96501 
96502    END IF;
96503 
96504    -----------------------------------------------------------------------------------------
96505    -- 4262811 Multiperiod Accounting
96506    -----------------------------------------------------------------------------------------
96507      -- No MPA option is assigned.
96508 
96509 
96510 END IF;
96511 END IF;
96512 --
96513 
96514 --
96515 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96516    trace
96517       (p_msg      => 'END of AcctLineType_165'
96518       ,p_level    => C_LEVEL_PROCEDURE
96519       ,p_module   => l_log_module);
96520 END IF;
96521 --
96522 EXCEPTION
96523   WHEN xla_exceptions_pkg.application_exception THEN
96524       RAISE;
96525   WHEN OTHERS THEN
96526        xla_exceptions_pkg.raise_message
96527            (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_165');
96528 END AcctLineType_165;
96529 --
96530 
96531 ---------------------------------------
96532 --
96533 -- PRIVATE PROCEDURE
96534 --         insert_sources_166
96535 --
96536 ----------------------------------------
96537 --
96538 PROCEDURE insert_sources_166(
96539                                 p_target_ledger_id       IN NUMBER
96540                               , p_language               IN VARCHAR2
96541                               , p_sla_ledger_id          IN NUMBER
96542                               , p_pad_start_date         IN DATE
96543                               , p_pad_end_date           IN DATE
96544                          )
96545 IS
96546 
96547 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'FUTURE DATED PAYMENTS_ALL';
96548 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
96549 p_apps_owner                   VARCHAR2(30);
96550 l_log_module                   VARCHAR2(240);
96551 BEGIN
96552 IF g_log_enabled THEN
96553       l_log_module := C_DEFAULT_MODULE||'.insert_sources_166';
96554 END IF;
96555 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96556 
96557       trace
96558          (p_msg      => 'BEGIN of insert_sources_166'
96559          ,p_level    => C_LEVEL_PROCEDURE
96560          ,p_module   => l_log_module);
96561 
96562 END IF;
96563 
96564 -- select APPS owner
96565 SELECT oracle_username
96566   INTO p_apps_owner
96567   FROM fnd_oracle_userid
96568  WHERE read_only_flag = 'U'
96569 ;
96570 
96571 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
96572       trace
96573          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
96574                         ' - p_language = '||p_language||
96575                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
96576                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
96577                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
96578                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
96579          ,p_level    => C_LEVEL_STATEMENT
96580          ,p_module   => l_log_module);
96581 END IF;
96582 
96583 
96584 --
96585 INSERT INTO xla_diag_sources --hdr2
96586 (
96587         event_id
96588       , ledger_id
96589       , sla_ledger_id
96590       , description_language
96591       , object_name
96592       , object_type_code
96593       , line_number
96594       , source_application_id
96595       , source_type_code
96596       , source_code
96597       , source_value
96598       , source_meaning
96599       , created_by
96600       , creation_date
96601       , last_update_date
96602       , last_updated_by
96603       , last_update_login
96604       , program_update_date
96608 )
96605       , program_application_id
96606       , program_id
96607       , request_id
96609 SELECT
96610         event_id
96611       , p_target_ledger_id
96612       , p_sla_ledger_id
96613       , p_language
96614       , object_name
96615       , object_type_code
96616       , line_number
96617       , source_application_id
96618       , source_type_code
96619       , source_code
96620       , SUBSTR(source_value ,1,1996)
96621       , SUBSTR(source_meaning ,1,200)
96622       , xla_environment_pkg.g_Usr_Id
96623       , TRUNC(SYSDATE)
96624       , TRUNC(SYSDATE)
96625       , xla_environment_pkg.g_Usr_Id
96626       , xla_environment_pkg.g_Login_Id
96627       , TRUNC(SYSDATE)
96628       , xla_environment_pkg.g_Prog_Appl_Id
96629       , xla_environment_pkg.g_Prog_Id
96630       , xla_environment_pkg.g_Req_Id
96631   FROM (
96632        SELECT xet.event_id                  event_id
96633             , 0                          line_number
96634             , CASE r
96635                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96636                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96637                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96638                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96639                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96640                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96641                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96642                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
96643                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96644                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
96645                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96646                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
96647                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96648                 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
96649                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
96650                 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
96651                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96652                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96653                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96654                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96655                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96656                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96657                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96658                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96659                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96660                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
96661                 
96662                ELSE null
96663               END                           object_name
96664             , CASE r
96665                 WHEN 1 THEN 'HEADER' 
96666                 WHEN 2 THEN 'HEADER' 
96667                 WHEN 3 THEN 'HEADER' 
96668                 WHEN 4 THEN 'HEADER' 
96669                 WHEN 5 THEN 'HEADER' 
96670                 WHEN 6 THEN 'HEADER' 
96671                 WHEN 7 THEN 'HEADER' 
96672                 WHEN 8 THEN 'HEADER' 
96673                 WHEN 9 THEN 'HEADER' 
96674                 WHEN 10 THEN 'HEADER' 
96675                 WHEN 11 THEN 'HEADER' 
96676                 WHEN 12 THEN 'HEADER' 
96677                 WHEN 13 THEN 'HEADER' 
96678                 WHEN 14 THEN 'HEADER' 
96679                 WHEN 15 THEN 'HEADER' 
96680                 WHEN 16 THEN 'HEADER' 
96681                 WHEN 17 THEN 'HEADER' 
96682                 WHEN 18 THEN 'HEADER' 
96683                 WHEN 19 THEN 'HEADER' 
96684                 WHEN 20 THEN 'HEADER' 
96685                 WHEN 21 THEN 'HEADER' 
96686                 WHEN 22 THEN 'HEADER' 
96687                 WHEN 23 THEN 'HEADER' 
96688                 WHEN 24 THEN 'HEADER' 
96689                 WHEN 25 THEN 'HEADER' 
96690                 WHEN 26 THEN 'HEADER' 
96691                 
96692                 ELSE null
96693               END                           object_type_code
96694             , CASE r
96695                 WHEN 1 THEN '200' 
96696                 WHEN 2 THEN '200' 
96697                 WHEN 3 THEN '200' 
96698                 WHEN 4 THEN '200' 
96699                 WHEN 5 THEN '200' 
96700                 WHEN 6 THEN '200' 
96701                 WHEN 7 THEN '200' 
96702                 WHEN 8 THEN '200' 
96703                 WHEN 9 THEN '200' 
96704                 WHEN 10 THEN '200' 
96705                 WHEN 11 THEN '200' 
96706                 WHEN 12 THEN '200' 
96707                 WHEN 13 THEN '200' 
96708                 WHEN 14 THEN '200' 
96709                 WHEN 15 THEN '200' 
96710                 WHEN 16 THEN '200' 
96711                 WHEN 17 THEN '200' 
96712                 WHEN 18 THEN '200' 
96713                 WHEN 19 THEN '200' 
96714                 WHEN 20 THEN '200' 
96715                 WHEN 21 THEN '200' 
96716                 WHEN 22 THEN '200' 
96717                 WHEN 23 THEN '200' 
96718                 WHEN 24 THEN '200' 
96719                 WHEN 25 THEN '200' 
96720                 WHEN 26 THEN '200' 
96721                 
96722                 ELSE null
96723               END                           source_application_id
96724             , 'S'             source_type_code
96725             , CASE r
96726                 WHEN 1 THEN 'DOC_SEQUENCE_NAME' 
96730                 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME' 
96727                 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE' 
96728                 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER' 
96729                 WHEN 4 THEN 'AC_CHECK_DATE' 
96731                 WHEN 6 THEN 'AC_CURRENCY_CODE' 
96732                 WHEN 7 THEN 'CGAC_AP_ASSET_CCID' 
96733                 WHEN 8 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
96734                 WHEN 9 THEN 'CGAC_CASH_CLEARING_CCID' 
96735                 WHEN 10 THEN 'ASP_AUTO_OFFSET_FLAG' 
96736                 WHEN 11 THEN 'CGAC_GAIN_CCID' 
96737                 WHEN 12 THEN 'ASP_GAIN_CCID' 
96738                 WHEN 13 THEN 'CGAC_LOSS_CCID' 
96739                 WHEN 14 THEN 'ASP_LOSS_CCID' 
96740                 WHEN 15 THEN 'ASP_ROUNDING_ERROR_CCID' 
96741                 WHEN 16 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
96742                 WHEN 17 THEN 'AC_VENDOR_ID' 
96743                 WHEN 18 THEN 'AC_VENDOR_SITE_ID' 
96744                 WHEN 19 THEN 'THIRD_PARTY_TYPE' 
96745                 WHEN 20 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
96746                 WHEN 21 THEN 'AC_FUTURE_PAY_DUE_DATE' 
96747                 WHEN 22 THEN 'AC_EXCHANGE_DATE' 
96748                 WHEN 23 THEN 'AC_EXCHANGE_RATE' 
96749                 WHEN 24 THEN 'AC_EXCHANGE_RATE_TYPE' 
96750                 WHEN 25 THEN 'AC_DOC_CATEGORY_CODE' 
96751                 WHEN 26 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
96752                 
96753                 ELSE null
96754               END                           source_code
96755             , CASE r
96756                 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
96757                 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
96758                 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
96759                 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
96760                 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
96761                 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
96762                 WHEN 7 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
96763                 WHEN 8 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
96764                 WHEN 9 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
96765                 WHEN 10 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
96766                 WHEN 11 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
96767                 WHEN 12 THEN TO_CHAR(h3.ASP_GAIN_CCID)
96768                 WHEN 13 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
96769                 WHEN 14 THEN TO_CHAR(h3.ASP_LOSS_CCID)
96770                 WHEN 15 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
96771                 WHEN 16 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
96772                 WHEN 17 THEN TO_CHAR(h2.AC_VENDOR_ID)
96773                 WHEN 18 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
96774                 WHEN 19 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
96775                 WHEN 20 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
96776                 WHEN 21 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
96777                 WHEN 22 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
96778                 WHEN 23 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
96779                 WHEN 24 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
96780                 WHEN 25 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
96781                 WHEN 26 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
96782                 
96783                 ELSE null
96784               END                           source_value
96785             , CASE r
96786                 WHEN 8 THEN fvl16.meaning
96787                 WHEN 10 THEN fvl42.meaning
96788                 WHEN 20 THEN fvl117.meaning
96789                 
96790                 ELSE null
96791               END               source_meaning
96792          FROM xla_events_gt     xet  
96793       , AP_PAYMENT_EXTRACT_HEADER_V  h2
96794       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
96795   , fnd_lookup_values    fvl16
96796   , fnd_lookup_values    fvl42
96797   , fnd_lookup_values    fvl117
96798              ,(select rownum r from all_objects where rownum <= 26 and owner = p_apps_owner)
96799          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
96800            AND xet.event_class_code = C_EVENT_CLASS_CODE
96801               AND h2.event_id = xet.event_id
96802  AND h3.asp_org_id = h2.ac_org_id   AND fvl16.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
96803   AND fvl16.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
96804   AND fvl16.view_application_id(+) = 200
96805   AND fvl16.language(+)            = USERENV('LANG')
96806      AND fvl42.lookup_type(+)         = 'YES_NO'
96807   AND fvl42.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
96808   AND fvl42.view_application_id(+) = 0
96809   AND fvl42.language(+)            = USERENV('LANG')
96810      AND fvl117.lookup_type(+)         = 'YES_NO'
96811   AND fvl117.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
96812   AND fvl117.view_application_id(+) = 0
96813   AND fvl117.language(+)            = USERENV('LANG')
96814   
96815 )
96816 ;
96817 --
96818 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
96819 
96820       trace
96821          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
96822          ,p_level    => C_LEVEL_STATEMENT
96823          ,p_module   => l_log_module);
96824 
96825 END IF;
96826 --
96827 
96828 
96829 
96830 --
96831 INSERT INTO xla_diag_sources  --line2
96832 (
96833         event_id
96834       , ledger_id
96835       , sla_ledger_id
96836       , description_language
96837       , object_name
96838       , object_type_code
96839       , line_number
96840       , source_application_id
96844       , source_meaning
96841       , source_type_code
96842       , source_code
96843       , source_value
96845       , created_by
96846       , creation_date
96847       , last_update_date
96848       , last_updated_by
96849       , last_update_login
96850       , program_update_date
96851       , program_application_id
96852       , program_id
96853       , request_id
96854 )
96855 SELECT  event_id
96856       , p_target_ledger_id
96857       , p_sla_ledger_id
96858       , p_language
96859       , object_name
96860       , object_type_code
96861       , line_number
96862       , source_application_id
96863       , source_type_code
96864       , source_code
96865       , SUBSTR(source_value,1,1996)
96866       , SUBSTR(source_meaning ,1,200)
96867       , xla_environment_pkg.g_Usr_Id
96868       , TRUNC(SYSDATE)
96869       , TRUNC(SYSDATE)
96870       , xla_environment_pkg.g_Usr_Id
96871       , xla_environment_pkg.g_Login_Id
96872       , TRUNC(SYSDATE)
96873       , xla_environment_pkg.g_Prog_Appl_Id
96874       , xla_environment_pkg.g_Prog_Id
96875       , xla_environment_pkg.g_Req_Id
96876   FROM (
96877        SELECT xet.event_id                  event_id
96878             , l1.line_number                 line_number
96879             , CASE r
96880                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96881                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96882                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96883                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96884                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96885                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96886                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96887                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96888                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96889                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96890                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96891                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96892                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96893                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96894                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96895                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96896                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
96897                 
96898                ELSE null
96899               END                           object_name
96900             , CASE r
96901                 WHEN 1 THEN 'LINE' 
96902                 WHEN 2 THEN 'LINE' 
96903                 WHEN 3 THEN 'LINE' 
96904                 WHEN 4 THEN 'LINE' 
96905                 WHEN 5 THEN 'LINE' 
96906                 WHEN 6 THEN 'LINE' 
96907                 WHEN 7 THEN 'LINE' 
96908                 WHEN 8 THEN 'LINE' 
96909                 WHEN 9 THEN 'LINE' 
96910                 WHEN 10 THEN 'LINE' 
96911                 WHEN 11 THEN 'LINE' 
96912                 WHEN 12 THEN 'LINE' 
96913                 WHEN 13 THEN 'LINE' 
96914                 WHEN 14 THEN 'LINE' 
96915                 WHEN 15 THEN 'LINE' 
96916                 WHEN 16 THEN 'LINE' 
96917                 WHEN 17 THEN 'LINE' 
96918                 
96919                 ELSE null
96920               END                           object_type_code
96921             , CASE r
96922                 WHEN 1 THEN '200' 
96923                 WHEN 2 THEN '200' 
96924                 WHEN 3 THEN '200' 
96925                 WHEN 4 THEN '200' 
96926                 WHEN 5 THEN '200' 
96927                 WHEN 6 THEN '200' 
96928                 WHEN 7 THEN '200' 
96929                 WHEN 8 THEN '200' 
96930                 WHEN 9 THEN '200' 
96931                 WHEN 10 THEN '200' 
96932                 WHEN 11 THEN '200' 
96933                 WHEN 12 THEN '200' 
96934                 WHEN 13 THEN '200' 
96935                 WHEN 14 THEN '200' 
96936                 WHEN 15 THEN '200' 
96937                 WHEN 16 THEN '200' 
96938                 WHEN 17 THEN '200' 
96939                 
96940                 ELSE null
96941               END                           source_application_id
96942             , 'S'             source_type_code
96943             , CASE r
96944                 WHEN 1 THEN 'APHD_PAYMENT_BASE_AMT' 
96945                 WHEN 2 THEN 'AID_DIST_CCID' 
96946                 WHEN 3 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
96947                 WHEN 4 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
96948                 WHEN 5 THEN 'APHD_AMOUNT' 
96949                 WHEN 6 THEN 'BUS_FLOW_AP_APP_ID' 
96950                 WHEN 7 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE' 
96951                 WHEN 8 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE' 
96952                 WHEN 9 THEN 'BUS_FLOW_PAYMENT_DIST_ID' 
96953                 WHEN 10 THEN 'BUS_FLOW_PAYMENT_ID' 
96954                 WHEN 11 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
96955                 WHEN 12 THEN 'DISTRIBUTION_LINK_TYPE' 
96956                 WHEN 13 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
96957                 WHEN 14 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
96958                 WHEN 15 THEN 'APHD_MATURED_BASE_AMOUNT' 
96959                 WHEN 16 THEN 'PMT_MAT_BASE_AMT_DIFF' 
96960                 WHEN 17 THEN 'PMT_MAT_GAIN_LOSS_INDICATOR' 
96961                 
96962                 ELSE null
96963               END                           source_code
96964             , CASE r
96965                 WHEN 1 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
96969                 WHEN 5 THEN TO_CHAR(l1.APHD_AMOUNT)
96966                 WHEN 2 THEN TO_CHAR(l1.AID_DIST_CCID)
96967                 WHEN 3 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
96968                 WHEN 4 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
96970                 WHEN 6 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
96971                 WHEN 7 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
96972                 WHEN 8 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
96973                 WHEN 9 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
96974                 WHEN 10 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
96975                 WHEN 11 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
96976                 WHEN 12 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
96977                 WHEN 13 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
96978                 WHEN 14 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
96979                 WHEN 15 THEN TO_CHAR(l1.APHD_MATURED_BASE_AMOUNT)
96980                 WHEN 16 THEN TO_CHAR(l1.PMT_MAT_BASE_AMT_DIFF)
96981                 WHEN 17 THEN TO_CHAR(l1.PMT_MAT_GAIN_LOSS_INDICATOR)
96982                 
96983                 ELSE null
96984               END                           source_value
96985             , CASE r
96986                 WHEN 3 THEN fvl51.meaning
96987                 WHEN 13 THEN fvl64.meaning
96988                 
96989                 ELSE null
96990               END               source_meaning
96991          FROM  xla_events_gt     xet  
96992         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
96993   , fnd_lookup_values    fvl51
96994   , fnd_lookup_values    fvl64
96995             , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
96996         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
96997           AND xet.event_class_code = C_EVENT_CLASS_CODE
96998             AND l1.event_id          = xet.event_id
96999    AND fvl51.lookup_type(+)         = 'PAY_DIST_TYPES'
97000   AND fvl51.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
97001   AND fvl51.view_application_id(+) = 200
97002   AND fvl51.language(+)            = USERENV('LANG')
97003      AND fvl64.lookup_type(+)         = 'YES_NO'
97004   AND fvl64.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
97005   AND fvl64.view_application_id(+) = 0
97006   AND fvl64.language(+)            = USERENV('LANG')
97007   
97008 )
97009 ;
97010 --
97011 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97012 
97013       trace
97014          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
97015          ,p_level    => C_LEVEL_STATEMENT
97016          ,p_module   => l_log_module);
97017 
97018 END IF;
97019 
97020 
97021 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97022       trace
97023          (p_msg      => 'END of insert_sources_166'
97024          ,p_level    => C_LEVEL_PROCEDURE
97025          ,p_module   => l_log_module);
97026 END IF;
97027 EXCEPTION
97028   WHEN xla_exceptions_pkg.application_exception THEN
97029       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
97030             trace
97031                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
97032                ,p_level    => C_LEVEL_EXCEPTION
97033                ,p_module   => l_log_module);
97034       END IF;
97035       RAISE;
97036   WHEN OTHERS THEN
97037       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
97038             trace
97039                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
97040                ,p_level    => C_LEVEL_EXCEPTION
97041                ,p_module   => l_log_module);
97042        END IF;
97043        xla_exceptions_pkg.raise_message
97044            (p_location => 'XLA_00200_AAD_S_000011_PKG.insert_sources_166');
97045 END insert_sources_166;
97046 --
97047 
97048 ---------------------------------------
97049 --
97050 -- PRIVATE FUNCTION
97051 --         EventClass_166
97052 --
97053 ----------------------------------------
97054 --
97055 FUNCTION EventClass_166
97056        (p_application_id         IN NUMBER
97057        ,p_base_ledger_id         IN NUMBER
97058        ,p_target_ledger_id       IN NUMBER
97059        ,p_language               IN VARCHAR2
97060        ,p_currency_code          IN VARCHAR2
97061        ,p_sla_ledger_id          IN NUMBER
97062        ,p_pad_start_date         IN DATE
97063        ,p_pad_end_date           IN DATE
97064        ,p_primary_ledger_id      IN NUMBER)
97065 RETURN BOOLEAN IS
97066 --
97067 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'FUTURE DATED PAYMENTS_ALL';
97068 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
97069 
97070 l_calculate_acctd_flag   VARCHAR2(1) :='N';
97071 l_calculate_g_l_flag     VARCHAR2(1) :='N';
97072 --
97073 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97074 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97075 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
97076 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97077 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97078 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
97079 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
97080 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97081 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97082 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97086 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97083 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97084 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97085 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97087 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97088 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97089 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97090 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97091 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97092 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97093 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97094 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97095 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
97096 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
97097 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
97098 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
97099 
97100 l_event_id                             NUMBER;
97101 l_previous_event_id                    NUMBER;
97102 l_first_event_id                       NUMBER;
97103 l_last_event_id                        NUMBER;
97104 
97105 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
97106 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
97107 --
97108 --
97109 l_result                    BOOLEAN := TRUE;
97110 l_rows                      NUMBER  := 1000;
97111 l_event_type_name           VARCHAR2(80) := 'All';
97112 l_event_class_name          VARCHAR2(80) := 'Future Dated Payments';
97113 l_description               VARCHAR2(4000);
97114 l_transaction_reversal      NUMBER;
97115 l_ae_header_id              NUMBER;
97116 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
97117 l_log_module                VARCHAR2(240);
97118 --
97119 l_acct_reversal_source      VARCHAR2(30);
97120 l_trx_reversal_source       VARCHAR2(30);
97121 
97122 l_continue_with_lines       BOOLEAN := TRUE;
97123 --
97124 l_acc_rev_gl_date_source    DATE;                      -- 4262811
97125 --
97126 type t_array_event_id is table of number index by binary_integer;
97127 
97128 l_rec_array_event                    t_rec_array_event;
97129 l_null_rec_array_event               t_rec_array_event;
97130 l_array_ae_header_id                 xla_number_array_type;
97131 l_actual_flag                        VARCHAR2(1) := NULL;
97132 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
97133 l_balance_type_code                  VARCHAR2(1) :=NULL;
97134 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
97135 
97136 --
97137 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
97138 --
97139 
97140 TYPE t_array_source_5 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
97141 TYPE t_array_source_8 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
97142 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
97143 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
97144 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
97145 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
97146 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
97147 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
97148 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
97149 TYPE t_array_source_42 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
97150 TYPE t_array_source_44 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
97151 TYPE t_array_source_45 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
97152 TYPE t_array_source_46 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
97153 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
97154 TYPE t_array_source_49 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
97155 TYPE t_array_source_50 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
97156 TYPE t_array_source_65 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
97157 TYPE t_array_source_66 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
97158 TYPE t_array_source_67 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
97159 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
97160 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
97161 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
97162 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
97166 
97163 TYPE t_array_source_123 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
97164 TYPE t_array_source_156 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
97165 TYPE t_array_source_157 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
97167 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
97168 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
97169 TYPE t_array_source_51 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
97170 TYPE t_array_source_52 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
97171 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
97172 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
97173 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
97174 TYPE t_array_source_56 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
97175 TYPE t_array_source_57 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
97176 TYPE t_array_source_58 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
97177 TYPE t_array_source_59 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
97178 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
97179 TYPE t_array_source_64 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
97180 TYPE t_array_source_68 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
97181 TYPE t_array_source_124 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_MATURED_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
97182 TYPE t_array_source_135 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
97183 TYPE t_array_source_140 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
97184 
97185 l_array_source_5              t_array_source_5;
97186 l_array_source_8              t_array_source_8;
97187 l_array_source_9              t_array_source_9;
97188 l_array_source_10              t_array_source_10;
97189 l_array_source_11              t_array_source_11;
97190 l_array_source_12              t_array_source_12;
97191 l_array_source_13              t_array_source_13;
97192 l_array_source_16              t_array_source_16;
97193 l_array_source_16_meaning      t_array_lookup_meaning;
97194 l_array_source_33              t_array_source_33;
97195 l_array_source_42              t_array_source_42;
97196 l_array_source_42_meaning      t_array_lookup_meaning;
97197 l_array_source_44              t_array_source_44;
97198 l_array_source_45              t_array_source_45;
97199 l_array_source_46              t_array_source_46;
97200 l_array_source_47              t_array_source_47;
97201 l_array_source_49              t_array_source_49;
97202 l_array_source_50              t_array_source_50;
97203 l_array_source_65              t_array_source_65;
97204 l_array_source_66              t_array_source_66;
97205 l_array_source_67              t_array_source_67;
97206 l_array_source_117              t_array_source_117;
97207 l_array_source_117_meaning      t_array_lookup_meaning;
97208 l_array_source_118              t_array_source_118;
97209 l_array_source_121              t_array_source_121;
97210 l_array_source_122              t_array_source_122;
97211 l_array_source_123              t_array_source_123;
97212 l_array_source_156              t_array_source_156;
97213 l_array_source_157              t_array_source_157;
97214 
97215 l_array_source_21      t_array_source_21;
97216 l_array_source_29      t_array_source_29;
97217 l_array_source_51      t_array_source_51;
97218 l_array_source_51_meaning      t_array_lookup_meaning;
97219 l_array_source_52      t_array_source_52;
97220 l_array_source_53      t_array_source_53;
97221 l_array_source_54      t_array_source_54;
97222 l_array_source_55      t_array_source_55;
97223 l_array_source_56      t_array_source_56;
97224 l_array_source_57      t_array_source_57;
97225 l_array_source_58      t_array_source_58;
97226 l_array_source_59      t_array_source_59;
97227 l_array_source_60      t_array_source_60;
97228 l_array_source_64      t_array_source_64;
97229 l_array_source_64_meaning      t_array_lookup_meaning;
97230 l_array_source_68      t_array_source_68;
97231 l_array_source_124      t_array_source_124;
97232 l_array_source_135      t_array_source_135;
97233 l_array_source_140      t_array_source_140;
97234 
97235 --
97236 CURSOR header_cur
97237 IS
97238 SELECT /*+ leading(xet) cardinality(xet,1) */
97239 -- Event Class Code: FUTURE DATED PAYMENTS
97240     xet.entity_id
97241    ,xet.legal_entity_id
97242    ,xet.entity_code
97243    ,xet.transaction_number
97244    ,xet.event_id
97245    ,xet.event_class_code
97246    ,xet.event_type_code
97247    ,xet.event_number
97248    ,xet.event_date
97249    ,xet.transaction_date
97250    ,xet.reference_num_1
97251    ,xet.reference_num_2
97252    ,xet.reference_num_3
97253    ,xet.reference_num_4
97254    ,xet.reference_char_1
97255    ,xet.reference_char_2
97256    ,xet.reference_char_3
97257    ,xet.reference_char_4
97261    ,xet.reference_date_4
97258    ,xet.reference_date_1
97259    ,xet.reference_date_2
97260    ,xet.reference_date_3
97262    ,xet.event_created_by
97263    ,xet.budgetary_control_flag 
97264   , h2.DOC_SEQUENCE_NAME    source_5
97265   , h2.AC_DOC_SEQUENCE_VALUE    source_8
97266   , h2.PAYMENT_TRANSACTION_NUMBER    source_9
97267   , h2.AC_CHECK_DATE    source_10
97268   , h2.CBA_BANK_ACCOUNT_NAME    source_11
97269   , h2.AC_CURRENCY_CODE    source_12
97270   , h2.CGAC_AP_ASSET_CCID    source_13
97271   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_16
97272   , fvl16.meaning   source_16_meaning
97273   , h2.CGAC_CASH_CLEARING_CCID    source_33
97274   , h3.ASP_AUTO_OFFSET_FLAG    source_42
97275   , fvl42.meaning   source_42_meaning
97276   , h2.CGAC_GAIN_CCID    source_44
97277   , h3.ASP_GAIN_CCID    source_45
97278   , h2.CGAC_LOSS_CCID    source_46
97279   , h3.ASP_LOSS_CCID    source_47
97280   , h3.ASP_ROUNDING_ERROR_CCID    source_49
97281   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_50
97282   , h2.AC_VENDOR_ID    source_65
97283   , h2.AC_VENDOR_SITE_ID    source_66
97284   , h2.THIRD_PARTY_TYPE    source_67
97285   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_117
97286   , fvl117.meaning   source_117_meaning
97287   , h2.AC_FUTURE_PAY_DUE_DATE    source_118
97288   , h2.AC_EXCHANGE_DATE    source_121
97289   , h2.AC_EXCHANGE_RATE    source_122
97290   , h2.AC_EXCHANGE_RATE_TYPE    source_123
97291   , h2.AC_DOC_CATEGORY_CODE    source_156
97292   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_157
97293   FROM xla_events_gt     xet 
97294   , AP_PAYMENT_EXTRACT_HEADER_V  h2
97295   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
97296   , fnd_lookup_values    fvl16
97297   , fnd_lookup_values    fvl42
97298   , fnd_lookup_values    fvl117
97299  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
97300    and xet.event_class_code = C_EVENT_CLASS_CODE
97301    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
97302  AND h3.asp_org_id = h2.ac_org_id   AND fvl16.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
97303   AND fvl16.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
97304   AND fvl16.view_application_id(+) = 200
97305   AND fvl16.language(+)            = USERENV('LANG')
97306      AND fvl42.lookup_type(+)         = 'YES_NO'
97307   AND fvl42.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
97308   AND fvl42.view_application_id(+) = 0
97309   AND fvl42.language(+)            = USERENV('LANG')
97310      AND fvl117.lookup_type(+)         = 'YES_NO'
97311   AND fvl117.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
97312   AND fvl117.view_application_id(+) = 0
97313   AND fvl117.language(+)            = USERENV('LANG')
97314   
97315  ORDER BY event_id
97316 ;
97317 
97318 
97319 --
97320 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
97321 IS
97322 SELECT  /*+ leading(xet) cardinality(xet,1) */
97323 -- Event Class Code: FUTURE DATED PAYMENTS
97324     xet.entity_id
97325    ,xet.legal_entity_id
97326    ,xet.entity_code
97327    ,xet.transaction_number
97328    ,xet.event_id
97329    ,xet.event_class_code
97330    ,xet.event_type_code
97331    ,xet.event_number
97332    ,xet.event_date
97333    ,xet.transaction_date
97334    ,xet.reference_num_1
97335    ,xet.reference_num_2
97336    ,xet.reference_num_3
97337    ,xet.reference_num_4
97338    ,xet.reference_char_1
97339    ,xet.reference_char_2
97340    ,xet.reference_char_3
97341    ,xet.reference_char_4
97342    ,xet.reference_date_1
97343    ,xet.reference_date_2
97344    ,xet.reference_date_3
97345    ,xet.reference_date_4
97346    ,xet.event_created_by
97347    ,xet.budgetary_control_flag
97348  , l1.LINE_NUMBER  
97349   , l1.APHD_PAYMENT_BASE_AMT    source_21
97350   , l1.AID_DIST_CCID    source_29
97351   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_51
97352   , fvl51.meaning   source_51_meaning
97353   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_52
97354   , l1.APHD_AMOUNT    source_53
97355   , l1.BUS_FLOW_AP_APP_ID    source_54
97356   , l1.BUS_FLOW_PAYMENT_DIST_TYPE    source_55
97357   , l1.BUS_FLOW_PAYMENT_ENTITY_CODE    source_56
97358   , l1.BUS_FLOW_PAYMENT_DIST_ID    source_57
97359   , l1.BUS_FLOW_PAYMENT_ID    source_58
97360   , l1.APHD_PAYMENT_HIST_DIST_ID    source_59
97361   , l1.DISTRIBUTION_LINK_TYPE    source_60
97362   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_64
97363   , fvl64.meaning   source_64_meaning
97364   , l1.APHD_REV_PAY_HIST_DIST_ID    source_68
97365   , l1.APHD_MATURED_BASE_AMOUNT    source_124
97366   , l1.PMT_MAT_BASE_AMT_DIFF    source_135
97367   , l1.PMT_MAT_GAIN_LOSS_INDICATOR    source_140
97368   FROM xla_events_gt     xet 
97369   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
97370   , fnd_lookup_values    fvl51
97371   , fnd_lookup_values    fvl64
97372  WHERE xet.event_id between x_first_event_id and x_last_event_id
97373    and xet.event_date between p_pad_start_date and p_pad_end_date
97374    and xet.event_class_code = C_EVENT_CLASS_CODE
97375    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
97376    AND fvl51.lookup_type(+)         = 'PAY_DIST_TYPES'
97377   AND fvl51.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
97378   AND fvl51.view_application_id(+) = 200
97379   AND fvl51.language(+)            = USERENV('LANG')
97380      AND fvl64.lookup_type(+)         = 'YES_NO'
97381   AND fvl64.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
97382   AND fvl64.view_application_id(+) = 0
97386 --
97383   AND fvl64.language(+)            = USERENV('LANG')
97384   ;
97385 
97387 BEGIN
97388 IF g_log_enabled THEN
97389    l_log_module := C_DEFAULT_MODULE||'.EventClass_166';
97390 END IF;
97391 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97392    trace
97393       (p_msg      => 'BEGIN of EventClass_166'
97394       ,p_level    => C_LEVEL_PROCEDURE
97395       ,p_module   => l_log_module);
97396 END IF;
97397 
97398 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97399    trace
97400       (p_msg      => 'p_application_id = '||p_application_id||
97401                      ' - p_base_ledger_id = '||p_base_ledger_id||
97402                      ' - p_target_ledger_id  = '||p_target_ledger_id||
97403                      ' - p_language = '||p_language||
97404                      ' - p_currency_code = '||p_currency_code||
97405                      ' - p_sla_ledger_id = '||p_sla_ledger_id
97406       ,p_level    => C_LEVEL_STATEMENT
97407       ,p_module   => l_log_module);
97408 END IF;
97409 --
97410 -- initialze arrays
97411 --
97412 g_array_event.DELETE;
97413 l_rec_array_event := l_null_rec_array_event;
97414 --
97415 --------------------------------------
97416 -- 4262811 Initialze MPA Line Number
97417 --------------------------------------
97418 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
97419 
97420 --
97421 
97422 --
97423 OPEN header_cur;
97424 --
97425 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97426    trace
97427    (p_msg      => 'SQL - FETCH header_cur'
97428    ,p_level    => C_LEVEL_STATEMENT
97429    ,p_module   => l_log_module);
97430 END IF;
97431 --
97432 LOOP
97433 FETCH header_cur BULK COLLECT INTO
97434         l_array_entity_id
97435       , l_array_legal_entity_id
97436       , l_array_entity_code
97437       , l_array_transaction_num
97438       , l_array_event_id
97439       , l_array_class_code
97440       , l_array_event_type
97441       , l_array_event_number
97442       , l_array_event_date
97443       , l_array_transaction_date
97444       , l_array_reference_num_1
97445       , l_array_reference_num_2
97446       , l_array_reference_num_3
97447       , l_array_reference_num_4
97448       , l_array_reference_char_1
97449       , l_array_reference_char_2
97450       , l_array_reference_char_3
97451       , l_array_reference_char_4
97452       , l_array_reference_date_1
97453       , l_array_reference_date_2
97454       , l_array_reference_date_3
97455       , l_array_reference_date_4
97456       , l_array_event_created_by
97457       , l_array_budgetary_control_flag 
97458       , l_array_source_5
97459       , l_array_source_8
97460       , l_array_source_9
97461       , l_array_source_10
97462       , l_array_source_11
97463       , l_array_source_12
97464       , l_array_source_13
97465       , l_array_source_16
97466       , l_array_source_16_meaning
97467       , l_array_source_33
97468       , l_array_source_42
97469       , l_array_source_42_meaning
97470       , l_array_source_44
97471       , l_array_source_45
97472       , l_array_source_46
97473       , l_array_source_47
97474       , l_array_source_49
97475       , l_array_source_50
97476       , l_array_source_65
97477       , l_array_source_66
97478       , l_array_source_67
97479       , l_array_source_117
97480       , l_array_source_117_meaning
97481       , l_array_source_118
97482       , l_array_source_121
97483       , l_array_source_122
97484       , l_array_source_123
97485       , l_array_source_156
97486       , l_array_source_157
97487       LIMIT l_rows;
97488 --
97489 IF (C_LEVEL_EVENT >= g_log_level) THEN
97490    trace
97491    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
97492    ,p_level    => C_LEVEL_EVENT
97493    ,p_module   => l_log_module);
97494 END IF;
97495 --
97496 EXIT WHEN l_array_entity_id.COUNT = 0;
97497 
97498 -- initialize arrays
97499 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
97500 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
97501 
97502 --
97503 -- Bug 4458708
97504 --
97505 XLA_AE_LINES_PKG.g_LineNumber := 0;
97506 
97507 
97508 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
97509 g_last_hdr_idx := l_array_event_id.LAST;
97510 --
97511 -- loop for the headers. Each iteration is for each header extract row
97512 -- fetched in header cursor
97513 --
97514 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
97515 
97516 --
97517 -- set event info as cache for other routines to refer event attributes
97518 --
97519 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
97520    (p_application_id           => p_application_id
97521    ,p_primary_ledger_id        => p_primary_ledger_id
97522    ,p_base_ledger_id           => p_base_ledger_id
97523    ,p_target_ledger_id         => p_target_ledger_id
97524    ,p_entity_id                => l_array_entity_id(hdr_idx)
97525    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
97526    ,p_entity_code              => l_array_entity_code(hdr_idx)
97527    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
97528    ,p_event_id                 => l_array_event_id(hdr_idx)
97529    ,p_event_class_code         => l_array_class_code(hdr_idx)
97533    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
97530    ,p_event_type_code          => l_array_event_type(hdr_idx)
97531    ,p_event_number             => l_array_event_number(hdr_idx)
97532    ,p_event_date               => l_array_event_date(hdr_idx)
97534    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
97535    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
97536    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
97537    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
97538    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
97539    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
97540    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
97541    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
97542    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
97543    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
97544    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
97545    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
97546    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
97547    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
97548 
97549 --
97550 -- set the status of entry to C_VALID (0)
97551 --
97552 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
97553 
97554 --
97555 -- initialize a row for ae header
97556 --
97557 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
97558 
97559 l_event_id := l_array_event_id(hdr_idx);
97560 
97561 --
97562 -- storing the hdr_idx for event. May be used by line cursor.
97563 --
97564 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
97565 
97566 --
97567 -- store sources from header extract. This can be improved to
97568 -- store only those sources from header extract that may be used in lines
97569 --
97570 
97571 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
97572 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
97573 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
97574 g_array_event(l_event_id).array_value_date('source_10') := l_array_source_10(hdr_idx);
97575 g_array_event(l_event_id).array_value_char('source_11') := l_array_source_11(hdr_idx);
97576 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
97577 g_array_event(l_event_id).array_value_num('source_13') := l_array_source_13(hdr_idx);
97578 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
97579 g_array_event(l_event_id).array_value_char('source_16_meaning') := l_array_source_16_meaning(hdr_idx);
97580 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
97581 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
97582 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
97583 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
97584 g_array_event(l_event_id).array_value_num('source_45') := l_array_source_45(hdr_idx);
97585 g_array_event(l_event_id).array_value_num('source_46') := l_array_source_46(hdr_idx);
97586 g_array_event(l_event_id).array_value_num('source_47') := l_array_source_47(hdr_idx);
97587 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
97588 g_array_event(l_event_id).array_value_char('source_50') := l_array_source_50(hdr_idx);
97589 g_array_event(l_event_id).array_value_num('source_65') := l_array_source_65(hdr_idx);
97590 g_array_event(l_event_id).array_value_num('source_66') := l_array_source_66(hdr_idx);
97591 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
97592 g_array_event(l_event_id).array_value_char('source_117') := l_array_source_117(hdr_idx);
97593 g_array_event(l_event_id).array_value_char('source_117_meaning') := l_array_source_117_meaning(hdr_idx);
97594 g_array_event(l_event_id).array_value_date('source_118') := l_array_source_118(hdr_idx);
97595 g_array_event(l_event_id).array_value_date('source_121') := l_array_source_121(hdr_idx);
97596 g_array_event(l_event_id).array_value_num('source_122') := l_array_source_122(hdr_idx);
97597 g_array_event(l_event_id).array_value_char('source_123') := l_array_source_123(hdr_idx);
97598 g_array_event(l_event_id).array_value_char('source_156') := l_array_source_156(hdr_idx);
97599 g_array_event(l_event_id).array_value_num('source_157') := l_array_source_157(hdr_idx);
97600 
97601 --
97602 -- initilaize the status of ae headers for diffrent balance types
97603 -- the status is initialised to C_NOT_CREATED (2)
97604 --
97605 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
97606 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
97607 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
97608 
97609 --
97610 -- call api to validate and store accounting attributes for header
97611 --
97612 
97613 ------------------------------------------------------------
97614 -- Accrual Reversal : to get date for Standard Source (NONE)
97615 ------------------------------------------------------------
97616 l_acc_rev_gl_date_source := NULL;
97617 
97618      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
97619       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_156');
97623       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_8');
97620      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
97621       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_157');
97622      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
97624      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
97625       l_rec_acct_attrs.array_date_value(4) := 
97626 xla_ae_sources_pkg.GetSystemSourceDate(
97627    p_source_code           => 'XLA_EVENT_DATE'
97628  , p_source_type_code      => 'Y'
97629  , p_source_application_id =>  602
97630 );
97631 
97632 
97633 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
97634 
97635 XLA_AE_HEADER_PKG.SetJeCategoryName;
97636 
97637 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
97638 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
97639 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
97640 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
97641 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
97642 
97643 
97644 --
97645 xla_ae_header_pkg.SetHdrDescription(
97646    p_description => Description_2 (
97647    p_application_id => p_application_id 
97648  , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
97649  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
97650  , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
97651  , p_source_10 => g_array_event(l_event_id).array_value_date('source_10')
97652  , p_source_11 => g_array_event(l_event_id).array_value_char('source_11')
97653  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
97654    )
97655 );
97656 --
97657 
97658 -- No header level analytical criteria
97659 
97660 --
97661 --accounting attribute enhancement, bug 3612931
97662 --
97663 l_trx_reversal_source := SUBSTR(NULL, 1,30);
97664 
97665 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
97666    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
97667 
97668    xla_accounting_err_pkg.build_message
97669       (p_appli_s_name            => 'XLA'
97670       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
97671       ,p_token_1                 => 'ACCT_ATTR_NAME'
97672       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
97673       ,p_token_2                 => 'PRODUCT_NAME'
97674       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
97675       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
97676       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
97677       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
97678 
97679 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
97680    --
97681    -- following sets the accounting attributes needed to reverse
97682    -- accounting for a distributeion
97683    --
97684    xla_ae_lines_pkg.SetTrxReversalAttrs
97685       (p_event_id              => l_event_id
97686       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
97687       ,p_trx_reversal_source   => l_trx_reversal_source);
97688 
97689 END IF;
97690 
97691 
97692 ----------------------------------------------------------------
97693 -- 4262811 -  update the header statuses to invalid in need be
97694 ----------------------------------------------------------------
97695 --
97696 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
97697 
97698 
97699   -----------------------------------------------
97700   -- No accrual reversal for the event class/type
97701   -----------------------------------------------
97702 ----------------------------------------------------------------
97703 
97704 --
97705 -- this ends the header loop iteration for one bulk fetch
97706 --
97707 END LOOP;
97708 
97709 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
97710 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
97711 
97712 --
97713 -- insert dummy rows into lines gt table that were created due to
97714 -- transaction reversals
97715 --
97716 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
97717    l_result := XLA_AE_LINES_PKG.InsertLines;
97718 END IF;
97719 
97720 --
97721 -- reset the temp_line_num for each set of events fetched from header
97722 -- cursor rather than doing it for each new event in line cursor
97723 -- Bug 3939231
97724 --
97725 xla_ae_lines_pkg.g_temp_line_num := 0;
97726 
97727 
97728 
97729 --
97730 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
97731 --
97732 --
97733 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97734 
97735       trace
97736          (p_msg      => 'SQL - FETCH line_cur'
97737          ,p_level    => C_LEVEL_STATEMENT
97738          ,p_module   => l_log_module);
97739 
97740 END IF;
97741 --
97742 --
97743 LOOP
97744   --
97745   FETCH line_cur BULK COLLECT INTO
97746         l_array_entity_id
97747       , l_array_legal_entity_id
97748       , l_array_entity_code
97752       , l_array_event_type
97749       , l_array_transaction_num
97750       , l_array_event_id
97751       , l_array_class_code
97753       , l_array_event_number
97754       , l_array_event_date
97755       , l_array_transaction_date
97756       , l_array_reference_num_1
97757       , l_array_reference_num_2
97758       , l_array_reference_num_3
97759       , l_array_reference_num_4
97760       , l_array_reference_char_1
97761       , l_array_reference_char_2
97762       , l_array_reference_char_3
97763       , l_array_reference_char_4
97764       , l_array_reference_date_1
97765       , l_array_reference_date_2
97766       , l_array_reference_date_3
97767       , l_array_reference_date_4
97768       , l_array_event_created_by
97769       , l_array_budgetary_control_flag
97770       , l_array_extract_line_num 
97771       , l_array_source_21
97772       , l_array_source_29
97773       , l_array_source_51
97774       , l_array_source_51_meaning
97775       , l_array_source_52
97776       , l_array_source_53
97777       , l_array_source_54
97778       , l_array_source_55
97779       , l_array_source_56
97780       , l_array_source_57
97781       , l_array_source_58
97782       , l_array_source_59
97783       , l_array_source_60
97784       , l_array_source_64
97785       , l_array_source_64_meaning
97786       , l_array_source_68
97787       , l_array_source_124
97788       , l_array_source_135
97789       , l_array_source_140
97790       LIMIT l_rows;
97791 
97792   --
97793   IF (C_LEVEL_EVENT >= g_log_level) THEN
97794             trace
97795                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
97796                ,p_level    => C_LEVEL_EVENT
97797                ,p_module   => l_log_module);
97798   END IF;
97799   --
97800   EXIT WHEN l_array_entity_id.count = 0;
97801 
97802   XLA_AE_LINES_PKG.g_rec_lines := null;
97803 
97804 --
97805 -- Bug 4458708
97806 --
97807 XLA_AE_LINES_PKG.g_LineNumber := 0;
97808 --
97809 --
97810 
97811 FOR Idx IN 1..l_array_event_id.count LOOP
97812    --
97813    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
97814    --
97815    l_event_id := l_array_event_id(idx);  -- 5648433
97816 
97817    --
97818    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
97819    --
97820 
97821    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
97822              (g_array_event(l_event_id).array_value_num('header_index'))
97823          ,'N'
97824          ) <> 'Y'
97825    THEN
97826       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97827          trace
97828             (p_msg      => 'Trancaction revesal option is not Y '
97829             ,p_level    => C_LEVEL_STATEMENT
97830             ,p_module   => l_log_module);
97831       END IF;
97832 
97833 --
97834 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
97835 --
97836 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
97837 --
97838 -- set event info as cache for other routines to refer event attributes
97839 --
97840 
97841 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
97842    l_previous_event_id := l_event_id;
97843 
97844    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
97845       (p_application_id           => p_application_id
97846       ,p_primary_ledger_id        => p_primary_ledger_id
97847       ,p_base_ledger_id           => p_base_ledger_id
97848       ,p_target_ledger_id         => p_target_ledger_id
97849       ,p_entity_id                => l_array_entity_id(Idx)
97850       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
97851       ,p_entity_code              => l_array_entity_code(Idx)
97852       ,p_transaction_num          => l_array_transaction_num(Idx)
97853       ,p_event_id                 => l_array_event_id(Idx)
97854       ,p_event_class_code         => l_array_class_code(Idx)
97855       ,p_event_type_code          => l_array_event_type(Idx)
97856       ,p_event_number             => l_array_event_number(Idx)
97857       ,p_event_date               => l_array_event_date(Idx)
97858       ,p_transaction_date         => l_array_transaction_date(Idx)
97859       ,p_reference_num_1          => l_array_reference_num_1(Idx)
97860       ,p_reference_num_2          => l_array_reference_num_2(Idx)
97861       ,p_reference_num_3          => l_array_reference_num_3(Idx)
97862       ,p_reference_num_4          => l_array_reference_num_4(Idx)
97863       ,p_reference_char_1         => l_array_reference_char_1(Idx)
97864       ,p_reference_char_2         => l_array_reference_char_2(Idx)
97865       ,p_reference_char_3         => l_array_reference_char_3(Idx)
97866       ,p_reference_char_4         => l_array_reference_char_4(Idx)
97867       ,p_reference_date_1         => l_array_reference_date_1(Idx)
97868       ,p_reference_date_2         => l_array_reference_date_2(Idx)
97869       ,p_reference_date_3         => l_array_reference_date_3(Idx)
97870       ,p_reference_date_4         => l_array_reference_date_4(Idx)
97871       ,p_event_created_by         => l_array_event_created_by(Idx)
97872       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
97873        --
97874 END IF;
97875 
97876 
97877 
97878 --
97879 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
97880 
97884    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
97881 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
97882 
97883 IF l_continue_with_lines THEN
97885       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
97886 
97887       xla_accounting_err_pkg.build_message
97888          (p_appli_s_name            => 'XLA'
97889          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
97890          ,p_token_1                 => 'LINE_NUMBER'
97891          ,p_value_1                 => l_array_extract_line_num(Idx)
97892          ,p_token_2                 => 'PRODUCT_NAME'
97893          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
97894          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
97895          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
97896          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
97897 
97898    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
97899       --
97900       -- following sets the accounting attributes needed to reverse
97901       -- accounting for a distributeion
97902       --
97903 
97904       --
97905       -- 5217187
97906       --
97907       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
97908       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
97909                                        g_array_event(l_event_id).array_value_num('header_index'));
97910       --
97911       --
97912 
97913       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
97914       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_52(Idx);
97915       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
97916       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_59(Idx);
97917       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
97918       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_60(Idx);
97919       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
97920       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_67');
97921       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
97922       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_68(Idx);
97923       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
97924       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_60(Idx);
97925 
97926 
97927       xla_ae_lines_pkg.SetAcctReversalAttrs
97928          (p_event_id             => l_event_id
97929          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
97930          ,p_calculate_acctd_flag => l_calculate_acctd_flag
97931          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
97932    END IF;
97933 
97934    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
97935        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
97936 
97937 --
97938 AcctLineType_62 (
97939  p_application_id  => p_application_id
97940  ,p_event_id     => l_event_id
97941  ,p_calculate_acctd_flag => l_calculate_acctd_flag
97942  ,p_calculate_g_l_flag => l_calculate_g_l_flag
97943  ,p_actual_flag => l_actual_flag
97944  ,p_balance_type_code => l_balance_type_code
97945  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
97946  
97947  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
97948  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
97949  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
97950  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
97951  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
97952  , p_source_51 => l_array_source_51(Idx)
97953  , p_source_51_meaning => l_array_source_51_meaning(Idx)
97954  , p_source_52 => l_array_source_52(Idx)
97955  , p_source_53 => l_array_source_53(Idx)
97956  , p_source_54 => l_array_source_54(Idx)
97957  , p_source_55 => l_array_source_55(Idx)
97958  , p_source_56 => l_array_source_56(Idx)
97959  , p_source_57 => l_array_source_57(Idx)
97960  , p_source_58 => l_array_source_58(Idx)
97961  , p_source_59 => l_array_source_59(Idx)
97962  , p_source_60 => l_array_source_60(Idx)
97963  , p_source_64 => l_array_source_64(Idx)
97964  , p_source_64_meaning => l_array_source_64_meaning(Idx)
97965  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
97966  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
97967  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
97968  , p_source_68 => l_array_source_68(Idx)
97969  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
97970  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
97971  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
97972  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
97973  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
97974  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
97975  , p_source_124 => l_array_source_124(Idx)
97976  );
97977 If(l_balance_type_code = 'A') THEN
97978   l_actual_gain_loss_ref := l_gain_or_loss_ref;
97979 END IF;
97980 
97981 --
97982 
97983 
97984 --
97985 AcctLineType_63 (
97986  p_application_id  => p_application_id
97990  ,p_actual_flag => l_actual_flag
97987  ,p_event_id     => l_event_id
97988  ,p_calculate_acctd_flag => l_calculate_acctd_flag
97989  ,p_calculate_g_l_flag => l_calculate_g_l_flag
97991  ,p_balance_type_code => l_balance_type_code
97992  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
97993  
97994  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
97995  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
97996  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
97997  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
97998  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
97999  , p_source_51 => l_array_source_51(Idx)
98000  , p_source_51_meaning => l_array_source_51_meaning(Idx)
98001  , p_source_52 => l_array_source_52(Idx)
98002  , p_source_53 => l_array_source_53(Idx)
98003  , p_source_54 => l_array_source_54(Idx)
98004  , p_source_55 => l_array_source_55(Idx)
98005  , p_source_56 => l_array_source_56(Idx)
98006  , p_source_57 => l_array_source_57(Idx)
98007  , p_source_58 => l_array_source_58(Idx)
98008  , p_source_59 => l_array_source_59(Idx)
98009  , p_source_60 => l_array_source_60(Idx)
98010  , p_source_64 => l_array_source_64(Idx)
98011  , p_source_64_meaning => l_array_source_64_meaning(Idx)
98012  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98013  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98014  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98015  , p_source_68 => l_array_source_68(Idx)
98016  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
98017  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
98018  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98019  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98020  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98021  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98022  , p_source_124 => l_array_source_124(Idx)
98023  );
98024 If(l_balance_type_code = 'A') THEN
98025   l_actual_gain_loss_ref := l_gain_or_loss_ref;
98026 END IF;
98027 
98028 --
98029 
98030 
98031 --
98032 AcctLineType_64 (
98033  p_application_id  => p_application_id
98034  ,p_event_id     => l_event_id
98035  ,p_calculate_acctd_flag => l_calculate_acctd_flag
98036  ,p_calculate_g_l_flag => l_calculate_g_l_flag
98037  ,p_actual_flag => l_actual_flag
98038  ,p_balance_type_code => l_balance_type_code
98039  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98040  
98041  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98042  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
98043  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
98044  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
98045  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98046  , p_source_51 => l_array_source_51(Idx)
98047  , p_source_51_meaning => l_array_source_51_meaning(Idx)
98048  , p_source_52 => l_array_source_52(Idx)
98049  , p_source_53 => l_array_source_53(Idx)
98050  , p_source_54 => l_array_source_54(Idx)
98051  , p_source_55 => l_array_source_55(Idx)
98052  , p_source_56 => l_array_source_56(Idx)
98053  , p_source_57 => l_array_source_57(Idx)
98054  , p_source_58 => l_array_source_58(Idx)
98055  , p_source_59 => l_array_source_59(Idx)
98056  , p_source_60 => l_array_source_60(Idx)
98057  , p_source_64 => l_array_source_64(Idx)
98058  , p_source_64_meaning => l_array_source_64_meaning(Idx)
98059  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98060  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98061  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98062  , p_source_68 => l_array_source_68(Idx)
98063  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
98064  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
98065  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98066  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98067  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98068  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98069  , p_source_124 => l_array_source_124(Idx)
98070  );
98071 If(l_balance_type_code = 'A') THEN
98072   l_actual_gain_loss_ref := l_gain_or_loss_ref;
98073 END IF;
98074 
98075 --
98076 
98077 
98078 --
98079 AcctLineType_71 (
98080  p_application_id  => p_application_id
98081  ,p_event_id     => l_event_id
98082  ,p_calculate_acctd_flag => l_calculate_acctd_flag
98083  ,p_calculate_g_l_flag => l_calculate_g_l_flag
98084  ,p_actual_flag => l_actual_flag
98085  ,p_balance_type_code => l_balance_type_code
98086  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98087  
98088  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98089  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
98090  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
98091  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
98092  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98093  , p_source_51 => l_array_source_51(Idx)
98094  , p_source_51_meaning => l_array_source_51_meaning(Idx)
98098  , p_source_55 => l_array_source_55(Idx)
98095  , p_source_52 => l_array_source_52(Idx)
98096  , p_source_53 => l_array_source_53(Idx)
98097  , p_source_54 => l_array_source_54(Idx)
98099  , p_source_56 => l_array_source_56(Idx)
98100  , p_source_57 => l_array_source_57(Idx)
98101  , p_source_58 => l_array_source_58(Idx)
98102  , p_source_59 => l_array_source_59(Idx)
98103  , p_source_60 => l_array_source_60(Idx)
98104  , p_source_64 => l_array_source_64(Idx)
98105  , p_source_64_meaning => l_array_source_64_meaning(Idx)
98106  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98107  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98108  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98109  , p_source_68 => l_array_source_68(Idx)
98110  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
98111  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
98112  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98113  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98114  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98115  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98116  , p_source_124 => l_array_source_124(Idx)
98117  );
98118 If(l_balance_type_code = 'A') THEN
98119   l_actual_gain_loss_ref := l_gain_or_loss_ref;
98120 END IF;
98121 
98122 --
98123 
98124 
98125 --
98126 AcctLineType_72 (
98127  p_application_id  => p_application_id
98128  ,p_event_id     => l_event_id
98129  ,p_calculate_acctd_flag => l_calculate_acctd_flag
98130  ,p_calculate_g_l_flag => l_calculate_g_l_flag
98131  ,p_actual_flag => l_actual_flag
98132  ,p_balance_type_code => l_balance_type_code
98133  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98134  
98135  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98136  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
98137  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
98138  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
98139  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98140  , p_source_51 => l_array_source_51(Idx)
98141  , p_source_51_meaning => l_array_source_51_meaning(Idx)
98142  , p_source_52 => l_array_source_52(Idx)
98143  , p_source_53 => l_array_source_53(Idx)
98144  , p_source_54 => l_array_source_54(Idx)
98145  , p_source_55 => l_array_source_55(Idx)
98146  , p_source_56 => l_array_source_56(Idx)
98147  , p_source_57 => l_array_source_57(Idx)
98148  , p_source_58 => l_array_source_58(Idx)
98149  , p_source_59 => l_array_source_59(Idx)
98150  , p_source_60 => l_array_source_60(Idx)
98151  , p_source_64 => l_array_source_64(Idx)
98152  , p_source_64_meaning => l_array_source_64_meaning(Idx)
98153  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98154  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98155  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98156  , p_source_68 => l_array_source_68(Idx)
98157  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
98158  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
98159  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98160  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98161  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98162  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98163  , p_source_124 => l_array_source_124(Idx)
98164  );
98165 If(l_balance_type_code = 'A') THEN
98166   l_actual_gain_loss_ref := l_gain_or_loss_ref;
98167 END IF;
98168 
98169 --
98170 
98171 
98172 --
98173 AcctLineType_73 (
98174  p_application_id  => p_application_id
98175  ,p_event_id     => l_event_id
98176  ,p_calculate_acctd_flag => l_calculate_acctd_flag
98177  ,p_calculate_g_l_flag => l_calculate_g_l_flag
98178  ,p_actual_flag => l_actual_flag
98179  ,p_balance_type_code => l_balance_type_code
98180  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98181  
98182  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98183  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
98184  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
98185  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
98186  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98187  , p_source_51 => l_array_source_51(Idx)
98188  , p_source_51_meaning => l_array_source_51_meaning(Idx)
98189  , p_source_52 => l_array_source_52(Idx)
98190  , p_source_53 => l_array_source_53(Idx)
98191  , p_source_54 => l_array_source_54(Idx)
98192  , p_source_55 => l_array_source_55(Idx)
98193  , p_source_56 => l_array_source_56(Idx)
98194  , p_source_57 => l_array_source_57(Idx)
98195  , p_source_58 => l_array_source_58(Idx)
98196  , p_source_59 => l_array_source_59(Idx)
98197  , p_source_60 => l_array_source_60(Idx)
98198  , p_source_64 => l_array_source_64(Idx)
98199  , p_source_64_meaning => l_array_source_64_meaning(Idx)
98200  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98201  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98202  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98203  , p_source_68 => l_array_source_68(Idx)
98207  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98204  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
98205  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
98206  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98208  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98209  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98210  , p_source_124 => l_array_source_124(Idx)
98211  );
98212 If(l_balance_type_code = 'A') THEN
98213   l_actual_gain_loss_ref := l_gain_or_loss_ref;
98214 END IF;
98215 
98216 --
98217 
98218 
98219 --
98220 AcctLineType_93 (
98221  p_application_id  => p_application_id
98222  ,p_event_id     => l_event_id
98223  ,p_calculate_acctd_flag => l_calculate_acctd_flag
98224  ,p_calculate_g_l_flag => l_calculate_g_l_flag
98225  ,p_actual_flag => l_actual_flag
98226  ,p_balance_type_code => l_balance_type_code
98227  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98228  
98229  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98230  , p_source_21 => l_array_source_21(Idx)
98231  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98232  , p_source_51 => l_array_source_51(Idx)
98233  , p_source_51_meaning => l_array_source_51_meaning(Idx)
98234  , p_source_52 => l_array_source_52(Idx)
98235  , p_source_53 => l_array_source_53(Idx)
98236  , p_source_54 => l_array_source_54(Idx)
98237  , p_source_55 => l_array_source_55(Idx)
98238  , p_source_56 => l_array_source_56(Idx)
98239  , p_source_57 => l_array_source_57(Idx)
98240  , p_source_58 => l_array_source_58(Idx)
98241  , p_source_59 => l_array_source_59(Idx)
98242  , p_source_60 => l_array_source_60(Idx)
98243  , p_source_64 => l_array_source_64(Idx)
98244  , p_source_64_meaning => l_array_source_64_meaning(Idx)
98245  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98246  , p_source_68 => l_array_source_68(Idx)
98247  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98248  );
98249 If(l_balance_type_code = 'A') THEN
98250   l_actual_gain_loss_ref := l_gain_or_loss_ref;
98251 END IF;
98252 
98253 --
98254 
98255 
98256 --
98257 AcctLineType_94 (
98258  p_application_id  => p_application_id
98259  ,p_event_id     => l_event_id
98260  ,p_calculate_acctd_flag => l_calculate_acctd_flag
98261  ,p_calculate_g_l_flag => l_calculate_g_l_flag
98262  ,p_actual_flag => l_actual_flag
98263  ,p_balance_type_code => l_balance_type_code
98264  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98265  
98266  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98267  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
98268  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
98269  , p_source_21 => l_array_source_21(Idx)
98270  , p_source_29 => l_array_source_29(Idx)
98271  , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
98272  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98273  , p_source_51 => l_array_source_51(Idx)
98274  , p_source_51_meaning => l_array_source_51_meaning(Idx)
98275  , p_source_52 => l_array_source_52(Idx)
98276  , p_source_53 => l_array_source_53(Idx)
98277  , p_source_54 => l_array_source_54(Idx)
98278  , p_source_55 => l_array_source_55(Idx)
98279  , p_source_56 => l_array_source_56(Idx)
98280  , p_source_57 => l_array_source_57(Idx)
98281  , p_source_58 => l_array_source_58(Idx)
98282  , p_source_59 => l_array_source_59(Idx)
98283  , p_source_60 => l_array_source_60(Idx)
98284  , p_source_64 => l_array_source_64(Idx)
98285  , p_source_64_meaning => l_array_source_64_meaning(Idx)
98286  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98287  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98288  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98289  , p_source_68 => l_array_source_68(Idx)
98290  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98291  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98292  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98293  );
98294 If(l_balance_type_code = 'A') THEN
98295   l_actual_gain_loss_ref := l_gain_or_loss_ref;
98296 END IF;
98297 
98298 --
98299 
98300 
98301 --
98302 AcctLineType_96 (
98303  p_application_id  => p_application_id
98304  ,p_event_id     => l_event_id
98305  ,p_calculate_acctd_flag => l_calculate_acctd_flag
98306  ,p_calculate_g_l_flag => l_calculate_g_l_flag
98307  ,p_actual_flag => l_actual_flag
98308  ,p_balance_type_code => l_balance_type_code
98309  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98310  
98311  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
98312  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
98313  , p_source_29 => l_array_source_29(Idx)
98314  , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
98315  , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
98316  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
98317  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
98318  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98319  , p_source_51 => l_array_source_51(Idx)
98320  , p_source_51_meaning => l_array_source_51_meaning(Idx)
98324  , p_source_56 => l_array_source_56(Idx)
98321  , p_source_52 => l_array_source_52(Idx)
98322  , p_source_54 => l_array_source_54(Idx)
98323  , p_source_55 => l_array_source_55(Idx)
98325  , p_source_57 => l_array_source_57(Idx)
98326  , p_source_58 => l_array_source_58(Idx)
98327  , p_source_59 => l_array_source_59(Idx)
98328  , p_source_60 => l_array_source_60(Idx)
98329  , p_source_64 => l_array_source_64(Idx)
98330  , p_source_64_meaning => l_array_source_64_meaning(Idx)
98331  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98332  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98333  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98334  , p_source_68 => l_array_source_68(Idx)
98335  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98336  , p_source_135 => l_array_source_135(Idx)
98337  );
98338 If(l_balance_type_code = 'A') THEN
98339   l_actual_gain_loss_ref := l_gain_or_loss_ref;
98340 END IF;
98341 
98342 --
98343 
98344 
98345 --
98346 AcctLineType_99 (
98347  p_application_id  => p_application_id
98348  ,p_event_id     => l_event_id
98349  ,p_calculate_acctd_flag => l_calculate_acctd_flag
98350  ,p_calculate_g_l_flag => l_calculate_g_l_flag
98351  ,p_actual_flag => l_actual_flag
98352  ,p_balance_type_code => l_balance_type_code
98353  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98354  
98355  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98356  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
98357  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
98358  , p_source_29 => l_array_source_29(Idx)
98359  , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
98360  , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
98361  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98362  , p_source_51 => l_array_source_51(Idx)
98363  , p_source_51_meaning => l_array_source_51_meaning(Idx)
98364  , p_source_52 => l_array_source_52(Idx)
98365  , p_source_53 => l_array_source_53(Idx)
98366  , p_source_54 => l_array_source_54(Idx)
98367  , p_source_55 => l_array_source_55(Idx)
98368  , p_source_56 => l_array_source_56(Idx)
98369  , p_source_57 => l_array_source_57(Idx)
98370  , p_source_58 => l_array_source_58(Idx)
98371  , p_source_59 => l_array_source_59(Idx)
98372  , p_source_60 => l_array_source_60(Idx)
98373  , p_source_64 => l_array_source_64(Idx)
98374  , p_source_64_meaning => l_array_source_64_meaning(Idx)
98375  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98376  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98377  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98378  , p_source_68 => l_array_source_68(Idx)
98379  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98380  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98381  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98382  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98383  , p_source_135 => l_array_source_135(Idx)
98384  , p_source_140 => l_array_source_140(Idx)
98385  );
98386 If(l_balance_type_code = 'A') THEN
98387   l_actual_gain_loss_ref := l_gain_or_loss_ref;
98388 END IF;
98389 
98390 --
98391 
98392 
98393 --
98394 AcctLineType_114 (
98395  p_application_id  => p_application_id
98396  ,p_event_id     => l_event_id
98397  ,p_calculate_acctd_flag => l_calculate_acctd_flag
98398  ,p_calculate_g_l_flag => l_calculate_g_l_flag
98399  ,p_actual_flag => l_actual_flag
98400  ,p_balance_type_code => l_balance_type_code
98401  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98402  
98403  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98404  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
98405  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
98406  , p_source_29 => l_array_source_29(Idx)
98407  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
98408  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
98409  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98410  , p_source_51 => l_array_source_51(Idx)
98411  , p_source_51_meaning => l_array_source_51_meaning(Idx)
98412  , p_source_52 => l_array_source_52(Idx)
98413  , p_source_53 => l_array_source_53(Idx)
98414  , p_source_54 => l_array_source_54(Idx)
98415  , p_source_55 => l_array_source_55(Idx)
98416  , p_source_56 => l_array_source_56(Idx)
98417  , p_source_57 => l_array_source_57(Idx)
98418  , p_source_58 => l_array_source_58(Idx)
98419  , p_source_59 => l_array_source_59(Idx)
98420  , p_source_60 => l_array_source_60(Idx)
98421  , p_source_64 => l_array_source_64(Idx)
98422  , p_source_64_meaning => l_array_source_64_meaning(Idx)
98423  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98424  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98425  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98426  , p_source_68 => l_array_source_68(Idx)
98427  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98428  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98429  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98430  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98431  , p_source_135 => l_array_source_135(Idx)
98435   l_actual_gain_loss_ref := l_gain_or_loss_ref;
98432  , p_source_140 => l_array_source_140(Idx)
98433  );
98434 If(l_balance_type_code = 'A') THEN
98436 END IF;
98437 
98438 --
98439 
98440       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
98441       -- or secondary ledger that has different currency with primary
98442       -- or alc that is calculated by sla
98443       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
98444             (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'))
98445 
98446 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
98447 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
98448           AND (l_actual_flag = 'A')) THEN
98449         XLA_AE_LINES_PKG.CreateGainOrLossLines(
98450           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
98451          ,p_application_id   => p_application_id
98452          ,p_amb_context_code => 'DEFAULT'
98453          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
98454          ,p_event_class_code => C_EVENT_CLASS_CODE
98455          ,p_event_type_code  => C_EVENT_TYPE_CODE
98456          
98457          ,p_gain_ccid        => -1
98458          ,p_loss_ccid        => -1
98459 
98460          ,p_actual_flag      => l_actual_flag
98461          ,p_enc_flag         => null
98462          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
98463          ,p_enc_g_l_ref      => null
98464          );
98465       END IF;
98466    END IF;
98467 END IF;
98468 
98469    ELSE
98470       --
98471       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
98472       --
98473       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
98474          trace
98475             (p_msg      => 'Trancaction revesal option is Y'
98476             ,p_level    => C_LEVEL_STATEMENT
98477             ,p_module   => l_log_module);
98478       END IF;
98479    END IF;
98480 
98481 END LOOP;
98482 l_result := XLA_AE_LINES_PKG.InsertLines ;
98483 end loop;
98484 close line_cur;
98485 
98486 
98487 --
98488 -- insert headers into xla_ae_headers_gt table
98489 --
98490 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
98491 
98492 -- insert into errors table here.
98493 
98494 END LOOP;
98495 
98496 --
98497 -- 4865292
98498 --
98499 -- Compare g_hdr_extract_count with event count in
98500 -- CreateHeadersAndLines.
98501 --
98502 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
98503 
98504 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
98505    trace (p_msg     => '# rows extracted from header extract objects '
98506                     || ' (running total): '
98507                     || g_hdr_extract_count
98508          ,p_level   => C_LEVEL_STATEMENT
98509          ,p_module  => l_log_module);
98510 END IF;
98511 
98512 CLOSE header_cur;
98513 --
98514 
98515 --
98516 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98517    trace
98518       (p_msg      => 'END of EventClass_166'
98519       ,p_level    => C_LEVEL_PROCEDURE
98520       ,p_module   => l_log_module);
98521 END IF;
98522 --
98523 RETURN l_result;
98524 EXCEPTION
98525 WHEN xla_exceptions_pkg.application_exception THEN
98526    
98527 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
98528 
98529    
98530 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
98531 
98532    RAISE;
98533 
98534 WHEN NO_DATA_FOUND THEN
98535 
98536 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
98537 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
98538 
98539 FOR header_record IN header_cur
98540 LOOP
98541     l_array_header_events(header_record.event_id) := header_record.event_id;
98542 END LOOP;
98543 
98544 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
98545 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
98546 
98547 fnd_file.put_line(fnd_file.LOG, '                    ');
98548 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
98549 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
98550 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
98551 
98552 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
98553 LOOP
98554 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
98555 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
98556         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
98557 	END IF;
98558 END LOOP;
98559 
98560 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
98561 fnd_file.put_line(fnd_file.LOG, '                    ');
98562 
98563 
98564 xla_exceptions_pkg.raise_message
98565       (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_166');
98566 
98567 
98568 WHEN OTHERS THEN
98569    xla_exceptions_pkg.raise_message
98570       (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_166');
98574 ---------------------------------------
98571 END EventClass_166;
98572 --
98573 
98575 --
98576 -- PRIVATE PROCEDURE
98577 --         insert_sources_167
98578 --
98579 ----------------------------------------
98580 --
98581 PROCEDURE insert_sources_167(
98582                                 p_target_ledger_id       IN NUMBER
98583                               , p_language               IN VARCHAR2
98584                               , p_sla_ledger_id          IN NUMBER
98585                               , p_pad_start_date         IN DATE
98586                               , p_pad_end_date           IN DATE
98587                          )
98588 IS
98589 
98590 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PAYMENTS_ALL';
98591 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PAYMENTS';
98592 p_apps_owner                   VARCHAR2(30);
98593 l_log_module                   VARCHAR2(240);
98594 BEGIN
98595 IF g_log_enabled THEN
98596       l_log_module := C_DEFAULT_MODULE||'.insert_sources_167';
98597 END IF;
98598 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98599 
98600       trace
98601          (p_msg      => 'BEGIN of insert_sources_167'
98602          ,p_level    => C_LEVEL_PROCEDURE
98603          ,p_module   => l_log_module);
98604 
98605 END IF;
98606 
98607 -- select APPS owner
98608 SELECT oracle_username
98609   INTO p_apps_owner
98610   FROM fnd_oracle_userid
98611  WHERE read_only_flag = 'U'
98612 ;
98613 
98614 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
98615       trace
98616          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
98617                         ' - p_language = '||p_language||
98618                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
98619                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
98620                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
98621                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
98622          ,p_level    => C_LEVEL_STATEMENT
98623          ,p_module   => l_log_module);
98624 END IF;
98625 
98626 
98627 --
98628 INSERT INTO xla_diag_sources --hdr2
98629 (
98630         event_id
98631       , ledger_id
98632       , sla_ledger_id
98633       , description_language
98634       , object_name
98635       , object_type_code
98636       , line_number
98637       , source_application_id
98638       , source_type_code
98639       , source_code
98640       , source_value
98641       , source_meaning
98642       , created_by
98643       , creation_date
98644       , last_update_date
98645       , last_updated_by
98646       , last_update_login
98647       , program_update_date
98648       , program_application_id
98649       , program_id
98650       , request_id
98651 )
98652 SELECT
98653         event_id
98654       , p_target_ledger_id
98655       , p_sla_ledger_id
98656       , p_language
98657       , object_name
98658       , object_type_code
98659       , line_number
98660       , source_application_id
98661       , source_type_code
98662       , source_code
98663       , SUBSTR(source_value ,1,1996)
98664       , SUBSTR(source_meaning ,1,200)
98665       , xla_environment_pkg.g_Usr_Id
98666       , TRUNC(SYSDATE)
98667       , TRUNC(SYSDATE)
98668       , xla_environment_pkg.g_Usr_Id
98669       , xla_environment_pkg.g_Login_Id
98670       , TRUNC(SYSDATE)
98671       , xla_environment_pkg.g_Prog_Appl_Id
98672       , xla_environment_pkg.g_Prog_Id
98673       , xla_environment_pkg.g_Req_Id
98674   FROM (
98675        SELECT xet.event_id                  event_id
98676             , 0                          line_number
98677             , CASE r
98678                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98679                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98680                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98681                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98682                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98683                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98684                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98685                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
98686                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
98687                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
98688                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
98689                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
98690                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98691                 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
98692                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
98693                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98694                 WHEN 17 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
98695                 WHEN 18 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
98696                 WHEN 19 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
98697                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98698                 WHEN 21 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
98699                 WHEN 22 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
98700                 WHEN 23 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
98701                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98702                 WHEN 25 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
98706                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98703                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98704                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98705                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98707                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98708                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98709                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98710                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98711                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98712                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98713                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98714                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98715                 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
98716                 
98717                ELSE null
98718               END                           object_name
98719             , CASE r
98720                 WHEN 1 THEN 'HEADER' 
98721                 WHEN 2 THEN 'HEADER' 
98722                 WHEN 3 THEN 'HEADER' 
98723                 WHEN 4 THEN 'HEADER' 
98724                 WHEN 5 THEN 'HEADER' 
98725                 WHEN 6 THEN 'HEADER' 
98726                 WHEN 7 THEN 'HEADER' 
98727                 WHEN 8 THEN 'HEADER' 
98728                 WHEN 9 THEN 'HEADER' 
98729                 WHEN 10 THEN 'HEADER' 
98730                 WHEN 11 THEN 'HEADER' 
98731                 WHEN 12 THEN 'HEADER' 
98732                 WHEN 13 THEN 'HEADER' 
98733                 WHEN 14 THEN 'HEADER' 
98734                 WHEN 15 THEN 'HEADER' 
98735                 WHEN 16 THEN 'HEADER' 
98736                 WHEN 17 THEN 'HEADER' 
98737                 WHEN 18 THEN 'HEADER' 
98738                 WHEN 19 THEN 'HEADER' 
98739                 WHEN 20 THEN 'HEADER' 
98740                 WHEN 21 THEN 'HEADER' 
98741                 WHEN 22 THEN 'HEADER' 
98742                 WHEN 23 THEN 'HEADER' 
98743                 WHEN 24 THEN 'HEADER' 
98744                 WHEN 25 THEN 'HEADER' 
98745                 WHEN 26 THEN 'HEADER' 
98746                 WHEN 27 THEN 'HEADER' 
98747                 WHEN 28 THEN 'HEADER' 
98748                 WHEN 29 THEN 'HEADER' 
98749                 WHEN 30 THEN 'HEADER' 
98750                 WHEN 31 THEN 'HEADER' 
98751                 WHEN 32 THEN 'HEADER' 
98752                 WHEN 33 THEN 'HEADER' 
98753                 WHEN 34 THEN 'HEADER' 
98754                 WHEN 35 THEN 'HEADER' 
98755                 WHEN 36 THEN 'HEADER' 
98756                 WHEN 37 THEN 'HEADER' 
98757                 WHEN 38 THEN 'HEADER' 
98758                 
98759                 ELSE null
98760               END                           object_type_code
98761             , CASE r
98762                 WHEN 1 THEN '200' 
98763                 WHEN 2 THEN '200' 
98764                 WHEN 3 THEN '200' 
98765                 WHEN 4 THEN '200' 
98766                 WHEN 5 THEN '200' 
98767                 WHEN 6 THEN '200' 
98768                 WHEN 7 THEN '200' 
98769                 WHEN 8 THEN '200' 
98770                 WHEN 9 THEN '200' 
98771                 WHEN 10 THEN '200' 
98772                 WHEN 11 THEN '200' 
98773                 WHEN 12 THEN '200' 
98774                 WHEN 13 THEN '200' 
98775                 WHEN 14 THEN '200' 
98776                 WHEN 15 THEN '200' 
98777                 WHEN 16 THEN '200' 
98778                 WHEN 17 THEN '200' 
98779                 WHEN 18 THEN '200' 
98780                 WHEN 19 THEN '200' 
98781                 WHEN 20 THEN '200' 
98782                 WHEN 21 THEN '200' 
98783                 WHEN 22 THEN '200' 
98784                 WHEN 23 THEN '200' 
98785                 WHEN 24 THEN '200' 
98786                 WHEN 25 THEN '200' 
98787                 WHEN 26 THEN '200' 
98788                 WHEN 27 THEN '200' 
98789                 WHEN 28 THEN '200' 
98790                 WHEN 29 THEN '200' 
98791                 WHEN 30 THEN '200' 
98792                 WHEN 31 THEN '200' 
98793                 WHEN 32 THEN '200' 
98794                 WHEN 33 THEN '200' 
98795                 WHEN 34 THEN '200' 
98796                 WHEN 35 THEN '200' 
98797                 WHEN 36 THEN '200' 
98798                 WHEN 37 THEN '200' 
98799                 WHEN 38 THEN '200' 
98800                 
98801                 ELSE null
98802               END                           source_application_id
98803             , 'S'             source_type_code
98804             , CASE r
98805                 WHEN 1 THEN 'DOC_SEQUENCE_NAME' 
98806                 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE' 
98807                 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER' 
98808                 WHEN 4 THEN 'AC_CHECK_DATE' 
98809                 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME' 
98810                 WHEN 6 THEN 'AC_CURRENCY_CODE' 
98811                 WHEN 7 THEN 'CGAC_AP_ASSET_CCID' 
98812                 WHEN 8 THEN 'FSP_DISC_TAKEN_CCID' 
98813                 WHEN 9 THEN 'ASP_DISCOUNT_DIST_METHOD' 
98814                 WHEN 10 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
98815                 WHEN 11 THEN 'ASP_RATE_VAR_GAIN_CCID' 
98816                 WHEN 12 THEN 'ASP_RATE_VAR_LOSS_CCID' 
98817                 WHEN 13 THEN 'CGAC_FUTURE_DATED_PMT_CCID' 
98818                 WHEN 14 THEN 'ASP_FD_PMT_ACCT_SOURCE' 
98819                 WHEN 15 THEN 'FSP_FUTURE_DATED_PAYMENT_CCID' 
98823                 WHEN 19 THEN 'ASP_BUILD_PREPAY_ACCOUNTS_FLAG' 
98820                 WHEN 16 THEN 'POS_FDP_CCID' 
98821                 WHEN 17 THEN 'ASP_INTEREST_CCID' 
98822                 WHEN 18 THEN 'ASP_PRORATE_INT_ACROSS_DISTS' 
98824                 WHEN 20 THEN 'CGAC_CASH_CLEARING_CCID' 
98825                 WHEN 21 THEN 'FSP_RETAINAGE_ACCOUNT' 
98826                 WHEN 22 THEN 'ASP_DISC_TAKEN_CCID' 
98827                 WHEN 23 THEN 'ASP_AUTO_OFFSET_FLAG' 
98828                 WHEN 24 THEN 'PAYCARD_ACCRUED_ACCOUNT_CCID' 
98829                 WHEN 25 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
98830                 WHEN 26 THEN 'AC_VENDOR_ID' 
98831                 WHEN 27 THEN 'AC_VENDOR_SITE_ID' 
98832                 WHEN 28 THEN 'THIRD_PARTY_TYPE' 
98833                 WHEN 29 THEN 'PAYMENT_TYPE' 
98834                 WHEN 30 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
98835                 WHEN 31 THEN 'AC_FUTURE_PAY_DUE_DATE' 
98836                 WHEN 32 THEN 'PAYMENT_PROCESSING_TYPE' 
98837                 WHEN 33 THEN 'AC_EXCHANGE_DATE' 
98838                 WHEN 34 THEN 'AC_EXCHANGE_RATE' 
98839                 WHEN 35 THEN 'AC_EXCHANGE_RATE_TYPE' 
98840                 WHEN 36 THEN 'AC_DOC_CATEGORY_CODE' 
98841                 WHEN 37 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
98842                 WHEN 38 THEN 'TRANSAC_REVERSAL_FLAG' 
98843                 
98844                 ELSE null
98845               END                           source_code
98846             , CASE r
98847                 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
98848                 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
98849                 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
98850                 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
98851                 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
98852                 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
98853                 WHEN 7 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
98854                 WHEN 8 THEN TO_CHAR(h4.FSP_DISC_TAKEN_CCID)
98855                 WHEN 9 THEN TO_CHAR(h4.ASP_DISCOUNT_DIST_METHOD)
98856                 WHEN 10 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
98857                 WHEN 11 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
98858                 WHEN 12 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
98859                 WHEN 13 THEN TO_CHAR(h2.CGAC_FUTURE_DATED_PMT_CCID)
98860                 WHEN 14 THEN TO_CHAR(h4.ASP_FD_PMT_ACCT_SOURCE)
98861                 WHEN 15 THEN TO_CHAR(h4.FSP_FUTURE_DATED_PAYMENT_CCID)
98862                 WHEN 16 THEN TO_CHAR(h2.POS_FDP_CCID)
98863                 WHEN 17 THEN TO_CHAR(h4.ASP_INTEREST_CCID)
98864                 WHEN 18 THEN TO_CHAR(h4.ASP_PRORATE_INT_ACROSS_DISTS)
98865                 WHEN 19 THEN TO_CHAR(h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG)
98866                 WHEN 20 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
98867                 WHEN 21 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
98868                 WHEN 22 THEN TO_CHAR(h4.ASP_DISC_TAKEN_CCID)
98869                 WHEN 23 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
98870                 WHEN 24 THEN TO_CHAR(h2.PAYCARD_ACCRUED_ACCOUNT_CCID)
98871                 WHEN 25 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
98872                 WHEN 26 THEN TO_CHAR(h2.AC_VENDOR_ID)
98873                 WHEN 27 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
98874                 WHEN 28 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
98875                 WHEN 29 THEN TO_CHAR(h2.PAYMENT_TYPE)
98876                 WHEN 30 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
98877                 WHEN 31 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
98878                 WHEN 32 THEN TO_CHAR(h2.PAYMENT_PROCESSING_TYPE)
98879                 WHEN 33 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
98880                 WHEN 34 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
98881                 WHEN 35 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
98882                 WHEN 36 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
98883                 WHEN 37 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
98884                 WHEN 38 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
98885                 
98886                 ELSE null
98887               END                           source_value
98888             , CASE r
98889                 WHEN 9 THEN fvl15.meaning
98890                 WHEN 10 THEN fvl16.meaning
98891                 WHEN 14 THEN fvl24.meaning
98892                 WHEN 19 THEN fvl30.meaning
98893                 WHEN 23 THEN fvl42.meaning
98894                 WHEN 29 THEN fvl71.meaning
98895                 WHEN 30 THEN fvl117.meaning
98896                 WHEN 38 THEN fvl159.meaning
98897                 
98898                 ELSE null
98899               END               source_meaning
98900          FROM xla_events_gt     xet  
98901       , AP_PAYMENT_EXTRACT_HEADER_V  h2
98902       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
98903   , fnd_lookup_values    fvl15
98904   , fnd_lookup_values    fvl16
98905   , fnd_lookup_values    fvl24
98906   , fnd_lookup_values    fvl30
98907   , fnd_lookup_values    fvl42
98908   , fnd_lookup_values    fvl71
98909   , fnd_lookup_values    fvl117
98910   , fnd_lookup_values    fvl159
98911              ,(select rownum r from all_objects where rownum <= 38 and owner = p_apps_owner)
98912          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
98913            AND xet.event_class_code = C_EVENT_CLASS_CODE
98914               AND h2.event_id = xet.event_id
98915  AND h4.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
98916   AND fvl15.lookup_code(+)         = h4.ASP_DISCOUNT_DIST_METHOD
98917   AND fvl15.view_application_id(+) = 200
98921   AND fvl16.view_application_id(+) = 200
98918   AND fvl15.language(+)            = USERENV('LANG')
98919      AND fvl16.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
98920   AND fvl16.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
98922   AND fvl16.language(+)            = USERENV('LANG')
98923      AND fvl24.lookup_type(+)         = 'FUTURE PAY ACCT SOURCE'
98924   AND fvl24.lookup_code(+)         = h4.ASP_FD_PMT_ACCT_SOURCE
98925   AND fvl24.view_application_id(+) = 200
98926   AND fvl24.language(+)            = USERENV('LANG')
98927      AND fvl30.lookup_type(+)         = 'YES_NO'
98928   AND fvl30.lookup_code(+)         = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
98929   AND fvl30.view_application_id(+) = 0
98930   AND fvl30.language(+)            = USERENV('LANG')
98931      AND fvl42.lookup_type(+)         = 'YES_NO'
98932   AND fvl42.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
98933   AND fvl42.view_application_id(+) = 0
98934   AND fvl42.language(+)            = USERENV('LANG')
98935      AND fvl71.lookup_type(+)         = 'PAYMENT TYPE'
98936   AND fvl71.lookup_code(+)         = h2.PAYMENT_TYPE
98937   AND fvl71.view_application_id(+) = 200
98938   AND fvl71.language(+)            = USERENV('LANG')
98939      AND fvl117.lookup_type(+)         = 'YES_NO'
98940   AND fvl117.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
98941   AND fvl117.view_application_id(+) = 0
98942   AND fvl117.language(+)            = USERENV('LANG')
98943      AND fvl159.lookup_type(+)         = 'YES_NO'
98944   AND fvl159.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
98945   AND fvl159.view_application_id(+) = 0
98946   AND fvl159.language(+)            = USERENV('LANG')
98947   
98948 )
98949 ;
98950 --
98951 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
98952 
98953       trace
98954          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
98955          ,p_level    => C_LEVEL_STATEMENT
98956          ,p_module   => l_log_module);
98957 
98958 END IF;
98959 --
98960 
98961 
98962 
98963 --
98964 INSERT INTO xla_diag_sources  --line2
98965 (
98966         event_id
98967       , ledger_id
98968       , sla_ledger_id
98969       , description_language
98970       , object_name
98971       , object_type_code
98972       , line_number
98973       , source_application_id
98974       , source_type_code
98975       , source_code
98976       , source_value
98977       , source_meaning
98978       , created_by
98979       , creation_date
98980       , last_update_date
98981       , last_updated_by
98982       , last_update_login
98983       , program_update_date
98984       , program_application_id
98985       , program_id
98986       , request_id
98987 )
98988 SELECT  event_id
98989       , p_target_ledger_id
98990       , p_sla_ledger_id
98991       , p_language
98992       , object_name
98993       , object_type_code
98994       , line_number
98995       , source_application_id
98996       , source_type_code
98997       , source_code
98998       , SUBSTR(source_value,1,1996)
98999       , SUBSTR(source_meaning ,1,200)
99000       , xla_environment_pkg.g_Usr_Id
99001       , TRUNC(SYSDATE)
99002       , TRUNC(SYSDATE)
99003       , xla_environment_pkg.g_Usr_Id
99004       , xla_environment_pkg.g_Login_Id
99005       , TRUNC(SYSDATE)
99006       , xla_environment_pkg.g_Prog_Appl_Id
99007       , xla_environment_pkg.g_Prog_Id
99008       , xla_environment_pkg.g_Req_Id
99009   FROM (
99010        SELECT xet.event_id                  event_id
99011             , l1.line_number                 line_number
99012             , CASE r
99013                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99014                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99015                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99016                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99017                 WHEN 5 THEN 'AP_PO_HEADERS_EXTRACT_V' 
99018                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99019                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99020                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99021                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99022                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99023                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99024                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99025                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99026                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99027                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99028                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99029                 WHEN 17 THEN 'AP_PO_HEADERS_EXTRACT_V' 
99030                 WHEN 18 THEN 'AP_PO_HEADERS_EXTRACT_V' 
99031                 WHEN 19 THEN 'AP_PO_HEADERS_EXTRACT_V' 
99032                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99033                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99034                 WHEN 22 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
99035                 WHEN 23 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
99036                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99037                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99038                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99039                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99040                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99041                 WHEN 29 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
99045                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99042                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99043                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99044                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
99046                 
99047                ELSE null
99048               END                           object_name
99049             , CASE r
99050                 WHEN 1 THEN 'LINE' 
99051                 WHEN 2 THEN 'LINE' 
99052                 WHEN 3 THEN 'LINE' 
99053                 WHEN 4 THEN 'LINE' 
99054                 WHEN 5 THEN 'LINE' 
99055                 WHEN 6 THEN 'LINE' 
99056                 WHEN 7 THEN 'LINE' 
99057                 WHEN 8 THEN 'LINE' 
99058                 WHEN 9 THEN 'LINE' 
99059                 WHEN 10 THEN 'LINE' 
99060                 WHEN 11 THEN 'LINE' 
99061                 WHEN 12 THEN 'LINE' 
99062                 WHEN 13 THEN 'LINE' 
99063                 WHEN 14 THEN 'LINE' 
99064                 WHEN 15 THEN 'LINE' 
99065                 WHEN 16 THEN 'LINE' 
99066                 WHEN 17 THEN 'LINE' 
99067                 WHEN 18 THEN 'LINE' 
99068                 WHEN 19 THEN 'LINE' 
99069                 WHEN 20 THEN 'LINE' 
99070                 WHEN 21 THEN 'LINE' 
99071                 WHEN 22 THEN 'LINE' 
99072                 WHEN 23 THEN 'LINE' 
99073                 WHEN 24 THEN 'LINE' 
99074                 WHEN 25 THEN 'LINE' 
99075                 WHEN 26 THEN 'LINE' 
99076                 WHEN 27 THEN 'LINE' 
99077                 WHEN 28 THEN 'LINE' 
99078                 WHEN 29 THEN 'LINE' 
99079                 WHEN 30 THEN 'LINE' 
99080                 WHEN 31 THEN 'LINE' 
99081                 WHEN 32 THEN 'LINE' 
99082                 WHEN 33 THEN 'LINE' 
99083                 
99084                 ELSE null
99085               END                           object_type_code
99086             , CASE r
99087                 WHEN 1 THEN '200' 
99088                 WHEN 2 THEN '200' 
99089                 WHEN 3 THEN '200' 
99090                 WHEN 4 THEN '200' 
99091                 WHEN 5 THEN '200' 
99092                 WHEN 6 THEN '200' 
99093                 WHEN 7 THEN '200' 
99094                 WHEN 8 THEN '200' 
99095                 WHEN 9 THEN '200' 
99096                 WHEN 10 THEN '200' 
99097                 WHEN 11 THEN '200' 
99098                 WHEN 12 THEN '200' 
99099                 WHEN 13 THEN '200' 
99100                 WHEN 14 THEN '200' 
99101                 WHEN 15 THEN '200' 
99102                 WHEN 16 THEN '200' 
99103                 WHEN 17 THEN '200' 
99104                 WHEN 18 THEN '200' 
99105                 WHEN 19 THEN '200' 
99106                 WHEN 20 THEN '200' 
99107                 WHEN 21 THEN '200' 
99108                 WHEN 22 THEN '200' 
99109                 WHEN 23 THEN '200' 
99110                 WHEN 24 THEN '200' 
99111                 WHEN 25 THEN '200' 
99112                 WHEN 26 THEN '200' 
99113                 WHEN 27 THEN '200' 
99114                 WHEN 28 THEN '200' 
99115                 WHEN 29 THEN '200' 
99116                 WHEN 30 THEN '200' 
99117                 WHEN 31 THEN '200' 
99118                 WHEN 32 THEN '200' 
99119                 WHEN 33 THEN '200' 
99120                 
99121                 ELSE null
99122               END                           source_application_id
99123             , 'S'             source_type_code
99124             , CASE r
99125                 WHEN 1 THEN 'RELATED_INV_DIST_DEST_TYPE' 
99126                 WHEN 2 THEN 'APHD_PAYMENT_BASE_AMT' 
99127                 WHEN 3 THEN 'APHD_CLEARING_BASE_AMT' 
99128                 WHEN 4 THEN 'AID_DIST_CCID' 
99129                 WHEN 5 THEN 'PO_NUMBER' 
99130                 WHEN 6 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
99131                 WHEN 7 THEN 'AID_RET_RELATED_DIST_CCID' 
99132                 WHEN 8 THEN 'AWT_RELATED_DIST_ACCOUNT' 
99133                 WHEN 9 THEN 'POD_CCID' 
99134                 WHEN 10 THEN 'PO_VARIANCE_ACCOUNT' 
99135                 WHEN 11 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
99136                 WHEN 12 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
99137                 WHEN 13 THEN 'APHD_AMOUNT' 
99138                 WHEN 14 THEN 'BUS_FLOW_AP_APP_ID' 
99139                 WHEN 15 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
99140                 WHEN 16 THEN 'DISTRIBUTION_LINK_TYPE' 
99141                 WHEN 17 THEN 'POH_RATE_DATE' 
99142                 WHEN 18 THEN 'POH_RATE' 
99143                 WHEN 19 THEN 'POH_RATE_TYPE' 
99144                 WHEN 20 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
99145                 WHEN 21 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
99146                 WHEN 22 THEN 'TAX_LINE_ID' 
99147                 WHEN 23 THEN 'SUMMARY_TAX_LINE_ID' 
99148                 WHEN 24 THEN 'APHD_INVOICE_DIST_AMOUNT' 
99149                 WHEN 25 THEN 'BUS_FLOW_INV_DIST_TYPE' 
99150                 WHEN 26 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
99151                 WHEN 27 THEN 'BUS_FLOW_INV_DIST_ID' 
99152                 WHEN 28 THEN 'BUS_FLOW_INV_ID' 
99153                 WHEN 29 THEN 'REC_NREC_TAX_DIST_ID' 
99154                 WHEN 30 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
99155                 WHEN 31 THEN 'AI_INVOICE_TYPE_PAID' 
99156                 WHEN 32 THEN 'BF_RETAINED_INV_DIST_ID_PMT' 
99160               END                           source_code
99157                 WHEN 33 THEN 'BF_RETAINED_INV_ID_PMT' 
99158                 
99159                 ELSE null
99161             , CASE r
99162                 WHEN 1 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
99163                 WHEN 2 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
99164                 WHEN 3 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
99165                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
99166                 WHEN 5 THEN TO_CHAR(l3.PO_NUMBER)
99167                 WHEN 6 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
99168                 WHEN 7 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
99169                 WHEN 8 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
99170                 WHEN 9 THEN TO_CHAR(l1.POD_CCID)
99171                 WHEN 10 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
99172                 WHEN 11 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
99173                 WHEN 12 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
99174                 WHEN 13 THEN TO_CHAR(l1.APHD_AMOUNT)
99175                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
99176                 WHEN 15 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
99177                 WHEN 16 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
99178                 WHEN 17 THEN TO_CHAR(l3.POH_RATE_DATE)
99179                 WHEN 18 THEN TO_CHAR(l3.POH_RATE)
99180                 WHEN 19 THEN TO_CHAR(l3.POH_RATE_TYPE)
99181                 WHEN 20 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
99182                 WHEN 21 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
99183                 WHEN 22 THEN TO_CHAR(l5.TAX_LINE_ID)
99184                 WHEN 23 THEN TO_CHAR(l5.SUMMARY_TAX_LINE_ID)
99185                 WHEN 24 THEN TO_CHAR(l1.APHD_INVOICE_DIST_AMOUNT)
99186                 WHEN 25 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
99187                 WHEN 26 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
99188                 WHEN 27 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
99189                 WHEN 28 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
99190                 WHEN 29 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
99191                 WHEN 30 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
99192                 WHEN 31 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
99193                 WHEN 32 THEN TO_CHAR(l1.BF_RETAINED_INV_DIST_ID_PMT)
99194                 WHEN 33 THEN TO_CHAR(l1.BF_RETAINED_INV_ID_PMT)
99195                 
99196                 ELSE null
99197               END                           source_value
99198             , CASE r
99199                 WHEN 1 THEN fvl19.meaning
99200                 WHEN 6 THEN fvl32.meaning
99201                 WHEN 11 THEN fvl51.meaning
99202                 WHEN 20 THEN fvl64.meaning
99203                 WHEN 30 THEN fvl111.meaning
99204                 WHEN 31 THEN fvl112.meaning
99205                 
99206                 ELSE null
99207               END               source_meaning
99208          FROM  xla_events_gt     xet  
99209         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
99210         , AP_PO_HEADERS_EXTRACT_V  l3
99211         , ZX_AP_DEF_TAX_EXTRACT_V  l5
99212         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
99213   , fnd_lookup_values    fvl19
99214   , fnd_lookup_values    fvl32
99215   , fnd_lookup_values    fvl51
99216   , fnd_lookup_values    fvl64
99217   , fnd_lookup_values    fvl111
99218   , fnd_lookup_values    fvl112
99219             , (select rownum r from all_objects where rownum <= 33 and owner = p_apps_owner)
99220         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
99221           AND xet.event_class_code = C_EVENT_CLASS_CODE
99222             AND l1.event_id          = xet.event_id
99223  AND l1.pod_po_header_id  = l3.po_header_id (+)  AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l1.aid_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl19.lookup_type(+)         = 'DESTINATION TYPE'
99224   AND fvl19.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
99225   AND fvl19.view_application_id(+) = 201
99226   AND fvl19.language(+)            = USERENV('LANG')
99227      AND fvl32.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
99228   AND fvl32.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
99229   AND fvl32.view_application_id(+) = 200
99230   AND fvl32.language(+)            = USERENV('LANG')
99231      AND fvl51.lookup_type(+)         = 'PAY_DIST_TYPES'
99232   AND fvl51.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
99233   AND fvl51.view_application_id(+) = 200
99234   AND fvl51.language(+)            = USERENV('LANG')
99235      AND fvl64.lookup_type(+)         = 'YES_NO'
99236   AND fvl64.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
99237   AND fvl64.view_application_id(+) = 0
99238   AND fvl64.language(+)            = USERENV('LANG')
99239      AND fvl111.lookup_type(+)         = 'YES_NO'
99240   AND fvl111.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
99241   AND fvl111.view_application_id(+) = 0
99242   AND fvl111.language(+)            = USERENV('LANG')
99243      AND fvl112.lookup_type(+)         = 'INVOICE TYPE'
99244   AND fvl112.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
99245   AND fvl112.view_application_id(+) = 200
99246   AND fvl112.language(+)            = USERENV('LANG')
99247   
99248 )
99249 ;
99250 --
99251 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
99252 
99253       trace
99254          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
99255          ,p_level    => C_LEVEL_STATEMENT
99256          ,p_module   => l_log_module);
99257 
99258 END IF;
99259 
99260 
99261 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99265          ,p_module   => l_log_module);
99262       trace
99263          (p_msg      => 'END of insert_sources_167'
99264          ,p_level    => C_LEVEL_PROCEDURE
99266 END IF;
99267 EXCEPTION
99268   WHEN xla_exceptions_pkg.application_exception THEN
99269       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
99270             trace
99271                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
99272                ,p_level    => C_LEVEL_EXCEPTION
99273                ,p_module   => l_log_module);
99274       END IF;
99275       RAISE;
99276   WHEN OTHERS THEN
99277       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
99278             trace
99279                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
99280                ,p_level    => C_LEVEL_EXCEPTION
99281                ,p_module   => l_log_module);
99282        END IF;
99283        xla_exceptions_pkg.raise_message
99284            (p_location => 'XLA_00200_AAD_S_000011_PKG.insert_sources_167');
99285 END insert_sources_167;
99286 --
99287 
99288 ---------------------------------------
99289 --
99290 -- PRIVATE FUNCTION
99291 --         EventClass_167
99292 --
99293 ----------------------------------------
99294 --
99295 FUNCTION EventClass_167
99296        (p_application_id         IN NUMBER
99297        ,p_base_ledger_id         IN NUMBER
99298        ,p_target_ledger_id       IN NUMBER
99299        ,p_language               IN VARCHAR2
99300        ,p_currency_code          IN VARCHAR2
99301        ,p_sla_ledger_id          IN NUMBER
99302        ,p_pad_start_date         IN DATE
99303        ,p_pad_end_date           IN DATE
99304        ,p_primary_ledger_id      IN NUMBER)
99305 RETURN BOOLEAN IS
99306 --
99307 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PAYMENTS_ALL';
99308 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PAYMENTS';
99309 
99310 l_calculate_acctd_flag   VARCHAR2(1) :='N';
99311 l_calculate_g_l_flag     VARCHAR2(1) :='N';
99312 --
99313 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99314 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99315 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
99316 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99317 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99318 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
99319 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
99320 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99321 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99322 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99323 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99324 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99325 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99326 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99327 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99328 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99329 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99330 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99331 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99332 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99333 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99334 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99335 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
99336 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
99337 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
99338 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
99339 
99340 l_event_id                             NUMBER;
99341 l_previous_event_id                    NUMBER;
99342 l_first_event_id                       NUMBER;
99343 l_last_event_id                        NUMBER;
99344 
99345 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
99346 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
99347 --
99348 --
99349 l_result                    BOOLEAN := TRUE;
99350 l_rows                      NUMBER  := 1000;
99351 l_event_type_name           VARCHAR2(80) := 'All';
99352 l_event_class_name          VARCHAR2(80) := 'Payments';
99353 l_description               VARCHAR2(4000);
99354 l_transaction_reversal      NUMBER;
99355 l_ae_header_id              NUMBER;
99356 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
99357 l_log_module                VARCHAR2(240);
99358 --
99359 l_acct_reversal_source      VARCHAR2(30);
99360 l_trx_reversal_source       VARCHAR2(30);
99361 
99362 l_continue_with_lines       BOOLEAN := TRUE;
99363 --
99364 l_acc_rev_gl_date_source    DATE;                      -- 4262811
99365 --
99366 type t_array_event_id is table of number index by binary_integer;
99367 
99368 l_rec_array_event                    t_rec_array_event;
99369 l_null_rec_array_event               t_rec_array_event;
99370 l_array_ae_header_id                 xla_number_array_type;
99371 l_actual_flag                        VARCHAR2(1) := NULL;
99375 
99372 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
99373 l_balance_type_code                  VARCHAR2(1) :=NULL;
99374 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
99376 --
99377 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
99378 --
99379 
99380 TYPE t_array_source_5 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
99381 TYPE t_array_source_8 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
99382 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
99383 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
99384 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
99385 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
99386 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
99387 TYPE t_array_source_14 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
99388 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
99389 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
99390 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
99391 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
99392 TYPE t_array_source_23 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_FUTURE_DATED_PMT_CCID%TYPE INDEX BY BINARY_INTEGER;
99393 TYPE t_array_source_24 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_FD_PMT_ACCT_SOURCE%TYPE INDEX BY BINARY_INTEGER;
99394 TYPE t_array_source_25 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_FUTURE_DATED_PAYMENT_CCID%TYPE INDEX BY BINARY_INTEGER;
99395 TYPE t_array_source_26 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.POS_FDP_CCID%TYPE INDEX BY BINARY_INTEGER;
99396 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
99397 TYPE t_array_source_28 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
99398 TYPE t_array_source_30 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_BUILD_PREPAY_ACCOUNTS_FLAG%TYPE INDEX BY BINARY_INTEGER;
99399 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
99400 TYPE t_array_source_34 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
99401 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
99402 TYPE t_array_source_42 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
99403 TYPE t_array_source_43 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYCARD_ACCRUED_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
99404 TYPE t_array_source_50 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
99405 TYPE t_array_source_65 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
99406 TYPE t_array_source_66 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
99407 TYPE t_array_source_67 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
99408 TYPE t_array_source_71 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
99409 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
99410 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
99411 TYPE t_array_source_120 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_PROCESSING_TYPE%TYPE INDEX BY BINARY_INTEGER;
99412 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
99413 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
99414 TYPE t_array_source_123 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
99415 TYPE t_array_source_156 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
99416 TYPE t_array_source_157 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
99417 TYPE t_array_source_159 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
99418 
99419 TYPE t_array_source_19 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
99420 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
99421 TYPE t_array_source_22 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
99422 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
99423 TYPE t_array_source_31 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.PO_NUMBER%TYPE INDEX BY BINARY_INTEGER;
99424 TYPE t_array_source_32 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
99425 TYPE t_array_source_35 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
99426 TYPE t_array_source_36 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
99427 TYPE t_array_source_40 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
99431 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
99428 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
99429 TYPE t_array_source_51 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
99430 TYPE t_array_source_52 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
99432 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
99433 TYPE t_array_source_59 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
99434 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
99435 TYPE t_array_source_61 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
99436 TYPE t_array_source_62 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
99437 TYPE t_array_source_63 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
99438 TYPE t_array_source_64 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
99439 TYPE t_array_source_68 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
99440 TYPE t_array_source_69 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
99441 TYPE t_array_source_70 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
99442 TYPE t_array_source_72 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_DIST_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
99443 TYPE t_array_source_73 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
99444 TYPE t_array_source_74 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
99445 TYPE t_array_source_75 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
99446 TYPE t_array_source_76 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
99447 TYPE t_array_source_77 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
99448 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
99449 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
99450 TYPE t_array_source_153 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_DIST_ID_PMT%TYPE INDEX BY BINARY_INTEGER;
99451 TYPE t_array_source_154 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_ID_PMT%TYPE INDEX BY BINARY_INTEGER;
99452 
99453 l_array_source_5              t_array_source_5;
99454 l_array_source_8              t_array_source_8;
99455 l_array_source_9              t_array_source_9;
99456 l_array_source_10              t_array_source_10;
99457 l_array_source_11              t_array_source_11;
99458 l_array_source_12              t_array_source_12;
99459 l_array_source_13              t_array_source_13;
99460 l_array_source_14              t_array_source_14;
99461 l_array_source_15              t_array_source_15;
99462 l_array_source_15_meaning      t_array_lookup_meaning;
99463 l_array_source_16              t_array_source_16;
99464 l_array_source_16_meaning      t_array_lookup_meaning;
99465 l_array_source_17              t_array_source_17;
99466 l_array_source_20              t_array_source_20;
99467 l_array_source_23              t_array_source_23;
99468 l_array_source_24              t_array_source_24;
99469 l_array_source_24_meaning      t_array_lookup_meaning;
99470 l_array_source_25              t_array_source_25;
99471 l_array_source_26              t_array_source_26;
99472 l_array_source_27              t_array_source_27;
99473 l_array_source_28              t_array_source_28;
99474 l_array_source_30              t_array_source_30;
99475 l_array_source_30_meaning      t_array_lookup_meaning;
99476 l_array_source_33              t_array_source_33;
99477 l_array_source_34              t_array_source_34;
99478 l_array_source_39              t_array_source_39;
99479 l_array_source_42              t_array_source_42;
99480 l_array_source_42_meaning      t_array_lookup_meaning;
99481 l_array_source_43              t_array_source_43;
99482 l_array_source_50              t_array_source_50;
99483 l_array_source_65              t_array_source_65;
99484 l_array_source_66              t_array_source_66;
99485 l_array_source_67              t_array_source_67;
99486 l_array_source_71              t_array_source_71;
99487 l_array_source_71_meaning      t_array_lookup_meaning;
99488 l_array_source_117              t_array_source_117;
99489 l_array_source_117_meaning      t_array_lookup_meaning;
99490 l_array_source_118              t_array_source_118;
99491 l_array_source_120              t_array_source_120;
99492 l_array_source_121              t_array_source_121;
99493 l_array_source_122              t_array_source_122;
99494 l_array_source_123              t_array_source_123;
99495 l_array_source_156              t_array_source_156;
99496 l_array_source_157              t_array_source_157;
99497 l_array_source_159              t_array_source_159;
99498 l_array_source_159_meaning      t_array_lookup_meaning;
99499 
99500 l_array_source_19      t_array_source_19;
99501 l_array_source_19_meaning      t_array_lookup_meaning;
99502 l_array_source_21      t_array_source_21;
99503 l_array_source_22      t_array_source_22;
99504 l_array_source_29      t_array_source_29;
99508 l_array_source_35      t_array_source_35;
99505 l_array_source_31      t_array_source_31;
99506 l_array_source_32      t_array_source_32;
99507 l_array_source_32_meaning      t_array_lookup_meaning;
99509 l_array_source_36      t_array_source_36;
99510 l_array_source_40      t_array_source_40;
99511 l_array_source_41      t_array_source_41;
99512 l_array_source_51      t_array_source_51;
99513 l_array_source_51_meaning      t_array_lookup_meaning;
99514 l_array_source_52      t_array_source_52;
99515 l_array_source_53      t_array_source_53;
99516 l_array_source_54      t_array_source_54;
99517 l_array_source_59      t_array_source_59;
99518 l_array_source_60      t_array_source_60;
99519 l_array_source_61      t_array_source_61;
99520 l_array_source_62      t_array_source_62;
99521 l_array_source_63      t_array_source_63;
99522 l_array_source_64      t_array_source_64;
99523 l_array_source_64_meaning      t_array_lookup_meaning;
99524 l_array_source_68      t_array_source_68;
99525 l_array_source_69      t_array_source_69;
99526 l_array_source_70      t_array_source_70;
99527 l_array_source_72      t_array_source_72;
99528 l_array_source_73      t_array_source_73;
99529 l_array_source_74      t_array_source_74;
99530 l_array_source_75      t_array_source_75;
99531 l_array_source_76      t_array_source_76;
99532 l_array_source_77      t_array_source_77;
99533 l_array_source_111      t_array_source_111;
99534 l_array_source_111_meaning      t_array_lookup_meaning;
99535 l_array_source_112      t_array_source_112;
99536 l_array_source_112_meaning      t_array_lookup_meaning;
99537 l_array_source_153      t_array_source_153;
99538 l_array_source_154      t_array_source_154;
99539 
99540 --
99541 CURSOR header_cur
99542 IS
99543 SELECT /*+ leading(xet) cardinality(xet,1) */
99544 -- Event Class Code: PAYMENTS
99545     xet.entity_id
99546    ,xet.legal_entity_id
99547    ,xet.entity_code
99548    ,xet.transaction_number
99549    ,xet.event_id
99550    ,xet.event_class_code
99551    ,xet.event_type_code
99552    ,xet.event_number
99553    ,xet.event_date
99554    ,xet.transaction_date
99555    ,xet.reference_num_1
99556    ,xet.reference_num_2
99557    ,xet.reference_num_3
99558    ,xet.reference_num_4
99559    ,xet.reference_char_1
99560    ,xet.reference_char_2
99561    ,xet.reference_char_3
99562    ,xet.reference_char_4
99563    ,xet.reference_date_1
99564    ,xet.reference_date_2
99565    ,xet.reference_date_3
99566    ,xet.reference_date_4
99567    ,xet.event_created_by
99568    ,xet.budgetary_control_flag 
99569   , h2.DOC_SEQUENCE_NAME    source_5
99570   , h2.AC_DOC_SEQUENCE_VALUE    source_8
99571   , h2.PAYMENT_TRANSACTION_NUMBER    source_9
99572   , h2.AC_CHECK_DATE    source_10
99573   , h2.CBA_BANK_ACCOUNT_NAME    source_11
99574   , h2.AC_CURRENCY_CODE    source_12
99575   , h2.CGAC_AP_ASSET_CCID    source_13
99576   , h4.FSP_DISC_TAKEN_CCID    source_14
99577   , h4.ASP_DISCOUNT_DIST_METHOD    source_15
99578   , fvl15.meaning   source_15_meaning
99579   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_16
99580   , fvl16.meaning   source_16_meaning
99581   , h4.ASP_RATE_VAR_GAIN_CCID    source_17
99582   , h4.ASP_RATE_VAR_LOSS_CCID    source_20
99583   , h2.CGAC_FUTURE_DATED_PMT_CCID    source_23
99584   , h4.ASP_FD_PMT_ACCT_SOURCE    source_24
99585   , fvl24.meaning   source_24_meaning
99586   , h4.FSP_FUTURE_DATED_PAYMENT_CCID    source_25
99587   , h2.POS_FDP_CCID    source_26
99588   , h4.ASP_INTEREST_CCID    source_27
99589   , h4.ASP_PRORATE_INT_ACROSS_DISTS    source_28
99590   , h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG    source_30
99591   , fvl30.meaning   source_30_meaning
99592   , h2.CGAC_CASH_CLEARING_CCID    source_33
99593   , h4.FSP_RETAINAGE_ACCOUNT    source_34
99594   , h4.ASP_DISC_TAKEN_CCID    source_39
99595   , h4.ASP_AUTO_OFFSET_FLAG    source_42
99596   , fvl42.meaning   source_42_meaning
99597   , h2.PAYCARD_ACCRUED_ACCOUNT_CCID    source_43
99598   , h4.ASP_WHEN_TO_ACCOUNT_PMT    source_50
99599   , h2.AC_VENDOR_ID    source_65
99600   , h2.AC_VENDOR_SITE_ID    source_66
99601   , h2.THIRD_PARTY_TYPE    source_67
99602   , h2.PAYMENT_TYPE    source_71
99603   , fvl71.meaning   source_71_meaning
99604   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_117
99605   , fvl117.meaning   source_117_meaning
99606   , h2.AC_FUTURE_PAY_DUE_DATE    source_118
99607   , h2.PAYMENT_PROCESSING_TYPE    source_120
99608   , h2.AC_EXCHANGE_DATE    source_121
99609   , h2.AC_EXCHANGE_RATE    source_122
99610   , h2.AC_EXCHANGE_RATE_TYPE    source_123
99611   , h2.AC_DOC_CATEGORY_CODE    source_156
99612   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_157
99613   , h2.TRANSAC_REVERSAL_FLAG    source_159
99614   , fvl159.meaning   source_159_meaning
99615   FROM xla_events_gt     xet 
99616   , AP_PAYMENT_EXTRACT_HEADER_V  h2
99617   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
99618   , fnd_lookup_values    fvl15
99619   , fnd_lookup_values    fvl16
99620   , fnd_lookup_values    fvl24
99621   , fnd_lookup_values    fvl30
99622   , fnd_lookup_values    fvl42
99623   , fnd_lookup_values    fvl71
99624   , fnd_lookup_values    fvl117
99625   , fnd_lookup_values    fvl159
99626  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
99627    and xet.event_class_code = C_EVENT_CLASS_CODE
99628    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
99629  AND h4.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
99633      AND fvl16.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
99630   AND fvl15.lookup_code(+)         = h4.ASP_DISCOUNT_DIST_METHOD
99631   AND fvl15.view_application_id(+) = 200
99632   AND fvl15.language(+)            = USERENV('LANG')
99634   AND fvl16.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
99635   AND fvl16.view_application_id(+) = 200
99636   AND fvl16.language(+)            = USERENV('LANG')
99637      AND fvl24.lookup_type(+)         = 'FUTURE PAY ACCT SOURCE'
99638   AND fvl24.lookup_code(+)         = h4.ASP_FD_PMT_ACCT_SOURCE
99639   AND fvl24.view_application_id(+) = 200
99640   AND fvl24.language(+)            = USERENV('LANG')
99641      AND fvl30.lookup_type(+)         = 'YES_NO'
99642   AND fvl30.lookup_code(+)         = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
99643   AND fvl30.view_application_id(+) = 0
99644   AND fvl30.language(+)            = USERENV('LANG')
99645      AND fvl42.lookup_type(+)         = 'YES_NO'
99646   AND fvl42.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
99647   AND fvl42.view_application_id(+) = 0
99648   AND fvl42.language(+)            = USERENV('LANG')
99649      AND fvl71.lookup_type(+)         = 'PAYMENT TYPE'
99650   AND fvl71.lookup_code(+)         = h2.PAYMENT_TYPE
99651   AND fvl71.view_application_id(+) = 200
99652   AND fvl71.language(+)            = USERENV('LANG')
99653      AND fvl117.lookup_type(+)         = 'YES_NO'
99654   AND fvl117.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
99655   AND fvl117.view_application_id(+) = 0
99656   AND fvl117.language(+)            = USERENV('LANG')
99657      AND fvl159.lookup_type(+)         = 'YES_NO'
99658   AND fvl159.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
99659   AND fvl159.view_application_id(+) = 0
99660   AND fvl159.language(+)            = USERENV('LANG')
99661   
99662  ORDER BY event_id
99663 ;
99664 
99665 
99666 --
99667 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
99668 IS
99669 SELECT  /*+ leading(xet) cardinality(xet,1) */
99670 -- Event Class Code: PAYMENTS
99671     xet.entity_id
99672    ,xet.legal_entity_id
99673    ,xet.entity_code
99674    ,xet.transaction_number
99675    ,xet.event_id
99676    ,xet.event_class_code
99677    ,xet.event_type_code
99678    ,xet.event_number
99679    ,xet.event_date
99680    ,xet.transaction_date
99681    ,xet.reference_num_1
99682    ,xet.reference_num_2
99683    ,xet.reference_num_3
99684    ,xet.reference_num_4
99685    ,xet.reference_char_1
99686    ,xet.reference_char_2
99687    ,xet.reference_char_3
99688    ,xet.reference_char_4
99689    ,xet.reference_date_1
99690    ,xet.reference_date_2
99691    ,xet.reference_date_3
99692    ,xet.reference_date_4
99693    ,xet.event_created_by
99694    ,xet.budgetary_control_flag
99695  , l1.LINE_NUMBER  
99696   , l1.RELATED_INV_DIST_DEST_TYPE    source_19
99697   , fvl19.meaning   source_19_meaning
99698   , l1.APHD_PAYMENT_BASE_AMT    source_21
99699   , l1.APHD_CLEARING_BASE_AMT    source_22
99700   , l1.AID_DIST_CCID    source_29
99701   , l3.PO_NUMBER    source_31
99702   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_32
99703   , fvl32.meaning   source_32_meaning
99704   , l1.AID_RET_RELATED_DIST_CCID    source_35
99705   , l1.AWT_RELATED_DIST_ACCOUNT    source_36
99706   , l1.POD_CCID    source_40
99707   , l1.PO_VARIANCE_ACCOUNT    source_41
99708   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_51
99709   , fvl51.meaning   source_51_meaning
99710   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_52
99711   , l1.APHD_AMOUNT    source_53
99712   , l1.BUS_FLOW_AP_APP_ID    source_54
99713   , l1.APHD_PAYMENT_HIST_DIST_ID    source_59
99714   , l1.DISTRIBUTION_LINK_TYPE    source_60
99715   , l3.POH_RATE_DATE    source_61
99716   , l3.POH_RATE    source_62
99717   , l3.POH_RATE_TYPE    source_63
99718   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_64
99719   , fvl64.meaning   source_64_meaning
99720   , l1.APHD_REV_PAY_HIST_DIST_ID    source_68
99721   , l5.TAX_LINE_ID    source_69
99722   , l5.SUMMARY_TAX_LINE_ID    source_70
99723   , l1.APHD_INVOICE_DIST_AMOUNT    source_72
99724   , l1.BUS_FLOW_INV_DIST_TYPE    source_73
99725   , l1.BUS_FLOW_INV_ENTITY_CODE    source_74
99726   , l1.BUS_FLOW_INV_DIST_ID    source_75
99727   , l1.BUS_FLOW_INV_ID    source_76
99728   , l6.REC_NREC_TAX_DIST_ID    source_77
99729   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_111
99730   , fvl111.meaning   source_111_meaning
99731   , l1.AI_INVOICE_TYPE_PAID    source_112
99732   , fvl112.meaning   source_112_meaning
99733   , l1.BF_RETAINED_INV_DIST_ID_PMT    source_153
99734   , l1.BF_RETAINED_INV_ID_PMT    source_154
99735   FROM xla_events_gt     xet 
99736   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
99737   , AP_PO_HEADERS_EXTRACT_V  l3
99738   , ZX_AP_DEF_TAX_EXTRACT_V  l5
99739   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
99740   , fnd_lookup_values    fvl19
99741   , fnd_lookup_values    fvl32
99742   , fnd_lookup_values    fvl51
99743   , fnd_lookup_values    fvl64
99744   , fnd_lookup_values    fvl111
99745   , fnd_lookup_values    fvl112
99746  WHERE xet.event_id between x_first_event_id and x_last_event_id
99747    and xet.event_date between p_pad_start_date and p_pad_end_date
99748    and xet.event_class_code = C_EVENT_CLASS_CODE
99749    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
99753   AND fvl19.language(+)            = USERENV('LANG')
99750  AND l1.POD_PO_Header_Id  = l3.PO_Header_Id (+)  AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+)  AND l1.AID_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl19.lookup_type(+)         = 'DESTINATION TYPE'
99751   AND fvl19.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
99752   AND fvl19.view_application_id(+) = 201
99754      AND fvl32.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
99755   AND fvl32.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
99756   AND fvl32.view_application_id(+) = 200
99757   AND fvl32.language(+)            = USERENV('LANG')
99758      AND fvl51.lookup_type(+)         = 'PAY_DIST_TYPES'
99759   AND fvl51.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
99760   AND fvl51.view_application_id(+) = 200
99761   AND fvl51.language(+)            = USERENV('LANG')
99762      AND fvl64.lookup_type(+)         = 'YES_NO'
99763   AND fvl64.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
99764   AND fvl64.view_application_id(+) = 0
99765   AND fvl64.language(+)            = USERENV('LANG')
99766      AND fvl111.lookup_type(+)         = 'YES_NO'
99767   AND fvl111.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
99768   AND fvl111.view_application_id(+) = 0
99769   AND fvl111.language(+)            = USERENV('LANG')
99770      AND fvl112.lookup_type(+)         = 'INVOICE TYPE'
99771   AND fvl112.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
99772   AND fvl112.view_application_id(+) = 200
99773   AND fvl112.language(+)            = USERENV('LANG')
99774   ;
99775 
99776 --
99777 BEGIN
99778 IF g_log_enabled THEN
99779    l_log_module := C_DEFAULT_MODULE||'.EventClass_167';
99780 END IF;
99781 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99782    trace
99783       (p_msg      => 'BEGIN of EventClass_167'
99784       ,p_level    => C_LEVEL_PROCEDURE
99785       ,p_module   => l_log_module);
99786 END IF;
99787 
99788 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
99789    trace
99790       (p_msg      => 'p_application_id = '||p_application_id||
99791                      ' - p_base_ledger_id = '||p_base_ledger_id||
99792                      ' - p_target_ledger_id  = '||p_target_ledger_id||
99793                      ' - p_language = '||p_language||
99794                      ' - p_currency_code = '||p_currency_code||
99795                      ' - p_sla_ledger_id = '||p_sla_ledger_id
99796       ,p_level    => C_LEVEL_STATEMENT
99797       ,p_module   => l_log_module);
99798 END IF;
99799 --
99800 -- initialze arrays
99801 --
99802 g_array_event.DELETE;
99803 l_rec_array_event := l_null_rec_array_event;
99804 --
99805 --------------------------------------
99806 -- 4262811 Initialze MPA Line Number
99807 --------------------------------------
99808 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
99809 
99810 --
99811 
99812 --
99813 OPEN header_cur;
99814 --
99815 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
99816    trace
99817    (p_msg      => 'SQL - FETCH header_cur'
99818    ,p_level    => C_LEVEL_STATEMENT
99819    ,p_module   => l_log_module);
99820 END IF;
99821 --
99822 LOOP
99823 FETCH header_cur BULK COLLECT INTO
99824         l_array_entity_id
99825       , l_array_legal_entity_id
99826       , l_array_entity_code
99827       , l_array_transaction_num
99828       , l_array_event_id
99829       , l_array_class_code
99830       , l_array_event_type
99831       , l_array_event_number
99832       , l_array_event_date
99833       , l_array_transaction_date
99834       , l_array_reference_num_1
99835       , l_array_reference_num_2
99836       , l_array_reference_num_3
99837       , l_array_reference_num_4
99838       , l_array_reference_char_1
99839       , l_array_reference_char_2
99840       , l_array_reference_char_3
99841       , l_array_reference_char_4
99842       , l_array_reference_date_1
99843       , l_array_reference_date_2
99844       , l_array_reference_date_3
99845       , l_array_reference_date_4
99846       , l_array_event_created_by
99847       , l_array_budgetary_control_flag 
99848       , l_array_source_5
99849       , l_array_source_8
99850       , l_array_source_9
99851       , l_array_source_10
99852       , l_array_source_11
99853       , l_array_source_12
99854       , l_array_source_13
99855       , l_array_source_14
99856       , l_array_source_15
99857       , l_array_source_15_meaning
99858       , l_array_source_16
99859       , l_array_source_16_meaning
99860       , l_array_source_17
99861       , l_array_source_20
99862       , l_array_source_23
99863       , l_array_source_24
99864       , l_array_source_24_meaning
99865       , l_array_source_25
99866       , l_array_source_26
99867       , l_array_source_27
99868       , l_array_source_28
99869       , l_array_source_30
99870       , l_array_source_30_meaning
99871       , l_array_source_33
99872       , l_array_source_34
99873       , l_array_source_39
99874       , l_array_source_42
99875       , l_array_source_42_meaning
99876       , l_array_source_43
99877       , l_array_source_50
99878       , l_array_source_65
99879       , l_array_source_66
99880       , l_array_source_67
99881       , l_array_source_71
99882       , l_array_source_71_meaning
99883       , l_array_source_117
99884       , l_array_source_117_meaning
99885       , l_array_source_118
99886       , l_array_source_120
99890       , l_array_source_156
99887       , l_array_source_121
99888       , l_array_source_122
99889       , l_array_source_123
99891       , l_array_source_157
99892       , l_array_source_159
99893       , l_array_source_159_meaning
99894       LIMIT l_rows;
99895 --
99896 IF (C_LEVEL_EVENT >= g_log_level) THEN
99897    trace
99898    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
99899    ,p_level    => C_LEVEL_EVENT
99900    ,p_module   => l_log_module);
99901 END IF;
99902 --
99903 EXIT WHEN l_array_entity_id.COUNT = 0;
99904 
99905 -- initialize arrays
99906 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
99907 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
99908 
99909 --
99910 -- Bug 4458708
99911 --
99912 XLA_AE_LINES_PKG.g_LineNumber := 0;
99913 
99914 
99915 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
99916 g_last_hdr_idx := l_array_event_id.LAST;
99917 --
99918 -- loop for the headers. Each iteration is for each header extract row
99919 -- fetched in header cursor
99920 --
99921 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
99922 
99923 --
99924 -- set event info as cache for other routines to refer event attributes
99925 --
99926 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
99927    (p_application_id           => p_application_id
99928    ,p_primary_ledger_id        => p_primary_ledger_id
99929    ,p_base_ledger_id           => p_base_ledger_id
99930    ,p_target_ledger_id         => p_target_ledger_id
99931    ,p_entity_id                => l_array_entity_id(hdr_idx)
99932    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
99933    ,p_entity_code              => l_array_entity_code(hdr_idx)
99934    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
99935    ,p_event_id                 => l_array_event_id(hdr_idx)
99936    ,p_event_class_code         => l_array_class_code(hdr_idx)
99937    ,p_event_type_code          => l_array_event_type(hdr_idx)
99938    ,p_event_number             => l_array_event_number(hdr_idx)
99939    ,p_event_date               => l_array_event_date(hdr_idx)
99940    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
99941    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
99942    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
99943    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
99944    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
99945    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
99946    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
99947    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
99948    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
99949    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
99950    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
99951    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
99952    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
99953    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
99954    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
99955 
99956 --
99957 -- set the status of entry to C_VALID (0)
99958 --
99959 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
99960 
99961 --
99962 -- initialize a row for ae header
99963 --
99964 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
99965 
99966 l_event_id := l_array_event_id(hdr_idx);
99967 
99968 --
99969 -- storing the hdr_idx for event. May be used by line cursor.
99970 --
99971 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
99972 
99973 --
99974 -- store sources from header extract. This can be improved to
99975 -- store only those sources from header extract that may be used in lines
99976 --
99977 
99978 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
99979 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
99980 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
99981 g_array_event(l_event_id).array_value_date('source_10') := l_array_source_10(hdr_idx);
99982 g_array_event(l_event_id).array_value_char('source_11') := l_array_source_11(hdr_idx);
99983 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
99984 g_array_event(l_event_id).array_value_num('source_13') := l_array_source_13(hdr_idx);
99985 g_array_event(l_event_id).array_value_num('source_14') := l_array_source_14(hdr_idx);
99986 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
99987 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
99988 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
99989 g_array_event(l_event_id).array_value_char('source_16_meaning') := l_array_source_16_meaning(hdr_idx);
99990 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
99991 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
99992 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
99993 g_array_event(l_event_id).array_value_char('source_24') := l_array_source_24(hdr_idx);
99994 g_array_event(l_event_id).array_value_char('source_24_meaning') := l_array_source_24_meaning(hdr_idx);
99998 g_array_event(l_event_id).array_value_char('source_28') := l_array_source_28(hdr_idx);
99995 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
99996 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
99997 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
99999 g_array_event(l_event_id).array_value_char('source_30') := l_array_source_30(hdr_idx);
100000 g_array_event(l_event_id).array_value_char('source_30_meaning') := l_array_source_30_meaning(hdr_idx);
100001 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
100002 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
100003 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
100004 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
100005 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
100006 g_array_event(l_event_id).array_value_num('source_43') := l_array_source_43(hdr_idx);
100007 g_array_event(l_event_id).array_value_char('source_50') := l_array_source_50(hdr_idx);
100008 g_array_event(l_event_id).array_value_num('source_65') := l_array_source_65(hdr_idx);
100009 g_array_event(l_event_id).array_value_num('source_66') := l_array_source_66(hdr_idx);
100010 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
100011 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
100012 g_array_event(l_event_id).array_value_char('source_71_meaning') := l_array_source_71_meaning(hdr_idx);
100013 g_array_event(l_event_id).array_value_char('source_117') := l_array_source_117(hdr_idx);
100014 g_array_event(l_event_id).array_value_char('source_117_meaning') := l_array_source_117_meaning(hdr_idx);
100015 g_array_event(l_event_id).array_value_date('source_118') := l_array_source_118(hdr_idx);
100016 g_array_event(l_event_id).array_value_char('source_120') := l_array_source_120(hdr_idx);
100017 g_array_event(l_event_id).array_value_date('source_121') := l_array_source_121(hdr_idx);
100018 g_array_event(l_event_id).array_value_num('source_122') := l_array_source_122(hdr_idx);
100019 g_array_event(l_event_id).array_value_char('source_123') := l_array_source_123(hdr_idx);
100020 g_array_event(l_event_id).array_value_char('source_156') := l_array_source_156(hdr_idx);
100021 g_array_event(l_event_id).array_value_num('source_157') := l_array_source_157(hdr_idx);
100022 g_array_event(l_event_id).array_value_char('source_159') := l_array_source_159(hdr_idx);
100023 g_array_event(l_event_id).array_value_char('source_159_meaning') := l_array_source_159_meaning(hdr_idx);
100024 
100025 --
100026 -- initilaize the status of ae headers for diffrent balance types
100027 -- the status is initialised to C_NOT_CREATED (2)
100028 --
100029 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
100030 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
100031 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
100032 
100033 --
100034 -- call api to validate and store accounting attributes for header
100035 --
100036 
100037 ------------------------------------------------------------
100038 -- Accrual Reversal : to get date for Standard Source (NONE)
100039 ------------------------------------------------------------
100040 l_acc_rev_gl_date_source := NULL;
100041 
100042      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
100043       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_156');
100044      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
100045       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_157');
100046      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
100047       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_8');
100048      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
100049       l_rec_acct_attrs.array_date_value(4) := 
100050 xla_ae_sources_pkg.GetSystemSourceDate(
100051    p_source_code           => 'XLA_EVENT_DATE'
100052  , p_source_type_code      => 'Y'
100053  , p_source_application_id =>  602
100054 );
100055      l_rec_acct_attrs.array_acct_attr_code(5)   := 'TRX_ACCT_REVERSAL_OPTION';
100056       l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_159');
100057 
100058 
100059 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
100060 
100061 XLA_AE_HEADER_PKG.SetJeCategoryName;
100062 
100063 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
100064 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
100065 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
100066 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
100067 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
100068 
100069 
100070 --
100071 xla_ae_header_pkg.SetHdrDescription(
100072    p_description => Description_2 (
100073    p_application_id => p_application_id 
100074  , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
100075  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
100076  , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
100077  , p_source_10 => g_array_event(l_event_id).array_value_date('source_10')
100078  , p_source_11 => g_array_event(l_event_id).array_value_char('source_11')
100082 --
100079  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100080    )
100081 );
100083 
100084 -- No header level analytical criteria
100085 
100086 --
100087 --accounting attribute enhancement, bug 3612931
100088 --
100089 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_159'), 1,30);
100090 
100091 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
100092    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
100093 
100094    xla_accounting_err_pkg.build_message
100095       (p_appli_s_name            => 'XLA'
100096       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
100097       ,p_token_1                 => 'ACCT_ATTR_NAME'
100098       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
100099       ,p_token_2                 => 'PRODUCT_NAME'
100100       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
100101       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
100102       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
100103       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
100104 
100105 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
100106    --
100107    -- following sets the accounting attributes needed to reverse
100108    -- accounting for a distributeion
100109    --
100110    xla_ae_lines_pkg.SetTrxReversalAttrs
100111       (p_event_id              => l_event_id
100112       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
100113       ,p_trx_reversal_source   => l_trx_reversal_source);
100114 
100115 END IF;
100116 
100117 
100118 ----------------------------------------------------------------
100119 -- 4262811 -  update the header statuses to invalid in need be
100120 ----------------------------------------------------------------
100121 --
100122 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
100123 
100124 
100125   -----------------------------------------------
100126   -- No accrual reversal for the event class/type
100127   -----------------------------------------------
100128 ----------------------------------------------------------------
100129 
100130 --
100131 -- this ends the header loop iteration for one bulk fetch
100132 --
100133 END LOOP;
100134 
100135 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
100136 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
100137 
100138 --
100139 -- insert dummy rows into lines gt table that were created due to
100140 -- transaction reversals
100141 --
100142 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
100143    l_result := XLA_AE_LINES_PKG.InsertLines;
100144 END IF;
100145 
100146 --
100147 -- reset the temp_line_num for each set of events fetched from header
100148 -- cursor rather than doing it for each new event in line cursor
100149 -- Bug 3939231
100150 --
100151 xla_ae_lines_pkg.g_temp_line_num := 0;
100152 
100153 
100154 
100155 --
100156 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
100157 --
100158 --
100159 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
100160 
100161       trace
100162          (p_msg      => 'SQL - FETCH line_cur'
100163          ,p_level    => C_LEVEL_STATEMENT
100164          ,p_module   => l_log_module);
100165 
100166 END IF;
100167 --
100168 --
100169 LOOP
100170   --
100171   FETCH line_cur BULK COLLECT INTO
100172         l_array_entity_id
100173       , l_array_legal_entity_id
100174       , l_array_entity_code
100175       , l_array_transaction_num
100176       , l_array_event_id
100177       , l_array_class_code
100178       , l_array_event_type
100179       , l_array_event_number
100180       , l_array_event_date
100181       , l_array_transaction_date
100182       , l_array_reference_num_1
100183       , l_array_reference_num_2
100184       , l_array_reference_num_3
100185       , l_array_reference_num_4
100186       , l_array_reference_char_1
100187       , l_array_reference_char_2
100188       , l_array_reference_char_3
100189       , l_array_reference_char_4
100190       , l_array_reference_date_1
100191       , l_array_reference_date_2
100192       , l_array_reference_date_3
100193       , l_array_reference_date_4
100194       , l_array_event_created_by
100195       , l_array_budgetary_control_flag
100196       , l_array_extract_line_num 
100197       , l_array_source_19
100198       , l_array_source_19_meaning
100199       , l_array_source_21
100200       , l_array_source_22
100201       , l_array_source_29
100202       , l_array_source_31
100203       , l_array_source_32
100204       , l_array_source_32_meaning
100205       , l_array_source_35
100206       , l_array_source_36
100207       , l_array_source_40
100208       , l_array_source_41
100209       , l_array_source_51
100210       , l_array_source_51_meaning
100211       , l_array_source_52
100212       , l_array_source_53
100213       , l_array_source_54
100214       , l_array_source_59
100215       , l_array_source_60
100216       , l_array_source_61
100217       , l_array_source_62
100218       , l_array_source_63
100219       , l_array_source_64
100220       , l_array_source_64_meaning
100221       , l_array_source_68
100225       , l_array_source_73
100222       , l_array_source_69
100223       , l_array_source_70
100224       , l_array_source_72
100226       , l_array_source_74
100227       , l_array_source_75
100228       , l_array_source_76
100229       , l_array_source_77
100230       , l_array_source_111
100231       , l_array_source_111_meaning
100232       , l_array_source_112
100233       , l_array_source_112_meaning
100234       , l_array_source_153
100235       , l_array_source_154
100236       LIMIT l_rows;
100237 
100238   --
100239   IF (C_LEVEL_EVENT >= g_log_level) THEN
100240             trace
100241                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
100242                ,p_level    => C_LEVEL_EVENT
100243                ,p_module   => l_log_module);
100244   END IF;
100245   --
100246   EXIT WHEN l_array_entity_id.count = 0;
100247 
100248   XLA_AE_LINES_PKG.g_rec_lines := null;
100249 
100250 --
100251 -- Bug 4458708
100252 --
100253 XLA_AE_LINES_PKG.g_LineNumber := 0;
100254 --
100255 --
100256 
100257 FOR Idx IN 1..l_array_event_id.count LOOP
100258    --
100259    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
100260    --
100261    l_event_id := l_array_event_id(idx);  -- 5648433
100262 
100263    --
100264    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
100265    --
100266 
100267    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
100268              (g_array_event(l_event_id).array_value_num('header_index'))
100269          ,'N'
100270          ) <> 'Y'
100271    THEN
100272       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
100273          trace
100274             (p_msg      => 'Trancaction revesal option is not Y '
100275             ,p_level    => C_LEVEL_STATEMENT
100276             ,p_module   => l_log_module);
100277       END IF;
100278 
100279 --
100280 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
100281 --
100282 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
100283 --
100284 -- set event info as cache for other routines to refer event attributes
100285 --
100286 
100287 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
100288    l_previous_event_id := l_event_id;
100289 
100290    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
100291       (p_application_id           => p_application_id
100292       ,p_primary_ledger_id        => p_primary_ledger_id
100293       ,p_base_ledger_id           => p_base_ledger_id
100294       ,p_target_ledger_id         => p_target_ledger_id
100295       ,p_entity_id                => l_array_entity_id(Idx)
100296       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
100297       ,p_entity_code              => l_array_entity_code(Idx)
100298       ,p_transaction_num          => l_array_transaction_num(Idx)
100299       ,p_event_id                 => l_array_event_id(Idx)
100300       ,p_event_class_code         => l_array_class_code(Idx)
100301       ,p_event_type_code          => l_array_event_type(Idx)
100302       ,p_event_number             => l_array_event_number(Idx)
100303       ,p_event_date               => l_array_event_date(Idx)
100304       ,p_transaction_date         => l_array_transaction_date(Idx)
100305       ,p_reference_num_1          => l_array_reference_num_1(Idx)
100306       ,p_reference_num_2          => l_array_reference_num_2(Idx)
100307       ,p_reference_num_3          => l_array_reference_num_3(Idx)
100308       ,p_reference_num_4          => l_array_reference_num_4(Idx)
100309       ,p_reference_char_1         => l_array_reference_char_1(Idx)
100310       ,p_reference_char_2         => l_array_reference_char_2(Idx)
100311       ,p_reference_char_3         => l_array_reference_char_3(Idx)
100312       ,p_reference_char_4         => l_array_reference_char_4(Idx)
100313       ,p_reference_date_1         => l_array_reference_date_1(Idx)
100314       ,p_reference_date_2         => l_array_reference_date_2(Idx)
100315       ,p_reference_date_3         => l_array_reference_date_3(Idx)
100316       ,p_reference_date_4         => l_array_reference_date_4(Idx)
100317       ,p_event_created_by         => l_array_event_created_by(Idx)
100318       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
100319        --
100320 END IF;
100321 
100322 
100323 
100324 --
100325 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
100326 
100327 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
100328 
100329 IF l_continue_with_lines THEN
100330    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
100331       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
100332 
100333       xla_accounting_err_pkg.build_message
100334          (p_appli_s_name            => 'XLA'
100335          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
100336          ,p_token_1                 => 'LINE_NUMBER'
100337          ,p_value_1                 => l_array_extract_line_num(Idx)
100338          ,p_token_2                 => 'PRODUCT_NAME'
100339          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
100340          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
100341          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
100342          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
100343 
100347       -- accounting for a distributeion
100344    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
100345       --
100346       -- following sets the accounting attributes needed to reverse
100348       --
100349 
100350       --
100351       -- 5217187
100352       --
100353       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
100354       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
100355                                        g_array_event(l_event_id).array_value_num('header_index'));
100356       --
100357       --
100358 
100359       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
100360       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_52(Idx);
100361       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
100362       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_59(Idx);
100363       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
100364       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_60(Idx);
100365       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
100366       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_67');
100367       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
100368       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_68(Idx);
100369       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
100370       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_60(Idx);
100371       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
100372       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_69(Idx);
100373       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
100374       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_77(Idx);
100375       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
100376       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_70(Idx);
100377 
100378 
100379       xla_ae_lines_pkg.SetAcctReversalAttrs
100380          (p_event_id             => l_event_id
100381          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
100382          ,p_calculate_acctd_flag => l_calculate_acctd_flag
100383          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
100384    END IF;
100385 
100386    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
100387        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
100388 
100389 --
100390 AcctLineType_40 (
100391  p_application_id  => p_application_id
100392  ,p_event_id     => l_event_id
100393  ,p_calculate_acctd_flag => l_calculate_acctd_flag
100394  ,p_calculate_g_l_flag => l_calculate_g_l_flag
100395  ,p_actual_flag => l_actual_flag
100396  ,p_balance_type_code => l_balance_type_code
100397  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100398  
100399  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100400  , p_source_21 => l_array_source_21(Idx)
100401  , p_source_32 => l_array_source_32(Idx)
100402  , p_source_32_meaning => l_array_source_32_meaning(Idx)
100403  , p_source_40 => l_array_source_40(Idx)
100404  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100405  , p_source_51 => l_array_source_51(Idx)
100406  , p_source_51_meaning => l_array_source_51_meaning(Idx)
100407  , p_source_52 => l_array_source_52(Idx)
100408  , p_source_53 => l_array_source_53(Idx)
100409  , p_source_54 => l_array_source_54(Idx)
100410  , p_source_59 => l_array_source_59(Idx)
100411  , p_source_60 => l_array_source_60(Idx)
100412  , p_source_61 => l_array_source_61(Idx)
100413  , p_source_62 => l_array_source_62(Idx)
100414  , p_source_63 => l_array_source_63(Idx)
100415  , p_source_64 => l_array_source_64(Idx)
100416  , p_source_64_meaning => l_array_source_64_meaning(Idx)
100417  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100418  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100419  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100420  , p_source_68 => l_array_source_68(Idx)
100421  , p_source_69 => l_array_source_69(Idx)
100422  , p_source_70 => l_array_source_70(Idx)
100423  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100424  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100425  , p_source_72 => l_array_source_72(Idx)
100426  , p_source_73 => l_array_source_73(Idx)
100427  , p_source_74 => l_array_source_74(Idx)
100428  , p_source_75 => l_array_source_75(Idx)
100429  , p_source_76 => l_array_source_76(Idx)
100430  , p_source_77 => l_array_source_77(Idx)
100431  );
100432 If(l_balance_type_code = 'A') THEN
100433   l_actual_gain_loss_ref := l_gain_or_loss_ref;
100434 END IF;
100435 
100436 --
100437 
100438 
100439 --
100440 AcctLineType_45 (
100441  p_application_id  => p_application_id
100442  ,p_event_id     => l_event_id
100443  ,p_calculate_acctd_flag => l_calculate_acctd_flag
100444  ,p_calculate_g_l_flag => l_calculate_g_l_flag
100445  ,p_actual_flag => l_actual_flag
100446  ,p_balance_type_code => l_balance_type_code
100447  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100448  
100449  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100450  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100451  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
100452  , p_source_19 => l_array_source_19(Idx)
100456  , p_source_22 => l_array_source_22(Idx)
100453  , p_source_19_meaning => l_array_source_19_meaning(Idx)
100454  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
100455  , p_source_21 => l_array_source_21(Idx)
100457  , p_source_29 => l_array_source_29(Idx)
100458  , p_source_32 => l_array_source_32(Idx)
100459  , p_source_32_meaning => l_array_source_32_meaning(Idx)
100460  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
100461  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
100462  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100463  , p_source_52 => l_array_source_52(Idx)
100464  , p_source_54 => l_array_source_54(Idx)
100465  , p_source_59 => l_array_source_59(Idx)
100466  , p_source_60 => l_array_source_60(Idx)
100467  , p_source_64 => l_array_source_64(Idx)
100468  , p_source_64_meaning => l_array_source_64_meaning(Idx)
100469  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100470  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100471  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100472  , p_source_68 => l_array_source_68(Idx)
100473  , p_source_69 => l_array_source_69(Idx)
100474  , p_source_70 => l_array_source_70(Idx)
100475  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100476  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100477  , p_source_72 => l_array_source_72(Idx)
100478  , p_source_73 => l_array_source_73(Idx)
100479  , p_source_74 => l_array_source_74(Idx)
100480  , p_source_75 => l_array_source_75(Idx)
100481  , p_source_76 => l_array_source_76(Idx)
100482  , p_source_77 => l_array_source_77(Idx)
100483  );
100484 If(l_balance_type_code = 'A') THEN
100485   l_actual_gain_loss_ref := l_gain_or_loss_ref;
100486 END IF;
100487 
100488 --
100489 
100490 
100491 --
100492 AcctLineType_49 (
100493  p_application_id  => p_application_id
100494  ,p_event_id     => l_event_id
100495  ,p_calculate_acctd_flag => l_calculate_acctd_flag
100496  ,p_calculate_g_l_flag => l_calculate_g_l_flag
100497  ,p_actual_flag => l_actual_flag
100498  ,p_balance_type_code => l_balance_type_code
100499  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100500  
100501  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100502  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100503  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
100504  , p_source_19 => l_array_source_19(Idx)
100505  , p_source_19_meaning => l_array_source_19_meaning(Idx)
100506  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
100507  , p_source_21 => l_array_source_21(Idx)
100508  , p_source_22 => l_array_source_22(Idx)
100509  , p_source_29 => l_array_source_29(Idx)
100510  , p_source_32 => l_array_source_32(Idx)
100511  , p_source_32_meaning => l_array_source_32_meaning(Idx)
100512  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
100513  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
100514  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100515  , p_source_51 => l_array_source_51(Idx)
100516  , p_source_51_meaning => l_array_source_51_meaning(Idx)
100517  , p_source_52 => l_array_source_52(Idx)
100518  , p_source_54 => l_array_source_54(Idx)
100519  , p_source_59 => l_array_source_59(Idx)
100520  , p_source_60 => l_array_source_60(Idx)
100521  , p_source_64 => l_array_source_64(Idx)
100522  , p_source_64_meaning => l_array_source_64_meaning(Idx)
100523  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100524  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100525  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100526  , p_source_68 => l_array_source_68(Idx)
100527  , p_source_69 => l_array_source_69(Idx)
100528  , p_source_70 => l_array_source_70(Idx)
100529  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100530  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100531  , p_source_72 => l_array_source_72(Idx)
100532  , p_source_73 => l_array_source_73(Idx)
100533  , p_source_74 => l_array_source_74(Idx)
100534  , p_source_75 => l_array_source_75(Idx)
100535  , p_source_76 => l_array_source_76(Idx)
100536  , p_source_77 => l_array_source_77(Idx)
100537  , p_source_111 => l_array_source_111(Idx)
100538  , p_source_111_meaning => l_array_source_111_meaning(Idx)
100539  , p_source_112 => l_array_source_112(Idx)
100540  , p_source_112_meaning => l_array_source_112_meaning(Idx)
100541  );
100542 If(l_balance_type_code = 'A') THEN
100543   l_actual_gain_loss_ref := l_gain_or_loss_ref;
100544 END IF;
100545 
100546 --
100547 
100548 
100549 --
100550 AcctLineType_59 (
100551  p_application_id  => p_application_id
100552  ,p_event_id     => l_event_id
100553  ,p_calculate_acctd_flag => l_calculate_acctd_flag
100554  ,p_calculate_g_l_flag => l_calculate_g_l_flag
100555  ,p_actual_flag => l_actual_flag
100556  ,p_balance_type_code => l_balance_type_code
100557  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100558  
100559  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100560  , p_source_21 => l_array_source_21(Idx)
100561  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
100562  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
100566  , p_source_51_meaning => l_array_source_51_meaning(Idx)
100563  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
100564  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100565  , p_source_51 => l_array_source_51(Idx)
100567  , p_source_52 => l_array_source_52(Idx)
100568  , p_source_53 => l_array_source_53(Idx)
100569  , p_source_54 => l_array_source_54(Idx)
100570  , p_source_59 => l_array_source_59(Idx)
100571  , p_source_60 => l_array_source_60(Idx)
100572  , p_source_64 => l_array_source_64(Idx)
100573  , p_source_64_meaning => l_array_source_64_meaning(Idx)
100574  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100575  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100576  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100577  , p_source_68 => l_array_source_68(Idx)
100578  , p_source_69 => l_array_source_69(Idx)
100579  , p_source_70 => l_array_source_70(Idx)
100580  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100581  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100582  , p_source_72 => l_array_source_72(Idx)
100583  , p_source_73 => l_array_source_73(Idx)
100584  , p_source_74 => l_array_source_74(Idx)
100585  , p_source_75 => l_array_source_75(Idx)
100586  , p_source_76 => l_array_source_76(Idx)
100587  , p_source_77 => l_array_source_77(Idx)
100588  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
100589  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
100590  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
100591  , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
100592  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100593  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100594  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100595  );
100596 If(l_balance_type_code = 'A') THEN
100597   l_actual_gain_loss_ref := l_gain_or_loss_ref;
100598 END IF;
100599 
100600 --
100601 
100602 
100603 --
100604 AcctLineType_60 (
100605  p_application_id  => p_application_id
100606  ,p_event_id     => l_event_id
100607  ,p_calculate_acctd_flag => l_calculate_acctd_flag
100608  ,p_calculate_g_l_flag => l_calculate_g_l_flag
100609  ,p_actual_flag => l_actual_flag
100610  ,p_balance_type_code => l_balance_type_code
100611  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100612  
100613  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100614  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100615  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100616  , p_source_21 => l_array_source_21(Idx)
100617  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
100618  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100619  , p_source_51 => l_array_source_51(Idx)
100620  , p_source_51_meaning => l_array_source_51_meaning(Idx)
100621  , p_source_52 => l_array_source_52(Idx)
100622  , p_source_53 => l_array_source_53(Idx)
100623  , p_source_54 => l_array_source_54(Idx)
100624  , p_source_59 => l_array_source_59(Idx)
100625  , p_source_60 => l_array_source_60(Idx)
100626  , p_source_64 => l_array_source_64(Idx)
100627  , p_source_64_meaning => l_array_source_64_meaning(Idx)
100628  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100629  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100630  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100631  , p_source_68 => l_array_source_68(Idx)
100632  , p_source_69 => l_array_source_69(Idx)
100633  , p_source_70 => l_array_source_70(Idx)
100634  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100635  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100636  , p_source_72 => l_array_source_72(Idx)
100637  , p_source_73 => l_array_source_73(Idx)
100638  , p_source_74 => l_array_source_74(Idx)
100639  , p_source_75 => l_array_source_75(Idx)
100640  , p_source_76 => l_array_source_76(Idx)
100641  , p_source_77 => l_array_source_77(Idx)
100642  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
100643  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
100644  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
100645  , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
100646  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100647  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100648  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100649  );
100650 If(l_balance_type_code = 'A') THEN
100651   l_actual_gain_loss_ref := l_gain_or_loss_ref;
100652 END IF;
100653 
100654 --
100655 
100656 
100657 --
100658 AcctLineType_61 (
100659  p_application_id  => p_application_id
100660  ,p_event_id     => l_event_id
100661  ,p_calculate_acctd_flag => l_calculate_acctd_flag
100662  ,p_calculate_g_l_flag => l_calculate_g_l_flag
100663  ,p_actual_flag => l_actual_flag
100664  ,p_balance_type_code => l_balance_type_code
100665  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100666  
100667  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100668  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100669  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100673  , p_source_51 => l_array_source_51(Idx)
100670  , p_source_21 => l_array_source_21(Idx)
100671  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
100672  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100674  , p_source_51_meaning => l_array_source_51_meaning(Idx)
100675  , p_source_52 => l_array_source_52(Idx)
100676  , p_source_53 => l_array_source_53(Idx)
100677  , p_source_54 => l_array_source_54(Idx)
100678  , p_source_59 => l_array_source_59(Idx)
100679  , p_source_60 => l_array_source_60(Idx)
100680  , p_source_64 => l_array_source_64(Idx)
100681  , p_source_64_meaning => l_array_source_64_meaning(Idx)
100682  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100683  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100684  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100685  , p_source_68 => l_array_source_68(Idx)
100686  , p_source_69 => l_array_source_69(Idx)
100687  , p_source_70 => l_array_source_70(Idx)
100688  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100689  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100690  , p_source_72 => l_array_source_72(Idx)
100691  , p_source_73 => l_array_source_73(Idx)
100692  , p_source_74 => l_array_source_74(Idx)
100693  , p_source_75 => l_array_source_75(Idx)
100694  , p_source_76 => l_array_source_76(Idx)
100695  , p_source_77 => l_array_source_77(Idx)
100696  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
100697  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
100698  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
100699  , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
100700  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100701  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100702  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100703  );
100704 If(l_balance_type_code = 'A') THEN
100705   l_actual_gain_loss_ref := l_gain_or_loss_ref;
100706 END IF;
100707 
100708 --
100709 
100710 
100711 --
100712 AcctLineType_68 (
100713  p_application_id  => p_application_id
100714  ,p_event_id     => l_event_id
100715  ,p_calculate_acctd_flag => l_calculate_acctd_flag
100716  ,p_calculate_g_l_flag => l_calculate_g_l_flag
100717  ,p_actual_flag => l_actual_flag
100718  ,p_balance_type_code => l_balance_type_code
100719  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100720  
100721  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100722  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
100723  , p_source_21 => l_array_source_21(Idx)
100724  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
100725  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
100726  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100727  , p_source_51 => l_array_source_51(Idx)
100728  , p_source_51_meaning => l_array_source_51_meaning(Idx)
100729  , p_source_52 => l_array_source_52(Idx)
100730  , p_source_53 => l_array_source_53(Idx)
100731  , p_source_54 => l_array_source_54(Idx)
100732  , p_source_59 => l_array_source_59(Idx)
100733  , p_source_60 => l_array_source_60(Idx)
100734  , p_source_64 => l_array_source_64(Idx)
100735  , p_source_64_meaning => l_array_source_64_meaning(Idx)
100736  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100737  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100738  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100739  , p_source_68 => l_array_source_68(Idx)
100740  , p_source_69 => l_array_source_69(Idx)
100741  , p_source_70 => l_array_source_70(Idx)
100742  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100743  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100744  , p_source_72 => l_array_source_72(Idx)
100745  , p_source_73 => l_array_source_73(Idx)
100746  , p_source_74 => l_array_source_74(Idx)
100747  , p_source_75 => l_array_source_75(Idx)
100748  , p_source_76 => l_array_source_76(Idx)
100749  , p_source_77 => l_array_source_77(Idx)
100750  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
100751  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
100752  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
100753  , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
100754  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100755  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100756  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100757  );
100758 If(l_balance_type_code = 'A') THEN
100759   l_actual_gain_loss_ref := l_gain_or_loss_ref;
100760 END IF;
100761 
100762 --
100763 
100764 
100765 --
100766 AcctLineType_69 (
100767  p_application_id  => p_application_id
100768  ,p_event_id     => l_event_id
100769  ,p_calculate_acctd_flag => l_calculate_acctd_flag
100770  ,p_calculate_g_l_flag => l_calculate_g_l_flag
100771  ,p_actual_flag => l_actual_flag
100772  ,p_balance_type_code => l_balance_type_code
100773  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100774  
100778  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100775  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100776  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
100777  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100779  , p_source_21 => l_array_source_21(Idx)
100780  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100781  , p_source_51 => l_array_source_51(Idx)
100782  , p_source_51_meaning => l_array_source_51_meaning(Idx)
100783  , p_source_52 => l_array_source_52(Idx)
100784  , p_source_53 => l_array_source_53(Idx)
100785  , p_source_54 => l_array_source_54(Idx)
100786  , p_source_59 => l_array_source_59(Idx)
100787  , p_source_60 => l_array_source_60(Idx)
100788  , p_source_64 => l_array_source_64(Idx)
100789  , p_source_64_meaning => l_array_source_64_meaning(Idx)
100790  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100791  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100792  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100793  , p_source_68 => l_array_source_68(Idx)
100794  , p_source_69 => l_array_source_69(Idx)
100795  , p_source_70 => l_array_source_70(Idx)
100796  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100797  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100798  , p_source_72 => l_array_source_72(Idx)
100799  , p_source_73 => l_array_source_73(Idx)
100800  , p_source_74 => l_array_source_74(Idx)
100801  , p_source_75 => l_array_source_75(Idx)
100802  , p_source_76 => l_array_source_76(Idx)
100803  , p_source_77 => l_array_source_77(Idx)
100804  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
100805  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
100806  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
100807  , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
100808  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100809  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100810  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100811  );
100812 If(l_balance_type_code = 'A') THEN
100813   l_actual_gain_loss_ref := l_gain_or_loss_ref;
100814 END IF;
100815 
100816 --
100817 
100818 
100819 --
100820 AcctLineType_70 (
100821  p_application_id  => p_application_id
100822  ,p_event_id     => l_event_id
100823  ,p_calculate_acctd_flag => l_calculate_acctd_flag
100824  ,p_calculate_g_l_flag => l_calculate_g_l_flag
100825  ,p_actual_flag => l_actual_flag
100826  ,p_balance_type_code => l_balance_type_code
100827  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100828  
100829  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100830  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
100831  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100832  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100833  , p_source_21 => l_array_source_21(Idx)
100834  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100835  , p_source_51 => l_array_source_51(Idx)
100836  , p_source_51_meaning => l_array_source_51_meaning(Idx)
100837  , p_source_52 => l_array_source_52(Idx)
100838  , p_source_53 => l_array_source_53(Idx)
100839  , p_source_54 => l_array_source_54(Idx)
100840  , p_source_59 => l_array_source_59(Idx)
100841  , p_source_60 => l_array_source_60(Idx)
100842  , p_source_64 => l_array_source_64(Idx)
100843  , p_source_64_meaning => l_array_source_64_meaning(Idx)
100844  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100845  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100846  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100847  , p_source_68 => l_array_source_68(Idx)
100848  , p_source_69 => l_array_source_69(Idx)
100849  , p_source_70 => l_array_source_70(Idx)
100850  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100851  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100852  , p_source_72 => l_array_source_72(Idx)
100853  , p_source_73 => l_array_source_73(Idx)
100854  , p_source_74 => l_array_source_74(Idx)
100855  , p_source_75 => l_array_source_75(Idx)
100856  , p_source_76 => l_array_source_76(Idx)
100857  , p_source_77 => l_array_source_77(Idx)
100858  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
100859  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
100860  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
100861  , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
100862  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100863  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100864  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100865  );
100866 If(l_balance_type_code = 'A') THEN
100867   l_actual_gain_loss_ref := l_gain_or_loss_ref;
100868 END IF;
100869 
100870 --
100871 
100872 
100873 --
100874 AcctLineType_78 (
100875  p_application_id  => p_application_id
100876  ,p_event_id     => l_event_id
100877  ,p_calculate_acctd_flag => l_calculate_acctd_flag
100878  ,p_calculate_g_l_flag => l_calculate_g_l_flag
100879  ,p_actual_flag => l_actual_flag
100880  ,p_balance_type_code => l_balance_type_code
100884  , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
100881  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100882  
100883  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100885  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
100886  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
100887  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100888  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100889  , p_source_21 => l_array_source_21(Idx)
100890  , p_source_29 => l_array_source_29(Idx)
100891  , p_source_32 => l_array_source_32(Idx)
100892  , p_source_32_meaning => l_array_source_32_meaning(Idx)
100893  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
100894  , p_source_40 => l_array_source_40(Idx)
100895  , p_source_41 => l_array_source_41(Idx)
100896  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100897  , p_source_51 => l_array_source_51(Idx)
100898  , p_source_51_meaning => l_array_source_51_meaning(Idx)
100899  , p_source_52 => l_array_source_52(Idx)
100900  , p_source_53 => l_array_source_53(Idx)
100901  , p_source_54 => l_array_source_54(Idx)
100902  , p_source_59 => l_array_source_59(Idx)
100903  , p_source_60 => l_array_source_60(Idx)
100904  , p_source_64 => l_array_source_64(Idx)
100905  , p_source_64_meaning => l_array_source_64_meaning(Idx)
100906  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100907  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100908  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100909  , p_source_68 => l_array_source_68(Idx)
100910  , p_source_69 => l_array_source_69(Idx)
100911  , p_source_70 => l_array_source_70(Idx)
100912  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100913  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100914  , p_source_72 => l_array_source_72(Idx)
100915  , p_source_73 => l_array_source_73(Idx)
100916  , p_source_74 => l_array_source_74(Idx)
100917  , p_source_75 => l_array_source_75(Idx)
100918  , p_source_76 => l_array_source_76(Idx)
100919  , p_source_77 => l_array_source_77(Idx)
100920  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100921  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100922  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100923  );
100924 If(l_balance_type_code = 'A') THEN
100925   l_actual_gain_loss_ref := l_gain_or_loss_ref;
100926 END IF;
100927 
100928 --
100929 
100930 
100931 --
100932 AcctLineType_82 (
100933  p_application_id  => p_application_id
100934  ,p_event_id     => l_event_id
100935  ,p_calculate_acctd_flag => l_calculate_acctd_flag
100936  ,p_calculate_g_l_flag => l_calculate_g_l_flag
100937  ,p_actual_flag => l_actual_flag
100938  ,p_balance_type_code => l_balance_type_code
100939  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100940  
100941  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100942  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100943  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100944  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
100945  , p_source_19 => l_array_source_19(Idx)
100946  , p_source_19_meaning => l_array_source_19_meaning(Idx)
100947  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
100948  , p_source_21 => l_array_source_21(Idx)
100949  , p_source_22 => l_array_source_22(Idx)
100950  , p_source_29 => l_array_source_29(Idx)
100951  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
100952  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
100953  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100954  , p_source_51 => l_array_source_51(Idx)
100955  , p_source_51_meaning => l_array_source_51_meaning(Idx)
100956  , p_source_52 => l_array_source_52(Idx)
100957  , p_source_53 => l_array_source_53(Idx)
100958  , p_source_54 => l_array_source_54(Idx)
100959  , p_source_59 => l_array_source_59(Idx)
100960  , p_source_60 => l_array_source_60(Idx)
100961  , p_source_64 => l_array_source_64(Idx)
100962  , p_source_64_meaning => l_array_source_64_meaning(Idx)
100963  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100964  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100965  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100966  , p_source_68 => l_array_source_68(Idx)
100967  , p_source_69 => l_array_source_69(Idx)
100968  , p_source_70 => l_array_source_70(Idx)
100969  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100970  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100971  , p_source_72 => l_array_source_72(Idx)
100972  , p_source_73 => l_array_source_73(Idx)
100973  , p_source_74 => l_array_source_74(Idx)
100974  , p_source_75 => l_array_source_75(Idx)
100975  , p_source_76 => l_array_source_76(Idx)
100976  , p_source_77 => l_array_source_77(Idx)
100977  , p_source_111 => l_array_source_111(Idx)
100978  , p_source_111_meaning => l_array_source_111_meaning(Idx)
100979  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100980  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100981  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100982  );
100983 If(l_balance_type_code = 'A') THEN
100987 --
100984   l_actual_gain_loss_ref := l_gain_or_loss_ref;
100985 END IF;
100986 
100988 
100989 
100990 --
100991 AcctLineType_88 (
100992  p_application_id  => p_application_id
100993  ,p_event_id     => l_event_id
100994  ,p_calculate_acctd_flag => l_calculate_acctd_flag
100995  ,p_calculate_g_l_flag => l_calculate_g_l_flag
100996  ,p_actual_flag => l_actual_flag
100997  ,p_balance_type_code => l_balance_type_code
100998  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100999  
101000  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101001  , p_source_21 => l_array_source_21(Idx)
101002  , p_source_29 => l_array_source_29(Idx)
101003  , p_source_32 => l_array_source_32(Idx)
101004  , p_source_32_meaning => l_array_source_32_meaning(Idx)
101005  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101006  , p_source_51 => l_array_source_51(Idx)
101007  , p_source_51_meaning => l_array_source_51_meaning(Idx)
101008  , p_source_52 => l_array_source_52(Idx)
101009  , p_source_53 => l_array_source_53(Idx)
101010  , p_source_54 => l_array_source_54(Idx)
101011  , p_source_59 => l_array_source_59(Idx)
101012  , p_source_60 => l_array_source_60(Idx)
101013  , p_source_64 => l_array_source_64(Idx)
101014  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101015  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101016  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101017  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101018  , p_source_68 => l_array_source_68(Idx)
101019  , p_source_69 => l_array_source_69(Idx)
101020  , p_source_70 => l_array_source_70(Idx)
101021  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101022  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101023  , p_source_72 => l_array_source_72(Idx)
101024  , p_source_73 => l_array_source_73(Idx)
101025  , p_source_74 => l_array_source_74(Idx)
101026  , p_source_75 => l_array_source_75(Idx)
101027  , p_source_76 => l_array_source_76(Idx)
101028  , p_source_77 => l_array_source_77(Idx)
101029  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101030  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101031  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101032  );
101033 If(l_balance_type_code = 'A') THEN
101034   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101035 END IF;
101036 
101037 --
101038 
101039 
101040 --
101041 AcctLineType_92 (
101042  p_application_id  => p_application_id
101043  ,p_event_id     => l_event_id
101044  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101045  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101046  ,p_actual_flag => l_actual_flag
101047  ,p_balance_type_code => l_balance_type_code
101048  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101049  
101050  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101051  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
101052  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
101053  , p_source_21 => l_array_source_21(Idx)
101054  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
101055  , p_source_24 => g_array_event(l_event_id).array_value_char('source_24')
101056  , p_source_24_meaning => g_array_event(l_event_id).array_value_char('source_24_meaning')
101057  , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
101058  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
101059  , p_source_29 => l_array_source_29(Idx)
101060  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101061  , p_source_51 => l_array_source_51(Idx)
101062  , p_source_51_meaning => l_array_source_51_meaning(Idx)
101063  , p_source_52 => l_array_source_52(Idx)
101064  , p_source_53 => l_array_source_53(Idx)
101065  , p_source_54 => l_array_source_54(Idx)
101066  , p_source_59 => l_array_source_59(Idx)
101067  , p_source_60 => l_array_source_60(Idx)
101068  , p_source_64 => l_array_source_64(Idx)
101069  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101070  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101071  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101072  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101073  , p_source_68 => l_array_source_68(Idx)
101074  , p_source_69 => l_array_source_69(Idx)
101075  , p_source_70 => l_array_source_70(Idx)
101076  , p_source_72 => l_array_source_72(Idx)
101077  , p_source_73 => l_array_source_73(Idx)
101078  , p_source_74 => l_array_source_74(Idx)
101079  , p_source_75 => l_array_source_75(Idx)
101080  , p_source_76 => l_array_source_76(Idx)
101081  , p_source_77 => l_array_source_77(Idx)
101082  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
101083  , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
101084  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101085  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101086  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101087  );
101088 If(l_balance_type_code = 'A') THEN
101089   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101090 END IF;
101091 
101092 --
101093 
101094 
101095 --
101096 AcctLineType_101 (
101097  p_application_id  => p_application_id
101098  ,p_event_id     => l_event_id
101099  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101103  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101100  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101101  ,p_actual_flag => l_actual_flag
101102  ,p_balance_type_code => l_balance_type_code
101104  
101105  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101106  , p_source_21 => l_array_source_21(Idx)
101107  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
101108  , p_source_28 => g_array_event(l_event_id).array_value_char('source_28')
101109  , p_source_29 => l_array_source_29(Idx)
101110  , p_source_32 => l_array_source_32(Idx)
101111  , p_source_32_meaning => l_array_source_32_meaning(Idx)
101112  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101113  , p_source_51 => l_array_source_51(Idx)
101114  , p_source_51_meaning => l_array_source_51_meaning(Idx)
101115  , p_source_52 => l_array_source_52(Idx)
101116  , p_source_53 => l_array_source_53(Idx)
101117  , p_source_54 => l_array_source_54(Idx)
101118  , p_source_59 => l_array_source_59(Idx)
101119  , p_source_60 => l_array_source_60(Idx)
101120  , p_source_64 => l_array_source_64(Idx)
101121  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101122  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101123  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101124  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101125  , p_source_68 => l_array_source_68(Idx)
101126  , p_source_69 => l_array_source_69(Idx)
101127  , p_source_70 => l_array_source_70(Idx)
101128  , p_source_72 => l_array_source_72(Idx)
101129  , p_source_73 => l_array_source_73(Idx)
101130  , p_source_74 => l_array_source_74(Idx)
101131  , p_source_75 => l_array_source_75(Idx)
101132  , p_source_76 => l_array_source_76(Idx)
101133  , p_source_77 => l_array_source_77(Idx)
101134  , p_source_112 => l_array_source_112(Idx)
101135  , p_source_112_meaning => l_array_source_112_meaning(Idx)
101136  , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
101137  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101138  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101139  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101140  );
101141 If(l_balance_type_code = 'A') THEN
101142   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101143 END IF;
101144 
101145 --
101146 
101147 
101148 --
101149 AcctLineType_103 (
101150  p_application_id  => p_application_id
101151  ,p_event_id     => l_event_id
101152  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101153  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101154  ,p_actual_flag => l_actual_flag
101155  ,p_balance_type_code => l_balance_type_code
101156  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101157  
101158  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101159  , p_source_21 => l_array_source_21(Idx)
101160  , p_source_29 => l_array_source_29(Idx)
101161  , p_source_32 => l_array_source_32(Idx)
101162  , p_source_32_meaning => l_array_source_32_meaning(Idx)
101163  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101164  , p_source_51 => l_array_source_51(Idx)
101165  , p_source_51_meaning => l_array_source_51_meaning(Idx)
101166  , p_source_52 => l_array_source_52(Idx)
101167  , p_source_53 => l_array_source_53(Idx)
101168  , p_source_54 => l_array_source_54(Idx)
101169  , p_source_59 => l_array_source_59(Idx)
101170  , p_source_60 => l_array_source_60(Idx)
101171  , p_source_64 => l_array_source_64(Idx)
101172  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101173  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101174  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101175  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101176  , p_source_68 => l_array_source_68(Idx)
101177  , p_source_69 => l_array_source_69(Idx)
101178  , p_source_70 => l_array_source_70(Idx)
101179  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101180  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101181  , p_source_72 => l_array_source_72(Idx)
101182  , p_source_73 => l_array_source_73(Idx)
101183  , p_source_74 => l_array_source_74(Idx)
101184  , p_source_75 => l_array_source_75(Idx)
101185  , p_source_76 => l_array_source_76(Idx)
101186  , p_source_77 => l_array_source_77(Idx)
101187  , p_source_111 => l_array_source_111(Idx)
101188  , p_source_111_meaning => l_array_source_111_meaning(Idx)
101189  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101190  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101191  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101192  );
101193 If(l_balance_type_code = 'A') THEN
101194   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101195 END IF;
101196 
101197 --
101198 
101199 
101200 --
101201 AcctLineType_108 (
101202  p_application_id  => p_application_id
101203  ,p_event_id     => l_event_id
101204  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101205  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101206  ,p_actual_flag => l_actual_flag
101207  ,p_balance_type_code => l_balance_type_code
101208  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101209  
101210  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101211  , p_source_21 => l_array_source_21(Idx)
101212  , p_source_29 => l_array_source_29(Idx)
101213  , p_source_32 => l_array_source_32(Idx)
101214  , p_source_32_meaning => l_array_source_32_meaning(Idx)
101218  , p_source_52 => l_array_source_52(Idx)
101215  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101216  , p_source_51 => l_array_source_51(Idx)
101217  , p_source_51_meaning => l_array_source_51_meaning(Idx)
101219  , p_source_53 => l_array_source_53(Idx)
101220  , p_source_54 => l_array_source_54(Idx)
101221  , p_source_59 => l_array_source_59(Idx)
101222  , p_source_60 => l_array_source_60(Idx)
101223  , p_source_64 => l_array_source_64(Idx)
101224  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101225  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101226  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101227  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101228  , p_source_68 => l_array_source_68(Idx)
101229  , p_source_69 => l_array_source_69(Idx)
101230  , p_source_70 => l_array_source_70(Idx)
101231  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101232  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101233  , p_source_72 => l_array_source_72(Idx)
101234  , p_source_73 => l_array_source_73(Idx)
101235  , p_source_74 => l_array_source_74(Idx)
101236  , p_source_75 => l_array_source_75(Idx)
101237  , p_source_76 => l_array_source_76(Idx)
101238  , p_source_77 => l_array_source_77(Idx)
101239  , p_source_111 => l_array_source_111(Idx)
101240  , p_source_111_meaning => l_array_source_111_meaning(Idx)
101241  , p_source_112 => l_array_source_112(Idx)
101242  , p_source_112_meaning => l_array_source_112_meaning(Idx)
101243  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101244  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101245  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101246  );
101247 If(l_balance_type_code = 'A') THEN
101248   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101249 END IF;
101250 
101251 --
101252 
101253 
101254 --
101255 AcctLineType_116 (
101256  p_application_id  => p_application_id
101257  ,p_event_id     => l_event_id
101258  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101259  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101260  ,p_actual_flag => l_actual_flag
101261  ,p_balance_type_code => l_balance_type_code
101262  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101263  
101264  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101265  , p_source_21 => l_array_source_21(Idx)
101266  , p_source_29 => l_array_source_29(Idx)
101267  , p_source_32 => l_array_source_32(Idx)
101268  , p_source_32_meaning => l_array_source_32_meaning(Idx)
101269  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101270  , p_source_51 => l_array_source_51(Idx)
101271  , p_source_51_meaning => l_array_source_51_meaning(Idx)
101272  , p_source_52 => l_array_source_52(Idx)
101273  , p_source_53 => l_array_source_53(Idx)
101274  , p_source_54 => l_array_source_54(Idx)
101275  , p_source_59 => l_array_source_59(Idx)
101276  , p_source_60 => l_array_source_60(Idx)
101277  , p_source_64 => l_array_source_64(Idx)
101278  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101279  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101280  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101281  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101282  , p_source_68 => l_array_source_68(Idx)
101283  , p_source_69 => l_array_source_69(Idx)
101284  , p_source_70 => l_array_source_70(Idx)
101285  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101286  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101287  , p_source_72 => l_array_source_72(Idx)
101288  , p_source_73 => l_array_source_73(Idx)
101289  , p_source_74 => l_array_source_74(Idx)
101290  , p_source_75 => l_array_source_75(Idx)
101291  , p_source_76 => l_array_source_76(Idx)
101292  , p_source_77 => l_array_source_77(Idx)
101293  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101294  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101295  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101296  );
101297 If(l_balance_type_code = 'A') THEN
101298   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101299 END IF;
101300 
101301 --
101302 
101303 
101304 --
101305 AcctLineType_121 (
101306  p_application_id  => p_application_id
101307  ,p_event_id     => l_event_id
101308  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101309  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101310  ,p_actual_flag => l_actual_flag
101311  ,p_balance_type_code => l_balance_type_code
101312  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101313  
101314  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101315  , p_source_21 => l_array_source_21(Idx)
101316  , p_source_29 => l_array_source_29(Idx)
101317  , p_source_32 => l_array_source_32(Idx)
101318  , p_source_32_meaning => l_array_source_32_meaning(Idx)
101319  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101320  , p_source_51 => l_array_source_51(Idx)
101321  , p_source_51_meaning => l_array_source_51_meaning(Idx)
101322  , p_source_52 => l_array_source_52(Idx)
101323  , p_source_53 => l_array_source_53(Idx)
101324  , p_source_54 => l_array_source_54(Idx)
101325  , p_source_59 => l_array_source_59(Idx)
101326  , p_source_60 => l_array_source_60(Idx)
101327  , p_source_61 => l_array_source_61(Idx)
101331  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101328  , p_source_62 => l_array_source_62(Idx)
101329  , p_source_63 => l_array_source_63(Idx)
101330  , p_source_64 => l_array_source_64(Idx)
101332  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101333  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101334  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101335  , p_source_68 => l_array_source_68(Idx)
101336  , p_source_69 => l_array_source_69(Idx)
101337  , p_source_70 => l_array_source_70(Idx)
101338  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101339  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101340  , p_source_72 => l_array_source_72(Idx)
101341  , p_source_73 => l_array_source_73(Idx)
101342  , p_source_74 => l_array_source_74(Idx)
101343  , p_source_75 => l_array_source_75(Idx)
101344  , p_source_76 => l_array_source_76(Idx)
101345  , p_source_77 => l_array_source_77(Idx)
101346  , p_source_111 => l_array_source_111(Idx)
101347  , p_source_111_meaning => l_array_source_111_meaning(Idx)
101348  , p_source_112 => l_array_source_112(Idx)
101349  , p_source_112_meaning => l_array_source_112_meaning(Idx)
101350  );
101351 If(l_balance_type_code = 'A') THEN
101352   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101353 END IF;
101354 
101355 --
101356 
101357 
101358 --
101359 AcctLineType_124 (
101360  p_application_id  => p_application_id
101361  ,p_event_id     => l_event_id
101362  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101363  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101364  ,p_actual_flag => l_actual_flag
101365  ,p_balance_type_code => l_balance_type_code
101366  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101367  
101368  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101369  , p_source_21 => l_array_source_21(Idx)
101370  , p_source_29 => l_array_source_29(Idx)
101371  , p_source_32 => l_array_source_32(Idx)
101372  , p_source_32_meaning => l_array_source_32_meaning(Idx)
101373  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101374  , p_source_51 => l_array_source_51(Idx)
101375  , p_source_51_meaning => l_array_source_51_meaning(Idx)
101376  , p_source_52 => l_array_source_52(Idx)
101377  , p_source_53 => l_array_source_53(Idx)
101378  , p_source_54 => l_array_source_54(Idx)
101379  , p_source_59 => l_array_source_59(Idx)
101380  , p_source_60 => l_array_source_60(Idx)
101381  , p_source_64 => l_array_source_64(Idx)
101382  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101383  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101384  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101385  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101386  , p_source_68 => l_array_source_68(Idx)
101387  , p_source_69 => l_array_source_69(Idx)
101388  , p_source_70 => l_array_source_70(Idx)
101389  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101390  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101391  , p_source_72 => l_array_source_72(Idx)
101392  , p_source_73 => l_array_source_73(Idx)
101393  , p_source_74 => l_array_source_74(Idx)
101394  , p_source_75 => l_array_source_75(Idx)
101395  , p_source_76 => l_array_source_76(Idx)
101396  , p_source_77 => l_array_source_77(Idx)
101397  , p_source_111 => l_array_source_111(Idx)
101398  , p_source_111_meaning => l_array_source_111_meaning(Idx)
101399  , p_source_112 => l_array_source_112(Idx)
101400  , p_source_112_meaning => l_array_source_112_meaning(Idx)
101401  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101402  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101403  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101404  );
101405 If(l_balance_type_code = 'A') THEN
101406   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101407 END IF;
101408 
101409 --
101410 
101411 
101412 --
101413 AcctLineType_130 (
101414  p_application_id  => p_application_id
101415  ,p_event_id     => l_event_id
101416  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101417  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101418  ,p_actual_flag => l_actual_flag
101419  ,p_balance_type_code => l_balance_type_code
101420  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101421  
101422  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101423  , p_source_21 => l_array_source_21(Idx)
101424  , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
101425  , p_source_52 => l_array_source_52(Idx)
101426  , p_source_53 => l_array_source_53(Idx)
101427  , p_source_54 => l_array_source_54(Idx)
101428  , p_source_59 => l_array_source_59(Idx)
101429  , p_source_60 => l_array_source_60(Idx)
101430  , p_source_64 => l_array_source_64(Idx)
101431  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101432  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101433  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101434  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101435  , p_source_68 => l_array_source_68(Idx)
101436  , p_source_69 => l_array_source_69(Idx)
101437  , p_source_70 => l_array_source_70(Idx)
101438  , p_source_72 => l_array_source_72(Idx)
101439  , p_source_73 => l_array_source_73(Idx)
101440  , p_source_74 => l_array_source_74(Idx)
101441  , p_source_75 => l_array_source_75(Idx)
101445  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101442  , p_source_76 => l_array_source_76(Idx)
101443  , p_source_77 => l_array_source_77(Idx)
101444  , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
101446  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101447  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101448  );
101449 If(l_balance_type_code = 'A') THEN
101450   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101451 END IF;
101452 
101453 --
101454 
101455 
101456 --
101457 AcctLineType_132 (
101458  p_application_id  => p_application_id
101459  ,p_event_id     => l_event_id
101460  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101461  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101462  ,p_actual_flag => l_actual_flag
101463  ,p_balance_type_code => l_balance_type_code
101464  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101465  
101466  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101467  , p_source_21 => l_array_source_21(Idx)
101468  , p_source_29 => l_array_source_29(Idx)
101469  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
101470  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
101471  , p_source_31 => l_array_source_31(Idx)
101472  , p_source_32 => l_array_source_32(Idx)
101473  , p_source_32_meaning => l_array_source_32_meaning(Idx)
101474  , p_source_40 => l_array_source_40(Idx)
101475  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101476  , p_source_51 => l_array_source_51(Idx)
101477  , p_source_51_meaning => l_array_source_51_meaning(Idx)
101478  , p_source_52 => l_array_source_52(Idx)
101479  , p_source_53 => l_array_source_53(Idx)
101480  , p_source_54 => l_array_source_54(Idx)
101481  , p_source_59 => l_array_source_59(Idx)
101482  , p_source_60 => l_array_source_60(Idx)
101483  , p_source_64 => l_array_source_64(Idx)
101484  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101485  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101486  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101487  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101488  , p_source_68 => l_array_source_68(Idx)
101489  , p_source_69 => l_array_source_69(Idx)
101490  , p_source_70 => l_array_source_70(Idx)
101491  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101492  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101493  , p_source_72 => l_array_source_72(Idx)
101494  , p_source_73 => l_array_source_73(Idx)
101495  , p_source_74 => l_array_source_74(Idx)
101496  , p_source_75 => l_array_source_75(Idx)
101497  , p_source_76 => l_array_source_76(Idx)
101498  , p_source_77 => l_array_source_77(Idx)
101499  , p_source_112 => l_array_source_112(Idx)
101500  , p_source_112_meaning => l_array_source_112_meaning(Idx)
101501  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101502  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101503  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101504  );
101505 If(l_balance_type_code = 'A') THEN
101506   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101507 END IF;
101508 
101509 --
101510 
101511 
101512 --
101513 AcctLineType_139 (
101514  p_application_id  => p_application_id
101515  ,p_event_id     => l_event_id
101516  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101517  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101518  ,p_actual_flag => l_actual_flag
101519  ,p_balance_type_code => l_balance_type_code
101520  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101521  
101522  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101523  , p_source_21 => l_array_source_21(Idx)
101524  , p_source_29 => l_array_source_29(Idx)
101525  , p_source_32 => l_array_source_32(Idx)
101526  , p_source_32_meaning => l_array_source_32_meaning(Idx)
101527  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101528  , p_source_51 => l_array_source_51(Idx)
101529  , p_source_51_meaning => l_array_source_51_meaning(Idx)
101530  , p_source_52 => l_array_source_52(Idx)
101531  , p_source_53 => l_array_source_53(Idx)
101532  , p_source_54 => l_array_source_54(Idx)
101533  , p_source_59 => l_array_source_59(Idx)
101534  , p_source_60 => l_array_source_60(Idx)
101535  , p_source_64 => l_array_source_64(Idx)
101536  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101537  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101538  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101539  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101540  , p_source_68 => l_array_source_68(Idx)
101541  , p_source_69 => l_array_source_69(Idx)
101542  , p_source_70 => l_array_source_70(Idx)
101543  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101544  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101545  , p_source_72 => l_array_source_72(Idx)
101546  , p_source_73 => l_array_source_73(Idx)
101547  , p_source_74 => l_array_source_74(Idx)
101548  , p_source_75 => l_array_source_75(Idx)
101549  , p_source_76 => l_array_source_76(Idx)
101550  , p_source_77 => l_array_source_77(Idx)
101551  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101552  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101556   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101553  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101554  );
101555 If(l_balance_type_code = 'A') THEN
101557 END IF;
101558 
101559 --
101560 
101561 
101562 --
101563 AcctLineType_142 (
101564  p_application_id  => p_application_id
101565  ,p_event_id     => l_event_id
101566  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101567  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101568  ,p_actual_flag => l_actual_flag
101569  ,p_balance_type_code => l_balance_type_code
101570  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101571  
101572  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101573  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
101574  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
101575  , p_source_21 => l_array_source_21(Idx)
101576  , p_source_29 => l_array_source_29(Idx)
101577  , p_source_32 => l_array_source_32(Idx)
101578  , p_source_32_meaning => l_array_source_32_meaning(Idx)
101579  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
101580  , p_source_35 => l_array_source_35(Idx)
101581  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101582  , p_source_52 => l_array_source_52(Idx)
101583  , p_source_53 => l_array_source_53(Idx)
101584  , p_source_54 => l_array_source_54(Idx)
101585  , p_source_59 => l_array_source_59(Idx)
101586  , p_source_60 => l_array_source_60(Idx)
101587  , p_source_64 => l_array_source_64(Idx)
101588  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101589  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101590  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101591  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101592  , p_source_68 => l_array_source_68(Idx)
101593  , p_source_69 => l_array_source_69(Idx)
101594  , p_source_70 => l_array_source_70(Idx)
101595  , p_source_72 => l_array_source_72(Idx)
101596  , p_source_73 => l_array_source_73(Idx)
101597  , p_source_74 => l_array_source_74(Idx)
101598  , p_source_75 => l_array_source_75(Idx)
101599  , p_source_76 => l_array_source_76(Idx)
101600  , p_source_77 => l_array_source_77(Idx)
101601  , p_source_112 => l_array_source_112(Idx)
101602  , p_source_112_meaning => l_array_source_112_meaning(Idx)
101603  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101604  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101605  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101606  );
101607 If(l_balance_type_code = 'A') THEN
101608   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101609 END IF;
101610 
101611 --
101612 
101613 
101614 --
101615 AcctLineType_148 (
101616  p_application_id  => p_application_id
101617  ,p_event_id     => l_event_id
101618  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101619  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101620  ,p_actual_flag => l_actual_flag
101621  ,p_balance_type_code => l_balance_type_code
101622  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101623  
101624  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101625  , p_source_21 => l_array_source_21(Idx)
101626  , p_source_32 => l_array_source_32(Idx)
101627  , p_source_32_meaning => l_array_source_32_meaning(Idx)
101628  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101629  , p_source_52 => l_array_source_52(Idx)
101630  , p_source_53 => l_array_source_53(Idx)
101631  , p_source_54 => l_array_source_54(Idx)
101632  , p_source_59 => l_array_source_59(Idx)
101633  , p_source_60 => l_array_source_60(Idx)
101634  , p_source_64 => l_array_source_64(Idx)
101635  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101636  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101637  , p_source_68 => l_array_source_68(Idx)
101638  , p_source_69 => l_array_source_69(Idx)
101639  , p_source_70 => l_array_source_70(Idx)
101640  , p_source_72 => l_array_source_72(Idx)
101641  , p_source_73 => l_array_source_73(Idx)
101642  , p_source_74 => l_array_source_74(Idx)
101643  , p_source_77 => l_array_source_77(Idx)
101644  , p_source_112 => l_array_source_112(Idx)
101645  , p_source_112_meaning => l_array_source_112_meaning(Idx)
101646  , p_source_153 => l_array_source_153(Idx)
101647  , p_source_154 => l_array_source_154(Idx)
101648  );
101649 If(l_balance_type_code = 'A') THEN
101650   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101651 END IF;
101652 
101653 --
101654 
101655 
101656 --
101657 AcctLineType_150 (
101658  p_application_id  => p_application_id
101659  ,p_event_id     => l_event_id
101660  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101661  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101662  ,p_actual_flag => l_actual_flag
101663  ,p_balance_type_code => l_balance_type_code
101664  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101665  
101666  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101667  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
101668  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
101669  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
101670  , p_source_19 => l_array_source_19(Idx)
101671  , p_source_19_meaning => l_array_source_19_meaning(Idx)
101672  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
101673  , p_source_21 => l_array_source_21(Idx)
101677  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
101674  , p_source_22 => l_array_source_22(Idx)
101675  , p_source_29 => l_array_source_29(Idx)
101676  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
101678  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101679  , p_source_51 => l_array_source_51(Idx)
101680  , p_source_51_meaning => l_array_source_51_meaning(Idx)
101681  , p_source_52 => l_array_source_52(Idx)
101682  , p_source_53 => l_array_source_53(Idx)
101683  , p_source_54 => l_array_source_54(Idx)
101684  , p_source_59 => l_array_source_59(Idx)
101685  , p_source_60 => l_array_source_60(Idx)
101686  , p_source_64 => l_array_source_64(Idx)
101687  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101688  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101689  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101690  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101691  , p_source_68 => l_array_source_68(Idx)
101692  , p_source_69 => l_array_source_69(Idx)
101693  , p_source_70 => l_array_source_70(Idx)
101694  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101695  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101696  , p_source_72 => l_array_source_72(Idx)
101697  , p_source_73 => l_array_source_73(Idx)
101698  , p_source_74 => l_array_source_74(Idx)
101699  , p_source_75 => l_array_source_75(Idx)
101700  , p_source_76 => l_array_source_76(Idx)
101701  , p_source_77 => l_array_source_77(Idx)
101702  , p_source_111 => l_array_source_111(Idx)
101703  , p_source_111_meaning => l_array_source_111_meaning(Idx)
101704  , p_source_112 => l_array_source_112(Idx)
101705  , p_source_112_meaning => l_array_source_112_meaning(Idx)
101706  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101707  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101708  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101709  );
101710 If(l_balance_type_code = 'A') THEN
101711   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101712 END IF;
101713 
101714 --
101715 
101716 
101717 --
101718 AcctLineType_153 (
101719  p_application_id  => p_application_id
101720  ,p_event_id     => l_event_id
101721  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101722  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101723  ,p_actual_flag => l_actual_flag
101724  ,p_balance_type_code => l_balance_type_code
101725  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101726  
101727  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101728  , p_source_21 => l_array_source_21(Idx)
101729  , p_source_29 => l_array_source_29(Idx)
101730  , p_source_32 => l_array_source_32(Idx)
101731  , p_source_32_meaning => l_array_source_32_meaning(Idx)
101732  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101733  , p_source_51 => l_array_source_51(Idx)
101734  , p_source_51_meaning => l_array_source_51_meaning(Idx)
101735  , p_source_52 => l_array_source_52(Idx)
101736  , p_source_53 => l_array_source_53(Idx)
101737  , p_source_54 => l_array_source_54(Idx)
101738  , p_source_59 => l_array_source_59(Idx)
101739  , p_source_60 => l_array_source_60(Idx)
101740  , p_source_64 => l_array_source_64(Idx)
101741  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101742  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101743  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101744  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101745  , p_source_68 => l_array_source_68(Idx)
101746  , p_source_69 => l_array_source_69(Idx)
101747  , p_source_70 => l_array_source_70(Idx)
101748  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101749  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101750  , p_source_72 => l_array_source_72(Idx)
101751  , p_source_73 => l_array_source_73(Idx)
101752  , p_source_74 => l_array_source_74(Idx)
101753  , p_source_75 => l_array_source_75(Idx)
101754  , p_source_76 => l_array_source_76(Idx)
101755  , p_source_77 => l_array_source_77(Idx)
101756  , p_source_111 => l_array_source_111(Idx)
101757  , p_source_111_meaning => l_array_source_111_meaning(Idx)
101758  , p_source_112 => l_array_source_112(Idx)
101759  , p_source_112_meaning => l_array_source_112_meaning(Idx)
101760  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101761  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101762  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101763  );
101764 If(l_balance_type_code = 'A') THEN
101765   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101766 END IF;
101767 
101768 --
101769 
101770 
101771 --
101772 AcctLineType_156 (
101773  p_application_id  => p_application_id
101774  ,p_event_id     => l_event_id
101775  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101776  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101777  ,p_actual_flag => l_actual_flag
101778  ,p_balance_type_code => l_balance_type_code
101779  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101780  
101781  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101782  , p_source_21 => l_array_source_21(Idx)
101783  , p_source_29 => l_array_source_29(Idx)
101784  , p_source_32 => l_array_source_32(Idx)
101785  , p_source_32_meaning => l_array_source_32_meaning(Idx)
101789  , p_source_52 => l_array_source_52(Idx)
101786  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101787  , p_source_51 => l_array_source_51(Idx)
101788  , p_source_51_meaning => l_array_source_51_meaning(Idx)
101790  , p_source_53 => l_array_source_53(Idx)
101791  , p_source_54 => l_array_source_54(Idx)
101792  , p_source_59 => l_array_source_59(Idx)
101793  , p_source_60 => l_array_source_60(Idx)
101794  , p_source_64 => l_array_source_64(Idx)
101795  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101796  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101797  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101798  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101799  , p_source_68 => l_array_source_68(Idx)
101800  , p_source_69 => l_array_source_69(Idx)
101801  , p_source_70 => l_array_source_70(Idx)
101802  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101803  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101804  , p_source_72 => l_array_source_72(Idx)
101805  , p_source_73 => l_array_source_73(Idx)
101806  , p_source_74 => l_array_source_74(Idx)
101807  , p_source_75 => l_array_source_75(Idx)
101808  , p_source_76 => l_array_source_76(Idx)
101809  , p_source_77 => l_array_source_77(Idx)
101810  , p_source_111 => l_array_source_111(Idx)
101811  , p_source_111_meaning => l_array_source_111_meaning(Idx)
101812  , p_source_112 => l_array_source_112(Idx)
101813  , p_source_112_meaning => l_array_source_112_meaning(Idx)
101814  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101815  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101816  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101817  );
101818 If(l_balance_type_code = 'A') THEN
101819   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101820 END IF;
101821 
101822 --
101823 
101824 
101825 --
101826 AcctLineType_165 (
101827  p_application_id  => p_application_id
101828  ,p_event_id     => l_event_id
101829  ,p_calculate_acctd_flag => l_calculate_acctd_flag
101830  ,p_calculate_g_l_flag => l_calculate_g_l_flag
101831  ,p_actual_flag => l_actual_flag
101832  ,p_balance_type_code => l_balance_type_code
101833  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101834  
101835  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101836  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
101837  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
101838  , p_source_21 => l_array_source_21(Idx)
101839  , p_source_29 => l_array_source_29(Idx)
101840  , p_source_36 => l_array_source_36(Idx)
101841  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101842  , p_source_51 => l_array_source_51(Idx)
101843  , p_source_51_meaning => l_array_source_51_meaning(Idx)
101844  , p_source_52 => l_array_source_52(Idx)
101845  , p_source_53 => l_array_source_53(Idx)
101846  , p_source_54 => l_array_source_54(Idx)
101847  , p_source_59 => l_array_source_59(Idx)
101848  , p_source_60 => l_array_source_60(Idx)
101849  , p_source_64 => l_array_source_64(Idx)
101850  , p_source_64_meaning => l_array_source_64_meaning(Idx)
101851  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101852  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101853  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101854  , p_source_68 => l_array_source_68(Idx)
101855  , p_source_69 => l_array_source_69(Idx)
101856  , p_source_70 => l_array_source_70(Idx)
101857  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101858  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101859  , p_source_72 => l_array_source_72(Idx)
101860  , p_source_73 => l_array_source_73(Idx)
101861  , p_source_74 => l_array_source_74(Idx)
101862  , p_source_75 => l_array_source_75(Idx)
101863  , p_source_76 => l_array_source_76(Idx)
101864  , p_source_77 => l_array_source_77(Idx)
101865  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101866  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101867  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101868  );
101869 If(l_balance_type_code = 'A') THEN
101870   l_actual_gain_loss_ref := l_gain_or_loss_ref;
101871 END IF;
101872 
101873 --
101874 
101875       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
101876       -- or secondary ledger that has different currency with primary
101877       -- or alc that is calculated by sla
101878       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
101879             (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'))
101880 
101881 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
101882 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
101883           AND (l_actual_flag = 'A')) THEN
101884         XLA_AE_LINES_PKG.CreateGainOrLossLines(
101885           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
101886          ,p_application_id   => p_application_id
101887          ,p_amb_context_code => 'DEFAULT'
101888          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
101889          ,p_event_class_code => C_EVENT_CLASS_CODE
101893          ,p_loss_ccid        => -1
101890          ,p_event_type_code  => C_EVENT_TYPE_CODE
101891          
101892          ,p_gain_ccid        => -1
101894 
101895          ,p_actual_flag      => l_actual_flag
101896          ,p_enc_flag         => null
101897          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
101898          ,p_enc_g_l_ref      => null
101899          );
101900       END IF;
101901    END IF;
101902 END IF;
101903 
101904    ELSE
101905       --
101906       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
101907       --
101908       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
101909          trace
101910             (p_msg      => 'Trancaction revesal option is Y'
101911             ,p_level    => C_LEVEL_STATEMENT
101912             ,p_module   => l_log_module);
101913       END IF;
101914    END IF;
101915 
101916 END LOOP;
101917 l_result := XLA_AE_LINES_PKG.InsertLines ;
101918 end loop;
101919 close line_cur;
101920 
101921 
101922 --
101923 -- insert headers into xla_ae_headers_gt table
101924 --
101925 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
101926 
101927 -- insert into errors table here.
101928 
101929 END LOOP;
101930 
101931 --
101932 -- 4865292
101933 --
101934 -- Compare g_hdr_extract_count with event count in
101935 -- CreateHeadersAndLines.
101936 --
101937 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
101938 
101939 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
101940    trace (p_msg     => '# rows extracted from header extract objects '
101941                     || ' (running total): '
101942                     || g_hdr_extract_count
101943          ,p_level   => C_LEVEL_STATEMENT
101944          ,p_module  => l_log_module);
101945 END IF;
101946 
101947 CLOSE header_cur;
101948 --
101949 
101950 --
101951 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101952    trace
101953       (p_msg      => 'END of EventClass_167'
101954       ,p_level    => C_LEVEL_PROCEDURE
101955       ,p_module   => l_log_module);
101956 END IF;
101957 --
101958 RETURN l_result;
101959 EXCEPTION
101960 WHEN xla_exceptions_pkg.application_exception THEN
101961    
101962 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
101963 
101964    
101965 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
101966 
101967    RAISE;
101968 
101969 WHEN NO_DATA_FOUND THEN
101970 
101971 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
101972 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
101973 
101974 FOR header_record IN header_cur
101975 LOOP
101976     l_array_header_events(header_record.event_id) := header_record.event_id;
101977 END LOOP;
101978 
101979 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
101980 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
101981 
101982 fnd_file.put_line(fnd_file.LOG, '                    ');
101983 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
101984 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
101985 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
101986 
101987 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
101988 LOOP
101989 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
101990 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
101991         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
101992 	END IF;
101993 END LOOP;
101994 
101995 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
101996 fnd_file.put_line(fnd_file.LOG, '                    ');
101997 
101998 
101999 xla_exceptions_pkg.raise_message
102000       (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_167');
102001 
102002 
102003 WHEN OTHERS THEN
102004    xla_exceptions_pkg.raise_message
102005       (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_167');
102006 END EventClass_167;
102007 --
102008 
102009 ---------------------------------------
102010 --
102011 -- PRIVATE PROCEDURE
102012 --         insert_sources_168
102013 --
102014 ----------------------------------------
102015 --
102016 PROCEDURE insert_sources_168(
102017                                 p_target_ledger_id       IN NUMBER
102018                               , p_language               IN VARCHAR2
102019                               , p_sla_ledger_id          IN NUMBER
102020                               , p_pad_start_date         IN DATE
102021                               , p_pad_end_date           IN DATE
102022                          )
102023 IS
102024 
102025 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT APPLICATIONS_ALL';
102026 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
102027 p_apps_owner                   VARCHAR2(30);
102028 l_log_module                   VARCHAR2(240);
102029 BEGIN
102030 IF g_log_enabled THEN
102031       l_log_module := C_DEFAULT_MODULE||'.insert_sources_168';
102032 END IF;
102033 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102034 
102035       trace
102036          (p_msg      => 'BEGIN of insert_sources_168'
102040 END IF;
102037          ,p_level    => C_LEVEL_PROCEDURE
102038          ,p_module   => l_log_module);
102039 
102041 
102042 -- select APPS owner
102043 SELECT oracle_username
102044   INTO p_apps_owner
102045   FROM fnd_oracle_userid
102046  WHERE read_only_flag = 'U'
102047 ;
102048 
102049 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
102050       trace
102051          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
102052                         ' - p_language = '||p_language||
102053                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
102054                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
102055                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
102056                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
102057          ,p_level    => C_LEVEL_STATEMENT
102058          ,p_module   => l_log_module);
102059 END IF;
102060 
102061 
102062 --
102063 INSERT INTO xla_diag_sources --hdr2
102064 (
102065         event_id
102066       , ledger_id
102067       , sla_ledger_id
102068       , description_language
102069       , object_name
102070       , object_type_code
102071       , line_number
102072       , source_application_id
102073       , source_type_code
102074       , source_code
102075       , source_value
102076       , source_meaning
102077       , created_by
102078       , creation_date
102079       , last_update_date
102080       , last_updated_by
102081       , last_update_login
102082       , program_update_date
102083       , program_application_id
102084       , program_id
102085       , request_id
102086 )
102087 SELECT
102088         event_id
102089       , p_target_ledger_id
102090       , p_sla_ledger_id
102091       , p_language
102092       , object_name
102093       , object_type_code
102094       , line_number
102095       , source_application_id
102096       , source_type_code
102097       , source_code
102098       , SUBSTR(source_value ,1,1996)
102099       , SUBSTR(source_meaning ,1,200)
102100       , xla_environment_pkg.g_Usr_Id
102101       , TRUNC(SYSDATE)
102102       , TRUNC(SYSDATE)
102103       , xla_environment_pkg.g_Usr_Id
102104       , xla_environment_pkg.g_Login_Id
102105       , TRUNC(SYSDATE)
102106       , xla_environment_pkg.g_Prog_Appl_Id
102107       , xla_environment_pkg.g_Prog_Id
102108       , xla_environment_pkg.g_Req_Id
102109   FROM (
102110        SELECT xet.event_id                  event_id
102111             , 0                          line_number
102112             , CASE r
102113                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102114                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102115                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102116                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102117                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102118                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102119                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
102120                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
102121                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
102122                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
102123                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
102124                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
102125                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
102126                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102127                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102128                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102129                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102130                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102131                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102132                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102133                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102134                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
102135                 
102136                ELSE null
102137               END                           object_name
102138             , CASE r
102139                 WHEN 1 THEN 'HEADER' 
102140                 WHEN 2 THEN 'HEADER' 
102141                 WHEN 3 THEN 'HEADER' 
102142                 WHEN 4 THEN 'HEADER' 
102143                 WHEN 5 THEN 'HEADER' 
102144                 WHEN 6 THEN 'HEADER' 
102145                 WHEN 7 THEN 'HEADER' 
102146                 WHEN 8 THEN 'HEADER' 
102147                 WHEN 9 THEN 'HEADER' 
102148                 WHEN 10 THEN 'HEADER' 
102149                 WHEN 11 THEN 'HEADER' 
102150                 WHEN 12 THEN 'HEADER' 
102151                 WHEN 13 THEN 'HEADER' 
102152                 WHEN 14 THEN 'HEADER' 
102153                 WHEN 15 THEN 'HEADER' 
102154                 WHEN 16 THEN 'HEADER' 
102155                 WHEN 17 THEN 'HEADER' 
102156                 WHEN 18 THEN 'HEADER' 
102157                 WHEN 19 THEN 'HEADER' 
102158                 WHEN 20 THEN 'HEADER' 
102159                 WHEN 21 THEN 'HEADER' 
102160                 WHEN 22 THEN 'HEADER' 
102161                 
102162                 ELSE null
102163               END                           object_type_code
102164             , CASE r
102165                 WHEN 1 THEN '200' 
102166                 WHEN 2 THEN '200' 
102167                 WHEN 3 THEN '200' 
102168                 WHEN 4 THEN '200' 
102172                 WHEN 8 THEN '200' 
102169                 WHEN 5 THEN '200' 
102170                 WHEN 6 THEN '200' 
102171                 WHEN 7 THEN '200' 
102173                 WHEN 9 THEN '200' 
102174                 WHEN 10 THEN '200' 
102175                 WHEN 11 THEN '200' 
102176                 WHEN 12 THEN '200' 
102177                 WHEN 13 THEN '200' 
102178                 WHEN 14 THEN '200' 
102179                 WHEN 15 THEN '200' 
102180                 WHEN 16 THEN '200' 
102181                 WHEN 17 THEN '200' 
102182                 WHEN 18 THEN '200' 
102183                 WHEN 19 THEN '200' 
102184                 WHEN 20 THEN '200' 
102185                 WHEN 21 THEN '200' 
102186                 WHEN 22 THEN '200' 
102187                 
102188                 ELSE null
102189               END                           source_application_id
102190             , 'S'             source_type_code
102191             , CASE r
102192                 WHEN 1 THEN 'INV_TRANSACTION_NUMBER' 
102193                 WHEN 2 THEN 'AI_INVOICE_DATE' 
102194                 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
102195                 WHEN 4 THEN 'DOC_SEQUENCE_NAME' 
102196                 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE' 
102197                 WHEN 6 THEN 'AI_DESCRIPTION' 
102198                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
102199                 WHEN 8 THEN 'ASP_RATE_VAR_GAIN_CCID' 
102200                 WHEN 9 THEN 'ASP_RATE_VAR_LOSS_CCID' 
102201                 WHEN 10 THEN 'FSP_RETAINAGE_ACCOUNT' 
102202                 WHEN 11 THEN 'ASP_AUTO_OFFSET_FLAG' 
102203                 WHEN 12 THEN 'ASP_ROUNDING_ERROR_CCID' 
102204                 WHEN 13 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
102205                 WHEN 14 THEN 'THIRD_PARTY_TYPE' 
102206                 WHEN 15 THEN 'AI_INVOICE_ID' 
102207                 WHEN 16 THEN 'AI_INVOICE_CURRENCY_CODE' 
102208                 WHEN 17 THEN 'AI_VENDOR_ID' 
102209                 WHEN 18 THEN 'AI_VENDOR_SITE_ID' 
102210                 WHEN 19 THEN 'INV_EXCHANGE_DATE' 
102211                 WHEN 20 THEN 'INV_EXCHANGE_RATE' 
102212                 WHEN 21 THEN 'INV_EXCHANGE_RATE_TYPE' 
102213                 WHEN 22 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
102214                 
102215                 ELSE null
102216               END                           source_code
102217             , CASE r
102218                 WHEN 1 THEN TO_CHAR(h1.INV_TRANSACTION_NUMBER)
102219                 WHEN 2 THEN TO_CHAR(h1.AI_INVOICE_DATE)
102220                 WHEN 3 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_CATEGORY)
102221                 WHEN 4 THEN TO_CHAR(h1.DOC_SEQUENCE_NAME)
102222                 WHEN 5 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_VALUE)
102223                 WHEN 6 THEN TO_CHAR(h1.AI_DESCRIPTION)
102224                 WHEN 7 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
102225                 WHEN 8 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
102226                 WHEN 9 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
102227                 WHEN 10 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
102228                 WHEN 11 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
102229                 WHEN 12 THEN TO_CHAR(h4.ASP_ROUNDING_ERROR_CCID)
102230                 WHEN 13 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
102231                 WHEN 14 THEN TO_CHAR(h1.THIRD_PARTY_TYPE)
102232                 WHEN 15 THEN TO_CHAR(h1.AI_INVOICE_ID)
102233                 WHEN 16 THEN TO_CHAR(h1.AI_INVOICE_CURRENCY_CODE)
102234                 WHEN 17 THEN TO_CHAR(h1.AI_VENDOR_ID)
102235                 WHEN 18 THEN TO_CHAR(h1.AI_VENDOR_SITE_ID)
102236                 WHEN 19 THEN TO_CHAR(h1.INV_EXCHANGE_DATE)
102237                 WHEN 20 THEN TO_CHAR(h1.INV_EXCHANGE_RATE)
102238                 WHEN 21 THEN TO_CHAR(h1.INV_EXCHANGE_RATE_TYPE)
102239                 WHEN 22 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_IDENTIFIER)
102240                 
102241                 ELSE null
102242               END                           source_value
102243             , CASE r
102244                 WHEN 7 THEN fvl16.meaning
102245                 WHEN 11 THEN fvl42.meaning
102246                 
102247                 ELSE null
102248               END               source_meaning
102249          FROM xla_events_gt     xet  
102250       , AP_INVOICE_EXTRACT_HEADER_V  h1
102251       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
102252   , fnd_lookup_values    fvl16
102253   , fnd_lookup_values    fvl42
102254              ,(select rownum r from all_objects where rownum <= 22 and owner = p_apps_owner)
102255          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
102256            AND xet.event_class_code = C_EVENT_CLASS_CODE
102257               AND h1.event_id = xet.event_id
102258  AND h4.asp_org_id = h1.ai_org_id   AND fvl16.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
102259   AND fvl16.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
102260   AND fvl16.view_application_id(+) = 200
102261   AND fvl16.language(+)            = USERENV('LANG')
102262      AND fvl42.lookup_type(+)         = 'YES_NO'
102263   AND fvl42.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
102264   AND fvl42.view_application_id(+) = 0
102265   AND fvl42.language(+)            = USERENV('LANG')
102266   
102267 )
102268 ;
102269 --
102270 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
102271 
102272       trace
102273          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
102274          ,p_level    => C_LEVEL_STATEMENT
102275          ,p_module   => l_log_module);
102276 
102277 END IF;
102278 --
102279 
102280 
102281 
102282 --
102283 INSERT INTO xla_diag_sources  --line2
102284 (
102285         event_id
102286       , ledger_id
102287       , sla_ledger_id
102288       , description_language
102289       , object_name
102290       , object_type_code
102291       , line_number
102292       , source_application_id
102293       , source_type_code
102294       , source_code
102295       , source_value
102296       , source_meaning
102297       , created_by
102298       , creation_date
102299       , last_update_date
102300       , last_updated_by
102301       , last_update_login
102302       , program_update_date
102303       , program_application_id
102304       , program_id
102305       , request_id
102306 )
102307 SELECT  event_id
102308       , p_target_ledger_id
102309       , p_sla_ledger_id
102310       , p_language
102311       , object_name
102312       , object_type_code
102313       , line_number
102314       , source_application_id
102315       , source_type_code
102316       , source_code
102317       , SUBSTR(source_value,1,1996)
102318       , SUBSTR(source_meaning ,1,200)
102319       , xla_environment_pkg.g_Usr_Id
102320       , TRUNC(SYSDATE)
102321       , TRUNC(SYSDATE)
102322       , xla_environment_pkg.g_Usr_Id
102323       , xla_environment_pkg.g_Login_Id
102324       , TRUNC(SYSDATE)
102325       , xla_environment_pkg.g_Prog_Appl_Id
102326       , xla_environment_pkg.g_Prog_Id
102327       , xla_environment_pkg.g_Req_Id
102328   FROM (
102329        SELECT xet.event_id                  event_id
102330             , l3.line_number                 line_number
102331             , CASE r
102332                WHEN 1 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102333                 WHEN 2 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102334                 WHEN 3 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102335                 WHEN 4 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102336                 WHEN 5 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102337                 WHEN 6 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102338                 WHEN 7 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102339                 WHEN 8 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102340                 WHEN 9 THEN 'AP_PO_HEADERS_EXTRACT_V' 
102341                 WHEN 10 THEN 'AP_PO_HEADERS_EXTRACT_V' 
102342                 WHEN 11 THEN 'AP_PO_HEADERS_EXTRACT_V' 
102343                 WHEN 12 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102344                 WHEN 13 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
102345                 WHEN 14 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102346                 WHEN 15 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102347                 WHEN 16 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102348                 WHEN 17 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
102349                 WHEN 18 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102350                 WHEN 19 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102351                 WHEN 20 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102352                 WHEN 21 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102356                 WHEN 25 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102353                 WHEN 22 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102354                 WHEN 23 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102355                 WHEN 24 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102357                 WHEN 26 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102358                 WHEN 27 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102359                 WHEN 28 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102360                 WHEN 29 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102361                 WHEN 30 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102362                 WHEN 31 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102363                 WHEN 32 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102364                 WHEN 33 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102365                 WHEN 34 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102366                 WHEN 35 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102367                 WHEN 36 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102368                 WHEN 37 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102369                 WHEN 38 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102370                 WHEN 39 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102371                 WHEN 40 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102372                 WHEN 41 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102373                 WHEN 42 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102374                 WHEN 43 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102375                 WHEN 44 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102376                 WHEN 45 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102377                 WHEN 46 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102378                 WHEN 47 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102379                 WHEN 48 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102380                 WHEN 49 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102381                 WHEN 50 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102382                 WHEN 51 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102383                 WHEN 52 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102384                 WHEN 53 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102385                 WHEN 54 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102386                 WHEN 55 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102387                 WHEN 56 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102388                 WHEN 57 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102389                 WHEN 58 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102390                 WHEN 59 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102391                 WHEN 60 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102392                 WHEN 61 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
102393                 
102394                ELSE null
102395               END                           object_name
102396             , CASE r
102397                 WHEN 1 THEN 'LINE' 
102398                 WHEN 2 THEN 'LINE' 
102399                 WHEN 3 THEN 'LINE' 
102400                 WHEN 4 THEN 'LINE' 
102401                 WHEN 5 THEN 'LINE' 
102402                 WHEN 6 THEN 'LINE' 
102403                 WHEN 7 THEN 'LINE' 
102404                 WHEN 8 THEN 'LINE' 
102405                 WHEN 9 THEN 'LINE' 
102406                 WHEN 10 THEN 'LINE' 
102407                 WHEN 11 THEN 'LINE' 
102408                 WHEN 12 THEN 'LINE' 
102409                 WHEN 13 THEN 'LINE' 
102410                 WHEN 14 THEN 'LINE' 
102411                 WHEN 15 THEN 'LINE' 
102412                 WHEN 16 THEN 'LINE' 
102413                 WHEN 17 THEN 'LINE' 
102414                 WHEN 18 THEN 'LINE' 
102415                 WHEN 19 THEN 'LINE' 
102416                 WHEN 20 THEN 'LINE' 
102417                 WHEN 21 THEN 'LINE' 
102418                 WHEN 22 THEN 'LINE' 
102419                 WHEN 23 THEN 'LINE' 
102420                 WHEN 24 THEN 'LINE' 
102421                 WHEN 25 THEN 'LINE' 
102422                 WHEN 26 THEN 'LINE' 
102423                 WHEN 27 THEN 'LINE' 
102424                 WHEN 28 THEN 'LINE' 
102425                 WHEN 29 THEN 'LINE' 
102426                 WHEN 30 THEN 'LINE' 
102427                 WHEN 31 THEN 'LINE' 
102428                 WHEN 32 THEN 'LINE' 
102429                 WHEN 33 THEN 'LINE' 
102430                 WHEN 34 THEN 'LINE' 
102431                 WHEN 35 THEN 'LINE' 
102432                 WHEN 36 THEN 'LINE' 
102433                 WHEN 37 THEN 'LINE' 
102434                 WHEN 38 THEN 'LINE' 
102435                 WHEN 39 THEN 'LINE' 
102436                 WHEN 40 THEN 'LINE' 
102437                 WHEN 41 THEN 'LINE' 
102438                 WHEN 42 THEN 'LINE' 
102439                 WHEN 43 THEN 'LINE' 
102440                 WHEN 44 THEN 'LINE' 
102441                 WHEN 45 THEN 'LINE' 
102442                 WHEN 46 THEN 'LINE' 
102443                 WHEN 47 THEN 'LINE' 
102444                 WHEN 48 THEN 'LINE' 
102445                 WHEN 49 THEN 'LINE' 
102446                 WHEN 50 THEN 'LINE' 
102447                 WHEN 51 THEN 'LINE' 
102448                 WHEN 52 THEN 'LINE' 
102449                 WHEN 53 THEN 'LINE' 
102450                 WHEN 54 THEN 'LINE' 
102451                 WHEN 55 THEN 'LINE' 
102452                 WHEN 56 THEN 'LINE' 
102453                 WHEN 57 THEN 'LINE' 
102454                 WHEN 58 THEN 'LINE' 
102455                 WHEN 59 THEN 'LINE' 
102456                 WHEN 60 THEN 'LINE' 
102457                 WHEN 61 THEN 'LINE' 
102458                 
102459                 ELSE null
102460               END                           object_type_code
102461             , CASE r
102462                 WHEN 1 THEN '200' 
102463                 WHEN 2 THEN '200' 
102464                 WHEN 3 THEN '200' 
102465                 WHEN 4 THEN '200' 
102466                 WHEN 5 THEN '200' 
102467                 WHEN 6 THEN '200' 
102468                 WHEN 7 THEN '200' 
102469                 WHEN 8 THEN '200' 
102470                 WHEN 9 THEN '200' 
102471                 WHEN 10 THEN '200' 
102475                 WHEN 14 THEN '200' 
102472                 WHEN 11 THEN '200' 
102473                 WHEN 12 THEN '200' 
102474                 WHEN 13 THEN '200' 
102476                 WHEN 15 THEN '200' 
102477                 WHEN 16 THEN '200' 
102478                 WHEN 17 THEN '200' 
102479                 WHEN 18 THEN '200' 
102480                 WHEN 19 THEN '200' 
102481                 WHEN 20 THEN '200' 
102482                 WHEN 21 THEN '200' 
102483                 WHEN 22 THEN '200' 
102484                 WHEN 23 THEN '200' 
102485                 WHEN 24 THEN '200' 
102486                 WHEN 25 THEN '200' 
102487                 WHEN 26 THEN '200' 
102488                 WHEN 27 THEN '200' 
102489                 WHEN 28 THEN '200' 
102490                 WHEN 29 THEN '200' 
102491                 WHEN 30 THEN '200' 
102492                 WHEN 31 THEN '200' 
102493                 WHEN 32 THEN '200' 
102494                 WHEN 33 THEN '200' 
102495                 WHEN 34 THEN '200' 
102496                 WHEN 35 THEN '200' 
102497                 WHEN 36 THEN '200' 
102498                 WHEN 37 THEN '200' 
102499                 WHEN 38 THEN '200' 
102500                 WHEN 39 THEN '200' 
102501                 WHEN 40 THEN '200' 
102502                 WHEN 41 THEN '200' 
102503                 WHEN 42 THEN '200' 
102504                 WHEN 43 THEN '200' 
102505                 WHEN 44 THEN '200' 
102506                 WHEN 45 THEN '200' 
102507                 WHEN 46 THEN '200' 
102508                 WHEN 47 THEN '200' 
102509                 WHEN 48 THEN '200' 
102510                 WHEN 49 THEN '200' 
102511                 WHEN 50 THEN '200' 
102512                 WHEN 51 THEN '200' 
102513                 WHEN 52 THEN '200' 
102514                 WHEN 53 THEN '200' 
102515                 WHEN 54 THEN '200' 
102516                 WHEN 55 THEN '200' 
102517                 WHEN 56 THEN '200' 
102518                 WHEN 57 THEN '200' 
102519                 WHEN 58 THEN '200' 
102520                 WHEN 59 THEN '200' 
102521                 WHEN 60 THEN '200' 
102522                 WHEN 61 THEN '200' 
102523                 
102524                 ELSE null
102525               END                           source_application_id
102526             , 'S'             source_type_code
102527             , CASE r
102528                 WHEN 1 THEN 'INV_DIST_BASE_AMOUNT' 
102529                 WHEN 2 THEN 'RELATED_INV_DIST_DEST_TYPE' 
102530                 WHEN 3 THEN 'AID_DIST_CCID' 
102531                 WHEN 4 THEN 'AID_RET_RELATED_DIST_CCID' 
102532                 WHEN 5 THEN 'RECP_INV_DIST_CCID' 
102533                 WHEN 6 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
102534                 WHEN 7 THEN 'BUS_FLOW_AP_APP_ID' 
102535                 WHEN 8 THEN 'DISTRIBUTION_LINK_TYPE' 
102536                 WHEN 9 THEN 'POH_RATE_DATE' 
102537                 WHEN 10 THEN 'POH_RATE' 
102538                 WHEN 11 THEN 'POH_RATE_TYPE' 
102539                 WHEN 12 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
102540                 WHEN 13 THEN 'TAX_LINE_ID' 
102541                 WHEN 14 THEN 'SUMMARY_TAX_LINE_ID' 
102542                 WHEN 15 THEN 'BUS_FLOW_INV_DIST_TYPE' 
102543                 WHEN 16 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
102544                 WHEN 17 THEN 'REC_NREC_TAX_DIST_ID' 
102545                 WHEN 18 THEN 'APAD_DIST_LOOKUP_CODE' 
102546                 WHEN 19 THEN 'RECP_INV_DIST_TYPE' 
102547                 WHEN 20 THEN 'APAD_DISTRIBUTION_IDENTIFIER' 
102548                 WHEN 21 THEN 'BF_ACCRUAL_PREPAY_DIST_TYPE' 
102549                 WHEN 22 THEN 'BF_ACCRUAL_PREPAY_ENTITY_CODE' 
102550                 WHEN 23 THEN 'BF_ACCRUAL_PP_DIST_ID' 
102551                 WHEN 24 THEN 'BF_ACCRUAL_PP_INV' 
102552                 WHEN 25 THEN 'UPG_ENC_CR_ACCT_CLASS' 
102553                 WHEN 26 THEN 'UPG_ENC_CR_CCID' 
102554                 WHEN 27 THEN 'UPG_ENC_CR_AMT' 
102555                 WHEN 28 THEN 'UPG_ENC_CR_BASE_AMT' 
102556                 WHEN 29 THEN 'UPG_ENC_DR_ACCT_CLASS' 
102557                 WHEN 30 THEN 'UPG_ENC_DR_CCID' 
102558                 WHEN 31 THEN 'UPG_ENC_DR_AMT' 
102559                 WHEN 32 THEN 'UPG_ENC_DR_BASE_AMT' 
102560                 WHEN 33 THEN 'UPG_AP_ENCUM_OPTION' 
102561                 WHEN 34 THEN 'APAD_AMOUNT' 
102562                 WHEN 35 THEN 'PREPAY_CLEAR_CURRENCY_CODE' 
102563                 WHEN 36 THEN 'BASE_AMT_AT_PP_CLR_XRATE' 
102564                 WHEN 37 THEN 'DEFERRED_END_DATE' 
102565                 WHEN 38 THEN 'DEFERRED_OPTION' 
102566                 WHEN 39 THEN 'DEFERRED_START_DATE' 
102567                 WHEN 40 THEN 'REVERSED_PREPAY_APP_DIST_ID' 
102568                 WHEN 41 THEN 'UPG_CR_ENC_TYPE_ID' 
102569                 WHEN 42 THEN 'UPG_DR_ENC_TYPE_ID' 
102570                 WHEN 43 THEN 'PREPAY_PAY_CURRENCY_CODE' 
102571                 WHEN 44 THEN 'BASE_AMT_AT_PP_PAY_XRATE' 
102572                 WHEN 45 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
102573                 WHEN 46 THEN 'APAD_PREPAY_CLR_XDATE' 
102574                 WHEN 47 THEN 'APAD_PREPAY_CLR_XRATE' 
102575                 WHEN 48 THEN 'APAD_PREPAY_CLR_XRATE_TYPE' 
102576                 WHEN 49 THEN 'APAD_PREPAY_PAY_XDATE' 
102577                 WHEN 50 THEN 'APAD_PREPAY_PAY_XRATE' 
102578                 WHEN 51 THEN 'APAD_PREPAY_PAY_XRATE_TYPE' 
102579                 WHEN 52 THEN 'BF_CASHCLEARONLY_PP_DIST_TYPE' 
102580                 WHEN 53 THEN 'BF_CASHCLEARONLY_PREPAY_ENTITY' 
102581                 WHEN 54 THEN 'BF_CASHCLEAR_PP_CLEAR_DIST_ID' 
102582                 WHEN 55 THEN 'BF_CASHALWAYS_PP_PMT_ID' 
102583                 WHEN 56 THEN 'BF_CASH_ALWAYS_PP_DIST_TYPE' 
102584                 WHEN 57 THEN 'BF_CASH_ALWAYS_PREPAY_ENTITY' 
102585                 WHEN 58 THEN 'BF_CASHALWAYS_PP_PMT_DIST_ID' 
102586                 WHEN 59 THEN 'AI_RECIPIENT_INV_TYPE' 
102587                 WHEN 60 THEN 'BF_RET_DIST_ASSOC_TO_PP_RECIP' 
102588                 WHEN 61 THEN 'BF_RET_INV_ASSOC_TO_PP_RECIP' 
102589                 
102590                 ELSE null
102594                 WHEN 2 THEN TO_CHAR(l3.RELATED_INV_DIST_DEST_TYPE)
102591               END                           source_code
102592             , CASE r
102593                 WHEN 1 THEN TO_CHAR(l3.INV_DIST_BASE_AMOUNT)
102595                 WHEN 3 THEN TO_CHAR(l3.AID_DIST_CCID)
102596                 WHEN 4 THEN TO_CHAR(l3.AID_RET_RELATED_DIST_CCID)
102597                 WHEN 5 THEN TO_CHAR(l3.RECP_INV_DIST_CCID)
102598                 WHEN 6 THEN TO_CHAR(l3.DIST_ACCOUNT_REVERSAL_OPTION)
102599                 WHEN 7 THEN TO_CHAR(l3.BUS_FLOW_AP_APP_ID)
102600                 WHEN 8 THEN TO_CHAR(l3.DISTRIBUTION_LINK_TYPE)
102601                 WHEN 9 THEN TO_CHAR(l2.POH_RATE_DATE)
102602                 WHEN 10 THEN TO_CHAR(l2.POH_RATE)
102603                 WHEN 11 THEN TO_CHAR(l2.POH_RATE_TYPE)
102604                 WHEN 12 THEN TO_CHAR(l3.OVERRIDE_ACCTD_AMT_FLAG)
102605                 WHEN 13 THEN TO_CHAR(l5.TAX_LINE_ID)
102606                 WHEN 14 THEN TO_CHAR(l3.SUMMARY_TAX_LINE_ID)
102607                 WHEN 15 THEN TO_CHAR(l3.BUS_FLOW_INV_DIST_TYPE)
102608                 WHEN 16 THEN TO_CHAR(l3.BUS_FLOW_INV_ENTITY_CODE)
102609                 WHEN 17 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
102610                 WHEN 18 THEN TO_CHAR(l3.APAD_DIST_LOOKUP_CODE)
102611                 WHEN 19 THEN TO_CHAR(l3.RECP_INV_DIST_TYPE)
102612                 WHEN 20 THEN TO_CHAR(l3.APAD_DISTRIBUTION_IDENTIFIER)
102613                 WHEN 21 THEN TO_CHAR(l3.BF_ACCRUAL_PREPAY_DIST_TYPE)
102614                 WHEN 22 THEN TO_CHAR(l3.BF_ACCRUAL_PREPAY_ENTITY_CODE)
102615                 WHEN 23 THEN TO_CHAR(l3.BF_ACCRUAL_PP_DIST_ID)
102616                 WHEN 24 THEN TO_CHAR(l3.BF_ACCRUAL_PP_INV)
102617                 WHEN 25 THEN TO_CHAR(l3.UPG_ENC_CR_ACCT_CLASS)
102618                 WHEN 26 THEN TO_CHAR(l3.UPG_ENC_CR_CCID)
102619                 WHEN 27 THEN TO_CHAR(l3.UPG_ENC_CR_AMT)
102620                 WHEN 28 THEN TO_CHAR(l3.UPG_ENC_CR_BASE_AMT)
102621                 WHEN 29 THEN TO_CHAR(l3.UPG_ENC_DR_ACCT_CLASS)
102622                 WHEN 30 THEN TO_CHAR(l3.UPG_ENC_DR_CCID)
102623                 WHEN 31 THEN TO_CHAR(l3.UPG_ENC_DR_AMT)
102624                 WHEN 32 THEN TO_CHAR(l3.UPG_ENC_DR_BASE_AMT)
102625                 WHEN 33 THEN TO_CHAR(l3.UPG_AP_ENCUM_OPTION)
102626                 WHEN 34 THEN TO_CHAR(l3.APAD_AMOUNT)
102627                 WHEN 35 THEN TO_CHAR(l3.PREPAY_CLEAR_CURRENCY_CODE)
102628                 WHEN 36 THEN TO_CHAR(l3.BASE_AMT_AT_PP_CLR_XRATE)
102629                 WHEN 37 THEN TO_CHAR(l3.DEFERRED_END_DATE)
102630                 WHEN 38 THEN TO_CHAR(l3.DEFERRED_OPTION)
102631                 WHEN 39 THEN TO_CHAR(l3.DEFERRED_START_DATE)
102632                 WHEN 40 THEN TO_CHAR(l3.REVERSED_PREPAY_APP_DIST_ID)
102633                 WHEN 41 THEN TO_CHAR(l3.UPG_CR_ENC_TYPE_ID)
102634                 WHEN 42 THEN TO_CHAR(l3.UPG_DR_ENC_TYPE_ID)
102635                 WHEN 43 THEN TO_CHAR(l3.PREPAY_PAY_CURRENCY_CODE)
102636                 WHEN 44 THEN TO_CHAR(l3.BASE_AMT_AT_PP_PAY_XRATE)
102637                 WHEN 45 THEN TO_CHAR(l3.POD_ACCRUE_ON_RECEIPT_FLAG)
102638                 WHEN 46 THEN TO_CHAR(l3.APAD_PREPAY_CLR_XDATE)
102639                 WHEN 47 THEN TO_CHAR(l3.APAD_PREPAY_CLR_XRATE)
102640                 WHEN 48 THEN TO_CHAR(l3.APAD_PREPAY_CLR_XRATE_TYPE)
102641                 WHEN 49 THEN TO_CHAR(l3.APAD_PREPAY_PAY_XDATE)
102642                 WHEN 50 THEN TO_CHAR(l3.APAD_PREPAY_PAY_XRATE)
102643                 WHEN 51 THEN TO_CHAR(l3.APAD_PREPAY_PAY_XRATE_TYPE)
102644                 WHEN 52 THEN TO_CHAR(l3.BF_CASHCLEARONLY_PP_DIST_TYPE)
102645                 WHEN 53 THEN TO_CHAR(l3.BF_CASHCLEARONLY_PREPAY_ENTITY)
102646                 WHEN 54 THEN TO_CHAR(l3.BF_CASHCLEAR_PP_CLEAR_DIST_ID)
102647                 WHEN 55 THEN TO_CHAR(l3.BF_CASHALWAYS_PP_PMT_ID)
102648                 WHEN 56 THEN TO_CHAR(l3.BF_CASH_ALWAYS_PP_DIST_TYPE)
102649                 WHEN 57 THEN TO_CHAR(l3.BF_CASH_ALWAYS_PREPAY_ENTITY)
102650                 WHEN 58 THEN TO_CHAR(l3.BF_CASHALWAYS_PP_PMT_DIST_ID)
102651                 WHEN 59 THEN TO_CHAR(l3.AI_RECIPIENT_INV_TYPE)
102652                 WHEN 60 THEN TO_CHAR(l3.BF_RET_DIST_ASSOC_TO_PP_RECIP)
102653                 WHEN 61 THEN TO_CHAR(l3.BF_RET_INV_ASSOC_TO_PP_RECIP)
102654                 
102655                 ELSE null
102656               END                           source_value
102657             , CASE r
102658                 WHEN 2 THEN fvl19.meaning
102659                 WHEN 12 THEN fvl64.meaning
102660                 WHEN 19 THEN fvl79.meaning
102661                 WHEN 45 THEN fvl111.meaning
102662                 WHEN 59 THEN fvl148.meaning
102663                 
102664                 ELSE null
102665               END               source_meaning
102666          FROM  xla_events_gt     xet  
102667         , AP_PO_HEADERS_EXTRACT_V  l2
102668         , AP_PREPAYAPP_EXTRACT_DETAILS_V  l3
102669         , ZX_AP_DEF_TAX_EXTRACT_V  l5
102670         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
102671   , fnd_lookup_values    fvl19
102672   , fnd_lookup_values    fvl64
102673   , fnd_lookup_values    fvl79
102674   , fnd_lookup_values    fvl111
102675   , fnd_lookup_values    fvl148
102676             , (select rownum r from all_objects where rownum <= 61 and owner = p_apps_owner)
102677         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
102678           AND xet.event_class_code = C_EVENT_CLASS_CODE
102679             AND l3.event_id          = xet.event_id
102680  AND l3.pod_po_header_id  = l2.po_header_id (+)  AND l3.recp_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l3.recp_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl19.lookup_type(+)         = 'DESTINATION TYPE'
102681   AND fvl19.lookup_code(+)         = l3.RELATED_INV_DIST_DEST_TYPE
102682   AND fvl19.view_application_id(+) = 201
102683   AND fvl19.language(+)            = USERENV('LANG')
102684      AND fvl64.lookup_type(+)         = 'YES_NO'
102685   AND fvl64.lookup_code(+)         = l3.OVERRIDE_ACCTD_AMT_FLAG
102686   AND fvl64.view_application_id(+) = 0
102687   AND fvl64.language(+)            = USERENV('LANG')
102688      AND fvl79.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
102689   AND fvl79.lookup_code(+)         = l3.RECP_INV_DIST_TYPE
102693   AND fvl111.lookup_code(+)         = l3.POD_ACCRUE_ON_RECEIPT_FLAG
102690   AND fvl79.view_application_id(+) = 200
102691   AND fvl79.language(+)            = USERENV('LANG')
102692      AND fvl111.lookup_type(+)         = 'YES_NO'
102694   AND fvl111.view_application_id(+) = 0
102695   AND fvl111.language(+)            = USERENV('LANG')
102696      AND fvl148.lookup_type(+)         = 'INVOICE TYPE'
102697   AND fvl148.lookup_code(+)         = l3.AI_RECIPIENT_INV_TYPE
102698   AND fvl148.view_application_id(+) = 200
102699   AND fvl148.language(+)            = USERENV('LANG')
102700   
102701 )
102702 ;
102703 --
102704 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
102705 
102706       trace
102707          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
102708          ,p_level    => C_LEVEL_STATEMENT
102709          ,p_module   => l_log_module);
102710 
102711 END IF;
102712 
102713 
102714 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102715       trace
102716          (p_msg      => 'END of insert_sources_168'
102717          ,p_level    => C_LEVEL_PROCEDURE
102718          ,p_module   => l_log_module);
102719 END IF;
102720 EXCEPTION
102721   WHEN xla_exceptions_pkg.application_exception THEN
102722       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
102723             trace
102724                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
102725                ,p_level    => C_LEVEL_EXCEPTION
102726                ,p_module   => l_log_module);
102727       END IF;
102728       RAISE;
102729   WHEN OTHERS THEN
102730       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
102731             trace
102732                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
102733                ,p_level    => C_LEVEL_EXCEPTION
102734                ,p_module   => l_log_module);
102735        END IF;
102736        xla_exceptions_pkg.raise_message
102737            (p_location => 'XLA_00200_AAD_S_000011_PKG.insert_sources_168');
102738 END insert_sources_168;
102739 --
102740 
102741 ---------------------------------------
102742 --
102743 -- PRIVATE FUNCTION
102744 --         EventClass_168
102745 --
102746 ----------------------------------------
102747 --
102748 FUNCTION EventClass_168
102749        (p_application_id         IN NUMBER
102750        ,p_base_ledger_id         IN NUMBER
102751        ,p_target_ledger_id       IN NUMBER
102752        ,p_language               IN VARCHAR2
102753        ,p_currency_code          IN VARCHAR2
102754        ,p_sla_ledger_id          IN NUMBER
102755        ,p_pad_start_date         IN DATE
102756        ,p_pad_end_date           IN DATE
102757        ,p_primary_ledger_id      IN NUMBER)
102758 RETURN BOOLEAN IS
102759 --
102760 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT APPLICATIONS_ALL';
102761 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
102762 
102763 l_calculate_acctd_flag   VARCHAR2(1) :='N';
102764 l_calculate_g_l_flag     VARCHAR2(1) :='N';
102765 --
102766 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102767 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102768 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
102769 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102770 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102771 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
102772 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
102773 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102774 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102775 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102776 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102777 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102778 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102779 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102780 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102781 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102782 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102783 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102784 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102785 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102786 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102787 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102788 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
102789 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
102790 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
102791 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
102792 
102793 l_event_id                             NUMBER;
102794 l_previous_event_id                    NUMBER;
102795 l_first_event_id                       NUMBER;
102796 l_last_event_id                        NUMBER;
102797 
102798 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
102799 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
102800 --
102801 --
102802 l_result                    BOOLEAN := TRUE;
102803 l_rows                      NUMBER  := 1000;
102804 l_event_type_name           VARCHAR2(80) := 'All';
102805 l_event_class_name          VARCHAR2(80) := 'Prepayment Applications';
102806 l_description               VARCHAR2(4000);
102807 l_transaction_reversal      NUMBER;
102808 l_ae_header_id              NUMBER;
102809 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
102810 l_log_module                VARCHAR2(240);
102811 --
102815 l_continue_with_lines       BOOLEAN := TRUE;
102812 l_acct_reversal_source      VARCHAR2(30);
102813 l_trx_reversal_source       VARCHAR2(30);
102814 
102816 --
102817 l_acc_rev_gl_date_source    DATE;                      -- 4262811
102818 --
102819 type t_array_event_id is table of number index by binary_integer;
102820 
102821 l_rec_array_event                    t_rec_array_event;
102822 l_null_rec_array_event               t_rec_array_event;
102823 l_array_ae_header_id                 xla_number_array_type;
102824 l_actual_flag                        VARCHAR2(1) := NULL;
102825 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
102826 l_balance_type_code                  VARCHAR2(1) :=NULL;
102827 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
102828 
102829 --
102830 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
102831 --
102832 
102833 TYPE t_array_source_2 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
102834 TYPE t_array_source_3 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_DATE%TYPE INDEX BY BINARY_INTEGER;
102835 TYPE t_array_source_4 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
102836 TYPE t_array_source_5 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
102837 TYPE t_array_source_6 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
102838 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
102839 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
102840 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
102841 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
102842 TYPE t_array_source_34 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
102843 TYPE t_array_source_42 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
102844 TYPE t_array_source_49 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
102845 TYPE t_array_source_50 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
102846 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
102847 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
102848 TYPE t_array_source_91 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
102849 TYPE t_array_source_104 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
102850 TYPE t_array_source_105 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
102851 TYPE t_array_source_131 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
102852 TYPE t_array_source_132 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
102853 TYPE t_array_source_133 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
102854 TYPE t_array_source_160 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
102855 
102856 TYPE t_array_source_18 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
102857 TYPE t_array_source_19 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
102858 TYPE t_array_source_29 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
102859 TYPE t_array_source_35 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
102860 TYPE t_array_source_48 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.RECP_INV_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
102861 TYPE t_array_source_52 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
102862 TYPE t_array_source_54 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
102863 TYPE t_array_source_60 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
102864 TYPE t_array_source_61 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
102865 TYPE t_array_source_62 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
102866 TYPE t_array_source_63 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
102867 TYPE t_array_source_64 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
102868 TYPE t_array_source_69 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
102869 TYPE t_array_source_70 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
102870 TYPE t_array_source_73 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
102871 TYPE t_array_source_74 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
102872 TYPE t_array_source_77 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
102873 TYPE t_array_source_78 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
102874 TYPE t_array_source_79 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.RECP_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
102875 TYPE t_array_source_82 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
102876 TYPE t_array_source_84 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
102877 TYPE t_array_source_85 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
102878 TYPE t_array_source_86 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
102879 TYPE t_array_source_87 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_INV%TYPE INDEX BY BINARY_INTEGER;
102883 TYPE t_array_source_92 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
102880 TYPE t_array_source_88 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
102881 TYPE t_array_source_89 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
102882 TYPE t_array_source_90 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
102884 TYPE t_array_source_93 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
102885 TYPE t_array_source_94 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
102886 TYPE t_array_source_95 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
102887 TYPE t_array_source_96 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
102888 TYPE t_array_source_97 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
102889 TYPE t_array_source_98 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
102890 TYPE t_array_source_99 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.PREPAY_CLEAR_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
102891 TYPE t_array_source_100 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_CLR_XRATE%TYPE INDEX BY BINARY_INTEGER;
102892 TYPE t_array_source_101 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
102893 TYPE t_array_source_102 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
102894 TYPE t_array_source_103 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
102895 TYPE t_array_source_106 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.REVERSED_PREPAY_APP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
102896 TYPE t_array_source_107 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
102897 TYPE t_array_source_108 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
102898 TYPE t_array_source_109 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.PREPAY_PAY_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
102899 TYPE t_array_source_110 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_PAY_XRATE%TYPE INDEX BY BINARY_INTEGER;
102900 TYPE t_array_source_111 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
102901 TYPE t_array_source_125 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_CLR_XDATE%TYPE INDEX BY BINARY_INTEGER;
102902 TYPE t_array_source_126 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_CLR_XRATE%TYPE INDEX BY BINARY_INTEGER;
102903 TYPE t_array_source_127 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_CLR_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
102904 TYPE t_array_source_128 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_PAY_XDATE%TYPE INDEX BY BINARY_INTEGER;
102905 TYPE t_array_source_129 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_PAY_XRATE%TYPE INDEX BY BINARY_INTEGER;
102906 TYPE t_array_source_130 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_PAY_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
102907 TYPE t_array_source_141 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHCLEARONLY_PP_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
102908 TYPE t_array_source_142 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHCLEARONLY_PREPAY_ENTITY%TYPE INDEX BY BINARY_INTEGER;
102909 TYPE t_array_source_143 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHCLEAR_PP_CLEAR_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
102910 TYPE t_array_source_144 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHALWAYS_PP_PMT_ID%TYPE INDEX BY BINARY_INTEGER;
102911 TYPE t_array_source_145 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASH_ALWAYS_PP_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
102912 TYPE t_array_source_146 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASH_ALWAYS_PREPAY_ENTITY%TYPE INDEX BY BINARY_INTEGER;
102913 TYPE t_array_source_147 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHALWAYS_PP_PMT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
102914 TYPE t_array_source_148 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AI_RECIPIENT_INV_TYPE%TYPE INDEX BY BINARY_INTEGER;
102915 TYPE t_array_source_149 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_RET_DIST_ASSOC_TO_PP_RECIP%TYPE INDEX BY BINARY_INTEGER;
102916 TYPE t_array_source_150 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_RET_INV_ASSOC_TO_PP_RECIP%TYPE INDEX BY BINARY_INTEGER;
102917 
102918 l_array_source_2              t_array_source_2;
102919 l_array_source_3              t_array_source_3;
102920 l_array_source_4              t_array_source_4;
102921 l_array_source_5              t_array_source_5;
102922 l_array_source_6              t_array_source_6;
102923 l_array_source_7              t_array_source_7;
102924 l_array_source_16              t_array_source_16;
102925 l_array_source_16_meaning      t_array_lookup_meaning;
102926 l_array_source_17              t_array_source_17;
102927 l_array_source_20              t_array_source_20;
102928 l_array_source_34              t_array_source_34;
102929 l_array_source_42              t_array_source_42;
102930 l_array_source_42_meaning      t_array_lookup_meaning;
102931 l_array_source_49              t_array_source_49;
102932 l_array_source_50              t_array_source_50;
102933 l_array_source_67              t_array_source_67;
102934 l_array_source_83              t_array_source_83;
102935 l_array_source_91              t_array_source_91;
102936 l_array_source_104              t_array_source_104;
102937 l_array_source_105              t_array_source_105;
102938 l_array_source_131              t_array_source_131;
102939 l_array_source_132              t_array_source_132;
102940 l_array_source_133              t_array_source_133;
102941 l_array_source_160              t_array_source_160;
102942 
102943 l_array_source_18      t_array_source_18;
102944 l_array_source_19      t_array_source_19;
102945 l_array_source_19_meaning      t_array_lookup_meaning;
102946 l_array_source_29      t_array_source_29;
102947 l_array_source_35      t_array_source_35;
102948 l_array_source_48      t_array_source_48;
102949 l_array_source_52      t_array_source_52;
102950 l_array_source_54      t_array_source_54;
102951 l_array_source_60      t_array_source_60;
102952 l_array_source_61      t_array_source_61;
102956 l_array_source_64_meaning      t_array_lookup_meaning;
102953 l_array_source_62      t_array_source_62;
102954 l_array_source_63      t_array_source_63;
102955 l_array_source_64      t_array_source_64;
102957 l_array_source_69      t_array_source_69;
102958 l_array_source_70      t_array_source_70;
102959 l_array_source_73      t_array_source_73;
102960 l_array_source_74      t_array_source_74;
102961 l_array_source_77      t_array_source_77;
102962 l_array_source_78      t_array_source_78;
102963 l_array_source_79      t_array_source_79;
102964 l_array_source_79_meaning      t_array_lookup_meaning;
102965 l_array_source_82      t_array_source_82;
102966 l_array_source_84      t_array_source_84;
102967 l_array_source_85      t_array_source_85;
102968 l_array_source_86      t_array_source_86;
102969 l_array_source_87      t_array_source_87;
102970 l_array_source_88      t_array_source_88;
102971 l_array_source_89      t_array_source_89;
102972 l_array_source_90      t_array_source_90;
102973 l_array_source_92      t_array_source_92;
102974 l_array_source_93      t_array_source_93;
102975 l_array_source_94      t_array_source_94;
102976 l_array_source_95      t_array_source_95;
102977 l_array_source_96      t_array_source_96;
102978 l_array_source_97      t_array_source_97;
102979 l_array_source_98      t_array_source_98;
102980 l_array_source_99      t_array_source_99;
102981 l_array_source_100      t_array_source_100;
102982 l_array_source_101      t_array_source_101;
102983 l_array_source_102      t_array_source_102;
102984 l_array_source_103      t_array_source_103;
102985 l_array_source_106      t_array_source_106;
102986 l_array_source_107      t_array_source_107;
102987 l_array_source_108      t_array_source_108;
102988 l_array_source_109      t_array_source_109;
102989 l_array_source_110      t_array_source_110;
102990 l_array_source_111      t_array_source_111;
102991 l_array_source_111_meaning      t_array_lookup_meaning;
102992 l_array_source_125      t_array_source_125;
102993 l_array_source_126      t_array_source_126;
102994 l_array_source_127      t_array_source_127;
102995 l_array_source_128      t_array_source_128;
102996 l_array_source_129      t_array_source_129;
102997 l_array_source_130      t_array_source_130;
102998 l_array_source_141      t_array_source_141;
102999 l_array_source_142      t_array_source_142;
103000 l_array_source_143      t_array_source_143;
103001 l_array_source_144      t_array_source_144;
103002 l_array_source_145      t_array_source_145;
103003 l_array_source_146      t_array_source_146;
103004 l_array_source_147      t_array_source_147;
103005 l_array_source_148      t_array_source_148;
103006 l_array_source_148_meaning      t_array_lookup_meaning;
103007 l_array_source_149      t_array_source_149;
103008 l_array_source_150      t_array_source_150;
103009 
103010 --
103011 CURSOR header_cur
103012 IS
103013 SELECT /*+ leading(xet) cardinality(xet,1) */
103014 -- Event Class Code: PREPAYMENT APPLICATIONS
103015     xet.entity_id
103016    ,xet.legal_entity_id
103017    ,xet.entity_code
103018    ,xet.transaction_number
103019    ,xet.event_id
103020    ,xet.event_class_code
103021    ,xet.event_type_code
103022    ,xet.event_number
103023    ,xet.event_date
103024    ,xet.transaction_date
103025    ,xet.reference_num_1
103026    ,xet.reference_num_2
103027    ,xet.reference_num_3
103028    ,xet.reference_num_4
103029    ,xet.reference_char_1
103030    ,xet.reference_char_2
103031    ,xet.reference_char_3
103032    ,xet.reference_char_4
103033    ,xet.reference_date_1
103034    ,xet.reference_date_2
103035    ,xet.reference_date_3
103036    ,xet.reference_date_4
103037    ,xet.event_created_by
103038    ,xet.budgetary_control_flag 
103039   , h1.INV_TRANSACTION_NUMBER    source_2
103040   , h1.AI_INVOICE_DATE    source_3
103041   , h1.INV_DOC_SEQUENCE_CATEGORY    source_4
103042   , h1.DOC_SEQUENCE_NAME    source_5
103043   , h1.INV_DOC_SEQUENCE_VALUE    source_6
103044   , h1.AI_DESCRIPTION    source_7
103045   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_16
103046   , fvl16.meaning   source_16_meaning
103047   , h4.ASP_RATE_VAR_GAIN_CCID    source_17
103048   , h4.ASP_RATE_VAR_LOSS_CCID    source_20
103049   , h4.FSP_RETAINAGE_ACCOUNT    source_34
103050   , h4.ASP_AUTO_OFFSET_FLAG    source_42
103051   , fvl42.meaning   source_42_meaning
103052   , h4.ASP_ROUNDING_ERROR_CCID    source_49
103053   , h4.ASP_WHEN_TO_ACCOUNT_PMT    source_50
103054   , h1.THIRD_PARTY_TYPE    source_67
103055   , h1.AI_INVOICE_ID    source_83
103056   , h1.AI_INVOICE_CURRENCY_CODE    source_91
103057   , h1.AI_VENDOR_ID    source_104
103058   , h1.AI_VENDOR_SITE_ID    source_105
103059   , h1.INV_EXCHANGE_DATE    source_131
103060   , h1.INV_EXCHANGE_RATE    source_132
103061   , h1.INV_EXCHANGE_RATE_TYPE    source_133
103062   , h1.INV_DOC_SEQUENCE_IDENTIFIER    source_160
103063   FROM xla_events_gt     xet 
103064   , AP_INVOICE_EXTRACT_HEADER_V  h1
103065   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
103066   , fnd_lookup_values    fvl16
103067   , fnd_lookup_values    fvl42
103068  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
103069    and xet.event_class_code = C_EVENT_CLASS_CODE
103070    and xet.event_status_code <> 'N'  AND h1.event_id = xet.event_id
103071  AND h4.asp_org_id = h1.ai_org_id   AND fvl16.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
103072   AND fvl16.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
103073   AND fvl16.view_application_id(+) = 200
103074   AND fvl16.language(+)            = USERENV('LANG')
103075      AND fvl42.lookup_type(+)         = 'YES_NO'
103076   AND fvl42.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
103077   AND fvl42.view_application_id(+) = 0
103078   AND fvl42.language(+)            = USERENV('LANG')
103079   
103080  ORDER BY event_id
103081 ;
103082 
103083 
103084 --
103085 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
103086 IS
103087 SELECT  /*+ leading(xet) cardinality(xet,1) */
103091    ,xet.entity_code
103088 -- Event Class Code: PREPAYMENT APPLICATIONS
103089     xet.entity_id
103090    ,xet.legal_entity_id
103092    ,xet.transaction_number
103093    ,xet.event_id
103094    ,xet.event_class_code
103095    ,xet.event_type_code
103096    ,xet.event_number
103097    ,xet.event_date
103098    ,xet.transaction_date
103099    ,xet.reference_num_1
103100    ,xet.reference_num_2
103101    ,xet.reference_num_3
103102    ,xet.reference_num_4
103103    ,xet.reference_char_1
103104    ,xet.reference_char_2
103105    ,xet.reference_char_3
103106    ,xet.reference_char_4
103107    ,xet.reference_date_1
103108    ,xet.reference_date_2
103109    ,xet.reference_date_3
103110    ,xet.reference_date_4
103111    ,xet.event_created_by
103112    ,xet.budgetary_control_flag
103113  , l3.LINE_NUMBER  
103114   , l3.INV_DIST_BASE_AMOUNT    source_18
103115   , l3.RELATED_INV_DIST_DEST_TYPE    source_19
103116   , fvl19.meaning   source_19_meaning
103117   , l3.AID_DIST_CCID    source_29
103118   , l3.AID_RET_RELATED_DIST_CCID    source_35
103119   , l3.RECP_INV_DIST_CCID    source_48
103120   , l3.DIST_ACCOUNT_REVERSAL_OPTION    source_52
103121   , l3.BUS_FLOW_AP_APP_ID    source_54
103122   , l3.DISTRIBUTION_LINK_TYPE    source_60
103123   , l2.POH_RATE_DATE    source_61
103124   , l2.POH_RATE    source_62
103125   , l2.POH_RATE_TYPE    source_63
103126   , l3.OVERRIDE_ACCTD_AMT_FLAG    source_64
103127   , fvl64.meaning   source_64_meaning
103128   , l5.TAX_LINE_ID    source_69
103129   , l3.SUMMARY_TAX_LINE_ID    source_70
103130   , l3.BUS_FLOW_INV_DIST_TYPE    source_73
103131   , l3.BUS_FLOW_INV_ENTITY_CODE    source_74
103132   , l6.REC_NREC_TAX_DIST_ID    source_77
103133   , l3.APAD_DIST_LOOKUP_CODE    source_78
103134   , l3.RECP_INV_DIST_TYPE    source_79
103135   , fvl79.meaning   source_79_meaning
103136   , l3.APAD_DISTRIBUTION_IDENTIFIER    source_82
103137   , l3.BF_ACCRUAL_PREPAY_DIST_TYPE    source_84
103138   , l3.BF_ACCRUAL_PREPAY_ENTITY_CODE    source_85
103139   , l3.BF_ACCRUAL_PP_DIST_ID    source_86
103140   , l3.BF_ACCRUAL_PP_INV    source_87
103141   , l3.UPG_ENC_CR_ACCT_CLASS    source_88
103142   , l3.UPG_ENC_CR_CCID    source_89
103143   , l3.UPG_ENC_CR_AMT    source_90
103144   , l3.UPG_ENC_CR_BASE_AMT    source_92
103145   , l3.UPG_ENC_DR_ACCT_CLASS    source_93
103146   , l3.UPG_ENC_DR_CCID    source_94
103147   , l3.UPG_ENC_DR_AMT    source_95
103148   , l3.UPG_ENC_DR_BASE_AMT    source_96
103149   , l3.UPG_AP_ENCUM_OPTION    source_97
103150   , l3.APAD_AMOUNT    source_98
103151   , l3.PREPAY_CLEAR_CURRENCY_CODE    source_99
103152   , l3.BASE_AMT_AT_PP_CLR_XRATE    source_100
103153   , l3.DEFERRED_END_DATE    source_101
103154   , l3.DEFERRED_OPTION    source_102
103155   , l3.DEFERRED_START_DATE    source_103
103156   , l3.REVERSED_PREPAY_APP_DIST_ID    source_106
103157   , l3.UPG_CR_ENC_TYPE_ID    source_107
103158   , l3.UPG_DR_ENC_TYPE_ID    source_108
103159   , l3.PREPAY_PAY_CURRENCY_CODE    source_109
103160   , l3.BASE_AMT_AT_PP_PAY_XRATE    source_110
103161   , l3.POD_ACCRUE_ON_RECEIPT_FLAG    source_111
103162   , fvl111.meaning   source_111_meaning
103163   , l3.APAD_PREPAY_CLR_XDATE    source_125
103164   , l3.APAD_PREPAY_CLR_XRATE    source_126
103165   , l3.APAD_PREPAY_CLR_XRATE_TYPE    source_127
103166   , l3.APAD_PREPAY_PAY_XDATE    source_128
103167   , l3.APAD_PREPAY_PAY_XRATE    source_129
103168   , l3.APAD_PREPAY_PAY_XRATE_TYPE    source_130
103169   , l3.BF_CASHCLEARONLY_PP_DIST_TYPE    source_141
103170   , l3.BF_CASHCLEARONLY_PREPAY_ENTITY    source_142
103171   , l3.BF_CASHCLEAR_PP_CLEAR_DIST_ID    source_143
103172   , l3.BF_CASHALWAYS_PP_PMT_ID    source_144
103173   , l3.BF_CASH_ALWAYS_PP_DIST_TYPE    source_145
103174   , l3.BF_CASH_ALWAYS_PREPAY_ENTITY    source_146
103175   , l3.BF_CASHALWAYS_PP_PMT_DIST_ID    source_147
103176   , l3.AI_RECIPIENT_INV_TYPE    source_148
103177   , fvl148.meaning   source_148_meaning
103178   , l3.BF_RET_DIST_ASSOC_TO_PP_RECIP    source_149
103179   , l3.BF_RET_INV_ASSOC_TO_PP_RECIP    source_150
103180   FROM xla_events_gt     xet 
103181   , AP_PO_HEADERS_EXTRACT_V  l2
103182   , AP_PREPAYAPP_EXTRACT_DETAILS_V  l3
103183   , ZX_AP_DEF_TAX_EXTRACT_V  l5
103184   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
103185   , fnd_lookup_values    fvl19
103186   , fnd_lookup_values    fvl64
103187   , fnd_lookup_values    fvl79
103188   , fnd_lookup_values    fvl111
103189   , fnd_lookup_values    fvl148
103190  WHERE xet.event_id between x_first_event_id and x_last_event_id
103191    and xet.event_date between p_pad_start_date and p_pad_end_date
103192    and xet.event_class_code = C_EVENT_CLASS_CODE
103193    and xet.event_status_code <> 'N'   AND l3.event_id      = xet.event_id
103194  AND l3.POD_PO_Header_Id  = l2.PO_Header_Id (+)  AND l3.RECP_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+)  AND l3.RECP_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl19.lookup_type(+)         = 'DESTINATION TYPE'
103195   AND fvl19.lookup_code(+)         = l3.RELATED_INV_DIST_DEST_TYPE
103196   AND fvl19.view_application_id(+) = 201
103197   AND fvl19.language(+)            = USERENV('LANG')
103198      AND fvl64.lookup_type(+)         = 'YES_NO'
103199   AND fvl64.lookup_code(+)         = l3.OVERRIDE_ACCTD_AMT_FLAG
103200   AND fvl64.view_application_id(+) = 0
103201   AND fvl64.language(+)            = USERENV('LANG')
103202      AND fvl79.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
103203   AND fvl79.lookup_code(+)         = l3.RECP_INV_DIST_TYPE
103204   AND fvl79.view_application_id(+) = 200
103205   AND fvl79.language(+)            = USERENV('LANG')
103206      AND fvl111.lookup_type(+)         = 'YES_NO'
103207   AND fvl111.lookup_code(+)         = l3.POD_ACCRUE_ON_RECEIPT_FLAG
103208   AND fvl111.view_application_id(+) = 0
103209   AND fvl111.language(+)            = USERENV('LANG')
103210      AND fvl148.lookup_type(+)         = 'INVOICE TYPE'
103211   AND fvl148.lookup_code(+)         = l3.AI_RECIPIENT_INV_TYPE
103212   AND fvl148.view_application_id(+) = 200
103213   AND fvl148.language(+)            = USERENV('LANG')
103214   ;
103218 IF g_log_enabled THEN
103215 
103216 --
103217 BEGIN
103219    l_log_module := C_DEFAULT_MODULE||'.EventClass_168';
103220 END IF;
103221 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103222    trace
103223       (p_msg      => 'BEGIN of EventClass_168'
103224       ,p_level    => C_LEVEL_PROCEDURE
103225       ,p_module   => l_log_module);
103226 END IF;
103227 
103228 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103229    trace
103230       (p_msg      => 'p_application_id = '||p_application_id||
103231                      ' - p_base_ledger_id = '||p_base_ledger_id||
103232                      ' - p_target_ledger_id  = '||p_target_ledger_id||
103233                      ' - p_language = '||p_language||
103234                      ' - p_currency_code = '||p_currency_code||
103235                      ' - p_sla_ledger_id = '||p_sla_ledger_id
103236       ,p_level    => C_LEVEL_STATEMENT
103237       ,p_module   => l_log_module);
103238 END IF;
103239 --
103240 -- initialze arrays
103241 --
103242 g_array_event.DELETE;
103243 l_rec_array_event := l_null_rec_array_event;
103244 --
103245 --------------------------------------
103246 -- 4262811 Initialze MPA Line Number
103247 --------------------------------------
103248 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
103249 
103250 --
103251 
103252 --
103253 OPEN header_cur;
103254 --
103255 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103256    trace
103257    (p_msg      => 'SQL - FETCH header_cur'
103258    ,p_level    => C_LEVEL_STATEMENT
103259    ,p_module   => l_log_module);
103260 END IF;
103261 --
103262 LOOP
103263 FETCH header_cur BULK COLLECT INTO
103264         l_array_entity_id
103265       , l_array_legal_entity_id
103266       , l_array_entity_code
103267       , l_array_transaction_num
103268       , l_array_event_id
103269       , l_array_class_code
103270       , l_array_event_type
103271       , l_array_event_number
103272       , l_array_event_date
103273       , l_array_transaction_date
103274       , l_array_reference_num_1
103275       , l_array_reference_num_2
103276       , l_array_reference_num_3
103277       , l_array_reference_num_4
103278       , l_array_reference_char_1
103279       , l_array_reference_char_2
103280       , l_array_reference_char_3
103281       , l_array_reference_char_4
103282       , l_array_reference_date_1
103283       , l_array_reference_date_2
103284       , l_array_reference_date_3
103285       , l_array_reference_date_4
103286       , l_array_event_created_by
103287       , l_array_budgetary_control_flag 
103288       , l_array_source_2
103289       , l_array_source_3
103290       , l_array_source_4
103291       , l_array_source_5
103292       , l_array_source_6
103293       , l_array_source_7
103294       , l_array_source_16
103295       , l_array_source_16_meaning
103296       , l_array_source_17
103297       , l_array_source_20
103298       , l_array_source_34
103299       , l_array_source_42
103300       , l_array_source_42_meaning
103301       , l_array_source_49
103302       , l_array_source_50
103303       , l_array_source_67
103304       , l_array_source_83
103305       , l_array_source_91
103306       , l_array_source_104
103307       , l_array_source_105
103308       , l_array_source_131
103309       , l_array_source_132
103310       , l_array_source_133
103311       , l_array_source_160
103312       LIMIT l_rows;
103313 --
103314 IF (C_LEVEL_EVENT >= g_log_level) THEN
103315    trace
103316    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
103317    ,p_level    => C_LEVEL_EVENT
103318    ,p_module   => l_log_module);
103319 END IF;
103320 --
103321 EXIT WHEN l_array_entity_id.COUNT = 0;
103322 
103323 -- initialize arrays
103324 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
103325 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
103326 
103327 --
103328 -- Bug 4458708
103329 --
103330 XLA_AE_LINES_PKG.g_LineNumber := 0;
103331 
103332 
103333 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
103334 g_last_hdr_idx := l_array_event_id.LAST;
103335 --
103336 -- loop for the headers. Each iteration is for each header extract row
103337 -- fetched in header cursor
103338 --
103339 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
103340 
103341 --
103342 -- set event info as cache for other routines to refer event attributes
103343 --
103344 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
103345    (p_application_id           => p_application_id
103346    ,p_primary_ledger_id        => p_primary_ledger_id
103347    ,p_base_ledger_id           => p_base_ledger_id
103348    ,p_target_ledger_id         => p_target_ledger_id
103349    ,p_entity_id                => l_array_entity_id(hdr_idx)
103350    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
103351    ,p_entity_code              => l_array_entity_code(hdr_idx)
103352    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
103353    ,p_event_id                 => l_array_event_id(hdr_idx)
103354    ,p_event_class_code         => l_array_class_code(hdr_idx)
103355    ,p_event_type_code          => l_array_event_type(hdr_idx)
103356    ,p_event_number             => l_array_event_number(hdr_idx)
103357    ,p_event_date               => l_array_event_date(hdr_idx)
103358    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
103359    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
103360    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
103361    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
103362    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
103363    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
103364    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
103368    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
103365    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
103366    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
103367    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
103369    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
103370    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
103371    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
103372    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
103373 
103374 --
103375 -- set the status of entry to C_VALID (0)
103376 --
103377 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
103378 
103379 --
103380 -- initialize a row for ae header
103381 --
103382 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
103383 
103384 l_event_id := l_array_event_id(hdr_idx);
103385 
103386 --
103387 -- storing the hdr_idx for event. May be used by line cursor.
103388 --
103389 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
103390 
103391 --
103392 -- store sources from header extract. This can be improved to
103393 -- store only those sources from header extract that may be used in lines
103394 --
103395 
103396 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
103397 g_array_event(l_event_id).array_value_date('source_3') := l_array_source_3(hdr_idx);
103398 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
103399 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
103400 g_array_event(l_event_id).array_value_num('source_6') := l_array_source_6(hdr_idx);
103401 g_array_event(l_event_id).array_value_char('source_7') := l_array_source_7(hdr_idx);
103402 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
103403 g_array_event(l_event_id).array_value_char('source_16_meaning') := l_array_source_16_meaning(hdr_idx);
103404 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
103405 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
103406 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
103407 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
103408 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
103409 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
103410 g_array_event(l_event_id).array_value_char('source_50') := l_array_source_50(hdr_idx);
103411 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
103412 g_array_event(l_event_id).array_value_num('source_83') := l_array_source_83(hdr_idx);
103413 g_array_event(l_event_id).array_value_char('source_91') := l_array_source_91(hdr_idx);
103414 g_array_event(l_event_id).array_value_num('source_104') := l_array_source_104(hdr_idx);
103415 g_array_event(l_event_id).array_value_num('source_105') := l_array_source_105(hdr_idx);
103416 g_array_event(l_event_id).array_value_date('source_131') := l_array_source_131(hdr_idx);
103417 g_array_event(l_event_id).array_value_num('source_132') := l_array_source_132(hdr_idx);
103418 g_array_event(l_event_id).array_value_char('source_133') := l_array_source_133(hdr_idx);
103419 g_array_event(l_event_id).array_value_num('source_160') := l_array_source_160(hdr_idx);
103420 
103421 --
103422 -- initilaize the status of ae headers for diffrent balance types
103423 -- the status is initialised to C_NOT_CREATED (2)
103424 --
103425 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
103426 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
103427 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
103428 
103429 --
103430 -- call api to validate and store accounting attributes for header
103431 --
103432 
103433 ------------------------------------------------------------
103434 -- Accrual Reversal : to get date for Standard Source (NONE)
103435 ------------------------------------------------------------
103436 l_acc_rev_gl_date_source := NULL;
103437 
103438      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
103439       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_4');
103440      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
103441       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_160');
103442      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
103443       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_6');
103444      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
103445       l_rec_acct_attrs.array_date_value(4) := 
103446 xla_ae_sources_pkg.GetSystemSourceDate(
103447    p_source_code           => 'XLA_EVENT_DATE'
103448  , p_source_type_code      => 'Y'
103449  , p_source_application_id =>  602
103450 );
103451 
103452 
103453 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
103454 
103455 XLA_AE_HEADER_PKG.SetJeCategoryName;
103456 
103457 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
103458 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
103459 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
103460 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
103461 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
103462 
103463 
103464 --
103465 xla_ae_header_pkg.SetHdrDescription(
103466    p_description => Description_1 (
103467    p_application_id => p_application_id 
103468  , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
103469  , p_source_3 => g_array_event(l_event_id).array_value_date('source_3')
103473  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
103470  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
103471  , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
103472  , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
103474    )
103475 );
103476 --
103477 
103478 -- No header level analytical criteria
103479 
103480 --
103481 --accounting attribute enhancement, bug 3612931
103482 --
103483 l_trx_reversal_source := SUBSTR(NULL, 1,30);
103484 
103485 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
103486    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
103487 
103488    xla_accounting_err_pkg.build_message
103489       (p_appli_s_name            => 'XLA'
103490       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
103491       ,p_token_1                 => 'ACCT_ATTR_NAME'
103492       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
103493       ,p_token_2                 => 'PRODUCT_NAME'
103494       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
103495       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
103496       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
103497       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
103498 
103499 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
103500    --
103501    -- following sets the accounting attributes needed to reverse
103502    -- accounting for a distributeion
103503    --
103504    xla_ae_lines_pkg.SetTrxReversalAttrs
103505       (p_event_id              => l_event_id
103506       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
103507       ,p_trx_reversal_source   => l_trx_reversal_source);
103508 
103509 END IF;
103510 
103511 
103512 ----------------------------------------------------------------
103513 -- 4262811 -  update the header statuses to invalid in need be
103514 ----------------------------------------------------------------
103515 --
103516 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
103517 
103518 
103519   -----------------------------------------------
103520   -- No accrual reversal for the event class/type
103521   -----------------------------------------------
103522 ----------------------------------------------------------------
103523 
103524 --
103525 -- this ends the header loop iteration for one bulk fetch
103526 --
103527 END LOOP;
103528 
103529 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
103530 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
103531 
103532 --
103533 -- insert dummy rows into lines gt table that were created due to
103534 -- transaction reversals
103535 --
103536 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
103537    l_result := XLA_AE_LINES_PKG.InsertLines;
103538 END IF;
103539 
103540 --
103541 -- reset the temp_line_num for each set of events fetched from header
103542 -- cursor rather than doing it for each new event in line cursor
103543 -- Bug 3939231
103544 --
103545 xla_ae_lines_pkg.g_temp_line_num := 0;
103546 
103547 
103548 
103549 --
103550 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
103551 --
103552 --
103553 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103554 
103555       trace
103556          (p_msg      => 'SQL - FETCH line_cur'
103557          ,p_level    => C_LEVEL_STATEMENT
103558          ,p_module   => l_log_module);
103559 
103560 END IF;
103561 --
103562 --
103563 LOOP
103564   --
103565   FETCH line_cur BULK COLLECT INTO
103566         l_array_entity_id
103567       , l_array_legal_entity_id
103568       , l_array_entity_code
103569       , l_array_transaction_num
103570       , l_array_event_id
103571       , l_array_class_code
103572       , l_array_event_type
103573       , l_array_event_number
103574       , l_array_event_date
103575       , l_array_transaction_date
103576       , l_array_reference_num_1
103577       , l_array_reference_num_2
103578       , l_array_reference_num_3
103579       , l_array_reference_num_4
103580       , l_array_reference_char_1
103581       , l_array_reference_char_2
103582       , l_array_reference_char_3
103583       , l_array_reference_char_4
103584       , l_array_reference_date_1
103585       , l_array_reference_date_2
103586       , l_array_reference_date_3
103587       , l_array_reference_date_4
103588       , l_array_event_created_by
103589       , l_array_budgetary_control_flag
103590       , l_array_extract_line_num 
103591       , l_array_source_18
103592       , l_array_source_19
103593       , l_array_source_19_meaning
103594       , l_array_source_29
103595       , l_array_source_35
103596       , l_array_source_48
103597       , l_array_source_52
103598       , l_array_source_54
103599       , l_array_source_60
103600       , l_array_source_61
103601       , l_array_source_62
103602       , l_array_source_63
103603       , l_array_source_64
103604       , l_array_source_64_meaning
103605       , l_array_source_69
103606       , l_array_source_70
103607       , l_array_source_73
103608       , l_array_source_74
103609       , l_array_source_77
103610       , l_array_source_78
103611       , l_array_source_79
103612       , l_array_source_79_meaning
103613       , l_array_source_82
103614       , l_array_source_84
103615       , l_array_source_85
103616       , l_array_source_86
103617       , l_array_source_87
103618       , l_array_source_88
103619       , l_array_source_89
103620       , l_array_source_90
103621       , l_array_source_92
103622       , l_array_source_93
103623       , l_array_source_94
103627       , l_array_source_98
103624       , l_array_source_95
103625       , l_array_source_96
103626       , l_array_source_97
103628       , l_array_source_99
103629       , l_array_source_100
103630       , l_array_source_101
103631       , l_array_source_102
103632       , l_array_source_103
103633       , l_array_source_106
103634       , l_array_source_107
103635       , l_array_source_108
103636       , l_array_source_109
103637       , l_array_source_110
103638       , l_array_source_111
103639       , l_array_source_111_meaning
103640       , l_array_source_125
103641       , l_array_source_126
103642       , l_array_source_127
103643       , l_array_source_128
103644       , l_array_source_129
103645       , l_array_source_130
103646       , l_array_source_141
103647       , l_array_source_142
103648       , l_array_source_143
103649       , l_array_source_144
103650       , l_array_source_145
103651       , l_array_source_146
103652       , l_array_source_147
103653       , l_array_source_148
103654       , l_array_source_148_meaning
103655       , l_array_source_149
103656       , l_array_source_150
103657       LIMIT l_rows;
103658 
103659   --
103660   IF (C_LEVEL_EVENT >= g_log_level) THEN
103661             trace
103662                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
103663                ,p_level    => C_LEVEL_EVENT
103664                ,p_module   => l_log_module);
103665   END IF;
103666   --
103667   EXIT WHEN l_array_entity_id.count = 0;
103668 
103669   XLA_AE_LINES_PKG.g_rec_lines := null;
103670 
103671 --
103672 -- Bug 4458708
103673 --
103674 XLA_AE_LINES_PKG.g_LineNumber := 0;
103675 --
103676 --
103677 
103678 FOR Idx IN 1..l_array_event_id.count LOOP
103679    --
103680    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
103681    --
103682    l_event_id := l_array_event_id(idx);  -- 5648433
103683 
103684    --
103685    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
103686    --
103687 
103688    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
103689              (g_array_event(l_event_id).array_value_num('header_index'))
103690          ,'N'
103691          ) <> 'Y'
103692    THEN
103693       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103694          trace
103695             (p_msg      => 'Trancaction revesal option is not Y '
103696             ,p_level    => C_LEVEL_STATEMENT
103697             ,p_module   => l_log_module);
103698       END IF;
103699 
103700 --
103701 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
103702 --
103703 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
103704 --
103705 -- set event info as cache for other routines to refer event attributes
103706 --
103707 
103708 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
103709    l_previous_event_id := l_event_id;
103710 
103711    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
103712       (p_application_id           => p_application_id
103713       ,p_primary_ledger_id        => p_primary_ledger_id
103714       ,p_base_ledger_id           => p_base_ledger_id
103715       ,p_target_ledger_id         => p_target_ledger_id
103716       ,p_entity_id                => l_array_entity_id(Idx)
103717       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
103718       ,p_entity_code              => l_array_entity_code(Idx)
103719       ,p_transaction_num          => l_array_transaction_num(Idx)
103720       ,p_event_id                 => l_array_event_id(Idx)
103721       ,p_event_class_code         => l_array_class_code(Idx)
103722       ,p_event_type_code          => l_array_event_type(Idx)
103723       ,p_event_number             => l_array_event_number(Idx)
103724       ,p_event_date               => l_array_event_date(Idx)
103725       ,p_transaction_date         => l_array_transaction_date(Idx)
103726       ,p_reference_num_1          => l_array_reference_num_1(Idx)
103727       ,p_reference_num_2          => l_array_reference_num_2(Idx)
103728       ,p_reference_num_3          => l_array_reference_num_3(Idx)
103729       ,p_reference_num_4          => l_array_reference_num_4(Idx)
103730       ,p_reference_char_1         => l_array_reference_char_1(Idx)
103731       ,p_reference_char_2         => l_array_reference_char_2(Idx)
103732       ,p_reference_char_3         => l_array_reference_char_3(Idx)
103733       ,p_reference_char_4         => l_array_reference_char_4(Idx)
103734       ,p_reference_date_1         => l_array_reference_date_1(Idx)
103735       ,p_reference_date_2         => l_array_reference_date_2(Idx)
103736       ,p_reference_date_3         => l_array_reference_date_3(Idx)
103737       ,p_reference_date_4         => l_array_reference_date_4(Idx)
103738       ,p_event_created_by         => l_array_event_created_by(Idx)
103739       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
103740        --
103741 END IF;
103742 
103743 
103744 
103745 --
103746 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
103747 
103748 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
103749 
103750 IF l_continue_with_lines THEN
103751    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
103752       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
103753 
103754       xla_accounting_err_pkg.build_message
103755          (p_appli_s_name            => 'XLA'
103756          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
103757          ,p_token_1                 => 'LINE_NUMBER'
103758          ,p_value_1                 => l_array_extract_line_num(Idx)
103759          ,p_token_2                 => 'PRODUCT_NAME'
103760          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
103764 
103761          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
103762          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
103763          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
103765    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
103766       --
103767       -- following sets the accounting attributes needed to reverse
103768       -- accounting for a distributeion
103769       --
103770 
103771       --
103772       -- 5217187
103773       --
103774       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
103775       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
103776                                        g_array_event(l_event_id).array_value_num('header_index'));
103777       --
103778       --
103779 
103780       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
103781       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_52(Idx);
103782       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
103783       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_82(Idx);
103784       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
103785       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_60(Idx);
103786       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_ACCT_CLASS';
103787       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_88(Idx);
103788       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_CCID';
103789       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_89(Idx);
103790       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_AMT';
103791       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_90(Idx);
103792       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_CURR';
103793       l_rec_rev_acct_attrs.array_char_value(8)  := g_array_event(l_event_id).array_value_char('source_91');
103794       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_LEDGER_AMT';
103795       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_92(Idx);
103796       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ACCT_CLASS';
103797       l_rec_rev_acct_attrs.array_char_value(10)  := l_array_source_93(Idx);
103798       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_CCID';
103799       l_rec_rev_acct_attrs.array_num_value(11)  := l_array_source_94(Idx);
103800       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_ENTERED_AMT';
103801       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_95(Idx);
103802       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_CURR';
103803       l_rec_rev_acct_attrs.array_char_value(13)  := g_array_event(l_event_id).array_value_char('source_91');
103804       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_LEDGER_AMT';
103805       l_rec_rev_acct_attrs.array_num_value(14)  := l_array_source_96(Idx);
103806       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_OPTION';
103807       l_rec_rev_acct_attrs.array_char_value(15)  := l_array_source_97(Idx);
103808       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
103809       l_rec_rev_acct_attrs.array_char_value(16)  := g_array_event(l_event_id).array_value_char('source_67');
103810       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
103811       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_106(Idx);
103812       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_TYPE';
103813       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_60(Idx);
103814       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_LINE_REF_ID';
103815       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_69(Idx);
103816       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'TAX_REC_NREC_DIST_REF_ID';
103817       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_77(Idx);
103818       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'TAX_SUMMARY_LINE_REF_ID';
103819       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_70(Idx);
103820       l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'UPG_CR_ENC_TYPE_ID';
103821       l_rec_rev_acct_attrs.array_num_value(22)  := l_array_source_107(Idx);
103822       l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'UPG_DR_ENC_TYPE_ID';
103823       l_rec_rev_acct_attrs.array_num_value(23)  := l_array_source_108(Idx);
103824 
103825 
103826       xla_ae_lines_pkg.SetAcctReversalAttrs
103827          (p_event_id             => l_event_id
103828          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
103829          ,p_calculate_acctd_flag => l_calculate_acctd_flag
103830          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
103831    END IF;
103832 
103833    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
103834        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
103835 
103836 --
103837 AcctLineType_42 (
103838  p_application_id  => p_application_id
103839  ,p_event_id     => l_event_id
103840  ,p_calculate_acctd_flag => l_calculate_acctd_flag
103841  ,p_calculate_g_l_flag => l_calculate_g_l_flag
103842  ,p_actual_flag => l_actual_flag
103843  ,p_balance_type_code => l_balance_type_code
103844  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
103845  
103846  , p_source_29 => l_array_source_29(Idx)
103847  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
103848  , p_source_52 => l_array_source_52(Idx)
103849  , p_source_54 => l_array_source_54(Idx)
103850  , p_source_60 => l_array_source_60(Idx)
103851  , p_source_61 => l_array_source_61(Idx)
103852  , p_source_62 => l_array_source_62(Idx)
103853  , p_source_63 => l_array_source_63(Idx)
103854  , p_source_64 => l_array_source_64(Idx)
103855  , p_source_64_meaning => l_array_source_64_meaning(Idx)
103856  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
103857  , p_source_69 => l_array_source_69(Idx)
103858  , p_source_70 => l_array_source_70(Idx)
103859  , p_source_77 => l_array_source_77(Idx)
103860  , p_source_78 => l_array_source_78(Idx)
103864  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
103861  , p_source_79 => l_array_source_79(Idx)
103862  , p_source_79_meaning => l_array_source_79_meaning(Idx)
103863  , p_source_82 => l_array_source_82(Idx)
103865  , p_source_84 => l_array_source_84(Idx)
103866  , p_source_85 => l_array_source_85(Idx)
103867  , p_source_86 => l_array_source_86(Idx)
103868  , p_source_87 => l_array_source_87(Idx)
103869  , p_source_88 => l_array_source_88(Idx)
103870  , p_source_89 => l_array_source_89(Idx)
103871  , p_source_90 => l_array_source_90(Idx)
103872  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
103873  , p_source_92 => l_array_source_92(Idx)
103874  , p_source_93 => l_array_source_93(Idx)
103875  , p_source_94 => l_array_source_94(Idx)
103876  , p_source_95 => l_array_source_95(Idx)
103877  , p_source_96 => l_array_source_96(Idx)
103878  , p_source_97 => l_array_source_97(Idx)
103879  , p_source_98 => l_array_source_98(Idx)
103880  , p_source_99 => l_array_source_99(Idx)
103881  , p_source_100 => l_array_source_100(Idx)
103882  , p_source_101 => l_array_source_101(Idx)
103883  , p_source_102 => l_array_source_102(Idx)
103884  , p_source_103 => l_array_source_103(Idx)
103885  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
103886  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
103887  , p_source_106 => l_array_source_106(Idx)
103888  , p_source_107 => l_array_source_107(Idx)
103889  , p_source_108 => l_array_source_108(Idx)
103890  );
103891 If(l_balance_type_code = 'A') THEN
103892   l_actual_gain_loss_ref := l_gain_or_loss_ref;
103893 END IF;
103894 
103895 --
103896 
103897 
103898 --
103899 AcctLineType_43 (
103900  p_application_id  => p_application_id
103901  ,p_event_id     => l_event_id
103902  ,p_calculate_acctd_flag => l_calculate_acctd_flag
103903  ,p_calculate_g_l_flag => l_calculate_g_l_flag
103904  ,p_actual_flag => l_actual_flag
103905  ,p_balance_type_code => l_balance_type_code
103906  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
103907  
103908  , p_source_29 => l_array_source_29(Idx)
103909  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
103910  , p_source_52 => l_array_source_52(Idx)
103911  , p_source_54 => l_array_source_54(Idx)
103912  , p_source_60 => l_array_source_60(Idx)
103913  , p_source_61 => l_array_source_61(Idx)
103914  , p_source_62 => l_array_source_62(Idx)
103915  , p_source_63 => l_array_source_63(Idx)
103916  , p_source_64 => l_array_source_64(Idx)
103917  , p_source_64_meaning => l_array_source_64_meaning(Idx)
103918  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
103919  , p_source_69 => l_array_source_69(Idx)
103920  , p_source_70 => l_array_source_70(Idx)
103921  , p_source_77 => l_array_source_77(Idx)
103922  , p_source_78 => l_array_source_78(Idx)
103923  , p_source_79 => l_array_source_79(Idx)
103924  , p_source_79_meaning => l_array_source_79_meaning(Idx)
103925  , p_source_82 => l_array_source_82(Idx)
103926  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
103927  , p_source_84 => l_array_source_84(Idx)
103928  , p_source_85 => l_array_source_85(Idx)
103929  , p_source_86 => l_array_source_86(Idx)
103930  , p_source_87 => l_array_source_87(Idx)
103931  , p_source_88 => l_array_source_88(Idx)
103932  , p_source_89 => l_array_source_89(Idx)
103933  , p_source_90 => l_array_source_90(Idx)
103934  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
103935  , p_source_92 => l_array_source_92(Idx)
103936  , p_source_93 => l_array_source_93(Idx)
103937  , p_source_94 => l_array_source_94(Idx)
103938  , p_source_95 => l_array_source_95(Idx)
103939  , p_source_96 => l_array_source_96(Idx)
103940  , p_source_97 => l_array_source_97(Idx)
103941  , p_source_98 => l_array_source_98(Idx)
103942  , p_source_101 => l_array_source_101(Idx)
103943  , p_source_102 => l_array_source_102(Idx)
103944  , p_source_103 => l_array_source_103(Idx)
103945  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
103946  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
103947  , p_source_106 => l_array_source_106(Idx)
103948  , p_source_107 => l_array_source_107(Idx)
103949  , p_source_108 => l_array_source_108(Idx)
103950  , p_source_109 => l_array_source_109(Idx)
103951  , p_source_110 => l_array_source_110(Idx)
103952  );
103953 If(l_balance_type_code = 'A') THEN
103954   l_actual_gain_loss_ref := l_gain_or_loss_ref;
103955 END IF;
103956 
103957 --
103958 
103959 
103960 --
103961 AcctLineType_46 (
103962  p_application_id  => p_application_id
103963  ,p_event_id     => l_event_id
103964  ,p_calculate_acctd_flag => l_calculate_acctd_flag
103965  ,p_calculate_g_l_flag => l_calculate_g_l_flag
103966  ,p_actual_flag => l_actual_flag
103967  ,p_balance_type_code => l_balance_type_code
103968  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
103969  
103970  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
103971  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
103972  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
103973  , p_source_18 => l_array_source_18(Idx)
103974  , p_source_19 => l_array_source_19(Idx)
103975  , p_source_19_meaning => l_array_source_19_meaning(Idx)
103976  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
103977  , p_source_29 => l_array_source_29(Idx)
103978  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
103979  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
103980  , p_source_52 => l_array_source_52(Idx)
103981  , p_source_54 => l_array_source_54(Idx)
103982  , p_source_60 => l_array_source_60(Idx)
103983  , p_source_64 => l_array_source_64(Idx)
103984  , p_source_64_meaning => l_array_source_64_meaning(Idx)
103985  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
103986  , p_source_69 => l_array_source_69(Idx)
103987  , p_source_70 => l_array_source_70(Idx)
103991  , p_source_79_meaning => l_array_source_79_meaning(Idx)
103988  , p_source_77 => l_array_source_77(Idx)
103989  , p_source_78 => l_array_source_78(Idx)
103990  , p_source_79 => l_array_source_79(Idx)
103992  , p_source_82 => l_array_source_82(Idx)
103993  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
103994  , p_source_84 => l_array_source_84(Idx)
103995  , p_source_85 => l_array_source_85(Idx)
103996  , p_source_86 => l_array_source_86(Idx)
103997  , p_source_87 => l_array_source_87(Idx)
103998  , p_source_88 => l_array_source_88(Idx)
103999  , p_source_89 => l_array_source_89(Idx)
104000  , p_source_90 => l_array_source_90(Idx)
104001  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104002  , p_source_92 => l_array_source_92(Idx)
104003  , p_source_93 => l_array_source_93(Idx)
104004  , p_source_94 => l_array_source_94(Idx)
104005  , p_source_95 => l_array_source_95(Idx)
104006  , p_source_96 => l_array_source_96(Idx)
104007  , p_source_97 => l_array_source_97(Idx)
104008  , p_source_100 => l_array_source_100(Idx)
104009  , p_source_101 => l_array_source_101(Idx)
104010  , p_source_102 => l_array_source_102(Idx)
104011  , p_source_103 => l_array_source_103(Idx)
104012  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104013  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104014  , p_source_106 => l_array_source_106(Idx)
104015  , p_source_107 => l_array_source_107(Idx)
104016  , p_source_108 => l_array_source_108(Idx)
104017  );
104018 If(l_balance_type_code = 'A') THEN
104019   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104020 END IF;
104021 
104022 --
104023 
104024 
104025 --
104026 AcctLineType_51 (
104027  p_application_id  => p_application_id
104028  ,p_event_id     => l_event_id
104029  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104030  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104031  ,p_actual_flag => l_actual_flag
104032  ,p_balance_type_code => l_balance_type_code
104033  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104034  
104035  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
104036  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
104037  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
104038  , p_source_18 => l_array_source_18(Idx)
104039  , p_source_19 => l_array_source_19(Idx)
104040  , p_source_19_meaning => l_array_source_19_meaning(Idx)
104041  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
104042  , p_source_29 => l_array_source_29(Idx)
104043  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
104044  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
104045  , p_source_52 => l_array_source_52(Idx)
104046  , p_source_54 => l_array_source_54(Idx)
104047  , p_source_60 => l_array_source_60(Idx)
104048  , p_source_64 => l_array_source_64(Idx)
104049  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104050  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104051  , p_source_69 => l_array_source_69(Idx)
104052  , p_source_70 => l_array_source_70(Idx)
104053  , p_source_77 => l_array_source_77(Idx)
104054  , p_source_78 => l_array_source_78(Idx)
104055  , p_source_79 => l_array_source_79(Idx)
104056  , p_source_79_meaning => l_array_source_79_meaning(Idx)
104057  , p_source_82 => l_array_source_82(Idx)
104058  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104059  , p_source_84 => l_array_source_84(Idx)
104060  , p_source_85 => l_array_source_85(Idx)
104061  , p_source_86 => l_array_source_86(Idx)
104062  , p_source_87 => l_array_source_87(Idx)
104063  , p_source_88 => l_array_source_88(Idx)
104064  , p_source_89 => l_array_source_89(Idx)
104065  , p_source_90 => l_array_source_90(Idx)
104066  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104067  , p_source_92 => l_array_source_92(Idx)
104068  , p_source_93 => l_array_source_93(Idx)
104069  , p_source_94 => l_array_source_94(Idx)
104070  , p_source_95 => l_array_source_95(Idx)
104071  , p_source_96 => l_array_source_96(Idx)
104072  , p_source_97 => l_array_source_97(Idx)
104073  , p_source_100 => l_array_source_100(Idx)
104074  , p_source_101 => l_array_source_101(Idx)
104075  , p_source_102 => l_array_source_102(Idx)
104076  , p_source_103 => l_array_source_103(Idx)
104077  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104078  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104079  , p_source_106 => l_array_source_106(Idx)
104080  , p_source_107 => l_array_source_107(Idx)
104081  , p_source_108 => l_array_source_108(Idx)
104082  , p_source_111 => l_array_source_111(Idx)
104083  , p_source_111_meaning => l_array_source_111_meaning(Idx)
104084  );
104085 If(l_balance_type_code = 'A') THEN
104086   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104087 END IF;
104088 
104089 --
104090 
104091 
104092 --
104093 AcctLineType_81 (
104094  p_application_id  => p_application_id
104095  ,p_event_id     => l_event_id
104096  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104097  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104098  ,p_actual_flag => l_actual_flag
104099  ,p_balance_type_code => l_balance_type_code
104100  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104101  
104102  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
104103  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
104104  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
104105  , p_source_18 => l_array_source_18(Idx)
104106  , p_source_19 => l_array_source_19(Idx)
104107  , p_source_19_meaning => l_array_source_19_meaning(Idx)
104108  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
104109  , p_source_29 => l_array_source_29(Idx)
104110  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
104114  , p_source_54 => l_array_source_54(Idx)
104111  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
104112  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104113  , p_source_52 => l_array_source_52(Idx)
104115  , p_source_60 => l_array_source_60(Idx)
104116  , p_source_64 => l_array_source_64(Idx)
104117  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104118  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104119  , p_source_69 => l_array_source_69(Idx)
104120  , p_source_70 => l_array_source_70(Idx)
104121  , p_source_77 => l_array_source_77(Idx)
104122  , p_source_78 => l_array_source_78(Idx)
104123  , p_source_79 => l_array_source_79(Idx)
104124  , p_source_79_meaning => l_array_source_79_meaning(Idx)
104125  , p_source_82 => l_array_source_82(Idx)
104126  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104127  , p_source_84 => l_array_source_84(Idx)
104128  , p_source_85 => l_array_source_85(Idx)
104129  , p_source_86 => l_array_source_86(Idx)
104130  , p_source_87 => l_array_source_87(Idx)
104131  , p_source_88 => l_array_source_88(Idx)
104132  , p_source_89 => l_array_source_89(Idx)
104133  , p_source_90 => l_array_source_90(Idx)
104134  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104135  , p_source_92 => l_array_source_92(Idx)
104136  , p_source_93 => l_array_source_93(Idx)
104137  , p_source_94 => l_array_source_94(Idx)
104138  , p_source_95 => l_array_source_95(Idx)
104139  , p_source_96 => l_array_source_96(Idx)
104140  , p_source_97 => l_array_source_97(Idx)
104141  , p_source_98 => l_array_source_98(Idx)
104142  , p_source_99 => l_array_source_99(Idx)
104143  , p_source_100 => l_array_source_100(Idx)
104144  , p_source_101 => l_array_source_101(Idx)
104145  , p_source_102 => l_array_source_102(Idx)
104146  , p_source_103 => l_array_source_103(Idx)
104147  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104148  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104149  , p_source_106 => l_array_source_106(Idx)
104150  , p_source_107 => l_array_source_107(Idx)
104151  , p_source_108 => l_array_source_108(Idx)
104152  , p_source_111 => l_array_source_111(Idx)
104153  , p_source_111_meaning => l_array_source_111_meaning(Idx)
104154  , p_source_125 => l_array_source_125(Idx)
104155  , p_source_126 => l_array_source_126(Idx)
104156  , p_source_127 => l_array_source_127(Idx)
104157  );
104158 If(l_balance_type_code = 'A') THEN
104159   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104160 END IF;
104161 
104162 --
104163 
104164 
104165 --
104166 AcctLineType_83 (
104167  p_application_id  => p_application_id
104168  ,p_event_id     => l_event_id
104169  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104170  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104171  ,p_actual_flag => l_actual_flag
104172  ,p_balance_type_code => l_balance_type_code
104173  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104174  
104175  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
104176  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
104177  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
104178  , p_source_18 => l_array_source_18(Idx)
104179  , p_source_19 => l_array_source_19(Idx)
104180  , p_source_19_meaning => l_array_source_19_meaning(Idx)
104181  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
104182  , p_source_29 => l_array_source_29(Idx)
104183  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
104184  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
104185  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104186  , p_source_52 => l_array_source_52(Idx)
104187  , p_source_54 => l_array_source_54(Idx)
104188  , p_source_60 => l_array_source_60(Idx)
104189  , p_source_64 => l_array_source_64(Idx)
104190  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104191  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104192  , p_source_69 => l_array_source_69(Idx)
104193  , p_source_70 => l_array_source_70(Idx)
104194  , p_source_77 => l_array_source_77(Idx)
104195  , p_source_78 => l_array_source_78(Idx)
104196  , p_source_79 => l_array_source_79(Idx)
104197  , p_source_79_meaning => l_array_source_79_meaning(Idx)
104198  , p_source_82 => l_array_source_82(Idx)
104199  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104200  , p_source_84 => l_array_source_84(Idx)
104201  , p_source_85 => l_array_source_85(Idx)
104202  , p_source_86 => l_array_source_86(Idx)
104203  , p_source_87 => l_array_source_87(Idx)
104204  , p_source_88 => l_array_source_88(Idx)
104205  , p_source_89 => l_array_source_89(Idx)
104206  , p_source_90 => l_array_source_90(Idx)
104207  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104208  , p_source_92 => l_array_source_92(Idx)
104209  , p_source_93 => l_array_source_93(Idx)
104210  , p_source_94 => l_array_source_94(Idx)
104211  , p_source_95 => l_array_source_95(Idx)
104212  , p_source_96 => l_array_source_96(Idx)
104213  , p_source_97 => l_array_source_97(Idx)
104214  , p_source_98 => l_array_source_98(Idx)
104215  , p_source_101 => l_array_source_101(Idx)
104216  , p_source_102 => l_array_source_102(Idx)
104217  , p_source_103 => l_array_source_103(Idx)
104218  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104219  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104220  , p_source_106 => l_array_source_106(Idx)
104221  , p_source_107 => l_array_source_107(Idx)
104222  , p_source_108 => l_array_source_108(Idx)
104223  , p_source_109 => l_array_source_109(Idx)
104224  , p_source_110 => l_array_source_110(Idx)
104225  , p_source_111 => l_array_source_111(Idx)
104226  , p_source_111_meaning => l_array_source_111_meaning(Idx)
104227  , p_source_128 => l_array_source_128(Idx)
104228  , p_source_129 => l_array_source_129(Idx)
104232   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104229  , p_source_130 => l_array_source_130(Idx)
104230  );
104231 If(l_balance_type_code = 'A') THEN
104233 END IF;
104234 
104235 --
104236 
104237 
104238 --
104239 AcctLineType_85 (
104240  p_application_id  => p_application_id
104241  ,p_event_id     => l_event_id
104242  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104243  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104244  ,p_actual_flag => l_actual_flag
104245  ,p_balance_type_code => l_balance_type_code
104246  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104247  
104248  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
104249  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
104250  , p_source_29 => l_array_source_29(Idx)
104251  , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
104252  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104253  , p_source_52 => l_array_source_52(Idx)
104254  , p_source_54 => l_array_source_54(Idx)
104255  , p_source_60 => l_array_source_60(Idx)
104256  , p_source_64 => l_array_source_64(Idx)
104257  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104258  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104259  , p_source_69 => l_array_source_69(Idx)
104260  , p_source_70 => l_array_source_70(Idx)
104261  , p_source_77 => l_array_source_77(Idx)
104262  , p_source_78 => l_array_source_78(Idx)
104263  , p_source_82 => l_array_source_82(Idx)
104264  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104265  , p_source_84 => l_array_source_84(Idx)
104266  , p_source_85 => l_array_source_85(Idx)
104267  , p_source_86 => l_array_source_86(Idx)
104268  , p_source_87 => l_array_source_87(Idx)
104269  , p_source_88 => l_array_source_88(Idx)
104270  , p_source_89 => l_array_source_89(Idx)
104271  , p_source_90 => l_array_source_90(Idx)
104272  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104273  , p_source_92 => l_array_source_92(Idx)
104274  , p_source_93 => l_array_source_93(Idx)
104275  , p_source_94 => l_array_source_94(Idx)
104276  , p_source_95 => l_array_source_95(Idx)
104277  , p_source_96 => l_array_source_96(Idx)
104278  , p_source_97 => l_array_source_97(Idx)
104279  , p_source_98 => l_array_source_98(Idx)
104280  , p_source_100 => l_array_source_100(Idx)
104281  , p_source_101 => l_array_source_101(Idx)
104282  , p_source_102 => l_array_source_102(Idx)
104283  , p_source_103 => l_array_source_103(Idx)
104284  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104285  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104286  , p_source_106 => l_array_source_106(Idx)
104287  , p_source_107 => l_array_source_107(Idx)
104288  , p_source_108 => l_array_source_108(Idx)
104289  , p_source_131 => g_array_event(l_event_id).array_value_date('source_131')
104290  , p_source_132 => g_array_event(l_event_id).array_value_num('source_132')
104291  , p_source_133 => g_array_event(l_event_id).array_value_char('source_133')
104292  );
104293 If(l_balance_type_code = 'A') THEN
104294   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104295 END IF;
104296 
104297 --
104298 
104299 
104300 --
104301 AcctLineType_86 (
104302  p_application_id  => p_application_id
104303  ,p_event_id     => l_event_id
104304  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104305  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104306  ,p_actual_flag => l_actual_flag
104307  ,p_balance_type_code => l_balance_type_code
104308  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104309  
104310  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
104311  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
104312  , p_source_29 => l_array_source_29(Idx)
104313  , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
104314  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104315  , p_source_52 => l_array_source_52(Idx)
104316  , p_source_54 => l_array_source_54(Idx)
104317  , p_source_60 => l_array_source_60(Idx)
104318  , p_source_64 => l_array_source_64(Idx)
104319  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104320  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104321  , p_source_69 => l_array_source_69(Idx)
104322  , p_source_70 => l_array_source_70(Idx)
104323  , p_source_77 => l_array_source_77(Idx)
104324  , p_source_78 => l_array_source_78(Idx)
104325  , p_source_82 => l_array_source_82(Idx)
104326  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104327  , p_source_84 => l_array_source_84(Idx)
104328  , p_source_85 => l_array_source_85(Idx)
104329  , p_source_86 => l_array_source_86(Idx)
104330  , p_source_87 => l_array_source_87(Idx)
104331  , p_source_88 => l_array_source_88(Idx)
104332  , p_source_89 => l_array_source_89(Idx)
104333  , p_source_90 => l_array_source_90(Idx)
104334  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104335  , p_source_92 => l_array_source_92(Idx)
104336  , p_source_93 => l_array_source_93(Idx)
104337  , p_source_94 => l_array_source_94(Idx)
104338  , p_source_95 => l_array_source_95(Idx)
104339  , p_source_96 => l_array_source_96(Idx)
104340  , p_source_97 => l_array_source_97(Idx)
104341  , p_source_98 => l_array_source_98(Idx)
104342  , p_source_101 => l_array_source_101(Idx)
104343  , p_source_102 => l_array_source_102(Idx)
104344  , p_source_103 => l_array_source_103(Idx)
104345  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104346  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104347  , p_source_106 => l_array_source_106(Idx)
104348  , p_source_107 => l_array_source_107(Idx)
104349  , p_source_108 => l_array_source_108(Idx)
104350  , p_source_110 => l_array_source_110(Idx)
104351  , p_source_131 => g_array_event(l_event_id).array_value_date('source_131')
104352  , p_source_132 => g_array_event(l_event_id).array_value_num('source_132')
104356   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104353  , p_source_133 => g_array_event(l_event_id).array_value_char('source_133')
104354  );
104355 If(l_balance_type_code = 'A') THEN
104357 END IF;
104358 
104359 --
104360 
104361 
104362 --
104363 AcctLineType_90 (
104364  p_application_id  => p_application_id
104365  ,p_event_id     => l_event_id
104366  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104367  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104368  ,p_actual_flag => l_actual_flag
104369  ,p_balance_type_code => l_balance_type_code
104370  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104371  
104372  , p_source_48 => l_array_source_48(Idx)
104373  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104374  , p_source_52 => l_array_source_52(Idx)
104375  , p_source_54 => l_array_source_54(Idx)
104376  , p_source_60 => l_array_source_60(Idx)
104377  , p_source_64 => l_array_source_64(Idx)
104378  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104379  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104380  , p_source_69 => l_array_source_69(Idx)
104381  , p_source_70 => l_array_source_70(Idx)
104382  , p_source_77 => l_array_source_77(Idx)
104383  , p_source_78 => l_array_source_78(Idx)
104384  , p_source_79 => l_array_source_79(Idx)
104385  , p_source_79_meaning => l_array_source_79_meaning(Idx)
104386  , p_source_82 => l_array_source_82(Idx)
104387  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104388  , p_source_84 => l_array_source_84(Idx)
104389  , p_source_85 => l_array_source_85(Idx)
104390  , p_source_86 => l_array_source_86(Idx)
104391  , p_source_87 => l_array_source_87(Idx)
104392  , p_source_88 => l_array_source_88(Idx)
104393  , p_source_89 => l_array_source_89(Idx)
104394  , p_source_90 => l_array_source_90(Idx)
104395  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104396  , p_source_92 => l_array_source_92(Idx)
104397  , p_source_93 => l_array_source_93(Idx)
104398  , p_source_94 => l_array_source_94(Idx)
104399  , p_source_95 => l_array_source_95(Idx)
104400  , p_source_96 => l_array_source_96(Idx)
104401  , p_source_97 => l_array_source_97(Idx)
104402  , p_source_98 => l_array_source_98(Idx)
104403  , p_source_99 => l_array_source_99(Idx)
104404  , p_source_100 => l_array_source_100(Idx)
104405  , p_source_101 => l_array_source_101(Idx)
104406  , p_source_102 => l_array_source_102(Idx)
104407  , p_source_103 => l_array_source_103(Idx)
104408  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104409  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104410  , p_source_106 => l_array_source_106(Idx)
104411  , p_source_107 => l_array_source_107(Idx)
104412  , p_source_108 => l_array_source_108(Idx)
104413  , p_source_125 => l_array_source_125(Idx)
104414  , p_source_126 => l_array_source_126(Idx)
104415  , p_source_127 => l_array_source_127(Idx)
104416  );
104417 If(l_balance_type_code = 'A') THEN
104418   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104419 END IF;
104420 
104421 --
104422 
104423 
104424 --
104425 AcctLineType_91 (
104426  p_application_id  => p_application_id
104427  ,p_event_id     => l_event_id
104428  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104429  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104430  ,p_actual_flag => l_actual_flag
104431  ,p_balance_type_code => l_balance_type_code
104432  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104433  
104434  , p_source_48 => l_array_source_48(Idx)
104435  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104436  , p_source_52 => l_array_source_52(Idx)
104437  , p_source_54 => l_array_source_54(Idx)
104438  , p_source_60 => l_array_source_60(Idx)
104439  , p_source_64 => l_array_source_64(Idx)
104440  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104441  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104442  , p_source_69 => l_array_source_69(Idx)
104443  , p_source_70 => l_array_source_70(Idx)
104444  , p_source_77 => l_array_source_77(Idx)
104445  , p_source_78 => l_array_source_78(Idx)
104446  , p_source_79 => l_array_source_79(Idx)
104447  , p_source_79_meaning => l_array_source_79_meaning(Idx)
104448  , p_source_82 => l_array_source_82(Idx)
104449  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104450  , p_source_84 => l_array_source_84(Idx)
104451  , p_source_85 => l_array_source_85(Idx)
104452  , p_source_86 => l_array_source_86(Idx)
104453  , p_source_87 => l_array_source_87(Idx)
104454  , p_source_88 => l_array_source_88(Idx)
104455  , p_source_89 => l_array_source_89(Idx)
104456  , p_source_90 => l_array_source_90(Idx)
104457  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104458  , p_source_92 => l_array_source_92(Idx)
104459  , p_source_93 => l_array_source_93(Idx)
104460  , p_source_94 => l_array_source_94(Idx)
104461  , p_source_95 => l_array_source_95(Idx)
104462  , p_source_96 => l_array_source_96(Idx)
104463  , p_source_97 => l_array_source_97(Idx)
104464  , p_source_98 => l_array_source_98(Idx)
104465  , p_source_101 => l_array_source_101(Idx)
104466  , p_source_102 => l_array_source_102(Idx)
104467  , p_source_103 => l_array_source_103(Idx)
104468  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104469  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104470  , p_source_106 => l_array_source_106(Idx)
104471  , p_source_107 => l_array_source_107(Idx)
104472  , p_source_108 => l_array_source_108(Idx)
104473  , p_source_109 => l_array_source_109(Idx)
104474  , p_source_110 => l_array_source_110(Idx)
104475  , p_source_128 => l_array_source_128(Idx)
104476  , p_source_129 => l_array_source_129(Idx)
104477  , p_source_130 => l_array_source_130(Idx)
104478  );
104479 If(l_balance_type_code = 'A') THEN
104480   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104481 END IF;
104482 
104483 --
104484 
104485 
104486 --
104490  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104487 AcctLineType_105 (
104488  p_application_id  => p_application_id
104489  ,p_event_id     => l_event_id
104491  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104492  ,p_actual_flag => l_actual_flag
104493  ,p_balance_type_code => l_balance_type_code
104494  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104495  
104496  , p_source_48 => l_array_source_48(Idx)
104497  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104498  , p_source_52 => l_array_source_52(Idx)
104499  , p_source_54 => l_array_source_54(Idx)
104500  , p_source_60 => l_array_source_60(Idx)
104501  , p_source_64 => l_array_source_64(Idx)
104502  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104503  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104504  , p_source_69 => l_array_source_69(Idx)
104505  , p_source_70 => l_array_source_70(Idx)
104506  , p_source_77 => l_array_source_77(Idx)
104507  , p_source_78 => l_array_source_78(Idx)
104508  , p_source_79 => l_array_source_79(Idx)
104509  , p_source_79_meaning => l_array_source_79_meaning(Idx)
104510  , p_source_82 => l_array_source_82(Idx)
104511  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104512  , p_source_84 => l_array_source_84(Idx)
104513  , p_source_85 => l_array_source_85(Idx)
104514  , p_source_86 => l_array_source_86(Idx)
104515  , p_source_87 => l_array_source_87(Idx)
104516  , p_source_88 => l_array_source_88(Idx)
104517  , p_source_89 => l_array_source_89(Idx)
104518  , p_source_90 => l_array_source_90(Idx)
104519  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104520  , p_source_92 => l_array_source_92(Idx)
104521  , p_source_93 => l_array_source_93(Idx)
104522  , p_source_94 => l_array_source_94(Idx)
104523  , p_source_95 => l_array_source_95(Idx)
104524  , p_source_96 => l_array_source_96(Idx)
104525  , p_source_97 => l_array_source_97(Idx)
104526  , p_source_98 => l_array_source_98(Idx)
104527  , p_source_99 => l_array_source_99(Idx)
104528  , p_source_100 => l_array_source_100(Idx)
104529  , p_source_101 => l_array_source_101(Idx)
104530  , p_source_102 => l_array_source_102(Idx)
104531  , p_source_103 => l_array_source_103(Idx)
104532  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104533  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104534  , p_source_106 => l_array_source_106(Idx)
104535  , p_source_107 => l_array_source_107(Idx)
104536  , p_source_108 => l_array_source_108(Idx)
104537  , p_source_111 => l_array_source_111(Idx)
104538  , p_source_111_meaning => l_array_source_111_meaning(Idx)
104539  , p_source_125 => l_array_source_125(Idx)
104540  , p_source_126 => l_array_source_126(Idx)
104541  , p_source_127 => l_array_source_127(Idx)
104542  );
104543 If(l_balance_type_code = 'A') THEN
104544   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104545 END IF;
104546 
104547 --
104548 
104549 
104550 --
104551 AcctLineType_106 (
104552  p_application_id  => p_application_id
104553  ,p_event_id     => l_event_id
104554  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104555  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104556  ,p_actual_flag => l_actual_flag
104557  ,p_balance_type_code => l_balance_type_code
104558  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104559  
104560  , p_source_48 => l_array_source_48(Idx)
104561  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104562  , p_source_52 => l_array_source_52(Idx)
104563  , p_source_54 => l_array_source_54(Idx)
104564  , p_source_60 => l_array_source_60(Idx)
104565  , p_source_64 => l_array_source_64(Idx)
104566  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104567  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104568  , p_source_69 => l_array_source_69(Idx)
104569  , p_source_70 => l_array_source_70(Idx)
104570  , p_source_77 => l_array_source_77(Idx)
104571  , p_source_78 => l_array_source_78(Idx)
104572  , p_source_79 => l_array_source_79(Idx)
104573  , p_source_79_meaning => l_array_source_79_meaning(Idx)
104574  , p_source_82 => l_array_source_82(Idx)
104575  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104576  , p_source_84 => l_array_source_84(Idx)
104577  , p_source_85 => l_array_source_85(Idx)
104578  , p_source_86 => l_array_source_86(Idx)
104579  , p_source_87 => l_array_source_87(Idx)
104580  , p_source_88 => l_array_source_88(Idx)
104581  , p_source_89 => l_array_source_89(Idx)
104582  , p_source_90 => l_array_source_90(Idx)
104583  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104584  , p_source_92 => l_array_source_92(Idx)
104585  , p_source_93 => l_array_source_93(Idx)
104586  , p_source_94 => l_array_source_94(Idx)
104587  , p_source_95 => l_array_source_95(Idx)
104588  , p_source_96 => l_array_source_96(Idx)
104589  , p_source_97 => l_array_source_97(Idx)
104590  , p_source_98 => l_array_source_98(Idx)
104591  , p_source_101 => l_array_source_101(Idx)
104592  , p_source_102 => l_array_source_102(Idx)
104593  , p_source_103 => l_array_source_103(Idx)
104594  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104595  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104596  , p_source_106 => l_array_source_106(Idx)
104597  , p_source_107 => l_array_source_107(Idx)
104598  , p_source_108 => l_array_source_108(Idx)
104599  , p_source_109 => l_array_source_109(Idx)
104600  , p_source_110 => l_array_source_110(Idx)
104601  , p_source_111 => l_array_source_111(Idx)
104602  , p_source_111_meaning => l_array_source_111_meaning(Idx)
104603  , p_source_125 => l_array_source_125(Idx)
104604  , p_source_129 => l_array_source_129(Idx)
104605  , p_source_130 => l_array_source_130(Idx)
104606  );
104607 If(l_balance_type_code = 'A') THEN
104608   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104609 END IF;
104610 
104611 --
104612 
104613 
104614 --
104615 AcctLineType_110 (
104616  p_application_id  => p_application_id
104620  ,p_actual_flag => l_actual_flag
104617  ,p_event_id     => l_event_id
104618  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104619  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104621  ,p_balance_type_code => l_balance_type_code
104622  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104623  
104624  , p_source_48 => l_array_source_48(Idx)
104625  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104626  , p_source_52 => l_array_source_52(Idx)
104627  , p_source_54 => l_array_source_54(Idx)
104628  , p_source_60 => l_array_source_60(Idx)
104629  , p_source_64 => l_array_source_64(Idx)
104630  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104631  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104632  , p_source_69 => l_array_source_69(Idx)
104633  , p_source_70 => l_array_source_70(Idx)
104634  , p_source_77 => l_array_source_77(Idx)
104635  , p_source_78 => l_array_source_78(Idx)
104636  , p_source_79 => l_array_source_79(Idx)
104637  , p_source_79_meaning => l_array_source_79_meaning(Idx)
104638  , p_source_82 => l_array_source_82(Idx)
104639  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104640  , p_source_84 => l_array_source_84(Idx)
104641  , p_source_85 => l_array_source_85(Idx)
104642  , p_source_86 => l_array_source_86(Idx)
104643  , p_source_87 => l_array_source_87(Idx)
104644  , p_source_88 => l_array_source_88(Idx)
104645  , p_source_89 => l_array_source_89(Idx)
104646  , p_source_90 => l_array_source_90(Idx)
104647  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104648  , p_source_92 => l_array_source_92(Idx)
104649  , p_source_93 => l_array_source_93(Idx)
104650  , p_source_94 => l_array_source_94(Idx)
104651  , p_source_95 => l_array_source_95(Idx)
104652  , p_source_96 => l_array_source_96(Idx)
104653  , p_source_97 => l_array_source_97(Idx)
104654  , p_source_98 => l_array_source_98(Idx)
104655  , p_source_99 => l_array_source_99(Idx)
104656  , p_source_100 => l_array_source_100(Idx)
104657  , p_source_101 => l_array_source_101(Idx)
104658  , p_source_102 => l_array_source_102(Idx)
104659  , p_source_103 => l_array_source_103(Idx)
104660  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104661  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104662  , p_source_106 => l_array_source_106(Idx)
104663  , p_source_107 => l_array_source_107(Idx)
104664  , p_source_108 => l_array_source_108(Idx)
104665  , p_source_111 => l_array_source_111(Idx)
104666  , p_source_111_meaning => l_array_source_111_meaning(Idx)
104667  , p_source_125 => l_array_source_125(Idx)
104668  , p_source_126 => l_array_source_126(Idx)
104669  , p_source_127 => l_array_source_127(Idx)
104670  );
104671 If(l_balance_type_code = 'A') THEN
104672   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104673 END IF;
104674 
104675 --
104676 
104677 
104678 --
104679 AcctLineType_111 (
104680  p_application_id  => p_application_id
104681  ,p_event_id     => l_event_id
104682  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104683  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104684  ,p_actual_flag => l_actual_flag
104685  ,p_balance_type_code => l_balance_type_code
104686  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104687  
104688  , p_source_48 => l_array_source_48(Idx)
104689  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104690  , p_source_52 => l_array_source_52(Idx)
104691  , p_source_54 => l_array_source_54(Idx)
104692  , p_source_60 => l_array_source_60(Idx)
104693  , p_source_64 => l_array_source_64(Idx)
104694  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104695  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104696  , p_source_69 => l_array_source_69(Idx)
104697  , p_source_70 => l_array_source_70(Idx)
104698  , p_source_77 => l_array_source_77(Idx)
104699  , p_source_78 => l_array_source_78(Idx)
104700  , p_source_79 => l_array_source_79(Idx)
104701  , p_source_79_meaning => l_array_source_79_meaning(Idx)
104702  , p_source_82 => l_array_source_82(Idx)
104703  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104704  , p_source_84 => l_array_source_84(Idx)
104705  , p_source_85 => l_array_source_85(Idx)
104706  , p_source_86 => l_array_source_86(Idx)
104707  , p_source_87 => l_array_source_87(Idx)
104708  , p_source_88 => l_array_source_88(Idx)
104709  , p_source_89 => l_array_source_89(Idx)
104710  , p_source_90 => l_array_source_90(Idx)
104711  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104712  , p_source_92 => l_array_source_92(Idx)
104713  , p_source_93 => l_array_source_93(Idx)
104714  , p_source_94 => l_array_source_94(Idx)
104715  , p_source_95 => l_array_source_95(Idx)
104716  , p_source_96 => l_array_source_96(Idx)
104717  , p_source_97 => l_array_source_97(Idx)
104718  , p_source_98 => l_array_source_98(Idx)
104719  , p_source_101 => l_array_source_101(Idx)
104720  , p_source_102 => l_array_source_102(Idx)
104721  , p_source_103 => l_array_source_103(Idx)
104722  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104723  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104724  , p_source_106 => l_array_source_106(Idx)
104725  , p_source_107 => l_array_source_107(Idx)
104726  , p_source_108 => l_array_source_108(Idx)
104727  , p_source_109 => l_array_source_109(Idx)
104728  , p_source_110 => l_array_source_110(Idx)
104729  , p_source_111 => l_array_source_111(Idx)
104730  , p_source_111_meaning => l_array_source_111_meaning(Idx)
104731  , p_source_128 => l_array_source_128(Idx)
104732  , p_source_129 => l_array_source_129(Idx)
104733  , p_source_130 => l_array_source_130(Idx)
104734  );
104735 If(l_balance_type_code = 'A') THEN
104736   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104737 END IF;
104738 
104739 --
104740 
104741 
104742 --
104743 AcctLineType_118 (
104744  p_application_id  => p_application_id
104745  ,p_event_id     => l_event_id
104749  ,p_balance_type_code => l_balance_type_code
104746  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104747  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104748  ,p_actual_flag => l_actual_flag
104750  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104751  
104752  , p_source_48 => l_array_source_48(Idx)
104753  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104754  , p_source_52 => l_array_source_52(Idx)
104755  , p_source_54 => l_array_source_54(Idx)
104756  , p_source_60 => l_array_source_60(Idx)
104757  , p_source_64 => l_array_source_64(Idx)
104758  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104759  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104760  , p_source_69 => l_array_source_69(Idx)
104761  , p_source_70 => l_array_source_70(Idx)
104762  , p_source_77 => l_array_source_77(Idx)
104763  , p_source_78 => l_array_source_78(Idx)
104764  , p_source_79 => l_array_source_79(Idx)
104765  , p_source_79_meaning => l_array_source_79_meaning(Idx)
104766  , p_source_82 => l_array_source_82(Idx)
104767  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104768  , p_source_84 => l_array_source_84(Idx)
104769  , p_source_85 => l_array_source_85(Idx)
104770  , p_source_86 => l_array_source_86(Idx)
104771  , p_source_87 => l_array_source_87(Idx)
104772  , p_source_88 => l_array_source_88(Idx)
104773  , p_source_89 => l_array_source_89(Idx)
104774  , p_source_90 => l_array_source_90(Idx)
104775  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104776  , p_source_92 => l_array_source_92(Idx)
104777  , p_source_93 => l_array_source_93(Idx)
104778  , p_source_94 => l_array_source_94(Idx)
104779  , p_source_95 => l_array_source_95(Idx)
104780  , p_source_96 => l_array_source_96(Idx)
104781  , p_source_97 => l_array_source_97(Idx)
104782  , p_source_98 => l_array_source_98(Idx)
104783  , p_source_99 => l_array_source_99(Idx)
104784  , p_source_100 => l_array_source_100(Idx)
104785  , p_source_101 => l_array_source_101(Idx)
104786  , p_source_102 => l_array_source_102(Idx)
104787  , p_source_103 => l_array_source_103(Idx)
104788  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104789  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104790  , p_source_106 => l_array_source_106(Idx)
104791  , p_source_107 => l_array_source_107(Idx)
104792  , p_source_108 => l_array_source_108(Idx)
104793  , p_source_125 => l_array_source_125(Idx)
104794  , p_source_126 => l_array_source_126(Idx)
104795  , p_source_127 => l_array_source_127(Idx)
104796  );
104797 If(l_balance_type_code = 'A') THEN
104798   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104799 END IF;
104800 
104801 --
104802 
104803 
104804 --
104805 AcctLineType_119 (
104806  p_application_id  => p_application_id
104807  ,p_event_id     => l_event_id
104808  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104809  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104810  ,p_actual_flag => l_actual_flag
104811  ,p_balance_type_code => l_balance_type_code
104812  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104813  
104814  , p_source_48 => l_array_source_48(Idx)
104815  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104816  , p_source_52 => l_array_source_52(Idx)
104817  , p_source_54 => l_array_source_54(Idx)
104818  , p_source_60 => l_array_source_60(Idx)
104819  , p_source_64 => l_array_source_64(Idx)
104820  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104821  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104822  , p_source_69 => l_array_source_69(Idx)
104823  , p_source_70 => l_array_source_70(Idx)
104824  , p_source_77 => l_array_source_77(Idx)
104825  , p_source_78 => l_array_source_78(Idx)
104826  , p_source_79 => l_array_source_79(Idx)
104827  , p_source_79_meaning => l_array_source_79_meaning(Idx)
104828  , p_source_82 => l_array_source_82(Idx)
104829  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104830  , p_source_84 => l_array_source_84(Idx)
104831  , p_source_85 => l_array_source_85(Idx)
104832  , p_source_86 => l_array_source_86(Idx)
104833  , p_source_87 => l_array_source_87(Idx)
104834  , p_source_88 => l_array_source_88(Idx)
104835  , p_source_89 => l_array_source_89(Idx)
104836  , p_source_90 => l_array_source_90(Idx)
104837  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104838  , p_source_92 => l_array_source_92(Idx)
104839  , p_source_93 => l_array_source_93(Idx)
104840  , p_source_94 => l_array_source_94(Idx)
104841  , p_source_95 => l_array_source_95(Idx)
104842  , p_source_96 => l_array_source_96(Idx)
104843  , p_source_97 => l_array_source_97(Idx)
104844  , p_source_98 => l_array_source_98(Idx)
104845  , p_source_101 => l_array_source_101(Idx)
104846  , p_source_102 => l_array_source_102(Idx)
104847  , p_source_103 => l_array_source_103(Idx)
104848  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104849  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104850  , p_source_106 => l_array_source_106(Idx)
104851  , p_source_107 => l_array_source_107(Idx)
104852  , p_source_108 => l_array_source_108(Idx)
104853  , p_source_109 => l_array_source_109(Idx)
104854  , p_source_110 => l_array_source_110(Idx)
104855  , p_source_128 => l_array_source_128(Idx)
104856  , p_source_129 => l_array_source_129(Idx)
104857  , p_source_130 => l_array_source_130(Idx)
104858  );
104859 If(l_balance_type_code = 'A') THEN
104860   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104861 END IF;
104862 
104863 --
104864 
104865 
104866 --
104867 AcctLineType_126 (
104868  p_application_id  => p_application_id
104869  ,p_event_id     => l_event_id
104870  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104871  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104872  ,p_actual_flag => l_actual_flag
104873  ,p_balance_type_code => l_balance_type_code
104874  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104875  
104879  , p_source_54 => l_array_source_54(Idx)
104876  , p_source_29 => l_array_source_29(Idx)
104877  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104878  , p_source_52 => l_array_source_52(Idx)
104880  , p_source_60 => l_array_source_60(Idx)
104881  , p_source_61 => l_array_source_61(Idx)
104882  , p_source_62 => l_array_source_62(Idx)
104883  , p_source_63 => l_array_source_63(Idx)
104884  , p_source_64 => l_array_source_64(Idx)
104885  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104886  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104887  , p_source_69 => l_array_source_69(Idx)
104888  , p_source_70 => l_array_source_70(Idx)
104889  , p_source_77 => l_array_source_77(Idx)
104890  , p_source_78 => l_array_source_78(Idx)
104891  , p_source_79 => l_array_source_79(Idx)
104892  , p_source_79_meaning => l_array_source_79_meaning(Idx)
104893  , p_source_82 => l_array_source_82(Idx)
104894  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104895  , p_source_84 => l_array_source_84(Idx)
104896  , p_source_85 => l_array_source_85(Idx)
104897  , p_source_86 => l_array_source_86(Idx)
104898  , p_source_87 => l_array_source_87(Idx)
104899  , p_source_88 => l_array_source_88(Idx)
104900  , p_source_89 => l_array_source_89(Idx)
104901  , p_source_90 => l_array_source_90(Idx)
104902  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104903  , p_source_92 => l_array_source_92(Idx)
104904  , p_source_93 => l_array_source_93(Idx)
104905  , p_source_94 => l_array_source_94(Idx)
104906  , p_source_95 => l_array_source_95(Idx)
104907  , p_source_96 => l_array_source_96(Idx)
104908  , p_source_97 => l_array_source_97(Idx)
104909  , p_source_98 => l_array_source_98(Idx)
104910  , p_source_99 => l_array_source_99(Idx)
104911  , p_source_100 => l_array_source_100(Idx)
104912  , p_source_101 => l_array_source_101(Idx)
104913  , p_source_102 => l_array_source_102(Idx)
104914  , p_source_103 => l_array_source_103(Idx)
104915  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104916  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104917  , p_source_106 => l_array_source_106(Idx)
104918  , p_source_107 => l_array_source_107(Idx)
104919  , p_source_108 => l_array_source_108(Idx)
104920  , p_source_111 => l_array_source_111(Idx)
104921  , p_source_111_meaning => l_array_source_111_meaning(Idx)
104922  );
104923 If(l_balance_type_code = 'A') THEN
104924   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104925 END IF;
104926 
104927 --
104928 
104929 
104930 --
104931 AcctLineType_127 (
104932  p_application_id  => p_application_id
104933  ,p_event_id     => l_event_id
104934  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104935  ,p_calculate_g_l_flag => l_calculate_g_l_flag
104936  ,p_actual_flag => l_actual_flag
104937  ,p_balance_type_code => l_balance_type_code
104938  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104939  
104940  , p_source_29 => l_array_source_29(Idx)
104941  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104942  , p_source_52 => l_array_source_52(Idx)
104943  , p_source_54 => l_array_source_54(Idx)
104944  , p_source_60 => l_array_source_60(Idx)
104945  , p_source_61 => l_array_source_61(Idx)
104946  , p_source_62 => l_array_source_62(Idx)
104947  , p_source_63 => l_array_source_63(Idx)
104948  , p_source_64 => l_array_source_64(Idx)
104949  , p_source_64_meaning => l_array_source_64_meaning(Idx)
104950  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104951  , p_source_69 => l_array_source_69(Idx)
104952  , p_source_70 => l_array_source_70(Idx)
104953  , p_source_77 => l_array_source_77(Idx)
104954  , p_source_78 => l_array_source_78(Idx)
104955  , p_source_79 => l_array_source_79(Idx)
104956  , p_source_79_meaning => l_array_source_79_meaning(Idx)
104957  , p_source_82 => l_array_source_82(Idx)
104958  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104959  , p_source_84 => l_array_source_84(Idx)
104960  , p_source_85 => l_array_source_85(Idx)
104961  , p_source_86 => l_array_source_86(Idx)
104962  , p_source_87 => l_array_source_87(Idx)
104963  , p_source_88 => l_array_source_88(Idx)
104964  , p_source_89 => l_array_source_89(Idx)
104965  , p_source_90 => l_array_source_90(Idx)
104966  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104967  , p_source_92 => l_array_source_92(Idx)
104968  , p_source_93 => l_array_source_93(Idx)
104969  , p_source_94 => l_array_source_94(Idx)
104970  , p_source_95 => l_array_source_95(Idx)
104971  , p_source_96 => l_array_source_96(Idx)
104972  , p_source_97 => l_array_source_97(Idx)
104973  , p_source_98 => l_array_source_98(Idx)
104974  , p_source_101 => l_array_source_101(Idx)
104975  , p_source_102 => l_array_source_102(Idx)
104976  , p_source_103 => l_array_source_103(Idx)
104977  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104978  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104979  , p_source_106 => l_array_source_106(Idx)
104980  , p_source_107 => l_array_source_107(Idx)
104981  , p_source_108 => l_array_source_108(Idx)
104982  , p_source_109 => l_array_source_109(Idx)
104983  , p_source_110 => l_array_source_110(Idx)
104984  , p_source_111 => l_array_source_111(Idx)
104985  , p_source_111_meaning => l_array_source_111_meaning(Idx)
104986  );
104987 If(l_balance_type_code = 'A') THEN
104988   l_actual_gain_loss_ref := l_gain_or_loss_ref;
104989 END IF;
104990 
104991 --
104992 
104993 
104994 --
104995 AcctLineType_128 (
104996  p_application_id  => p_application_id
104997  ,p_event_id     => l_event_id
104998  ,p_calculate_acctd_flag => l_calculate_acctd_flag
104999  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105000  ,p_actual_flag => l_actual_flag
105001  ,p_balance_type_code => l_balance_type_code
105002  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105003  
105004  , p_source_48 => l_array_source_48(Idx)
105008  , p_source_60 => l_array_source_60(Idx)
105005  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105006  , p_source_52 => l_array_source_52(Idx)
105007  , p_source_54 => l_array_source_54(Idx)
105009  , p_source_64 => l_array_source_64(Idx)
105010  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105011  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105012  , p_source_69 => l_array_source_69(Idx)
105013  , p_source_70 => l_array_source_70(Idx)
105014  , p_source_77 => l_array_source_77(Idx)
105015  , p_source_78 => l_array_source_78(Idx)
105016  , p_source_79 => l_array_source_79(Idx)
105017  , p_source_79_meaning => l_array_source_79_meaning(Idx)
105018  , p_source_82 => l_array_source_82(Idx)
105019  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105020  , p_source_84 => l_array_source_84(Idx)
105021  , p_source_85 => l_array_source_85(Idx)
105022  , p_source_86 => l_array_source_86(Idx)
105023  , p_source_87 => l_array_source_87(Idx)
105024  , p_source_88 => l_array_source_88(Idx)
105025  , p_source_89 => l_array_source_89(Idx)
105026  , p_source_90 => l_array_source_90(Idx)
105027  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105028  , p_source_92 => l_array_source_92(Idx)
105029  , p_source_93 => l_array_source_93(Idx)
105030  , p_source_94 => l_array_source_94(Idx)
105031  , p_source_95 => l_array_source_95(Idx)
105032  , p_source_96 => l_array_source_96(Idx)
105033  , p_source_97 => l_array_source_97(Idx)
105034  , p_source_98 => l_array_source_98(Idx)
105035  , p_source_99 => l_array_source_99(Idx)
105036  , p_source_100 => l_array_source_100(Idx)
105037  , p_source_101 => l_array_source_101(Idx)
105038  , p_source_102 => l_array_source_102(Idx)
105039  , p_source_103 => l_array_source_103(Idx)
105040  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105041  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105042  , p_source_106 => l_array_source_106(Idx)
105043  , p_source_107 => l_array_source_107(Idx)
105044  , p_source_108 => l_array_source_108(Idx)
105045  , p_source_111 => l_array_source_111(Idx)
105046  , p_source_111_meaning => l_array_source_111_meaning(Idx)
105047  , p_source_125 => l_array_source_125(Idx)
105048  , p_source_126 => l_array_source_126(Idx)
105049  , p_source_127 => l_array_source_127(Idx)
105050  );
105051 If(l_balance_type_code = 'A') THEN
105052   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105053 END IF;
105054 
105055 --
105056 
105057 
105058 --
105059 AcctLineType_129 (
105060  p_application_id  => p_application_id
105061  ,p_event_id     => l_event_id
105062  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105063  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105064  ,p_actual_flag => l_actual_flag
105065  ,p_balance_type_code => l_balance_type_code
105066  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105067  
105068  , p_source_48 => l_array_source_48(Idx)
105069  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105070  , p_source_52 => l_array_source_52(Idx)
105071  , p_source_54 => l_array_source_54(Idx)
105072  , p_source_60 => l_array_source_60(Idx)
105073  , p_source_64 => l_array_source_64(Idx)
105074  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105075  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105076  , p_source_69 => l_array_source_69(Idx)
105077  , p_source_70 => l_array_source_70(Idx)
105078  , p_source_77 => l_array_source_77(Idx)
105079  , p_source_78 => l_array_source_78(Idx)
105080  , p_source_79 => l_array_source_79(Idx)
105081  , p_source_79_meaning => l_array_source_79_meaning(Idx)
105082  , p_source_82 => l_array_source_82(Idx)
105083  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105084  , p_source_84 => l_array_source_84(Idx)
105085  , p_source_85 => l_array_source_85(Idx)
105086  , p_source_86 => l_array_source_86(Idx)
105087  , p_source_87 => l_array_source_87(Idx)
105088  , p_source_88 => l_array_source_88(Idx)
105089  , p_source_89 => l_array_source_89(Idx)
105090  , p_source_90 => l_array_source_90(Idx)
105091  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105092  , p_source_92 => l_array_source_92(Idx)
105093  , p_source_93 => l_array_source_93(Idx)
105094  , p_source_94 => l_array_source_94(Idx)
105095  , p_source_95 => l_array_source_95(Idx)
105096  , p_source_96 => l_array_source_96(Idx)
105097  , p_source_97 => l_array_source_97(Idx)
105098  , p_source_98 => l_array_source_98(Idx)
105099  , p_source_101 => l_array_source_101(Idx)
105100  , p_source_102 => l_array_source_102(Idx)
105101  , p_source_103 => l_array_source_103(Idx)
105102  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105103  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105104  , p_source_106 => l_array_source_106(Idx)
105105  , p_source_107 => l_array_source_107(Idx)
105106  , p_source_108 => l_array_source_108(Idx)
105107  , p_source_109 => l_array_source_109(Idx)
105108  , p_source_110 => l_array_source_110(Idx)
105109  , p_source_111 => l_array_source_111(Idx)
105110  , p_source_111_meaning => l_array_source_111_meaning(Idx)
105111  , p_source_128 => l_array_source_128(Idx)
105112  , p_source_129 => l_array_source_129(Idx)
105113  , p_source_130 => l_array_source_130(Idx)
105114  );
105115 If(l_balance_type_code = 'A') THEN
105116   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105117 END IF;
105118 
105119 --
105120 
105121 
105122 --
105123 AcctLineType_134 (
105124  p_application_id  => p_application_id
105125  ,p_event_id     => l_event_id
105126  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105127  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105128  ,p_actual_flag => l_actual_flag
105129  ,p_balance_type_code => l_balance_type_code
105130  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105131  
105132  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105133  , p_source_52 => l_array_source_52(Idx)
105137  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105134  , p_source_54 => l_array_source_54(Idx)
105135  , p_source_60 => l_array_source_60(Idx)
105136  , p_source_64 => l_array_source_64(Idx)
105138  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105139  , p_source_69 => l_array_source_69(Idx)
105140  , p_source_70 => l_array_source_70(Idx)
105141  , p_source_77 => l_array_source_77(Idx)
105142  , p_source_78 => l_array_source_78(Idx)
105143  , p_source_82 => l_array_source_82(Idx)
105144  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105145  , p_source_88 => l_array_source_88(Idx)
105146  , p_source_89 => l_array_source_89(Idx)
105147  , p_source_90 => l_array_source_90(Idx)
105148  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105149  , p_source_92 => l_array_source_92(Idx)
105150  , p_source_93 => l_array_source_93(Idx)
105151  , p_source_94 => l_array_source_94(Idx)
105152  , p_source_95 => l_array_source_95(Idx)
105153  , p_source_96 => l_array_source_96(Idx)
105154  , p_source_97 => l_array_source_97(Idx)
105155  , p_source_98 => l_array_source_98(Idx)
105156  , p_source_100 => l_array_source_100(Idx)
105157  , p_source_101 => l_array_source_101(Idx)
105158  , p_source_102 => l_array_source_102(Idx)
105159  , p_source_103 => l_array_source_103(Idx)
105160  , p_source_106 => l_array_source_106(Idx)
105161  , p_source_107 => l_array_source_107(Idx)
105162  , p_source_108 => l_array_source_108(Idx)
105163  , p_source_141 => l_array_source_141(Idx)
105164  , p_source_142 => l_array_source_142(Idx)
105165  , p_source_143 => l_array_source_143(Idx)
105166  , p_source_144 => l_array_source_144(Idx)
105167  );
105168 If(l_balance_type_code = 'A') THEN
105169   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105170 END IF;
105171 
105172 --
105173 
105174 
105175 --
105176 AcctLineType_135 (
105177  p_application_id  => p_application_id
105178  ,p_event_id     => l_event_id
105179  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105180  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105181  ,p_actual_flag => l_actual_flag
105182  ,p_balance_type_code => l_balance_type_code
105183  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105184  
105185  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105186  , p_source_52 => l_array_source_52(Idx)
105187  , p_source_54 => l_array_source_54(Idx)
105188  , p_source_60 => l_array_source_60(Idx)
105189  , p_source_64 => l_array_source_64(Idx)
105190  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105191  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105192  , p_source_69 => l_array_source_69(Idx)
105193  , p_source_70 => l_array_source_70(Idx)
105194  , p_source_77 => l_array_source_77(Idx)
105195  , p_source_78 => l_array_source_78(Idx)
105196  , p_source_82 => l_array_source_82(Idx)
105197  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105198  , p_source_88 => l_array_source_88(Idx)
105199  , p_source_89 => l_array_source_89(Idx)
105200  , p_source_90 => l_array_source_90(Idx)
105201  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105202  , p_source_92 => l_array_source_92(Idx)
105203  , p_source_93 => l_array_source_93(Idx)
105204  , p_source_94 => l_array_source_94(Idx)
105205  , p_source_95 => l_array_source_95(Idx)
105206  , p_source_96 => l_array_source_96(Idx)
105207  , p_source_97 => l_array_source_97(Idx)
105208  , p_source_98 => l_array_source_98(Idx)
105209  , p_source_101 => l_array_source_101(Idx)
105210  , p_source_102 => l_array_source_102(Idx)
105211  , p_source_103 => l_array_source_103(Idx)
105212  , p_source_106 => l_array_source_106(Idx)
105213  , p_source_107 => l_array_source_107(Idx)
105214  , p_source_108 => l_array_source_108(Idx)
105215  , p_source_110 => l_array_source_110(Idx)
105216  , p_source_144 => l_array_source_144(Idx)
105217  , p_source_145 => l_array_source_145(Idx)
105218  , p_source_146 => l_array_source_146(Idx)
105219  , p_source_147 => l_array_source_147(Idx)
105220  );
105221 If(l_balance_type_code = 'A') THEN
105222   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105223 END IF;
105224 
105225 --
105226 
105227 
105228 --
105229 AcctLineType_136 (
105230  p_application_id  => p_application_id
105231  ,p_event_id     => l_event_id
105232  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105233  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105234  ,p_actual_flag => l_actual_flag
105235  ,p_balance_type_code => l_balance_type_code
105236  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105237  
105238  , p_source_48 => l_array_source_48(Idx)
105239  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105240  , p_source_52 => l_array_source_52(Idx)
105241  , p_source_54 => l_array_source_54(Idx)
105242  , p_source_60 => l_array_source_60(Idx)
105243  , p_source_64 => l_array_source_64(Idx)
105244  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105245  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105246  , p_source_69 => l_array_source_69(Idx)
105247  , p_source_70 => l_array_source_70(Idx)
105248  , p_source_77 => l_array_source_77(Idx)
105249  , p_source_78 => l_array_source_78(Idx)
105250  , p_source_79 => l_array_source_79(Idx)
105251  , p_source_79_meaning => l_array_source_79_meaning(Idx)
105252  , p_source_82 => l_array_source_82(Idx)
105253  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105254  , p_source_84 => l_array_source_84(Idx)
105255  , p_source_85 => l_array_source_85(Idx)
105256  , p_source_86 => l_array_source_86(Idx)
105257  , p_source_87 => l_array_source_87(Idx)
105258  , p_source_88 => l_array_source_88(Idx)
105259  , p_source_89 => l_array_source_89(Idx)
105260  , p_source_90 => l_array_source_90(Idx)
105261  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105262  , p_source_92 => l_array_source_92(Idx)
105263  , p_source_93 => l_array_source_93(Idx)
105264  , p_source_94 => l_array_source_94(Idx)
105268  , p_source_98 => l_array_source_98(Idx)
105265  , p_source_95 => l_array_source_95(Idx)
105266  , p_source_96 => l_array_source_96(Idx)
105267  , p_source_97 => l_array_source_97(Idx)
105269  , p_source_99 => l_array_source_99(Idx)
105270  , p_source_100 => l_array_source_100(Idx)
105271  , p_source_101 => l_array_source_101(Idx)
105272  , p_source_102 => l_array_source_102(Idx)
105273  , p_source_103 => l_array_source_103(Idx)
105274  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105275  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105276  , p_source_106 => l_array_source_106(Idx)
105277  , p_source_107 => l_array_source_107(Idx)
105278  , p_source_108 => l_array_source_108(Idx)
105279  , p_source_125 => l_array_source_125(Idx)
105280  , p_source_126 => l_array_source_126(Idx)
105281  , p_source_127 => l_array_source_127(Idx)
105282  );
105283 If(l_balance_type_code = 'A') THEN
105284   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105285 END IF;
105286 
105287 --
105288 
105289 
105290 --
105291 AcctLineType_137 (
105292  p_application_id  => p_application_id
105293  ,p_event_id     => l_event_id
105294  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105295  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105296  ,p_actual_flag => l_actual_flag
105297  ,p_balance_type_code => l_balance_type_code
105298  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105299  
105300  , p_source_48 => l_array_source_48(Idx)
105301  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105302  , p_source_52 => l_array_source_52(Idx)
105303  , p_source_54 => l_array_source_54(Idx)
105304  , p_source_60 => l_array_source_60(Idx)
105305  , p_source_64 => l_array_source_64(Idx)
105306  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105307  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105308  , p_source_69 => l_array_source_69(Idx)
105309  , p_source_70 => l_array_source_70(Idx)
105310  , p_source_77 => l_array_source_77(Idx)
105311  , p_source_78 => l_array_source_78(Idx)
105312  , p_source_79 => l_array_source_79(Idx)
105313  , p_source_79_meaning => l_array_source_79_meaning(Idx)
105314  , p_source_82 => l_array_source_82(Idx)
105315  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105316  , p_source_84 => l_array_source_84(Idx)
105317  , p_source_85 => l_array_source_85(Idx)
105318  , p_source_86 => l_array_source_86(Idx)
105319  , p_source_87 => l_array_source_87(Idx)
105320  , p_source_88 => l_array_source_88(Idx)
105321  , p_source_89 => l_array_source_89(Idx)
105322  , p_source_90 => l_array_source_90(Idx)
105323  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105324  , p_source_92 => l_array_source_92(Idx)
105325  , p_source_93 => l_array_source_93(Idx)
105326  , p_source_94 => l_array_source_94(Idx)
105327  , p_source_95 => l_array_source_95(Idx)
105328  , p_source_96 => l_array_source_96(Idx)
105329  , p_source_97 => l_array_source_97(Idx)
105330  , p_source_98 => l_array_source_98(Idx)
105331  , p_source_101 => l_array_source_101(Idx)
105332  , p_source_102 => l_array_source_102(Idx)
105333  , p_source_103 => l_array_source_103(Idx)
105334  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105335  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105336  , p_source_106 => l_array_source_106(Idx)
105337  , p_source_107 => l_array_source_107(Idx)
105338  , p_source_108 => l_array_source_108(Idx)
105339  , p_source_109 => l_array_source_109(Idx)
105340  , p_source_110 => l_array_source_110(Idx)
105341  , p_source_128 => l_array_source_128(Idx)
105342  , p_source_129 => l_array_source_129(Idx)
105343  , p_source_130 => l_array_source_130(Idx)
105344  );
105345 If(l_balance_type_code = 'A') THEN
105346   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105347 END IF;
105348 
105349 --
105350 
105351 
105352 --
105353 AcctLineType_143 (
105354  p_application_id  => p_application_id
105355  ,p_event_id     => l_event_id
105356  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105357  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105358  ,p_actual_flag => l_actual_flag
105359  ,p_balance_type_code => l_balance_type_code
105360  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105361  
105362  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
105363  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
105364  , p_source_29 => l_array_source_29(Idx)
105365  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
105366  , p_source_35 => l_array_source_35(Idx)
105367  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105368  , p_source_52 => l_array_source_52(Idx)
105369  , p_source_54 => l_array_source_54(Idx)
105370  , p_source_60 => l_array_source_60(Idx)
105371  , p_source_64 => l_array_source_64(Idx)
105372  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105373  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105374  , p_source_69 => l_array_source_69(Idx)
105375  , p_source_70 => l_array_source_70(Idx)
105376  , p_source_73 => l_array_source_73(Idx)
105377  , p_source_74 => l_array_source_74(Idx)
105378  , p_source_77 => l_array_source_77(Idx)
105379  , p_source_78 => l_array_source_78(Idx)
105380  , p_source_79 => l_array_source_79(Idx)
105381  , p_source_79_meaning => l_array_source_79_meaning(Idx)
105382  , p_source_82 => l_array_source_82(Idx)
105383  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105384  , p_source_88 => l_array_source_88(Idx)
105385  , p_source_89 => l_array_source_89(Idx)
105386  , p_source_90 => l_array_source_90(Idx)
105387  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105388  , p_source_92 => l_array_source_92(Idx)
105389  , p_source_93 => l_array_source_93(Idx)
105390  , p_source_94 => l_array_source_94(Idx)
105391  , p_source_95 => l_array_source_95(Idx)
105392  , p_source_96 => l_array_source_96(Idx)
105396  , p_source_101 => l_array_source_101(Idx)
105393  , p_source_97 => l_array_source_97(Idx)
105394  , p_source_98 => l_array_source_98(Idx)
105395  , p_source_100 => l_array_source_100(Idx)
105397  , p_source_102 => l_array_source_102(Idx)
105398  , p_source_103 => l_array_source_103(Idx)
105399  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105400  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105401  , p_source_106 => l_array_source_106(Idx)
105402  , p_source_107 => l_array_source_107(Idx)
105403  , p_source_108 => l_array_source_108(Idx)
105404  , p_source_131 => g_array_event(l_event_id).array_value_date('source_131')
105405  , p_source_132 => g_array_event(l_event_id).array_value_num('source_132')
105406  , p_source_133 => g_array_event(l_event_id).array_value_char('source_133')
105407  , p_source_148 => l_array_source_148(Idx)
105408  , p_source_148_meaning => l_array_source_148_meaning(Idx)
105409  , p_source_149 => l_array_source_149(Idx)
105410  , p_source_150 => l_array_source_150(Idx)
105411  );
105412 If(l_balance_type_code = 'A') THEN
105413   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105414 END IF;
105415 
105416 --
105417 
105418 
105419 --
105420 AcctLineType_144 (
105421  p_application_id  => p_application_id
105422  ,p_event_id     => l_event_id
105423  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105424  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105425  ,p_actual_flag => l_actual_flag
105426  ,p_balance_type_code => l_balance_type_code
105427  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105428  
105429  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
105430  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
105431  , p_source_29 => l_array_source_29(Idx)
105432  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
105433  , p_source_35 => l_array_source_35(Idx)
105434  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105435  , p_source_52 => l_array_source_52(Idx)
105436  , p_source_54 => l_array_source_54(Idx)
105437  , p_source_60 => l_array_source_60(Idx)
105438  , p_source_64 => l_array_source_64(Idx)
105439  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105440  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105441  , p_source_69 => l_array_source_69(Idx)
105442  , p_source_70 => l_array_source_70(Idx)
105443  , p_source_73 => l_array_source_73(Idx)
105444  , p_source_74 => l_array_source_74(Idx)
105445  , p_source_77 => l_array_source_77(Idx)
105446  , p_source_78 => l_array_source_78(Idx)
105447  , p_source_79 => l_array_source_79(Idx)
105448  , p_source_79_meaning => l_array_source_79_meaning(Idx)
105449  , p_source_82 => l_array_source_82(Idx)
105450  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105451  , p_source_88 => l_array_source_88(Idx)
105452  , p_source_89 => l_array_source_89(Idx)
105453  , p_source_90 => l_array_source_90(Idx)
105454  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105455  , p_source_92 => l_array_source_92(Idx)
105456  , p_source_93 => l_array_source_93(Idx)
105457  , p_source_94 => l_array_source_94(Idx)
105458  , p_source_95 => l_array_source_95(Idx)
105459  , p_source_96 => l_array_source_96(Idx)
105460  , p_source_97 => l_array_source_97(Idx)
105461  , p_source_98 => l_array_source_98(Idx)
105462  , p_source_101 => l_array_source_101(Idx)
105463  , p_source_102 => l_array_source_102(Idx)
105464  , p_source_103 => l_array_source_103(Idx)
105465  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105466  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105467  , p_source_106 => l_array_source_106(Idx)
105468  , p_source_107 => l_array_source_107(Idx)
105469  , p_source_108 => l_array_source_108(Idx)
105470  , p_source_110 => l_array_source_110(Idx)
105471  , p_source_131 => g_array_event(l_event_id).array_value_date('source_131')
105472  , p_source_132 => g_array_event(l_event_id).array_value_num('source_132')
105473  , p_source_133 => g_array_event(l_event_id).array_value_char('source_133')
105474  , p_source_148 => l_array_source_148(Idx)
105475  , p_source_148_meaning => l_array_source_148_meaning(Idx)
105476  , p_source_149 => l_array_source_149(Idx)
105477  , p_source_150 => l_array_source_150(Idx)
105478  );
105479 If(l_balance_type_code = 'A') THEN
105480   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105481 END IF;
105482 
105483 --
105484 
105485 
105486 --
105487 AcctLineType_145 (
105488  p_application_id  => p_application_id
105489  ,p_event_id     => l_event_id
105490  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105491  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105492  ,p_actual_flag => l_actual_flag
105493  ,p_balance_type_code => l_balance_type_code
105494  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105495  
105496  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105497  , p_source_52 => l_array_source_52(Idx)
105498  , p_source_54 => l_array_source_54(Idx)
105499  , p_source_60 => l_array_source_60(Idx)
105500  , p_source_64 => l_array_source_64(Idx)
105501  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105502  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105503  , p_source_69 => l_array_source_69(Idx)
105504  , p_source_70 => l_array_source_70(Idx)
105505  , p_source_73 => l_array_source_73(Idx)
105506  , p_source_74 => l_array_source_74(Idx)
105507  , p_source_77 => l_array_source_77(Idx)
105508  , p_source_78 => l_array_source_78(Idx)
105509  , p_source_79 => l_array_source_79(Idx)
105510  , p_source_79_meaning => l_array_source_79_meaning(Idx)
105511  , p_source_82 => l_array_source_82(Idx)
105512  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105513  , p_source_88 => l_array_source_88(Idx)
105514  , p_source_89 => l_array_source_89(Idx)
105515  , p_source_90 => l_array_source_90(Idx)
105516  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105520  , p_source_95 => l_array_source_95(Idx)
105517  , p_source_92 => l_array_source_92(Idx)
105518  , p_source_93 => l_array_source_93(Idx)
105519  , p_source_94 => l_array_source_94(Idx)
105521  , p_source_96 => l_array_source_96(Idx)
105522  , p_source_97 => l_array_source_97(Idx)
105523  , p_source_98 => l_array_source_98(Idx)
105524  , p_source_100 => l_array_source_100(Idx)
105525  , p_source_101 => l_array_source_101(Idx)
105526  , p_source_102 => l_array_source_102(Idx)
105527  , p_source_103 => l_array_source_103(Idx)
105528  , p_source_106 => l_array_source_106(Idx)
105529  , p_source_107 => l_array_source_107(Idx)
105530  , p_source_108 => l_array_source_108(Idx)
105531  , p_source_148 => l_array_source_148(Idx)
105532  , p_source_148_meaning => l_array_source_148_meaning(Idx)
105533  , p_source_149 => l_array_source_149(Idx)
105534  , p_source_150 => l_array_source_150(Idx)
105535  );
105536 If(l_balance_type_code = 'A') THEN
105537   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105538 END IF;
105539 
105540 --
105541 
105542 
105543 --
105544 AcctLineType_146 (
105545  p_application_id  => p_application_id
105546  ,p_event_id     => l_event_id
105547  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105548  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105549  ,p_actual_flag => l_actual_flag
105550  ,p_balance_type_code => l_balance_type_code
105551  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105552  
105553  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105554  , p_source_52 => l_array_source_52(Idx)
105555  , p_source_54 => l_array_source_54(Idx)
105556  , p_source_60 => l_array_source_60(Idx)
105557  , p_source_64 => l_array_source_64(Idx)
105558  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105559  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105560  , p_source_69 => l_array_source_69(Idx)
105561  , p_source_70 => l_array_source_70(Idx)
105562  , p_source_73 => l_array_source_73(Idx)
105563  , p_source_74 => l_array_source_74(Idx)
105564  , p_source_77 => l_array_source_77(Idx)
105565  , p_source_78 => l_array_source_78(Idx)
105566  , p_source_79 => l_array_source_79(Idx)
105567  , p_source_79_meaning => l_array_source_79_meaning(Idx)
105568  , p_source_82 => l_array_source_82(Idx)
105569  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105570  , p_source_88 => l_array_source_88(Idx)
105571  , p_source_89 => l_array_source_89(Idx)
105572  , p_source_90 => l_array_source_90(Idx)
105573  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105574  , p_source_92 => l_array_source_92(Idx)
105575  , p_source_93 => l_array_source_93(Idx)
105576  , p_source_94 => l_array_source_94(Idx)
105577  , p_source_95 => l_array_source_95(Idx)
105578  , p_source_96 => l_array_source_96(Idx)
105579  , p_source_97 => l_array_source_97(Idx)
105580  , p_source_98 => l_array_source_98(Idx)
105581  , p_source_101 => l_array_source_101(Idx)
105582  , p_source_102 => l_array_source_102(Idx)
105583  , p_source_103 => l_array_source_103(Idx)
105584  , p_source_106 => l_array_source_106(Idx)
105585  , p_source_107 => l_array_source_107(Idx)
105586  , p_source_108 => l_array_source_108(Idx)
105587  , p_source_110 => l_array_source_110(Idx)
105588  , p_source_148 => l_array_source_148(Idx)
105589  , p_source_148_meaning => l_array_source_148_meaning(Idx)
105590  , p_source_149 => l_array_source_149(Idx)
105591  , p_source_150 => l_array_source_150(Idx)
105592  );
105593 If(l_balance_type_code = 'A') THEN
105594   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105595 END IF;
105596 
105597 --
105598 
105599 
105600 --
105601 AcctLineType_158 (
105602  p_application_id  => p_application_id
105603  ,p_event_id     => l_event_id
105604  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105605  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105606  ,p_actual_flag => l_actual_flag
105607  ,p_balance_type_code => l_balance_type_code
105608  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105609  
105610  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
105611  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
105612  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
105613  , p_source_18 => l_array_source_18(Idx)
105614  , p_source_19 => l_array_source_19(Idx)
105615  , p_source_19_meaning => l_array_source_19_meaning(Idx)
105616  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
105617  , p_source_29 => l_array_source_29(Idx)
105618  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
105619  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
105620  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105621  , p_source_52 => l_array_source_52(Idx)
105622  , p_source_54 => l_array_source_54(Idx)
105623  , p_source_60 => l_array_source_60(Idx)
105624  , p_source_64 => l_array_source_64(Idx)
105625  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105626  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105627  , p_source_69 => l_array_source_69(Idx)
105628  , p_source_70 => l_array_source_70(Idx)
105629  , p_source_77 => l_array_source_77(Idx)
105630  , p_source_78 => l_array_source_78(Idx)
105631  , p_source_79 => l_array_source_79(Idx)
105632  , p_source_79_meaning => l_array_source_79_meaning(Idx)
105633  , p_source_82 => l_array_source_82(Idx)
105634  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105635  , p_source_84 => l_array_source_84(Idx)
105636  , p_source_85 => l_array_source_85(Idx)
105637  , p_source_86 => l_array_source_86(Idx)
105638  , p_source_87 => l_array_source_87(Idx)
105639  , p_source_88 => l_array_source_88(Idx)
105640  , p_source_89 => l_array_source_89(Idx)
105641  , p_source_90 => l_array_source_90(Idx)
105642  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105643  , p_source_92 => l_array_source_92(Idx)
105644  , p_source_93 => l_array_source_93(Idx)
105648  , p_source_97 => l_array_source_97(Idx)
105645  , p_source_94 => l_array_source_94(Idx)
105646  , p_source_95 => l_array_source_95(Idx)
105647  , p_source_96 => l_array_source_96(Idx)
105649  , p_source_98 => l_array_source_98(Idx)
105650  , p_source_99 => l_array_source_99(Idx)
105651  , p_source_100 => l_array_source_100(Idx)
105652  , p_source_101 => l_array_source_101(Idx)
105653  , p_source_102 => l_array_source_102(Idx)
105654  , p_source_103 => l_array_source_103(Idx)
105655  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105656  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105657  , p_source_106 => l_array_source_106(Idx)
105658  , p_source_107 => l_array_source_107(Idx)
105659  , p_source_108 => l_array_source_108(Idx)
105660  , p_source_111 => l_array_source_111(Idx)
105661  , p_source_111_meaning => l_array_source_111_meaning(Idx)
105662  , p_source_125 => l_array_source_125(Idx)
105663  , p_source_126 => l_array_source_126(Idx)
105664  , p_source_127 => l_array_source_127(Idx)
105665  );
105666 If(l_balance_type_code = 'A') THEN
105667   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105668 END IF;
105669 
105670 --
105671 
105672 
105673 --
105674 AcctLineType_159 (
105675  p_application_id  => p_application_id
105676  ,p_event_id     => l_event_id
105677  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105678  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105679  ,p_actual_flag => l_actual_flag
105680  ,p_balance_type_code => l_balance_type_code
105681  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105682  
105683  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
105684  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
105685  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
105686  , p_source_18 => l_array_source_18(Idx)
105687  , p_source_19 => l_array_source_19(Idx)
105688  , p_source_19_meaning => l_array_source_19_meaning(Idx)
105689  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
105690  , p_source_29 => l_array_source_29(Idx)
105691  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
105692  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
105693  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105694  , p_source_52 => l_array_source_52(Idx)
105695  , p_source_54 => l_array_source_54(Idx)
105696  , p_source_60 => l_array_source_60(Idx)
105697  , p_source_64 => l_array_source_64(Idx)
105698  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105699  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105700  , p_source_69 => l_array_source_69(Idx)
105701  , p_source_70 => l_array_source_70(Idx)
105702  , p_source_77 => l_array_source_77(Idx)
105703  , p_source_78 => l_array_source_78(Idx)
105704  , p_source_79 => l_array_source_79(Idx)
105705  , p_source_79_meaning => l_array_source_79_meaning(Idx)
105706  , p_source_82 => l_array_source_82(Idx)
105707  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105708  , p_source_84 => l_array_source_84(Idx)
105709  , p_source_85 => l_array_source_85(Idx)
105710  , p_source_86 => l_array_source_86(Idx)
105711  , p_source_87 => l_array_source_87(Idx)
105712  , p_source_88 => l_array_source_88(Idx)
105713  , p_source_89 => l_array_source_89(Idx)
105714  , p_source_90 => l_array_source_90(Idx)
105715  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105716  , p_source_92 => l_array_source_92(Idx)
105717  , p_source_93 => l_array_source_93(Idx)
105718  , p_source_94 => l_array_source_94(Idx)
105719  , p_source_95 => l_array_source_95(Idx)
105720  , p_source_96 => l_array_source_96(Idx)
105721  , p_source_97 => l_array_source_97(Idx)
105722  , p_source_98 => l_array_source_98(Idx)
105723  , p_source_101 => l_array_source_101(Idx)
105724  , p_source_102 => l_array_source_102(Idx)
105725  , p_source_103 => l_array_source_103(Idx)
105726  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105727  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105728  , p_source_106 => l_array_source_106(Idx)
105729  , p_source_107 => l_array_source_107(Idx)
105730  , p_source_108 => l_array_source_108(Idx)
105731  , p_source_109 => l_array_source_109(Idx)
105732  , p_source_110 => l_array_source_110(Idx)
105733  , p_source_111 => l_array_source_111(Idx)
105734  , p_source_111_meaning => l_array_source_111_meaning(Idx)
105735  , p_source_128 => l_array_source_128(Idx)
105736  , p_source_129 => l_array_source_129(Idx)
105737  , p_source_130 => l_array_source_130(Idx)
105738  );
105739 If(l_balance_type_code = 'A') THEN
105740   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105741 END IF;
105742 
105743 --
105744 
105745 
105746 --
105747 AcctLineType_160 (
105748  p_application_id  => p_application_id
105749  ,p_event_id     => l_event_id
105750  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105751  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105752  ,p_actual_flag => l_actual_flag
105753  ,p_balance_type_code => l_balance_type_code
105754  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105755  
105756  , p_source_48 => l_array_source_48(Idx)
105757  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105758  , p_source_52 => l_array_source_52(Idx)
105759  , p_source_54 => l_array_source_54(Idx)
105760  , p_source_60 => l_array_source_60(Idx)
105761  , p_source_64 => l_array_source_64(Idx)
105762  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105763  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105764  , p_source_69 => l_array_source_69(Idx)
105765  , p_source_70 => l_array_source_70(Idx)
105766  , p_source_77 => l_array_source_77(Idx)
105767  , p_source_78 => l_array_source_78(Idx)
105768  , p_source_79 => l_array_source_79(Idx)
105769  , p_source_79_meaning => l_array_source_79_meaning(Idx)
105770  , p_source_82 => l_array_source_82(Idx)
105774  , p_source_86 => l_array_source_86(Idx)
105771  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105772  , p_source_84 => l_array_source_84(Idx)
105773  , p_source_85 => l_array_source_85(Idx)
105775  , p_source_87 => l_array_source_87(Idx)
105776  , p_source_88 => l_array_source_88(Idx)
105777  , p_source_89 => l_array_source_89(Idx)
105778  , p_source_90 => l_array_source_90(Idx)
105779  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105780  , p_source_92 => l_array_source_92(Idx)
105781  , p_source_93 => l_array_source_93(Idx)
105782  , p_source_94 => l_array_source_94(Idx)
105783  , p_source_95 => l_array_source_95(Idx)
105784  , p_source_96 => l_array_source_96(Idx)
105785  , p_source_97 => l_array_source_97(Idx)
105786  , p_source_98 => l_array_source_98(Idx)
105787  , p_source_99 => l_array_source_99(Idx)
105788  , p_source_100 => l_array_source_100(Idx)
105789  , p_source_101 => l_array_source_101(Idx)
105790  , p_source_102 => l_array_source_102(Idx)
105791  , p_source_103 => l_array_source_103(Idx)
105792  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105793  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105794  , p_source_106 => l_array_source_106(Idx)
105795  , p_source_107 => l_array_source_107(Idx)
105796  , p_source_108 => l_array_source_108(Idx)
105797  , p_source_111 => l_array_source_111(Idx)
105798  , p_source_111_meaning => l_array_source_111_meaning(Idx)
105799  , p_source_125 => l_array_source_125(Idx)
105800  , p_source_126 => l_array_source_126(Idx)
105801  , p_source_127 => l_array_source_127(Idx)
105802  );
105803 If(l_balance_type_code = 'A') THEN
105804   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105805 END IF;
105806 
105807 --
105808 
105809 
105810 --
105811 AcctLineType_161 (
105812  p_application_id  => p_application_id
105813  ,p_event_id     => l_event_id
105814  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105815  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105816  ,p_actual_flag => l_actual_flag
105817  ,p_balance_type_code => l_balance_type_code
105818  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105819  
105820  , p_source_48 => l_array_source_48(Idx)
105821  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105822  , p_source_52 => l_array_source_52(Idx)
105823  , p_source_54 => l_array_source_54(Idx)
105824  , p_source_60 => l_array_source_60(Idx)
105825  , p_source_64 => l_array_source_64(Idx)
105826  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105827  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105828  , p_source_69 => l_array_source_69(Idx)
105829  , p_source_70 => l_array_source_70(Idx)
105830  , p_source_77 => l_array_source_77(Idx)
105831  , p_source_78 => l_array_source_78(Idx)
105832  , p_source_79 => l_array_source_79(Idx)
105833  , p_source_79_meaning => l_array_source_79_meaning(Idx)
105834  , p_source_82 => l_array_source_82(Idx)
105835  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105836  , p_source_84 => l_array_source_84(Idx)
105837  , p_source_85 => l_array_source_85(Idx)
105838  , p_source_86 => l_array_source_86(Idx)
105839  , p_source_87 => l_array_source_87(Idx)
105840  , p_source_88 => l_array_source_88(Idx)
105841  , p_source_89 => l_array_source_89(Idx)
105842  , p_source_90 => l_array_source_90(Idx)
105843  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105844  , p_source_92 => l_array_source_92(Idx)
105845  , p_source_93 => l_array_source_93(Idx)
105846  , p_source_94 => l_array_source_94(Idx)
105847  , p_source_95 => l_array_source_95(Idx)
105848  , p_source_96 => l_array_source_96(Idx)
105849  , p_source_97 => l_array_source_97(Idx)
105850  , p_source_98 => l_array_source_98(Idx)
105851  , p_source_101 => l_array_source_101(Idx)
105852  , p_source_102 => l_array_source_102(Idx)
105853  , p_source_103 => l_array_source_103(Idx)
105854  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105855  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105856  , p_source_106 => l_array_source_106(Idx)
105857  , p_source_107 => l_array_source_107(Idx)
105858  , p_source_108 => l_array_source_108(Idx)
105859  , p_source_109 => l_array_source_109(Idx)
105860  , p_source_110 => l_array_source_110(Idx)
105861  , p_source_111 => l_array_source_111(Idx)
105862  , p_source_111_meaning => l_array_source_111_meaning(Idx)
105863  , p_source_128 => l_array_source_128(Idx)
105864  , p_source_129 => l_array_source_129(Idx)
105865  , p_source_130 => l_array_source_130(Idx)
105866  );
105867 If(l_balance_type_code = 'A') THEN
105868   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105869 END IF;
105870 
105871 --
105872 
105873 
105874 --
105875 AcctLineType_162 (
105876  p_application_id  => p_application_id
105877  ,p_event_id     => l_event_id
105878  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105879  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105880  ,p_actual_flag => l_actual_flag
105881  ,p_balance_type_code => l_balance_type_code
105882  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105883  
105884  , p_source_48 => l_array_source_48(Idx)
105885  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105886  , p_source_52 => l_array_source_52(Idx)
105887  , p_source_54 => l_array_source_54(Idx)
105888  , p_source_60 => l_array_source_60(Idx)
105889  , p_source_64 => l_array_source_64(Idx)
105890  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105891  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105892  , p_source_69 => l_array_source_69(Idx)
105893  , p_source_70 => l_array_source_70(Idx)
105894  , p_source_77 => l_array_source_77(Idx)
105895  , p_source_78 => l_array_source_78(Idx)
105896  , p_source_79 => l_array_source_79(Idx)
105897  , p_source_79_meaning => l_array_source_79_meaning(Idx)
105898  , p_source_82 => l_array_source_82(Idx)
105899  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105903  , p_source_87 => l_array_source_87(Idx)
105900  , p_source_84 => l_array_source_84(Idx)
105901  , p_source_85 => l_array_source_85(Idx)
105902  , p_source_86 => l_array_source_86(Idx)
105904  , p_source_88 => l_array_source_88(Idx)
105905  , p_source_89 => l_array_source_89(Idx)
105906  , p_source_90 => l_array_source_90(Idx)
105907  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105908  , p_source_92 => l_array_source_92(Idx)
105909  , p_source_93 => l_array_source_93(Idx)
105910  , p_source_94 => l_array_source_94(Idx)
105911  , p_source_95 => l_array_source_95(Idx)
105912  , p_source_96 => l_array_source_96(Idx)
105913  , p_source_97 => l_array_source_97(Idx)
105914  , p_source_98 => l_array_source_98(Idx)
105915  , p_source_99 => l_array_source_99(Idx)
105916  , p_source_100 => l_array_source_100(Idx)
105917  , p_source_101 => l_array_source_101(Idx)
105918  , p_source_102 => l_array_source_102(Idx)
105919  , p_source_103 => l_array_source_103(Idx)
105920  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105921  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105922  , p_source_106 => l_array_source_106(Idx)
105923  , p_source_107 => l_array_source_107(Idx)
105924  , p_source_108 => l_array_source_108(Idx)
105925  , p_source_111 => l_array_source_111(Idx)
105926  , p_source_111_meaning => l_array_source_111_meaning(Idx)
105927  , p_source_125 => l_array_source_125(Idx)
105928  , p_source_126 => l_array_source_126(Idx)
105929  , p_source_127 => l_array_source_127(Idx)
105930  );
105931 If(l_balance_type_code = 'A') THEN
105932   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105933 END IF;
105934 
105935 --
105936 
105937 
105938 --
105939 AcctLineType_163 (
105940  p_application_id  => p_application_id
105941  ,p_event_id     => l_event_id
105942  ,p_calculate_acctd_flag => l_calculate_acctd_flag
105943  ,p_calculate_g_l_flag => l_calculate_g_l_flag
105944  ,p_actual_flag => l_actual_flag
105945  ,p_balance_type_code => l_balance_type_code
105946  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105947  
105948  , p_source_48 => l_array_source_48(Idx)
105949  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105950  , p_source_52 => l_array_source_52(Idx)
105951  , p_source_54 => l_array_source_54(Idx)
105952  , p_source_60 => l_array_source_60(Idx)
105953  , p_source_64 => l_array_source_64(Idx)
105954  , p_source_64_meaning => l_array_source_64_meaning(Idx)
105955  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105956  , p_source_69 => l_array_source_69(Idx)
105957  , p_source_70 => l_array_source_70(Idx)
105958  , p_source_77 => l_array_source_77(Idx)
105959  , p_source_78 => l_array_source_78(Idx)
105960  , p_source_79 => l_array_source_79(Idx)
105961  , p_source_79_meaning => l_array_source_79_meaning(Idx)
105962  , p_source_82 => l_array_source_82(Idx)
105963  , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105964  , p_source_84 => l_array_source_84(Idx)
105965  , p_source_85 => l_array_source_85(Idx)
105966  , p_source_86 => l_array_source_86(Idx)
105967  , p_source_87 => l_array_source_87(Idx)
105968  , p_source_88 => l_array_source_88(Idx)
105969  , p_source_89 => l_array_source_89(Idx)
105970  , p_source_90 => l_array_source_90(Idx)
105971  , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105972  , p_source_92 => l_array_source_92(Idx)
105973  , p_source_93 => l_array_source_93(Idx)
105974  , p_source_94 => l_array_source_94(Idx)
105975  , p_source_95 => l_array_source_95(Idx)
105976  , p_source_96 => l_array_source_96(Idx)
105977  , p_source_97 => l_array_source_97(Idx)
105978  , p_source_98 => l_array_source_98(Idx)
105979  , p_source_101 => l_array_source_101(Idx)
105980  , p_source_102 => l_array_source_102(Idx)
105981  , p_source_103 => l_array_source_103(Idx)
105982  , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105983  , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105984  , p_source_106 => l_array_source_106(Idx)
105985  , p_source_107 => l_array_source_107(Idx)
105986  , p_source_108 => l_array_source_108(Idx)
105987  , p_source_109 => l_array_source_109(Idx)
105988  , p_source_110 => l_array_source_110(Idx)
105989  , p_source_111 => l_array_source_111(Idx)
105990  , p_source_111_meaning => l_array_source_111_meaning(Idx)
105991  , p_source_128 => l_array_source_128(Idx)
105992  , p_source_129 => l_array_source_129(Idx)
105993  , p_source_130 => l_array_source_130(Idx)
105994  );
105995 If(l_balance_type_code = 'A') THEN
105996   l_actual_gain_loss_ref := l_gain_or_loss_ref;
105997 END IF;
105998 
105999 --
106000 
106001       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
106002       -- or secondary ledger that has different currency with primary
106003       -- or alc that is calculated by sla
106004       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
106005             (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'))
106006 
106007 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
106008 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
106009           AND (l_actual_flag = 'A')) THEN
106010         XLA_AE_LINES_PKG.CreateGainOrLossLines(
106011           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
106012          ,p_application_id   => p_application_id
106013          ,p_amb_context_code => 'DEFAULT'
106014          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
106015          ,p_event_class_code => C_EVENT_CLASS_CODE
106016          ,p_event_type_code  => C_EVENT_TYPE_CODE
106017          
106018          ,p_gain_ccid        => -1
106019          ,p_loss_ccid        => -1
106020 
106021          ,p_actual_flag      => l_actual_flag
106022          ,p_enc_flag         => null
106026       END IF;
106023          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
106024          ,p_enc_g_l_ref      => null
106025          );
106027    END IF;
106028 END IF;
106029 
106030    ELSE
106031       --
106032       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
106033       --
106034       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106035          trace
106036             (p_msg      => 'Trancaction revesal option is Y'
106037             ,p_level    => C_LEVEL_STATEMENT
106038             ,p_module   => l_log_module);
106039       END IF;
106040    END IF;
106041 
106042 END LOOP;
106043 l_result := XLA_AE_LINES_PKG.InsertLines ;
106044 end loop;
106045 close line_cur;
106046 
106047 
106048 --
106049 -- insert headers into xla_ae_headers_gt table
106050 --
106051 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
106052 
106053 -- insert into errors table here.
106054 
106055 END LOOP;
106056 
106057 --
106058 -- 4865292
106059 --
106060 -- Compare g_hdr_extract_count with event count in
106061 -- CreateHeadersAndLines.
106062 --
106063 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
106064 
106065 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106066    trace (p_msg     => '# rows extracted from header extract objects '
106067                     || ' (running total): '
106068                     || g_hdr_extract_count
106069          ,p_level   => C_LEVEL_STATEMENT
106070          ,p_module  => l_log_module);
106071 END IF;
106072 
106073 CLOSE header_cur;
106074 --
106075 
106076 --
106077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106078    trace
106079       (p_msg      => 'END of EventClass_168'
106080       ,p_level    => C_LEVEL_PROCEDURE
106081       ,p_module   => l_log_module);
106082 END IF;
106083 --
106084 RETURN l_result;
106085 EXCEPTION
106086 WHEN xla_exceptions_pkg.application_exception THEN
106087    
106088 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
106089 
106090    
106091 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
106092 
106093    RAISE;
106094 
106095 WHEN NO_DATA_FOUND THEN
106096 
106097 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
106098 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
106099 
106100 FOR header_record IN header_cur
106101 LOOP
106102     l_array_header_events(header_record.event_id) := header_record.event_id;
106103 END LOOP;
106104 
106105 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
106106 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
106107 
106108 fnd_file.put_line(fnd_file.LOG, '                    ');
106109 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
106110 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
106111 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
106112 
106113 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
106114 LOOP
106115 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
106116 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
106117         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
106118 	END IF;
106119 END LOOP;
106120 
106121 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
106122 fnd_file.put_line(fnd_file.LOG, '                    ');
106123 
106124 
106125 xla_exceptions_pkg.raise_message
106126       (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_168');
106127 
106128 
106129 WHEN OTHERS THEN
106130    xla_exceptions_pkg.raise_message
106131       (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_168');
106132 END EventClass_168;
106133 --
106134 
106135 ---------------------------------------
106136 --
106137 -- PRIVATE PROCEDURE
106138 --         insert_sources_169
106139 --
106140 ----------------------------------------
106141 --
106142 PROCEDURE insert_sources_169(
106143                                 p_target_ledger_id       IN NUMBER
106144                               , p_language               IN VARCHAR2
106145                               , p_sla_ledger_id          IN NUMBER
106146                               , p_pad_start_date         IN DATE
106147                               , p_pad_end_date           IN DATE
106148                          )
106149 IS
106150 
106151 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'RECONCILED PAYMENTS_ALL';
106152 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'RECONCILED PAYMENTS';
106153 p_apps_owner                   VARCHAR2(30);
106154 l_log_module                   VARCHAR2(240);
106155 BEGIN
106156 IF g_log_enabled THEN
106157       l_log_module := C_DEFAULT_MODULE||'.insert_sources_169';
106158 END IF;
106159 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106160 
106161       trace
106162          (p_msg      => 'BEGIN of insert_sources_169'
106163          ,p_level    => C_LEVEL_PROCEDURE
106164          ,p_module   => l_log_module);
106165 
106166 END IF;
106167 
106168 -- select APPS owner
106169 SELECT oracle_username
106170   INTO p_apps_owner
106171   FROM fnd_oracle_userid
106172  WHERE read_only_flag = 'U'
106173 ;
106174 
106175 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106176       trace
106177          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
106178                         ' - p_language = '||p_language||
106179                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
106180                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
106181                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
106185 END IF;
106182                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
106183          ,p_level    => C_LEVEL_STATEMENT
106184          ,p_module   => l_log_module);
106186 
106187 
106188 --
106189 INSERT INTO xla_diag_sources --hdr2
106190 (
106191         event_id
106192       , ledger_id
106193       , sla_ledger_id
106194       , description_language
106195       , object_name
106196       , object_type_code
106197       , line_number
106198       , source_application_id
106199       , source_type_code
106200       , source_code
106201       , source_value
106202       , source_meaning
106203       , created_by
106204       , creation_date
106205       , last_update_date
106206       , last_updated_by
106207       , last_update_login
106208       , program_update_date
106209       , program_application_id
106210       , program_id
106211       , request_id
106212 )
106213 SELECT
106214         event_id
106215       , p_target_ledger_id
106216       , p_sla_ledger_id
106217       , p_language
106218       , object_name
106219       , object_type_code
106220       , line_number
106221       , source_application_id
106222       , source_type_code
106223       , source_code
106224       , SUBSTR(source_value ,1,1996)
106225       , SUBSTR(source_meaning ,1,200)
106226       , xla_environment_pkg.g_Usr_Id
106227       , TRUNC(SYSDATE)
106228       , TRUNC(SYSDATE)
106229       , xla_environment_pkg.g_Usr_Id
106230       , xla_environment_pkg.g_Login_Id
106231       , TRUNC(SYSDATE)
106232       , xla_environment_pkg.g_Prog_Appl_Id
106233       , xla_environment_pkg.g_Prog_Id
106234       , xla_environment_pkg.g_Req_Id
106235   FROM (
106236        SELECT xet.event_id                  event_id
106237             , 0                          line_number
106238             , CASE r
106239                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106240                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106241                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106242                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106243                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106244                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106245                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106246                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
106247                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
106248                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
106249                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
106250                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
106251                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
106252                 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
106253                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
106254                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106255                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106256                 WHEN 18 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
106257                 WHEN 19 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
106258                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106259                 WHEN 21 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
106260                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106261                 WHEN 23 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
106262                 WHEN 24 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
106263                 WHEN 25 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
106264                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106265                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106266                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106267                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106268                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106269                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106270                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106271                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106272                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106273                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106274                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106275                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106276                 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106277                 WHEN 39 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106278                 WHEN 40 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
106279                 
106280                ELSE null
106281               END                           object_name
106282             , CASE r
106283                 WHEN 1 THEN 'HEADER' 
106284                 WHEN 2 THEN 'HEADER' 
106285                 WHEN 3 THEN 'HEADER' 
106286                 WHEN 4 THEN 'HEADER' 
106287                 WHEN 5 THEN 'HEADER' 
106288                 WHEN 6 THEN 'HEADER' 
106289                 WHEN 7 THEN 'HEADER' 
106290                 WHEN 8 THEN 'HEADER' 
106291                 WHEN 9 THEN 'HEADER' 
106292                 WHEN 10 THEN 'HEADER' 
106293                 WHEN 11 THEN 'HEADER' 
106294                 WHEN 12 THEN 'HEADER' 
106295                 WHEN 13 THEN 'HEADER' 
106296                 WHEN 14 THEN 'HEADER' 
106297                 WHEN 15 THEN 'HEADER' 
106298                 WHEN 16 THEN 'HEADER' 
106299                 WHEN 17 THEN 'HEADER' 
106300                 WHEN 18 THEN 'HEADER' 
106301                 WHEN 19 THEN 'HEADER' 
106302                 WHEN 20 THEN 'HEADER' 
106303                 WHEN 21 THEN 'HEADER' 
106304                 WHEN 22 THEN 'HEADER' 
106305                 WHEN 23 THEN 'HEADER' 
106306                 WHEN 24 THEN 'HEADER' 
106307                 WHEN 25 THEN 'HEADER' 
106308                 WHEN 26 THEN 'HEADER' 
106309                 WHEN 27 THEN 'HEADER' 
106310                 WHEN 28 THEN 'HEADER' 
106311                 WHEN 29 THEN 'HEADER' 
106312                 WHEN 30 THEN 'HEADER' 
106313                 WHEN 31 THEN 'HEADER' 
106317                 WHEN 35 THEN 'HEADER' 
106314                 WHEN 32 THEN 'HEADER' 
106315                 WHEN 33 THEN 'HEADER' 
106316                 WHEN 34 THEN 'HEADER' 
106318                 WHEN 36 THEN 'HEADER' 
106319                 WHEN 37 THEN 'HEADER' 
106320                 WHEN 38 THEN 'HEADER' 
106321                 WHEN 39 THEN 'HEADER' 
106322                 WHEN 40 THEN 'HEADER' 
106323                 
106324                 ELSE null
106325               END                           object_type_code
106326             , CASE r
106327                 WHEN 1 THEN '200' 
106328                 WHEN 2 THEN '200' 
106329                 WHEN 3 THEN '200' 
106330                 WHEN 4 THEN '200' 
106331                 WHEN 5 THEN '200' 
106332                 WHEN 6 THEN '200' 
106333                 WHEN 7 THEN '200' 
106334                 WHEN 8 THEN '200' 
106335                 WHEN 9 THEN '200' 
106336                 WHEN 10 THEN '200' 
106337                 WHEN 11 THEN '200' 
106338                 WHEN 12 THEN '200' 
106339                 WHEN 13 THEN '200' 
106340                 WHEN 14 THEN '200' 
106341                 WHEN 15 THEN '200' 
106342                 WHEN 16 THEN '200' 
106343                 WHEN 17 THEN '200' 
106344                 WHEN 18 THEN '200' 
106345                 WHEN 19 THEN '200' 
106346                 WHEN 20 THEN '200' 
106347                 WHEN 21 THEN '200' 
106348                 WHEN 22 THEN '200' 
106349                 WHEN 23 THEN '200' 
106350                 WHEN 24 THEN '200' 
106351                 WHEN 25 THEN '200' 
106352                 WHEN 26 THEN '200' 
106353                 WHEN 27 THEN '200' 
106354                 WHEN 28 THEN '200' 
106355                 WHEN 29 THEN '200' 
106356                 WHEN 30 THEN '200' 
106357                 WHEN 31 THEN '200' 
106358                 WHEN 32 THEN '200' 
106359                 WHEN 33 THEN '200' 
106360                 WHEN 34 THEN '200' 
106361                 WHEN 35 THEN '200' 
106362                 WHEN 36 THEN '200' 
106363                 WHEN 37 THEN '200' 
106364                 WHEN 38 THEN '200' 
106365                 WHEN 39 THEN '200' 
106366                 WHEN 40 THEN '200' 
106367                 
106368                 ELSE null
106369               END                           source_application_id
106370             , 'S'             source_type_code
106371             , CASE r
106372                 WHEN 1 THEN 'DOC_SEQUENCE_NAME' 
106373                 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE' 
106374                 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER' 
106375                 WHEN 4 THEN 'AC_CHECK_DATE' 
106376                 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME' 
106377                 WHEN 6 THEN 'AC_CURRENCY_CODE' 
106378                 WHEN 7 THEN 'CGAC_AP_ASSET_CCID' 
106379                 WHEN 8 THEN 'FSP_DISC_TAKEN_CCID' 
106380                 WHEN 9 THEN 'ASP_DISCOUNT_DIST_METHOD' 
106381                 WHEN 10 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
106382                 WHEN 11 THEN 'ASP_RATE_VAR_GAIN_CCID' 
106383                 WHEN 12 THEN 'ASP_RATE_VAR_LOSS_CCID' 
106384                 WHEN 13 THEN 'ASP_INTEREST_CCID' 
106385                 WHEN 14 THEN 'ASP_PRORATE_INT_ACROSS_DISTS' 
106386                 WHEN 15 THEN 'FSP_RETAINAGE_ACCOUNT' 
106387                 WHEN 16 THEN 'CGAC_BANK_CHARGES_CCID' 
106388                 WHEN 17 THEN 'CGAC_BANK_ERRORS_CCID' 
106389                 WHEN 18 THEN 'ASP_DISC_TAKEN_CCID' 
106390                 WHEN 19 THEN 'ASP_AUTO_OFFSET_FLAG' 
106391                 WHEN 20 THEN 'CGAC_GAIN_CCID' 
106392                 WHEN 21 THEN 'ASP_GAIN_CCID' 
106393                 WHEN 22 THEN 'CGAC_LOSS_CCID' 
106394                 WHEN 23 THEN 'ASP_LOSS_CCID' 
106395                 WHEN 24 THEN 'ASP_ROUNDING_ERROR_CCID' 
106396                 WHEN 25 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
106397                 WHEN 26 THEN 'AC_VENDOR_ID' 
106398                 WHEN 27 THEN 'AC_VENDOR_SITE_ID' 
106399                 WHEN 28 THEN 'THIRD_PARTY_TYPE' 
106400                 WHEN 29 THEN 'PAYMENT_TYPE' 
106401                 WHEN 30 THEN 'APH_BANK_CURRENCY_CODE' 
106402                 WHEN 31 THEN 'APH_BANK_TO_BASE_XRATE_DATE' 
106403                 WHEN 32 THEN 'APH_BANK_TO_BASE_XRATE' 
106404                 WHEN 33 THEN 'APH_BANK_TO_BASE_XRATE_TYPE' 
106405                 WHEN 34 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
106406                 WHEN 35 THEN 'AC_FUTURE_PAY_DUE_DATE' 
106407                 WHEN 36 THEN 'AC_EXCHANGE_DATE' 
106408                 WHEN 37 THEN 'AC_EXCHANGE_RATE' 
106409                 WHEN 38 THEN 'AC_EXCHANGE_RATE_TYPE' 
106410                 WHEN 39 THEN 'AC_DOC_CATEGORY_CODE' 
106411                 WHEN 40 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
106412                 
106413                 ELSE null
106414               END                           source_code
106415             , CASE r
106416                 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
106417                 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
106418                 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
106419                 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
106420                 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
106421                 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
106422                 WHEN 7 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
106423                 WHEN 8 THEN TO_CHAR(h4.FSP_DISC_TAKEN_CCID)
106424                 WHEN 9 THEN TO_CHAR(h4.ASP_DISCOUNT_DIST_METHOD)
106425                 WHEN 10 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
106426                 WHEN 11 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
106427                 WHEN 12 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
106428                 WHEN 13 THEN TO_CHAR(h4.ASP_INTEREST_CCID)
106429                 WHEN 14 THEN TO_CHAR(h4.ASP_PRORATE_INT_ACROSS_DISTS)
106430                 WHEN 15 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
106431                 WHEN 16 THEN TO_CHAR(h2.CGAC_BANK_CHARGES_CCID)
106432                 WHEN 17 THEN TO_CHAR(h2.CGAC_BANK_ERRORS_CCID)
106436                 WHEN 21 THEN TO_CHAR(h4.ASP_GAIN_CCID)
106433                 WHEN 18 THEN TO_CHAR(h4.ASP_DISC_TAKEN_CCID)
106434                 WHEN 19 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
106435                 WHEN 20 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
106437                 WHEN 22 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
106438                 WHEN 23 THEN TO_CHAR(h4.ASP_LOSS_CCID)
106439                 WHEN 24 THEN TO_CHAR(h4.ASP_ROUNDING_ERROR_CCID)
106440                 WHEN 25 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
106441                 WHEN 26 THEN TO_CHAR(h2.AC_VENDOR_ID)
106442                 WHEN 27 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
106443                 WHEN 28 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
106444                 WHEN 29 THEN TO_CHAR(h2.PAYMENT_TYPE)
106445                 WHEN 30 THEN TO_CHAR(h2.APH_BANK_CURRENCY_CODE)
106446                 WHEN 31 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_DATE)
106447                 WHEN 32 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE)
106448                 WHEN 33 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_TYPE)
106449                 WHEN 34 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
106450                 WHEN 35 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
106451                 WHEN 36 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
106452                 WHEN 37 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
106453                 WHEN 38 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
106454                 WHEN 39 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
106455                 WHEN 40 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
106456                 
106457                 ELSE null
106458               END                           source_value
106459             , CASE r
106460                 WHEN 9 THEN fvl15.meaning
106461                 WHEN 10 THEN fvl16.meaning
106462                 WHEN 19 THEN fvl42.meaning
106463                 WHEN 29 THEN fvl71.meaning
106464                 WHEN 34 THEN fvl117.meaning
106465                 
106466                 ELSE null
106467               END               source_meaning
106468          FROM xla_events_gt     xet  
106469       , AP_PAYMENT_EXTRACT_HEADER_V  h2
106470       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
106471   , fnd_lookup_values    fvl15
106472   , fnd_lookup_values    fvl16
106473   , fnd_lookup_values    fvl42
106474   , fnd_lookup_values    fvl71
106475   , fnd_lookup_values    fvl117
106476              ,(select rownum r from all_objects where rownum <= 40 and owner = p_apps_owner)
106477          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
106478            AND xet.event_class_code = C_EVENT_CLASS_CODE
106479               AND h2.event_id = xet.event_id
106480  AND h4.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
106481   AND fvl15.lookup_code(+)         = h4.ASP_DISCOUNT_DIST_METHOD
106482   AND fvl15.view_application_id(+) = 200
106483   AND fvl15.language(+)            = USERENV('LANG')
106484      AND fvl16.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
106485   AND fvl16.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
106486   AND fvl16.view_application_id(+) = 200
106487   AND fvl16.language(+)            = USERENV('LANG')
106488      AND fvl42.lookup_type(+)         = 'YES_NO'
106489   AND fvl42.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
106490   AND fvl42.view_application_id(+) = 0
106491   AND fvl42.language(+)            = USERENV('LANG')
106492      AND fvl71.lookup_type(+)         = 'PAYMENT TYPE'
106493   AND fvl71.lookup_code(+)         = h2.PAYMENT_TYPE
106494   AND fvl71.view_application_id(+) = 200
106495   AND fvl71.language(+)            = USERENV('LANG')
106496      AND fvl117.lookup_type(+)         = 'YES_NO'
106497   AND fvl117.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
106498   AND fvl117.view_application_id(+) = 0
106499   AND fvl117.language(+)            = USERENV('LANG')
106500   
106501 )
106502 ;
106503 --
106504 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106505 
106506       trace
106507          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
106508          ,p_level    => C_LEVEL_STATEMENT
106509          ,p_module   => l_log_module);
106510 
106511 END IF;
106512 --
106513 
106514 
106515 
106516 --
106517 INSERT INTO xla_diag_sources  --line2
106518 (
106519         event_id
106520       , ledger_id
106521       , sla_ledger_id
106522       , description_language
106523       , object_name
106524       , object_type_code
106525       , line_number
106526       , source_application_id
106527       , source_type_code
106528       , source_code
106529       , source_value
106530       , source_meaning
106531       , created_by
106532       , creation_date
106533       , last_update_date
106534       , last_updated_by
106535       , last_update_login
106536       , program_update_date
106537       , program_application_id
106538       , program_id
106539       , request_id
106540 )
106541 SELECT  event_id
106542       , p_target_ledger_id
106543       , p_sla_ledger_id
106544       , p_language
106545       , object_name
106546       , object_type_code
106547       , line_number
106548       , source_application_id
106549       , source_type_code
106550       , source_code
106551       , SUBSTR(source_value,1,1996)
106552       , SUBSTR(source_meaning ,1,200)
106553       , xla_environment_pkg.g_Usr_Id
106554       , TRUNC(SYSDATE)
106555       , TRUNC(SYSDATE)
106556       , xla_environment_pkg.g_Usr_Id
106557       , xla_environment_pkg.g_Login_Id
106558       , TRUNC(SYSDATE)
106559       , xla_environment_pkg.g_Prog_Appl_Id
106560       , xla_environment_pkg.g_Prog_Id
106561       , xla_environment_pkg.g_Req_Id
106562   FROM (
106563        SELECT xet.event_id                  event_id
106564             , l1.line_number                 line_number
106565             , CASE r
106566                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106567                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106571                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106568                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106569                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106570                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106572                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106573                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106574                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106575                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106576                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106577                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106578                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106579                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106580                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106581                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106582                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106583                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106584                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106585                 WHEN 20 THEN 'AP_PO_HEADERS_EXTRACT_V' 
106586                 WHEN 21 THEN 'AP_PO_HEADERS_EXTRACT_V' 
106587                 WHEN 22 THEN 'AP_PO_HEADERS_EXTRACT_V' 
106588                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106589                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106590                 WHEN 25 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
106591                 WHEN 26 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
106592                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106593                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106594                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106595                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106596                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106597                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106598                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106599                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106600                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106601                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106602                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
106603                 
106604                ELSE null
106605               END                           object_name
106606             , CASE r
106607                 WHEN 1 THEN 'LINE' 
106608                 WHEN 2 THEN 'LINE' 
106609                 WHEN 3 THEN 'LINE' 
106610                 WHEN 4 THEN 'LINE' 
106611                 WHEN 5 THEN 'LINE' 
106612                 WHEN 6 THEN 'LINE' 
106613                 WHEN 7 THEN 'LINE' 
106614                 WHEN 8 THEN 'LINE' 
106615                 WHEN 9 THEN 'LINE' 
106616                 WHEN 10 THEN 'LINE' 
106617                 WHEN 11 THEN 'LINE' 
106618                 WHEN 12 THEN 'LINE' 
106619                 WHEN 13 THEN 'LINE' 
106620                 WHEN 14 THEN 'LINE' 
106621                 WHEN 15 THEN 'LINE' 
106622                 WHEN 16 THEN 'LINE' 
106623                 WHEN 17 THEN 'LINE' 
106624                 WHEN 18 THEN 'LINE' 
106625                 WHEN 19 THEN 'LINE' 
106626                 WHEN 20 THEN 'LINE' 
106627                 WHEN 21 THEN 'LINE' 
106628                 WHEN 22 THEN 'LINE' 
106629                 WHEN 23 THEN 'LINE' 
106630                 WHEN 24 THEN 'LINE' 
106631                 WHEN 25 THEN 'LINE' 
106632                 WHEN 26 THEN 'LINE' 
106633                 WHEN 27 THEN 'LINE' 
106634                 WHEN 28 THEN 'LINE' 
106635                 WHEN 29 THEN 'LINE' 
106636                 WHEN 30 THEN 'LINE' 
106637                 WHEN 31 THEN 'LINE' 
106638                 WHEN 32 THEN 'LINE' 
106639                 WHEN 33 THEN 'LINE' 
106640                 WHEN 34 THEN 'LINE' 
106641                 WHEN 35 THEN 'LINE' 
106642                 WHEN 36 THEN 'LINE' 
106643                 WHEN 37 THEN 'LINE' 
106644                 
106645                 ELSE null
106646               END                           object_type_code
106647             , CASE r
106648                 WHEN 1 THEN '200' 
106649                 WHEN 2 THEN '200' 
106650                 WHEN 3 THEN '200' 
106651                 WHEN 4 THEN '200' 
106652                 WHEN 5 THEN '200' 
106653                 WHEN 6 THEN '200' 
106654                 WHEN 7 THEN '200' 
106655                 WHEN 8 THEN '200' 
106656                 WHEN 9 THEN '200' 
106657                 WHEN 10 THEN '200' 
106658                 WHEN 11 THEN '200' 
106659                 WHEN 12 THEN '200' 
106660                 WHEN 13 THEN '200' 
106661                 WHEN 14 THEN '200' 
106662                 WHEN 15 THEN '200' 
106663                 WHEN 16 THEN '200' 
106664                 WHEN 17 THEN '200' 
106665                 WHEN 18 THEN '200' 
106666                 WHEN 19 THEN '200' 
106667                 WHEN 20 THEN '200' 
106668                 WHEN 21 THEN '200' 
106669                 WHEN 22 THEN '200' 
106670                 WHEN 23 THEN '200' 
106671                 WHEN 24 THEN '200' 
106672                 WHEN 25 THEN '200' 
106673                 WHEN 26 THEN '200' 
106674                 WHEN 27 THEN '200' 
106675                 WHEN 28 THEN '200' 
106676                 WHEN 29 THEN '200' 
106677                 WHEN 30 THEN '200' 
106678                 WHEN 31 THEN '200' 
106679                 WHEN 32 THEN '200' 
106680                 WHEN 33 THEN '200' 
106681                 WHEN 34 THEN '200' 
106682                 WHEN 35 THEN '200' 
106683                 WHEN 36 THEN '200' 
106684                 WHEN 37 THEN '200' 
106685                 
106686                 ELSE null
106687               END                           source_application_id
106688             , 'S'             source_type_code
106689             , CASE r
106690                 WHEN 1 THEN 'RELATED_INV_DIST_DEST_TYPE' 
106694                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
106691                 WHEN 2 THEN 'APHD_PAYMENT_BASE_AMT' 
106692                 WHEN 3 THEN 'APHD_CLEARING_BASE_AMT' 
106693                 WHEN 4 THEN 'AID_DIST_CCID' 
106695                 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID' 
106696                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
106697                 WHEN 8 THEN 'POD_CCID' 
106698                 WHEN 9 THEN 'PO_VARIANCE_ACCOUNT' 
106699                 WHEN 10 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
106700                 WHEN 11 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
106701                 WHEN 12 THEN 'APHD_AMOUNT' 
106702                 WHEN 13 THEN 'BUS_FLOW_AP_APP_ID' 
106703                 WHEN 14 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE' 
106704                 WHEN 15 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE' 
106705                 WHEN 16 THEN 'BUS_FLOW_PAYMENT_DIST_ID' 
106706                 WHEN 17 THEN 'BUS_FLOW_PAYMENT_ID' 
106707                 WHEN 18 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
106708                 WHEN 19 THEN 'DISTRIBUTION_LINK_TYPE' 
106709                 WHEN 20 THEN 'POH_RATE_DATE' 
106710                 WHEN 21 THEN 'POH_RATE' 
106711                 WHEN 22 THEN 'POH_RATE_TYPE' 
106712                 WHEN 23 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
106713                 WHEN 24 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
106714                 WHEN 25 THEN 'TAX_LINE_ID' 
106715                 WHEN 26 THEN 'SUMMARY_TAX_LINE_ID' 
106716                 WHEN 27 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
106717                 WHEN 28 THEN 'AI_INVOICE_TYPE_PAID' 
106718                 WHEN 29 THEN 'APHD_INVOICE_BASE_AMT' 
106719                 WHEN 30 THEN 'INV_CLR_BASE_AMT_DIFF' 
106720                 WHEN 31 THEN 'MAT_CLR_GAIN_LOSS_INDICATOR' 
106721                 WHEN 32 THEN 'MAT_CLR_BASE_AMT_DIFF' 
106722                 WHEN 33 THEN 'PMT_CLR_GAIN_LOSS_INDICATOR' 
106723                 WHEN 34 THEN 'PMT_CLR_BASE_AMT_DIFF' 
106724                 WHEN 35 THEN 'BF_RETAINED_INV_DIST_ID_CLR' 
106725                 WHEN 36 THEN 'BF_RETAINED_INV_ID_CLR' 
106726                 WHEN 37 THEN 'AWT_AT_PMT_TIME' 
106727                 
106728                 ELSE null
106729               END                           source_code
106730             , CASE r
106731                 WHEN 1 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
106732                 WHEN 2 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
106733                 WHEN 3 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
106734                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
106735                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
106736                 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
106737                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
106738                 WHEN 8 THEN TO_CHAR(l1.POD_CCID)
106739                 WHEN 9 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
106740                 WHEN 10 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
106741                 WHEN 11 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
106742                 WHEN 12 THEN TO_CHAR(l1.APHD_AMOUNT)
106743                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
106744                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
106745                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
106746                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
106747                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
106748                 WHEN 18 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
106749                 WHEN 19 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
106750                 WHEN 20 THEN TO_CHAR(l3.POH_RATE_DATE)
106751                 WHEN 21 THEN TO_CHAR(l3.POH_RATE)
106752                 WHEN 22 THEN TO_CHAR(l3.POH_RATE_TYPE)
106753                 WHEN 23 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
106754                 WHEN 24 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
106755                 WHEN 25 THEN TO_CHAR(l5.TAX_LINE_ID)
106756                 WHEN 26 THEN TO_CHAR(l5.SUMMARY_TAX_LINE_ID)
106757                 WHEN 27 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
106758                 WHEN 28 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
106759                 WHEN 29 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
106760                 WHEN 30 THEN TO_CHAR(l1.INV_CLR_BASE_AMT_DIFF)
106761                 WHEN 31 THEN TO_CHAR(l1.MAT_CLR_GAIN_LOSS_INDICATOR)
106762                 WHEN 32 THEN TO_CHAR(l1.MAT_CLR_BASE_AMT_DIFF)
106763                 WHEN 33 THEN TO_CHAR(l1.PMT_CLR_GAIN_LOSS_INDICATOR)
106764                 WHEN 34 THEN TO_CHAR(l1.PMT_CLR_BASE_AMT_DIFF)
106765                 WHEN 35 THEN TO_CHAR(l1.BF_RETAINED_INV_DIST_ID_CLR)
106766                 WHEN 36 THEN TO_CHAR(l1.BF_RETAINED_INV_ID_CLR)
106767                 WHEN 37 THEN TO_CHAR(l1.AWT_AT_PMT_TIME)
106768                 
106769                 ELSE null
106770               END                           source_value
106771             , CASE r
106772                 WHEN 1 THEN fvl19.meaning
106773                 WHEN 5 THEN fvl32.meaning
106774                 WHEN 10 THEN fvl51.meaning
106775                 WHEN 23 THEN fvl64.meaning
106776                 WHEN 27 THEN fvl111.meaning
106777                 WHEN 28 THEN fvl112.meaning
106778                 WHEN 37 THEN fvl155.meaning
106779                 
106780                 ELSE null
106781               END               source_meaning
106782          FROM  xla_events_gt     xet  
106783         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
106784         , AP_PO_HEADERS_EXTRACT_V  l3
106785         , ZX_AP_DEF_TAX_EXTRACT_V  l5
106786   , fnd_lookup_values    fvl19
106787   , fnd_lookup_values    fvl32
106788   , fnd_lookup_values    fvl51
106789   , fnd_lookup_values    fvl64
106790   , fnd_lookup_values    fvl111
106791   , fnd_lookup_values    fvl112
106792   , fnd_lookup_values    fvl155
106793             , (select rownum r from all_objects where rownum <= 37 and owner = p_apps_owner)
106794         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
106795           AND xet.event_class_code = C_EVENT_CLASS_CODE
106796             AND l1.event_id          = xet.event_id
106800   AND fvl19.language(+)            = USERENV('LANG')
106797  AND l1.pod_po_header_id  = l3.po_header_id (+)  AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+)    AND fvl19.lookup_type(+)         = 'DESTINATION TYPE'
106798   AND fvl19.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
106799   AND fvl19.view_application_id(+) = 201
106801      AND fvl32.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
106802   AND fvl32.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
106803   AND fvl32.view_application_id(+) = 200
106804   AND fvl32.language(+)            = USERENV('LANG')
106805      AND fvl51.lookup_type(+)         = 'PAY_DIST_TYPES'
106806   AND fvl51.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
106807   AND fvl51.view_application_id(+) = 200
106808   AND fvl51.language(+)            = USERENV('LANG')
106809      AND fvl64.lookup_type(+)         = 'YES_NO'
106810   AND fvl64.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
106811   AND fvl64.view_application_id(+) = 0
106812   AND fvl64.language(+)            = USERENV('LANG')
106813      AND fvl111.lookup_type(+)         = 'YES_NO'
106814   AND fvl111.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
106815   AND fvl111.view_application_id(+) = 0
106816   AND fvl111.language(+)            = USERENV('LANG')
106817      AND fvl112.lookup_type(+)         = 'INVOICE TYPE'
106818   AND fvl112.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
106819   AND fvl112.view_application_id(+) = 200
106820   AND fvl112.language(+)            = USERENV('LANG')
106821      AND fvl155.lookup_type(+)         = 'YES_NO'
106822   AND fvl155.lookup_code(+)         = l1.AWT_AT_PMT_TIME
106823   AND fvl155.view_application_id(+) = 0
106824   AND fvl155.language(+)            = USERENV('LANG')
106825   
106826 )
106827 ;
106828 --
106829 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106830 
106831       trace
106832          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
106833          ,p_level    => C_LEVEL_STATEMENT
106834          ,p_module   => l_log_module);
106835 
106836 END IF;
106837 
106838 
106839 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106840       trace
106841          (p_msg      => 'END of insert_sources_169'
106842          ,p_level    => C_LEVEL_PROCEDURE
106843          ,p_module   => l_log_module);
106844 END IF;
106845 EXCEPTION
106846   WHEN xla_exceptions_pkg.application_exception THEN
106847       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
106848             trace
106849                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
106850                ,p_level    => C_LEVEL_EXCEPTION
106851                ,p_module   => l_log_module);
106852       END IF;
106853       RAISE;
106854   WHEN OTHERS THEN
106855       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
106856             trace
106857                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
106858                ,p_level    => C_LEVEL_EXCEPTION
106859                ,p_module   => l_log_module);
106860        END IF;
106861        xla_exceptions_pkg.raise_message
106862            (p_location => 'XLA_00200_AAD_S_000011_PKG.insert_sources_169');
106863 END insert_sources_169;
106864 --
106865 
106866 ---------------------------------------
106867 --
106868 -- PRIVATE FUNCTION
106869 --         EventClass_169
106870 --
106871 ----------------------------------------
106872 --
106873 FUNCTION EventClass_169
106874        (p_application_id         IN NUMBER
106875        ,p_base_ledger_id         IN NUMBER
106876        ,p_target_ledger_id       IN NUMBER
106877        ,p_language               IN VARCHAR2
106878        ,p_currency_code          IN VARCHAR2
106879        ,p_sla_ledger_id          IN NUMBER
106880        ,p_pad_start_date         IN DATE
106881        ,p_pad_end_date           IN DATE
106882        ,p_primary_ledger_id      IN NUMBER)
106883 RETURN BOOLEAN IS
106884 --
106885 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'RECONCILED PAYMENTS_ALL';
106886 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'RECONCILED PAYMENTS';
106887 
106888 l_calculate_acctd_flag   VARCHAR2(1) :='N';
106889 l_calculate_g_l_flag     VARCHAR2(1) :='N';
106890 --
106891 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106892 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106893 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
106894 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106895 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106896 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
106897 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
106898 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106899 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106900 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106901 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106902 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106903 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106904 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106905 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106906 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106907 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106908 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106909 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106910 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106911 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106912 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106913 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
106917 
106914 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
106915 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
106916 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
106918 l_event_id                             NUMBER;
106919 l_previous_event_id                    NUMBER;
106920 l_first_event_id                       NUMBER;
106921 l_last_event_id                        NUMBER;
106922 
106923 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
106924 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
106925 --
106926 --
106927 l_result                    BOOLEAN := TRUE;
106928 l_rows                      NUMBER  := 1000;
106929 l_event_type_name           VARCHAR2(80) := 'All';
106930 l_event_class_name          VARCHAR2(80) := 'Reconciled Payments';
106931 l_description               VARCHAR2(4000);
106932 l_transaction_reversal      NUMBER;
106933 l_ae_header_id              NUMBER;
106934 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
106935 l_log_module                VARCHAR2(240);
106936 --
106937 l_acct_reversal_source      VARCHAR2(30);
106938 l_trx_reversal_source       VARCHAR2(30);
106939 
106940 l_continue_with_lines       BOOLEAN := TRUE;
106941 --
106942 l_acc_rev_gl_date_source    DATE;                      -- 4262811
106943 --
106944 type t_array_event_id is table of number index by binary_integer;
106945 
106946 l_rec_array_event                    t_rec_array_event;
106947 l_null_rec_array_event               t_rec_array_event;
106948 l_array_ae_header_id                 xla_number_array_type;
106949 l_actual_flag                        VARCHAR2(1) := NULL;
106950 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
106951 l_balance_type_code                  VARCHAR2(1) :=NULL;
106952 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
106953 
106954 --
106955 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
106956 --
106957 
106958 TYPE t_array_source_5 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
106959 TYPE t_array_source_8 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
106960 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
106961 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
106962 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
106963 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
106964 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
106965 TYPE t_array_source_14 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
106966 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
106967 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
106968 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
106969 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
106970 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
106971 TYPE t_array_source_28 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
106972 TYPE t_array_source_34 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
106973 TYPE t_array_source_37 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_CHARGES_CCID%TYPE INDEX BY BINARY_INTEGER;
106974 TYPE t_array_source_38 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_ERRORS_CCID%TYPE INDEX BY BINARY_INTEGER;
106975 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
106976 TYPE t_array_source_42 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
106977 TYPE t_array_source_44 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
106978 TYPE t_array_source_45 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
106979 TYPE t_array_source_46 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
106980 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
106981 TYPE t_array_source_49 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
106982 TYPE t_array_source_50 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
106983 TYPE t_array_source_65 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
106984 TYPE t_array_source_66 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
106985 TYPE t_array_source_67 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
106986 TYPE t_array_source_71 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
106987 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
106988 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_DATE%TYPE INDEX BY BINARY_INTEGER;
106989 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE%TYPE INDEX BY BINARY_INTEGER;
106990 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
106991 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
106992 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
106993 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
106997 TYPE t_array_source_157 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
106994 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
106995 TYPE t_array_source_123 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
106996 TYPE t_array_source_156 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
106998 
106999 TYPE t_array_source_19 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
107000 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
107001 TYPE t_array_source_22 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
107002 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
107003 TYPE t_array_source_32 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
107004 TYPE t_array_source_35 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
107005 TYPE t_array_source_36 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
107006 TYPE t_array_source_40 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
107007 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
107008 TYPE t_array_source_51 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
107009 TYPE t_array_source_52 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
107010 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
107011 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
107012 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
107013 TYPE t_array_source_56 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
107014 TYPE t_array_source_57 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
107015 TYPE t_array_source_58 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
107016 TYPE t_array_source_59 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
107017 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
107018 TYPE t_array_source_61 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
107019 TYPE t_array_source_62 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
107020 TYPE t_array_source_63 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
107021 TYPE t_array_source_64 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
107022 TYPE t_array_source_68 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
107023 TYPE t_array_source_69 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
107024 TYPE t_array_source_70 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
107025 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
107026 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
107027 TYPE t_array_source_119 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
107028 TYPE t_array_source_134 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
107029 TYPE t_array_source_136 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
107030 TYPE t_array_source_137 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
107031 TYPE t_array_source_138 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
107032 TYPE t_array_source_139 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
107033 TYPE t_array_source_151 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_DIST_ID_CLR%TYPE INDEX BY BINARY_INTEGER;
107034 TYPE t_array_source_152 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_ID_CLR%TYPE INDEX BY BINARY_INTEGER;
107035 TYPE t_array_source_155 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_AT_PMT_TIME%TYPE INDEX BY BINARY_INTEGER;
107036 
107037 l_array_source_5              t_array_source_5;
107038 l_array_source_8              t_array_source_8;
107039 l_array_source_9              t_array_source_9;
107040 l_array_source_10              t_array_source_10;
107041 l_array_source_11              t_array_source_11;
107042 l_array_source_12              t_array_source_12;
107043 l_array_source_13              t_array_source_13;
107044 l_array_source_14              t_array_source_14;
107045 l_array_source_15              t_array_source_15;
107046 l_array_source_15_meaning      t_array_lookup_meaning;
107047 l_array_source_16              t_array_source_16;
107048 l_array_source_16_meaning      t_array_lookup_meaning;
107049 l_array_source_17              t_array_source_17;
107050 l_array_source_20              t_array_source_20;
107051 l_array_source_27              t_array_source_27;
107052 l_array_source_28              t_array_source_28;
107053 l_array_source_34              t_array_source_34;
107054 l_array_source_37              t_array_source_37;
107055 l_array_source_38              t_array_source_38;
107056 l_array_source_39              t_array_source_39;
107057 l_array_source_42              t_array_source_42;
107058 l_array_source_42_meaning      t_array_lookup_meaning;
107059 l_array_source_44              t_array_source_44;
107060 l_array_source_45              t_array_source_45;
107061 l_array_source_46              t_array_source_46;
107062 l_array_source_47              t_array_source_47;
107063 l_array_source_49              t_array_source_49;
107064 l_array_source_50              t_array_source_50;
107068 l_array_source_71              t_array_source_71;
107065 l_array_source_65              t_array_source_65;
107066 l_array_source_66              t_array_source_66;
107067 l_array_source_67              t_array_source_67;
107069 l_array_source_71_meaning      t_array_lookup_meaning;
107070 l_array_source_113              t_array_source_113;
107071 l_array_source_114              t_array_source_114;
107072 l_array_source_115              t_array_source_115;
107073 l_array_source_116              t_array_source_116;
107074 l_array_source_117              t_array_source_117;
107075 l_array_source_117_meaning      t_array_lookup_meaning;
107076 l_array_source_118              t_array_source_118;
107077 l_array_source_121              t_array_source_121;
107078 l_array_source_122              t_array_source_122;
107079 l_array_source_123              t_array_source_123;
107080 l_array_source_156              t_array_source_156;
107081 l_array_source_157              t_array_source_157;
107082 
107083 l_array_source_19      t_array_source_19;
107084 l_array_source_19_meaning      t_array_lookup_meaning;
107085 l_array_source_21      t_array_source_21;
107086 l_array_source_22      t_array_source_22;
107087 l_array_source_29      t_array_source_29;
107088 l_array_source_32      t_array_source_32;
107089 l_array_source_32_meaning      t_array_lookup_meaning;
107090 l_array_source_35      t_array_source_35;
107091 l_array_source_36      t_array_source_36;
107092 l_array_source_40      t_array_source_40;
107093 l_array_source_41      t_array_source_41;
107094 l_array_source_51      t_array_source_51;
107095 l_array_source_51_meaning      t_array_lookup_meaning;
107096 l_array_source_52      t_array_source_52;
107097 l_array_source_53      t_array_source_53;
107098 l_array_source_54      t_array_source_54;
107099 l_array_source_55      t_array_source_55;
107100 l_array_source_56      t_array_source_56;
107101 l_array_source_57      t_array_source_57;
107102 l_array_source_58      t_array_source_58;
107103 l_array_source_59      t_array_source_59;
107104 l_array_source_60      t_array_source_60;
107105 l_array_source_61      t_array_source_61;
107106 l_array_source_62      t_array_source_62;
107107 l_array_source_63      t_array_source_63;
107108 l_array_source_64      t_array_source_64;
107109 l_array_source_64_meaning      t_array_lookup_meaning;
107110 l_array_source_68      t_array_source_68;
107111 l_array_source_69      t_array_source_69;
107112 l_array_source_70      t_array_source_70;
107113 l_array_source_111      t_array_source_111;
107114 l_array_source_111_meaning      t_array_lookup_meaning;
107115 l_array_source_112      t_array_source_112;
107116 l_array_source_112_meaning      t_array_lookup_meaning;
107117 l_array_source_119      t_array_source_119;
107118 l_array_source_134      t_array_source_134;
107119 l_array_source_136      t_array_source_136;
107120 l_array_source_137      t_array_source_137;
107121 l_array_source_138      t_array_source_138;
107122 l_array_source_139      t_array_source_139;
107123 l_array_source_151      t_array_source_151;
107124 l_array_source_152      t_array_source_152;
107125 l_array_source_155      t_array_source_155;
107126 l_array_source_155_meaning      t_array_lookup_meaning;
107127 
107128 --
107129 CURSOR header_cur
107130 IS
107131 SELECT /*+ leading(xet) cardinality(xet,1) */
107132 -- Event Class Code: RECONCILED PAYMENTS
107133     xet.entity_id
107134    ,xet.legal_entity_id
107135    ,xet.entity_code
107136    ,xet.transaction_number
107137    ,xet.event_id
107138    ,xet.event_class_code
107139    ,xet.event_type_code
107140    ,xet.event_number
107141    ,xet.event_date
107142    ,xet.transaction_date
107143    ,xet.reference_num_1
107144    ,xet.reference_num_2
107145    ,xet.reference_num_3
107146    ,xet.reference_num_4
107147    ,xet.reference_char_1
107148    ,xet.reference_char_2
107149    ,xet.reference_char_3
107150    ,xet.reference_char_4
107151    ,xet.reference_date_1
107152    ,xet.reference_date_2
107153    ,xet.reference_date_3
107154    ,xet.reference_date_4
107155    ,xet.event_created_by
107156    ,xet.budgetary_control_flag 
107157   , h2.DOC_SEQUENCE_NAME    source_5
107158   , h2.AC_DOC_SEQUENCE_VALUE    source_8
107159   , h2.PAYMENT_TRANSACTION_NUMBER    source_9
107160   , h2.AC_CHECK_DATE    source_10
107161   , h2.CBA_BANK_ACCOUNT_NAME    source_11
107162   , h2.AC_CURRENCY_CODE    source_12
107163   , h2.CGAC_AP_ASSET_CCID    source_13
107164   , h4.FSP_DISC_TAKEN_CCID    source_14
107165   , h4.ASP_DISCOUNT_DIST_METHOD    source_15
107166   , fvl15.meaning   source_15_meaning
107167   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_16
107168   , fvl16.meaning   source_16_meaning
107169   , h4.ASP_RATE_VAR_GAIN_CCID    source_17
107170   , h4.ASP_RATE_VAR_LOSS_CCID    source_20
107171   , h4.ASP_INTEREST_CCID    source_27
107172   , h4.ASP_PRORATE_INT_ACROSS_DISTS    source_28
107173   , h4.FSP_RETAINAGE_ACCOUNT    source_34
107174   , h2.CGAC_BANK_CHARGES_CCID    source_37
107175   , h2.CGAC_BANK_ERRORS_CCID    source_38
107176   , h4.ASP_DISC_TAKEN_CCID    source_39
107177   , h4.ASP_AUTO_OFFSET_FLAG    source_42
107178   , fvl42.meaning   source_42_meaning
107179   , h2.CGAC_GAIN_CCID    source_44
107180   , h4.ASP_GAIN_CCID    source_45
107181   , h2.CGAC_LOSS_CCID    source_46
107182   , h4.ASP_LOSS_CCID    source_47
107183   , h4.ASP_ROUNDING_ERROR_CCID    source_49
107184   , h4.ASP_WHEN_TO_ACCOUNT_PMT    source_50
107185   , h2.AC_VENDOR_ID    source_65
107186   , h2.AC_VENDOR_SITE_ID    source_66
107187   , h2.THIRD_PARTY_TYPE    source_67
107188   , h2.PAYMENT_TYPE    source_71
107189   , fvl71.meaning   source_71_meaning
107190   , h2.APH_BANK_CURRENCY_CODE    source_113
107191   , h2.APH_BANK_TO_BASE_XRATE_DATE    source_114
107192   , h2.APH_BANK_TO_BASE_XRATE    source_115
107193   , h2.APH_BANK_TO_BASE_XRATE_TYPE    source_116
107194   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_117
107195   , fvl117.meaning   source_117_meaning
107196   , h2.AC_FUTURE_PAY_DUE_DATE    source_118
107200   , h2.AC_DOC_CATEGORY_CODE    source_156
107197   , h2.AC_EXCHANGE_DATE    source_121
107198   , h2.AC_EXCHANGE_RATE    source_122
107199   , h2.AC_EXCHANGE_RATE_TYPE    source_123
107201   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_157
107202   FROM xla_events_gt     xet 
107203   , AP_PAYMENT_EXTRACT_HEADER_V  h2
107204   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
107205   , fnd_lookup_values    fvl15
107206   , fnd_lookup_values    fvl16
107207   , fnd_lookup_values    fvl42
107208   , fnd_lookup_values    fvl71
107209   , fnd_lookup_values    fvl117
107210  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
107211    and xet.event_class_code = C_EVENT_CLASS_CODE
107212    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
107213  AND h4.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
107214   AND fvl15.lookup_code(+)         = h4.ASP_DISCOUNT_DIST_METHOD
107215   AND fvl15.view_application_id(+) = 200
107216   AND fvl15.language(+)            = USERENV('LANG')
107217      AND fvl16.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
107218   AND fvl16.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
107219   AND fvl16.view_application_id(+) = 200
107220   AND fvl16.language(+)            = USERENV('LANG')
107221      AND fvl42.lookup_type(+)         = 'YES_NO'
107222   AND fvl42.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
107223   AND fvl42.view_application_id(+) = 0
107224   AND fvl42.language(+)            = USERENV('LANG')
107225      AND fvl71.lookup_type(+)         = 'PAYMENT TYPE'
107226   AND fvl71.lookup_code(+)         = h2.PAYMENT_TYPE
107227   AND fvl71.view_application_id(+) = 200
107228   AND fvl71.language(+)            = USERENV('LANG')
107229      AND fvl117.lookup_type(+)         = 'YES_NO'
107230   AND fvl117.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
107231   AND fvl117.view_application_id(+) = 0
107232   AND fvl117.language(+)            = USERENV('LANG')
107233   
107234  ORDER BY event_id
107235 ;
107236 
107237 
107238 --
107239 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
107240 IS
107241 SELECT  /*+ leading(xet) cardinality(xet,1) */
107242 -- Event Class Code: RECONCILED PAYMENTS
107243     xet.entity_id
107244    ,xet.legal_entity_id
107245    ,xet.entity_code
107246    ,xet.transaction_number
107247    ,xet.event_id
107248    ,xet.event_class_code
107249    ,xet.event_type_code
107250    ,xet.event_number
107251    ,xet.event_date
107252    ,xet.transaction_date
107253    ,xet.reference_num_1
107254    ,xet.reference_num_2
107255    ,xet.reference_num_3
107256    ,xet.reference_num_4
107257    ,xet.reference_char_1
107258    ,xet.reference_char_2
107259    ,xet.reference_char_3
107260    ,xet.reference_char_4
107261    ,xet.reference_date_1
107262    ,xet.reference_date_2
107263    ,xet.reference_date_3
107264    ,xet.reference_date_4
107265    ,xet.event_created_by
107266    ,xet.budgetary_control_flag
107267  , l1.LINE_NUMBER  
107268   , l1.RELATED_INV_DIST_DEST_TYPE    source_19
107269   , fvl19.meaning   source_19_meaning
107270   , l1.APHD_PAYMENT_BASE_AMT    source_21
107271   , l1.APHD_CLEARING_BASE_AMT    source_22
107272   , l1.AID_DIST_CCID    source_29
107273   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_32
107274   , fvl32.meaning   source_32_meaning
107275   , l1.AID_RET_RELATED_DIST_CCID    source_35
107276   , l1.AWT_RELATED_DIST_ACCOUNT    source_36
107277   , l1.POD_CCID    source_40
107278   , l1.PO_VARIANCE_ACCOUNT    source_41
107279   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_51
107280   , fvl51.meaning   source_51_meaning
107281   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_52
107282   , l1.APHD_AMOUNT    source_53
107283   , l1.BUS_FLOW_AP_APP_ID    source_54
107284   , l1.BUS_FLOW_PAYMENT_DIST_TYPE    source_55
107285   , l1.BUS_FLOW_PAYMENT_ENTITY_CODE    source_56
107286   , l1.BUS_FLOW_PAYMENT_DIST_ID    source_57
107287   , l1.BUS_FLOW_PAYMENT_ID    source_58
107288   , l1.APHD_PAYMENT_HIST_DIST_ID    source_59
107289   , l1.DISTRIBUTION_LINK_TYPE    source_60
107290   , l3.POH_RATE_DATE    source_61
107291   , l3.POH_RATE    source_62
107292   , l3.POH_RATE_TYPE    source_63
107293   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_64
107294   , fvl64.meaning   source_64_meaning
107295   , l1.APHD_REV_PAY_HIST_DIST_ID    source_68
107296   , l5.TAX_LINE_ID    source_69
107297   , l5.SUMMARY_TAX_LINE_ID    source_70
107298   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_111
107299   , fvl111.meaning   source_111_meaning
107300   , l1.AI_INVOICE_TYPE_PAID    source_112
107301   , fvl112.meaning   source_112_meaning
107302   , l1.APHD_INVOICE_BASE_AMT    source_119
107303   , l1.INV_CLR_BASE_AMT_DIFF    source_134
107304   , l1.MAT_CLR_GAIN_LOSS_INDICATOR    source_136
107305   , l1.MAT_CLR_BASE_AMT_DIFF    source_137
107306   , l1.PMT_CLR_GAIN_LOSS_INDICATOR    source_138
107307   , l1.PMT_CLR_BASE_AMT_DIFF    source_139
107308   , l1.BF_RETAINED_INV_DIST_ID_CLR    source_151
107309   , l1.BF_RETAINED_INV_ID_CLR    source_152
107310   , l1.AWT_AT_PMT_TIME    source_155
107311   , fvl155.meaning   source_155_meaning
107312   FROM xla_events_gt     xet 
107313   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
107314   , AP_PO_HEADERS_EXTRACT_V  l3
107315   , ZX_AP_DEF_TAX_EXTRACT_V  l5
107316   , fnd_lookup_values    fvl19
107317   , fnd_lookup_values    fvl32
107318   , fnd_lookup_values    fvl51
107319   , fnd_lookup_values    fvl64
107320   , fnd_lookup_values    fvl111
107321   , fnd_lookup_values    fvl112
107322   , fnd_lookup_values    fvl155
107323  WHERE xet.event_id between x_first_event_id and x_last_event_id
107324    and xet.event_date between p_pad_start_date and p_pad_end_date
107325    and xet.event_class_code = C_EVENT_CLASS_CODE
107326    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
107327  AND l1.POD_PO_Header_Id  = l3.PO_Header_Id (+)  AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+)    AND fvl19.lookup_type(+)         = 'DESTINATION TYPE'
107331      AND fvl32.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
107328   AND fvl19.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
107329   AND fvl19.view_application_id(+) = 201
107330   AND fvl19.language(+)            = USERENV('LANG')
107332   AND fvl32.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
107333   AND fvl32.view_application_id(+) = 200
107334   AND fvl32.language(+)            = USERENV('LANG')
107335      AND fvl51.lookup_type(+)         = 'PAY_DIST_TYPES'
107336   AND fvl51.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
107337   AND fvl51.view_application_id(+) = 200
107338   AND fvl51.language(+)            = USERENV('LANG')
107339      AND fvl64.lookup_type(+)         = 'YES_NO'
107340   AND fvl64.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
107341   AND fvl64.view_application_id(+) = 0
107342   AND fvl64.language(+)            = USERENV('LANG')
107343      AND fvl111.lookup_type(+)         = 'YES_NO'
107344   AND fvl111.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
107345   AND fvl111.view_application_id(+) = 0
107346   AND fvl111.language(+)            = USERENV('LANG')
107347      AND fvl112.lookup_type(+)         = 'INVOICE TYPE'
107348   AND fvl112.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
107349   AND fvl112.view_application_id(+) = 200
107350   AND fvl112.language(+)            = USERENV('LANG')
107351      AND fvl155.lookup_type(+)         = 'YES_NO'
107352   AND fvl155.lookup_code(+)         = l1.AWT_AT_PMT_TIME
107353   AND fvl155.view_application_id(+) = 0
107354   AND fvl155.language(+)            = USERENV('LANG')
107355   ;
107356 
107357 --
107358 BEGIN
107359 IF g_log_enabled THEN
107360    l_log_module := C_DEFAULT_MODULE||'.EventClass_169';
107361 END IF;
107362 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107363    trace
107364       (p_msg      => 'BEGIN of EventClass_169'
107365       ,p_level    => C_LEVEL_PROCEDURE
107366       ,p_module   => l_log_module);
107367 END IF;
107368 
107369 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107370    trace
107371       (p_msg      => 'p_application_id = '||p_application_id||
107372                      ' - p_base_ledger_id = '||p_base_ledger_id||
107373                      ' - p_target_ledger_id  = '||p_target_ledger_id||
107374                      ' - p_language = '||p_language||
107375                      ' - p_currency_code = '||p_currency_code||
107376                      ' - p_sla_ledger_id = '||p_sla_ledger_id
107377       ,p_level    => C_LEVEL_STATEMENT
107378       ,p_module   => l_log_module);
107379 END IF;
107380 --
107381 -- initialze arrays
107382 --
107383 g_array_event.DELETE;
107384 l_rec_array_event := l_null_rec_array_event;
107385 --
107386 --------------------------------------
107387 -- 4262811 Initialze MPA Line Number
107388 --------------------------------------
107389 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
107390 
107391 --
107392 
107393 --
107394 OPEN header_cur;
107395 --
107396 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107397    trace
107398    (p_msg      => 'SQL - FETCH header_cur'
107399    ,p_level    => C_LEVEL_STATEMENT
107400    ,p_module   => l_log_module);
107401 END IF;
107402 --
107403 LOOP
107404 FETCH header_cur BULK COLLECT INTO
107405         l_array_entity_id
107406       , l_array_legal_entity_id
107407       , l_array_entity_code
107408       , l_array_transaction_num
107409       , l_array_event_id
107410       , l_array_class_code
107411       , l_array_event_type
107412       , l_array_event_number
107413       , l_array_event_date
107414       , l_array_transaction_date
107415       , l_array_reference_num_1
107416       , l_array_reference_num_2
107417       , l_array_reference_num_3
107418       , l_array_reference_num_4
107419       , l_array_reference_char_1
107420       , l_array_reference_char_2
107421       , l_array_reference_char_3
107422       , l_array_reference_char_4
107423       , l_array_reference_date_1
107424       , l_array_reference_date_2
107425       , l_array_reference_date_3
107426       , l_array_reference_date_4
107427       , l_array_event_created_by
107428       , l_array_budgetary_control_flag 
107429       , l_array_source_5
107430       , l_array_source_8
107431       , l_array_source_9
107432       , l_array_source_10
107433       , l_array_source_11
107434       , l_array_source_12
107435       , l_array_source_13
107436       , l_array_source_14
107437       , l_array_source_15
107438       , l_array_source_15_meaning
107439       , l_array_source_16
107440       , l_array_source_16_meaning
107441       , l_array_source_17
107442       , l_array_source_20
107443       , l_array_source_27
107444       , l_array_source_28
107445       , l_array_source_34
107446       , l_array_source_37
107447       , l_array_source_38
107448       , l_array_source_39
107449       , l_array_source_42
107450       , l_array_source_42_meaning
107451       , l_array_source_44
107452       , l_array_source_45
107453       , l_array_source_46
107454       , l_array_source_47
107455       , l_array_source_49
107456       , l_array_source_50
107457       , l_array_source_65
107458       , l_array_source_66
107459       , l_array_source_67
107460       , l_array_source_71
107461       , l_array_source_71_meaning
107462       , l_array_source_113
107463       , l_array_source_114
107464       , l_array_source_115
107465       , l_array_source_116
107466       , l_array_source_117
107467       , l_array_source_117_meaning
107468       , l_array_source_118
107469       , l_array_source_121
107470       , l_array_source_122
107471       , l_array_source_123
107472       , l_array_source_156
107473       , l_array_source_157
107474       LIMIT l_rows;
107475 --
107476 IF (C_LEVEL_EVENT >= g_log_level) THEN
107477    trace
107478    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
107482 --
107479    ,p_level    => C_LEVEL_EVENT
107480    ,p_module   => l_log_module);
107481 END IF;
107483 EXIT WHEN l_array_entity_id.COUNT = 0;
107484 
107485 -- initialize arrays
107486 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
107487 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
107488 
107489 --
107490 -- Bug 4458708
107491 --
107492 XLA_AE_LINES_PKG.g_LineNumber := 0;
107493 
107494 
107495 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
107496 g_last_hdr_idx := l_array_event_id.LAST;
107497 --
107498 -- loop for the headers. Each iteration is for each header extract row
107499 -- fetched in header cursor
107500 --
107501 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
107502 
107503 --
107504 -- set event info as cache for other routines to refer event attributes
107505 --
107506 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
107507    (p_application_id           => p_application_id
107508    ,p_primary_ledger_id        => p_primary_ledger_id
107509    ,p_base_ledger_id           => p_base_ledger_id
107510    ,p_target_ledger_id         => p_target_ledger_id
107511    ,p_entity_id                => l_array_entity_id(hdr_idx)
107512    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
107513    ,p_entity_code              => l_array_entity_code(hdr_idx)
107514    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
107515    ,p_event_id                 => l_array_event_id(hdr_idx)
107516    ,p_event_class_code         => l_array_class_code(hdr_idx)
107517    ,p_event_type_code          => l_array_event_type(hdr_idx)
107518    ,p_event_number             => l_array_event_number(hdr_idx)
107519    ,p_event_date               => l_array_event_date(hdr_idx)
107520    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
107521    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
107522    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
107523    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
107524    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
107525    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
107526    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
107527    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
107528    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
107529    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
107530    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
107531    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
107532    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
107533    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
107534    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
107535 
107536 --
107537 -- set the status of entry to C_VALID (0)
107538 --
107539 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
107540 
107541 --
107542 -- initialize a row for ae header
107543 --
107544 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
107545 
107546 l_event_id := l_array_event_id(hdr_idx);
107547 
107548 --
107549 -- storing the hdr_idx for event. May be used by line cursor.
107550 --
107551 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
107552 
107553 --
107554 -- store sources from header extract. This can be improved to
107555 -- store only those sources from header extract that may be used in lines
107556 --
107557 
107558 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
107559 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
107560 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
107561 g_array_event(l_event_id).array_value_date('source_10') := l_array_source_10(hdr_idx);
107562 g_array_event(l_event_id).array_value_char('source_11') := l_array_source_11(hdr_idx);
107563 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
107564 g_array_event(l_event_id).array_value_num('source_13') := l_array_source_13(hdr_idx);
107565 g_array_event(l_event_id).array_value_num('source_14') := l_array_source_14(hdr_idx);
107566 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
107567 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
107568 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
107569 g_array_event(l_event_id).array_value_char('source_16_meaning') := l_array_source_16_meaning(hdr_idx);
107570 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
107571 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
107572 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
107573 g_array_event(l_event_id).array_value_char('source_28') := l_array_source_28(hdr_idx);
107574 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
107575 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
107576 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
107577 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
107578 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
107579 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
107580 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
107581 g_array_event(l_event_id).array_value_num('source_45') := l_array_source_45(hdr_idx);
107582 g_array_event(l_event_id).array_value_num('source_46') := l_array_source_46(hdr_idx);
107583 g_array_event(l_event_id).array_value_num('source_47') := l_array_source_47(hdr_idx);
107584 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
107585 g_array_event(l_event_id).array_value_char('source_50') := l_array_source_50(hdr_idx);
107589 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
107586 g_array_event(l_event_id).array_value_num('source_65') := l_array_source_65(hdr_idx);
107587 g_array_event(l_event_id).array_value_num('source_66') := l_array_source_66(hdr_idx);
107588 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
107590 g_array_event(l_event_id).array_value_char('source_71_meaning') := l_array_source_71_meaning(hdr_idx);
107591 g_array_event(l_event_id).array_value_char('source_113') := l_array_source_113(hdr_idx);
107592 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
107593 g_array_event(l_event_id).array_value_num('source_115') := l_array_source_115(hdr_idx);
107594 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
107595 g_array_event(l_event_id).array_value_char('source_117') := l_array_source_117(hdr_idx);
107596 g_array_event(l_event_id).array_value_char('source_117_meaning') := l_array_source_117_meaning(hdr_idx);
107597 g_array_event(l_event_id).array_value_date('source_118') := l_array_source_118(hdr_idx);
107598 g_array_event(l_event_id).array_value_date('source_121') := l_array_source_121(hdr_idx);
107599 g_array_event(l_event_id).array_value_num('source_122') := l_array_source_122(hdr_idx);
107600 g_array_event(l_event_id).array_value_char('source_123') := l_array_source_123(hdr_idx);
107601 g_array_event(l_event_id).array_value_char('source_156') := l_array_source_156(hdr_idx);
107602 g_array_event(l_event_id).array_value_num('source_157') := l_array_source_157(hdr_idx);
107603 
107604 --
107605 -- initilaize the status of ae headers for diffrent balance types
107606 -- the status is initialised to C_NOT_CREATED (2)
107607 --
107608 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
107609 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
107610 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
107611 
107612 --
107613 -- call api to validate and store accounting attributes for header
107614 --
107615 
107616 ------------------------------------------------------------
107617 -- Accrual Reversal : to get date for Standard Source (NONE)
107618 ------------------------------------------------------------
107619 l_acc_rev_gl_date_source := NULL;
107620 
107621      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
107622       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_156');
107623      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
107624       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_157');
107625      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
107626       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_8');
107627      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
107628       l_rec_acct_attrs.array_date_value(4) := 
107629 xla_ae_sources_pkg.GetSystemSourceDate(
107630    p_source_code           => 'XLA_EVENT_DATE'
107631  , p_source_type_code      => 'Y'
107632  , p_source_application_id =>  602
107633 );
107634 
107635 
107636 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
107637 
107638 XLA_AE_HEADER_PKG.SetJeCategoryName;
107639 
107640 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
107641 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
107642 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
107643 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
107644 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
107645 
107646 
107647 --
107648 xla_ae_header_pkg.SetHdrDescription(
107649    p_description => Description_2 (
107650    p_application_id => p_application_id 
107651  , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
107652  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
107653  , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
107654  , p_source_10 => g_array_event(l_event_id).array_value_date('source_10')
107655  , p_source_11 => g_array_event(l_event_id).array_value_char('source_11')
107656  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
107657    )
107658 );
107659 --
107660 
107661 -- No header level analytical criteria
107662 
107663 --
107664 --accounting attribute enhancement, bug 3612931
107665 --
107666 l_trx_reversal_source := SUBSTR(NULL, 1,30);
107667 
107668 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
107669    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
107670 
107671    xla_accounting_err_pkg.build_message
107672       (p_appli_s_name            => 'XLA'
107673       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
107674       ,p_token_1                 => 'ACCT_ATTR_NAME'
107675       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
107676       ,p_token_2                 => 'PRODUCT_NAME'
107677       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
107678       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
107679       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
107680       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
107681 
107682 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
107683    --
107684    -- following sets the accounting attributes needed to reverse
107685    -- accounting for a distributeion
107686    --
107687    xla_ae_lines_pkg.SetTrxReversalAttrs
107688       (p_event_id              => l_event_id
107689       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
107690       ,p_trx_reversal_source   => l_trx_reversal_source);
107694 
107691 
107692 END IF;
107693 
107695 ----------------------------------------------------------------
107696 -- 4262811 -  update the header statuses to invalid in need be
107697 ----------------------------------------------------------------
107698 --
107699 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
107700 
107701 
107702   -----------------------------------------------
107703   -- No accrual reversal for the event class/type
107704   -----------------------------------------------
107705 ----------------------------------------------------------------
107706 
107707 --
107708 -- this ends the header loop iteration for one bulk fetch
107709 --
107710 END LOOP;
107711 
107712 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
107713 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
107714 
107715 --
107716 -- insert dummy rows into lines gt table that were created due to
107717 -- transaction reversals
107718 --
107719 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
107720    l_result := XLA_AE_LINES_PKG.InsertLines;
107721 END IF;
107722 
107723 --
107724 -- reset the temp_line_num for each set of events fetched from header
107725 -- cursor rather than doing it for each new event in line cursor
107726 -- Bug 3939231
107727 --
107728 xla_ae_lines_pkg.g_temp_line_num := 0;
107729 
107730 
107731 
107732 --
107733 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
107734 --
107735 --
107736 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107737 
107738       trace
107739          (p_msg      => 'SQL - FETCH line_cur'
107740          ,p_level    => C_LEVEL_STATEMENT
107741          ,p_module   => l_log_module);
107742 
107743 END IF;
107744 --
107745 --
107746 LOOP
107747   --
107748   FETCH line_cur BULK COLLECT INTO
107749         l_array_entity_id
107750       , l_array_legal_entity_id
107751       , l_array_entity_code
107752       , l_array_transaction_num
107753       , l_array_event_id
107754       , l_array_class_code
107755       , l_array_event_type
107756       , l_array_event_number
107757       , l_array_event_date
107758       , l_array_transaction_date
107759       , l_array_reference_num_1
107760       , l_array_reference_num_2
107761       , l_array_reference_num_3
107762       , l_array_reference_num_4
107763       , l_array_reference_char_1
107764       , l_array_reference_char_2
107765       , l_array_reference_char_3
107766       , l_array_reference_char_4
107767       , l_array_reference_date_1
107768       , l_array_reference_date_2
107769       , l_array_reference_date_3
107770       , l_array_reference_date_4
107771       , l_array_event_created_by
107772       , l_array_budgetary_control_flag
107773       , l_array_extract_line_num 
107774       , l_array_source_19
107775       , l_array_source_19_meaning
107776       , l_array_source_21
107777       , l_array_source_22
107778       , l_array_source_29
107779       , l_array_source_32
107780       , l_array_source_32_meaning
107781       , l_array_source_35
107782       , l_array_source_36
107783       , l_array_source_40
107784       , l_array_source_41
107785       , l_array_source_51
107786       , l_array_source_51_meaning
107787       , l_array_source_52
107788       , l_array_source_53
107789       , l_array_source_54
107790       , l_array_source_55
107791       , l_array_source_56
107792       , l_array_source_57
107793       , l_array_source_58
107794       , l_array_source_59
107795       , l_array_source_60
107796       , l_array_source_61
107797       , l_array_source_62
107798       , l_array_source_63
107799       , l_array_source_64
107800       , l_array_source_64_meaning
107801       , l_array_source_68
107802       , l_array_source_69
107803       , l_array_source_70
107804       , l_array_source_111
107805       , l_array_source_111_meaning
107806       , l_array_source_112
107807       , l_array_source_112_meaning
107808       , l_array_source_119
107809       , l_array_source_134
107810       , l_array_source_136
107811       , l_array_source_137
107812       , l_array_source_138
107813       , l_array_source_139
107814       , l_array_source_151
107815       , l_array_source_152
107816       , l_array_source_155
107817       , l_array_source_155_meaning
107818       LIMIT l_rows;
107819 
107820   --
107821   IF (C_LEVEL_EVENT >= g_log_level) THEN
107822             trace
107823                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
107824                ,p_level    => C_LEVEL_EVENT
107825                ,p_module   => l_log_module);
107826   END IF;
107827   --
107828   EXIT WHEN l_array_entity_id.count = 0;
107829 
107830   XLA_AE_LINES_PKG.g_rec_lines := null;
107831 
107832 --
107833 -- Bug 4458708
107834 --
107835 XLA_AE_LINES_PKG.g_LineNumber := 0;
107836 --
107837 --
107838 
107839 FOR Idx IN 1..l_array_event_id.count LOOP
107840    --
107841    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
107842    --
107843    l_event_id := l_array_event_id(idx);  -- 5648433
107844 
107845    --
107846    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
107847    --
107848 
107849    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
107850              (g_array_event(l_event_id).array_value_num('header_index'))
107851          ,'N'
107852          ) <> 'Y'
107853    THEN
107854       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107855          trace
107856             (p_msg      => 'Trancaction revesal option is not Y '
107857             ,p_level    => C_LEVEL_STATEMENT
107858             ,p_module   => l_log_module);
107862 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
107859       END IF;
107860 
107861 --
107863 --
107864 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
107865 --
107866 -- set event info as cache for other routines to refer event attributes
107867 --
107868 
107869 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
107870    l_previous_event_id := l_event_id;
107871 
107872    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
107873       (p_application_id           => p_application_id
107874       ,p_primary_ledger_id        => p_primary_ledger_id
107875       ,p_base_ledger_id           => p_base_ledger_id
107876       ,p_target_ledger_id         => p_target_ledger_id
107877       ,p_entity_id                => l_array_entity_id(Idx)
107878       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
107879       ,p_entity_code              => l_array_entity_code(Idx)
107880       ,p_transaction_num          => l_array_transaction_num(Idx)
107881       ,p_event_id                 => l_array_event_id(Idx)
107882       ,p_event_class_code         => l_array_class_code(Idx)
107883       ,p_event_type_code          => l_array_event_type(Idx)
107884       ,p_event_number             => l_array_event_number(Idx)
107885       ,p_event_date               => l_array_event_date(Idx)
107886       ,p_transaction_date         => l_array_transaction_date(Idx)
107887       ,p_reference_num_1          => l_array_reference_num_1(Idx)
107888       ,p_reference_num_2          => l_array_reference_num_2(Idx)
107889       ,p_reference_num_3          => l_array_reference_num_3(Idx)
107890       ,p_reference_num_4          => l_array_reference_num_4(Idx)
107891       ,p_reference_char_1         => l_array_reference_char_1(Idx)
107892       ,p_reference_char_2         => l_array_reference_char_2(Idx)
107893       ,p_reference_char_3         => l_array_reference_char_3(Idx)
107894       ,p_reference_char_4         => l_array_reference_char_4(Idx)
107895       ,p_reference_date_1         => l_array_reference_date_1(Idx)
107896       ,p_reference_date_2         => l_array_reference_date_2(Idx)
107897       ,p_reference_date_3         => l_array_reference_date_3(Idx)
107898       ,p_reference_date_4         => l_array_reference_date_4(Idx)
107899       ,p_event_created_by         => l_array_event_created_by(Idx)
107900       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
107901        --
107902 END IF;
107903 
107904 
107905 
107906 --
107907 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
107908 
107909 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
107910 
107911 IF l_continue_with_lines THEN
107912    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
107913       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
107914 
107915       xla_accounting_err_pkg.build_message
107916          (p_appli_s_name            => 'XLA'
107917          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
107918          ,p_token_1                 => 'LINE_NUMBER'
107919          ,p_value_1                 => l_array_extract_line_num(Idx)
107920          ,p_token_2                 => 'PRODUCT_NAME'
107921          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
107922          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
107923          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
107924          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
107925 
107926    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
107927       --
107928       -- following sets the accounting attributes needed to reverse
107929       -- accounting for a distributeion
107930       --
107931 
107932       --
107933       -- 5217187
107934       --
107935       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
107936       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
107937                                        g_array_event(l_event_id).array_value_num('header_index'));
107938       --
107939       --
107940 
107941       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
107942       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_52(Idx);
107943       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
107944       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_59(Idx);
107945       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
107946       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_60(Idx);
107947       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
107948       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_67');
107949       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
107950       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_68(Idx);
107951       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
107952       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_60(Idx);
107953       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
107954       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_69(Idx);
107955       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
107956       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_69(Idx);
107957       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
107958       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_70(Idx);
107959 
107960 
107961       xla_ae_lines_pkg.SetAcctReversalAttrs
107962          (p_event_id             => l_event_id
107963          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
107964          ,p_calculate_acctd_flag => l_calculate_acctd_flag
107965          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
107966    END IF;
107967 
107968    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
107972 AcctLineType_39 (
107969        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
107970 
107971 --
107973  p_application_id  => p_application_id
107974  ,p_event_id     => l_event_id
107975  ,p_calculate_acctd_flag => l_calculate_acctd_flag
107976  ,p_calculate_g_l_flag => l_calculate_g_l_flag
107977  ,p_actual_flag => l_actual_flag
107978  ,p_balance_type_code => l_balance_type_code
107979  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
107980  
107981  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
107982  , p_source_22 => l_array_source_22(Idx)
107983  , p_source_32 => l_array_source_32(Idx)
107984  , p_source_32_meaning => l_array_source_32_meaning(Idx)
107985  , p_source_40 => l_array_source_40(Idx)
107986  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
107987  , p_source_51 => l_array_source_51(Idx)
107988  , p_source_51_meaning => l_array_source_51_meaning(Idx)
107989  , p_source_52 => l_array_source_52(Idx)
107990  , p_source_53 => l_array_source_53(Idx)
107991  , p_source_54 => l_array_source_54(Idx)
107992  , p_source_55 => l_array_source_55(Idx)
107993  , p_source_56 => l_array_source_56(Idx)
107994  , p_source_57 => l_array_source_57(Idx)
107995  , p_source_58 => l_array_source_58(Idx)
107996  , p_source_59 => l_array_source_59(Idx)
107997  , p_source_60 => l_array_source_60(Idx)
107998  , p_source_61 => l_array_source_61(Idx)
107999  , p_source_62 => l_array_source_62(Idx)
108000  , p_source_63 => l_array_source_63(Idx)
108001  , p_source_64 => l_array_source_64(Idx)
108002  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108003  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108004  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108005  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108006  , p_source_68 => l_array_source_68(Idx)
108007  , p_source_69 => l_array_source_69(Idx)
108008  , p_source_70 => l_array_source_70(Idx)
108009  );
108010 If(l_balance_type_code = 'A') THEN
108011   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108012 END IF;
108013 
108014 --
108015 
108016 
108017 --
108018 AcctLineType_44 (
108019  p_application_id  => p_application_id
108020  ,p_event_id     => l_event_id
108021  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108022  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108023  ,p_actual_flag => l_actual_flag
108024  ,p_balance_type_code => l_balance_type_code
108025  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108026  
108027  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108028  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108029  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
108030  , p_source_19 => l_array_source_19(Idx)
108031  , p_source_19_meaning => l_array_source_19_meaning(Idx)
108032  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
108033  , p_source_21 => l_array_source_21(Idx)
108034  , p_source_22 => l_array_source_22(Idx)
108035  , p_source_29 => l_array_source_29(Idx)
108036  , p_source_32 => l_array_source_32(Idx)
108037  , p_source_32_meaning => l_array_source_32_meaning(Idx)
108038  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
108039  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
108040  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108041  , p_source_51 => l_array_source_51(Idx)
108042  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108043  , p_source_52 => l_array_source_52(Idx)
108044  , p_source_53 => l_array_source_53(Idx)
108045  , p_source_54 => l_array_source_54(Idx)
108046  , p_source_55 => l_array_source_55(Idx)
108047  , p_source_56 => l_array_source_56(Idx)
108048  , p_source_57 => l_array_source_57(Idx)
108049  , p_source_58 => l_array_source_58(Idx)
108050  , p_source_59 => l_array_source_59(Idx)
108051  , p_source_60 => l_array_source_60(Idx)
108052  , p_source_64 => l_array_source_64(Idx)
108053  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108054  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108055  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108056  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108057  , p_source_68 => l_array_source_68(Idx)
108058  , p_source_69 => l_array_source_69(Idx)
108059  , p_source_70 => l_array_source_70(Idx)
108060  );
108061 If(l_balance_type_code = 'A') THEN
108062   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108063 END IF;
108064 
108065 --
108066 
108067 
108068 --
108069 AcctLineType_48 (
108070  p_application_id  => p_application_id
108071  ,p_event_id     => l_event_id
108072  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108073  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108074  ,p_actual_flag => l_actual_flag
108075  ,p_balance_type_code => l_balance_type_code
108076  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108077  
108078  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108079  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108080  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
108081  , p_source_19 => l_array_source_19(Idx)
108082  , p_source_19_meaning => l_array_source_19_meaning(Idx)
108083  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
108084  , p_source_21 => l_array_source_21(Idx)
108085  , p_source_22 => l_array_source_22(Idx)
108086  , p_source_29 => l_array_source_29(Idx)
108087  , p_source_32 => l_array_source_32(Idx)
108088  , p_source_32_meaning => l_array_source_32_meaning(Idx)
108089  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
108090  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
108091  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108092  , p_source_51 => l_array_source_51(Idx)
108096  , p_source_54 => l_array_source_54(Idx)
108093  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108094  , p_source_52 => l_array_source_52(Idx)
108095  , p_source_53 => l_array_source_53(Idx)
108097  , p_source_55 => l_array_source_55(Idx)
108098  , p_source_56 => l_array_source_56(Idx)
108099  , p_source_57 => l_array_source_57(Idx)
108100  , p_source_58 => l_array_source_58(Idx)
108101  , p_source_59 => l_array_source_59(Idx)
108102  , p_source_60 => l_array_source_60(Idx)
108103  , p_source_64 => l_array_source_64(Idx)
108104  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108105  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108106  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108107  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108108  , p_source_68 => l_array_source_68(Idx)
108109  , p_source_69 => l_array_source_69(Idx)
108110  , p_source_70 => l_array_source_70(Idx)
108111  , p_source_111 => l_array_source_111(Idx)
108112  , p_source_111_meaning => l_array_source_111_meaning(Idx)
108113  );
108114 If(l_balance_type_code = 'A') THEN
108115   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108116 END IF;
108117 
108118 --
108119 
108120 
108121 --
108122 AcctLineType_52 (
108123  p_application_id  => p_application_id
108124  ,p_event_id     => l_event_id
108125  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108126  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108127  ,p_actual_flag => l_actual_flag
108128  ,p_balance_type_code => l_balance_type_code
108129  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108130  
108131  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108132  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108133  , p_source_22 => l_array_source_22(Idx)
108134  , p_source_29 => l_array_source_29(Idx)
108135  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
108136  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108137  , p_source_51 => l_array_source_51(Idx)
108138  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108139  , p_source_52 => l_array_source_52(Idx)
108140  , p_source_53 => l_array_source_53(Idx)
108141  , p_source_54 => l_array_source_54(Idx)
108142  , p_source_55 => l_array_source_55(Idx)
108143  , p_source_56 => l_array_source_56(Idx)
108144  , p_source_57 => l_array_source_57(Idx)
108145  , p_source_58 => l_array_source_58(Idx)
108146  , p_source_59 => l_array_source_59(Idx)
108147  , p_source_60 => l_array_source_60(Idx)
108148  , p_source_64 => l_array_source_64(Idx)
108149  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108150  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108151  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108152  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108153  , p_source_68 => l_array_source_68(Idx)
108154  , p_source_69 => l_array_source_69(Idx)
108155  , p_source_70 => l_array_source_70(Idx)
108156  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
108157  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108158  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108159  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108160  );
108161 If(l_balance_type_code = 'A') THEN
108162   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108163 END IF;
108164 
108165 --
108166 
108167 
108168 --
108169 AcctLineType_53 (
108170  p_application_id  => p_application_id
108171  ,p_event_id     => l_event_id
108172  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108173  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108174  ,p_actual_flag => l_actual_flag
108175  ,p_balance_type_code => l_balance_type_code
108176  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108177  
108178  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108179  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108180  , p_source_22 => l_array_source_22(Idx)
108181  , p_source_29 => l_array_source_29(Idx)
108182  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
108183  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108184  , p_source_51 => l_array_source_51(Idx)
108185  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108186  , p_source_52 => l_array_source_52(Idx)
108187  , p_source_53 => l_array_source_53(Idx)
108188  , p_source_54 => l_array_source_54(Idx)
108189  , p_source_55 => l_array_source_55(Idx)
108190  , p_source_56 => l_array_source_56(Idx)
108191  , p_source_57 => l_array_source_57(Idx)
108192  , p_source_58 => l_array_source_58(Idx)
108193  , p_source_59 => l_array_source_59(Idx)
108194  , p_source_60 => l_array_source_60(Idx)
108195  , p_source_64 => l_array_source_64(Idx)
108196  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108197  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108198  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108199  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108200  , p_source_68 => l_array_source_68(Idx)
108201  , p_source_69 => l_array_source_69(Idx)
108202  , p_source_70 => l_array_source_70(Idx)
108203  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
108204  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108205  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108206  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108207  );
108208 If(l_balance_type_code = 'A') THEN
108209   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108210 END IF;
108211 
108212 --
108213 
108214 
108215 --
108216 AcctLineType_54 (
108217  p_application_id  => p_application_id
108218  ,p_event_id     => l_event_id
108219  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108223  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108220  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108221  ,p_actual_flag => l_actual_flag
108222  ,p_balance_type_code => l_balance_type_code
108224  
108225  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108226  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
108227  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108228  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108229  , p_source_22 => l_array_source_22(Idx)
108230  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108231  , p_source_51 => l_array_source_51(Idx)
108232  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108233  , p_source_52 => l_array_source_52(Idx)
108234  , p_source_53 => l_array_source_53(Idx)
108235  , p_source_54 => l_array_source_54(Idx)
108236  , p_source_55 => l_array_source_55(Idx)
108237  , p_source_56 => l_array_source_56(Idx)
108238  , p_source_57 => l_array_source_57(Idx)
108239  , p_source_58 => l_array_source_58(Idx)
108240  , p_source_59 => l_array_source_59(Idx)
108241  , p_source_60 => l_array_source_60(Idx)
108242  , p_source_64 => l_array_source_64(Idx)
108243  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108244  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108245  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108246  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108247  , p_source_68 => l_array_source_68(Idx)
108248  , p_source_69 => l_array_source_69(Idx)
108249  , p_source_70 => l_array_source_70(Idx)
108250  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108251  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108252  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108253  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
108254  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
108255  );
108256 If(l_balance_type_code = 'A') THEN
108257   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108258 END IF;
108259 
108260 --
108261 
108262 
108263 --
108264 AcctLineType_55 (
108265  p_application_id  => p_application_id
108266  ,p_event_id     => l_event_id
108267  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108268  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108269  ,p_actual_flag => l_actual_flag
108270  ,p_balance_type_code => l_balance_type_code
108271  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108272  
108273  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108274  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
108275  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108276  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108277  , p_source_22 => l_array_source_22(Idx)
108278  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108279  , p_source_51 => l_array_source_51(Idx)
108280  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108281  , p_source_52 => l_array_source_52(Idx)
108282  , p_source_53 => l_array_source_53(Idx)
108283  , p_source_54 => l_array_source_54(Idx)
108284  , p_source_55 => l_array_source_55(Idx)
108285  , p_source_56 => l_array_source_56(Idx)
108286  , p_source_57 => l_array_source_57(Idx)
108287  , p_source_58 => l_array_source_58(Idx)
108288  , p_source_59 => l_array_source_59(Idx)
108289  , p_source_60 => l_array_source_60(Idx)
108290  , p_source_64 => l_array_source_64(Idx)
108291  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108292  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108293  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108294  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108295  , p_source_68 => l_array_source_68(Idx)
108296  , p_source_69 => l_array_source_69(Idx)
108297  , p_source_70 => l_array_source_70(Idx)
108298  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108299  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108300  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108301  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
108302  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
108303  );
108304 If(l_balance_type_code = 'A') THEN
108305   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108306 END IF;
108307 
108308 --
108309 
108310 
108311 --
108312 AcctLineType_56 (
108313  p_application_id  => p_application_id
108314  ,p_event_id     => l_event_id
108315  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108316  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108317  ,p_actual_flag => l_actual_flag
108318  ,p_balance_type_code => l_balance_type_code
108319  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108320  
108321  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108322  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
108323  , p_source_22 => l_array_source_22(Idx)
108324  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
108325  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
108326  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108327  , p_source_51 => l_array_source_51(Idx)
108328  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108329  , p_source_52 => l_array_source_52(Idx)
108330  , p_source_53 => l_array_source_53(Idx)
108331  , p_source_54 => l_array_source_54(Idx)
108332  , p_source_55 => l_array_source_55(Idx)
108333  , p_source_56 => l_array_source_56(Idx)
108334  , p_source_57 => l_array_source_57(Idx)
108335  , p_source_58 => l_array_source_58(Idx)
108336  , p_source_59 => l_array_source_59(Idx)
108337  , p_source_60 => l_array_source_60(Idx)
108338  , p_source_64 => l_array_source_64(Idx)
108342  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108339  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108340  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108341  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108343  , p_source_68 => l_array_source_68(Idx)
108344  , p_source_69 => l_array_source_69(Idx)
108345  , p_source_70 => l_array_source_70(Idx)
108346  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108347  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108348  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108349  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
108350  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
108351  );
108352 If(l_balance_type_code = 'A') THEN
108353   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108354 END IF;
108355 
108356 --
108357 
108358 
108359 --
108360 AcctLineType_57 (
108361  p_application_id  => p_application_id
108362  ,p_event_id     => l_event_id
108363  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108364  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108365  ,p_actual_flag => l_actual_flag
108366  ,p_balance_type_code => l_balance_type_code
108367  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108368  
108369  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108370  , p_source_21 => l_array_source_21(Idx)
108371  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108372  , p_source_51 => l_array_source_51(Idx)
108373  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108374  , p_source_52 => l_array_source_52(Idx)
108375  , p_source_53 => l_array_source_53(Idx)
108376  , p_source_54 => l_array_source_54(Idx)
108377  , p_source_55 => l_array_source_55(Idx)
108378  , p_source_56 => l_array_source_56(Idx)
108379  , p_source_57 => l_array_source_57(Idx)
108380  , p_source_58 => l_array_source_58(Idx)
108381  , p_source_59 => l_array_source_59(Idx)
108382  , p_source_60 => l_array_source_60(Idx)
108383  , p_source_64 => l_array_source_64(Idx)
108384  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108385  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108386  , p_source_68 => l_array_source_68(Idx)
108387  , p_source_69 => l_array_source_69(Idx)
108388  , p_source_70 => l_array_source_70(Idx)
108389  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
108390  );
108391 If(l_balance_type_code = 'A') THEN
108392   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108393 END IF;
108394 
108395 --
108396 
108397 
108398 --
108399 AcctLineType_58 (
108400  p_application_id  => p_application_id
108401  ,p_event_id     => l_event_id
108402  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108403  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108404  ,p_actual_flag => l_actual_flag
108405  ,p_balance_type_code => l_balance_type_code
108406  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108407  
108408  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108409  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108410  , p_source_51 => l_array_source_51(Idx)
108411  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108412  , p_source_52 => l_array_source_52(Idx)
108413  , p_source_53 => l_array_source_53(Idx)
108414  , p_source_54 => l_array_source_54(Idx)
108415  , p_source_55 => l_array_source_55(Idx)
108416  , p_source_56 => l_array_source_56(Idx)
108417  , p_source_57 => l_array_source_57(Idx)
108418  , p_source_58 => l_array_source_58(Idx)
108419  , p_source_59 => l_array_source_59(Idx)
108420  , p_source_60 => l_array_source_60(Idx)
108421  , p_source_64 => l_array_source_64(Idx)
108422  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108423  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108424  , p_source_68 => l_array_source_68(Idx)
108425  , p_source_69 => l_array_source_69(Idx)
108426  , p_source_70 => l_array_source_70(Idx)
108427  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
108428  , p_source_119 => l_array_source_119(Idx)
108429  );
108430 If(l_balance_type_code = 'A') THEN
108431   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108432 END IF;
108433 
108434 --
108435 
108436 
108437 --
108438 AcctLineType_77 (
108439  p_application_id  => p_application_id
108440  ,p_event_id     => l_event_id
108441  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108442  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108443  ,p_actual_flag => l_actual_flag
108444  ,p_balance_type_code => l_balance_type_code
108445  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108446  
108447  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108448  , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
108449  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
108450  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
108451  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108452  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108453  , p_source_21 => l_array_source_21(Idx)
108454  , p_source_29 => l_array_source_29(Idx)
108455  , p_source_32 => l_array_source_32(Idx)
108456  , p_source_32_meaning => l_array_source_32_meaning(Idx)
108457  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
108458  , p_source_40 => l_array_source_40(Idx)
108459  , p_source_41 => l_array_source_41(Idx)
108460  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108461  , p_source_51 => l_array_source_51(Idx)
108462  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108463  , p_source_52 => l_array_source_52(Idx)
108464  , p_source_53 => l_array_source_53(Idx)
108465  , p_source_54 => l_array_source_54(Idx)
108466  , p_source_55 => l_array_source_55(Idx)
108470  , p_source_59 => l_array_source_59(Idx)
108467  , p_source_56 => l_array_source_56(Idx)
108468  , p_source_57 => l_array_source_57(Idx)
108469  , p_source_58 => l_array_source_58(Idx)
108471  , p_source_60 => l_array_source_60(Idx)
108472  , p_source_64 => l_array_source_64(Idx)
108473  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108474  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108475  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108476  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108477  , p_source_68 => l_array_source_68(Idx)
108478  , p_source_69 => l_array_source_69(Idx)
108479  , p_source_70 => l_array_source_70(Idx)
108480  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
108481  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
108482  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
108483  );
108484 If(l_balance_type_code = 'A') THEN
108485   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108486 END IF;
108487 
108488 --
108489 
108490 
108491 --
108492 AcctLineType_80 (
108493  p_application_id  => p_application_id
108494  ,p_event_id     => l_event_id
108495  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108496  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108497  ,p_actual_flag => l_actual_flag
108498  ,p_balance_type_code => l_balance_type_code
108499  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108500  
108501  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108502  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108503  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108504  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
108505  , p_source_19 => l_array_source_19(Idx)
108506  , p_source_19_meaning => l_array_source_19_meaning(Idx)
108507  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
108508  , p_source_21 => l_array_source_21(Idx)
108509  , p_source_22 => l_array_source_22(Idx)
108510  , p_source_29 => l_array_source_29(Idx)
108511  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
108512  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
108513  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108514  , p_source_51 => l_array_source_51(Idx)
108515  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108516  , p_source_52 => l_array_source_52(Idx)
108517  , p_source_53 => l_array_source_53(Idx)
108518  , p_source_54 => l_array_source_54(Idx)
108519  , p_source_55 => l_array_source_55(Idx)
108520  , p_source_56 => l_array_source_56(Idx)
108521  , p_source_57 => l_array_source_57(Idx)
108522  , p_source_58 => l_array_source_58(Idx)
108523  , p_source_59 => l_array_source_59(Idx)
108524  , p_source_60 => l_array_source_60(Idx)
108525  , p_source_64 => l_array_source_64(Idx)
108526  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108527  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108528  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108529  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108530  , p_source_68 => l_array_source_68(Idx)
108531  , p_source_69 => l_array_source_69(Idx)
108532  , p_source_70 => l_array_source_70(Idx)
108533  , p_source_111 => l_array_source_111(Idx)
108534  , p_source_111_meaning => l_array_source_111_meaning(Idx)
108535  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108536  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108537  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108538  );
108539 If(l_balance_type_code = 'A') THEN
108540   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108541 END IF;
108542 
108543 --
108544 
108545 
108546 --
108547 AcctLineType_87 (
108548  p_application_id  => p_application_id
108549  ,p_event_id     => l_event_id
108550  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108551  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108552  ,p_actual_flag => l_actual_flag
108553  ,p_balance_type_code => l_balance_type_code
108554  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108555  
108556  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108557  , p_source_22 => l_array_source_22(Idx)
108558  , p_source_29 => l_array_source_29(Idx)
108559  , p_source_32 => l_array_source_32(Idx)
108560  , p_source_32_meaning => l_array_source_32_meaning(Idx)
108561  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108562  , p_source_51 => l_array_source_51(Idx)
108563  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108564  , p_source_52 => l_array_source_52(Idx)
108565  , p_source_53 => l_array_source_53(Idx)
108566  , p_source_54 => l_array_source_54(Idx)
108567  , p_source_55 => l_array_source_55(Idx)
108568  , p_source_56 => l_array_source_56(Idx)
108569  , p_source_57 => l_array_source_57(Idx)
108570  , p_source_58 => l_array_source_58(Idx)
108571  , p_source_59 => l_array_source_59(Idx)
108572  , p_source_60 => l_array_source_60(Idx)
108573  , p_source_64 => l_array_source_64(Idx)
108574  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108575  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108576  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108577  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108578  , p_source_68 => l_array_source_68(Idx)
108579  , p_source_69 => l_array_source_69(Idx)
108580  , p_source_70 => l_array_source_70(Idx)
108581  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108582  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108583  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108584  );
108585 If(l_balance_type_code = 'A') THEN
108586   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108587 END IF;
108588 
108592 --
108589 --
108590 
108591 
108593 AcctLineType_95 (
108594  p_application_id  => p_application_id
108595  ,p_event_id     => l_event_id
108596  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108597  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108598  ,p_actual_flag => l_actual_flag
108599  ,p_balance_type_code => l_balance_type_code
108600  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108601  
108602  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108603  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108604  , p_source_29 => l_array_source_29(Idx)
108605  , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
108606  , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
108607  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
108608  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
108609  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108610  , p_source_51 => l_array_source_51(Idx)
108611  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108612  , p_source_52 => l_array_source_52(Idx)
108613  , p_source_53 => l_array_source_53(Idx)
108614  , p_source_54 => l_array_source_54(Idx)
108615  , p_source_55 => l_array_source_55(Idx)
108616  , p_source_56 => l_array_source_56(Idx)
108617  , p_source_57 => l_array_source_57(Idx)
108618  , p_source_58 => l_array_source_58(Idx)
108619  , p_source_59 => l_array_source_59(Idx)
108620  , p_source_60 => l_array_source_60(Idx)
108621  , p_source_64 => l_array_source_64(Idx)
108622  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108623  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108624  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108625  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108626  , p_source_68 => l_array_source_68(Idx)
108627  , p_source_69 => l_array_source_69(Idx)
108628  , p_source_70 => l_array_source_70(Idx)
108629  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
108630  , p_source_134 => l_array_source_134(Idx)
108631  );
108632 If(l_balance_type_code = 'A') THEN
108633   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108634 END IF;
108635 
108636 --
108637 
108638 
108639 --
108640 AcctLineType_97 (
108641  p_application_id  => p_application_id
108642  ,p_event_id     => l_event_id
108643  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108644  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108645  ,p_actual_flag => l_actual_flag
108646  ,p_balance_type_code => l_balance_type_code
108647  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108648  
108649  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108650  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108651  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108652  , p_source_29 => l_array_source_29(Idx)
108653  , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
108654  , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
108655  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108656  , p_source_51 => l_array_source_51(Idx)
108657  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108658  , p_source_52 => l_array_source_52(Idx)
108659  , p_source_53 => l_array_source_53(Idx)
108660  , p_source_54 => l_array_source_54(Idx)
108661  , p_source_55 => l_array_source_55(Idx)
108662  , p_source_56 => l_array_source_56(Idx)
108663  , p_source_57 => l_array_source_57(Idx)
108664  , p_source_58 => l_array_source_58(Idx)
108665  , p_source_59 => l_array_source_59(Idx)
108666  , p_source_60 => l_array_source_60(Idx)
108667  , p_source_64 => l_array_source_64(Idx)
108668  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108669  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108670  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108671  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108672  , p_source_68 => l_array_source_68(Idx)
108673  , p_source_69 => l_array_source_69(Idx)
108674  , p_source_70 => l_array_source_70(Idx)
108675  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108676  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108677  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108678  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
108679  , p_source_136 => l_array_source_136(Idx)
108680  , p_source_137 => l_array_source_137(Idx)
108681  );
108682 If(l_balance_type_code = 'A') THEN
108683   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108684 END IF;
108685 
108686 --
108687 
108688 
108689 --
108690 AcctLineType_98 (
108691  p_application_id  => p_application_id
108692  ,p_event_id     => l_event_id
108693  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108694  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108695  ,p_actual_flag => l_actual_flag
108696  ,p_balance_type_code => l_balance_type_code
108697  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108698  
108699  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108700  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108701  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108702  , p_source_29 => l_array_source_29(Idx)
108703  , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
108704  , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
108705  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108706  , p_source_51 => l_array_source_51(Idx)
108707  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108708  , p_source_52 => l_array_source_52(Idx)
108709  , p_source_53 => l_array_source_53(Idx)
108710  , p_source_54 => l_array_source_54(Idx)
108711  , p_source_55 => l_array_source_55(Idx)
108715  , p_source_59 => l_array_source_59(Idx)
108712  , p_source_56 => l_array_source_56(Idx)
108713  , p_source_57 => l_array_source_57(Idx)
108714  , p_source_58 => l_array_source_58(Idx)
108716  , p_source_60 => l_array_source_60(Idx)
108717  , p_source_64 => l_array_source_64(Idx)
108718  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108719  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108720  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108721  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108722  , p_source_68 => l_array_source_68(Idx)
108723  , p_source_69 => l_array_source_69(Idx)
108724  , p_source_70 => l_array_source_70(Idx)
108725  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108726  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108727  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108728  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
108729  , p_source_138 => l_array_source_138(Idx)
108730  , p_source_139 => l_array_source_139(Idx)
108731  );
108732 If(l_balance_type_code = 'A') THEN
108733   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108734 END IF;
108735 
108736 --
108737 
108738 
108739 --
108740 AcctLineType_100 (
108741  p_application_id  => p_application_id
108742  ,p_event_id     => l_event_id
108743  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108744  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108745  ,p_actual_flag => l_actual_flag
108746  ,p_balance_type_code => l_balance_type_code
108747  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108748  
108749  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108750  , p_source_22 => l_array_source_22(Idx)
108751  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
108752  , p_source_28 => g_array_event(l_event_id).array_value_char('source_28')
108753  , p_source_29 => l_array_source_29(Idx)
108754  , p_source_32 => l_array_source_32(Idx)
108755  , p_source_32_meaning => l_array_source_32_meaning(Idx)
108756  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108757  , p_source_51 => l_array_source_51(Idx)
108758  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108759  , p_source_52 => l_array_source_52(Idx)
108760  , p_source_53 => l_array_source_53(Idx)
108761  , p_source_54 => l_array_source_54(Idx)
108762  , p_source_55 => l_array_source_55(Idx)
108763  , p_source_56 => l_array_source_56(Idx)
108764  , p_source_57 => l_array_source_57(Idx)
108765  , p_source_58 => l_array_source_58(Idx)
108766  , p_source_59 => l_array_source_59(Idx)
108767  , p_source_60 => l_array_source_60(Idx)
108768  , p_source_64 => l_array_source_64(Idx)
108769  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108770  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108771  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108772  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108773  , p_source_68 => l_array_source_68(Idx)
108774  , p_source_69 => l_array_source_69(Idx)
108775  , p_source_70 => l_array_source_70(Idx)
108776  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
108777  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
108778  , p_source_112 => l_array_source_112(Idx)
108779  , p_source_112_meaning => l_array_source_112_meaning(Idx)
108780  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108781  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108782  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108783  );
108784 If(l_balance_type_code = 'A') THEN
108785   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108786 END IF;
108787 
108788 --
108789 
108790 
108791 --
108792 AcctLineType_102 (
108793  p_application_id  => p_application_id
108794  ,p_event_id     => l_event_id
108795  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108796  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108797  ,p_actual_flag => l_actual_flag
108798  ,p_balance_type_code => l_balance_type_code
108799  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108800  
108801  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108802  , p_source_22 => l_array_source_22(Idx)
108803  , p_source_29 => l_array_source_29(Idx)
108804  , p_source_32 => l_array_source_32(Idx)
108805  , p_source_32_meaning => l_array_source_32_meaning(Idx)
108806  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108807  , p_source_51 => l_array_source_51(Idx)
108808  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108809  , p_source_52 => l_array_source_52(Idx)
108810  , p_source_53 => l_array_source_53(Idx)
108811  , p_source_54 => l_array_source_54(Idx)
108812  , p_source_55 => l_array_source_55(Idx)
108813  , p_source_56 => l_array_source_56(Idx)
108814  , p_source_57 => l_array_source_57(Idx)
108815  , p_source_58 => l_array_source_58(Idx)
108816  , p_source_59 => l_array_source_59(Idx)
108817  , p_source_60 => l_array_source_60(Idx)
108818  , p_source_64 => l_array_source_64(Idx)
108819  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108820  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108821  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108822  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108823  , p_source_68 => l_array_source_68(Idx)
108824  , p_source_69 => l_array_source_69(Idx)
108825  , p_source_70 => l_array_source_70(Idx)
108826  , p_source_111 => l_array_source_111(Idx)
108827  , p_source_111_meaning => l_array_source_111_meaning(Idx)
108828  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108829  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108830  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108831  );
108832 If(l_balance_type_code = 'A') THEN
108836 --
108833   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108834 END IF;
108835 
108837 
108838 
108839 --
108840 AcctLineType_107 (
108841  p_application_id  => p_application_id
108842  ,p_event_id     => l_event_id
108843  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108844  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108845  ,p_actual_flag => l_actual_flag
108846  ,p_balance_type_code => l_balance_type_code
108847  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108848  
108849  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108850  , p_source_22 => l_array_source_22(Idx)
108851  , p_source_29 => l_array_source_29(Idx)
108852  , p_source_32 => l_array_source_32(Idx)
108853  , p_source_32_meaning => l_array_source_32_meaning(Idx)
108854  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108855  , p_source_51 => l_array_source_51(Idx)
108856  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108857  , p_source_52 => l_array_source_52(Idx)
108858  , p_source_53 => l_array_source_53(Idx)
108859  , p_source_54 => l_array_source_54(Idx)
108860  , p_source_55 => l_array_source_55(Idx)
108861  , p_source_56 => l_array_source_56(Idx)
108862  , p_source_57 => l_array_source_57(Idx)
108863  , p_source_58 => l_array_source_58(Idx)
108864  , p_source_59 => l_array_source_59(Idx)
108865  , p_source_60 => l_array_source_60(Idx)
108866  , p_source_64 => l_array_source_64(Idx)
108867  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108868  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108869  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108870  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108871  , p_source_68 => l_array_source_68(Idx)
108872  , p_source_69 => l_array_source_69(Idx)
108873  , p_source_70 => l_array_source_70(Idx)
108874  , p_source_111 => l_array_source_111(Idx)
108875  , p_source_111_meaning => l_array_source_111_meaning(Idx)
108876  , p_source_112 => l_array_source_112(Idx)
108877  , p_source_112_meaning => l_array_source_112_meaning(Idx)
108878  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108879  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108880  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108881  );
108882 If(l_balance_type_code = 'A') THEN
108883   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108884 END IF;
108885 
108886 --
108887 
108888 
108889 --
108890 AcctLineType_112 (
108891  p_application_id  => p_application_id
108892  ,p_event_id     => l_event_id
108893  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108894  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108895  ,p_actual_flag => l_actual_flag
108896  ,p_balance_type_code => l_balance_type_code
108897  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108898  
108899  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108900  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108901  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108902  , p_source_29 => l_array_source_29(Idx)
108903  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
108904  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
108905  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108906  , p_source_51 => l_array_source_51(Idx)
108907  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108908  , p_source_52 => l_array_source_52(Idx)
108909  , p_source_53 => l_array_source_53(Idx)
108910  , p_source_54 => l_array_source_54(Idx)
108911  , p_source_55 => l_array_source_55(Idx)
108912  , p_source_56 => l_array_source_56(Idx)
108913  , p_source_57 => l_array_source_57(Idx)
108914  , p_source_58 => l_array_source_58(Idx)
108915  , p_source_59 => l_array_source_59(Idx)
108916  , p_source_60 => l_array_source_60(Idx)
108917  , p_source_64 => l_array_source_64(Idx)
108918  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108919  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108920  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108921  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108922  , p_source_68 => l_array_source_68(Idx)
108923  , p_source_69 => l_array_source_69(Idx)
108924  , p_source_70 => l_array_source_70(Idx)
108925  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108926  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108927  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108928  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
108929  , p_source_136 => l_array_source_136(Idx)
108930  , p_source_137 => l_array_source_137(Idx)
108931  );
108932 If(l_balance_type_code = 'A') THEN
108933   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108934 END IF;
108935 
108936 --
108937 
108938 
108939 --
108940 AcctLineType_113 (
108941  p_application_id  => p_application_id
108942  ,p_event_id     => l_event_id
108943  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108944  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108945  ,p_actual_flag => l_actual_flag
108946  ,p_balance_type_code => l_balance_type_code
108947  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108948  
108949  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108950  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108951  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108952  , p_source_29 => l_array_source_29(Idx)
108953  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
108954  , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
108955  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108956  , p_source_51 => l_array_source_51(Idx)
108957  , p_source_51_meaning => l_array_source_51_meaning(Idx)
108961  , p_source_55 => l_array_source_55(Idx)
108958  , p_source_52 => l_array_source_52(Idx)
108959  , p_source_53 => l_array_source_53(Idx)
108960  , p_source_54 => l_array_source_54(Idx)
108962  , p_source_56 => l_array_source_56(Idx)
108963  , p_source_57 => l_array_source_57(Idx)
108964  , p_source_58 => l_array_source_58(Idx)
108965  , p_source_59 => l_array_source_59(Idx)
108966  , p_source_60 => l_array_source_60(Idx)
108967  , p_source_64 => l_array_source_64(Idx)
108968  , p_source_64_meaning => l_array_source_64_meaning(Idx)
108969  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108970  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108971  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108972  , p_source_68 => l_array_source_68(Idx)
108973  , p_source_69 => l_array_source_69(Idx)
108974  , p_source_70 => l_array_source_70(Idx)
108975  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108976  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108977  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108978  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
108979  , p_source_138 => l_array_source_138(Idx)
108980  , p_source_139 => l_array_source_139(Idx)
108981  );
108982 If(l_balance_type_code = 'A') THEN
108983   l_actual_gain_loss_ref := l_gain_or_loss_ref;
108984 END IF;
108985 
108986 --
108987 
108988 
108989 --
108990 AcctLineType_115 (
108991  p_application_id  => p_application_id
108992  ,p_event_id     => l_event_id
108993  ,p_calculate_acctd_flag => l_calculate_acctd_flag
108994  ,p_calculate_g_l_flag => l_calculate_g_l_flag
108995  ,p_actual_flag => l_actual_flag
108996  ,p_balance_type_code => l_balance_type_code
108997  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108998  
108999  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109000  , p_source_22 => l_array_source_22(Idx)
109001  , p_source_29 => l_array_source_29(Idx)
109002  , p_source_32 => l_array_source_32(Idx)
109003  , p_source_32_meaning => l_array_source_32_meaning(Idx)
109004  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109005  , p_source_51 => l_array_source_51(Idx)
109006  , p_source_51_meaning => l_array_source_51_meaning(Idx)
109007  , p_source_52 => l_array_source_52(Idx)
109008  , p_source_53 => l_array_source_53(Idx)
109009  , p_source_54 => l_array_source_54(Idx)
109010  , p_source_55 => l_array_source_55(Idx)
109011  , p_source_56 => l_array_source_56(Idx)
109012  , p_source_57 => l_array_source_57(Idx)
109013  , p_source_58 => l_array_source_58(Idx)
109014  , p_source_59 => l_array_source_59(Idx)
109015  , p_source_60 => l_array_source_60(Idx)
109016  , p_source_64 => l_array_source_64(Idx)
109017  , p_source_64_meaning => l_array_source_64_meaning(Idx)
109018  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109019  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109020  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109021  , p_source_68 => l_array_source_68(Idx)
109022  , p_source_69 => l_array_source_69(Idx)
109023  , p_source_70 => l_array_source_70(Idx)
109024  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109025  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109026  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109027  );
109028 If(l_balance_type_code = 'A') THEN
109029   l_actual_gain_loss_ref := l_gain_or_loss_ref;
109030 END IF;
109031 
109032 --
109033 
109034 
109035 --
109036 AcctLineType_120 (
109037  p_application_id  => p_application_id
109038  ,p_event_id     => l_event_id
109039  ,p_calculate_acctd_flag => l_calculate_acctd_flag
109040  ,p_calculate_g_l_flag => l_calculate_g_l_flag
109041  ,p_actual_flag => l_actual_flag
109042  ,p_balance_type_code => l_balance_type_code
109043  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109044  
109045  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109046  , p_source_22 => l_array_source_22(Idx)
109047  , p_source_29 => l_array_source_29(Idx)
109048  , p_source_32 => l_array_source_32(Idx)
109049  , p_source_32_meaning => l_array_source_32_meaning(Idx)
109050  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109051  , p_source_51 => l_array_source_51(Idx)
109052  , p_source_51_meaning => l_array_source_51_meaning(Idx)
109053  , p_source_52 => l_array_source_52(Idx)
109054  , p_source_53 => l_array_source_53(Idx)
109055  , p_source_54 => l_array_source_54(Idx)
109056  , p_source_55 => l_array_source_55(Idx)
109057  , p_source_56 => l_array_source_56(Idx)
109058  , p_source_57 => l_array_source_57(Idx)
109059  , p_source_58 => l_array_source_58(Idx)
109060  , p_source_59 => l_array_source_59(Idx)
109061  , p_source_60 => l_array_source_60(Idx)
109062  , p_source_61 => l_array_source_61(Idx)
109063  , p_source_62 => l_array_source_62(Idx)
109064  , p_source_63 => l_array_source_63(Idx)
109065  , p_source_64 => l_array_source_64(Idx)
109066  , p_source_64_meaning => l_array_source_64_meaning(Idx)
109067  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109068  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109069  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109070  , p_source_68 => l_array_source_68(Idx)
109071  , p_source_69 => l_array_source_69(Idx)
109072  , p_source_70 => l_array_source_70(Idx)
109073  , p_source_111 => l_array_source_111(Idx)
109074  , p_source_111_meaning => l_array_source_111_meaning(Idx)
109075  );
109076 If(l_balance_type_code = 'A') THEN
109077   l_actual_gain_loss_ref := l_gain_or_loss_ref;
109078 END IF;
109079 
109080 --
109081 
109082 
109083 --
109084 AcctLineType_123 (
109085  p_application_id  => p_application_id
109086  ,p_event_id     => l_event_id
109087  ,p_calculate_acctd_flag => l_calculate_acctd_flag
109091  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109088  ,p_calculate_g_l_flag => l_calculate_g_l_flag
109089  ,p_actual_flag => l_actual_flag
109090  ,p_balance_type_code => l_balance_type_code
109092  
109093  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109094  , p_source_22 => l_array_source_22(Idx)
109095  , p_source_29 => l_array_source_29(Idx)
109096  , p_source_32 => l_array_source_32(Idx)
109097  , p_source_32_meaning => l_array_source_32_meaning(Idx)
109098  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109099  , p_source_51 => l_array_source_51(Idx)
109100  , p_source_51_meaning => l_array_source_51_meaning(Idx)
109101  , p_source_52 => l_array_source_52(Idx)
109102  , p_source_53 => l_array_source_53(Idx)
109103  , p_source_54 => l_array_source_54(Idx)
109104  , p_source_55 => l_array_source_55(Idx)
109105  , p_source_56 => l_array_source_56(Idx)
109106  , p_source_57 => l_array_source_57(Idx)
109107  , p_source_58 => l_array_source_58(Idx)
109108  , p_source_59 => l_array_source_59(Idx)
109109  , p_source_60 => l_array_source_60(Idx)
109110  , p_source_64 => l_array_source_64(Idx)
109111  , p_source_64_meaning => l_array_source_64_meaning(Idx)
109112  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109113  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109114  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109115  , p_source_68 => l_array_source_68(Idx)
109116  , p_source_69 => l_array_source_69(Idx)
109117  , p_source_70 => l_array_source_70(Idx)
109118  , p_source_111 => l_array_source_111(Idx)
109119  , p_source_111_meaning => l_array_source_111_meaning(Idx)
109120  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109121  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109122  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109123  );
109124 If(l_balance_type_code = 'A') THEN
109125   l_actual_gain_loss_ref := l_gain_or_loss_ref;
109126 END IF;
109127 
109128 --
109129 
109130 
109131 --
109132 AcctLineType_131 (
109133  p_application_id  => p_application_id
109134  ,p_event_id     => l_event_id
109135  ,p_calculate_acctd_flag => l_calculate_acctd_flag
109136  ,p_calculate_g_l_flag => l_calculate_g_l_flag
109137  ,p_actual_flag => l_actual_flag
109138  ,p_balance_type_code => l_balance_type_code
109139  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109140  
109141  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109142  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
109143  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
109144  , p_source_21 => l_array_source_21(Idx)
109145  , p_source_29 => l_array_source_29(Idx)
109146  , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
109147  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109148  , p_source_51 => l_array_source_51(Idx)
109149  , p_source_51_meaning => l_array_source_51_meaning(Idx)
109150  , p_source_52 => l_array_source_52(Idx)
109151  , p_source_53 => l_array_source_53(Idx)
109152  , p_source_54 => l_array_source_54(Idx)
109153  , p_source_55 => l_array_source_55(Idx)
109154  , p_source_56 => l_array_source_56(Idx)
109155  , p_source_57 => l_array_source_57(Idx)
109156  , p_source_58 => l_array_source_58(Idx)
109157  , p_source_59 => l_array_source_59(Idx)
109158  , p_source_60 => l_array_source_60(Idx)
109159  , p_source_64 => l_array_source_64(Idx)
109160  , p_source_64_meaning => l_array_source_64_meaning(Idx)
109161  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109162  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109163  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109164  , p_source_68 => l_array_source_68(Idx)
109165  , p_source_69 => l_array_source_69(Idx)
109166  , p_source_70 => l_array_source_70(Idx)
109167  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
109168  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
109169  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
109170  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
109171  );
109172 If(l_balance_type_code = 'A') THEN
109173   l_actual_gain_loss_ref := l_gain_or_loss_ref;
109174 END IF;
109175 
109176 --
109177 
109178 
109179 --
109180 AcctLineType_133 (
109181  p_application_id  => p_application_id
109182  ,p_event_id     => l_event_id
109183  ,p_calculate_acctd_flag => l_calculate_acctd_flag
109184  ,p_calculate_g_l_flag => l_calculate_g_l_flag
109185  ,p_actual_flag => l_actual_flag
109186  ,p_balance_type_code => l_balance_type_code
109187  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109188  
109189  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109190  , p_source_22 => l_array_source_22(Idx)
109191  , p_source_29 => l_array_source_29(Idx)
109192  , p_source_32 => l_array_source_32(Idx)
109193  , p_source_32_meaning => l_array_source_32_meaning(Idx)
109194  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109195  , p_source_51 => l_array_source_51(Idx)
109196  , p_source_51_meaning => l_array_source_51_meaning(Idx)
109197  , p_source_52 => l_array_source_52(Idx)
109198  , p_source_53 => l_array_source_53(Idx)
109199  , p_source_54 => l_array_source_54(Idx)
109200  , p_source_55 => l_array_source_55(Idx)
109201  , p_source_56 => l_array_source_56(Idx)
109202  , p_source_57 => l_array_source_57(Idx)
109203  , p_source_58 => l_array_source_58(Idx)
109204  , p_source_59 => l_array_source_59(Idx)
109205  , p_source_60 => l_array_source_60(Idx)
109206  , p_source_64 => l_array_source_64(Idx)
109207  , p_source_64_meaning => l_array_source_64_meaning(Idx)
109208  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109209  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109213  , p_source_70 => l_array_source_70(Idx)
109210  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109211  , p_source_68 => l_array_source_68(Idx)
109212  , p_source_69 => l_array_source_69(Idx)
109214  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
109215  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
109216  , p_source_112 => l_array_source_112(Idx)
109217  , p_source_112_meaning => l_array_source_112_meaning(Idx)
109218  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109219  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109220  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109221  );
109222 If(l_balance_type_code = 'A') THEN
109223   l_actual_gain_loss_ref := l_gain_or_loss_ref;
109224 END IF;
109225 
109226 --
109227 
109228 
109229 --
109230 AcctLineType_138 (
109231  p_application_id  => p_application_id
109232  ,p_event_id     => l_event_id
109233  ,p_calculate_acctd_flag => l_calculate_acctd_flag
109234  ,p_calculate_g_l_flag => l_calculate_g_l_flag
109235  ,p_actual_flag => l_actual_flag
109236  ,p_balance_type_code => l_balance_type_code
109237  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109238  
109239  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109240  , p_source_22 => l_array_source_22(Idx)
109241  , p_source_29 => l_array_source_29(Idx)
109242  , p_source_32 => l_array_source_32(Idx)
109243  , p_source_32_meaning => l_array_source_32_meaning(Idx)
109244  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109245  , p_source_51 => l_array_source_51(Idx)
109246  , p_source_51_meaning => l_array_source_51_meaning(Idx)
109247  , p_source_52 => l_array_source_52(Idx)
109248  , p_source_53 => l_array_source_53(Idx)
109249  , p_source_54 => l_array_source_54(Idx)
109250  , p_source_55 => l_array_source_55(Idx)
109251  , p_source_56 => l_array_source_56(Idx)
109252  , p_source_57 => l_array_source_57(Idx)
109253  , p_source_58 => l_array_source_58(Idx)
109254  , p_source_59 => l_array_source_59(Idx)
109255  , p_source_60 => l_array_source_60(Idx)
109256  , p_source_64 => l_array_source_64(Idx)
109257  , p_source_64_meaning => l_array_source_64_meaning(Idx)
109258  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109259  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109260  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109261  , p_source_68 => l_array_source_68(Idx)
109262  , p_source_69 => l_array_source_69(Idx)
109263  , p_source_70 => l_array_source_70(Idx)
109264  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109265  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109266  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109267  );
109268 If(l_balance_type_code = 'A') THEN
109269   l_actual_gain_loss_ref := l_gain_or_loss_ref;
109270 END IF;
109271 
109272 --
109273 
109274 
109275 --
109276 AcctLineType_141 (
109277  p_application_id  => p_application_id
109278  ,p_event_id     => l_event_id
109279  ,p_calculate_acctd_flag => l_calculate_acctd_flag
109280  ,p_calculate_g_l_flag => l_calculate_g_l_flag
109281  ,p_actual_flag => l_actual_flag
109282  ,p_balance_type_code => l_balance_type_code
109283  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109284  
109285  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109286  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
109287  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
109288  , p_source_22 => l_array_source_22(Idx)
109289  , p_source_29 => l_array_source_29(Idx)
109290  , p_source_32 => l_array_source_32(Idx)
109291  , p_source_32_meaning => l_array_source_32_meaning(Idx)
109292  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
109293  , p_source_35 => l_array_source_35(Idx)
109294  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109295  , p_source_52 => l_array_source_52(Idx)
109296  , p_source_53 => l_array_source_53(Idx)
109297  , p_source_54 => l_array_source_54(Idx)
109298  , p_source_55 => l_array_source_55(Idx)
109299  , p_source_56 => l_array_source_56(Idx)
109300  , p_source_57 => l_array_source_57(Idx)
109301  , p_source_58 => l_array_source_58(Idx)
109302  , p_source_59 => l_array_source_59(Idx)
109303  , p_source_60 => l_array_source_60(Idx)
109304  , p_source_64 => l_array_source_64(Idx)
109305  , p_source_64_meaning => l_array_source_64_meaning(Idx)
109306  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109307  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109308  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109309  , p_source_68 => l_array_source_68(Idx)
109310  , p_source_69 => l_array_source_69(Idx)
109311  , p_source_70 => l_array_source_70(Idx)
109312  , p_source_112 => l_array_source_112(Idx)
109313  , p_source_112_meaning => l_array_source_112_meaning(Idx)
109314  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109315  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109316  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109317  );
109318 If(l_balance_type_code = 'A') THEN
109319   l_actual_gain_loss_ref := l_gain_or_loss_ref;
109320 END IF;
109321 
109322 --
109323 
109324 
109325 --
109326 AcctLineType_147 (
109327  p_application_id  => p_application_id
109328  ,p_event_id     => l_event_id
109329  ,p_calculate_acctd_flag => l_calculate_acctd_flag
109330  ,p_calculate_g_l_flag => l_calculate_g_l_flag
109331  ,p_actual_flag => l_actual_flag
109332  ,p_balance_type_code => l_balance_type_code
109333  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109334  
109335  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109336  , p_source_22 => l_array_source_22(Idx)
109340  , p_source_52 => l_array_source_52(Idx)
109337  , p_source_32 => l_array_source_32(Idx)
109338  , p_source_32_meaning => l_array_source_32_meaning(Idx)
109339  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109341  , p_source_53 => l_array_source_53(Idx)
109342  , p_source_54 => l_array_source_54(Idx)
109343  , p_source_55 => l_array_source_55(Idx)
109344  , p_source_56 => l_array_source_56(Idx)
109345  , p_source_59 => l_array_source_59(Idx)
109346  , p_source_60 => l_array_source_60(Idx)
109347  , p_source_64 => l_array_source_64(Idx)
109348  , p_source_64_meaning => l_array_source_64_meaning(Idx)
109349  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109350  , p_source_68 => l_array_source_68(Idx)
109351  , p_source_69 => l_array_source_69(Idx)
109352  , p_source_70 => l_array_source_70(Idx)
109353  , p_source_112 => l_array_source_112(Idx)
109354  , p_source_112_meaning => l_array_source_112_meaning(Idx)
109355  , p_source_151 => l_array_source_151(Idx)
109356  , p_source_152 => l_array_source_152(Idx)
109357  );
109358 If(l_balance_type_code = 'A') THEN
109359   l_actual_gain_loss_ref := l_gain_or_loss_ref;
109360 END IF;
109361 
109362 --
109363 
109364 
109365 --
109366 AcctLineType_149 (
109367  p_application_id  => p_application_id
109368  ,p_event_id     => l_event_id
109369  ,p_calculate_acctd_flag => l_calculate_acctd_flag
109370  ,p_calculate_g_l_flag => l_calculate_g_l_flag
109371  ,p_actual_flag => l_actual_flag
109372  ,p_balance_type_code => l_balance_type_code
109373  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109374  
109375  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109376  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
109377  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
109378  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
109379  , p_source_19 => l_array_source_19(Idx)
109380  , p_source_19_meaning => l_array_source_19_meaning(Idx)
109381  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
109382  , p_source_21 => l_array_source_21(Idx)
109383  , p_source_22 => l_array_source_22(Idx)
109384  , p_source_29 => l_array_source_29(Idx)
109385  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
109386  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
109387  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109388  , p_source_51 => l_array_source_51(Idx)
109389  , p_source_51_meaning => l_array_source_51_meaning(Idx)
109390  , p_source_52 => l_array_source_52(Idx)
109391  , p_source_53 => l_array_source_53(Idx)
109392  , p_source_54 => l_array_source_54(Idx)
109393  , p_source_55 => l_array_source_55(Idx)
109394  , p_source_56 => l_array_source_56(Idx)
109395  , p_source_57 => l_array_source_57(Idx)
109396  , p_source_58 => l_array_source_58(Idx)
109397  , p_source_59 => l_array_source_59(Idx)
109398  , p_source_60 => l_array_source_60(Idx)
109399  , p_source_64 => l_array_source_64(Idx)
109400  , p_source_64_meaning => l_array_source_64_meaning(Idx)
109401  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109402  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109403  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109404  , p_source_68 => l_array_source_68(Idx)
109405  , p_source_69 => l_array_source_69(Idx)
109406  , p_source_70 => l_array_source_70(Idx)
109407  , p_source_111 => l_array_source_111(Idx)
109408  , p_source_111_meaning => l_array_source_111_meaning(Idx)
109409  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109410  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109411  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109412  );
109413 If(l_balance_type_code = 'A') THEN
109414   l_actual_gain_loss_ref := l_gain_or_loss_ref;
109415 END IF;
109416 
109417 --
109418 
109419 
109420 --
109421 AcctLineType_152 (
109422  p_application_id  => p_application_id
109423  ,p_event_id     => l_event_id
109424  ,p_calculate_acctd_flag => l_calculate_acctd_flag
109425  ,p_calculate_g_l_flag => l_calculate_g_l_flag
109426  ,p_actual_flag => l_actual_flag
109427  ,p_balance_type_code => l_balance_type_code
109428  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109429  
109430  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109431  , p_source_22 => l_array_source_22(Idx)
109432  , p_source_29 => l_array_source_29(Idx)
109433  , p_source_32 => l_array_source_32(Idx)
109434  , p_source_32_meaning => l_array_source_32_meaning(Idx)
109435  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109436  , p_source_51 => l_array_source_51(Idx)
109437  , p_source_51_meaning => l_array_source_51_meaning(Idx)
109438  , p_source_52 => l_array_source_52(Idx)
109439  , p_source_53 => l_array_source_53(Idx)
109440  , p_source_54 => l_array_source_54(Idx)
109441  , p_source_55 => l_array_source_55(Idx)
109442  , p_source_56 => l_array_source_56(Idx)
109443  , p_source_57 => l_array_source_57(Idx)
109444  , p_source_58 => l_array_source_58(Idx)
109445  , p_source_59 => l_array_source_59(Idx)
109446  , p_source_60 => l_array_source_60(Idx)
109447  , p_source_64 => l_array_source_64(Idx)
109448  , p_source_64_meaning => l_array_source_64_meaning(Idx)
109449  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109450  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109451  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109452  , p_source_68 => l_array_source_68(Idx)
109453  , p_source_69 => l_array_source_69(Idx)
109454  , p_source_70 => l_array_source_70(Idx)
109455  , p_source_111 => l_array_source_111(Idx)
109456  , p_source_111_meaning => l_array_source_111_meaning(Idx)
109457  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109458  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109462   l_actual_gain_loss_ref := l_gain_or_loss_ref;
109459  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109460  );
109461 If(l_balance_type_code = 'A') THEN
109463 END IF;
109464 
109465 --
109466 
109467 
109468 --
109469 AcctLineType_155 (
109470  p_application_id  => p_application_id
109471  ,p_event_id     => l_event_id
109472  ,p_calculate_acctd_flag => l_calculate_acctd_flag
109473  ,p_calculate_g_l_flag => l_calculate_g_l_flag
109474  ,p_actual_flag => l_actual_flag
109475  ,p_balance_type_code => l_balance_type_code
109476  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109477  
109478  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109479  , p_source_22 => l_array_source_22(Idx)
109480  , p_source_29 => l_array_source_29(Idx)
109481  , p_source_32 => l_array_source_32(Idx)
109482  , p_source_32_meaning => l_array_source_32_meaning(Idx)
109483  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109484  , p_source_51 => l_array_source_51(Idx)
109485  , p_source_51_meaning => l_array_source_51_meaning(Idx)
109486  , p_source_52 => l_array_source_52(Idx)
109487  , p_source_53 => l_array_source_53(Idx)
109488  , p_source_54 => l_array_source_54(Idx)
109489  , p_source_55 => l_array_source_55(Idx)
109490  , p_source_56 => l_array_source_56(Idx)
109491  , p_source_57 => l_array_source_57(Idx)
109492  , p_source_58 => l_array_source_58(Idx)
109493  , p_source_59 => l_array_source_59(Idx)
109494  , p_source_60 => l_array_source_60(Idx)
109495  , p_source_64 => l_array_source_64(Idx)
109496  , p_source_64_meaning => l_array_source_64_meaning(Idx)
109497  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109498  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109499  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109500  , p_source_68 => l_array_source_68(Idx)
109501  , p_source_69 => l_array_source_69(Idx)
109502  , p_source_70 => l_array_source_70(Idx)
109503  , p_source_111 => l_array_source_111(Idx)
109504  , p_source_111_meaning => l_array_source_111_meaning(Idx)
109505  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109506  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109507  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109508  );
109509 If(l_balance_type_code = 'A') THEN
109510   l_actual_gain_loss_ref := l_gain_or_loss_ref;
109511 END IF;
109512 
109513 --
109514 
109515 
109516 --
109517 AcctLineType_164 (
109518  p_application_id  => p_application_id
109519  ,p_event_id     => l_event_id
109520  ,p_calculate_acctd_flag => l_calculate_acctd_flag
109521  ,p_calculate_g_l_flag => l_calculate_g_l_flag
109522  ,p_actual_flag => l_actual_flag
109523  ,p_balance_type_code => l_balance_type_code
109524  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109525  
109526  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
109527  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
109528  , p_source_22 => l_array_source_22(Idx)
109529  , p_source_29 => l_array_source_29(Idx)
109530  , p_source_36 => l_array_source_36(Idx)
109531  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109532  , p_source_51 => l_array_source_51(Idx)
109533  , p_source_51_meaning => l_array_source_51_meaning(Idx)
109534  , p_source_52 => l_array_source_52(Idx)
109535  , p_source_53 => l_array_source_53(Idx)
109536  , p_source_54 => l_array_source_54(Idx)
109537  , p_source_55 => l_array_source_55(Idx)
109538  , p_source_56 => l_array_source_56(Idx)
109539  , p_source_57 => l_array_source_57(Idx)
109540  , p_source_58 => l_array_source_58(Idx)
109541  , p_source_59 => l_array_source_59(Idx)
109542  , p_source_60 => l_array_source_60(Idx)
109543  , p_source_64 => l_array_source_64(Idx)
109544  , p_source_64_meaning => l_array_source_64_meaning(Idx)
109545  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109546  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109547  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109548  , p_source_68 => l_array_source_68(Idx)
109549  , p_source_69 => l_array_source_69(Idx)
109550  , p_source_70 => l_array_source_70(Idx)
109551  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
109552  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109553  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109554  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109555  , p_source_155 => l_array_source_155(Idx)
109556  , p_source_155_meaning => l_array_source_155_meaning(Idx)
109557  );
109558 If(l_balance_type_code = 'A') THEN
109559   l_actual_gain_loss_ref := l_gain_or_loss_ref;
109560 END IF;
109561 
109562 --
109563 
109564       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
109565       -- or secondary ledger that has different currency with primary
109566       -- or alc that is calculated by sla
109567       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
109568             (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'))
109569 
109570 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
109571 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
109572           AND (l_actual_flag = 'A')) THEN
109573         XLA_AE_LINES_PKG.CreateGainOrLossLines(
109574           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
109575          ,p_application_id   => p_application_id
109576          ,p_amb_context_code => 'DEFAULT'
109577          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
109578          ,p_event_class_code => C_EVENT_CLASS_CODE
109582          ,p_loss_ccid        => -1
109579          ,p_event_type_code  => C_EVENT_TYPE_CODE
109580          
109581          ,p_gain_ccid        => -1
109583 
109584          ,p_actual_flag      => l_actual_flag
109585          ,p_enc_flag         => null
109586          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
109587          ,p_enc_g_l_ref      => null
109588          );
109589       END IF;
109590    END IF;
109591 END IF;
109592 
109593    ELSE
109594       --
109595       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
109596       --
109597       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
109598          trace
109599             (p_msg      => 'Trancaction revesal option is Y'
109600             ,p_level    => C_LEVEL_STATEMENT
109601             ,p_module   => l_log_module);
109602       END IF;
109603    END IF;
109604 
109605 END LOOP;
109606 l_result := XLA_AE_LINES_PKG.InsertLines ;
109607 end loop;
109608 close line_cur;
109609 
109610 
109611 --
109612 -- insert headers into xla_ae_headers_gt table
109613 --
109614 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
109615 
109616 -- insert into errors table here.
109617 
109618 END LOOP;
109619 
109620 --
109621 -- 4865292
109622 --
109623 -- Compare g_hdr_extract_count with event count in
109624 -- CreateHeadersAndLines.
109625 --
109626 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
109627 
109628 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
109629    trace (p_msg     => '# rows extracted from header extract objects '
109630                     || ' (running total): '
109631                     || g_hdr_extract_count
109632          ,p_level   => C_LEVEL_STATEMENT
109633          ,p_module  => l_log_module);
109634 END IF;
109635 
109636 CLOSE header_cur;
109637 --
109638 
109639 --
109640 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109641    trace
109642       (p_msg      => 'END of EventClass_169'
109643       ,p_level    => C_LEVEL_PROCEDURE
109644       ,p_module   => l_log_module);
109645 END IF;
109646 --
109647 RETURN l_result;
109648 EXCEPTION
109649 WHEN xla_exceptions_pkg.application_exception THEN
109650    
109651 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
109652 
109653    
109654 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
109655 
109656    RAISE;
109657 
109658 WHEN NO_DATA_FOUND THEN
109659 
109660 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
109661 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
109662 
109663 FOR header_record IN header_cur
109664 LOOP
109665     l_array_header_events(header_record.event_id) := header_record.event_id;
109666 END LOOP;
109667 
109668 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
109669 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
109670 
109671 fnd_file.put_line(fnd_file.LOG, '                    ');
109672 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
109673 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
109674 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
109675 
109676 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
109677 LOOP
109678 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
109679 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
109680         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
109681 	END IF;
109682 END LOOP;
109683 
109684 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
109685 fnd_file.put_line(fnd_file.LOG, '                    ');
109686 
109687 
109688 xla_exceptions_pkg.raise_message
109689       (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_169');
109690 
109691 
109692 WHEN OTHERS THEN
109693    xla_exceptions_pkg.raise_message
109694       (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_169');
109695 END EventClass_169;
109696 --
109697 
109698 ---------------------------------------
109699 --
109700 -- PRIVATE PROCEDURE
109701 --         insert_sources_170
109702 --
109703 ----------------------------------------
109704 --
109705 PROCEDURE insert_sources_170(
109706                                 p_target_ledger_id       IN NUMBER
109707                               , p_language               IN VARCHAR2
109708                               , p_sla_ledger_id          IN NUMBER
109709                               , p_pad_start_date         IN DATE
109710                               , p_pad_end_date           IN DATE
109711                          )
109712 IS
109713 
109714 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'REFUNDS_ALL';
109715 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'REFUNDS';
109716 p_apps_owner                   VARCHAR2(30);
109717 l_log_module                   VARCHAR2(240);
109718 BEGIN
109719 IF g_log_enabled THEN
109720       l_log_module := C_DEFAULT_MODULE||'.insert_sources_170';
109721 END IF;
109722 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109723 
109724       trace
109725          (p_msg      => 'BEGIN of insert_sources_170'
109726          ,p_level    => C_LEVEL_PROCEDURE
109727          ,p_module   => l_log_module);
109728 
109729 END IF;
109730 
109731 -- select APPS owner
109732 SELECT oracle_username
109733   INTO p_apps_owner
109734   FROM fnd_oracle_userid
109735  WHERE read_only_flag = 'U'
109736 ;
109737 
109738 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
109739       trace
109740          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
109744                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
109741                         ' - p_language = '||p_language||
109742                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
109743                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
109745                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
109746          ,p_level    => C_LEVEL_STATEMENT
109747          ,p_module   => l_log_module);
109748 END IF;
109749 
109750 
109751 --
109752 INSERT INTO xla_diag_sources --hdr2
109753 (
109754         event_id
109755       , ledger_id
109756       , sla_ledger_id
109757       , description_language
109758       , object_name
109759       , object_type_code
109760       , line_number
109761       , source_application_id
109762       , source_type_code
109763       , source_code
109764       , source_value
109765       , source_meaning
109766       , created_by
109767       , creation_date
109768       , last_update_date
109769       , last_updated_by
109770       , last_update_login
109771       , program_update_date
109772       , program_application_id
109773       , program_id
109774       , request_id
109775 )
109776 SELECT
109777         event_id
109778       , p_target_ledger_id
109779       , p_sla_ledger_id
109780       , p_language
109781       , object_name
109782       , object_type_code
109783       , line_number
109784       , source_application_id
109785       , source_type_code
109786       , source_code
109787       , SUBSTR(source_value ,1,1996)
109788       , SUBSTR(source_meaning ,1,200)
109789       , xla_environment_pkg.g_Usr_Id
109790       , TRUNC(SYSDATE)
109791       , TRUNC(SYSDATE)
109792       , xla_environment_pkg.g_Usr_Id
109793       , xla_environment_pkg.g_Login_Id
109794       , TRUNC(SYSDATE)
109795       , xla_environment_pkg.g_Prog_Appl_Id
109796       , xla_environment_pkg.g_Prog_Id
109797       , xla_environment_pkg.g_Req_Id
109798   FROM (
109799        SELECT xet.event_id                  event_id
109800             , 0                          line_number
109801             , CASE r
109802                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109803                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109804                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109805                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109806                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109807                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109808                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109809                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
109810                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
109811                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
109812                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
109813                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
109814                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109815                 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
109816                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
109817                 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
109818                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109819                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109820                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109821                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109822                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109823                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109824                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109825                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109826                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109827                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109828                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109829                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
109830                 
109831                ELSE null
109832               END                           object_name
109833             , CASE r
109834                 WHEN 1 THEN 'HEADER' 
109835                 WHEN 2 THEN 'HEADER' 
109836                 WHEN 3 THEN 'HEADER' 
109837                 WHEN 4 THEN 'HEADER' 
109838                 WHEN 5 THEN 'HEADER' 
109839                 WHEN 6 THEN 'HEADER' 
109840                 WHEN 7 THEN 'HEADER' 
109841                 WHEN 8 THEN 'HEADER' 
109842                 WHEN 9 THEN 'HEADER' 
109843                 WHEN 10 THEN 'HEADER' 
109844                 WHEN 11 THEN 'HEADER' 
109845                 WHEN 12 THEN 'HEADER' 
109846                 WHEN 13 THEN 'HEADER' 
109847                 WHEN 14 THEN 'HEADER' 
109848                 WHEN 15 THEN 'HEADER' 
109849                 WHEN 16 THEN 'HEADER' 
109850                 WHEN 17 THEN 'HEADER' 
109851                 WHEN 18 THEN 'HEADER' 
109852                 WHEN 19 THEN 'HEADER' 
109853                 WHEN 20 THEN 'HEADER' 
109854                 WHEN 21 THEN 'HEADER' 
109855                 WHEN 22 THEN 'HEADER' 
109856                 WHEN 23 THEN 'HEADER' 
109857                 WHEN 24 THEN 'HEADER' 
109858                 WHEN 25 THEN 'HEADER' 
109859                 WHEN 26 THEN 'HEADER' 
109860                 WHEN 27 THEN 'HEADER' 
109861                 WHEN 28 THEN 'HEADER' 
109862                 
109863                 ELSE null
109864               END                           object_type_code
109865             , CASE r
109866                 WHEN 1 THEN '200' 
109867                 WHEN 2 THEN '200' 
109868                 WHEN 3 THEN '200' 
109869                 WHEN 4 THEN '200' 
109870                 WHEN 5 THEN '200' 
109871                 WHEN 6 THEN '200' 
109872                 WHEN 7 THEN '200' 
109873                 WHEN 8 THEN '200' 
109874                 WHEN 9 THEN '200' 
109875                 WHEN 10 THEN '200' 
109876                 WHEN 11 THEN '200' 
109880                 WHEN 15 THEN '200' 
109877                 WHEN 12 THEN '200' 
109878                 WHEN 13 THEN '200' 
109879                 WHEN 14 THEN '200' 
109881                 WHEN 16 THEN '200' 
109882                 WHEN 17 THEN '200' 
109883                 WHEN 18 THEN '200' 
109884                 WHEN 19 THEN '200' 
109885                 WHEN 20 THEN '200' 
109886                 WHEN 21 THEN '200' 
109887                 WHEN 22 THEN '200' 
109888                 WHEN 23 THEN '200' 
109889                 WHEN 24 THEN '200' 
109890                 WHEN 25 THEN '200' 
109891                 WHEN 26 THEN '200' 
109892                 WHEN 27 THEN '200' 
109893                 WHEN 28 THEN '200' 
109894                 
109895                 ELSE null
109896               END                           source_application_id
109897             , 'S'             source_type_code
109898             , CASE r
109899                 WHEN 1 THEN 'DOC_SEQUENCE_NAME' 
109900                 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE' 
109901                 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER' 
109902                 WHEN 4 THEN 'AC_CHECK_DATE' 
109903                 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME' 
109904                 WHEN 6 THEN 'AC_CURRENCY_CODE' 
109905                 WHEN 7 THEN 'CGAC_AP_ASSET_CCID' 
109906                 WHEN 8 THEN 'FSP_DISC_TAKEN_CCID' 
109907                 WHEN 9 THEN 'ASP_DISCOUNT_DIST_METHOD' 
109908                 WHEN 10 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
109909                 WHEN 11 THEN 'ASP_RATE_VAR_GAIN_CCID' 
109910                 WHEN 12 THEN 'ASP_RATE_VAR_LOSS_CCID' 
109911                 WHEN 13 THEN 'CGAC_CASH_CLEARING_CCID' 
109912                 WHEN 14 THEN 'ASP_DISC_TAKEN_CCID' 
109913                 WHEN 15 THEN 'ASP_AUTO_OFFSET_FLAG' 
109914                 WHEN 16 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
109915                 WHEN 17 THEN 'AC_VENDOR_ID' 
109916                 WHEN 18 THEN 'AC_VENDOR_SITE_ID' 
109917                 WHEN 19 THEN 'THIRD_PARTY_TYPE' 
109918                 WHEN 20 THEN 'PAYMENT_TYPE' 
109919                 WHEN 21 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
109920                 WHEN 22 THEN 'AC_FUTURE_PAY_DUE_DATE' 
109921                 WHEN 23 THEN 'AC_EXCHANGE_DATE' 
109922                 WHEN 24 THEN 'AC_EXCHANGE_RATE' 
109923                 WHEN 25 THEN 'AC_EXCHANGE_RATE_TYPE' 
109924                 WHEN 26 THEN 'AC_DOC_CATEGORY_CODE' 
109925                 WHEN 27 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
109926                 WHEN 28 THEN 'TRANSAC_REVERSAL_FLAG' 
109927                 
109928                 ELSE null
109929               END                           source_code
109930             , CASE r
109931                 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
109932                 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
109933                 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
109934                 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
109935                 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
109936                 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
109937                 WHEN 7 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
109938                 WHEN 8 THEN TO_CHAR(h4.FSP_DISC_TAKEN_CCID)
109939                 WHEN 9 THEN TO_CHAR(h4.ASP_DISCOUNT_DIST_METHOD)
109940                 WHEN 10 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
109941                 WHEN 11 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
109942                 WHEN 12 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
109943                 WHEN 13 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
109944                 WHEN 14 THEN TO_CHAR(h4.ASP_DISC_TAKEN_CCID)
109945                 WHEN 15 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
109946                 WHEN 16 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
109947                 WHEN 17 THEN TO_CHAR(h2.AC_VENDOR_ID)
109948                 WHEN 18 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
109949                 WHEN 19 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
109950                 WHEN 20 THEN TO_CHAR(h2.PAYMENT_TYPE)
109951                 WHEN 21 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
109952                 WHEN 22 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
109953                 WHEN 23 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
109954                 WHEN 24 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
109955                 WHEN 25 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
109956                 WHEN 26 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
109957                 WHEN 27 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
109958                 WHEN 28 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
109959                 
109960                 ELSE null
109961               END                           source_value
109962             , CASE r
109963                 WHEN 9 THEN fvl15.meaning
109964                 WHEN 10 THEN fvl16.meaning
109965                 WHEN 15 THEN fvl42.meaning
109966                 WHEN 20 THEN fvl71.meaning
109967                 WHEN 21 THEN fvl117.meaning
109968                 WHEN 28 THEN fvl159.meaning
109969                 
109970                 ELSE null
109971               END               source_meaning
109972          FROM xla_events_gt     xet  
109973       , AP_PAYMENT_EXTRACT_HEADER_V  h2
109974       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
109975   , fnd_lookup_values    fvl15
109976   , fnd_lookup_values    fvl16
109977   , fnd_lookup_values    fvl42
109978   , fnd_lookup_values    fvl71
109979   , fnd_lookup_values    fvl117
109980   , fnd_lookup_values    fvl159
109981              ,(select rownum r from all_objects where rownum <= 28 and owner = p_apps_owner)
109982          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
109983            AND xet.event_class_code = C_EVENT_CLASS_CODE
109984               AND h2.event_id = xet.event_id
109985  AND h4.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
109986   AND fvl15.lookup_code(+)         = h4.ASP_DISCOUNT_DIST_METHOD
109987   AND fvl15.view_application_id(+) = 200
109988   AND fvl15.language(+)            = USERENV('LANG')
109989      AND fvl16.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
109993      AND fvl42.lookup_type(+)         = 'YES_NO'
109990   AND fvl16.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
109991   AND fvl16.view_application_id(+) = 200
109992   AND fvl16.language(+)            = USERENV('LANG')
109994   AND fvl42.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
109995   AND fvl42.view_application_id(+) = 0
109996   AND fvl42.language(+)            = USERENV('LANG')
109997      AND fvl71.lookup_type(+)         = 'PAYMENT TYPE'
109998   AND fvl71.lookup_code(+)         = h2.PAYMENT_TYPE
109999   AND fvl71.view_application_id(+) = 200
110000   AND fvl71.language(+)            = USERENV('LANG')
110001      AND fvl117.lookup_type(+)         = 'YES_NO'
110002   AND fvl117.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
110003   AND fvl117.view_application_id(+) = 0
110004   AND fvl117.language(+)            = USERENV('LANG')
110005      AND fvl159.lookup_type(+)         = 'YES_NO'
110006   AND fvl159.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
110007   AND fvl159.view_application_id(+) = 0
110008   AND fvl159.language(+)            = USERENV('LANG')
110009   
110010 )
110011 ;
110012 --
110013 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
110014 
110015       trace
110016          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
110017          ,p_level    => C_LEVEL_STATEMENT
110018          ,p_module   => l_log_module);
110019 
110020 END IF;
110021 --
110022 
110023 
110024 
110025 --
110026 INSERT INTO xla_diag_sources  --line2
110027 (
110028         event_id
110029       , ledger_id
110030       , sla_ledger_id
110031       , description_language
110032       , object_name
110033       , object_type_code
110034       , line_number
110035       , source_application_id
110036       , source_type_code
110037       , source_code
110038       , source_value
110039       , source_meaning
110040       , created_by
110041       , creation_date
110042       , last_update_date
110043       , last_updated_by
110044       , last_update_login
110045       , program_update_date
110046       , program_application_id
110047       , program_id
110048       , request_id
110049 )
110050 SELECT  event_id
110051       , p_target_ledger_id
110052       , p_sla_ledger_id
110053       , p_language
110054       , object_name
110055       , object_type_code
110056       , line_number
110057       , source_application_id
110058       , source_type_code
110059       , source_code
110060       , SUBSTR(source_value,1,1996)
110061       , SUBSTR(source_meaning ,1,200)
110062       , xla_environment_pkg.g_Usr_Id
110063       , TRUNC(SYSDATE)
110064       , TRUNC(SYSDATE)
110065       , xla_environment_pkg.g_Usr_Id
110066       , xla_environment_pkg.g_Login_Id
110067       , TRUNC(SYSDATE)
110068       , xla_environment_pkg.g_Prog_Appl_Id
110069       , xla_environment_pkg.g_Prog_Id
110070       , xla_environment_pkg.g_Req_Id
110071   FROM (
110072        SELECT xet.event_id                  event_id
110073             , l1.line_number                 line_number
110074             , CASE r
110075                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110076                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110077                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110078                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110079                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110080                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110081                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110082                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110083                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110084                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110085                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110086                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110087                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110088                 WHEN 14 THEN 'AP_PO_HEADERS_EXTRACT_V' 
110089                 WHEN 15 THEN 'AP_PO_HEADERS_EXTRACT_V' 
110090                 WHEN 16 THEN 'AP_PO_HEADERS_EXTRACT_V' 
110091                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110092                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110093                 WHEN 19 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
110094                 WHEN 20 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
110095                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110096                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110097                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110098                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110099                 WHEN 25 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
110100                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
110101                 
110102                ELSE null
110103               END                           object_name
110104             , CASE r
110105                 WHEN 1 THEN 'LINE' 
110106                 WHEN 2 THEN 'LINE' 
110107                 WHEN 3 THEN 'LINE' 
110108                 WHEN 4 THEN 'LINE' 
110109                 WHEN 5 THEN 'LINE' 
110110                 WHEN 6 THEN 'LINE' 
110111                 WHEN 7 THEN 'LINE' 
110112                 WHEN 8 THEN 'LINE' 
110113                 WHEN 9 THEN 'LINE' 
110114                 WHEN 10 THEN 'LINE' 
110115                 WHEN 11 THEN 'LINE' 
110116                 WHEN 12 THEN 'LINE' 
110117                 WHEN 13 THEN 'LINE' 
110118                 WHEN 14 THEN 'LINE' 
110119                 WHEN 15 THEN 'LINE' 
110120                 WHEN 16 THEN 'LINE' 
110121                 WHEN 17 THEN 'LINE' 
110122                 WHEN 18 THEN 'LINE' 
110123                 WHEN 19 THEN 'LINE' 
110124                 WHEN 20 THEN 'LINE' 
110125                 WHEN 21 THEN 'LINE' 
110126                 WHEN 22 THEN 'LINE' 
110127                 WHEN 23 THEN 'LINE' 
110128                 WHEN 24 THEN 'LINE' 
110132                 ELSE null
110129                 WHEN 25 THEN 'LINE' 
110130                 WHEN 26 THEN 'LINE' 
110131                 
110133               END                           object_type_code
110134             , CASE r
110135                 WHEN 1 THEN '200' 
110136                 WHEN 2 THEN '200' 
110137                 WHEN 3 THEN '200' 
110138                 WHEN 4 THEN '200' 
110139                 WHEN 5 THEN '200' 
110140                 WHEN 6 THEN '200' 
110141                 WHEN 7 THEN '200' 
110142                 WHEN 8 THEN '200' 
110143                 WHEN 9 THEN '200' 
110144                 WHEN 10 THEN '200' 
110145                 WHEN 11 THEN '200' 
110146                 WHEN 12 THEN '200' 
110147                 WHEN 13 THEN '200' 
110148                 WHEN 14 THEN '200' 
110149                 WHEN 15 THEN '200' 
110150                 WHEN 16 THEN '200' 
110151                 WHEN 17 THEN '200' 
110152                 WHEN 18 THEN '200' 
110153                 WHEN 19 THEN '200' 
110154                 WHEN 20 THEN '200' 
110155                 WHEN 21 THEN '200' 
110156                 WHEN 22 THEN '200' 
110157                 WHEN 23 THEN '200' 
110158                 WHEN 24 THEN '200' 
110159                 WHEN 25 THEN '200' 
110160                 WHEN 26 THEN '200' 
110161                 
110162                 ELSE null
110163               END                           source_application_id
110164             , 'S'             source_type_code
110165             , CASE r
110166                 WHEN 1 THEN 'RELATED_INV_DIST_DEST_TYPE' 
110167                 WHEN 2 THEN 'APHD_PAYMENT_BASE_AMT' 
110168                 WHEN 3 THEN 'APHD_CLEARING_BASE_AMT' 
110169                 WHEN 4 THEN 'AID_DIST_CCID' 
110170                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
110171                 WHEN 6 THEN 'POD_CCID' 
110172                 WHEN 7 THEN 'PO_VARIANCE_ACCOUNT' 
110173                 WHEN 8 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
110174                 WHEN 9 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
110175                 WHEN 10 THEN 'APHD_AMOUNT' 
110176                 WHEN 11 THEN 'BUS_FLOW_AP_APP_ID' 
110177                 WHEN 12 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
110178                 WHEN 13 THEN 'DISTRIBUTION_LINK_TYPE' 
110179                 WHEN 14 THEN 'POH_RATE_DATE' 
110180                 WHEN 15 THEN 'POH_RATE' 
110181                 WHEN 16 THEN 'POH_RATE_TYPE' 
110182                 WHEN 17 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
110183                 WHEN 18 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
110184                 WHEN 19 THEN 'TAX_LINE_ID' 
110185                 WHEN 20 THEN 'SUMMARY_TAX_LINE_ID' 
110186                 WHEN 21 THEN 'BUS_FLOW_INV_DIST_TYPE' 
110187                 WHEN 22 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
110188                 WHEN 23 THEN 'BUS_FLOW_INV_DIST_ID' 
110189                 WHEN 24 THEN 'BUS_FLOW_INV_ID' 
110190                 WHEN 25 THEN 'REC_NREC_TAX_DIST_ID' 
110191                 WHEN 26 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
110192                 
110193                 ELSE null
110194               END                           source_code
110195             , CASE r
110196                 WHEN 1 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
110197                 WHEN 2 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
110198                 WHEN 3 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
110199                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
110200                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
110201                 WHEN 6 THEN TO_CHAR(l1.POD_CCID)
110202                 WHEN 7 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
110203                 WHEN 8 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
110204                 WHEN 9 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
110205                 WHEN 10 THEN TO_CHAR(l1.APHD_AMOUNT)
110206                 WHEN 11 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
110207                 WHEN 12 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
110208                 WHEN 13 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
110209                 WHEN 14 THEN TO_CHAR(l3.POH_RATE_DATE)
110210                 WHEN 15 THEN TO_CHAR(l3.POH_RATE)
110211                 WHEN 16 THEN TO_CHAR(l3.POH_RATE_TYPE)
110212                 WHEN 17 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
110213                 WHEN 18 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
110214                 WHEN 19 THEN TO_CHAR(l5.TAX_LINE_ID)
110215                 WHEN 20 THEN TO_CHAR(l5.SUMMARY_TAX_LINE_ID)
110216                 WHEN 21 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
110217                 WHEN 22 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
110218                 WHEN 23 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
110219                 WHEN 24 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
110220                 WHEN 25 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
110221                 WHEN 26 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
110222                 
110223                 ELSE null
110224               END                           source_value
110225             , CASE r
110226                 WHEN 1 THEN fvl19.meaning
110227                 WHEN 5 THEN fvl32.meaning
110228                 WHEN 8 THEN fvl51.meaning
110229                 WHEN 17 THEN fvl64.meaning
110230                 WHEN 26 THEN fvl111.meaning
110231                 
110232                 ELSE null
110233               END               source_meaning
110234          FROM  xla_events_gt     xet  
110235         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
110236         , AP_PO_HEADERS_EXTRACT_V  l3
110237         , ZX_AP_DEF_TAX_EXTRACT_V  l5
110238         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
110239   , fnd_lookup_values    fvl19
110240   , fnd_lookup_values    fvl32
110241   , fnd_lookup_values    fvl51
110242   , fnd_lookup_values    fvl64
110243   , fnd_lookup_values    fvl111
110244             , (select rownum r from all_objects where rownum <= 26 and owner = p_apps_owner)
110245         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
110246           AND xet.event_class_code = C_EVENT_CLASS_CODE
110250   AND fvl19.view_application_id(+) = 201
110247             AND l1.event_id          = xet.event_id
110248  AND l1.pod_po_header_id  = l3.po_header_id (+)  AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l1.aid_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl19.lookup_type(+)         = 'DESTINATION TYPE'
110249   AND fvl19.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
110251   AND fvl19.language(+)            = USERENV('LANG')
110252      AND fvl32.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
110253   AND fvl32.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
110254   AND fvl32.view_application_id(+) = 200
110255   AND fvl32.language(+)            = USERENV('LANG')
110256      AND fvl51.lookup_type(+)         = 'PAY_DIST_TYPES'
110257   AND fvl51.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
110258   AND fvl51.view_application_id(+) = 200
110259   AND fvl51.language(+)            = USERENV('LANG')
110260      AND fvl64.lookup_type(+)         = 'YES_NO'
110261   AND fvl64.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
110262   AND fvl64.view_application_id(+) = 0
110263   AND fvl64.language(+)            = USERENV('LANG')
110264      AND fvl111.lookup_type(+)         = 'YES_NO'
110265   AND fvl111.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
110266   AND fvl111.view_application_id(+) = 0
110267   AND fvl111.language(+)            = USERENV('LANG')
110268   
110269 )
110270 ;
110271 --
110272 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
110273 
110274       trace
110275          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
110276          ,p_level    => C_LEVEL_STATEMENT
110277          ,p_module   => l_log_module);
110278 
110279 END IF;
110280 
110281 
110282 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110283       trace
110284          (p_msg      => 'END of insert_sources_170'
110285          ,p_level    => C_LEVEL_PROCEDURE
110286          ,p_module   => l_log_module);
110287 END IF;
110288 EXCEPTION
110289   WHEN xla_exceptions_pkg.application_exception THEN
110290       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
110291             trace
110292                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
110293                ,p_level    => C_LEVEL_EXCEPTION
110294                ,p_module   => l_log_module);
110295       END IF;
110296       RAISE;
110297   WHEN OTHERS THEN
110298       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
110299             trace
110300                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
110301                ,p_level    => C_LEVEL_EXCEPTION
110302                ,p_module   => l_log_module);
110303        END IF;
110304        xla_exceptions_pkg.raise_message
110305            (p_location => 'XLA_00200_AAD_S_000011_PKG.insert_sources_170');
110306 END insert_sources_170;
110307 --
110308 
110309 ---------------------------------------
110310 --
110311 -- PRIVATE FUNCTION
110312 --         EventClass_170
110313 --
110314 ----------------------------------------
110315 --
110316 FUNCTION EventClass_170
110317        (p_application_id         IN NUMBER
110318        ,p_base_ledger_id         IN NUMBER
110319        ,p_target_ledger_id       IN NUMBER
110320        ,p_language               IN VARCHAR2
110321        ,p_currency_code          IN VARCHAR2
110322        ,p_sla_ledger_id          IN NUMBER
110323        ,p_pad_start_date         IN DATE
110324        ,p_pad_end_date           IN DATE
110325        ,p_primary_ledger_id      IN NUMBER)
110326 RETURN BOOLEAN IS
110327 --
110328 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'REFUNDS_ALL';
110329 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'REFUNDS';
110330 
110331 l_calculate_acctd_flag   VARCHAR2(1) :='N';
110332 l_calculate_g_l_flag     VARCHAR2(1) :='N';
110333 --
110334 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110335 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110336 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
110337 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
110338 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110339 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
110340 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
110341 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110342 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
110343 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
110344 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110345 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110346 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110347 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110348 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
110349 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
110350 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
110351 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
110352 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
110353 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
110354 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
110355 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
110356 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
110357 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
110358 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
110359 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
110360 
110361 l_event_id                             NUMBER;
110362 l_previous_event_id                    NUMBER;
110366 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
110363 l_first_event_id                       NUMBER;
110364 l_last_event_id                        NUMBER;
110365 
110367 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
110368 --
110369 --
110370 l_result                    BOOLEAN := TRUE;
110371 l_rows                      NUMBER  := 1000;
110372 l_event_type_name           VARCHAR2(80) := 'All';
110373 l_event_class_name          VARCHAR2(80) := 'Refunds';
110374 l_description               VARCHAR2(4000);
110375 l_transaction_reversal      NUMBER;
110376 l_ae_header_id              NUMBER;
110377 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
110378 l_log_module                VARCHAR2(240);
110379 --
110380 l_acct_reversal_source      VARCHAR2(30);
110381 l_trx_reversal_source       VARCHAR2(30);
110382 
110383 l_continue_with_lines       BOOLEAN := TRUE;
110384 --
110385 l_acc_rev_gl_date_source    DATE;                      -- 4262811
110386 --
110387 type t_array_event_id is table of number index by binary_integer;
110388 
110389 l_rec_array_event                    t_rec_array_event;
110390 l_null_rec_array_event               t_rec_array_event;
110391 l_array_ae_header_id                 xla_number_array_type;
110392 l_actual_flag                        VARCHAR2(1) := NULL;
110393 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
110394 l_balance_type_code                  VARCHAR2(1) :=NULL;
110395 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
110396 
110397 --
110398 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
110399 --
110400 
110401 TYPE t_array_source_5 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
110402 TYPE t_array_source_8 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
110403 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
110404 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
110405 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
110406 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
110407 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
110408 TYPE t_array_source_14 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
110409 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
110410 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
110411 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
110412 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
110413 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
110414 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
110415 TYPE t_array_source_42 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
110416 TYPE t_array_source_50 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
110417 TYPE t_array_source_65 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
110418 TYPE t_array_source_66 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
110419 TYPE t_array_source_67 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
110420 TYPE t_array_source_71 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
110421 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
110422 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
110423 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
110424 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
110425 TYPE t_array_source_123 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
110426 TYPE t_array_source_156 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
110427 TYPE t_array_source_157 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
110428 TYPE t_array_source_159 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
110429 
110430 TYPE t_array_source_19 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
110431 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
110432 TYPE t_array_source_22 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
110433 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
110434 TYPE t_array_source_32 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
110435 TYPE t_array_source_40 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
110436 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
110437 TYPE t_array_source_51 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
110438 TYPE t_array_source_52 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
110439 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
110440 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
110444 TYPE t_array_source_62 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
110441 TYPE t_array_source_59 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
110442 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
110443 TYPE t_array_source_61 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
110445 TYPE t_array_source_63 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
110446 TYPE t_array_source_64 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
110447 TYPE t_array_source_68 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
110448 TYPE t_array_source_69 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
110449 TYPE t_array_source_70 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
110450 TYPE t_array_source_73 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
110451 TYPE t_array_source_74 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
110452 TYPE t_array_source_75 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
110453 TYPE t_array_source_76 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
110454 TYPE t_array_source_77 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
110455 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
110456 
110457 l_array_source_5              t_array_source_5;
110458 l_array_source_8              t_array_source_8;
110459 l_array_source_9              t_array_source_9;
110460 l_array_source_10              t_array_source_10;
110461 l_array_source_11              t_array_source_11;
110462 l_array_source_12              t_array_source_12;
110463 l_array_source_13              t_array_source_13;
110464 l_array_source_14              t_array_source_14;
110465 l_array_source_15              t_array_source_15;
110466 l_array_source_15_meaning      t_array_lookup_meaning;
110467 l_array_source_16              t_array_source_16;
110468 l_array_source_16_meaning      t_array_lookup_meaning;
110469 l_array_source_17              t_array_source_17;
110470 l_array_source_20              t_array_source_20;
110471 l_array_source_33              t_array_source_33;
110472 l_array_source_39              t_array_source_39;
110473 l_array_source_42              t_array_source_42;
110474 l_array_source_42_meaning      t_array_lookup_meaning;
110475 l_array_source_50              t_array_source_50;
110476 l_array_source_65              t_array_source_65;
110477 l_array_source_66              t_array_source_66;
110478 l_array_source_67              t_array_source_67;
110479 l_array_source_71              t_array_source_71;
110480 l_array_source_71_meaning      t_array_lookup_meaning;
110481 l_array_source_117              t_array_source_117;
110482 l_array_source_117_meaning      t_array_lookup_meaning;
110483 l_array_source_118              t_array_source_118;
110484 l_array_source_121              t_array_source_121;
110485 l_array_source_122              t_array_source_122;
110486 l_array_source_123              t_array_source_123;
110487 l_array_source_156              t_array_source_156;
110488 l_array_source_157              t_array_source_157;
110489 l_array_source_159              t_array_source_159;
110490 l_array_source_159_meaning      t_array_lookup_meaning;
110491 
110492 l_array_source_19      t_array_source_19;
110493 l_array_source_19_meaning      t_array_lookup_meaning;
110494 l_array_source_21      t_array_source_21;
110495 l_array_source_22      t_array_source_22;
110496 l_array_source_29      t_array_source_29;
110497 l_array_source_32      t_array_source_32;
110498 l_array_source_32_meaning      t_array_lookup_meaning;
110499 l_array_source_40      t_array_source_40;
110500 l_array_source_41      t_array_source_41;
110501 l_array_source_51      t_array_source_51;
110502 l_array_source_51_meaning      t_array_lookup_meaning;
110503 l_array_source_52      t_array_source_52;
110504 l_array_source_53      t_array_source_53;
110505 l_array_source_54      t_array_source_54;
110506 l_array_source_59      t_array_source_59;
110507 l_array_source_60      t_array_source_60;
110508 l_array_source_61      t_array_source_61;
110509 l_array_source_62      t_array_source_62;
110510 l_array_source_63      t_array_source_63;
110511 l_array_source_64      t_array_source_64;
110512 l_array_source_64_meaning      t_array_lookup_meaning;
110513 l_array_source_68      t_array_source_68;
110514 l_array_source_69      t_array_source_69;
110515 l_array_source_70      t_array_source_70;
110516 l_array_source_73      t_array_source_73;
110517 l_array_source_74      t_array_source_74;
110518 l_array_source_75      t_array_source_75;
110519 l_array_source_76      t_array_source_76;
110520 l_array_source_77      t_array_source_77;
110521 l_array_source_111      t_array_source_111;
110522 l_array_source_111_meaning      t_array_lookup_meaning;
110523 
110524 --
110525 CURSOR header_cur
110526 IS
110527 SELECT /*+ leading(xet) cardinality(xet,1) */
110528 -- Event Class Code: REFUNDS
110529     xet.entity_id
110530    ,xet.legal_entity_id
110531    ,xet.entity_code
110532    ,xet.transaction_number
110533    ,xet.event_id
110534    ,xet.event_class_code
110535    ,xet.event_type_code
110536    ,xet.event_number
110537    ,xet.event_date
110538    ,xet.transaction_date
110539    ,xet.reference_num_1
110540    ,xet.reference_num_2
110541    ,xet.reference_num_3
110542    ,xet.reference_num_4
110543    ,xet.reference_char_1
110544    ,xet.reference_char_2
110545    ,xet.reference_char_3
110546    ,xet.reference_char_4
110547    ,xet.reference_date_1
110548    ,xet.reference_date_2
110549    ,xet.reference_date_3
110550    ,xet.reference_date_4
110551    ,xet.event_created_by
110552    ,xet.budgetary_control_flag 
110556   , h2.AC_CHECK_DATE    source_10
110553   , h2.DOC_SEQUENCE_NAME    source_5
110554   , h2.AC_DOC_SEQUENCE_VALUE    source_8
110555   , h2.PAYMENT_TRANSACTION_NUMBER    source_9
110557   , h2.CBA_BANK_ACCOUNT_NAME    source_11
110558   , h2.AC_CURRENCY_CODE    source_12
110559   , h2.CGAC_AP_ASSET_CCID    source_13
110560   , h4.FSP_DISC_TAKEN_CCID    source_14
110561   , h4.ASP_DISCOUNT_DIST_METHOD    source_15
110562   , fvl15.meaning   source_15_meaning
110563   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_16
110564   , fvl16.meaning   source_16_meaning
110565   , h4.ASP_RATE_VAR_GAIN_CCID    source_17
110566   , h4.ASP_RATE_VAR_LOSS_CCID    source_20
110567   , h2.CGAC_CASH_CLEARING_CCID    source_33
110568   , h4.ASP_DISC_TAKEN_CCID    source_39
110569   , h4.ASP_AUTO_OFFSET_FLAG    source_42
110570   , fvl42.meaning   source_42_meaning
110571   , h4.ASP_WHEN_TO_ACCOUNT_PMT    source_50
110572   , h2.AC_VENDOR_ID    source_65
110573   , h2.AC_VENDOR_SITE_ID    source_66
110574   , h2.THIRD_PARTY_TYPE    source_67
110575   , h2.PAYMENT_TYPE    source_71
110576   , fvl71.meaning   source_71_meaning
110577   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_117
110578   , fvl117.meaning   source_117_meaning
110579   , h2.AC_FUTURE_PAY_DUE_DATE    source_118
110580   , h2.AC_EXCHANGE_DATE    source_121
110581   , h2.AC_EXCHANGE_RATE    source_122
110582   , h2.AC_EXCHANGE_RATE_TYPE    source_123
110583   , h2.AC_DOC_CATEGORY_CODE    source_156
110584   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_157
110585   , h2.TRANSAC_REVERSAL_FLAG    source_159
110586   , fvl159.meaning   source_159_meaning
110587   FROM xla_events_gt     xet 
110588   , AP_PAYMENT_EXTRACT_HEADER_V  h2
110589   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
110590   , fnd_lookup_values    fvl15
110591   , fnd_lookup_values    fvl16
110592   , fnd_lookup_values    fvl42
110593   , fnd_lookup_values    fvl71
110594   , fnd_lookup_values    fvl117
110595   , fnd_lookup_values    fvl159
110596  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
110597    and xet.event_class_code = C_EVENT_CLASS_CODE
110598    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
110599  AND h4.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
110600   AND fvl15.lookup_code(+)         = h4.ASP_DISCOUNT_DIST_METHOD
110601   AND fvl15.view_application_id(+) = 200
110602   AND fvl15.language(+)            = USERENV('LANG')
110603      AND fvl16.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
110604   AND fvl16.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
110605   AND fvl16.view_application_id(+) = 200
110606   AND fvl16.language(+)            = USERENV('LANG')
110607      AND fvl42.lookup_type(+)         = 'YES_NO'
110608   AND fvl42.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
110609   AND fvl42.view_application_id(+) = 0
110610   AND fvl42.language(+)            = USERENV('LANG')
110611      AND fvl71.lookup_type(+)         = 'PAYMENT TYPE'
110612   AND fvl71.lookup_code(+)         = h2.PAYMENT_TYPE
110613   AND fvl71.view_application_id(+) = 200
110614   AND fvl71.language(+)            = USERENV('LANG')
110615      AND fvl117.lookup_type(+)         = 'YES_NO'
110616   AND fvl117.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
110617   AND fvl117.view_application_id(+) = 0
110618   AND fvl117.language(+)            = USERENV('LANG')
110619      AND fvl159.lookup_type(+)         = 'YES_NO'
110620   AND fvl159.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
110621   AND fvl159.view_application_id(+) = 0
110622   AND fvl159.language(+)            = USERENV('LANG')
110623   
110624  ORDER BY event_id
110625 ;
110626 
110627 
110628 --
110629 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
110630 IS
110631 SELECT  /*+ leading(xet) cardinality(xet,1) */
110632 -- Event Class Code: REFUNDS
110633     xet.entity_id
110634    ,xet.legal_entity_id
110635    ,xet.entity_code
110636    ,xet.transaction_number
110637    ,xet.event_id
110638    ,xet.event_class_code
110639    ,xet.event_type_code
110640    ,xet.event_number
110641    ,xet.event_date
110642    ,xet.transaction_date
110643    ,xet.reference_num_1
110644    ,xet.reference_num_2
110645    ,xet.reference_num_3
110646    ,xet.reference_num_4
110647    ,xet.reference_char_1
110648    ,xet.reference_char_2
110649    ,xet.reference_char_3
110650    ,xet.reference_char_4
110651    ,xet.reference_date_1
110652    ,xet.reference_date_2
110653    ,xet.reference_date_3
110654    ,xet.reference_date_4
110655    ,xet.event_created_by
110656    ,xet.budgetary_control_flag
110657  , l1.LINE_NUMBER  
110658   , l1.RELATED_INV_DIST_DEST_TYPE    source_19
110659   , fvl19.meaning   source_19_meaning
110660   , l1.APHD_PAYMENT_BASE_AMT    source_21
110661   , l1.APHD_CLEARING_BASE_AMT    source_22
110662   , l1.AID_DIST_CCID    source_29
110663   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_32
110664   , fvl32.meaning   source_32_meaning
110665   , l1.POD_CCID    source_40
110666   , l1.PO_VARIANCE_ACCOUNT    source_41
110667   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_51
110668   , fvl51.meaning   source_51_meaning
110669   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_52
110670   , l1.APHD_AMOUNT    source_53
110671   , l1.BUS_FLOW_AP_APP_ID    source_54
110672   , l1.APHD_PAYMENT_HIST_DIST_ID    source_59
110673   , l1.DISTRIBUTION_LINK_TYPE    source_60
110674   , l3.POH_RATE_DATE    source_61
110675   , l3.POH_RATE    source_62
110676   , l3.POH_RATE_TYPE    source_63
110677   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_64
110678   , fvl64.meaning   source_64_meaning
110679   , l1.APHD_REV_PAY_HIST_DIST_ID    source_68
110680   , l5.TAX_LINE_ID    source_69
110681   , l5.SUMMARY_TAX_LINE_ID    source_70
110682   , l1.BUS_FLOW_INV_DIST_TYPE    source_73
110683   , l1.BUS_FLOW_INV_ENTITY_CODE    source_74
110684   , l1.BUS_FLOW_INV_DIST_ID    source_75
110685   , l1.BUS_FLOW_INV_ID    source_76
110686   , l6.REC_NREC_TAX_DIST_ID    source_77
110690   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
110687   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_111
110688   , fvl111.meaning   source_111_meaning
110689   FROM xla_events_gt     xet 
110691   , AP_PO_HEADERS_EXTRACT_V  l3
110692   , ZX_AP_DEF_TAX_EXTRACT_V  l5
110693   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
110694   , fnd_lookup_values    fvl19
110695   , fnd_lookup_values    fvl32
110696   , fnd_lookup_values    fvl51
110697   , fnd_lookup_values    fvl64
110698   , fnd_lookup_values    fvl111
110699  WHERE xet.event_id between x_first_event_id and x_last_event_id
110700    and xet.event_date between p_pad_start_date and p_pad_end_date
110701    and xet.event_class_code = C_EVENT_CLASS_CODE
110702    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
110703  AND l1.POD_PO_Header_Id  = l3.PO_Header_Id (+)  AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+)  AND l1.AID_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl19.lookup_type(+)         = 'DESTINATION TYPE'
110704   AND fvl19.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
110705   AND fvl19.view_application_id(+) = 201
110706   AND fvl19.language(+)            = USERENV('LANG')
110707      AND fvl32.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
110708   AND fvl32.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
110709   AND fvl32.view_application_id(+) = 200
110710   AND fvl32.language(+)            = USERENV('LANG')
110711      AND fvl51.lookup_type(+)         = 'PAY_DIST_TYPES'
110712   AND fvl51.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
110713   AND fvl51.view_application_id(+) = 200
110714   AND fvl51.language(+)            = USERENV('LANG')
110715      AND fvl64.lookup_type(+)         = 'YES_NO'
110716   AND fvl64.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
110717   AND fvl64.view_application_id(+) = 0
110718   AND fvl64.language(+)            = USERENV('LANG')
110719      AND fvl111.lookup_type(+)         = 'YES_NO'
110720   AND fvl111.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
110721   AND fvl111.view_application_id(+) = 0
110722   AND fvl111.language(+)            = USERENV('LANG')
110723   ;
110724 
110725 --
110726 BEGIN
110727 IF g_log_enabled THEN
110728    l_log_module := C_DEFAULT_MODULE||'.EventClass_170';
110729 END IF;
110730 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110731    trace
110732       (p_msg      => 'BEGIN of EventClass_170'
110733       ,p_level    => C_LEVEL_PROCEDURE
110734       ,p_module   => l_log_module);
110735 END IF;
110736 
110737 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
110738    trace
110739       (p_msg      => 'p_application_id = '||p_application_id||
110740                      ' - p_base_ledger_id = '||p_base_ledger_id||
110741                      ' - p_target_ledger_id  = '||p_target_ledger_id||
110742                      ' - p_language = '||p_language||
110743                      ' - p_currency_code = '||p_currency_code||
110744                      ' - p_sla_ledger_id = '||p_sla_ledger_id
110745       ,p_level    => C_LEVEL_STATEMENT
110746       ,p_module   => l_log_module);
110747 END IF;
110748 --
110749 -- initialze arrays
110750 --
110751 g_array_event.DELETE;
110752 l_rec_array_event := l_null_rec_array_event;
110753 --
110754 --------------------------------------
110755 -- 4262811 Initialze MPA Line Number
110756 --------------------------------------
110757 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
110758 
110759 --
110760 
110761 --
110762 OPEN header_cur;
110763 --
110764 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
110765    trace
110766    (p_msg      => 'SQL - FETCH header_cur'
110767    ,p_level    => C_LEVEL_STATEMENT
110768    ,p_module   => l_log_module);
110769 END IF;
110770 --
110771 LOOP
110772 FETCH header_cur BULK COLLECT INTO
110773         l_array_entity_id
110774       , l_array_legal_entity_id
110775       , l_array_entity_code
110776       , l_array_transaction_num
110777       , l_array_event_id
110778       , l_array_class_code
110779       , l_array_event_type
110780       , l_array_event_number
110781       , l_array_event_date
110782       , l_array_transaction_date
110783       , l_array_reference_num_1
110784       , l_array_reference_num_2
110785       , l_array_reference_num_3
110786       , l_array_reference_num_4
110787       , l_array_reference_char_1
110788       , l_array_reference_char_2
110789       , l_array_reference_char_3
110790       , l_array_reference_char_4
110791       , l_array_reference_date_1
110792       , l_array_reference_date_2
110793       , l_array_reference_date_3
110794       , l_array_reference_date_4
110795       , l_array_event_created_by
110796       , l_array_budgetary_control_flag 
110797       , l_array_source_5
110798       , l_array_source_8
110799       , l_array_source_9
110800       , l_array_source_10
110801       , l_array_source_11
110802       , l_array_source_12
110803       , l_array_source_13
110804       , l_array_source_14
110805       , l_array_source_15
110806       , l_array_source_15_meaning
110807       , l_array_source_16
110808       , l_array_source_16_meaning
110809       , l_array_source_17
110810       , l_array_source_20
110811       , l_array_source_33
110812       , l_array_source_39
110813       , l_array_source_42
110814       , l_array_source_42_meaning
110815       , l_array_source_50
110816       , l_array_source_65
110817       , l_array_source_66
110818       , l_array_source_67
110819       , l_array_source_71
110820       , l_array_source_71_meaning
110821       , l_array_source_117
110822       , l_array_source_117_meaning
110823       , l_array_source_118
110824       , l_array_source_121
110825       , l_array_source_122
110826       , l_array_source_123
110827       , l_array_source_156
110828       , l_array_source_157
110829       , l_array_source_159
110830       , l_array_source_159_meaning
110831       LIMIT l_rows;
110832 --
110836    ,p_level    => C_LEVEL_EVENT
110833 IF (C_LEVEL_EVENT >= g_log_level) THEN
110834    trace
110835    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
110837    ,p_module   => l_log_module);
110838 END IF;
110839 --
110840 EXIT WHEN l_array_entity_id.COUNT = 0;
110841 
110842 -- initialize arrays
110843 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
110844 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
110845 
110846 --
110847 -- Bug 4458708
110848 --
110849 XLA_AE_LINES_PKG.g_LineNumber := 0;
110850 
110851 
110852 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
110853 g_last_hdr_idx := l_array_event_id.LAST;
110854 --
110855 -- loop for the headers. Each iteration is for each header extract row
110856 -- fetched in header cursor
110857 --
110858 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
110859 
110860 --
110861 -- set event info as cache for other routines to refer event attributes
110862 --
110863 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
110864    (p_application_id           => p_application_id
110865    ,p_primary_ledger_id        => p_primary_ledger_id
110866    ,p_base_ledger_id           => p_base_ledger_id
110867    ,p_target_ledger_id         => p_target_ledger_id
110868    ,p_entity_id                => l_array_entity_id(hdr_idx)
110869    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
110870    ,p_entity_code              => l_array_entity_code(hdr_idx)
110871    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
110872    ,p_event_id                 => l_array_event_id(hdr_idx)
110873    ,p_event_class_code         => l_array_class_code(hdr_idx)
110874    ,p_event_type_code          => l_array_event_type(hdr_idx)
110875    ,p_event_number             => l_array_event_number(hdr_idx)
110876    ,p_event_date               => l_array_event_date(hdr_idx)
110877    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
110878    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
110879    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
110880    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
110881    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
110882    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
110883    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
110884    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
110885    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
110886    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
110887    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
110888    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
110889    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
110890    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
110891    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
110892 
110893 --
110894 -- set the status of entry to C_VALID (0)
110895 --
110896 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
110897 
110898 --
110899 -- initialize a row for ae header
110900 --
110901 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
110902 
110903 l_event_id := l_array_event_id(hdr_idx);
110904 
110905 --
110906 -- storing the hdr_idx for event. May be used by line cursor.
110907 --
110908 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
110909 
110910 --
110911 -- store sources from header extract. This can be improved to
110912 -- store only those sources from header extract that may be used in lines
110913 --
110914 
110915 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
110916 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
110917 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
110918 g_array_event(l_event_id).array_value_date('source_10') := l_array_source_10(hdr_idx);
110919 g_array_event(l_event_id).array_value_char('source_11') := l_array_source_11(hdr_idx);
110920 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
110921 g_array_event(l_event_id).array_value_num('source_13') := l_array_source_13(hdr_idx);
110922 g_array_event(l_event_id).array_value_num('source_14') := l_array_source_14(hdr_idx);
110923 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
110924 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
110925 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
110926 g_array_event(l_event_id).array_value_char('source_16_meaning') := l_array_source_16_meaning(hdr_idx);
110927 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
110928 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
110929 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
110930 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
110931 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
110932 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
110933 g_array_event(l_event_id).array_value_char('source_50') := l_array_source_50(hdr_idx);
110934 g_array_event(l_event_id).array_value_num('source_65') := l_array_source_65(hdr_idx);
110935 g_array_event(l_event_id).array_value_num('source_66') := l_array_source_66(hdr_idx);
110936 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
110937 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
110938 g_array_event(l_event_id).array_value_char('source_71_meaning') := l_array_source_71_meaning(hdr_idx);
110939 g_array_event(l_event_id).array_value_char('source_117') := l_array_source_117(hdr_idx);
110940 g_array_event(l_event_id).array_value_char('source_117_meaning') := l_array_source_117_meaning(hdr_idx);
110944 g_array_event(l_event_id).array_value_char('source_123') := l_array_source_123(hdr_idx);
110941 g_array_event(l_event_id).array_value_date('source_118') := l_array_source_118(hdr_idx);
110942 g_array_event(l_event_id).array_value_date('source_121') := l_array_source_121(hdr_idx);
110943 g_array_event(l_event_id).array_value_num('source_122') := l_array_source_122(hdr_idx);
110945 g_array_event(l_event_id).array_value_char('source_156') := l_array_source_156(hdr_idx);
110946 g_array_event(l_event_id).array_value_num('source_157') := l_array_source_157(hdr_idx);
110947 g_array_event(l_event_id).array_value_char('source_159') := l_array_source_159(hdr_idx);
110948 g_array_event(l_event_id).array_value_char('source_159_meaning') := l_array_source_159_meaning(hdr_idx);
110949 
110950 --
110951 -- initilaize the status of ae headers for diffrent balance types
110952 -- the status is initialised to C_NOT_CREATED (2)
110953 --
110954 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
110955 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
110956 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
110957 
110958 --
110959 -- call api to validate and store accounting attributes for header
110960 --
110961 
110962 ------------------------------------------------------------
110963 -- Accrual Reversal : to get date for Standard Source (NONE)
110964 ------------------------------------------------------------
110965 l_acc_rev_gl_date_source := NULL;
110966 
110967      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
110968       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_156');
110969      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
110970       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_157');
110971      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
110972       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_8');
110973      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
110974       l_rec_acct_attrs.array_date_value(4) := 
110975 xla_ae_sources_pkg.GetSystemSourceDate(
110976    p_source_code           => 'XLA_EVENT_DATE'
110977  , p_source_type_code      => 'Y'
110978  , p_source_application_id =>  602
110979 );
110980      l_rec_acct_attrs.array_acct_attr_code(5)   := 'TRX_ACCT_REVERSAL_OPTION';
110981       l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_159');
110982 
110983 
110984 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
110985 
110986 XLA_AE_HEADER_PKG.SetJeCategoryName;
110987 
110988 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
110989 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
110990 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
110991 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
110992 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
110993 
110994 
110995 --
110996 xla_ae_header_pkg.SetHdrDescription(
110997    p_description => Description_2 (
110998    p_application_id => p_application_id 
110999  , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
111000  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
111001  , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
111002  , p_source_10 => g_array_event(l_event_id).array_value_date('source_10')
111003  , p_source_11 => g_array_event(l_event_id).array_value_char('source_11')
111004  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111005    )
111006 );
111007 --
111008 
111009 -- No header level analytical criteria
111010 
111011 --
111012 --accounting attribute enhancement, bug 3612931
111013 --
111014 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_159'), 1,30);
111015 
111016 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
111017    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
111018 
111019    xla_accounting_err_pkg.build_message
111020       (p_appli_s_name            => 'XLA'
111021       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
111022       ,p_token_1                 => 'ACCT_ATTR_NAME'
111023       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
111024       ,p_token_2                 => 'PRODUCT_NAME'
111025       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
111026       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
111027       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
111028       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
111029 
111030 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
111031    --
111032    -- following sets the accounting attributes needed to reverse
111033    -- accounting for a distributeion
111034    --
111035    xla_ae_lines_pkg.SetTrxReversalAttrs
111036       (p_event_id              => l_event_id
111037       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
111038       ,p_trx_reversal_source   => l_trx_reversal_source);
111039 
111040 END IF;
111041 
111042 
111043 ----------------------------------------------------------------
111044 -- 4262811 -  update the header statuses to invalid in need be
111045 ----------------------------------------------------------------
111046 --
111047 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
111048 
111049 
111050   -----------------------------------------------
111051   -- No accrual reversal for the event class/type
111052   -----------------------------------------------
111056 -- this ends the header loop iteration for one bulk fetch
111053 ----------------------------------------------------------------
111054 
111055 --
111057 --
111058 END LOOP;
111059 
111060 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
111061 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
111062 
111063 --
111064 -- insert dummy rows into lines gt table that were created due to
111065 -- transaction reversals
111066 --
111067 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
111068    l_result := XLA_AE_LINES_PKG.InsertLines;
111069 END IF;
111070 
111071 --
111072 -- reset the temp_line_num for each set of events fetched from header
111073 -- cursor rather than doing it for each new event in line cursor
111074 -- Bug 3939231
111075 --
111076 xla_ae_lines_pkg.g_temp_line_num := 0;
111077 
111078 
111079 
111080 --
111081 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
111082 --
111083 --
111084 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
111085 
111086       trace
111087          (p_msg      => 'SQL - FETCH line_cur'
111088          ,p_level    => C_LEVEL_STATEMENT
111089          ,p_module   => l_log_module);
111090 
111091 END IF;
111092 --
111093 --
111094 LOOP
111095   --
111096   FETCH line_cur BULK COLLECT INTO
111097         l_array_entity_id
111098       , l_array_legal_entity_id
111099       , l_array_entity_code
111100       , l_array_transaction_num
111101       , l_array_event_id
111102       , l_array_class_code
111103       , l_array_event_type
111104       , l_array_event_number
111105       , l_array_event_date
111106       , l_array_transaction_date
111107       , l_array_reference_num_1
111108       , l_array_reference_num_2
111109       , l_array_reference_num_3
111110       , l_array_reference_num_4
111111       , l_array_reference_char_1
111112       , l_array_reference_char_2
111113       , l_array_reference_char_3
111114       , l_array_reference_char_4
111115       , l_array_reference_date_1
111116       , l_array_reference_date_2
111117       , l_array_reference_date_3
111118       , l_array_reference_date_4
111119       , l_array_event_created_by
111120       , l_array_budgetary_control_flag
111121       , l_array_extract_line_num 
111122       , l_array_source_19
111123       , l_array_source_19_meaning
111124       , l_array_source_21
111125       , l_array_source_22
111126       , l_array_source_29
111127       , l_array_source_32
111128       , l_array_source_32_meaning
111129       , l_array_source_40
111130       , l_array_source_41
111131       , l_array_source_51
111132       , l_array_source_51_meaning
111133       , l_array_source_52
111134       , l_array_source_53
111135       , l_array_source_54
111136       , l_array_source_59
111137       , l_array_source_60
111138       , l_array_source_61
111139       , l_array_source_62
111140       , l_array_source_63
111141       , l_array_source_64
111142       , l_array_source_64_meaning
111143       , l_array_source_68
111144       , l_array_source_69
111145       , l_array_source_70
111146       , l_array_source_73
111147       , l_array_source_74
111148       , l_array_source_75
111149       , l_array_source_76
111150       , l_array_source_77
111151       , l_array_source_111
111152       , l_array_source_111_meaning
111153       LIMIT l_rows;
111154 
111155   --
111156   IF (C_LEVEL_EVENT >= g_log_level) THEN
111157             trace
111158                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
111159                ,p_level    => C_LEVEL_EVENT
111160                ,p_module   => l_log_module);
111161   END IF;
111162   --
111163   EXIT WHEN l_array_entity_id.count = 0;
111164 
111165   XLA_AE_LINES_PKG.g_rec_lines := null;
111166 
111167 --
111168 -- Bug 4458708
111169 --
111170 XLA_AE_LINES_PKG.g_LineNumber := 0;
111171 --
111172 --
111173 
111174 FOR Idx IN 1..l_array_event_id.count LOOP
111175    --
111176    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
111177    --
111178    l_event_id := l_array_event_id(idx);  -- 5648433
111179 
111180    --
111181    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
111182    --
111183 
111184    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
111185              (g_array_event(l_event_id).array_value_num('header_index'))
111186          ,'N'
111187          ) <> 'Y'
111188    THEN
111189       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
111190          trace
111191             (p_msg      => 'Trancaction revesal option is not Y '
111192             ,p_level    => C_LEVEL_STATEMENT
111193             ,p_module   => l_log_module);
111194       END IF;
111195 
111196 --
111197 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
111198 --
111199 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
111200 --
111201 -- set event info as cache for other routines to refer event attributes
111202 --
111203 
111204 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
111205    l_previous_event_id := l_event_id;
111206 
111207    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
111208       (p_application_id           => p_application_id
111209       ,p_primary_ledger_id        => p_primary_ledger_id
111210       ,p_base_ledger_id           => p_base_ledger_id
111211       ,p_target_ledger_id         => p_target_ledger_id
111212       ,p_entity_id                => l_array_entity_id(Idx)
111213       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
111214       ,p_entity_code              => l_array_entity_code(Idx)
111215       ,p_transaction_num          => l_array_transaction_num(Idx)
111219       ,p_event_number             => l_array_event_number(Idx)
111216       ,p_event_id                 => l_array_event_id(Idx)
111217       ,p_event_class_code         => l_array_class_code(Idx)
111218       ,p_event_type_code          => l_array_event_type(Idx)
111220       ,p_event_date               => l_array_event_date(Idx)
111221       ,p_transaction_date         => l_array_transaction_date(Idx)
111222       ,p_reference_num_1          => l_array_reference_num_1(Idx)
111223       ,p_reference_num_2          => l_array_reference_num_2(Idx)
111224       ,p_reference_num_3          => l_array_reference_num_3(Idx)
111225       ,p_reference_num_4          => l_array_reference_num_4(Idx)
111226       ,p_reference_char_1         => l_array_reference_char_1(Idx)
111227       ,p_reference_char_2         => l_array_reference_char_2(Idx)
111228       ,p_reference_char_3         => l_array_reference_char_3(Idx)
111229       ,p_reference_char_4         => l_array_reference_char_4(Idx)
111230       ,p_reference_date_1         => l_array_reference_date_1(Idx)
111231       ,p_reference_date_2         => l_array_reference_date_2(Idx)
111232       ,p_reference_date_3         => l_array_reference_date_3(Idx)
111233       ,p_reference_date_4         => l_array_reference_date_4(Idx)
111234       ,p_event_created_by         => l_array_event_created_by(Idx)
111235       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
111236        --
111237 END IF;
111238 
111239 
111240 
111241 --
111242 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
111243 
111244 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
111245 
111246 IF l_continue_with_lines THEN
111247    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
111248       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
111249 
111250       xla_accounting_err_pkg.build_message
111251          (p_appli_s_name            => 'XLA'
111252          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
111253          ,p_token_1                 => 'LINE_NUMBER'
111254          ,p_value_1                 => l_array_extract_line_num(Idx)
111255          ,p_token_2                 => 'PRODUCT_NAME'
111256          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
111257          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
111258          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
111259          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
111260 
111261    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
111262       --
111263       -- following sets the accounting attributes needed to reverse
111264       -- accounting for a distributeion
111265       --
111266 
111267       --
111268       -- 5217187
111269       --
111270       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
111271       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
111272                                        g_array_event(l_event_id).array_value_num('header_index'));
111273       --
111274       --
111275 
111276       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
111277       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_52(Idx);
111278       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
111279       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_59(Idx);
111280       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
111281       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_60(Idx);
111282       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
111283       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_67');
111284       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
111285       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_68(Idx);
111286       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
111287       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_60(Idx);
111288       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
111289       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_69(Idx);
111290       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
111291       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_77(Idx);
111292       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
111293       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_70(Idx);
111294 
111295 
111296       xla_ae_lines_pkg.SetAcctReversalAttrs
111297          (p_event_id             => l_event_id
111298          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
111299          ,p_calculate_acctd_flag => l_calculate_acctd_flag
111300          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
111301    END IF;
111302 
111303    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
111304        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
111305 
111306 --
111307 AcctLineType_41 (
111308  p_application_id  => p_application_id
111309  ,p_event_id     => l_event_id
111310  ,p_calculate_acctd_flag => l_calculate_acctd_flag
111311  ,p_calculate_g_l_flag => l_calculate_g_l_flag
111312  ,p_actual_flag => l_actual_flag
111313  ,p_balance_type_code => l_balance_type_code
111314  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111315  
111316  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111317  , p_source_21 => l_array_source_21(Idx)
111318  , p_source_32 => l_array_source_32(Idx)
111319  , p_source_32_meaning => l_array_source_32_meaning(Idx)
111320  , p_source_40 => l_array_source_40(Idx)
111321  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111322  , p_source_51 => l_array_source_51(Idx)
111323  , p_source_51_meaning => l_array_source_51_meaning(Idx)
111324  , p_source_52 => l_array_source_52(Idx)
111325  , p_source_53 => l_array_source_53(Idx)
111329  , p_source_61 => l_array_source_61(Idx)
111326  , p_source_54 => l_array_source_54(Idx)
111327  , p_source_59 => l_array_source_59(Idx)
111328  , p_source_60 => l_array_source_60(Idx)
111330  , p_source_62 => l_array_source_62(Idx)
111331  , p_source_63 => l_array_source_63(Idx)
111332  , p_source_64 => l_array_source_64(Idx)
111333  , p_source_64_meaning => l_array_source_64_meaning(Idx)
111334  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111335  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111336  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111337  , p_source_68 => l_array_source_68(Idx)
111338  , p_source_69 => l_array_source_69(Idx)
111339  , p_source_70 => l_array_source_70(Idx)
111340  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111341  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111342  , p_source_73 => l_array_source_73(Idx)
111343  , p_source_74 => l_array_source_74(Idx)
111344  , p_source_75 => l_array_source_75(Idx)
111345  , p_source_76 => l_array_source_76(Idx)
111346  , p_source_77 => l_array_source_77(Idx)
111347  );
111348 If(l_balance_type_code = 'A') THEN
111349   l_actual_gain_loss_ref := l_gain_or_loss_ref;
111350 END IF;
111351 
111352 --
111353 
111354 
111355 --
111356 AcctLineType_47 (
111357  p_application_id  => p_application_id
111358  ,p_event_id     => l_event_id
111359  ,p_calculate_acctd_flag => l_calculate_acctd_flag
111360  ,p_calculate_g_l_flag => l_calculate_g_l_flag
111361  ,p_actual_flag => l_actual_flag
111362  ,p_balance_type_code => l_balance_type_code
111363  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111364  
111365  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111366  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111367  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
111368  , p_source_19 => l_array_source_19(Idx)
111369  , p_source_19_meaning => l_array_source_19_meaning(Idx)
111370  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
111371  , p_source_21 => l_array_source_21(Idx)
111372  , p_source_22 => l_array_source_22(Idx)
111373  , p_source_29 => l_array_source_29(Idx)
111374  , p_source_32 => l_array_source_32(Idx)
111375  , p_source_32_meaning => l_array_source_32_meaning(Idx)
111376  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
111377  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
111378  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111379  , p_source_52 => l_array_source_52(Idx)
111380  , p_source_54 => l_array_source_54(Idx)
111381  , p_source_59 => l_array_source_59(Idx)
111382  , p_source_60 => l_array_source_60(Idx)
111383  , p_source_64 => l_array_source_64(Idx)
111384  , p_source_64_meaning => l_array_source_64_meaning(Idx)
111385  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111386  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111387  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111388  , p_source_68 => l_array_source_68(Idx)
111389  , p_source_69 => l_array_source_69(Idx)
111390  , p_source_70 => l_array_source_70(Idx)
111391  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111392  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111393  , p_source_73 => l_array_source_73(Idx)
111394  , p_source_74 => l_array_source_74(Idx)
111395  , p_source_75 => l_array_source_75(Idx)
111396  , p_source_76 => l_array_source_76(Idx)
111397  , p_source_77 => l_array_source_77(Idx)
111398  );
111399 If(l_balance_type_code = 'A') THEN
111400   l_actual_gain_loss_ref := l_gain_or_loss_ref;
111401 END IF;
111402 
111403 --
111404 
111405 
111406 --
111407 AcctLineType_50 (
111408  p_application_id  => p_application_id
111409  ,p_event_id     => l_event_id
111410  ,p_calculate_acctd_flag => l_calculate_acctd_flag
111411  ,p_calculate_g_l_flag => l_calculate_g_l_flag
111412  ,p_actual_flag => l_actual_flag
111413  ,p_balance_type_code => l_balance_type_code
111414  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111415  
111416  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111417  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111418  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
111419  , p_source_19 => l_array_source_19(Idx)
111420  , p_source_19_meaning => l_array_source_19_meaning(Idx)
111421  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
111422  , p_source_21 => l_array_source_21(Idx)
111423  , p_source_22 => l_array_source_22(Idx)
111424  , p_source_29 => l_array_source_29(Idx)
111425  , p_source_32 => l_array_source_32(Idx)
111426  , p_source_32_meaning => l_array_source_32_meaning(Idx)
111427  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
111428  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
111429  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111430  , p_source_51 => l_array_source_51(Idx)
111431  , p_source_51_meaning => l_array_source_51_meaning(Idx)
111432  , p_source_52 => l_array_source_52(Idx)
111433  , p_source_54 => l_array_source_54(Idx)
111434  , p_source_59 => l_array_source_59(Idx)
111435  , p_source_60 => l_array_source_60(Idx)
111436  , p_source_64 => l_array_source_64(Idx)
111437  , p_source_64_meaning => l_array_source_64_meaning(Idx)
111438  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111439  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111440  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111441  , p_source_68 => l_array_source_68(Idx)
111442  , p_source_69 => l_array_source_69(Idx)
111443  , p_source_70 => l_array_source_70(Idx)
111444  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111448  , p_source_75 => l_array_source_75(Idx)
111445  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111446  , p_source_73 => l_array_source_73(Idx)
111447  , p_source_74 => l_array_source_74(Idx)
111449  , p_source_76 => l_array_source_76(Idx)
111450  , p_source_77 => l_array_source_77(Idx)
111451  , p_source_111 => l_array_source_111(Idx)
111452  , p_source_111_meaning => l_array_source_111_meaning(Idx)
111453  );
111454 If(l_balance_type_code = 'A') THEN
111455   l_actual_gain_loss_ref := l_gain_or_loss_ref;
111456 END IF;
111457 
111458 --
111459 
111460 
111461 --
111462 AcctLineType_65 (
111463  p_application_id  => p_application_id
111464  ,p_event_id     => l_event_id
111465  ,p_calculate_acctd_flag => l_calculate_acctd_flag
111466  ,p_calculate_g_l_flag => l_calculate_g_l_flag
111467  ,p_actual_flag => l_actual_flag
111468  ,p_balance_type_code => l_balance_type_code
111469  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111470  
111471  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111472  , p_source_21 => l_array_source_21(Idx)
111473  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
111474  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
111475  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
111476  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111477  , p_source_51 => l_array_source_51(Idx)
111478  , p_source_51_meaning => l_array_source_51_meaning(Idx)
111479  , p_source_52 => l_array_source_52(Idx)
111480  , p_source_53 => l_array_source_53(Idx)
111481  , p_source_54 => l_array_source_54(Idx)
111482  , p_source_59 => l_array_source_59(Idx)
111483  , p_source_60 => l_array_source_60(Idx)
111484  , p_source_64 => l_array_source_64(Idx)
111485  , p_source_64_meaning => l_array_source_64_meaning(Idx)
111486  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111487  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111488  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111489  , p_source_68 => l_array_source_68(Idx)
111490  , p_source_69 => l_array_source_69(Idx)
111491  , p_source_70 => l_array_source_70(Idx)
111492  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111493  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111494  , p_source_73 => l_array_source_73(Idx)
111495  , p_source_74 => l_array_source_74(Idx)
111496  , p_source_75 => l_array_source_75(Idx)
111497  , p_source_76 => l_array_source_76(Idx)
111498  , p_source_77 => l_array_source_77(Idx)
111499  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
111500  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
111501  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
111502  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111503  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111504  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111505  );
111506 If(l_balance_type_code = 'A') THEN
111507   l_actual_gain_loss_ref := l_gain_or_loss_ref;
111508 END IF;
111509 
111510 --
111511 
111512 
111513 --
111514 AcctLineType_66 (
111515  p_application_id  => p_application_id
111516  ,p_event_id     => l_event_id
111517  ,p_calculate_acctd_flag => l_calculate_acctd_flag
111518  ,p_calculate_g_l_flag => l_calculate_g_l_flag
111519  ,p_actual_flag => l_actual_flag
111520  ,p_balance_type_code => l_balance_type_code
111521  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111522  
111523  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111524  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111525  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111526  , p_source_21 => l_array_source_21(Idx)
111527  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
111528  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111529  , p_source_51 => l_array_source_51(Idx)
111530  , p_source_51_meaning => l_array_source_51_meaning(Idx)
111531  , p_source_52 => l_array_source_52(Idx)
111532  , p_source_53 => l_array_source_53(Idx)
111533  , p_source_54 => l_array_source_54(Idx)
111534  , p_source_59 => l_array_source_59(Idx)
111535  , p_source_60 => l_array_source_60(Idx)
111536  , p_source_64 => l_array_source_64(Idx)
111537  , p_source_64_meaning => l_array_source_64_meaning(Idx)
111538  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111539  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111540  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111541  , p_source_68 => l_array_source_68(Idx)
111542  , p_source_69 => l_array_source_69(Idx)
111543  , p_source_70 => l_array_source_70(Idx)
111544  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111545  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111546  , p_source_73 => l_array_source_73(Idx)
111547  , p_source_74 => l_array_source_74(Idx)
111548  , p_source_75 => l_array_source_75(Idx)
111549  , p_source_76 => l_array_source_76(Idx)
111550  , p_source_77 => l_array_source_77(Idx)
111551  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
111552  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
111553  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
111554  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111555  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111556  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111557  );
111558 If(l_balance_type_code = 'A') THEN
111559   l_actual_gain_loss_ref := l_gain_or_loss_ref;
111560 END IF;
111561 
111562 --
111563 
111564 
111565 --
111569  ,p_calculate_acctd_flag => l_calculate_acctd_flag
111566 AcctLineType_67 (
111567  p_application_id  => p_application_id
111568  ,p_event_id     => l_event_id
111570  ,p_calculate_g_l_flag => l_calculate_g_l_flag
111571  ,p_actual_flag => l_actual_flag
111572  ,p_balance_type_code => l_balance_type_code
111573  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111574  
111575  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111576  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111577  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111578  , p_source_21 => l_array_source_21(Idx)
111579  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
111580  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111581  , p_source_51 => l_array_source_51(Idx)
111582  , p_source_51_meaning => l_array_source_51_meaning(Idx)
111583  , p_source_52 => l_array_source_52(Idx)
111584  , p_source_53 => l_array_source_53(Idx)
111585  , p_source_54 => l_array_source_54(Idx)
111586  , p_source_59 => l_array_source_59(Idx)
111587  , p_source_60 => l_array_source_60(Idx)
111588  , p_source_64 => l_array_source_64(Idx)
111589  , p_source_64_meaning => l_array_source_64_meaning(Idx)
111590  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111591  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111592  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111593  , p_source_68 => l_array_source_68(Idx)
111594  , p_source_69 => l_array_source_69(Idx)
111595  , p_source_70 => l_array_source_70(Idx)
111596  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111597  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111598  , p_source_73 => l_array_source_73(Idx)
111599  , p_source_74 => l_array_source_74(Idx)
111600  , p_source_75 => l_array_source_75(Idx)
111601  , p_source_76 => l_array_source_76(Idx)
111602  , p_source_77 => l_array_source_77(Idx)
111603  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
111604  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
111605  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
111606  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111607  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111608  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111609  );
111610 If(l_balance_type_code = 'A') THEN
111611   l_actual_gain_loss_ref := l_gain_or_loss_ref;
111612 END IF;
111613 
111614 --
111615 
111616 
111617 --
111618 AcctLineType_74 (
111619  p_application_id  => p_application_id
111620  ,p_event_id     => l_event_id
111621  ,p_calculate_acctd_flag => l_calculate_acctd_flag
111622  ,p_calculate_g_l_flag => l_calculate_g_l_flag
111623  ,p_actual_flag => l_actual_flag
111624  ,p_balance_type_code => l_balance_type_code
111625  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111626  
111627  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111628  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
111629  , p_source_21 => l_array_source_21(Idx)
111630  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
111631  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
111632  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111633  , p_source_51 => l_array_source_51(Idx)
111634  , p_source_51_meaning => l_array_source_51_meaning(Idx)
111635  , p_source_52 => l_array_source_52(Idx)
111636  , p_source_53 => l_array_source_53(Idx)
111637  , p_source_54 => l_array_source_54(Idx)
111638  , p_source_59 => l_array_source_59(Idx)
111639  , p_source_60 => l_array_source_60(Idx)
111640  , p_source_64 => l_array_source_64(Idx)
111641  , p_source_64_meaning => l_array_source_64_meaning(Idx)
111642  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111643  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111644  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111645  , p_source_68 => l_array_source_68(Idx)
111646  , p_source_69 => l_array_source_69(Idx)
111647  , p_source_70 => l_array_source_70(Idx)
111648  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111649  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111650  , p_source_73 => l_array_source_73(Idx)
111651  , p_source_74 => l_array_source_74(Idx)
111652  , p_source_75 => l_array_source_75(Idx)
111653  , p_source_76 => l_array_source_76(Idx)
111654  , p_source_77 => l_array_source_77(Idx)
111655  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
111656  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
111657  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
111658  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111659  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111660  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111661  );
111662 If(l_balance_type_code = 'A') THEN
111663   l_actual_gain_loss_ref := l_gain_or_loss_ref;
111664 END IF;
111665 
111666 --
111667 
111668 
111669 --
111670 AcctLineType_75 (
111671  p_application_id  => p_application_id
111672  ,p_event_id     => l_event_id
111673  ,p_calculate_acctd_flag => l_calculate_acctd_flag
111674  ,p_calculate_g_l_flag => l_calculate_g_l_flag
111675  ,p_actual_flag => l_actual_flag
111676  ,p_balance_type_code => l_balance_type_code
111677  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111678  
111679  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111680  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
111681  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111685  , p_source_51 => l_array_source_51(Idx)
111682  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111683  , p_source_21 => l_array_source_21(Idx)
111684  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111686  , p_source_51_meaning => l_array_source_51_meaning(Idx)
111687  , p_source_52 => l_array_source_52(Idx)
111688  , p_source_53 => l_array_source_53(Idx)
111689  , p_source_54 => l_array_source_54(Idx)
111690  , p_source_59 => l_array_source_59(Idx)
111691  , p_source_60 => l_array_source_60(Idx)
111692  , p_source_64 => l_array_source_64(Idx)
111693  , p_source_64_meaning => l_array_source_64_meaning(Idx)
111694  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111695  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111696  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111697  , p_source_68 => l_array_source_68(Idx)
111698  , p_source_69 => l_array_source_69(Idx)
111699  , p_source_70 => l_array_source_70(Idx)
111700  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111701  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111702  , p_source_73 => l_array_source_73(Idx)
111703  , p_source_74 => l_array_source_74(Idx)
111704  , p_source_75 => l_array_source_75(Idx)
111705  , p_source_76 => l_array_source_76(Idx)
111706  , p_source_77 => l_array_source_77(Idx)
111707  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
111708  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
111709  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
111710  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111711  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111712  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111713  );
111714 If(l_balance_type_code = 'A') THEN
111715   l_actual_gain_loss_ref := l_gain_or_loss_ref;
111716 END IF;
111717 
111718 --
111719 
111720 
111721 --
111722 AcctLineType_76 (
111723  p_application_id  => p_application_id
111724  ,p_event_id     => l_event_id
111725  ,p_calculate_acctd_flag => l_calculate_acctd_flag
111726  ,p_calculate_g_l_flag => l_calculate_g_l_flag
111727  ,p_actual_flag => l_actual_flag
111728  ,p_balance_type_code => l_balance_type_code
111729  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111730  
111731  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111732  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
111733  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111734  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111735  , p_source_21 => l_array_source_21(Idx)
111736  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111737  , p_source_51 => l_array_source_51(Idx)
111738  , p_source_51_meaning => l_array_source_51_meaning(Idx)
111739  , p_source_52 => l_array_source_52(Idx)
111740  , p_source_53 => l_array_source_53(Idx)
111741  , p_source_54 => l_array_source_54(Idx)
111742  , p_source_59 => l_array_source_59(Idx)
111743  , p_source_60 => l_array_source_60(Idx)
111744  , p_source_64 => l_array_source_64(Idx)
111745  , p_source_64_meaning => l_array_source_64_meaning(Idx)
111746  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111747  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111748  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111749  , p_source_68 => l_array_source_68(Idx)
111750  , p_source_69 => l_array_source_69(Idx)
111751  , p_source_70 => l_array_source_70(Idx)
111752  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111753  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111754  , p_source_73 => l_array_source_73(Idx)
111755  , p_source_74 => l_array_source_74(Idx)
111756  , p_source_75 => l_array_source_75(Idx)
111757  , p_source_76 => l_array_source_76(Idx)
111758  , p_source_77 => l_array_source_77(Idx)
111759  , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
111760  , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
111761  , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
111762  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111763  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111764  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111765  );
111766 If(l_balance_type_code = 'A') THEN
111767   l_actual_gain_loss_ref := l_gain_or_loss_ref;
111768 END IF;
111769 
111770 --
111771 
111772 
111773 --
111774 AcctLineType_79 (
111775  p_application_id  => p_application_id
111776  ,p_event_id     => l_event_id
111777  ,p_calculate_acctd_flag => l_calculate_acctd_flag
111778  ,p_calculate_g_l_flag => l_calculate_g_l_flag
111779  ,p_actual_flag => l_actual_flag
111780  ,p_balance_type_code => l_balance_type_code
111781  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111782  
111783  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111784  , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
111785  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
111786  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
111787  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111788  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111789  , p_source_21 => l_array_source_21(Idx)
111790  , p_source_29 => l_array_source_29(Idx)
111791  , p_source_32 => l_array_source_32(Idx)
111792  , p_source_32_meaning => l_array_source_32_meaning(Idx)
111793  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
111794  , p_source_40 => l_array_source_40(Idx)
111795  , p_source_41 => l_array_source_41(Idx)
111799  , p_source_52 => l_array_source_52(Idx)
111796  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111797  , p_source_51 => l_array_source_51(Idx)
111798  , p_source_51_meaning => l_array_source_51_meaning(Idx)
111800  , p_source_53 => l_array_source_53(Idx)
111801  , p_source_54 => l_array_source_54(Idx)
111802  , p_source_59 => l_array_source_59(Idx)
111803  , p_source_60 => l_array_source_60(Idx)
111804  , p_source_64 => l_array_source_64(Idx)
111805  , p_source_64_meaning => l_array_source_64_meaning(Idx)
111806  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111807  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111808  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111809  , p_source_68 => l_array_source_68(Idx)
111810  , p_source_69 => l_array_source_69(Idx)
111811  , p_source_70 => l_array_source_70(Idx)
111812  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111813  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111814  , p_source_73 => l_array_source_73(Idx)
111815  , p_source_74 => l_array_source_74(Idx)
111816  , p_source_75 => l_array_source_75(Idx)
111817  , p_source_76 => l_array_source_76(Idx)
111818  , p_source_77 => l_array_source_77(Idx)
111819  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111820  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111821  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111822  );
111823 If(l_balance_type_code = 'A') THEN
111824   l_actual_gain_loss_ref := l_gain_or_loss_ref;
111825 END IF;
111826 
111827 --
111828 
111829 
111830 --
111831 AcctLineType_84 (
111832  p_application_id  => p_application_id
111833  ,p_event_id     => l_event_id
111834  ,p_calculate_acctd_flag => l_calculate_acctd_flag
111835  ,p_calculate_g_l_flag => l_calculate_g_l_flag
111836  ,p_actual_flag => l_actual_flag
111837  ,p_balance_type_code => l_balance_type_code
111838  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111839  
111840  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111841  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111842  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111843  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
111844  , p_source_19 => l_array_source_19(Idx)
111845  , p_source_19_meaning => l_array_source_19_meaning(Idx)
111846  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
111847  , p_source_21 => l_array_source_21(Idx)
111848  , p_source_22 => l_array_source_22(Idx)
111849  , p_source_29 => l_array_source_29(Idx)
111850  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
111851  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
111852  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111853  , p_source_51 => l_array_source_51(Idx)
111854  , p_source_51_meaning => l_array_source_51_meaning(Idx)
111855  , p_source_52 => l_array_source_52(Idx)
111856  , p_source_53 => l_array_source_53(Idx)
111857  , p_source_54 => l_array_source_54(Idx)
111858  , p_source_59 => l_array_source_59(Idx)
111859  , p_source_60 => l_array_source_60(Idx)
111860  , p_source_64 => l_array_source_64(Idx)
111861  , p_source_64_meaning => l_array_source_64_meaning(Idx)
111862  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111863  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111864  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111865  , p_source_68 => l_array_source_68(Idx)
111866  , p_source_69 => l_array_source_69(Idx)
111867  , p_source_70 => l_array_source_70(Idx)
111868  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111869  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111870  , p_source_73 => l_array_source_73(Idx)
111871  , p_source_74 => l_array_source_74(Idx)
111872  , p_source_75 => l_array_source_75(Idx)
111873  , p_source_76 => l_array_source_76(Idx)
111874  , p_source_77 => l_array_source_77(Idx)
111875  , p_source_111 => l_array_source_111(Idx)
111876  , p_source_111_meaning => l_array_source_111_meaning(Idx)
111877  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111878  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111879  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111880  );
111881 If(l_balance_type_code = 'A') THEN
111882   l_actual_gain_loss_ref := l_gain_or_loss_ref;
111883 END IF;
111884 
111885 --
111886 
111887 
111888 --
111889 AcctLineType_89 (
111890  p_application_id  => p_application_id
111891  ,p_event_id     => l_event_id
111892  ,p_calculate_acctd_flag => l_calculate_acctd_flag
111893  ,p_calculate_g_l_flag => l_calculate_g_l_flag
111894  ,p_actual_flag => l_actual_flag
111895  ,p_balance_type_code => l_balance_type_code
111896  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111897  
111898  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111899  , p_source_21 => l_array_source_21(Idx)
111900  , p_source_29 => l_array_source_29(Idx)
111901  , p_source_32 => l_array_source_32(Idx)
111902  , p_source_32_meaning => l_array_source_32_meaning(Idx)
111903  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111904  , p_source_51 => l_array_source_51(Idx)
111905  , p_source_51_meaning => l_array_source_51_meaning(Idx)
111906  , p_source_52 => l_array_source_52(Idx)
111907  , p_source_53 => l_array_source_53(Idx)
111908  , p_source_54 => l_array_source_54(Idx)
111909  , p_source_59 => l_array_source_59(Idx)
111910  , p_source_60 => l_array_source_60(Idx)
111911  , p_source_64 => l_array_source_64(Idx)
111912  , p_source_64_meaning => l_array_source_64_meaning(Idx)
111913  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111917  , p_source_69 => l_array_source_69(Idx)
111914  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111915  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111916  , p_source_68 => l_array_source_68(Idx)
111918  , p_source_70 => l_array_source_70(Idx)
111919  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111920  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111921  , p_source_73 => l_array_source_73(Idx)
111922  , p_source_74 => l_array_source_74(Idx)
111923  , p_source_75 => l_array_source_75(Idx)
111924  , p_source_76 => l_array_source_76(Idx)
111925  , p_source_77 => l_array_source_77(Idx)
111926  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111927  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111928  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111929  );
111930 If(l_balance_type_code = 'A') THEN
111931   l_actual_gain_loss_ref := l_gain_or_loss_ref;
111932 END IF;
111933 
111934 --
111935 
111936 
111937 --
111938 AcctLineType_104 (
111939  p_application_id  => p_application_id
111940  ,p_event_id     => l_event_id
111941  ,p_calculate_acctd_flag => l_calculate_acctd_flag
111942  ,p_calculate_g_l_flag => l_calculate_g_l_flag
111943  ,p_actual_flag => l_actual_flag
111944  ,p_balance_type_code => l_balance_type_code
111945  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111946  
111947  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111948  , p_source_21 => l_array_source_21(Idx)
111949  , p_source_29 => l_array_source_29(Idx)
111950  , p_source_32 => l_array_source_32(Idx)
111951  , p_source_32_meaning => l_array_source_32_meaning(Idx)
111952  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111953  , p_source_51 => l_array_source_51(Idx)
111954  , p_source_51_meaning => l_array_source_51_meaning(Idx)
111955  , p_source_52 => l_array_source_52(Idx)
111956  , p_source_53 => l_array_source_53(Idx)
111957  , p_source_54 => l_array_source_54(Idx)
111958  , p_source_59 => l_array_source_59(Idx)
111959  , p_source_60 => l_array_source_60(Idx)
111960  , p_source_64 => l_array_source_64(Idx)
111961  , p_source_64_meaning => l_array_source_64_meaning(Idx)
111962  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111963  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111964  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111965  , p_source_68 => l_array_source_68(Idx)
111966  , p_source_69 => l_array_source_69(Idx)
111967  , p_source_70 => l_array_source_70(Idx)
111968  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111969  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111970  , p_source_73 => l_array_source_73(Idx)
111971  , p_source_74 => l_array_source_74(Idx)
111972  , p_source_75 => l_array_source_75(Idx)
111973  , p_source_76 => l_array_source_76(Idx)
111974  , p_source_77 => l_array_source_77(Idx)
111975  , p_source_111 => l_array_source_111(Idx)
111976  , p_source_111_meaning => l_array_source_111_meaning(Idx)
111977  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111978  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111979  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111980  );
111981 If(l_balance_type_code = 'A') THEN
111982   l_actual_gain_loss_ref := l_gain_or_loss_ref;
111983 END IF;
111984 
111985 --
111986 
111987 
111988 --
111989 AcctLineType_109 (
111990  p_application_id  => p_application_id
111991  ,p_event_id     => l_event_id
111992  ,p_calculate_acctd_flag => l_calculate_acctd_flag
111993  ,p_calculate_g_l_flag => l_calculate_g_l_flag
111994  ,p_actual_flag => l_actual_flag
111995  ,p_balance_type_code => l_balance_type_code
111996  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111997  
111998  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111999  , p_source_21 => l_array_source_21(Idx)
112000  , p_source_29 => l_array_source_29(Idx)
112001  , p_source_32 => l_array_source_32(Idx)
112002  , p_source_32_meaning => l_array_source_32_meaning(Idx)
112003  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112004  , p_source_51 => l_array_source_51(Idx)
112005  , p_source_51_meaning => l_array_source_51_meaning(Idx)
112006  , p_source_52 => l_array_source_52(Idx)
112007  , p_source_53 => l_array_source_53(Idx)
112008  , p_source_54 => l_array_source_54(Idx)
112009  , p_source_59 => l_array_source_59(Idx)
112010  , p_source_60 => l_array_source_60(Idx)
112011  , p_source_64 => l_array_source_64(Idx)
112012  , p_source_64_meaning => l_array_source_64_meaning(Idx)
112013  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112014  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112015  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112016  , p_source_68 => l_array_source_68(Idx)
112017  , p_source_69 => l_array_source_69(Idx)
112018  , p_source_70 => l_array_source_70(Idx)
112019  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112020  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112021  , p_source_73 => l_array_source_73(Idx)
112022  , p_source_74 => l_array_source_74(Idx)
112023  , p_source_75 => l_array_source_75(Idx)
112024  , p_source_76 => l_array_source_76(Idx)
112025  , p_source_77 => l_array_source_77(Idx)
112026  , p_source_111 => l_array_source_111(Idx)
112027  , p_source_111_meaning => l_array_source_111_meaning(Idx)
112028  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
112029  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
112030  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
112031  );
112032 If(l_balance_type_code = 'A') THEN
112033   l_actual_gain_loss_ref := l_gain_or_loss_ref;
112034 END IF;
112035 
112039 --
112036 --
112037 
112038 
112040 AcctLineType_117 (
112041  p_application_id  => p_application_id
112042  ,p_event_id     => l_event_id
112043  ,p_calculate_acctd_flag => l_calculate_acctd_flag
112044  ,p_calculate_g_l_flag => l_calculate_g_l_flag
112045  ,p_actual_flag => l_actual_flag
112046  ,p_balance_type_code => l_balance_type_code
112047  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
112048  
112049  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
112050  , p_source_21 => l_array_source_21(Idx)
112051  , p_source_29 => l_array_source_29(Idx)
112052  , p_source_32 => l_array_source_32(Idx)
112053  , p_source_32_meaning => l_array_source_32_meaning(Idx)
112054  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112055  , p_source_51 => l_array_source_51(Idx)
112056  , p_source_51_meaning => l_array_source_51_meaning(Idx)
112057  , p_source_52 => l_array_source_52(Idx)
112058  , p_source_53 => l_array_source_53(Idx)
112059  , p_source_54 => l_array_source_54(Idx)
112060  , p_source_59 => l_array_source_59(Idx)
112061  , p_source_60 => l_array_source_60(Idx)
112062  , p_source_64 => l_array_source_64(Idx)
112063  , p_source_64_meaning => l_array_source_64_meaning(Idx)
112064  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112065  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112066  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112067  , p_source_68 => l_array_source_68(Idx)
112068  , p_source_69 => l_array_source_69(Idx)
112069  , p_source_70 => l_array_source_70(Idx)
112070  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112071  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112072  , p_source_73 => l_array_source_73(Idx)
112073  , p_source_74 => l_array_source_74(Idx)
112074  , p_source_75 => l_array_source_75(Idx)
112075  , p_source_76 => l_array_source_76(Idx)
112076  , p_source_77 => l_array_source_77(Idx)
112077  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
112078  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
112079  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
112080  );
112081 If(l_balance_type_code = 'A') THEN
112082   l_actual_gain_loss_ref := l_gain_or_loss_ref;
112083 END IF;
112084 
112085 --
112086 
112087 
112088 --
112089 AcctLineType_122 (
112090  p_application_id  => p_application_id
112091  ,p_event_id     => l_event_id
112092  ,p_calculate_acctd_flag => l_calculate_acctd_flag
112093  ,p_calculate_g_l_flag => l_calculate_g_l_flag
112094  ,p_actual_flag => l_actual_flag
112095  ,p_balance_type_code => l_balance_type_code
112096  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
112097  
112098  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
112099  , p_source_21 => l_array_source_21(Idx)
112100  , p_source_29 => l_array_source_29(Idx)
112101  , p_source_32 => l_array_source_32(Idx)
112102  , p_source_32_meaning => l_array_source_32_meaning(Idx)
112103  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112104  , p_source_51 => l_array_source_51(Idx)
112105  , p_source_51_meaning => l_array_source_51_meaning(Idx)
112106  , p_source_52 => l_array_source_52(Idx)
112107  , p_source_53 => l_array_source_53(Idx)
112108  , p_source_54 => l_array_source_54(Idx)
112109  , p_source_59 => l_array_source_59(Idx)
112110  , p_source_60 => l_array_source_60(Idx)
112111  , p_source_61 => l_array_source_61(Idx)
112112  , p_source_62 => l_array_source_62(Idx)
112113  , p_source_63 => l_array_source_63(Idx)
112114  , p_source_64 => l_array_source_64(Idx)
112115  , p_source_64_meaning => l_array_source_64_meaning(Idx)
112116  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112117  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112118  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112119  , p_source_68 => l_array_source_68(Idx)
112120  , p_source_69 => l_array_source_69(Idx)
112121  , p_source_70 => l_array_source_70(Idx)
112122  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112123  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112124  , p_source_73 => l_array_source_73(Idx)
112125  , p_source_74 => l_array_source_74(Idx)
112126  , p_source_75 => l_array_source_75(Idx)
112127  , p_source_76 => l_array_source_76(Idx)
112128  , p_source_77 => l_array_source_77(Idx)
112129  , p_source_111 => l_array_source_111(Idx)
112130  , p_source_111_meaning => l_array_source_111_meaning(Idx)
112131  );
112132 If(l_balance_type_code = 'A') THEN
112133   l_actual_gain_loss_ref := l_gain_or_loss_ref;
112134 END IF;
112135 
112136 --
112137 
112138 
112139 --
112140 AcctLineType_125 (
112141  p_application_id  => p_application_id
112142  ,p_event_id     => l_event_id
112143  ,p_calculate_acctd_flag => l_calculate_acctd_flag
112144  ,p_calculate_g_l_flag => l_calculate_g_l_flag
112145  ,p_actual_flag => l_actual_flag
112146  ,p_balance_type_code => l_balance_type_code
112147  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
112148  
112149  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
112150  , p_source_21 => l_array_source_21(Idx)
112151  , p_source_29 => l_array_source_29(Idx)
112152  , p_source_32 => l_array_source_32(Idx)
112153  , p_source_32_meaning => l_array_source_32_meaning(Idx)
112154  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112155  , p_source_51 => l_array_source_51(Idx)
112156  , p_source_51_meaning => l_array_source_51_meaning(Idx)
112157  , p_source_52 => l_array_source_52(Idx)
112158  , p_source_53 => l_array_source_53(Idx)
112159  , p_source_54 => l_array_source_54(Idx)
112160  , p_source_59 => l_array_source_59(Idx)
112161  , p_source_60 => l_array_source_60(Idx)
112162  , p_source_64 => l_array_source_64(Idx)
112163  , p_source_64_meaning => l_array_source_64_meaning(Idx)
112167  , p_source_68 => l_array_source_68(Idx)
112164  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112165  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112166  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112168  , p_source_69 => l_array_source_69(Idx)
112169  , p_source_70 => l_array_source_70(Idx)
112170  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112171  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112172  , p_source_73 => l_array_source_73(Idx)
112173  , p_source_74 => l_array_source_74(Idx)
112174  , p_source_75 => l_array_source_75(Idx)
112175  , p_source_76 => l_array_source_76(Idx)
112176  , p_source_77 => l_array_source_77(Idx)
112177  , p_source_111 => l_array_source_111(Idx)
112178  , p_source_111_meaning => l_array_source_111_meaning(Idx)
112179  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
112180  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
112181  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
112182  );
112183 If(l_balance_type_code = 'A') THEN
112184   l_actual_gain_loss_ref := l_gain_or_loss_ref;
112185 END IF;
112186 
112187 --
112188 
112189 
112190 --
112191 AcctLineType_140 (
112192  p_application_id  => p_application_id
112193  ,p_event_id     => l_event_id
112194  ,p_calculate_acctd_flag => l_calculate_acctd_flag
112195  ,p_calculate_g_l_flag => l_calculate_g_l_flag
112196  ,p_actual_flag => l_actual_flag
112197  ,p_balance_type_code => l_balance_type_code
112198  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
112199  
112200  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
112201  , p_source_21 => l_array_source_21(Idx)
112202  , p_source_29 => l_array_source_29(Idx)
112203  , p_source_32 => l_array_source_32(Idx)
112204  , p_source_32_meaning => l_array_source_32_meaning(Idx)
112205  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112206  , p_source_51 => l_array_source_51(Idx)
112207  , p_source_51_meaning => l_array_source_51_meaning(Idx)
112208  , p_source_52 => l_array_source_52(Idx)
112209  , p_source_53 => l_array_source_53(Idx)
112210  , p_source_54 => l_array_source_54(Idx)
112211  , p_source_59 => l_array_source_59(Idx)
112212  , p_source_60 => l_array_source_60(Idx)
112213  , p_source_64 => l_array_source_64(Idx)
112214  , p_source_64_meaning => l_array_source_64_meaning(Idx)
112215  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112216  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112217  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112218  , p_source_68 => l_array_source_68(Idx)
112219  , p_source_69 => l_array_source_69(Idx)
112220  , p_source_70 => l_array_source_70(Idx)
112221  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112222  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112223  , p_source_73 => l_array_source_73(Idx)
112224  , p_source_74 => l_array_source_74(Idx)
112225  , p_source_75 => l_array_source_75(Idx)
112226  , p_source_76 => l_array_source_76(Idx)
112227  , p_source_77 => l_array_source_77(Idx)
112228  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
112229  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
112230  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
112231  );
112232 If(l_balance_type_code = 'A') THEN
112233   l_actual_gain_loss_ref := l_gain_or_loss_ref;
112234 END IF;
112235 
112236 --
112237 
112238 
112239 --
112240 AcctLineType_151 (
112241  p_application_id  => p_application_id
112242  ,p_event_id     => l_event_id
112243  ,p_calculate_acctd_flag => l_calculate_acctd_flag
112244  ,p_calculate_g_l_flag => l_calculate_g_l_flag
112245  ,p_actual_flag => l_actual_flag
112246  ,p_balance_type_code => l_balance_type_code
112247  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
112248  
112249  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
112250  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
112251  , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
112252  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
112253  , p_source_19 => l_array_source_19(Idx)
112254  , p_source_19_meaning => l_array_source_19_meaning(Idx)
112255  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
112256  , p_source_21 => l_array_source_21(Idx)
112257  , p_source_22 => l_array_source_22(Idx)
112258  , p_source_29 => l_array_source_29(Idx)
112259  , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
112260  , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
112261  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112262  , p_source_51 => l_array_source_51(Idx)
112263  , p_source_51_meaning => l_array_source_51_meaning(Idx)
112264  , p_source_52 => l_array_source_52(Idx)
112265  , p_source_53 => l_array_source_53(Idx)
112266  , p_source_54 => l_array_source_54(Idx)
112267  , p_source_59 => l_array_source_59(Idx)
112268  , p_source_60 => l_array_source_60(Idx)
112269  , p_source_64 => l_array_source_64(Idx)
112270  , p_source_64_meaning => l_array_source_64_meaning(Idx)
112271  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112272  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112273  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112274  , p_source_68 => l_array_source_68(Idx)
112275  , p_source_69 => l_array_source_69(Idx)
112276  , p_source_70 => l_array_source_70(Idx)
112277  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112278  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112279  , p_source_73 => l_array_source_73(Idx)
112280  , p_source_74 => l_array_source_74(Idx)
112284  , p_source_111 => l_array_source_111(Idx)
112281  , p_source_75 => l_array_source_75(Idx)
112282  , p_source_76 => l_array_source_76(Idx)
112283  , p_source_77 => l_array_source_77(Idx)
112285  , p_source_111_meaning => l_array_source_111_meaning(Idx)
112286  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
112287  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
112288  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
112289  );
112290 If(l_balance_type_code = 'A') THEN
112291   l_actual_gain_loss_ref := l_gain_or_loss_ref;
112292 END IF;
112293 
112294 --
112295 
112296 
112297 --
112298 AcctLineType_154 (
112299  p_application_id  => p_application_id
112300  ,p_event_id     => l_event_id
112301  ,p_calculate_acctd_flag => l_calculate_acctd_flag
112302  ,p_calculate_g_l_flag => l_calculate_g_l_flag
112303  ,p_actual_flag => l_actual_flag
112304  ,p_balance_type_code => l_balance_type_code
112305  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
112306  
112307  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
112308  , p_source_21 => l_array_source_21(Idx)
112309  , p_source_29 => l_array_source_29(Idx)
112310  , p_source_32 => l_array_source_32(Idx)
112311  , p_source_32_meaning => l_array_source_32_meaning(Idx)
112312  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112313  , p_source_51 => l_array_source_51(Idx)
112314  , p_source_51_meaning => l_array_source_51_meaning(Idx)
112315  , p_source_52 => l_array_source_52(Idx)
112316  , p_source_53 => l_array_source_53(Idx)
112317  , p_source_54 => l_array_source_54(Idx)
112318  , p_source_59 => l_array_source_59(Idx)
112319  , p_source_60 => l_array_source_60(Idx)
112320  , p_source_64 => l_array_source_64(Idx)
112321  , p_source_64_meaning => l_array_source_64_meaning(Idx)
112322  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112323  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112324  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112325  , p_source_68 => l_array_source_68(Idx)
112326  , p_source_69 => l_array_source_69(Idx)
112327  , p_source_70 => l_array_source_70(Idx)
112328  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112329  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112330  , p_source_73 => l_array_source_73(Idx)
112331  , p_source_74 => l_array_source_74(Idx)
112332  , p_source_75 => l_array_source_75(Idx)
112333  , p_source_76 => l_array_source_76(Idx)
112334  , p_source_77 => l_array_source_77(Idx)
112335  , p_source_111 => l_array_source_111(Idx)
112336  , p_source_111_meaning => l_array_source_111_meaning(Idx)
112337  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
112338  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
112339  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
112340  );
112341 If(l_balance_type_code = 'A') THEN
112342   l_actual_gain_loss_ref := l_gain_or_loss_ref;
112343 END IF;
112344 
112345 --
112346 
112347 
112348 --
112349 AcctLineType_157 (
112350  p_application_id  => p_application_id
112351  ,p_event_id     => l_event_id
112352  ,p_calculate_acctd_flag => l_calculate_acctd_flag
112353  ,p_calculate_g_l_flag => l_calculate_g_l_flag
112354  ,p_actual_flag => l_actual_flag
112355  ,p_balance_type_code => l_balance_type_code
112356  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
112357  
112358  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
112359  , p_source_21 => l_array_source_21(Idx)
112360  , p_source_29 => l_array_source_29(Idx)
112361  , p_source_32 => l_array_source_32(Idx)
112362  , p_source_32_meaning => l_array_source_32_meaning(Idx)
112363  , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112364  , p_source_51 => l_array_source_51(Idx)
112365  , p_source_51_meaning => l_array_source_51_meaning(Idx)
112366  , p_source_52 => l_array_source_52(Idx)
112367  , p_source_53 => l_array_source_53(Idx)
112368  , p_source_54 => l_array_source_54(Idx)
112369  , p_source_59 => l_array_source_59(Idx)
112370  , p_source_60 => l_array_source_60(Idx)
112371  , p_source_64 => l_array_source_64(Idx)
112372  , p_source_64_meaning => l_array_source_64_meaning(Idx)
112373  , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112374  , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112375  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112376  , p_source_68 => l_array_source_68(Idx)
112377  , p_source_69 => l_array_source_69(Idx)
112378  , p_source_70 => l_array_source_70(Idx)
112379  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112380  , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112381  , p_source_73 => l_array_source_73(Idx)
112382  , p_source_74 => l_array_source_74(Idx)
112383  , p_source_75 => l_array_source_75(Idx)
112384  , p_source_76 => l_array_source_76(Idx)
112385  , p_source_77 => l_array_source_77(Idx)
112386  , p_source_111 => l_array_source_111(Idx)
112387  , p_source_111_meaning => l_array_source_111_meaning(Idx)
112388  , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
112389  , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
112390  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
112391  );
112392 If(l_balance_type_code = 'A') THEN
112393   l_actual_gain_loss_ref := l_gain_or_loss_ref;
112394 END IF;
112395 
112396 --
112397 
112398       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
112399       -- or secondary ledger that has different currency with primary
112400       -- or alc that is calculated by sla
112401       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
112405 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
112402             (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'))
112403 
112404 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
112406           AND (l_actual_flag = 'A')) THEN
112407         XLA_AE_LINES_PKG.CreateGainOrLossLines(
112408           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
112409          ,p_application_id   => p_application_id
112410          ,p_amb_context_code => 'DEFAULT'
112411          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
112412          ,p_event_class_code => C_EVENT_CLASS_CODE
112413          ,p_event_type_code  => C_EVENT_TYPE_CODE
112414          
112415          ,p_gain_ccid        => -1
112416          ,p_loss_ccid        => -1
112417 
112418          ,p_actual_flag      => l_actual_flag
112419          ,p_enc_flag         => null
112420          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
112421          ,p_enc_g_l_ref      => null
112422          );
112423       END IF;
112424    END IF;
112425 END IF;
112426 
112427    ELSE
112428       --
112429       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
112430       --
112431       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112432          trace
112433             (p_msg      => 'Trancaction revesal option is Y'
112434             ,p_level    => C_LEVEL_STATEMENT
112435             ,p_module   => l_log_module);
112436       END IF;
112437    END IF;
112438 
112439 END LOOP;
112440 l_result := XLA_AE_LINES_PKG.InsertLines ;
112441 end loop;
112442 close line_cur;
112443 
112444 
112445 --
112446 -- insert headers into xla_ae_headers_gt table
112447 --
112448 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
112449 
112450 -- insert into errors table here.
112451 
112452 END LOOP;
112453 
112454 --
112455 -- 4865292
112456 --
112457 -- Compare g_hdr_extract_count with event count in
112458 -- CreateHeadersAndLines.
112459 --
112460 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
112461 
112462 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112463    trace (p_msg     => '# rows extracted from header extract objects '
112464                     || ' (running total): '
112465                     || g_hdr_extract_count
112466          ,p_level   => C_LEVEL_STATEMENT
112467          ,p_module  => l_log_module);
112468 END IF;
112469 
112470 CLOSE header_cur;
112471 --
112472 
112473 --
112474 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112475    trace
112476       (p_msg      => 'END of EventClass_170'
112477       ,p_level    => C_LEVEL_PROCEDURE
112478       ,p_module   => l_log_module);
112479 END IF;
112480 --
112481 RETURN l_result;
112482 EXCEPTION
112483 WHEN xla_exceptions_pkg.application_exception THEN
112484    
112485 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
112486 
112487    
112488 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
112489 
112490    RAISE;
112491 
112492 WHEN NO_DATA_FOUND THEN
112493 
112494 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
112495 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
112496 
112497 FOR header_record IN header_cur
112498 LOOP
112499     l_array_header_events(header_record.event_id) := header_record.event_id;
112500 END LOOP;
112501 
112502 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
112503 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
112504 
112505 fnd_file.put_line(fnd_file.LOG, '                    ');
112506 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
112507 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
112508 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
112509 
112510 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
112511 LOOP
112512 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
112513 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
112514         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
112515 	END IF;
112516 END LOOP;
112517 
112518 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
112519 fnd_file.put_line(fnd_file.LOG, '                    ');
112520 
112521 
112522 xla_exceptions_pkg.raise_message
112523       (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_170');
112524 
112525 
112526 WHEN OTHERS THEN
112527    xla_exceptions_pkg.raise_message
112528       (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_170');
112529 END EventClass_170;
112530 --
112531 
112532 --
112533 --+============================================+
112534 --|                                            |
112535 --|  PRIVATE FUNCTION                          |
112536 --|                                            |
112537 --+============================================+
112538 --
112539 FUNCTION CreateHeadersAndLines
112540        (p_application_id         IN NUMBER
112541        ,p_base_ledger_id         IN NUMBER
112542        ,p_target_ledger_id       IN NUMBER
112543        ,p_pad_start_date         IN DATE
112544        ,p_pad_end_date           IN DATE
112545        ,p_primary_ledger_id      IN NUMBER)
112546 RETURN BOOLEAN IS
112547 l_created                   BOOLEAN:=FALSE;
112548 l_event_id                  NUMBER;
112549 l_event_date                DATE;
112550 l_language                  VARCHAR2(30);
112551 l_currency_code             VARCHAR2(30);
112555 BEGIN
112552 l_sla_ledger_id             NUMBER;
112553 l_log_module                VARCHAR2(240);
112554 
112556 --
112557 IF g_log_enabled THEN
112558    l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
112559 END IF;
112560 --
112561 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112562    trace
112563       (p_msg      => 'BEGIN of CreateHeadersAndLines'
112564       ,p_level    => C_LEVEL_PROCEDURE
112565       ,p_module   => l_log_module);
112566 END IF;
112567 
112568 l_language         := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
112569 l_currency_code    := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
112570 l_sla_ledger_id    := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
112571 
112572 --
112573 -- initialize array of lines with NULL
112574 --
112575 xla_ae_lines_pkg.SetNullLine;
112576 
112577 --
112578 -- initialize header extract count -- Bug 4865292
112579 --
112580 g_hdr_extract_count:= 0;
112581 
112582 
112583 l_created := EventClass_166(
112584    p_application_id         => p_application_id
112585  , p_base_ledger_id         => p_base_ledger_id
112586  , p_target_ledger_id       => p_target_ledger_id
112587  , p_language               => l_language
112588  , p_currency_code          => l_currency_code
112589  , p_sla_ledger_id          => l_sla_ledger_id
112590  , p_pad_start_date         => p_pad_start_date
112591  , p_pad_end_date           => p_pad_end_date
112592  , p_primary_ledger_id      => p_primary_ledger_id
112593 );
112594 
112595 
112596 
112597      IF ( g_diagnostics_mode ='Y' ) THEN
112598 
112599          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112600           trace
112601               (p_msg      => 'CALL Transaction Objects Diagnostics'
112602               ,p_level    => C_LEVEL_STATEMENT
112603               ,p_module   => l_log_module);
112604 
112605          END IF;
112606 
112607          insert_sources_166(
112608                           p_target_ledger_id => p_target_ledger_id
112609                         , p_language         => l_language
112610                         , p_sla_ledger_id    => l_sla_ledger_id
112611                         , p_pad_start_date   => p_pad_start_date
112612                         , p_pad_end_date     => p_pad_end_date
112613                           );
112614 
112615      END IF;
112616 
112617 l_created := EventClass_167(
112618    p_application_id         => p_application_id
112619  , p_base_ledger_id         => p_base_ledger_id
112620  , p_target_ledger_id       => p_target_ledger_id
112621  , p_language               => l_language
112622  , p_currency_code          => l_currency_code
112623  , p_sla_ledger_id          => l_sla_ledger_id
112624  , p_pad_start_date         => p_pad_start_date
112625  , p_pad_end_date           => p_pad_end_date
112626  , p_primary_ledger_id      => p_primary_ledger_id
112627 );
112628 
112629 
112630 
112631      IF ( g_diagnostics_mode ='Y' ) THEN
112632 
112633          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112634           trace
112635               (p_msg      => 'CALL Transaction Objects Diagnostics'
112636               ,p_level    => C_LEVEL_STATEMENT
112637               ,p_module   => l_log_module);
112638 
112639          END IF;
112640 
112641          insert_sources_167(
112642                           p_target_ledger_id => p_target_ledger_id
112643                         , p_language         => l_language
112644                         , p_sla_ledger_id    => l_sla_ledger_id
112645                         , p_pad_start_date   => p_pad_start_date
112646                         , p_pad_end_date     => p_pad_end_date
112647                           );
112648 
112649      END IF;
112650 
112651 l_created := EventClass_168(
112652    p_application_id         => p_application_id
112653  , p_base_ledger_id         => p_base_ledger_id
112654  , p_target_ledger_id       => p_target_ledger_id
112655  , p_language               => l_language
112656  , p_currency_code          => l_currency_code
112657  , p_sla_ledger_id          => l_sla_ledger_id
112658  , p_pad_start_date         => p_pad_start_date
112659  , p_pad_end_date           => p_pad_end_date
112660  , p_primary_ledger_id      => p_primary_ledger_id
112661 );
112662 
112663 
112664 
112665      IF ( g_diagnostics_mode ='Y' ) THEN
112666 
112667          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112668           trace
112669               (p_msg      => 'CALL Transaction Objects Diagnostics'
112670               ,p_level    => C_LEVEL_STATEMENT
112671               ,p_module   => l_log_module);
112672 
112673          END IF;
112674 
112675          insert_sources_168(
112676                           p_target_ledger_id => p_target_ledger_id
112677                         , p_language         => l_language
112678                         , p_sla_ledger_id    => l_sla_ledger_id
112679                         , p_pad_start_date   => p_pad_start_date
112680                         , p_pad_end_date     => p_pad_end_date
112681                           );
112682 
112683      END IF;
112684 
112685 l_created := EventClass_169(
112686    p_application_id         => p_application_id
112687  , p_base_ledger_id         => p_base_ledger_id
112688  , p_target_ledger_id       => p_target_ledger_id
112689  , p_language               => l_language
112690  , p_currency_code          => l_currency_code
112691  , p_sla_ledger_id          => l_sla_ledger_id
112692  , p_pad_start_date         => p_pad_start_date
112693  , p_pad_end_date           => p_pad_end_date
112694  , p_primary_ledger_id      => p_primary_ledger_id
112695 );
112696 
112697 
112698 
112699      IF ( g_diagnostics_mode ='Y' ) THEN
112700 
112701          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112702           trace
112703               (p_msg      => 'CALL Transaction Objects Diagnostics'
112707          END IF;
112704               ,p_level    => C_LEVEL_STATEMENT
112705               ,p_module   => l_log_module);
112706 
112708 
112709          insert_sources_169(
112710                           p_target_ledger_id => p_target_ledger_id
112711                         , p_language         => l_language
112712                         , p_sla_ledger_id    => l_sla_ledger_id
112713                         , p_pad_start_date   => p_pad_start_date
112714                         , p_pad_end_date     => p_pad_end_date
112715                           );
112716 
112717      END IF;
112718 
112719 l_created := EventClass_170(
112720    p_application_id         => p_application_id
112721  , p_base_ledger_id         => p_base_ledger_id
112722  , p_target_ledger_id       => p_target_ledger_id
112723  , p_language               => l_language
112724  , p_currency_code          => l_currency_code
112725  , p_sla_ledger_id          => l_sla_ledger_id
112726  , p_pad_start_date         => p_pad_start_date
112727  , p_pad_end_date           => p_pad_end_date
112728  , p_primary_ledger_id      => p_primary_ledger_id
112729 );
112730 
112731 
112732 
112733      IF ( g_diagnostics_mode ='Y' ) THEN
112734 
112735          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112736           trace
112737               (p_msg      => 'CALL Transaction Objects Diagnostics'
112738               ,p_level    => C_LEVEL_STATEMENT
112739               ,p_module   => l_log_module);
112740 
112741          END IF;
112742 
112743          insert_sources_170(
112744                           p_target_ledger_id => p_target_ledger_id
112745                         , p_language         => l_language
112746                         , p_sla_ledger_id    => l_sla_ledger_id
112747                         , p_pad_start_date   => p_pad_start_date
112748                         , p_pad_end_date     => p_pad_end_date
112749                           );
112750 
112751      END IF;
112752 
112753 
112754  --
112755  -- Bug 4865292
112756  -- When the number of events and that of header extract do not match,
112757  -- set the no header extract flag to indicate there are some issues
112758  -- in header extract.
112759  --
112760  -- Event count context is set in xla_accounting_pkg.unit_processor.
112761  -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
112762  -- to report it as a general error.
112763  --
112764  IF  xla_context_pkg.get_event_count_context <> g_hdr_extract_count
112765  AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
112766 
112767      IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112768         trace
112769           (p_msg      => '# of extracted headers and events does not match'
112770           ,p_level    => C_LEVEL_STATEMENT
112771           ,p_module   => l_log_module);
112772 
112773         trace
112774           (p_msg      => '# of extracted headers: '
112775                          ||g_hdr_extract_count
112776           ,p_level    => C_LEVEL_STATEMENT
112777           ,p_module   => l_log_module);
112778 
112779         trace
112780           (p_msg      => '# of events in xla_events_gt: '
112781                          ||xla_context_pkg.get_event_count_context
112782           ,p_level    => C_LEVEL_STATEMENT
112783           ,p_module   => l_log_module);
112784 
112785         trace
112786           (p_msg      => 'Event No Header Extract Context: '
112787                          ||xla_context_pkg.get_event_nohdr_context
112788           ,p_level    => C_LEVEL_STATEMENT
112789           ,p_module   => l_log_module);
112790 
112791      END IF;
112792 
112793 
112794      xla_context_pkg.set_event_nohdr_context
112795        (p_nohdr_extract_flag => 'Y'
112796        ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
112797 
112798      IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112799         trace
112800           (p_msg      => 'No Header Extract Flag is set to Y'
112801           ,p_level    => C_LEVEL_STATEMENT
112802           ,p_module   => l_log_module);
112803      END IF;
112804 
112805  END IF;
112806 
112807 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112808    trace
112809       (p_msg      => 'END of CreateHeadersAndLines'
112810       ,p_level    => C_LEVEL_PROCEDURE
112811       ,p_module   => l_log_module);
112812 END IF;
112813 
112814 RETURN l_created;
112815 EXCEPTION
112816 WHEN xla_exceptions_pkg.application_exception THEN
112817    RAISE;
112818 WHEN OTHERS THEN
112819    xla_exceptions_pkg.raise_message
112820       (p_location => 'XLA_00200_AAD_S_000011_PKG.CreateHeadersAndLines');
112821 END CreateHeadersAndLines;
112822 --
112823 --
112824 
112825 --
112826 --+============================================+
112827 --|                                            |
112828 --|  PUBLIC FUNCTION                           |
112829 --|                                            |
112830 --+============================================+
112831 --
112832 FUNCTION CreateJournalEntries
112833        (p_application_id         IN NUMBER
112834        ,p_base_ledger_id         IN NUMBER
112835        ,p_pad_start_date         IN DATE
112836        ,p_pad_end_date           IN DATE
112837        ,p_primary_ledger_id      IN NUMBER)
112838 RETURN NUMBER IS
112839 l_log_module                   VARCHAR2(240);
112840 l_array_ledgers                xla_accounting_cache_pkg.t_array_ledger_id;
112841 l_temp_result                  BOOLEAN;
112842 l_result                       NUMBER;
112843 BEGIN
112844 --
112845 IF g_log_enabled THEN
112846    l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
112847 END IF;
112848 --
112849 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112850    trace
112851       (p_msg      => 'BEGIN of CreateJournalEntries'||
112852                      ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
112853       ,p_level    => C_LEVEL_PROCEDURE
112857 
112854       ,p_module   => l_log_module);
112855 
112856 END IF;
112858 --
112859 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
112860 
112861 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112862    trace
112863       (p_msg      => 'g_diagnostics_mode = '||g_diagnostics_mode
112864       ,p_level    => C_LEVEL_STATEMENT
112865       ,p_module   => l_log_module);
112866 END IF;
112867 --
112868 xla_ae_journal_entry_pkg.SetProductAcctDefinition
112869    (p_product_rule_code      => 'CASH'
112870    ,p_product_rule_type_code => 'S'
112871    ,p_product_rule_version   => ''
112872    ,p_product_rule_name      => 'Cash Basis'
112873    ,p_amb_context_code       => 'DEFAULT'
112874    );
112875 
112876 l_array_ledgers :=
112877    xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
112878       (p_base_ledger_id  => p_base_ledger_id);
112879 
112880 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
112881    l_temp_result :=
112882       XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
112883          (p_application_id           => p_application_id
112884          ,p_base_ledger_id           => p_base_ledger_id
112885          ,p_target_ledger_id         => l_array_ledgers(Idx)
112886          ,p_primary_ledger_id        => p_primary_ledger_id
112887          ,p_pad_start_date           => p_pad_start_date
112888          ,p_pad_end_date             => p_pad_end_date);
112889 
112890    l_temp_result :=
112891       l_temp_result AND
112892       CreateHeadersAndLines
112893          (p_application_id             => p_application_id
112894          ,p_base_ledger_id             => p_base_ledger_id
112895          ,p_target_ledger_id           => l_array_ledgers(Idx)
112896          ,p_pad_start_date             => p_pad_start_date
112897          ,p_pad_end_date               => p_pad_end_date
112898          ,p_primary_ledger_id          => p_primary_ledger_id
112899          );
112900 END LOOP;
112901 
112902 
112903 IF (g_diagnostics_mode = 'Y' AND
112904     C_LEVEL_UNEXPECTED >= g_log_level AND
112905     xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
112906 
112907    xla_accounting_dump_pkg.acctg_event_extract_log(
112908     p_application_id  => p_application_id
112909     ,p_request_id     => xla_environment_pkg.g_Req_Id
112910    );
112911 
112912 END IF;
112913 
112914 CASE l_temp_result
112915   WHEN TRUE THEN l_result := 0;
112916   ELSE l_result := 2;
112917 END CASE;
112918 
112919 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112920    trace
112921       (p_msg      => 'return value. = '||TO_CHAR(l_result)
112922       ,p_level    => C_LEVEL_PROCEDURE
112923       ,p_module   => l_log_module);
112924    trace
112925       (p_msg      => 'END of CreateJournalEntries '
112926       ,p_level    => C_LEVEL_PROCEDURE
112927       ,p_module   => l_log_module);
112928 END IF;
112929 
112930 RETURN l_result;
112931 EXCEPTION
112932 WHEN xla_exceptions_pkg.application_exception THEN
112933    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112934    trace
112935       (p_msg      => 'ERROR. = '||sqlerrm
112936       ,p_level    => C_LEVEL_PROCEDURE
112937       ,p_module   => l_log_module);
112938    END IF;
112939    RAISE;
112940 WHEN OTHERS THEN
112941    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112942    trace
112943       (p_msg      => 'ERROR. = '||sqlerrm
112944       ,p_level    => C_LEVEL_PROCEDURE
112945       ,p_module   => l_log_module);
112946    END IF;
112947    xla_exceptions_pkg.raise_message
112948       (p_location => 'XLA_00200_AAD_S_000011_PKG.CreateJournalEntries');
112949 END CreateJournalEntries;
112950 --
112951 --=============================================================================
112952 --
112953 --
112954 --
112955 --
112956 --
112957 --
112958 --
112959 --
112960 --
112961 --
112962 --
112963 --
112964 --
112965 --
112966 --
112967 --
112968 --
112969 --
112970 --
112971 --
112972 --
112973 --
112974 --=============================================================================
112975 --=============================================================================
112976 --          *********** Initialization routine **********
112977 --=============================================================================
112978 
112979 BEGIN
112980    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
112981    g_log_enabled    := fnd_log.test
112982                           (log_level  => g_log_level
112983                           ,module     => C_DEFAULT_MODULE);
112984 
112985    IF NOT g_log_enabled  THEN
112986       g_log_level := C_LEVEL_LOG_DISABLED;
112987    END IF;
112988 --
112989 END XLA_00200_AAD_S_000011_PKG;
112990 --