[Home] [Help]
PACKAGE BODY: APPS.XLA_00707_AAD_S_000020_BC_PKG
Source
1 PACKAGE BODY XLA_00707_AAD_S_000020_BC_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_00707_AAD_S_000020_BC_PKG |
10 | |
11 | DESCRIPTION |
12 | Package generated From Product Accounting Definition |
13 | Name : Permanent Inventory Cost Management Encumbrance |
14 | Code : PI_COST_MANAGEMENT_ENC |
15 | Owner : PRODUCT |
16 | Version : |
17 | AMB Context Code: DEFAULT |
18 | HISTORY |
19 | Generated at 30-03-2009 at 06:03:26 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_00707_AAD_S_000020_BC_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_00707_AAD_S_000020_BC_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_00707_AAD_S_000020_BC_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_00707_AAD_S_000020_BC_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 --TRANSACTION_ID
241 , p_source_1 IN NUMBER
242 --Item Concatenated Segments
243 , p_source_2 IN VARCHAR2
244 --Transaction Quantity
245 , p_source_3 IN NUMBER
246 --Transaction Unit of Measure Code
247 , p_source_4 IN VARCHAR2
248 --Inventory Transaction Type Description
249 , p_source_5 IN VARCHAR2
250 )
251 RETURN VARCHAR2
252 IS
253 l_component_type VARCHAR2(80) ;
254 l_component_code VARCHAR2(30) ;
255 l_component_type_code VARCHAR2(1) ;
256 l_component_appl_id INTEGER ;
257 l_amb_context_code VARCHAR2(30) ;
258 l_ledger_language VARCHAR2(30) ;
259 l_source VARCHAR2(1996) ;
260 l_description VARCHAR2(2000) ;
261 l_log_module VARCHAR2(240) ;
262 BEGIN
263 IF g_log_enabled THEN
264 l_log_module := C_DEFAULT_MODULE||'.Description_1';
265 END IF;
266 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
267 trace
268 (p_msg => 'BEGIN of Description_1'
269 ,p_level => C_LEVEL_PROCEDURE
270 ,p_module => l_log_module);
271 END IF;
272
273 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
274 l_component_type := 'AMB_DESCRIPTION';
275 l_component_code := 'PI_MATERIAL_TRANSACTION';
276 l_component_type_code := 'S';
277 l_component_appl_id := 707;
278 l_amb_context_code := 'DEFAULT';
279 l_source := NULL;
280 l_description := NULL;
281
282
283
284 l_source := SUBSTR(TO_CHAR(p_source_1),1,1996);
285 IF l_source IS NOT NULL THEN
286 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
287 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
288 END IF;
289 IF
290 l_ledger_language = 'US' THEN
291 l_description := SUBSTR(CONCAT(l_description,'-'),1,2000);
292 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
293 END IF;
294 l_source := SUBSTR(p_source_2,1,1996);
295 IF l_source IS NOT NULL THEN
296 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
297 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
298 END IF;
299 IF
300 l_ledger_language = 'US' THEN
301 l_description := SUBSTR(CONCAT(l_description,'-'),1,2000);
302 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
303 END IF;
304 l_source := SUBSTR(TO_CHAR(p_source_3),1,1996);
305 IF l_source IS NOT NULL THEN
306 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
307 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
308 END IF;
309 IF
310 l_ledger_language = 'US' THEN
311 l_description := SUBSTR(CONCAT(l_description,'-'),1,2000);
312 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
313 END IF;
314 l_source := SUBSTR(p_source_4,1,1996);
315 IF l_source IS NOT NULL THEN
316 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
317 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
318 END IF;
319 IF
320 l_ledger_language = 'US' THEN
321 l_description := SUBSTR(CONCAT(l_description,'-'),1,2000);
322 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
323 END IF;
324 l_source := SUBSTR(p_source_5,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 l_description := SUBSTR(l_description,1,1996);
330 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
331 trace
332 (p_msg => 'END of Description_1'
333 ,p_level => C_LEVEL_PROCEDURE
334 ,p_module => l_log_module);
335
336 END IF;
337 RETURN l_description;
338
339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
340 trace
341 (p_msg => 'END of Description_1'
342 ,p_level => C_LEVEL_PROCEDURE
343 ,p_module => l_log_module);
344 END IF;
345 RETURN NULL;
346 EXCEPTION
347 WHEN VALUE_ERROR THEN
348 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
349 trace
350 (p_msg => 'ERROR: '||sqlerrm
351 ,p_level => C_LEVEL_EXCEPTION
352 ,p_module => l_log_module);
353 END IF;
354 RAISE;
355 WHEN xla_exceptions_pkg.application_exception THEN
356 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
357 trace
358 (p_msg => 'ERROR: '||sqlerrm
359 ,p_level => C_LEVEL_EXCEPTION
360 ,p_module => l_log_module);
361 END IF;
362 RAISE;
363 WHEN OTHERS THEN
364 xla_exceptions_pkg.raise_message
365 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.Description_1');
366 END Description_1;
367
368 ---------------------------------------
369 --
370 -- PRIVATE FUNCTION
371 -- AcctDerRule_2
372 --
373 ---------------------------------------
374 FUNCTION AcctDerRule_2 (
375 p_application_id IN NUMBER
376 , p_ae_header_id IN NUMBER
377 , p_side IN VARCHAR2
378 --Cost Management Default Account
379 , p_source_6 IN NUMBER
380 , x_transaction_coa_id OUT NOCOPY NUMBER
381 , x_accounting_coa_id OUT NOCOPY NUMBER
382 , x_value_type_code OUT NOCOPY VARCHAR2
383 )
384 RETURN NUMBER
385 IS
386 l_component_type VARCHAR2(80) ;
387 l_component_code VARCHAR2(30) ;
388 l_component_type_code VARCHAR2(1) ;
389 l_component_appl_id INTEGER ;
390 l_amb_context_code VARCHAR2(30) ;
391 l_log_module VARCHAR2(240) ;
392 l_output_value NUMBER ;
393 BEGIN
394 IF g_log_enabled THEN
395 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_2';
396 END IF;
397 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
398 trace
399 (p_msg => 'BEGIN of AcctDerRule_2'
400 ,p_level => C_LEVEL_PROCEDURE
401 ,p_module => l_log_module);
402 END IF;
403 --
404 l_component_type := 'AMB_ADR';
405 l_component_code := 'CST_DEFAULT';
406 l_component_type_code := 'S';
407 l_component_appl_id := 707;
408 l_amb_context_code := 'DEFAULT';
409 x_transaction_coa_id := null;
410 x_accounting_coa_id := null;
411 --
412
413 --
414 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
415 trace
416 (p_msg => 'END of AcctDerRule_2'
417 ,p_level => C_LEVEL_PROCEDURE
418 ,p_module => l_log_module);
419 END IF;
420 x_value_type_code := 'S';
421 l_output_value := TO_NUMBER(TO_NUMBER(p_source_6));
422 RETURN l_output_value;
423
424 --
425 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
426 trace
427 (p_msg => 'END of AcctDerRule_2(invalid)'
428 ,p_level => C_LEVEL_PROCEDURE
429 ,p_module => l_log_module);
430 END IF;
431 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
432 x_value_type_code := null;
433 l_output_value := null;
434 xla_accounting_err_pkg.build_message
435 (p_appli_s_name => 'XLA'
436 ,p_msg_name => 'XLA_AP_INVALID_ADR'
437 ,p_token_1 => 'COMPONENT_NAME'
438 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
439 l_component_type
440 , l_component_code
441 , l_component_type_code
442 , l_component_appl_id
443 , l_amb_context_code
444 )
445 ,p_token_2 => 'OWNER'
446 ,p_value_2 => xla_lookups_pkg.get_meaning(
447 'XLA_OWNER_TYPE'
448 ,l_component_type_code
449 )
450 ,p_token_3 => 'PAD_NAME'
451 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
452 ,p_token_4 => 'PAD_OWNER'
453 ,p_value_4 => xla_lookups_pkg.get_meaning(
454 'XLA_OWNER_TYPE'
455 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
456 )
457 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
458 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
459 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
460 ,p_ae_header_id => NULL
461 );
462 RETURN l_output_value;
463 EXCEPTION
464 WHEN xla_exceptions_pkg.application_exception THEN
465 RAISE;
466 WHEN OTHERS THEN
467 xla_exceptions_pkg.raise_message
468 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctDerRule_2');
469 END AcctDerRule_2;
470 --
471
472 ---------------------------------------
473 --
474 -- PRIVATE FUNCTION
475 -- AcctLineType_3
476 --
477 ---------------------------------------
478 PROCEDURE AcctLineType_3 (
479 p_application_id IN NUMBER
480 ,p_event_id IN NUMBER
481 ,p_calculate_acctd_flag IN VARCHAR2
482 ,p_calculate_g_l_flag IN VARCHAR2
483 ,p_actual_flag IN OUT VARCHAR2
484 ,p_balance_type_code OUT VARCHAR2
485 ,p_gain_or_loss_ref OUT VARCHAR2
486
487 --Cost Management Default Account
488 , p_source_6 IN NUMBER
489 --Accounting Line Type
490 , p_source_7 IN NUMBER
491 --DISTRIBUTION_IDENTIFIER
492 , p_source_8 IN NUMBER
493 --Distribution Type
494 , p_source_9 IN VARCHAR2
495 , p_source_9_meaning IN VARCHAR2
496 --Entered Amount
497 , p_source_10 IN NUMBER
498 --Entered Currency Code
499 , p_source_11 IN VARCHAR2
500 --Currency Conversion Date
501 , p_source_12 IN DATE
502 --Currency Conversion Rate
503 , p_source_13 IN NUMBER
504 --Currency Conversion Type
505 , p_source_14 IN VARCHAR2
506 --Accounted Amount
507 , p_source_15 IN NUMBER
508 )
509 IS
510
511 l_component_type VARCHAR2(80);
512 l_component_code VARCHAR2(30);
513 l_component_type_code VARCHAR2(1);
514 l_component_appl_id INTEGER;
515 l_amb_context_code VARCHAR2(30);
516 l_entity_code VARCHAR2(30);
517 l_event_class_code VARCHAR2(30);
518 l_ae_header_id NUMBER;
519 l_event_type_code VARCHAR2(30);
520 l_line_definition_code VARCHAR2(30);
521 l_line_definition_owner_code VARCHAR2(1);
522 --
523 -- adr variables
524 l_segment VARCHAR2(30);
525 l_ccid NUMBER;
526 l_adr_transaction_coa_id NUMBER;
527 l_adr_accounting_coa_id NUMBER;
528 l_adr_flexfield_segment_code VARCHAR2(30);
529 l_adr_flex_value_set_id NUMBER;
530 l_adr_value_type_code VARCHAR2(30);
531 l_adr_value_combination_id NUMBER;
532 l_adr_value_segment_code VARCHAR2(30);
533
534 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
535 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
536 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
537 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
538
539 -- 4262811 Variables ------------------------------------------------------------------------------------------
540 l_entered_amt_idx NUMBER;
541 l_accted_amt_idx NUMBER;
542 l_acc_rev_flag VARCHAR2(1);
543 l_accrual_line_num NUMBER;
544 l_tmp_amt NUMBER;
545 l_acc_rev_natural_side_code VARCHAR2(1);
546
547 l_num_entries NUMBER;
548 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
549 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
550 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
551 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
552 l_recog_line_1 NUMBER;
553 l_recog_line_2 NUMBER;
554
555 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
556 l_bflow_applied_to_amt NUMBER; -- 5132302
557 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
558
559 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
560
561 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
562 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
563
564 ---------------------------------------------------------------------------------------------------------------
565
566
567 --
568 -- bulk performance
569 --
570 l_balance_type_code VARCHAR2(1);
571 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
572 l_log_module VARCHAR2(240);
573
574 --
575 -- Upgrade strategy
576 --
577 l_actual_upg_option VARCHAR2(1);
578 l_enc_upg_option VARCHAR2(1);
579
580 --
581 BEGIN
582 --
583 IF g_log_enabled THEN
584 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_3';
585 END IF;
586 --
587 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
588
589 trace
590 (p_msg => 'BEGIN of AcctLineType_3'
591 ,p_level => C_LEVEL_PROCEDURE
592 ,p_module => l_log_module);
593
594 END IF;
595 --
596 l_component_type := 'AMB_JLT';
597 l_component_code := 'INTERNAL_ORDER_ENC_RELIEVE';
598 l_component_type_code := 'S';
599 l_component_appl_id := 707;
600 l_amb_context_code := 'DEFAULT';
601 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
602 l_event_class_code := 'INT_ORDER_TO_EXP';
603 l_event_type_code := 'EXP_REQ_RCPT_TP';
604 l_line_definition_owner_code := 'S';
605 l_line_definition_code := 'ENC_INT_ORD_RCPT_EXP_TP';
606 --
607 l_balance_type_code := 'E';
608 l_segment := NULL;
609 l_ccid := NULL;
610 l_adr_transaction_coa_id := NULL;
611 l_adr_accounting_coa_id := NULL;
612 l_adr_flexfield_segment_code := NULL;
613 l_adr_flex_value_set_id := NULL;
614 l_adr_value_type_code := NULL;
615 l_adr_value_combination_id := NULL;
616 l_adr_value_segment_code := NULL;
617
618 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
619 l_bflow_class_code := ''; -- 4219869 Business Flow
620 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
621 l_budgetary_control_flag := 'Y';
622
623 l_bflow_applied_to_amt_idx := NULL; -- 5132302
624 l_bflow_applied_to_amt := NULL; -- 5132302
625 l_entered_amt_idx := NULL; -- 4262811
626 l_accted_amt_idx := NULL; -- 4262811
627 l_acc_rev_flag := NULL; -- 4262811
628 l_accrual_line_num := NULL; -- 4262811
629 l_tmp_amt := NULL; -- 4262811
630 --
631
632 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
633 l_balance_type_code <> 'B' THEN
634 IF NVL(p_source_7,9E125) = 15
635 THEN
636
637 --
638 XLA_AE_LINES_PKG.SetNewLine;
639
640 p_balance_type_code := l_balance_type_code;
641 -- set the flag so later we will know whether the gain loss line needs to be created
642
643 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
644 p_actual_flag :='A';
645 END IF;
646
647 --
648 -- bulk performance
649 --
650 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
651 p_header_num => 0); -- 4262811
652 --
653 -- set accounting line options
654 --
655 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
656 p_natural_side_code => 'D'
657 , p_gain_or_loss_flag => 'N'
658 , p_gl_transfer_mode_code => 'S'
659 , p_acct_entry_type_code => 'E'
660 , p_switch_side_flag => 'Y'
661 , p_merge_duplicate_code => 'N'
662 );
663 --
664 l_acc_rev_natural_side_code := 'C'; -- 4262811
665 --
666 --
667 -- set accounting line type info
668 --
669 xla_ae_lines_pkg.SetAcctLineType
670 (p_component_type => l_component_type
671 ,p_event_type_code => l_event_type_code
672 ,p_line_definition_owner_code => l_line_definition_owner_code
673 ,p_line_definition_code => l_line_definition_code
674 ,p_accounting_line_code => l_component_code
675 ,p_accounting_line_type_code => l_component_type_code
676 ,p_accounting_line_appl_id => l_component_appl_id
677 ,p_amb_context_code => l_amb_context_code
678 ,p_entity_code => l_entity_code
679 ,p_event_class_code => l_event_class_code);
680 --
681 -- set accounting class
682 --
683 xla_ae_lines_pkg.SetAcctClass(
684 p_accounting_class_code => 'REQUISITION'
685 , p_ae_header_id => l_ae_header_id
686 );
687
688 --
689 -- set rounding class
690 --
691 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
692 'REQUISITION';
693
694 --
695 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
696 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
697 --
698 -- bulk performance
699 --
700 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
701
702 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
703 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
704
705 -- 4955764
706 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
707 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
708
709 -- 4458381 Public Sector Enh
710 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
711 --
712 -- set accounting attributes for the line type
713 --
714 l_entered_amt_idx := 3;
715 l_accted_amt_idx := 8;
716 l_bflow_applied_to_amt_idx := NULL; -- 5132302
717 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
718 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_8);
719 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
720 l_rec_acct_attrs.array_char_value(2) := p_source_9;
721 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
722 l_rec_acct_attrs.array_num_value(3) := p_source_10;
723 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
724 l_rec_acct_attrs.array_char_value(4) := p_source_11;
725 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
726 l_rec_acct_attrs.array_date_value(5) := p_source_12;
727 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
728 l_rec_acct_attrs.array_num_value(6) := p_source_13;
729 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
730 l_rec_acct_attrs.array_char_value(7) := p_source_14;
731 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
732 l_rec_acct_attrs.array_num_value(8) := p_source_15;
733
734 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
735 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
736
737 ---------------------------------------------------------------------------------------------------------------
738 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
739 ---------------------------------------------------------------------------------------------------------------
740 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
741
742 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
743 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
744
745 IF xla_accounting_cache_pkg.GetValueChar
746 (p_source_code => 'LEDGER_CATEGORY_CODE'
747 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
748 AND l_bflow_method_code = 'PRIOR_ENTRY'
749 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
750 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
751 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
752 )
753 THEN
754 xla_ae_lines_pkg.BflowUpgEntry
755 (p_business_method_code => l_bflow_method_code
756 ,p_business_class_code => l_bflow_class_code
757 ,p_balance_type => l_balance_type_code);
758 ELSE
759 NULL;
760 -- No business flow processing for business flow method of NONE.
761 END IF;
762
763 --
764 -- call analytical criteria
765 --
766
767 --
768 -- call description
769 --
770 -- No description or it is inherited.
771 --
772 -- call ADRs
773 -- Bug 4922099
774 --
775 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
776 (NVL(l_actual_upg_option, 'N') = 'O') OR
777 (NVL(l_enc_upg_option, 'N') = 'O')
778 )
779 THEN
780 NULL;
781 --
782 --
783
784 l_ccid := AcctDerRule_2(
785 p_application_id => p_application_id
786 , p_ae_header_id => l_ae_header_id
787 , p_source_6 => p_source_6
788 , x_transaction_coa_id => l_adr_transaction_coa_id
789 , x_accounting_coa_id => l_adr_accounting_coa_id
790 , x_value_type_code => l_adr_value_type_code
791 , p_side => 'NA'
792 );
793
794 xla_ae_lines_pkg.set_ccid(
795 p_code_combination_id => l_ccid
796 , p_value_type_code => l_adr_value_type_code
797 , p_transaction_coa_id => l_adr_transaction_coa_id
798 , p_accounting_coa_id => l_adr_accounting_coa_id
799 , p_adr_code => 'CST_DEFAULT'
800 , p_adr_type_code => 'S'
801 , p_component_type => l_component_type
802 , p_component_code => l_component_code
803 , p_component_type_code => l_component_type_code
804 , p_component_appl_id => l_component_appl_id
805 , p_amb_context_code => l_amb_context_code
806 , p_side => 'NA'
807 );
808
809
810 --
811 --
812 END IF;
813 --
814 -- Bug 4922099
815 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
816 (NVL(l_enc_upg_option, 'N') = 'O')
817 ) AND
818 (l_bflow_method_code = 'PRIOR_ENTRY')
819 )
820 THEN
821 IF
822 --
823 1 = 2
824 --
825 THEN
826 xla_accounting_err_pkg.build_message
827 (p_appli_s_name => 'XLA'
828 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
829 ,p_token_1 => 'LINE_NUMBER'
830 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
831 ,p_token_2 => 'LINE_TYPE_NAME'
832 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
833 l_component_type
834 ,l_component_code
835 ,l_component_type_code
836 ,l_component_appl_id
837 ,l_amb_context_code
838 ,l_entity_code
839 ,l_event_class_code
840 )
841 ,p_token_3 => 'OWNER'
842 ,p_value_3 => xla_lookups_pkg.get_meaning(
843 p_lookup_type => 'XLA_OWNER_TYPE'
844 ,p_lookup_code => l_component_type_code
845 )
846 ,p_token_4 => 'PRODUCT_NAME'
847 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
848 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
849 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
850 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
851 ,p_ae_header_id => NULL
852 );
853
854 IF (C_LEVEL_ERROR>= g_log_level) THEN
855 trace
856 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
857 ,p_level => C_LEVEL_ERROR
858 ,p_module => l_log_module);
859 END IF;
860 END IF;
861 END IF;
862 --
863 --
864 ------------------------------------------------------------------------------------------------
865 -- 4219869 Business Flow
866 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
867 -- Prior Entry. Currently, the following code is always generated.
868 ------------------------------------------------------------------------------------------------
869 XLA_AE_LINES_PKG.ValidateCurrentLine;
870
871 ------------------------------------------------------------------------------------
872 -- 4219869 Business Flow
873 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
874 ------------------------------------------------------------------------------------
875 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
876
877 ----------------------------------------------------------------------------------
878 -- 4219869 Business Flow
879 -- Update journal entry status -- Need to generate this within IF <condition>
880 ----------------------------------------------------------------------------------
881 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
882 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
883 ,p_balance_type_code => l_balance_type_code
884 );
885
886 -------------------------------------------------------------------------------------------
887 -- 4262811 - Generate the Accrual Reversal lines
888 -------------------------------------------------------------------------------------------
889 BEGIN
890 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
891 (g_array_event(p_event_id).array_value_num('header_index'));
892 IF l_acc_rev_flag IS NULL THEN
893 l_acc_rev_flag := 'N';
894 END IF;
895 EXCEPTION
896 WHEN OTHERS THEN
897 l_acc_rev_flag := 'N';
898 END;
899 --
900 IF (l_acc_rev_flag = 'Y') THEN
901
902 -- 4645092 ------------------------------------------------------------------------------
903 -- To allow MPA report to determine if it should generate report process
904 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
905 ------------------------------------------------------------------------------------------
906
907 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
908 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
909 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
910 -- call ADRs
911 -- Bug 4922099
912 --
913 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
914 (NVL(l_actual_upg_option, 'N') = 'O') OR
915 (NVL(l_enc_upg_option, 'N') = 'O')
916 )
917 THEN
918 NULL;
919 --
920 --
921
922 l_ccid := AcctDerRule_2(
923 p_application_id => p_application_id
924 , p_ae_header_id => l_ae_header_id
925 , p_source_6 => p_source_6
926 , x_transaction_coa_id => l_adr_transaction_coa_id
927 , x_accounting_coa_id => l_adr_accounting_coa_id
928 , x_value_type_code => l_adr_value_type_code
929 , p_side => 'NA'
930 );
931
932 xla_ae_lines_pkg.set_ccid(
933 p_code_combination_id => l_ccid
934 , p_value_type_code => l_adr_value_type_code
935 , p_transaction_coa_id => l_adr_transaction_coa_id
936 , p_accounting_coa_id => l_adr_accounting_coa_id
937 , p_adr_code => 'CST_DEFAULT'
938 , p_adr_type_code => 'S'
939 , p_component_type => l_component_type
940 , p_component_code => l_component_code
941 , p_component_type_code => l_component_type_code
942 , p_component_appl_id => l_component_appl_id
943 , p_amb_context_code => l_amb_context_code
944 , p_side => 'NA'
945 );
946
947
948 --
949 --
950 END IF;
951
952 --
953 -- Update the line information that should be overwritten
954 --
955 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
956 p_header_num => 1);
957 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
958
959 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
960
961 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
962 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
963 END IF;
964
965 --
966 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
967 --
968 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
969 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
970 ELSE
971 ---------------------------------------------------------------------------------------------------
972 -- 4262811a Switch Sign
973 ---------------------------------------------------------------------------------------------------
974 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
975 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
976 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
977 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
978 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
979 -- 5132302
980 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
981 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
982
983 END IF;
984
985 -- 4955764
986 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
987 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
988
989
990 XLA_AE_LINES_PKG.ValidateCurrentLine;
991 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
992
993 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
994 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
995 ,p_balance_type_code => l_balance_type_code);
996
997 END IF;
998
999 -----------------------------------------------------------------------------------------
1000 -- 4262811 Multiperiod Accounting
1001 -----------------------------------------------------------------------------------------
1002 -- No MPA option is assigned.
1003
1004
1005 END IF;
1006 END IF;
1007 --
1008
1009 --
1010 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1011 trace
1012 (p_msg => 'END of AcctLineType_3'
1013 ,p_level => C_LEVEL_PROCEDURE
1014 ,p_module => l_log_module);
1015 END IF;
1016 --
1017 EXCEPTION
1018 WHEN xla_exceptions_pkg.application_exception THEN
1019 RAISE;
1020 WHEN OTHERS THEN
1021 xla_exceptions_pkg.raise_message
1022 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_3');
1023 END AcctLineType_3;
1024 --
1025
1026 ---------------------------------------
1027 --
1028 -- PRIVATE FUNCTION
1029 -- AcctLineType_4
1030 --
1031 ---------------------------------------
1032 PROCEDURE AcctLineType_4 (
1033 p_application_id IN NUMBER
1034 ,p_event_id IN NUMBER
1035 ,p_calculate_acctd_flag IN VARCHAR2
1036 ,p_calculate_g_l_flag IN VARCHAR2
1037 ,p_actual_flag IN OUT VARCHAR2
1038 ,p_balance_type_code OUT VARCHAR2
1039 ,p_gain_or_loss_ref OUT VARCHAR2
1040
1041 --Cost Management Default Account
1042 , p_source_6 IN NUMBER
1043 --Accounting Line Type
1044 , p_source_7 IN NUMBER
1045 --DISTRIBUTION_IDENTIFIER
1046 , p_source_8 IN NUMBER
1047 --Distribution Type
1048 , p_source_9 IN VARCHAR2
1049 , p_source_9_meaning IN VARCHAR2
1050 --Entered Amount
1051 , p_source_10 IN NUMBER
1052 --Entered Currency Code
1053 , p_source_11 IN VARCHAR2
1054 --Currency Conversion Date
1055 , p_source_12 IN DATE
1056 --Currency Conversion Rate
1057 , p_source_13 IN NUMBER
1058 --Currency Conversion Type
1059 , p_source_14 IN VARCHAR2
1060 --Accounted Amount
1061 , p_source_15 IN NUMBER
1062 )
1063 IS
1064
1065 l_component_type VARCHAR2(80);
1066 l_component_code VARCHAR2(30);
1067 l_component_type_code VARCHAR2(1);
1068 l_component_appl_id INTEGER;
1069 l_amb_context_code VARCHAR2(30);
1070 l_entity_code VARCHAR2(30);
1071 l_event_class_code VARCHAR2(30);
1072 l_ae_header_id NUMBER;
1073 l_event_type_code VARCHAR2(30);
1074 l_line_definition_code VARCHAR2(30);
1075 l_line_definition_owner_code VARCHAR2(1);
1076 --
1077 -- adr variables
1078 l_segment VARCHAR2(30);
1079 l_ccid NUMBER;
1080 l_adr_transaction_coa_id NUMBER;
1081 l_adr_accounting_coa_id NUMBER;
1082 l_adr_flexfield_segment_code VARCHAR2(30);
1083 l_adr_flex_value_set_id NUMBER;
1084 l_adr_value_type_code VARCHAR2(30);
1085 l_adr_value_combination_id NUMBER;
1086 l_adr_value_segment_code VARCHAR2(30);
1087
1088 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
1089 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
1090 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
1091 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
1092
1093 -- 4262811 Variables ------------------------------------------------------------------------------------------
1094 l_entered_amt_idx NUMBER;
1095 l_accted_amt_idx NUMBER;
1096 l_acc_rev_flag VARCHAR2(1);
1097 l_accrual_line_num NUMBER;
1098 l_tmp_amt NUMBER;
1099 l_acc_rev_natural_side_code VARCHAR2(1);
1100
1101 l_num_entries NUMBER;
1102 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
1103 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
1104 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
1105 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
1106 l_recog_line_1 NUMBER;
1107 l_recog_line_2 NUMBER;
1108
1109 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
1110 l_bflow_applied_to_amt NUMBER; -- 5132302
1111 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
1112
1113 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
1114
1115 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
1116 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
1117
1118 ---------------------------------------------------------------------------------------------------------------
1119
1120
1121 --
1122 -- bulk performance
1123 --
1124 l_balance_type_code VARCHAR2(1);
1125 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
1126 l_log_module VARCHAR2(240);
1127
1128 --
1129 -- Upgrade strategy
1130 --
1131 l_actual_upg_option VARCHAR2(1);
1132 l_enc_upg_option VARCHAR2(1);
1133
1134 --
1135 BEGIN
1136 --
1137 IF g_log_enabled THEN
1138 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_4';
1139 END IF;
1140 --
1141 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1142
1143 trace
1144 (p_msg => 'BEGIN of AcctLineType_4'
1145 ,p_level => C_LEVEL_PROCEDURE
1146 ,p_module => l_log_module);
1147
1148 END IF;
1149 --
1150 l_component_type := 'AMB_JLT';
1151 l_component_code := 'INTERNAL_ORDER_ENC_RELIEVE';
1152 l_component_type_code := 'S';
1153 l_component_appl_id := 707;
1154 l_amb_context_code := 'DEFAULT';
1155 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
1156 l_event_class_code := 'INT_ORDER_TO_EXP';
1157 l_event_type_code := 'INT_ORDER_ISSUE_TP';
1158 l_line_definition_owner_code := 'S';
1159 l_line_definition_code := 'ENC_INT_ORD_ISSUE_EXP_TP';
1160 --
1161 l_balance_type_code := 'E';
1162 l_segment := NULL;
1163 l_ccid := NULL;
1164 l_adr_transaction_coa_id := NULL;
1165 l_adr_accounting_coa_id := NULL;
1166 l_adr_flexfield_segment_code := NULL;
1167 l_adr_flex_value_set_id := NULL;
1168 l_adr_value_type_code := NULL;
1169 l_adr_value_combination_id := NULL;
1170 l_adr_value_segment_code := NULL;
1171
1172 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
1173 l_bflow_class_code := ''; -- 4219869 Business Flow
1174 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
1175 l_budgetary_control_flag := 'Y';
1176
1177 l_bflow_applied_to_amt_idx := NULL; -- 5132302
1178 l_bflow_applied_to_amt := NULL; -- 5132302
1179 l_entered_amt_idx := NULL; -- 4262811
1180 l_accted_amt_idx := NULL; -- 4262811
1181 l_acc_rev_flag := NULL; -- 4262811
1182 l_accrual_line_num := NULL; -- 4262811
1183 l_tmp_amt := NULL; -- 4262811
1184 --
1185
1186 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
1187 l_balance_type_code <> 'B' THEN
1188 IF NVL(p_source_7,9E125) = 15
1189 THEN
1190
1191 --
1192 XLA_AE_LINES_PKG.SetNewLine;
1193
1194 p_balance_type_code := l_balance_type_code;
1195 -- set the flag so later we will know whether the gain loss line needs to be created
1196
1197 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
1198 p_actual_flag :='A';
1199 END IF;
1200
1201 --
1202 -- bulk performance
1203 --
1204 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
1205 p_header_num => 0); -- 4262811
1206 --
1207 -- set accounting line options
1208 --
1209 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
1210 p_natural_side_code => 'D'
1211 , p_gain_or_loss_flag => 'N'
1212 , p_gl_transfer_mode_code => 'S'
1213 , p_acct_entry_type_code => 'E'
1214 , p_switch_side_flag => 'Y'
1215 , p_merge_duplicate_code => 'N'
1216 );
1217 --
1218 l_acc_rev_natural_side_code := 'C'; -- 4262811
1219 --
1220 --
1221 -- set accounting line type info
1222 --
1223 xla_ae_lines_pkg.SetAcctLineType
1224 (p_component_type => l_component_type
1225 ,p_event_type_code => l_event_type_code
1226 ,p_line_definition_owner_code => l_line_definition_owner_code
1227 ,p_line_definition_code => l_line_definition_code
1228 ,p_accounting_line_code => l_component_code
1229 ,p_accounting_line_type_code => l_component_type_code
1230 ,p_accounting_line_appl_id => l_component_appl_id
1231 ,p_amb_context_code => l_amb_context_code
1232 ,p_entity_code => l_entity_code
1233 ,p_event_class_code => l_event_class_code);
1234 --
1235 -- set accounting class
1236 --
1237 xla_ae_lines_pkg.SetAcctClass(
1238 p_accounting_class_code => 'REQUISITION'
1239 , p_ae_header_id => l_ae_header_id
1240 );
1241
1242 --
1243 -- set rounding class
1244 --
1245 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
1246 'REQUISITION';
1247
1248 --
1249 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
1250 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
1251 --
1252 -- bulk performance
1253 --
1254 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
1255
1256 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
1257 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
1258
1259 -- 4955764
1260 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
1261 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
1262
1263 -- 4458381 Public Sector Enh
1264 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
1265 --
1266 -- set accounting attributes for the line type
1267 --
1268 l_entered_amt_idx := 3;
1269 l_accted_amt_idx := 8;
1270 l_bflow_applied_to_amt_idx := NULL; -- 5132302
1271 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
1272 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_8);
1273 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
1274 l_rec_acct_attrs.array_char_value(2) := p_source_9;
1275 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
1276 l_rec_acct_attrs.array_num_value(3) := p_source_10;
1277 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
1278 l_rec_acct_attrs.array_char_value(4) := p_source_11;
1279 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
1280 l_rec_acct_attrs.array_date_value(5) := p_source_12;
1281 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
1282 l_rec_acct_attrs.array_num_value(6) := p_source_13;
1283 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
1284 l_rec_acct_attrs.array_char_value(7) := p_source_14;
1285 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
1286 l_rec_acct_attrs.array_num_value(8) := p_source_15;
1287
1288 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
1289 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
1290
1291 ---------------------------------------------------------------------------------------------------------------
1292 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
1293 ---------------------------------------------------------------------------------------------------------------
1294 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
1295
1296 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
1297 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
1298
1299 IF xla_accounting_cache_pkg.GetValueChar
1300 (p_source_code => 'LEDGER_CATEGORY_CODE'
1301 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
1302 AND l_bflow_method_code = 'PRIOR_ENTRY'
1303 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
1304 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
1305 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
1306 )
1307 THEN
1308 xla_ae_lines_pkg.BflowUpgEntry
1309 (p_business_method_code => l_bflow_method_code
1310 ,p_business_class_code => l_bflow_class_code
1311 ,p_balance_type => l_balance_type_code);
1312 ELSE
1313 NULL;
1314 -- No business flow processing for business flow method of NONE.
1315 END IF;
1316
1317 --
1318 -- call analytical criteria
1319 --
1320
1321 --
1322 -- call description
1323 --
1324 -- No description or it is inherited.
1325 --
1326 -- call ADRs
1327 -- Bug 4922099
1328 --
1329 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
1330 (NVL(l_actual_upg_option, 'N') = 'O') OR
1331 (NVL(l_enc_upg_option, 'N') = 'O')
1332 )
1333 THEN
1334 NULL;
1335 --
1336 --
1337
1338 l_ccid := AcctDerRule_2(
1339 p_application_id => p_application_id
1340 , p_ae_header_id => l_ae_header_id
1341 , p_source_6 => p_source_6
1342 , x_transaction_coa_id => l_adr_transaction_coa_id
1343 , x_accounting_coa_id => l_adr_accounting_coa_id
1344 , x_value_type_code => l_adr_value_type_code
1345 , p_side => 'NA'
1346 );
1347
1348 xla_ae_lines_pkg.set_ccid(
1349 p_code_combination_id => l_ccid
1350 , p_value_type_code => l_adr_value_type_code
1351 , p_transaction_coa_id => l_adr_transaction_coa_id
1352 , p_accounting_coa_id => l_adr_accounting_coa_id
1353 , p_adr_code => 'CST_DEFAULT'
1354 , p_adr_type_code => 'S'
1355 , p_component_type => l_component_type
1356 , p_component_code => l_component_code
1357 , p_component_type_code => l_component_type_code
1358 , p_component_appl_id => l_component_appl_id
1359 , p_amb_context_code => l_amb_context_code
1360 , p_side => 'NA'
1361 );
1362
1363
1364 --
1365 --
1366 END IF;
1367 --
1368 -- Bug 4922099
1369 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
1370 (NVL(l_enc_upg_option, 'N') = 'O')
1371 ) AND
1372 (l_bflow_method_code = 'PRIOR_ENTRY')
1373 )
1374 THEN
1375 IF
1376 --
1377 1 = 2
1378 --
1379 THEN
1380 xla_accounting_err_pkg.build_message
1381 (p_appli_s_name => 'XLA'
1382 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
1383 ,p_token_1 => 'LINE_NUMBER'
1384 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
1385 ,p_token_2 => 'LINE_TYPE_NAME'
1386 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
1387 l_component_type
1388 ,l_component_code
1389 ,l_component_type_code
1390 ,l_component_appl_id
1391 ,l_amb_context_code
1392 ,l_entity_code
1393 ,l_event_class_code
1394 )
1395 ,p_token_3 => 'OWNER'
1396 ,p_value_3 => xla_lookups_pkg.get_meaning(
1397 p_lookup_type => 'XLA_OWNER_TYPE'
1398 ,p_lookup_code => l_component_type_code
1399 )
1400 ,p_token_4 => 'PRODUCT_NAME'
1401 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
1402 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
1403 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
1404 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
1405 ,p_ae_header_id => NULL
1406 );
1407
1408 IF (C_LEVEL_ERROR>= g_log_level) THEN
1409 trace
1410 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
1411 ,p_level => C_LEVEL_ERROR
1412 ,p_module => l_log_module);
1413 END IF;
1414 END IF;
1415 END IF;
1416 --
1417 --
1418 ------------------------------------------------------------------------------------------------
1419 -- 4219869 Business Flow
1420 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
1421 -- Prior Entry. Currently, the following code is always generated.
1422 ------------------------------------------------------------------------------------------------
1423 XLA_AE_LINES_PKG.ValidateCurrentLine;
1424
1425 ------------------------------------------------------------------------------------
1426 -- 4219869 Business Flow
1427 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
1428 ------------------------------------------------------------------------------------
1429 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
1430
1431 ----------------------------------------------------------------------------------
1432 -- 4219869 Business Flow
1433 -- Update journal entry status -- Need to generate this within IF <condition>
1434 ----------------------------------------------------------------------------------
1435 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
1436 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
1437 ,p_balance_type_code => l_balance_type_code
1438 );
1439
1440 -------------------------------------------------------------------------------------------
1441 -- 4262811 - Generate the Accrual Reversal lines
1442 -------------------------------------------------------------------------------------------
1443 BEGIN
1444 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
1445 (g_array_event(p_event_id).array_value_num('header_index'));
1446 IF l_acc_rev_flag IS NULL THEN
1447 l_acc_rev_flag := 'N';
1448 END IF;
1449 EXCEPTION
1450 WHEN OTHERS THEN
1451 l_acc_rev_flag := 'N';
1452 END;
1453 --
1454 IF (l_acc_rev_flag = 'Y') THEN
1455
1456 -- 4645092 ------------------------------------------------------------------------------
1457 -- To allow MPA report to determine if it should generate report process
1458 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
1459 ------------------------------------------------------------------------------------------
1460
1461 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
1462 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
1463 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
1464 -- call ADRs
1465 -- Bug 4922099
1466 --
1467 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
1468 (NVL(l_actual_upg_option, 'N') = 'O') OR
1469 (NVL(l_enc_upg_option, 'N') = 'O')
1470 )
1471 THEN
1472 NULL;
1473 --
1474 --
1475
1476 l_ccid := AcctDerRule_2(
1477 p_application_id => p_application_id
1478 , p_ae_header_id => l_ae_header_id
1479 , p_source_6 => p_source_6
1480 , x_transaction_coa_id => l_adr_transaction_coa_id
1481 , x_accounting_coa_id => l_adr_accounting_coa_id
1482 , x_value_type_code => l_adr_value_type_code
1483 , p_side => 'NA'
1484 );
1485
1486 xla_ae_lines_pkg.set_ccid(
1487 p_code_combination_id => l_ccid
1488 , p_value_type_code => l_adr_value_type_code
1489 , p_transaction_coa_id => l_adr_transaction_coa_id
1490 , p_accounting_coa_id => l_adr_accounting_coa_id
1491 , p_adr_code => 'CST_DEFAULT'
1492 , p_adr_type_code => 'S'
1493 , p_component_type => l_component_type
1494 , p_component_code => l_component_code
1495 , p_component_type_code => l_component_type_code
1496 , p_component_appl_id => l_component_appl_id
1497 , p_amb_context_code => l_amb_context_code
1498 , p_side => 'NA'
1499 );
1500
1501
1502 --
1503 --
1504 END IF;
1505
1506 --
1507 -- Update the line information that should be overwritten
1508 --
1509 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
1510 p_header_num => 1);
1511 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
1512
1513 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
1514
1515 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
1516 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
1517 END IF;
1518
1519 --
1520 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
1521 --
1522 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
1523 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
1524 ELSE
1525 ---------------------------------------------------------------------------------------------------
1526 -- 4262811a Switch Sign
1527 ---------------------------------------------------------------------------------------------------
1528 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
1529 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
1530 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1531 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
1532 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1533 -- 5132302
1534 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
1535 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1536
1537 END IF;
1538
1539 -- 4955764
1540 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
1541 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
1542
1543
1544 XLA_AE_LINES_PKG.ValidateCurrentLine;
1545 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
1546
1547 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
1548 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
1549 ,p_balance_type_code => l_balance_type_code);
1550
1551 END IF;
1552
1553 -----------------------------------------------------------------------------------------
1554 -- 4262811 Multiperiod Accounting
1555 -----------------------------------------------------------------------------------------
1556 -- No MPA option is assigned.
1557
1558
1559 END IF;
1560 END IF;
1561 --
1562
1563 --
1564 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1565 trace
1566 (p_msg => 'END of AcctLineType_4'
1567 ,p_level => C_LEVEL_PROCEDURE
1568 ,p_module => l_log_module);
1569 END IF;
1570 --
1571 EXCEPTION
1572 WHEN xla_exceptions_pkg.application_exception THEN
1573 RAISE;
1574 WHEN OTHERS THEN
1575 xla_exceptions_pkg.raise_message
1576 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_4');
1577 END AcctLineType_4;
1578 --
1579
1580 ---------------------------------------
1581 --
1582 -- PRIVATE FUNCTION
1583 -- AcctLineType_5
1584 --
1585 ---------------------------------------
1586 PROCEDURE AcctLineType_5 (
1587 p_application_id IN NUMBER
1588 ,p_event_id IN NUMBER
1589 ,p_calculate_acctd_flag IN VARCHAR2
1590 ,p_calculate_g_l_flag IN VARCHAR2
1591 ,p_actual_flag IN OUT VARCHAR2
1592 ,p_balance_type_code OUT VARCHAR2
1593 ,p_gain_or_loss_ref OUT VARCHAR2
1594
1595 --Cost Management Default Account
1596 , p_source_6 IN NUMBER
1597 --Accounting Line Type
1598 , p_source_7 IN NUMBER
1599 --DISTRIBUTION_IDENTIFIER
1600 , p_source_8 IN NUMBER
1601 --Distribution Type
1602 , p_source_9 IN VARCHAR2
1603 , p_source_9_meaning IN VARCHAR2
1604 --Entered Amount
1605 , p_source_10 IN NUMBER
1606 --Entered Currency Code
1607 , p_source_11 IN VARCHAR2
1608 --Currency Conversion Date
1609 , p_source_12 IN DATE
1610 --Currency Conversion Rate
1611 , p_source_13 IN NUMBER
1612 --Currency Conversion Type
1613 , p_source_14 IN VARCHAR2
1614 --Accounted Amount
1615 , p_source_15 IN NUMBER
1616 )
1617 IS
1618
1619 l_component_type VARCHAR2(80);
1620 l_component_code VARCHAR2(30);
1621 l_component_type_code VARCHAR2(1);
1622 l_component_appl_id INTEGER;
1623 l_amb_context_code VARCHAR2(30);
1624 l_entity_code VARCHAR2(30);
1625 l_event_class_code VARCHAR2(30);
1626 l_ae_header_id NUMBER;
1627 l_event_type_code VARCHAR2(30);
1628 l_line_definition_code VARCHAR2(30);
1629 l_line_definition_owner_code VARCHAR2(1);
1630 --
1631 -- adr variables
1632 l_segment VARCHAR2(30);
1633 l_ccid NUMBER;
1634 l_adr_transaction_coa_id NUMBER;
1635 l_adr_accounting_coa_id NUMBER;
1636 l_adr_flexfield_segment_code VARCHAR2(30);
1637 l_adr_flex_value_set_id NUMBER;
1638 l_adr_value_type_code VARCHAR2(30);
1639 l_adr_value_combination_id NUMBER;
1640 l_adr_value_segment_code VARCHAR2(30);
1641
1642 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
1643 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
1644 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
1645 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
1646
1647 -- 4262811 Variables ------------------------------------------------------------------------------------------
1648 l_entered_amt_idx NUMBER;
1649 l_accted_amt_idx NUMBER;
1650 l_acc_rev_flag VARCHAR2(1);
1651 l_accrual_line_num NUMBER;
1652 l_tmp_amt NUMBER;
1653 l_acc_rev_natural_side_code VARCHAR2(1);
1654
1655 l_num_entries NUMBER;
1656 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
1657 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
1658 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
1659 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
1660 l_recog_line_1 NUMBER;
1661 l_recog_line_2 NUMBER;
1662
1663 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
1664 l_bflow_applied_to_amt NUMBER; -- 5132302
1665 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
1666
1667 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
1668
1669 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
1670 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
1671
1672 ---------------------------------------------------------------------------------------------------------------
1673
1674
1675 --
1676 -- bulk performance
1677 --
1678 l_balance_type_code VARCHAR2(1);
1679 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
1680 l_log_module VARCHAR2(240);
1681
1682 --
1683 -- Upgrade strategy
1684 --
1685 l_actual_upg_option VARCHAR2(1);
1686 l_enc_upg_option VARCHAR2(1);
1687
1688 --
1689 BEGIN
1690 --
1691 IF g_log_enabled THEN
1692 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_5';
1693 END IF;
1694 --
1695 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1696
1697 trace
1698 (p_msg => 'BEGIN of AcctLineType_5'
1699 ,p_level => C_LEVEL_PROCEDURE
1700 ,p_module => l_log_module);
1701
1702 END IF;
1703 --
1704 l_component_type := 'AMB_JLT';
1705 l_component_code := 'INTERNAL_ORDER_ENC_RELIEVE';
1706 l_component_type_code := 'S';
1707 l_component_appl_id := 707;
1708 l_amb_context_code := 'DEFAULT';
1709 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
1710 l_event_class_code := 'INT_ORDER_TO_EXP';
1711 l_event_type_code := 'EXP_REQ_RCPT_NO_TP';
1712 l_line_definition_owner_code := 'S';
1713 l_line_definition_code := 'ENC_INT_ORD_RCPT_EXP_NTP';
1714 --
1715 l_balance_type_code := 'E';
1716 l_segment := NULL;
1717 l_ccid := NULL;
1718 l_adr_transaction_coa_id := NULL;
1719 l_adr_accounting_coa_id := NULL;
1720 l_adr_flexfield_segment_code := NULL;
1721 l_adr_flex_value_set_id := NULL;
1722 l_adr_value_type_code := NULL;
1723 l_adr_value_combination_id := NULL;
1724 l_adr_value_segment_code := NULL;
1725
1726 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
1727 l_bflow_class_code := ''; -- 4219869 Business Flow
1728 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
1729 l_budgetary_control_flag := 'Y';
1730
1731 l_bflow_applied_to_amt_idx := NULL; -- 5132302
1732 l_bflow_applied_to_amt := NULL; -- 5132302
1733 l_entered_amt_idx := NULL; -- 4262811
1734 l_accted_amt_idx := NULL; -- 4262811
1735 l_acc_rev_flag := NULL; -- 4262811
1736 l_accrual_line_num := NULL; -- 4262811
1737 l_tmp_amt := NULL; -- 4262811
1738 --
1739
1740 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
1741 l_balance_type_code <> 'B' THEN
1742 IF NVL(p_source_7,9E125) = 15
1743 THEN
1744
1745 --
1746 XLA_AE_LINES_PKG.SetNewLine;
1747
1748 p_balance_type_code := l_balance_type_code;
1749 -- set the flag so later we will know whether the gain loss line needs to be created
1750
1751 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
1752 p_actual_flag :='A';
1753 END IF;
1754
1755 --
1756 -- bulk performance
1757 --
1758 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
1759 p_header_num => 0); -- 4262811
1760 --
1761 -- set accounting line options
1762 --
1763 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
1764 p_natural_side_code => 'D'
1765 , p_gain_or_loss_flag => 'N'
1766 , p_gl_transfer_mode_code => 'S'
1767 , p_acct_entry_type_code => 'E'
1768 , p_switch_side_flag => 'Y'
1769 , p_merge_duplicate_code => 'N'
1770 );
1771 --
1772 l_acc_rev_natural_side_code := 'C'; -- 4262811
1773 --
1774 --
1775 -- set accounting line type info
1776 --
1777 xla_ae_lines_pkg.SetAcctLineType
1778 (p_component_type => l_component_type
1779 ,p_event_type_code => l_event_type_code
1780 ,p_line_definition_owner_code => l_line_definition_owner_code
1781 ,p_line_definition_code => l_line_definition_code
1782 ,p_accounting_line_code => l_component_code
1783 ,p_accounting_line_type_code => l_component_type_code
1784 ,p_accounting_line_appl_id => l_component_appl_id
1785 ,p_amb_context_code => l_amb_context_code
1786 ,p_entity_code => l_entity_code
1787 ,p_event_class_code => l_event_class_code);
1788 --
1789 -- set accounting class
1790 --
1791 xla_ae_lines_pkg.SetAcctClass(
1792 p_accounting_class_code => 'REQUISITION'
1793 , p_ae_header_id => l_ae_header_id
1794 );
1795
1796 --
1797 -- set rounding class
1798 --
1799 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
1800 'REQUISITION';
1801
1802 --
1803 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
1804 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
1805 --
1806 -- bulk performance
1807 --
1808 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
1809
1810 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
1811 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
1812
1813 -- 4955764
1814 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
1815 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
1816
1817 -- 4458381 Public Sector Enh
1818 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
1819 --
1820 -- set accounting attributes for the line type
1821 --
1822 l_entered_amt_idx := 3;
1823 l_accted_amt_idx := 8;
1824 l_bflow_applied_to_amt_idx := NULL; -- 5132302
1825 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
1826 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_8);
1827 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
1828 l_rec_acct_attrs.array_char_value(2) := p_source_9;
1829 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
1830 l_rec_acct_attrs.array_num_value(3) := p_source_10;
1831 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
1832 l_rec_acct_attrs.array_char_value(4) := p_source_11;
1833 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
1834 l_rec_acct_attrs.array_date_value(5) := p_source_12;
1835 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
1836 l_rec_acct_attrs.array_num_value(6) := p_source_13;
1837 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
1838 l_rec_acct_attrs.array_char_value(7) := p_source_14;
1839 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
1840 l_rec_acct_attrs.array_num_value(8) := p_source_15;
1841
1842 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
1843 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
1844
1845 ---------------------------------------------------------------------------------------------------------------
1846 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
1847 ---------------------------------------------------------------------------------------------------------------
1848 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
1849
1850 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
1851 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
1852
1853 IF xla_accounting_cache_pkg.GetValueChar
1854 (p_source_code => 'LEDGER_CATEGORY_CODE'
1855 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
1856 AND l_bflow_method_code = 'PRIOR_ENTRY'
1857 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
1858 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
1859 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
1860 )
1861 THEN
1862 xla_ae_lines_pkg.BflowUpgEntry
1863 (p_business_method_code => l_bflow_method_code
1864 ,p_business_class_code => l_bflow_class_code
1865 ,p_balance_type => l_balance_type_code);
1866 ELSE
1867 NULL;
1868 -- No business flow processing for business flow method of NONE.
1869 END IF;
1870
1871 --
1872 -- call analytical criteria
1873 --
1874
1875 --
1876 -- call description
1877 --
1878 -- No description or it is inherited.
1879 --
1880 -- call ADRs
1881 -- Bug 4922099
1882 --
1883 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
1884 (NVL(l_actual_upg_option, 'N') = 'O') OR
1885 (NVL(l_enc_upg_option, 'N') = 'O')
1886 )
1887 THEN
1888 NULL;
1889 --
1890 --
1891
1892 l_ccid := AcctDerRule_2(
1893 p_application_id => p_application_id
1894 , p_ae_header_id => l_ae_header_id
1895 , p_source_6 => p_source_6
1896 , x_transaction_coa_id => l_adr_transaction_coa_id
1897 , x_accounting_coa_id => l_adr_accounting_coa_id
1898 , x_value_type_code => l_adr_value_type_code
1899 , p_side => 'NA'
1900 );
1901
1902 xla_ae_lines_pkg.set_ccid(
1903 p_code_combination_id => l_ccid
1904 , p_value_type_code => l_adr_value_type_code
1905 , p_transaction_coa_id => l_adr_transaction_coa_id
1906 , p_accounting_coa_id => l_adr_accounting_coa_id
1907 , p_adr_code => 'CST_DEFAULT'
1908 , p_adr_type_code => 'S'
1909 , p_component_type => l_component_type
1910 , p_component_code => l_component_code
1911 , p_component_type_code => l_component_type_code
1912 , p_component_appl_id => l_component_appl_id
1913 , p_amb_context_code => l_amb_context_code
1914 , p_side => 'NA'
1915 );
1916
1917
1918 --
1919 --
1920 END IF;
1921 --
1922 -- Bug 4922099
1923 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
1924 (NVL(l_enc_upg_option, 'N') = 'O')
1925 ) AND
1926 (l_bflow_method_code = 'PRIOR_ENTRY')
1927 )
1928 THEN
1929 IF
1930 --
1931 1 = 2
1932 --
1933 THEN
1934 xla_accounting_err_pkg.build_message
1935 (p_appli_s_name => 'XLA'
1936 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
1937 ,p_token_1 => 'LINE_NUMBER'
1938 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
1939 ,p_token_2 => 'LINE_TYPE_NAME'
1940 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
1941 l_component_type
1942 ,l_component_code
1943 ,l_component_type_code
1944 ,l_component_appl_id
1945 ,l_amb_context_code
1946 ,l_entity_code
1947 ,l_event_class_code
1948 )
1949 ,p_token_3 => 'OWNER'
1950 ,p_value_3 => xla_lookups_pkg.get_meaning(
1951 p_lookup_type => 'XLA_OWNER_TYPE'
1952 ,p_lookup_code => l_component_type_code
1953 )
1954 ,p_token_4 => 'PRODUCT_NAME'
1955 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
1956 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
1957 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
1958 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
1959 ,p_ae_header_id => NULL
1960 );
1961
1962 IF (C_LEVEL_ERROR>= g_log_level) THEN
1963 trace
1964 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
1965 ,p_level => C_LEVEL_ERROR
1966 ,p_module => l_log_module);
1967 END IF;
1968 END IF;
1969 END IF;
1970 --
1971 --
1972 ------------------------------------------------------------------------------------------------
1973 -- 4219869 Business Flow
1974 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
1975 -- Prior Entry. Currently, the following code is always generated.
1976 ------------------------------------------------------------------------------------------------
1977 XLA_AE_LINES_PKG.ValidateCurrentLine;
1978
1979 ------------------------------------------------------------------------------------
1980 -- 4219869 Business Flow
1981 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
1982 ------------------------------------------------------------------------------------
1983 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
1984
1985 ----------------------------------------------------------------------------------
1986 -- 4219869 Business Flow
1987 -- Update journal entry status -- Need to generate this within IF <condition>
1988 ----------------------------------------------------------------------------------
1989 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
1990 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
1991 ,p_balance_type_code => l_balance_type_code
1992 );
1993
1994 -------------------------------------------------------------------------------------------
1995 -- 4262811 - Generate the Accrual Reversal lines
1996 -------------------------------------------------------------------------------------------
1997 BEGIN
1998 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
1999 (g_array_event(p_event_id).array_value_num('header_index'));
2000 IF l_acc_rev_flag IS NULL THEN
2001 l_acc_rev_flag := 'N';
2002 END IF;
2003 EXCEPTION
2004 WHEN OTHERS THEN
2005 l_acc_rev_flag := 'N';
2006 END;
2007 --
2008 IF (l_acc_rev_flag = 'Y') THEN
2009
2010 -- 4645092 ------------------------------------------------------------------------------
2011 -- To allow MPA report to determine if it should generate report process
2012 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
2013 ------------------------------------------------------------------------------------------
2014
2015 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
2016 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
2017 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
2018 -- call ADRs
2019 -- Bug 4922099
2020 --
2021 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2022 (NVL(l_actual_upg_option, 'N') = 'O') OR
2023 (NVL(l_enc_upg_option, 'N') = 'O')
2024 )
2025 THEN
2026 NULL;
2027 --
2028 --
2029
2030 l_ccid := AcctDerRule_2(
2031 p_application_id => p_application_id
2032 , p_ae_header_id => l_ae_header_id
2033 , p_source_6 => p_source_6
2034 , x_transaction_coa_id => l_adr_transaction_coa_id
2035 , x_accounting_coa_id => l_adr_accounting_coa_id
2036 , x_value_type_code => l_adr_value_type_code
2037 , p_side => 'NA'
2038 );
2039
2040 xla_ae_lines_pkg.set_ccid(
2041 p_code_combination_id => l_ccid
2042 , p_value_type_code => l_adr_value_type_code
2043 , p_transaction_coa_id => l_adr_transaction_coa_id
2044 , p_accounting_coa_id => l_adr_accounting_coa_id
2045 , p_adr_code => 'CST_DEFAULT'
2046 , p_adr_type_code => 'S'
2047 , p_component_type => l_component_type
2048 , p_component_code => l_component_code
2049 , p_component_type_code => l_component_type_code
2050 , p_component_appl_id => l_component_appl_id
2051 , p_amb_context_code => l_amb_context_code
2052 , p_side => 'NA'
2053 );
2054
2055
2056 --
2057 --
2058 END IF;
2059
2060 --
2061 -- Update the line information that should be overwritten
2062 --
2063 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
2064 p_header_num => 1);
2065 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
2066
2067 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
2068
2069 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
2070 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
2071 END IF;
2072
2073 --
2074 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
2075 --
2076 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
2077 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
2078 ELSE
2079 ---------------------------------------------------------------------------------------------------
2080 -- 4262811a Switch Sign
2081 ---------------------------------------------------------------------------------------------------
2082 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
2083 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
2084 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2085 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
2086 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2087 -- 5132302
2088 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
2089 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2090
2091 END IF;
2092
2093 -- 4955764
2094 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2095 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
2096
2097
2098 XLA_AE_LINES_PKG.ValidateCurrentLine;
2099 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2100
2101 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2102 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
2103 ,p_balance_type_code => l_balance_type_code);
2104
2105 END IF;
2106
2107 -----------------------------------------------------------------------------------------
2108 -- 4262811 Multiperiod Accounting
2109 -----------------------------------------------------------------------------------------
2110 -- No MPA option is assigned.
2111
2112
2113 END IF;
2114 END IF;
2115 --
2116
2117 --
2118 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2119 trace
2120 (p_msg => 'END of AcctLineType_5'
2121 ,p_level => C_LEVEL_PROCEDURE
2122 ,p_module => l_log_module);
2123 END IF;
2124 --
2125 EXCEPTION
2126 WHEN xla_exceptions_pkg.application_exception THEN
2127 RAISE;
2128 WHEN OTHERS THEN
2129 xla_exceptions_pkg.raise_message
2130 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_5');
2131 END AcctLineType_5;
2132 --
2133
2134 ---------------------------------------
2135 --
2136 -- PRIVATE FUNCTION
2137 -- AcctLineType_6
2138 --
2139 ---------------------------------------
2140 PROCEDURE AcctLineType_6 (
2141 p_application_id IN NUMBER
2142 ,p_event_id IN NUMBER
2143 ,p_calculate_acctd_flag IN VARCHAR2
2144 ,p_calculate_g_l_flag IN VARCHAR2
2145 ,p_actual_flag IN OUT VARCHAR2
2146 ,p_balance_type_code OUT VARCHAR2
2147 ,p_gain_or_loss_ref OUT VARCHAR2
2148
2149 --Cost Management Default Account
2150 , p_source_6 IN NUMBER
2151 --Accounting Line Type
2152 , p_source_7 IN NUMBER
2153 --DISTRIBUTION_IDENTIFIER
2154 , p_source_8 IN NUMBER
2155 --Distribution Type
2156 , p_source_9 IN VARCHAR2
2157 , p_source_9_meaning IN VARCHAR2
2158 --Entered Amount
2159 , p_source_10 IN NUMBER
2160 --Entered Currency Code
2161 , p_source_11 IN VARCHAR2
2162 --Currency Conversion Date
2163 , p_source_12 IN DATE
2164 --Currency Conversion Rate
2165 , p_source_13 IN NUMBER
2166 --Currency Conversion Type
2167 , p_source_14 IN VARCHAR2
2168 --Accounted Amount
2169 , p_source_15 IN NUMBER
2170 )
2171 IS
2172
2173 l_component_type VARCHAR2(80);
2174 l_component_code VARCHAR2(30);
2175 l_component_type_code VARCHAR2(1);
2176 l_component_appl_id INTEGER;
2177 l_amb_context_code VARCHAR2(30);
2178 l_entity_code VARCHAR2(30);
2179 l_event_class_code VARCHAR2(30);
2180 l_ae_header_id NUMBER;
2181 l_event_type_code VARCHAR2(30);
2182 l_line_definition_code VARCHAR2(30);
2183 l_line_definition_owner_code VARCHAR2(1);
2184 --
2185 -- adr variables
2186 l_segment VARCHAR2(30);
2187 l_ccid NUMBER;
2188 l_adr_transaction_coa_id NUMBER;
2189 l_adr_accounting_coa_id NUMBER;
2190 l_adr_flexfield_segment_code VARCHAR2(30);
2191 l_adr_flex_value_set_id NUMBER;
2192 l_adr_value_type_code VARCHAR2(30);
2193 l_adr_value_combination_id NUMBER;
2194 l_adr_value_segment_code VARCHAR2(30);
2195
2196 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
2197 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
2198 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
2199 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
2200
2201 -- 4262811 Variables ------------------------------------------------------------------------------------------
2202 l_entered_amt_idx NUMBER;
2203 l_accted_amt_idx NUMBER;
2204 l_acc_rev_flag VARCHAR2(1);
2205 l_accrual_line_num NUMBER;
2206 l_tmp_amt NUMBER;
2207 l_acc_rev_natural_side_code VARCHAR2(1);
2208
2209 l_num_entries NUMBER;
2210 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
2211 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
2212 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
2213 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
2214 l_recog_line_1 NUMBER;
2215 l_recog_line_2 NUMBER;
2216
2217 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
2218 l_bflow_applied_to_amt NUMBER; -- 5132302
2219 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
2220
2221 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
2222
2223 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
2224 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
2225
2226 ---------------------------------------------------------------------------------------------------------------
2227
2228
2229 --
2230 -- bulk performance
2231 --
2232 l_balance_type_code VARCHAR2(1);
2233 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
2234 l_log_module VARCHAR2(240);
2235
2236 --
2237 -- Upgrade strategy
2238 --
2239 l_actual_upg_option VARCHAR2(1);
2240 l_enc_upg_option VARCHAR2(1);
2241
2242 --
2243 BEGIN
2244 --
2245 IF g_log_enabled THEN
2246 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_6';
2247 END IF;
2248 --
2249 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2250
2251 trace
2252 (p_msg => 'BEGIN of AcctLineType_6'
2253 ,p_level => C_LEVEL_PROCEDURE
2254 ,p_module => l_log_module);
2255
2256 END IF;
2257 --
2258 l_component_type := 'AMB_JLT';
2259 l_component_code := 'INTERNAL_ORDER_ENC_RELIEVE';
2260 l_component_type_code := 'S';
2261 l_component_appl_id := 707;
2262 l_amb_context_code := 'DEFAULT';
2263 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
2264 l_event_class_code := 'INT_ORDER_TO_EXP';
2265 l_event_type_code := 'INT_ORDER_ISSUE_NO_TP';
2266 l_line_definition_owner_code := 'S';
2267 l_line_definition_code := 'ENC_INT_ORD_ISSUE_EXP_NTP';
2268 --
2269 l_balance_type_code := 'E';
2270 l_segment := NULL;
2271 l_ccid := NULL;
2272 l_adr_transaction_coa_id := NULL;
2273 l_adr_accounting_coa_id := NULL;
2274 l_adr_flexfield_segment_code := NULL;
2275 l_adr_flex_value_set_id := NULL;
2276 l_adr_value_type_code := NULL;
2277 l_adr_value_combination_id := NULL;
2278 l_adr_value_segment_code := NULL;
2279
2280 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
2281 l_bflow_class_code := ''; -- 4219869 Business Flow
2282 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
2283 l_budgetary_control_flag := 'Y';
2284
2285 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2286 l_bflow_applied_to_amt := NULL; -- 5132302
2287 l_entered_amt_idx := NULL; -- 4262811
2288 l_accted_amt_idx := NULL; -- 4262811
2289 l_acc_rev_flag := NULL; -- 4262811
2290 l_accrual_line_num := NULL; -- 4262811
2291 l_tmp_amt := NULL; -- 4262811
2292 --
2293
2294 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
2295 l_balance_type_code <> 'B' THEN
2296 IF NVL(p_source_7,9E125) = 15
2297 THEN
2298
2299 --
2300 XLA_AE_LINES_PKG.SetNewLine;
2301
2302 p_balance_type_code := l_balance_type_code;
2303 -- set the flag so later we will know whether the gain loss line needs to be created
2304
2305 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
2306 p_actual_flag :='A';
2307 END IF;
2308
2309 --
2310 -- bulk performance
2311 --
2312 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
2313 p_header_num => 0); -- 4262811
2314 --
2315 -- set accounting line options
2316 --
2317 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
2318 p_natural_side_code => 'D'
2319 , p_gain_or_loss_flag => 'N'
2320 , p_gl_transfer_mode_code => 'S'
2321 , p_acct_entry_type_code => 'E'
2322 , p_switch_side_flag => 'Y'
2323 , p_merge_duplicate_code => 'N'
2324 );
2325 --
2326 l_acc_rev_natural_side_code := 'C'; -- 4262811
2327 --
2328 --
2329 -- set accounting line type info
2330 --
2331 xla_ae_lines_pkg.SetAcctLineType
2332 (p_component_type => l_component_type
2333 ,p_event_type_code => l_event_type_code
2334 ,p_line_definition_owner_code => l_line_definition_owner_code
2335 ,p_line_definition_code => l_line_definition_code
2336 ,p_accounting_line_code => l_component_code
2337 ,p_accounting_line_type_code => l_component_type_code
2338 ,p_accounting_line_appl_id => l_component_appl_id
2339 ,p_amb_context_code => l_amb_context_code
2340 ,p_entity_code => l_entity_code
2341 ,p_event_class_code => l_event_class_code);
2342 --
2343 -- set accounting class
2344 --
2345 xla_ae_lines_pkg.SetAcctClass(
2346 p_accounting_class_code => 'REQUISITION'
2347 , p_ae_header_id => l_ae_header_id
2348 );
2349
2350 --
2351 -- set rounding class
2352 --
2353 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
2354 'REQUISITION';
2355
2356 --
2357 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
2358 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
2359 --
2360 -- bulk performance
2361 --
2362 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
2363
2364 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
2365 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
2366
2367 -- 4955764
2368 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2369 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
2370
2371 -- 4458381 Public Sector Enh
2372 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
2373 --
2374 -- set accounting attributes for the line type
2375 --
2376 l_entered_amt_idx := 3;
2377 l_accted_amt_idx := 8;
2378 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2379 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
2380 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_8);
2381 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
2382 l_rec_acct_attrs.array_char_value(2) := p_source_9;
2383 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
2384 l_rec_acct_attrs.array_num_value(3) := p_source_10;
2385 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
2386 l_rec_acct_attrs.array_char_value(4) := p_source_11;
2387 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
2388 l_rec_acct_attrs.array_date_value(5) := p_source_12;
2389 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
2390 l_rec_acct_attrs.array_num_value(6) := p_source_13;
2391 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
2392 l_rec_acct_attrs.array_char_value(7) := p_source_14;
2393 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
2394 l_rec_acct_attrs.array_num_value(8) := p_source_15;
2395
2396 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
2397 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
2398
2399 ---------------------------------------------------------------------------------------------------------------
2400 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
2401 ---------------------------------------------------------------------------------------------------------------
2402 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
2403
2404 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2405 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2406
2407 IF xla_accounting_cache_pkg.GetValueChar
2408 (p_source_code => 'LEDGER_CATEGORY_CODE'
2409 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
2410 AND l_bflow_method_code = 'PRIOR_ENTRY'
2411 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
2412 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
2413 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
2414 )
2415 THEN
2416 xla_ae_lines_pkg.BflowUpgEntry
2417 (p_business_method_code => l_bflow_method_code
2418 ,p_business_class_code => l_bflow_class_code
2419 ,p_balance_type => l_balance_type_code);
2420 ELSE
2421 NULL;
2422 -- No business flow processing for business flow method of NONE.
2423 END IF;
2424
2425 --
2426 -- call analytical criteria
2427 --
2428
2429 --
2430 -- call description
2431 --
2432 -- No description or it is inherited.
2433 --
2434 -- call ADRs
2435 -- Bug 4922099
2436 --
2437 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2438 (NVL(l_actual_upg_option, 'N') = 'O') OR
2439 (NVL(l_enc_upg_option, 'N') = 'O')
2440 )
2441 THEN
2442 NULL;
2443 --
2444 --
2445
2446 l_ccid := AcctDerRule_2(
2447 p_application_id => p_application_id
2448 , p_ae_header_id => l_ae_header_id
2449 , p_source_6 => p_source_6
2450 , x_transaction_coa_id => l_adr_transaction_coa_id
2451 , x_accounting_coa_id => l_adr_accounting_coa_id
2452 , x_value_type_code => l_adr_value_type_code
2453 , p_side => 'NA'
2454 );
2455
2456 xla_ae_lines_pkg.set_ccid(
2457 p_code_combination_id => l_ccid
2458 , p_value_type_code => l_adr_value_type_code
2459 , p_transaction_coa_id => l_adr_transaction_coa_id
2460 , p_accounting_coa_id => l_adr_accounting_coa_id
2461 , p_adr_code => 'CST_DEFAULT'
2462 , p_adr_type_code => 'S'
2463 , p_component_type => l_component_type
2464 , p_component_code => l_component_code
2465 , p_component_type_code => l_component_type_code
2466 , p_component_appl_id => l_component_appl_id
2467 , p_amb_context_code => l_amb_context_code
2468 , p_side => 'NA'
2469 );
2470
2471
2472 --
2473 --
2474 END IF;
2475 --
2476 -- Bug 4922099
2477 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
2478 (NVL(l_enc_upg_option, 'N') = 'O')
2479 ) AND
2480 (l_bflow_method_code = 'PRIOR_ENTRY')
2481 )
2482 THEN
2483 IF
2484 --
2485 1 = 2
2486 --
2487 THEN
2488 xla_accounting_err_pkg.build_message
2489 (p_appli_s_name => 'XLA'
2490 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2491 ,p_token_1 => 'LINE_NUMBER'
2492 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
2493 ,p_token_2 => 'LINE_TYPE_NAME'
2494 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
2495 l_component_type
2496 ,l_component_code
2497 ,l_component_type_code
2498 ,l_component_appl_id
2499 ,l_amb_context_code
2500 ,l_entity_code
2501 ,l_event_class_code
2502 )
2503 ,p_token_3 => 'OWNER'
2504 ,p_value_3 => xla_lookups_pkg.get_meaning(
2505 p_lookup_type => 'XLA_OWNER_TYPE'
2506 ,p_lookup_code => l_component_type_code
2507 )
2508 ,p_token_4 => 'PRODUCT_NAME'
2509 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
2510 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2511 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2512 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2513 ,p_ae_header_id => NULL
2514 );
2515
2516 IF (C_LEVEL_ERROR>= g_log_level) THEN
2517 trace
2518 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2519 ,p_level => C_LEVEL_ERROR
2520 ,p_module => l_log_module);
2521 END IF;
2522 END IF;
2523 END IF;
2524 --
2525 --
2526 ------------------------------------------------------------------------------------------------
2527 -- 4219869 Business Flow
2528 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
2529 -- Prior Entry. Currently, the following code is always generated.
2530 ------------------------------------------------------------------------------------------------
2531 XLA_AE_LINES_PKG.ValidateCurrentLine;
2532
2533 ------------------------------------------------------------------------------------
2534 -- 4219869 Business Flow
2535 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
2536 ------------------------------------------------------------------------------------
2537 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2538
2539 ----------------------------------------------------------------------------------
2540 -- 4219869 Business Flow
2541 -- Update journal entry status -- Need to generate this within IF <condition>
2542 ----------------------------------------------------------------------------------
2543 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2544 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
2545 ,p_balance_type_code => l_balance_type_code
2546 );
2547
2548 -------------------------------------------------------------------------------------------
2549 -- 4262811 - Generate the Accrual Reversal lines
2550 -------------------------------------------------------------------------------------------
2551 BEGIN
2552 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
2553 (g_array_event(p_event_id).array_value_num('header_index'));
2554 IF l_acc_rev_flag IS NULL THEN
2555 l_acc_rev_flag := 'N';
2556 END IF;
2557 EXCEPTION
2558 WHEN OTHERS THEN
2559 l_acc_rev_flag := 'N';
2560 END;
2561 --
2562 IF (l_acc_rev_flag = 'Y') THEN
2563
2564 -- 4645092 ------------------------------------------------------------------------------
2565 -- To allow MPA report to determine if it should generate report process
2566 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
2567 ------------------------------------------------------------------------------------------
2568
2569 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
2570 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
2571 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
2572 -- call ADRs
2573 -- Bug 4922099
2574 --
2575 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2576 (NVL(l_actual_upg_option, 'N') = 'O') OR
2577 (NVL(l_enc_upg_option, 'N') = 'O')
2578 )
2579 THEN
2580 NULL;
2581 --
2582 --
2583
2584 l_ccid := AcctDerRule_2(
2585 p_application_id => p_application_id
2586 , p_ae_header_id => l_ae_header_id
2587 , p_source_6 => p_source_6
2588 , x_transaction_coa_id => l_adr_transaction_coa_id
2589 , x_accounting_coa_id => l_adr_accounting_coa_id
2590 , x_value_type_code => l_adr_value_type_code
2591 , p_side => 'NA'
2592 );
2593
2594 xla_ae_lines_pkg.set_ccid(
2595 p_code_combination_id => l_ccid
2596 , p_value_type_code => l_adr_value_type_code
2597 , p_transaction_coa_id => l_adr_transaction_coa_id
2598 , p_accounting_coa_id => l_adr_accounting_coa_id
2599 , p_adr_code => 'CST_DEFAULT'
2600 , p_adr_type_code => 'S'
2601 , p_component_type => l_component_type
2602 , p_component_code => l_component_code
2603 , p_component_type_code => l_component_type_code
2604 , p_component_appl_id => l_component_appl_id
2605 , p_amb_context_code => l_amb_context_code
2606 , p_side => 'NA'
2607 );
2608
2609
2610 --
2611 --
2612 END IF;
2613
2614 --
2615 -- Update the line information that should be overwritten
2616 --
2617 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
2618 p_header_num => 1);
2619 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
2620
2621 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
2622
2623 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
2624 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
2625 END IF;
2626
2627 --
2628 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
2629 --
2630 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
2631 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
2632 ELSE
2633 ---------------------------------------------------------------------------------------------------
2634 -- 4262811a Switch Sign
2635 ---------------------------------------------------------------------------------------------------
2636 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
2637 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
2638 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2639 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
2640 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2641 -- 5132302
2642 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
2643 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2644
2645 END IF;
2646
2647 -- 4955764
2648 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2649 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
2650
2651
2652 XLA_AE_LINES_PKG.ValidateCurrentLine;
2653 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2654
2655 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2656 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
2657 ,p_balance_type_code => l_balance_type_code);
2658
2659 END IF;
2660
2661 -----------------------------------------------------------------------------------------
2662 -- 4262811 Multiperiod Accounting
2663 -----------------------------------------------------------------------------------------
2664 -- No MPA option is assigned.
2665
2666
2667 END IF;
2668 END IF;
2669 --
2670
2671 --
2672 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2673 trace
2674 (p_msg => 'END of AcctLineType_6'
2675 ,p_level => C_LEVEL_PROCEDURE
2676 ,p_module => l_log_module);
2677 END IF;
2678 --
2679 EXCEPTION
2680 WHEN xla_exceptions_pkg.application_exception THEN
2681 RAISE;
2682 WHEN OTHERS THEN
2683 xla_exceptions_pkg.raise_message
2684 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_6');
2685 END AcctLineType_6;
2686 --
2687
2688 ---------------------------------------
2689 --
2690 -- PRIVATE FUNCTION
2691 -- AcctLineType_7
2692 --
2693 ---------------------------------------
2694 PROCEDURE AcctLineType_7 (
2695 p_application_id IN NUMBER
2696 ,p_event_id IN NUMBER
2697 ,p_calculate_acctd_flag IN VARCHAR2
2698 ,p_calculate_g_l_flag IN VARCHAR2
2699 ,p_actual_flag IN OUT VARCHAR2
2700 ,p_balance_type_code OUT VARCHAR2
2701 ,p_gain_or_loss_ref OUT VARCHAR2
2702
2703 --DISTRIBUTION_IDENTIFIER
2704 , p_source_8 IN NUMBER
2705 --Distribution Type
2706 , p_source_9 IN VARCHAR2
2707 , p_source_9_meaning IN VARCHAR2
2708 --Entered Currency Code
2709 , p_source_11 IN VARCHAR2
2710 --Purchasing Encumbrance Flag
2711 , p_source_16 IN VARCHAR2
2712 --Organization Encumbrance Reversal Indicator
2713 , p_source_17 IN VARCHAR2
2714 --Applied to Application ID
2715 , p_source_19 IN NUMBER
2716 --Applied to Distribution Link Type
2717 , p_source_20 IN VARCHAR2
2718 --Applied to Entity Code
2719 , p_source_21 IN VARCHAR2
2720 --TXN_PO_DISTRIBUTION_ID
2721 , p_source_22 IN NUMBER
2722 --Applied To Purchase Document Identifier
2723 , p_source_23 IN NUMBER
2724 --PO Budget Account
2725 , p_source_24 IN NUMBER
2726 --Encumbrance Reversal Amount Entered
2727 , p_source_25 IN NUMBER
2728 --Transaction Encumbrance Reversal Amount
2729 , p_source_26 IN NUMBER
2730 --Costing Encumbrance Upgrade Option
2731 , p_source_27 IN VARCHAR2
2732 --Purchasing Encumbrance Type Identifier
2733 , p_source_28 IN NUMBER
2734 )
2735 IS
2736
2737 l_component_type VARCHAR2(80);
2738 l_component_code VARCHAR2(30);
2739 l_component_type_code VARCHAR2(1);
2740 l_component_appl_id INTEGER;
2741 l_amb_context_code VARCHAR2(30);
2742 l_entity_code VARCHAR2(30);
2743 l_event_class_code VARCHAR2(30);
2744 l_ae_header_id NUMBER;
2745 l_event_type_code VARCHAR2(30);
2746 l_line_definition_code VARCHAR2(30);
2747 l_line_definition_owner_code VARCHAR2(1);
2748 --
2749 -- adr variables
2750 l_segment VARCHAR2(30);
2751 l_ccid NUMBER;
2752 l_adr_transaction_coa_id NUMBER;
2753 l_adr_accounting_coa_id NUMBER;
2754 l_adr_flexfield_segment_code VARCHAR2(30);
2755 l_adr_flex_value_set_id NUMBER;
2756 l_adr_value_type_code VARCHAR2(30);
2757 l_adr_value_combination_id NUMBER;
2758 l_adr_value_segment_code VARCHAR2(30);
2759
2760 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
2761 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
2762 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
2763 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
2764
2765 -- 4262811 Variables ------------------------------------------------------------------------------------------
2766 l_entered_amt_idx NUMBER;
2767 l_accted_amt_idx NUMBER;
2768 l_acc_rev_flag VARCHAR2(1);
2769 l_accrual_line_num NUMBER;
2770 l_tmp_amt NUMBER;
2771 l_acc_rev_natural_side_code VARCHAR2(1);
2772
2773 l_num_entries NUMBER;
2774 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
2775 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
2776 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
2777 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
2778 l_recog_line_1 NUMBER;
2779 l_recog_line_2 NUMBER;
2780
2781 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
2782 l_bflow_applied_to_amt NUMBER; -- 5132302
2783 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
2784
2785 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
2786
2787 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
2788 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
2789
2790 ---------------------------------------------------------------------------------------------------------------
2791
2792
2793 --
2794 -- bulk performance
2795 --
2796 l_balance_type_code VARCHAR2(1);
2797 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
2798 l_log_module VARCHAR2(240);
2799
2800 --
2801 -- Upgrade strategy
2802 --
2803 l_actual_upg_option VARCHAR2(1);
2804 l_enc_upg_option VARCHAR2(1);
2805
2806 --
2807 BEGIN
2808 --
2809 IF g_log_enabled THEN
2810 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_7';
2811 END IF;
2812 --
2813 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2814
2815 trace
2816 (p_msg => 'BEGIN of AcctLineType_7'
2817 ,p_level => C_LEVEL_PROCEDURE
2818 ,p_module => l_log_module);
2819
2820 END IF;
2821 --
2822 l_component_type := 'AMB_JLT';
2823 l_component_code := 'REINSTATE_PO_ENC_ON_RFI';
2824 l_component_type_code := 'S';
2825 l_component_appl_id := 707;
2826 l_amb_context_code := 'DEFAULT';
2827 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
2828 l_event_class_code := 'PURCHASE_ORDER';
2829 l_event_type_code := 'LOG_PO_DEL_INV';
2830 l_line_definition_owner_code := 'S';
2831 l_line_definition_code := 'ENC_PO_DEL_INV_LOG_DEL';
2832 --
2833 l_balance_type_code := 'E';
2834 l_segment := NULL;
2835 l_ccid := NULL;
2836 l_adr_transaction_coa_id := NULL;
2837 l_adr_accounting_coa_id := NULL;
2838 l_adr_flexfield_segment_code := NULL;
2839 l_adr_flex_value_set_id := NULL;
2840 l_adr_value_type_code := NULL;
2841 l_adr_value_combination_id := NULL;
2842 l_adr_value_segment_code := NULL;
2843
2844 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
2845 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
2846 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
2847 l_budgetary_control_flag := 'Y';
2848
2849 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2850 l_bflow_applied_to_amt := NULL; -- 5132302
2851 l_entered_amt_idx := NULL; -- 4262811
2852 l_accted_amt_idx := NULL; -- 4262811
2853 l_acc_rev_flag := NULL; -- 4262811
2854 l_accrual_line_num := NULL; -- 4262811
2855 l_tmp_amt := NULL; -- 4262811
2856 --
2857
2858 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
2859 l_balance_type_code <> 'B' THEN
2860 IF NVL(p_source_16,'
2861 ') = 'Y' AND
2862 NVL(p_source_17,'
2863 ') = 'Y' AND
2864 NVL(
2865 xla_ae_sources_pkg.GetSystemSourceChar(
2866 p_source_code => 'XLA_EVENT_TYPE_CODE'
2867 , p_source_type_code => 'Y'
2868 , p_source_application_id => 602
2869 ),'
2870 ') = 'RET_RI_INV'
2871 THEN
2872
2873 --
2874 XLA_AE_LINES_PKG.SetNewLine;
2875
2876 p_balance_type_code := l_balance_type_code;
2877 -- set the flag so later we will know whether the gain loss line needs to be created
2878
2879 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
2880 p_actual_flag :='A';
2881 END IF;
2882
2883 --
2884 -- bulk performance
2885 --
2886 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
2887 p_header_num => 0); -- 4262811
2888 --
2889 -- set accounting line options
2890 --
2891 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
2892 p_natural_side_code => 'D'
2893 , p_gain_or_loss_flag => 'N'
2894 , p_gl_transfer_mode_code => 'S'
2895 , p_acct_entry_type_code => 'E'
2896 , p_switch_side_flag => 'N'
2897 , p_merge_duplicate_code => 'N'
2898 );
2899 --
2900 l_acc_rev_natural_side_code := 'C'; -- 4262811
2901 --
2902 --
2903 -- set accounting line type info
2904 --
2905 xla_ae_lines_pkg.SetAcctLineType
2906 (p_component_type => l_component_type
2907 ,p_event_type_code => l_event_type_code
2908 ,p_line_definition_owner_code => l_line_definition_owner_code
2909 ,p_line_definition_code => l_line_definition_code
2910 ,p_accounting_line_code => l_component_code
2911 ,p_accounting_line_type_code => l_component_type_code
2912 ,p_accounting_line_appl_id => l_component_appl_id
2913 ,p_amb_context_code => l_amb_context_code
2914 ,p_entity_code => l_entity_code
2915 ,p_event_class_code => l_event_class_code);
2916 --
2917 -- set accounting class
2918 --
2919 xla_ae_lines_pkg.SetAcctClass(
2920 p_accounting_class_code => 'PURCHASE_ORDER'
2921 , p_ae_header_id => l_ae_header_id
2922 );
2923
2924 --
2925 -- set rounding class
2926 --
2927 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
2928 'PURCHASE_ORDER';
2929
2930 --
2931 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
2932 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
2933 --
2934 -- bulk performance
2935 --
2936 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
2937
2938 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
2939 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
2940
2941 -- 4955764
2942 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2943 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
2944
2945 -- 4458381 Public Sector Enh
2946
2947 --
2948 -- set accounting attributes for the line type
2949 --
2950 l_entered_amt_idx := 17;
2951 l_accted_amt_idx := 19;
2952 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2953 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
2954 l_rec_acct_attrs.array_num_value(1) := p_source_19;
2955 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
2956 l_rec_acct_attrs.array_char_value(2) := p_source_20;
2957 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
2958 l_rec_acct_attrs.array_char_value(3) := p_source_21;
2959 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
2960 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_22);
2961 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
2962 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
2963 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
2964 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
2965 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
2966 l_rec_acct_attrs.array_char_value(7) := p_source_9;
2967 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
2968 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
2969 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
2970 l_rec_acct_attrs.array_num_value(9) := p_source_25;
2971 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
2972 l_rec_acct_attrs.array_char_value(10) := p_source_11;
2973 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
2974 l_rec_acct_attrs.array_num_value(11) := p_source_26;
2975 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
2976 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
2977 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
2978 l_rec_acct_attrs.array_num_value(13) := p_source_25;
2979 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
2980 l_rec_acct_attrs.array_char_value(14) := p_source_11;
2981 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
2982 l_rec_acct_attrs.array_num_value(15) := p_source_26;
2983 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
2984 l_rec_acct_attrs.array_char_value(16) := p_source_27;
2985 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
2986 l_rec_acct_attrs.array_num_value(17) := p_source_25;
2987 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
2988 l_rec_acct_attrs.array_char_value(18) := p_source_11;
2989 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
2990 l_rec_acct_attrs.array_num_value(19) := p_source_26;
2991 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
2992 l_rec_acct_attrs.array_num_value(20) := p_source_28;
2993 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
2994 l_rec_acct_attrs.array_num_value(21) := p_source_28;
2995
2996 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
2997 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
2998
2999 ---------------------------------------------------------------------------------------------------------------
3000 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
3001 ---------------------------------------------------------------------------------------------------------------
3002 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
3003
3004 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3005 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3006
3007 IF xla_accounting_cache_pkg.GetValueChar
3008 (p_source_code => 'LEDGER_CATEGORY_CODE'
3009 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
3010 AND l_bflow_method_code = 'PRIOR_ENTRY'
3011 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
3012 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
3013 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
3014 )
3015 THEN
3016 xla_ae_lines_pkg.BflowUpgEntry
3017 (p_business_method_code => l_bflow_method_code
3018 ,p_business_class_code => l_bflow_class_code
3019 ,p_balance_type => l_balance_type_code);
3020 ELSE
3021 NULL;
3022 XLA_AE_LINES_PKG.business_flow_validation(
3023 p_business_method_code => l_bflow_method_code
3024 ,p_business_class_code => l_bflow_class_code
3025 ,p_inherit_description_flag => l_inherit_desc_flag);
3026 END IF;
3027
3028 --
3029 -- call analytical criteria
3030 --
3031 -- Inherited Analytical Criteria for business flow method of Prior Entry.
3032 --
3033 -- call description
3034 --
3035 -- No description or it is inherited.
3036 --
3037 -- call ADRs
3038 -- Bug 4922099
3039 --
3040 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3041 (NVL(l_actual_upg_option, 'N') = 'O') OR
3042 (NVL(l_enc_upg_option, 'N') = 'O')
3043 )
3044 THEN
3045 NULL;
3046 --
3047 --
3048
3049 --
3050 --
3051 END IF;
3052 --
3053 -- Bug 4922099
3054 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
3055 (NVL(l_enc_upg_option, 'N') = 'O')
3056 ) AND
3057 (l_bflow_method_code = 'PRIOR_ENTRY')
3058 )
3059 THEN
3060 IF
3061 --
3062 1 = 1
3063 --
3064 THEN
3065 xla_accounting_err_pkg.build_message
3066 (p_appli_s_name => 'XLA'
3067 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3068 ,p_token_1 => 'LINE_NUMBER'
3069 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
3070 ,p_token_2 => 'LINE_TYPE_NAME'
3071 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
3072 l_component_type
3073 ,l_component_code
3074 ,l_component_type_code
3075 ,l_component_appl_id
3076 ,l_amb_context_code
3077 ,l_entity_code
3078 ,l_event_class_code
3079 )
3080 ,p_token_3 => 'OWNER'
3081 ,p_value_3 => xla_lookups_pkg.get_meaning(
3082 p_lookup_type => 'XLA_OWNER_TYPE'
3083 ,p_lookup_code => l_component_type_code
3084 )
3085 ,p_token_4 => 'PRODUCT_NAME'
3086 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
3087 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
3088 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
3089 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
3090 ,p_ae_header_id => NULL
3091 );
3092
3093 IF (C_LEVEL_ERROR>= g_log_level) THEN
3094 trace
3095 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3096 ,p_level => C_LEVEL_ERROR
3097 ,p_module => l_log_module);
3098 END IF;
3099 END IF;
3100 END IF;
3101 --
3102 --
3103 ------------------------------------------------------------------------------------------------
3104 -- 4219869 Business Flow
3105 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
3106 -- Prior Entry. Currently, the following code is always generated.
3107 ------------------------------------------------------------------------------------------------
3108 -- No ValidateCurrentLine for business flow method of Prior Entry
3109
3110 ------------------------------------------------------------------------------------
3111 -- 4219869 Business Flow
3112 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
3113 ------------------------------------------------------------------------------------
3114 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3115
3116 ----------------------------------------------------------------------------------
3117 -- 4219869 Business Flow
3118 -- Update journal entry status -- Need to generate this within IF <condition>
3119 ----------------------------------------------------------------------------------
3120 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3121 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
3122 ,p_balance_type_code => l_balance_type_code
3123 );
3124
3125 -------------------------------------------------------------------------------------------
3126 -- 4262811 - Generate the Accrual Reversal lines
3127 -------------------------------------------------------------------------------------------
3128 BEGIN
3129 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
3130 (g_array_event(p_event_id).array_value_num('header_index'));
3131 IF l_acc_rev_flag IS NULL THEN
3132 l_acc_rev_flag := 'N';
3133 END IF;
3134 EXCEPTION
3135 WHEN OTHERS THEN
3136 l_acc_rev_flag := 'N';
3137 END;
3138 --
3139 IF (l_acc_rev_flag = 'Y') THEN
3140
3141 -- 4645092 ------------------------------------------------------------------------------
3142 -- To allow MPA report to determine if it should generate report process
3143 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3144 ------------------------------------------------------------------------------------------
3145
3146 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3147 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3148 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
3149 -- call ADRs
3150 -- Bug 4922099
3151 --
3152 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3153 (NVL(l_actual_upg_option, 'N') = 'O') OR
3154 (NVL(l_enc_upg_option, 'N') = 'O')
3155 )
3156 THEN
3157 NULL;
3158 --
3159 --
3160
3161 --
3162 --
3163 END IF;
3164
3165 --
3166 -- Update the line information that should be overwritten
3167 --
3168 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3169 p_header_num => 1);
3170 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3171
3172 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3173
3174 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3175 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3176 END IF;
3177
3178 --
3179 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3180 --
3181 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3182 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3183 ELSE
3184 ---------------------------------------------------------------------------------------------------
3185 -- 4262811a Switch Sign
3186 ---------------------------------------------------------------------------------------------------
3187 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3188 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3189 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3190 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3191 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3192 -- 5132302
3193 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3194 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3195
3196 END IF;
3197
3198 -- 4955764
3199 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3200 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3201
3202
3203 XLA_AE_LINES_PKG.ValidateCurrentLine;
3204 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3205
3206 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3207 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3208 ,p_balance_type_code => l_balance_type_code);
3209
3210 END IF;
3211
3212 -----------------------------------------------------------------------------------------
3213 -- 4262811 Multiperiod Accounting
3214 -----------------------------------------------------------------------------------------
3215 -- No MPA option is assigned.
3216
3217
3218 END IF;
3219 END IF;
3220 --
3221
3222 --
3223 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3224 trace
3225 (p_msg => 'END of AcctLineType_7'
3226 ,p_level => C_LEVEL_PROCEDURE
3227 ,p_module => l_log_module);
3228 END IF;
3229 --
3230 EXCEPTION
3231 WHEN xla_exceptions_pkg.application_exception THEN
3232 RAISE;
3233 WHEN OTHERS THEN
3234 xla_exceptions_pkg.raise_message
3235 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_7');
3236 END AcctLineType_7;
3237 --
3238
3239 ---------------------------------------
3240 --
3241 -- PRIVATE FUNCTION
3242 -- AcctLineType_8
3243 --
3244 ---------------------------------------
3245 PROCEDURE AcctLineType_8 (
3246 p_application_id IN NUMBER
3247 ,p_event_id IN NUMBER
3248 ,p_calculate_acctd_flag IN VARCHAR2
3249 ,p_calculate_g_l_flag IN VARCHAR2
3250 ,p_actual_flag IN OUT VARCHAR2
3251 ,p_balance_type_code OUT VARCHAR2
3252 ,p_gain_or_loss_ref OUT VARCHAR2
3253
3254 --DISTRIBUTION_IDENTIFIER
3255 , p_source_8 IN NUMBER
3256 --Distribution Type
3257 , p_source_9 IN VARCHAR2
3258 , p_source_9_meaning IN VARCHAR2
3259 --Entered Currency Code
3260 , p_source_11 IN VARCHAR2
3261 --Purchasing Encumbrance Flag
3262 , p_source_16 IN VARCHAR2
3263 --Organization Encumbrance Reversal Indicator
3264 , p_source_17 IN VARCHAR2
3265 --Applied to Application ID
3266 , p_source_19 IN NUMBER
3267 --Applied to Distribution Link Type
3268 , p_source_20 IN VARCHAR2
3269 --Applied to Entity Code
3270 , p_source_21 IN VARCHAR2
3271 --TXN_PO_DISTRIBUTION_ID
3272 , p_source_22 IN NUMBER
3273 --Applied To Purchase Document Identifier
3274 , p_source_23 IN NUMBER
3275 --PO Budget Account
3276 , p_source_24 IN NUMBER
3277 --Encumbrance Reversal Amount Entered
3278 , p_source_25 IN NUMBER
3279 --Transaction Encumbrance Reversal Amount
3280 , p_source_26 IN NUMBER
3281 --Costing Encumbrance Upgrade Option
3282 , p_source_27 IN VARCHAR2
3283 --Purchasing Encumbrance Type Identifier
3284 , p_source_28 IN NUMBER
3285 )
3286 IS
3287
3288 l_component_type VARCHAR2(80);
3289 l_component_code VARCHAR2(30);
3290 l_component_type_code VARCHAR2(1);
3291 l_component_appl_id INTEGER;
3292 l_amb_context_code VARCHAR2(30);
3293 l_entity_code VARCHAR2(30);
3294 l_event_class_code VARCHAR2(30);
3295 l_ae_header_id NUMBER;
3296 l_event_type_code VARCHAR2(30);
3297 l_line_definition_code VARCHAR2(30);
3298 l_line_definition_owner_code VARCHAR2(1);
3299 --
3300 -- adr variables
3301 l_segment VARCHAR2(30);
3302 l_ccid NUMBER;
3303 l_adr_transaction_coa_id NUMBER;
3304 l_adr_accounting_coa_id NUMBER;
3305 l_adr_flexfield_segment_code VARCHAR2(30);
3306 l_adr_flex_value_set_id NUMBER;
3307 l_adr_value_type_code VARCHAR2(30);
3308 l_adr_value_combination_id NUMBER;
3309 l_adr_value_segment_code VARCHAR2(30);
3310
3311 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3312 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3313 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3314 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3315
3316 -- 4262811 Variables ------------------------------------------------------------------------------------------
3317 l_entered_amt_idx NUMBER;
3318 l_accted_amt_idx NUMBER;
3319 l_acc_rev_flag VARCHAR2(1);
3320 l_accrual_line_num NUMBER;
3321 l_tmp_amt NUMBER;
3322 l_acc_rev_natural_side_code VARCHAR2(1);
3323
3324 l_num_entries NUMBER;
3325 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3326 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3327 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3328 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3329 l_recog_line_1 NUMBER;
3330 l_recog_line_2 NUMBER;
3331
3332 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3333 l_bflow_applied_to_amt NUMBER; -- 5132302
3334 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3335
3336 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3337
3338 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3339 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3340
3341 ---------------------------------------------------------------------------------------------------------------
3342
3343
3344 --
3345 -- bulk performance
3346 --
3347 l_balance_type_code VARCHAR2(1);
3348 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3349 l_log_module VARCHAR2(240);
3350
3351 --
3352 -- Upgrade strategy
3353 --
3354 l_actual_upg_option VARCHAR2(1);
3355 l_enc_upg_option VARCHAR2(1);
3356
3357 --
3358 BEGIN
3359 --
3360 IF g_log_enabled THEN
3361 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_8';
3362 END IF;
3363 --
3364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3365
3366 trace
3367 (p_msg => 'BEGIN of AcctLineType_8'
3368 ,p_level => C_LEVEL_PROCEDURE
3369 ,p_module => l_log_module);
3370
3371 END IF;
3372 --
3373 l_component_type := 'AMB_JLT';
3374 l_component_code := 'REINSTATE_PO_ENC_ON_RFI';
3375 l_component_type_code := 'S';
3376 l_component_appl_id := 707;
3377 l_amb_context_code := 'DEFAULT';
3378 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
3379 l_event_class_code := 'PURCHASE_ORDER';
3380 l_event_type_code := 'PO_DEL_ADJ';
3381 l_line_definition_owner_code := 'S';
3382 l_line_definition_code := 'ENC_PO_DEL_INV_DEL_ADJ';
3383 --
3384 l_balance_type_code := 'E';
3385 l_segment := NULL;
3386 l_ccid := NULL;
3387 l_adr_transaction_coa_id := NULL;
3388 l_adr_accounting_coa_id := NULL;
3389 l_adr_flexfield_segment_code := NULL;
3390 l_adr_flex_value_set_id := NULL;
3391 l_adr_value_type_code := NULL;
3392 l_adr_value_combination_id := NULL;
3393 l_adr_value_segment_code := NULL;
3394
3395 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
3396 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
3397 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
3398 l_budgetary_control_flag := 'Y';
3399
3400 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3401 l_bflow_applied_to_amt := NULL; -- 5132302
3402 l_entered_amt_idx := NULL; -- 4262811
3403 l_accted_amt_idx := NULL; -- 4262811
3404 l_acc_rev_flag := NULL; -- 4262811
3405 l_accrual_line_num := NULL; -- 4262811
3406 l_tmp_amt := NULL; -- 4262811
3407 --
3408
3409 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3410 l_balance_type_code <> 'B' THEN
3411 IF NVL(p_source_16,'
3412 ') = 'Y' AND
3413 NVL(p_source_17,'
3414 ') = 'Y' AND
3415 NVL(
3416 xla_ae_sources_pkg.GetSystemSourceChar(
3417 p_source_code => 'XLA_EVENT_TYPE_CODE'
3418 , p_source_type_code => 'Y'
3419 , p_source_application_id => 602
3420 ),'
3421 ') = 'RET_RI_INV'
3422 THEN
3423
3424 --
3425 XLA_AE_LINES_PKG.SetNewLine;
3426
3427 p_balance_type_code := l_balance_type_code;
3428 -- set the flag so later we will know whether the gain loss line needs to be created
3429
3430 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
3431 p_actual_flag :='A';
3432 END IF;
3433
3434 --
3435 -- bulk performance
3436 --
3437 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3438 p_header_num => 0); -- 4262811
3439 --
3440 -- set accounting line options
3441 --
3442 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3443 p_natural_side_code => 'D'
3444 , p_gain_or_loss_flag => 'N'
3445 , p_gl_transfer_mode_code => 'S'
3446 , p_acct_entry_type_code => 'E'
3447 , p_switch_side_flag => 'N'
3448 , p_merge_duplicate_code => 'N'
3449 );
3450 --
3451 l_acc_rev_natural_side_code := 'C'; -- 4262811
3452 --
3453 --
3454 -- set accounting line type info
3455 --
3456 xla_ae_lines_pkg.SetAcctLineType
3457 (p_component_type => l_component_type
3458 ,p_event_type_code => l_event_type_code
3459 ,p_line_definition_owner_code => l_line_definition_owner_code
3460 ,p_line_definition_code => l_line_definition_code
3461 ,p_accounting_line_code => l_component_code
3462 ,p_accounting_line_type_code => l_component_type_code
3463 ,p_accounting_line_appl_id => l_component_appl_id
3464 ,p_amb_context_code => l_amb_context_code
3465 ,p_entity_code => l_entity_code
3466 ,p_event_class_code => l_event_class_code);
3467 --
3468 -- set accounting class
3469 --
3470 xla_ae_lines_pkg.SetAcctClass(
3471 p_accounting_class_code => 'PURCHASE_ORDER'
3472 , p_ae_header_id => l_ae_header_id
3473 );
3474
3475 --
3476 -- set rounding class
3477 --
3478 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3479 'PURCHASE_ORDER';
3480
3481 --
3482 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3483 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3484 --
3485 -- bulk performance
3486 --
3487 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3488
3489 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3490 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3491
3492 -- 4955764
3493 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3494 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
3495
3496 -- 4458381 Public Sector Enh
3497
3498 --
3499 -- set accounting attributes for the line type
3500 --
3501 l_entered_amt_idx := 17;
3502 l_accted_amt_idx := 19;
3503 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3504 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
3505 l_rec_acct_attrs.array_num_value(1) := p_source_19;
3506 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
3507 l_rec_acct_attrs.array_char_value(2) := p_source_20;
3508 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
3509 l_rec_acct_attrs.array_char_value(3) := p_source_21;
3510 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
3511 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_22);
3512 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
3513 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
3514 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
3515 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
3516 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
3517 l_rec_acct_attrs.array_char_value(7) := p_source_9;
3518 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
3519 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
3520 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
3521 l_rec_acct_attrs.array_num_value(9) := p_source_25;
3522 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
3523 l_rec_acct_attrs.array_char_value(10) := p_source_11;
3524 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
3525 l_rec_acct_attrs.array_num_value(11) := p_source_26;
3526 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
3527 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
3528 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
3529 l_rec_acct_attrs.array_num_value(13) := p_source_25;
3530 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
3531 l_rec_acct_attrs.array_char_value(14) := p_source_11;
3532 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
3533 l_rec_acct_attrs.array_num_value(15) := p_source_26;
3534 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
3535 l_rec_acct_attrs.array_char_value(16) := p_source_27;
3536 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
3537 l_rec_acct_attrs.array_num_value(17) := p_source_25;
3538 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
3539 l_rec_acct_attrs.array_char_value(18) := p_source_11;
3540 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
3541 l_rec_acct_attrs.array_num_value(19) := p_source_26;
3542 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
3543 l_rec_acct_attrs.array_num_value(20) := p_source_28;
3544 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
3545 l_rec_acct_attrs.array_num_value(21) := p_source_28;
3546
3547 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
3548 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
3549
3550 ---------------------------------------------------------------------------------------------------------------
3551 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
3552 ---------------------------------------------------------------------------------------------------------------
3553 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
3554
3555 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3556 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3557
3558 IF xla_accounting_cache_pkg.GetValueChar
3559 (p_source_code => 'LEDGER_CATEGORY_CODE'
3560 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
3561 AND l_bflow_method_code = 'PRIOR_ENTRY'
3562 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
3563 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
3564 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
3565 )
3566 THEN
3567 xla_ae_lines_pkg.BflowUpgEntry
3568 (p_business_method_code => l_bflow_method_code
3569 ,p_business_class_code => l_bflow_class_code
3570 ,p_balance_type => l_balance_type_code);
3571 ELSE
3572 NULL;
3573 XLA_AE_LINES_PKG.business_flow_validation(
3574 p_business_method_code => l_bflow_method_code
3575 ,p_business_class_code => l_bflow_class_code
3576 ,p_inherit_description_flag => l_inherit_desc_flag);
3577 END IF;
3578
3579 --
3580 -- call analytical criteria
3581 --
3582 -- Inherited Analytical Criteria for business flow method of Prior Entry.
3583 --
3584 -- call description
3585 --
3586 -- No description or it is inherited.
3587 --
3588 -- call ADRs
3589 -- Bug 4922099
3590 --
3591 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3592 (NVL(l_actual_upg_option, 'N') = 'O') OR
3593 (NVL(l_enc_upg_option, 'N') = 'O')
3594 )
3595 THEN
3596 NULL;
3597 --
3598 --
3599
3600 --
3601 --
3602 END IF;
3603 --
3604 -- Bug 4922099
3605 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
3606 (NVL(l_enc_upg_option, 'N') = 'O')
3607 ) AND
3608 (l_bflow_method_code = 'PRIOR_ENTRY')
3609 )
3610 THEN
3611 IF
3612 --
3613 1 = 1
3614 --
3615 THEN
3616 xla_accounting_err_pkg.build_message
3617 (p_appli_s_name => 'XLA'
3618 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3619 ,p_token_1 => 'LINE_NUMBER'
3620 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
3621 ,p_token_2 => 'LINE_TYPE_NAME'
3622 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
3623 l_component_type
3624 ,l_component_code
3625 ,l_component_type_code
3626 ,l_component_appl_id
3627 ,l_amb_context_code
3628 ,l_entity_code
3629 ,l_event_class_code
3630 )
3631 ,p_token_3 => 'OWNER'
3632 ,p_value_3 => xla_lookups_pkg.get_meaning(
3633 p_lookup_type => 'XLA_OWNER_TYPE'
3634 ,p_lookup_code => l_component_type_code
3635 )
3636 ,p_token_4 => 'PRODUCT_NAME'
3637 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
3638 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
3639 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
3640 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
3641 ,p_ae_header_id => NULL
3642 );
3643
3644 IF (C_LEVEL_ERROR>= g_log_level) THEN
3645 trace
3646 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3647 ,p_level => C_LEVEL_ERROR
3648 ,p_module => l_log_module);
3649 END IF;
3650 END IF;
3651 END IF;
3652 --
3653 --
3654 ------------------------------------------------------------------------------------------------
3655 -- 4219869 Business Flow
3656 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
3657 -- Prior Entry. Currently, the following code is always generated.
3658 ------------------------------------------------------------------------------------------------
3659 -- No ValidateCurrentLine for business flow method of Prior Entry
3660
3661 ------------------------------------------------------------------------------------
3662 -- 4219869 Business Flow
3663 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
3664 ------------------------------------------------------------------------------------
3665 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3666
3667 ----------------------------------------------------------------------------------
3668 -- 4219869 Business Flow
3669 -- Update journal entry status -- Need to generate this within IF <condition>
3670 ----------------------------------------------------------------------------------
3671 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3672 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
3673 ,p_balance_type_code => l_balance_type_code
3674 );
3675
3676 -------------------------------------------------------------------------------------------
3677 -- 4262811 - Generate the Accrual Reversal lines
3678 -------------------------------------------------------------------------------------------
3679 BEGIN
3680 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
3681 (g_array_event(p_event_id).array_value_num('header_index'));
3682 IF l_acc_rev_flag IS NULL THEN
3683 l_acc_rev_flag := 'N';
3684 END IF;
3685 EXCEPTION
3686 WHEN OTHERS THEN
3687 l_acc_rev_flag := 'N';
3688 END;
3689 --
3690 IF (l_acc_rev_flag = 'Y') THEN
3691
3692 -- 4645092 ------------------------------------------------------------------------------
3693 -- To allow MPA report to determine if it should generate report process
3694 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3695 ------------------------------------------------------------------------------------------
3696
3697 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3698 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3699 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
3700 -- call ADRs
3701 -- Bug 4922099
3702 --
3703 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3704 (NVL(l_actual_upg_option, 'N') = 'O') OR
3705 (NVL(l_enc_upg_option, 'N') = 'O')
3706 )
3707 THEN
3708 NULL;
3709 --
3710 --
3711
3712 --
3713 --
3714 END IF;
3715
3716 --
3717 -- Update the line information that should be overwritten
3718 --
3719 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3720 p_header_num => 1);
3721 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3722
3723 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3724
3725 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3726 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3727 END IF;
3728
3729 --
3730 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3731 --
3732 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3733 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3734 ELSE
3735 ---------------------------------------------------------------------------------------------------
3736 -- 4262811a Switch Sign
3737 ---------------------------------------------------------------------------------------------------
3738 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3739 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3740 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3741 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3742 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3743 -- 5132302
3744 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3745 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3746
3747 END IF;
3748
3749 -- 4955764
3750 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3751 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3752
3753
3754 XLA_AE_LINES_PKG.ValidateCurrentLine;
3755 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3756
3757 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3758 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3759 ,p_balance_type_code => l_balance_type_code);
3760
3761 END IF;
3762
3763 -----------------------------------------------------------------------------------------
3764 -- 4262811 Multiperiod Accounting
3765 -----------------------------------------------------------------------------------------
3766 -- No MPA option is assigned.
3767
3768
3769 END IF;
3770 END IF;
3771 --
3772
3773 --
3774 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3775 trace
3776 (p_msg => 'END of AcctLineType_8'
3777 ,p_level => C_LEVEL_PROCEDURE
3778 ,p_module => l_log_module);
3779 END IF;
3780 --
3781 EXCEPTION
3782 WHEN xla_exceptions_pkg.application_exception THEN
3783 RAISE;
3784 WHEN OTHERS THEN
3785 xla_exceptions_pkg.raise_message
3786 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_8');
3787 END AcctLineType_8;
3788 --
3789
3790 ---------------------------------------
3791 --
3792 -- PRIVATE FUNCTION
3793 -- AcctLineType_9
3794 --
3795 ---------------------------------------
3796 PROCEDURE AcctLineType_9 (
3797 p_application_id IN NUMBER
3798 ,p_event_id IN NUMBER
3799 ,p_calculate_acctd_flag IN VARCHAR2
3800 ,p_calculate_g_l_flag IN VARCHAR2
3801 ,p_actual_flag IN OUT VARCHAR2
3802 ,p_balance_type_code OUT VARCHAR2
3803 ,p_gain_or_loss_ref OUT VARCHAR2
3804
3805 --DISTRIBUTION_IDENTIFIER
3806 , p_source_8 IN NUMBER
3807 --Distribution Type
3808 , p_source_9 IN VARCHAR2
3809 , p_source_9_meaning IN VARCHAR2
3810 --Entered Currency Code
3811 , p_source_11 IN VARCHAR2
3812 --Purchasing Encumbrance Flag
3813 , p_source_16 IN VARCHAR2
3814 --Organization Encumbrance Reversal Indicator
3815 , p_source_17 IN VARCHAR2
3816 --Applied to Application ID
3817 , p_source_19 IN NUMBER
3818 --Applied to Distribution Link Type
3819 , p_source_20 IN VARCHAR2
3820 --Applied to Entity Code
3821 , p_source_21 IN VARCHAR2
3822 --TXN_PO_DISTRIBUTION_ID
3823 , p_source_22 IN NUMBER
3824 --Applied To Purchase Document Identifier
3825 , p_source_23 IN NUMBER
3826 --PO Budget Account
3827 , p_source_24 IN NUMBER
3828 --Encumbrance Reversal Amount Entered
3829 , p_source_25 IN NUMBER
3830 --Transaction Encumbrance Reversal Amount
3831 , p_source_26 IN NUMBER
3832 --Costing Encumbrance Upgrade Option
3833 , p_source_27 IN VARCHAR2
3834 --Purchasing Encumbrance Type Identifier
3835 , p_source_28 IN NUMBER
3836 )
3837 IS
3838
3839 l_component_type VARCHAR2(80);
3840 l_component_code VARCHAR2(30);
3841 l_component_type_code VARCHAR2(1);
3842 l_component_appl_id INTEGER;
3843 l_amb_context_code VARCHAR2(30);
3844 l_entity_code VARCHAR2(30);
3845 l_event_class_code VARCHAR2(30);
3846 l_ae_header_id NUMBER;
3847 l_event_type_code VARCHAR2(30);
3848 l_line_definition_code VARCHAR2(30);
3849 l_line_definition_owner_code VARCHAR2(1);
3850 --
3851 -- adr variables
3852 l_segment VARCHAR2(30);
3853 l_ccid NUMBER;
3854 l_adr_transaction_coa_id NUMBER;
3855 l_adr_accounting_coa_id NUMBER;
3856 l_adr_flexfield_segment_code VARCHAR2(30);
3857 l_adr_flex_value_set_id NUMBER;
3858 l_adr_value_type_code VARCHAR2(30);
3859 l_adr_value_combination_id NUMBER;
3860 l_adr_value_segment_code VARCHAR2(30);
3861
3862 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3863 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3864 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3865 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3866
3867 -- 4262811 Variables ------------------------------------------------------------------------------------------
3868 l_entered_amt_idx NUMBER;
3869 l_accted_amt_idx NUMBER;
3870 l_acc_rev_flag VARCHAR2(1);
3871 l_accrual_line_num NUMBER;
3872 l_tmp_amt NUMBER;
3873 l_acc_rev_natural_side_code VARCHAR2(1);
3874
3875 l_num_entries NUMBER;
3876 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3877 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3878 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3879 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3880 l_recog_line_1 NUMBER;
3881 l_recog_line_2 NUMBER;
3882
3883 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3884 l_bflow_applied_to_amt NUMBER; -- 5132302
3885 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3886
3887 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3888
3889 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3890 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3891
3892 ---------------------------------------------------------------------------------------------------------------
3893
3894
3895 --
3896 -- bulk performance
3897 --
3898 l_balance_type_code VARCHAR2(1);
3899 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3900 l_log_module VARCHAR2(240);
3901
3902 --
3903 -- Upgrade strategy
3904 --
3905 l_actual_upg_option VARCHAR2(1);
3906 l_enc_upg_option VARCHAR2(1);
3907
3908 --
3909 BEGIN
3910 --
3911 IF g_log_enabled THEN
3912 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_9';
3913 END IF;
3914 --
3915 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3916
3917 trace
3918 (p_msg => 'BEGIN of AcctLineType_9'
3919 ,p_level => C_LEVEL_PROCEDURE
3920 ,p_module => l_log_module);
3921
3922 END IF;
3923 --
3924 l_component_type := 'AMB_JLT';
3925 l_component_code := 'REINSTATE_PO_ENC_ON_RFI';
3926 l_component_type_code := 'S';
3927 l_component_appl_id := 707;
3928 l_amb_context_code := 'DEFAULT';
3929 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
3930 l_event_class_code := 'PURCHASE_ORDER';
3931 l_event_type_code := 'LOG_PO_DEL_ADJ';
3932 l_line_definition_owner_code := 'S';
3933 l_line_definition_code := 'ENC_PO_DEL_INV_LOG_DEL_ADJ';
3934 --
3935 l_balance_type_code := 'E';
3936 l_segment := NULL;
3937 l_ccid := NULL;
3938 l_adr_transaction_coa_id := NULL;
3939 l_adr_accounting_coa_id := NULL;
3940 l_adr_flexfield_segment_code := NULL;
3941 l_adr_flex_value_set_id := NULL;
3942 l_adr_value_type_code := NULL;
3943 l_adr_value_combination_id := NULL;
3944 l_adr_value_segment_code := NULL;
3945
3946 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
3947 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
3948 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
3949 l_budgetary_control_flag := 'Y';
3950
3951 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3952 l_bflow_applied_to_amt := NULL; -- 5132302
3953 l_entered_amt_idx := NULL; -- 4262811
3954 l_accted_amt_idx := NULL; -- 4262811
3955 l_acc_rev_flag := NULL; -- 4262811
3956 l_accrual_line_num := NULL; -- 4262811
3957 l_tmp_amt := NULL; -- 4262811
3958 --
3959
3960 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3961 l_balance_type_code <> 'B' THEN
3962 IF NVL(p_source_16,'
3963 ') = 'Y' AND
3964 NVL(p_source_17,'
3965 ') = 'Y' AND
3966 NVL(
3967 xla_ae_sources_pkg.GetSystemSourceChar(
3968 p_source_code => 'XLA_EVENT_TYPE_CODE'
3969 , p_source_type_code => 'Y'
3970 , p_source_application_id => 602
3971 ),'
3972 ') = 'RET_RI_INV'
3973 THEN
3974
3975 --
3976 XLA_AE_LINES_PKG.SetNewLine;
3977
3978 p_balance_type_code := l_balance_type_code;
3979 -- set the flag so later we will know whether the gain loss line needs to be created
3980
3981 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
3982 p_actual_flag :='A';
3983 END IF;
3984
3985 --
3986 -- bulk performance
3987 --
3988 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3989 p_header_num => 0); -- 4262811
3990 --
3991 -- set accounting line options
3992 --
3993 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3994 p_natural_side_code => 'D'
3995 , p_gain_or_loss_flag => 'N'
3996 , p_gl_transfer_mode_code => 'S'
3997 , p_acct_entry_type_code => 'E'
3998 , p_switch_side_flag => 'N'
3999 , p_merge_duplicate_code => 'N'
4000 );
4001 --
4002 l_acc_rev_natural_side_code := 'C'; -- 4262811
4003 --
4004 --
4005 -- set accounting line type info
4006 --
4007 xla_ae_lines_pkg.SetAcctLineType
4008 (p_component_type => l_component_type
4009 ,p_event_type_code => l_event_type_code
4010 ,p_line_definition_owner_code => l_line_definition_owner_code
4011 ,p_line_definition_code => l_line_definition_code
4012 ,p_accounting_line_code => l_component_code
4013 ,p_accounting_line_type_code => l_component_type_code
4014 ,p_accounting_line_appl_id => l_component_appl_id
4015 ,p_amb_context_code => l_amb_context_code
4016 ,p_entity_code => l_entity_code
4017 ,p_event_class_code => l_event_class_code);
4018 --
4019 -- set accounting class
4020 --
4021 xla_ae_lines_pkg.SetAcctClass(
4022 p_accounting_class_code => 'PURCHASE_ORDER'
4023 , p_ae_header_id => l_ae_header_id
4024 );
4025
4026 --
4027 -- set rounding class
4028 --
4029 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
4030 'PURCHASE_ORDER';
4031
4032 --
4033 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
4034 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
4035 --
4036 -- bulk performance
4037 --
4038 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
4039
4040 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
4041 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
4042
4043 -- 4955764
4044 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4045 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4046
4047 -- 4458381 Public Sector Enh
4048
4049 --
4050 -- set accounting attributes for the line type
4051 --
4052 l_entered_amt_idx := 17;
4053 l_accted_amt_idx := 19;
4054 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4055 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
4056 l_rec_acct_attrs.array_num_value(1) := p_source_19;
4057 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
4058 l_rec_acct_attrs.array_char_value(2) := p_source_20;
4059 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
4060 l_rec_acct_attrs.array_char_value(3) := p_source_21;
4061 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
4062 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_22);
4063 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
4064 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
4065 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
4066 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
4067 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
4068 l_rec_acct_attrs.array_char_value(7) := p_source_9;
4069 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
4070 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
4071 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
4072 l_rec_acct_attrs.array_num_value(9) := p_source_25;
4073 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
4074 l_rec_acct_attrs.array_char_value(10) := p_source_11;
4075 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
4076 l_rec_acct_attrs.array_num_value(11) := p_source_26;
4077 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
4078 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
4079 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
4080 l_rec_acct_attrs.array_num_value(13) := p_source_25;
4081 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
4082 l_rec_acct_attrs.array_char_value(14) := p_source_11;
4083 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
4084 l_rec_acct_attrs.array_num_value(15) := p_source_26;
4085 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
4086 l_rec_acct_attrs.array_char_value(16) := p_source_27;
4087 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
4088 l_rec_acct_attrs.array_num_value(17) := p_source_25;
4089 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
4090 l_rec_acct_attrs.array_char_value(18) := p_source_11;
4091 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
4092 l_rec_acct_attrs.array_num_value(19) := p_source_26;
4093 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
4094 l_rec_acct_attrs.array_num_value(20) := p_source_28;
4095 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
4096 l_rec_acct_attrs.array_num_value(21) := p_source_28;
4097
4098 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4099 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4100
4101 ---------------------------------------------------------------------------------------------------------------
4102 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4103 ---------------------------------------------------------------------------------------------------------------
4104 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4105
4106 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4107 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4108
4109 IF xla_accounting_cache_pkg.GetValueChar
4110 (p_source_code => 'LEDGER_CATEGORY_CODE'
4111 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4112 AND l_bflow_method_code = 'PRIOR_ENTRY'
4113 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4114 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4115 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4116 )
4117 THEN
4118 xla_ae_lines_pkg.BflowUpgEntry
4119 (p_business_method_code => l_bflow_method_code
4120 ,p_business_class_code => l_bflow_class_code
4121 ,p_balance_type => l_balance_type_code);
4122 ELSE
4123 NULL;
4124 XLA_AE_LINES_PKG.business_flow_validation(
4125 p_business_method_code => l_bflow_method_code
4126 ,p_business_class_code => l_bflow_class_code
4127 ,p_inherit_description_flag => l_inherit_desc_flag);
4128 END IF;
4129
4130 --
4131 -- call analytical criteria
4132 --
4133 -- Inherited Analytical Criteria for business flow method of Prior Entry.
4134 --
4135 -- call description
4136 --
4137 -- No description or it is inherited.
4138 --
4139 -- call ADRs
4140 -- Bug 4922099
4141 --
4142 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4143 (NVL(l_actual_upg_option, 'N') = 'O') OR
4144 (NVL(l_enc_upg_option, 'N') = 'O')
4145 )
4146 THEN
4147 NULL;
4148 --
4149 --
4150
4151 --
4152 --
4153 END IF;
4154 --
4155 -- Bug 4922099
4156 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4157 (NVL(l_enc_upg_option, 'N') = 'O')
4158 ) AND
4159 (l_bflow_method_code = 'PRIOR_ENTRY')
4160 )
4161 THEN
4162 IF
4163 --
4164 1 = 1
4165 --
4166 THEN
4167 xla_accounting_err_pkg.build_message
4168 (p_appli_s_name => 'XLA'
4169 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4170 ,p_token_1 => 'LINE_NUMBER'
4171 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4172 ,p_token_2 => 'LINE_TYPE_NAME'
4173 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4174 l_component_type
4175 ,l_component_code
4176 ,l_component_type_code
4177 ,l_component_appl_id
4178 ,l_amb_context_code
4179 ,l_entity_code
4180 ,l_event_class_code
4181 )
4182 ,p_token_3 => 'OWNER'
4183 ,p_value_3 => xla_lookups_pkg.get_meaning(
4184 p_lookup_type => 'XLA_OWNER_TYPE'
4185 ,p_lookup_code => l_component_type_code
4186 )
4187 ,p_token_4 => 'PRODUCT_NAME'
4188 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4189 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4190 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4191 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4192 ,p_ae_header_id => NULL
4193 );
4194
4195 IF (C_LEVEL_ERROR>= g_log_level) THEN
4196 trace
4197 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4198 ,p_level => C_LEVEL_ERROR
4199 ,p_module => l_log_module);
4200 END IF;
4201 END IF;
4202 END IF;
4203 --
4204 --
4205 ------------------------------------------------------------------------------------------------
4206 -- 4219869 Business Flow
4207 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4208 -- Prior Entry. Currently, the following code is always generated.
4209 ------------------------------------------------------------------------------------------------
4210 -- No ValidateCurrentLine for business flow method of Prior Entry
4211
4212 ------------------------------------------------------------------------------------
4213 -- 4219869 Business Flow
4214 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4215 ------------------------------------------------------------------------------------
4216 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4217
4218 ----------------------------------------------------------------------------------
4219 -- 4219869 Business Flow
4220 -- Update journal entry status -- Need to generate this within IF <condition>
4221 ----------------------------------------------------------------------------------
4222 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4223 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4224 ,p_balance_type_code => l_balance_type_code
4225 );
4226
4227 -------------------------------------------------------------------------------------------
4228 -- 4262811 - Generate the Accrual Reversal lines
4229 -------------------------------------------------------------------------------------------
4230 BEGIN
4231 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4232 (g_array_event(p_event_id).array_value_num('header_index'));
4233 IF l_acc_rev_flag IS NULL THEN
4234 l_acc_rev_flag := 'N';
4235 END IF;
4236 EXCEPTION
4237 WHEN OTHERS THEN
4238 l_acc_rev_flag := 'N';
4239 END;
4240 --
4241 IF (l_acc_rev_flag = 'Y') THEN
4242
4243 -- 4645092 ------------------------------------------------------------------------------
4244 -- To allow MPA report to determine if it should generate report process
4245 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4246 ------------------------------------------------------------------------------------------
4247
4248 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4249 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4250 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
4251 -- call ADRs
4252 -- Bug 4922099
4253 --
4254 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4255 (NVL(l_actual_upg_option, 'N') = 'O') OR
4256 (NVL(l_enc_upg_option, 'N') = 'O')
4257 )
4258 THEN
4259 NULL;
4260 --
4261 --
4262
4263 --
4264 --
4265 END IF;
4266
4267 --
4268 -- Update the line information that should be overwritten
4269 --
4270 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4271 p_header_num => 1);
4272 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4273
4274 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4275
4276 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4277 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4278 END IF;
4279
4280 --
4281 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4282 --
4283 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4284 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4285 ELSE
4286 ---------------------------------------------------------------------------------------------------
4287 -- 4262811a Switch Sign
4288 ---------------------------------------------------------------------------------------------------
4289 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4290 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4291 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4292 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4293 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4294 -- 5132302
4295 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4296 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4297
4298 END IF;
4299
4300 -- 4955764
4301 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4302 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4303
4304
4305 XLA_AE_LINES_PKG.ValidateCurrentLine;
4306 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4307
4308 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4309 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4310 ,p_balance_type_code => l_balance_type_code);
4311
4312 END IF;
4313
4314 -----------------------------------------------------------------------------------------
4315 -- 4262811 Multiperiod Accounting
4316 -----------------------------------------------------------------------------------------
4317 -- No MPA option is assigned.
4318
4319
4320 END IF;
4321 END IF;
4322 --
4323
4324 --
4325 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4326 trace
4327 (p_msg => 'END of AcctLineType_9'
4328 ,p_level => C_LEVEL_PROCEDURE
4329 ,p_module => l_log_module);
4330 END IF;
4331 --
4332 EXCEPTION
4333 WHEN xla_exceptions_pkg.application_exception THEN
4334 RAISE;
4335 WHEN OTHERS THEN
4336 xla_exceptions_pkg.raise_message
4337 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_9');
4338 END AcctLineType_9;
4339 --
4340
4341 ---------------------------------------
4342 --
4343 -- PRIVATE FUNCTION
4344 -- AcctLineType_10
4345 --
4346 ---------------------------------------
4347 PROCEDURE AcctLineType_10 (
4348 p_application_id IN NUMBER
4349 ,p_event_id IN NUMBER
4350 ,p_calculate_acctd_flag IN VARCHAR2
4351 ,p_calculate_g_l_flag IN VARCHAR2
4352 ,p_actual_flag IN OUT VARCHAR2
4353 ,p_balance_type_code OUT VARCHAR2
4354 ,p_gain_or_loss_ref OUT VARCHAR2
4355
4356 --DISTRIBUTION_IDENTIFIER
4357 , p_source_8 IN NUMBER
4358 --Distribution Type
4359 , p_source_9 IN VARCHAR2
4360 , p_source_9_meaning IN VARCHAR2
4361 --Entered Currency Code
4362 , p_source_11 IN VARCHAR2
4363 --Purchasing Encumbrance Flag
4364 , p_source_16 IN VARCHAR2
4365 --Organization Encumbrance Reversal Indicator
4366 , p_source_17 IN VARCHAR2
4367 --Applied to Application ID
4368 , p_source_19 IN NUMBER
4369 --Applied to Distribution Link Type
4370 , p_source_20 IN VARCHAR2
4371 --Applied to Entity Code
4372 , p_source_21 IN VARCHAR2
4373 --TXN_PO_DISTRIBUTION_ID
4374 , p_source_22 IN NUMBER
4375 --Applied To Purchase Document Identifier
4376 , p_source_23 IN NUMBER
4377 --PO Budget Account
4378 , p_source_24 IN NUMBER
4379 --Encumbrance Reversal Amount Entered
4380 , p_source_25 IN NUMBER
4381 --Transaction Encumbrance Reversal Amount
4382 , p_source_26 IN NUMBER
4383 --Costing Encumbrance Upgrade Option
4384 , p_source_27 IN VARCHAR2
4385 --Purchasing Encumbrance Type Identifier
4386 , p_source_28 IN NUMBER
4387 )
4388 IS
4389
4390 l_component_type VARCHAR2(80);
4391 l_component_code VARCHAR2(30);
4392 l_component_type_code VARCHAR2(1);
4393 l_component_appl_id INTEGER;
4394 l_amb_context_code VARCHAR2(30);
4395 l_entity_code VARCHAR2(30);
4396 l_event_class_code VARCHAR2(30);
4397 l_ae_header_id NUMBER;
4398 l_event_type_code VARCHAR2(30);
4399 l_line_definition_code VARCHAR2(30);
4400 l_line_definition_owner_code VARCHAR2(1);
4401 --
4402 -- adr variables
4403 l_segment VARCHAR2(30);
4404 l_ccid NUMBER;
4405 l_adr_transaction_coa_id NUMBER;
4406 l_adr_accounting_coa_id NUMBER;
4407 l_adr_flexfield_segment_code VARCHAR2(30);
4408 l_adr_flex_value_set_id NUMBER;
4409 l_adr_value_type_code VARCHAR2(30);
4410 l_adr_value_combination_id NUMBER;
4411 l_adr_value_segment_code VARCHAR2(30);
4412
4413 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4414 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4415 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4416 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4417
4418 -- 4262811 Variables ------------------------------------------------------------------------------------------
4419 l_entered_amt_idx NUMBER;
4420 l_accted_amt_idx NUMBER;
4421 l_acc_rev_flag VARCHAR2(1);
4422 l_accrual_line_num NUMBER;
4423 l_tmp_amt NUMBER;
4424 l_acc_rev_natural_side_code VARCHAR2(1);
4425
4426 l_num_entries NUMBER;
4427 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4428 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4429 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4430 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4431 l_recog_line_1 NUMBER;
4432 l_recog_line_2 NUMBER;
4433
4434 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4435 l_bflow_applied_to_amt NUMBER; -- 5132302
4436 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4437
4438 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4439
4440 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4441 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4442
4443 ---------------------------------------------------------------------------------------------------------------
4444
4445
4446 --
4447 -- bulk performance
4448 --
4449 l_balance_type_code VARCHAR2(1);
4450 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4451 l_log_module VARCHAR2(240);
4452
4453 --
4454 -- Upgrade strategy
4455 --
4456 l_actual_upg_option VARCHAR2(1);
4457 l_enc_upg_option VARCHAR2(1);
4458
4459 --
4460 BEGIN
4461 --
4462 IF g_log_enabled THEN
4463 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_10';
4464 END IF;
4465 --
4466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4467
4468 trace
4469 (p_msg => 'BEGIN of AcctLineType_10'
4470 ,p_level => C_LEVEL_PROCEDURE
4471 ,p_module => l_log_module);
4472
4473 END IF;
4474 --
4475 l_component_type := 'AMB_JLT';
4476 l_component_code := 'REINSTATE_PO_ENC_ON_RFI';
4477 l_component_type_code := 'S';
4478 l_component_appl_id := 707;
4479 l_amb_context_code := 'DEFAULT';
4480 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
4481 l_event_class_code := 'PURCHASE_ORDER';
4482 l_event_type_code := 'RET_RI_INV';
4483 l_line_definition_owner_code := 'S';
4484 l_line_definition_code := 'ENC_PO_DEL_INV_RET_RI';
4485 --
4486 l_balance_type_code := 'E';
4487 l_segment := NULL;
4488 l_ccid := NULL;
4489 l_adr_transaction_coa_id := NULL;
4490 l_adr_accounting_coa_id := NULL;
4491 l_adr_flexfield_segment_code := NULL;
4492 l_adr_flex_value_set_id := NULL;
4493 l_adr_value_type_code := NULL;
4494 l_adr_value_combination_id := NULL;
4495 l_adr_value_segment_code := NULL;
4496
4497 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
4498 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
4499 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
4500 l_budgetary_control_flag := 'Y';
4501
4502 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4503 l_bflow_applied_to_amt := NULL; -- 5132302
4504 l_entered_amt_idx := NULL; -- 4262811
4505 l_accted_amt_idx := NULL; -- 4262811
4506 l_acc_rev_flag := NULL; -- 4262811
4507 l_accrual_line_num := NULL; -- 4262811
4508 l_tmp_amt := NULL; -- 4262811
4509 --
4510
4511 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4512 l_balance_type_code <> 'B' THEN
4513 IF NVL(p_source_16,'
4514 ') = 'Y' AND
4515 NVL(p_source_17,'
4516 ') = 'Y' AND
4517 NVL(
4518 xla_ae_sources_pkg.GetSystemSourceChar(
4519 p_source_code => 'XLA_EVENT_TYPE_CODE'
4520 , p_source_type_code => 'Y'
4521 , p_source_application_id => 602
4522 ),'
4523 ') = 'RET_RI_INV'
4524 THEN
4525
4526 --
4527 XLA_AE_LINES_PKG.SetNewLine;
4528
4529 p_balance_type_code := l_balance_type_code;
4530 -- set the flag so later we will know whether the gain loss line needs to be created
4531
4532 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
4533 p_actual_flag :='A';
4534 END IF;
4535
4536 --
4537 -- bulk performance
4538 --
4539 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4540 p_header_num => 0); -- 4262811
4541 --
4542 -- set accounting line options
4543 --
4544 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4545 p_natural_side_code => 'D'
4546 , p_gain_or_loss_flag => 'N'
4547 , p_gl_transfer_mode_code => 'S'
4548 , p_acct_entry_type_code => 'E'
4549 , p_switch_side_flag => 'N'
4550 , p_merge_duplicate_code => 'N'
4551 );
4552 --
4553 l_acc_rev_natural_side_code := 'C'; -- 4262811
4554 --
4555 --
4556 -- set accounting line type info
4557 --
4558 xla_ae_lines_pkg.SetAcctLineType
4559 (p_component_type => l_component_type
4560 ,p_event_type_code => l_event_type_code
4561 ,p_line_definition_owner_code => l_line_definition_owner_code
4562 ,p_line_definition_code => l_line_definition_code
4563 ,p_accounting_line_code => l_component_code
4564 ,p_accounting_line_type_code => l_component_type_code
4565 ,p_accounting_line_appl_id => l_component_appl_id
4566 ,p_amb_context_code => l_amb_context_code
4567 ,p_entity_code => l_entity_code
4568 ,p_event_class_code => l_event_class_code);
4569 --
4570 -- set accounting class
4571 --
4572 xla_ae_lines_pkg.SetAcctClass(
4573 p_accounting_class_code => 'PURCHASE_ORDER'
4574 , p_ae_header_id => l_ae_header_id
4575 );
4576
4577 --
4578 -- set rounding class
4579 --
4580 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
4581 'PURCHASE_ORDER';
4582
4583 --
4584 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
4585 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
4586 --
4587 -- bulk performance
4588 --
4589 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
4590
4591 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
4592 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
4593
4594 -- 4955764
4595 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4596 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4597
4598 -- 4458381 Public Sector Enh
4599
4600 --
4601 -- set accounting attributes for the line type
4602 --
4603 l_entered_amt_idx := 17;
4604 l_accted_amt_idx := 19;
4605 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4606 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
4607 l_rec_acct_attrs.array_num_value(1) := p_source_19;
4608 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
4609 l_rec_acct_attrs.array_char_value(2) := p_source_20;
4610 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
4611 l_rec_acct_attrs.array_char_value(3) := p_source_21;
4612 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
4613 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_22);
4614 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
4615 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
4616 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
4617 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
4618 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
4619 l_rec_acct_attrs.array_char_value(7) := p_source_9;
4620 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
4621 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
4622 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
4623 l_rec_acct_attrs.array_num_value(9) := p_source_25;
4624 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
4625 l_rec_acct_attrs.array_char_value(10) := p_source_11;
4626 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
4627 l_rec_acct_attrs.array_num_value(11) := p_source_26;
4628 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
4629 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
4630 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
4631 l_rec_acct_attrs.array_num_value(13) := p_source_25;
4632 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
4633 l_rec_acct_attrs.array_char_value(14) := p_source_11;
4634 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
4635 l_rec_acct_attrs.array_num_value(15) := p_source_26;
4636 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
4637 l_rec_acct_attrs.array_char_value(16) := p_source_27;
4638 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
4639 l_rec_acct_attrs.array_num_value(17) := p_source_25;
4640 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
4641 l_rec_acct_attrs.array_char_value(18) := p_source_11;
4642 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
4643 l_rec_acct_attrs.array_num_value(19) := p_source_26;
4644 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
4645 l_rec_acct_attrs.array_num_value(20) := p_source_28;
4646 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
4647 l_rec_acct_attrs.array_num_value(21) := p_source_28;
4648
4649 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4650 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4651
4652 ---------------------------------------------------------------------------------------------------------------
4653 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4654 ---------------------------------------------------------------------------------------------------------------
4655 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4656
4657 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4658 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4659
4660 IF xla_accounting_cache_pkg.GetValueChar
4661 (p_source_code => 'LEDGER_CATEGORY_CODE'
4662 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4663 AND l_bflow_method_code = 'PRIOR_ENTRY'
4664 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4665 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4666 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4667 )
4668 THEN
4669 xla_ae_lines_pkg.BflowUpgEntry
4670 (p_business_method_code => l_bflow_method_code
4671 ,p_business_class_code => l_bflow_class_code
4672 ,p_balance_type => l_balance_type_code);
4673 ELSE
4674 NULL;
4675 XLA_AE_LINES_PKG.business_flow_validation(
4676 p_business_method_code => l_bflow_method_code
4677 ,p_business_class_code => l_bflow_class_code
4678 ,p_inherit_description_flag => l_inherit_desc_flag);
4679 END IF;
4680
4681 --
4682 -- call analytical criteria
4683 --
4684 -- Inherited Analytical Criteria for business flow method of Prior Entry.
4685 --
4686 -- call description
4687 --
4688 -- No description or it is inherited.
4689 --
4690 -- call ADRs
4691 -- Bug 4922099
4692 --
4693 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4694 (NVL(l_actual_upg_option, 'N') = 'O') OR
4695 (NVL(l_enc_upg_option, 'N') = 'O')
4696 )
4697 THEN
4698 NULL;
4699 --
4700 --
4701
4702 --
4703 --
4704 END IF;
4705 --
4706 -- Bug 4922099
4707 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4708 (NVL(l_enc_upg_option, 'N') = 'O')
4709 ) AND
4710 (l_bflow_method_code = 'PRIOR_ENTRY')
4711 )
4712 THEN
4713 IF
4714 --
4715 1 = 1
4716 --
4717 THEN
4718 xla_accounting_err_pkg.build_message
4719 (p_appli_s_name => 'XLA'
4720 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4721 ,p_token_1 => 'LINE_NUMBER'
4722 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4723 ,p_token_2 => 'LINE_TYPE_NAME'
4724 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4725 l_component_type
4726 ,l_component_code
4727 ,l_component_type_code
4728 ,l_component_appl_id
4729 ,l_amb_context_code
4730 ,l_entity_code
4731 ,l_event_class_code
4732 )
4733 ,p_token_3 => 'OWNER'
4734 ,p_value_3 => xla_lookups_pkg.get_meaning(
4735 p_lookup_type => 'XLA_OWNER_TYPE'
4736 ,p_lookup_code => l_component_type_code
4737 )
4738 ,p_token_4 => 'PRODUCT_NAME'
4739 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4740 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4741 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4742 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4743 ,p_ae_header_id => NULL
4744 );
4745
4746 IF (C_LEVEL_ERROR>= g_log_level) THEN
4747 trace
4748 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4749 ,p_level => C_LEVEL_ERROR
4750 ,p_module => l_log_module);
4751 END IF;
4752 END IF;
4753 END IF;
4754 --
4755 --
4756 ------------------------------------------------------------------------------------------------
4757 -- 4219869 Business Flow
4758 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4759 -- Prior Entry. Currently, the following code is always generated.
4760 ------------------------------------------------------------------------------------------------
4761 -- No ValidateCurrentLine for business flow method of Prior Entry
4762
4763 ------------------------------------------------------------------------------------
4764 -- 4219869 Business Flow
4765 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4766 ------------------------------------------------------------------------------------
4767 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4768
4769 ----------------------------------------------------------------------------------
4770 -- 4219869 Business Flow
4771 -- Update journal entry status -- Need to generate this within IF <condition>
4772 ----------------------------------------------------------------------------------
4773 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4774 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4775 ,p_balance_type_code => l_balance_type_code
4776 );
4777
4778 -------------------------------------------------------------------------------------------
4779 -- 4262811 - Generate the Accrual Reversal lines
4780 -------------------------------------------------------------------------------------------
4781 BEGIN
4782 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4783 (g_array_event(p_event_id).array_value_num('header_index'));
4784 IF l_acc_rev_flag IS NULL THEN
4785 l_acc_rev_flag := 'N';
4786 END IF;
4787 EXCEPTION
4788 WHEN OTHERS THEN
4789 l_acc_rev_flag := 'N';
4790 END;
4791 --
4792 IF (l_acc_rev_flag = 'Y') THEN
4793
4794 -- 4645092 ------------------------------------------------------------------------------
4795 -- To allow MPA report to determine if it should generate report process
4796 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4797 ------------------------------------------------------------------------------------------
4798
4799 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4800 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4801 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
4802 -- call ADRs
4803 -- Bug 4922099
4804 --
4805 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4806 (NVL(l_actual_upg_option, 'N') = 'O') OR
4807 (NVL(l_enc_upg_option, 'N') = 'O')
4808 )
4809 THEN
4810 NULL;
4811 --
4812 --
4813
4814 --
4815 --
4816 END IF;
4817
4818 --
4819 -- Update the line information that should be overwritten
4820 --
4821 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4822 p_header_num => 1);
4823 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4824
4825 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4826
4827 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4828 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4829 END IF;
4830
4831 --
4832 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4833 --
4834 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4835 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4836 ELSE
4837 ---------------------------------------------------------------------------------------------------
4838 -- 4262811a Switch Sign
4839 ---------------------------------------------------------------------------------------------------
4840 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4841 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4842 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4843 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4844 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4845 -- 5132302
4846 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4847 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4848
4849 END IF;
4850
4851 -- 4955764
4852 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4853 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4854
4855
4856 XLA_AE_LINES_PKG.ValidateCurrentLine;
4857 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4858
4859 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4860 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4861 ,p_balance_type_code => l_balance_type_code);
4862
4863 END IF;
4864
4865 -----------------------------------------------------------------------------------------
4866 -- 4262811 Multiperiod Accounting
4867 -----------------------------------------------------------------------------------------
4868 -- No MPA option is assigned.
4869
4870
4871 END IF;
4872 END IF;
4873 --
4874
4875 --
4876 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4877 trace
4878 (p_msg => 'END of AcctLineType_10'
4879 ,p_level => C_LEVEL_PROCEDURE
4880 ,p_module => l_log_module);
4881 END IF;
4882 --
4883 EXCEPTION
4884 WHEN xla_exceptions_pkg.application_exception THEN
4885 RAISE;
4886 WHEN OTHERS THEN
4887 xla_exceptions_pkg.raise_message
4888 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_10');
4889 END AcctLineType_10;
4890 --
4891
4892 ---------------------------------------
4893 --
4894 -- PRIVATE FUNCTION
4895 -- AcctLineType_11
4896 --
4897 ---------------------------------------
4898 PROCEDURE AcctLineType_11 (
4899 p_application_id IN NUMBER
4900 ,p_event_id IN NUMBER
4901 ,p_calculate_acctd_flag IN VARCHAR2
4902 ,p_calculate_g_l_flag IN VARCHAR2
4903 ,p_actual_flag IN OUT VARCHAR2
4904 ,p_balance_type_code OUT VARCHAR2
4905 ,p_gain_or_loss_ref OUT VARCHAR2
4906
4907 --DISTRIBUTION_IDENTIFIER
4908 , p_source_8 IN NUMBER
4909 --Distribution Type
4910 , p_source_9 IN VARCHAR2
4911 , p_source_9_meaning IN VARCHAR2
4912 --Entered Currency Code
4913 , p_source_11 IN VARCHAR2
4914 --Purchasing Encumbrance Flag
4915 , p_source_16 IN VARCHAR2
4916 --Organization Encumbrance Reversal Indicator
4917 , p_source_17 IN VARCHAR2
4918 --Applied to Application ID
4919 , p_source_19 IN NUMBER
4920 --Applied to Distribution Link Type
4921 , p_source_20 IN VARCHAR2
4922 --Applied to Entity Code
4923 , p_source_21 IN VARCHAR2
4924 --TXN_PO_DISTRIBUTION_ID
4925 , p_source_22 IN NUMBER
4926 --Applied To Purchase Document Identifier
4927 , p_source_23 IN NUMBER
4928 --PO Budget Account
4929 , p_source_24 IN NUMBER
4930 --Encumbrance Reversal Amount Entered
4931 , p_source_25 IN NUMBER
4932 --Transaction Encumbrance Reversal Amount
4933 , p_source_26 IN NUMBER
4934 --Costing Encumbrance Upgrade Option
4935 , p_source_27 IN VARCHAR2
4936 --Purchasing Encumbrance Type Identifier
4937 , p_source_28 IN NUMBER
4938 )
4939 IS
4940
4941 l_component_type VARCHAR2(80);
4942 l_component_code VARCHAR2(30);
4943 l_component_type_code VARCHAR2(1);
4944 l_component_appl_id INTEGER;
4945 l_amb_context_code VARCHAR2(30);
4946 l_entity_code VARCHAR2(30);
4947 l_event_class_code VARCHAR2(30);
4948 l_ae_header_id NUMBER;
4949 l_event_type_code VARCHAR2(30);
4950 l_line_definition_code VARCHAR2(30);
4951 l_line_definition_owner_code VARCHAR2(1);
4952 --
4953 -- adr variables
4954 l_segment VARCHAR2(30);
4955 l_ccid NUMBER;
4956 l_adr_transaction_coa_id NUMBER;
4957 l_adr_accounting_coa_id NUMBER;
4958 l_adr_flexfield_segment_code VARCHAR2(30);
4959 l_adr_flex_value_set_id NUMBER;
4960 l_adr_value_type_code VARCHAR2(30);
4961 l_adr_value_combination_id NUMBER;
4962 l_adr_value_segment_code VARCHAR2(30);
4963
4964 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4965 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4966 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4967 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4968
4969 -- 4262811 Variables ------------------------------------------------------------------------------------------
4970 l_entered_amt_idx NUMBER;
4971 l_accted_amt_idx NUMBER;
4972 l_acc_rev_flag VARCHAR2(1);
4973 l_accrual_line_num NUMBER;
4974 l_tmp_amt NUMBER;
4975 l_acc_rev_natural_side_code VARCHAR2(1);
4976
4977 l_num_entries NUMBER;
4978 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4979 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4980 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4981 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4982 l_recog_line_1 NUMBER;
4983 l_recog_line_2 NUMBER;
4984
4985 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4986 l_bflow_applied_to_amt NUMBER; -- 5132302
4987 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4988
4989 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4990
4991 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4992 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4993
4994 ---------------------------------------------------------------------------------------------------------------
4995
4996
4997 --
4998 -- bulk performance
4999 --
5000 l_balance_type_code VARCHAR2(1);
5001 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5002 l_log_module VARCHAR2(240);
5003
5004 --
5005 -- Upgrade strategy
5006 --
5007 l_actual_upg_option VARCHAR2(1);
5008 l_enc_upg_option VARCHAR2(1);
5009
5010 --
5011 BEGIN
5012 --
5013 IF g_log_enabled THEN
5014 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_11';
5015 END IF;
5016 --
5017 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5018
5019 trace
5020 (p_msg => 'BEGIN of AcctLineType_11'
5021 ,p_level => C_LEVEL_PROCEDURE
5022 ,p_module => l_log_module);
5023
5024 END IF;
5025 --
5026 l_component_type := 'AMB_JLT';
5027 l_component_code := 'REINSTATE_PO_ENC_ON_RFI';
5028 l_component_type_code := 'S';
5029 l_component_appl_id := 707;
5030 l_amb_context_code := 'DEFAULT';
5031 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
5032 l_event_class_code := 'PURCHASE_ORDER';
5033 l_event_type_code := 'LOG_RET_RI_INV';
5034 l_line_definition_owner_code := 'S';
5035 l_line_definition_code := 'ENC_PO_DEL_INV_LOG_RET_RI';
5036 --
5037 l_balance_type_code := 'E';
5038 l_segment := NULL;
5039 l_ccid := NULL;
5040 l_adr_transaction_coa_id := NULL;
5041 l_adr_accounting_coa_id := NULL;
5042 l_adr_flexfield_segment_code := NULL;
5043 l_adr_flex_value_set_id := NULL;
5044 l_adr_value_type_code := NULL;
5045 l_adr_value_combination_id := NULL;
5046 l_adr_value_segment_code := NULL;
5047
5048 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
5049 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
5050 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
5051 l_budgetary_control_flag := 'Y';
5052
5053 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5054 l_bflow_applied_to_amt := NULL; -- 5132302
5055 l_entered_amt_idx := NULL; -- 4262811
5056 l_accted_amt_idx := NULL; -- 4262811
5057 l_acc_rev_flag := NULL; -- 4262811
5058 l_accrual_line_num := NULL; -- 4262811
5059 l_tmp_amt := NULL; -- 4262811
5060 --
5061
5062 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5063 l_balance_type_code <> 'B' THEN
5064 IF NVL(p_source_16,'
5065 ') = 'Y' AND
5066 NVL(p_source_17,'
5067 ') = 'Y' AND
5068 NVL(
5069 xla_ae_sources_pkg.GetSystemSourceChar(
5070 p_source_code => 'XLA_EVENT_TYPE_CODE'
5071 , p_source_type_code => 'Y'
5072 , p_source_application_id => 602
5073 ),'
5074 ') = 'RET_RI_INV'
5075 THEN
5076
5077 --
5078 XLA_AE_LINES_PKG.SetNewLine;
5079
5080 p_balance_type_code := l_balance_type_code;
5081 -- set the flag so later we will know whether the gain loss line needs to be created
5082
5083 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5084 p_actual_flag :='A';
5085 END IF;
5086
5087 --
5088 -- bulk performance
5089 --
5090 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5091 p_header_num => 0); -- 4262811
5092 --
5093 -- set accounting line options
5094 --
5095 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5096 p_natural_side_code => 'D'
5097 , p_gain_or_loss_flag => 'N'
5098 , p_gl_transfer_mode_code => 'S'
5099 , p_acct_entry_type_code => 'E'
5100 , p_switch_side_flag => 'N'
5101 , p_merge_duplicate_code => 'N'
5102 );
5103 --
5104 l_acc_rev_natural_side_code := 'C'; -- 4262811
5105 --
5106 --
5107 -- set accounting line type info
5108 --
5109 xla_ae_lines_pkg.SetAcctLineType
5110 (p_component_type => l_component_type
5111 ,p_event_type_code => l_event_type_code
5112 ,p_line_definition_owner_code => l_line_definition_owner_code
5113 ,p_line_definition_code => l_line_definition_code
5114 ,p_accounting_line_code => l_component_code
5115 ,p_accounting_line_type_code => l_component_type_code
5116 ,p_accounting_line_appl_id => l_component_appl_id
5117 ,p_amb_context_code => l_amb_context_code
5118 ,p_entity_code => l_entity_code
5119 ,p_event_class_code => l_event_class_code);
5120 --
5121 -- set accounting class
5122 --
5123 xla_ae_lines_pkg.SetAcctClass(
5124 p_accounting_class_code => 'PURCHASE_ORDER'
5125 , p_ae_header_id => l_ae_header_id
5126 );
5127
5128 --
5129 -- set rounding class
5130 --
5131 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5132 'PURCHASE_ORDER';
5133
5134 --
5135 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5136 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5137 --
5138 -- bulk performance
5139 --
5140 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5141
5142 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5143 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5144
5145 -- 4955764
5146 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5147 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5148
5149 -- 4458381 Public Sector Enh
5150
5151 --
5152 -- set accounting attributes for the line type
5153 --
5154 l_entered_amt_idx := 17;
5155 l_accted_amt_idx := 19;
5156 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5157 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
5158 l_rec_acct_attrs.array_num_value(1) := p_source_19;
5159 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5160 l_rec_acct_attrs.array_char_value(2) := p_source_20;
5161 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
5162 l_rec_acct_attrs.array_char_value(3) := p_source_21;
5163 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
5164 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_22);
5165 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5166 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
5167 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
5168 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
5169 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
5170 l_rec_acct_attrs.array_char_value(7) := p_source_9;
5171 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
5172 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
5173 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
5174 l_rec_acct_attrs.array_num_value(9) := p_source_25;
5175 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
5176 l_rec_acct_attrs.array_char_value(10) := p_source_11;
5177 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
5178 l_rec_acct_attrs.array_num_value(11) := p_source_26;
5179 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
5180 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
5181 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
5182 l_rec_acct_attrs.array_num_value(13) := p_source_25;
5183 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
5184 l_rec_acct_attrs.array_char_value(14) := p_source_11;
5185 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
5186 l_rec_acct_attrs.array_num_value(15) := p_source_26;
5187 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
5188 l_rec_acct_attrs.array_char_value(16) := p_source_27;
5189 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
5190 l_rec_acct_attrs.array_num_value(17) := p_source_25;
5191 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
5192 l_rec_acct_attrs.array_char_value(18) := p_source_11;
5193 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
5194 l_rec_acct_attrs.array_num_value(19) := p_source_26;
5195 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
5196 l_rec_acct_attrs.array_num_value(20) := p_source_28;
5197 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
5198 l_rec_acct_attrs.array_num_value(21) := p_source_28;
5199
5200 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5201 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5202
5203 ---------------------------------------------------------------------------------------------------------------
5204 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5205 ---------------------------------------------------------------------------------------------------------------
5206 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5207
5208 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5209 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5210
5211 IF xla_accounting_cache_pkg.GetValueChar
5212 (p_source_code => 'LEDGER_CATEGORY_CODE'
5213 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5214 AND l_bflow_method_code = 'PRIOR_ENTRY'
5215 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5216 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5217 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5218 )
5219 THEN
5220 xla_ae_lines_pkg.BflowUpgEntry
5221 (p_business_method_code => l_bflow_method_code
5222 ,p_business_class_code => l_bflow_class_code
5223 ,p_balance_type => l_balance_type_code);
5224 ELSE
5225 NULL;
5226 XLA_AE_LINES_PKG.business_flow_validation(
5227 p_business_method_code => l_bflow_method_code
5228 ,p_business_class_code => l_bflow_class_code
5229 ,p_inherit_description_flag => l_inherit_desc_flag);
5230 END IF;
5231
5232 --
5233 -- call analytical criteria
5234 --
5235 -- Inherited Analytical Criteria for business flow method of Prior Entry.
5236 --
5237 -- call description
5238 --
5239 -- No description or it is inherited.
5240 --
5241 -- call ADRs
5242 -- Bug 4922099
5243 --
5244 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5245 (NVL(l_actual_upg_option, 'N') = 'O') OR
5246 (NVL(l_enc_upg_option, 'N') = 'O')
5247 )
5248 THEN
5249 NULL;
5250 --
5251 --
5252
5253 --
5254 --
5255 END IF;
5256 --
5257 -- Bug 4922099
5258 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5259 (NVL(l_enc_upg_option, 'N') = 'O')
5260 ) AND
5261 (l_bflow_method_code = 'PRIOR_ENTRY')
5262 )
5263 THEN
5264 IF
5265 --
5266 1 = 1
5267 --
5268 THEN
5269 xla_accounting_err_pkg.build_message
5270 (p_appli_s_name => 'XLA'
5271 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5272 ,p_token_1 => 'LINE_NUMBER'
5273 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5274 ,p_token_2 => 'LINE_TYPE_NAME'
5275 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5276 l_component_type
5277 ,l_component_code
5278 ,l_component_type_code
5279 ,l_component_appl_id
5280 ,l_amb_context_code
5281 ,l_entity_code
5282 ,l_event_class_code
5283 )
5284 ,p_token_3 => 'OWNER'
5285 ,p_value_3 => xla_lookups_pkg.get_meaning(
5286 p_lookup_type => 'XLA_OWNER_TYPE'
5287 ,p_lookup_code => l_component_type_code
5288 )
5289 ,p_token_4 => 'PRODUCT_NAME'
5290 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5291 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5292 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5293 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5294 ,p_ae_header_id => NULL
5295 );
5296
5297 IF (C_LEVEL_ERROR>= g_log_level) THEN
5298 trace
5299 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5300 ,p_level => C_LEVEL_ERROR
5301 ,p_module => l_log_module);
5302 END IF;
5303 END IF;
5304 END IF;
5305 --
5306 --
5307 ------------------------------------------------------------------------------------------------
5308 -- 4219869 Business Flow
5309 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5310 -- Prior Entry. Currently, the following code is always generated.
5311 ------------------------------------------------------------------------------------------------
5312 -- No ValidateCurrentLine for business flow method of Prior Entry
5313
5314 ------------------------------------------------------------------------------------
5315 -- 4219869 Business Flow
5316 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5317 ------------------------------------------------------------------------------------
5318 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5319
5320 ----------------------------------------------------------------------------------
5321 -- 4219869 Business Flow
5322 -- Update journal entry status -- Need to generate this within IF <condition>
5323 ----------------------------------------------------------------------------------
5324 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5325 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5326 ,p_balance_type_code => l_balance_type_code
5327 );
5328
5329 -------------------------------------------------------------------------------------------
5330 -- 4262811 - Generate the Accrual Reversal lines
5331 -------------------------------------------------------------------------------------------
5332 BEGIN
5333 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5334 (g_array_event(p_event_id).array_value_num('header_index'));
5335 IF l_acc_rev_flag IS NULL THEN
5336 l_acc_rev_flag := 'N';
5337 END IF;
5338 EXCEPTION
5339 WHEN OTHERS THEN
5340 l_acc_rev_flag := 'N';
5341 END;
5342 --
5343 IF (l_acc_rev_flag = 'Y') THEN
5344
5345 -- 4645092 ------------------------------------------------------------------------------
5346 -- To allow MPA report to determine if it should generate report process
5347 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5348 ------------------------------------------------------------------------------------------
5349
5350 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5351 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5352 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
5353 -- call ADRs
5354 -- Bug 4922099
5355 --
5356 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5357 (NVL(l_actual_upg_option, 'N') = 'O') OR
5358 (NVL(l_enc_upg_option, 'N') = 'O')
5359 )
5360 THEN
5361 NULL;
5362 --
5363 --
5364
5365 --
5366 --
5367 END IF;
5368
5369 --
5370 -- Update the line information that should be overwritten
5371 --
5372 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5373 p_header_num => 1);
5374 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5375
5376 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5377
5378 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5379 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5380 END IF;
5381
5382 --
5383 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5384 --
5385 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5386 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5387 ELSE
5388 ---------------------------------------------------------------------------------------------------
5389 -- 4262811a Switch Sign
5390 ---------------------------------------------------------------------------------------------------
5391 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5392 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5393 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5394 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5395 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5396 -- 5132302
5397 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5398 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5399
5400 END IF;
5401
5402 -- 4955764
5403 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5404 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5405
5406
5407 XLA_AE_LINES_PKG.ValidateCurrentLine;
5408 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5409
5410 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5411 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5412 ,p_balance_type_code => l_balance_type_code);
5413
5414 END IF;
5415
5416 -----------------------------------------------------------------------------------------
5417 -- 4262811 Multiperiod Accounting
5418 -----------------------------------------------------------------------------------------
5419 -- No MPA option is assigned.
5420
5421
5422 END IF;
5423 END IF;
5424 --
5425
5426 --
5427 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5428 trace
5429 (p_msg => 'END of AcctLineType_11'
5430 ,p_level => C_LEVEL_PROCEDURE
5431 ,p_module => l_log_module);
5432 END IF;
5433 --
5434 EXCEPTION
5435 WHEN xla_exceptions_pkg.application_exception THEN
5436 RAISE;
5437 WHEN OTHERS THEN
5438 xla_exceptions_pkg.raise_message
5439 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_11');
5440 END AcctLineType_11;
5441 --
5442
5443 ---------------------------------------
5444 --
5445 -- PRIVATE FUNCTION
5446 -- AcctLineType_12
5447 --
5448 ---------------------------------------
5449 PROCEDURE AcctLineType_12 (
5450 p_application_id IN NUMBER
5451 ,p_event_id IN NUMBER
5452 ,p_calculate_acctd_flag IN VARCHAR2
5453 ,p_calculate_g_l_flag IN VARCHAR2
5454 ,p_actual_flag IN OUT VARCHAR2
5455 ,p_balance_type_code OUT VARCHAR2
5456 ,p_gain_or_loss_ref OUT VARCHAR2
5457
5458 --DISTRIBUTION_IDENTIFIER
5459 , p_source_8 IN NUMBER
5460 --Distribution Type
5461 , p_source_9 IN VARCHAR2
5462 , p_source_9_meaning IN VARCHAR2
5463 --Entered Currency Code
5464 , p_source_11 IN VARCHAR2
5465 --Purchasing Encumbrance Flag
5466 , p_source_16 IN VARCHAR2
5467 --Organization Encumbrance Reversal Indicator
5468 , p_source_17 IN VARCHAR2
5469 --Applied to Application ID
5470 , p_source_19 IN NUMBER
5471 --Applied to Distribution Link Type
5472 , p_source_20 IN VARCHAR2
5473 --Applied to Entity Code
5474 , p_source_21 IN VARCHAR2
5475 --TXN_PO_DISTRIBUTION_ID
5476 , p_source_22 IN NUMBER
5477 --Applied To Purchase Document Identifier
5478 , p_source_23 IN NUMBER
5479 --PO Budget Account
5480 , p_source_24 IN NUMBER
5481 --Encumbrance Reversal Amount Entered
5482 , p_source_25 IN NUMBER
5483 --Transaction Encumbrance Reversal Amount
5484 , p_source_26 IN NUMBER
5485 --Costing Encumbrance Upgrade Option
5486 , p_source_27 IN VARCHAR2
5487 --Purchasing Encumbrance Type Identifier
5488 , p_source_28 IN NUMBER
5489 )
5490 IS
5491
5492 l_component_type VARCHAR2(80);
5493 l_component_code VARCHAR2(30);
5494 l_component_type_code VARCHAR2(1);
5495 l_component_appl_id INTEGER;
5496 l_amb_context_code VARCHAR2(30);
5497 l_entity_code VARCHAR2(30);
5498 l_event_class_code VARCHAR2(30);
5499 l_ae_header_id NUMBER;
5500 l_event_type_code VARCHAR2(30);
5501 l_line_definition_code VARCHAR2(30);
5502 l_line_definition_owner_code VARCHAR2(1);
5503 --
5504 -- adr variables
5505 l_segment VARCHAR2(30);
5506 l_ccid NUMBER;
5507 l_adr_transaction_coa_id NUMBER;
5508 l_adr_accounting_coa_id NUMBER;
5509 l_adr_flexfield_segment_code VARCHAR2(30);
5510 l_adr_flex_value_set_id NUMBER;
5511 l_adr_value_type_code VARCHAR2(30);
5512 l_adr_value_combination_id NUMBER;
5513 l_adr_value_segment_code VARCHAR2(30);
5514
5515 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5516 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5517 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5518 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5519
5520 -- 4262811 Variables ------------------------------------------------------------------------------------------
5521 l_entered_amt_idx NUMBER;
5522 l_accted_amt_idx NUMBER;
5523 l_acc_rev_flag VARCHAR2(1);
5524 l_accrual_line_num NUMBER;
5525 l_tmp_amt NUMBER;
5526 l_acc_rev_natural_side_code VARCHAR2(1);
5527
5528 l_num_entries NUMBER;
5529 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5530 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5531 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5532 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5533 l_recog_line_1 NUMBER;
5534 l_recog_line_2 NUMBER;
5535
5536 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5537 l_bflow_applied_to_amt NUMBER; -- 5132302
5538 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5539
5540 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5541
5542 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5543 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5544
5545 ---------------------------------------------------------------------------------------------------------------
5546
5547
5548 --
5549 -- bulk performance
5550 --
5551 l_balance_type_code VARCHAR2(1);
5552 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5553 l_log_module VARCHAR2(240);
5554
5555 --
5556 -- Upgrade strategy
5557 --
5558 l_actual_upg_option VARCHAR2(1);
5559 l_enc_upg_option VARCHAR2(1);
5560
5561 --
5562 BEGIN
5563 --
5564 IF g_log_enabled THEN
5565 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_12';
5566 END IF;
5567 --
5568 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5569
5570 trace
5571 (p_msg => 'BEGIN of AcctLineType_12'
5572 ,p_level => C_LEVEL_PROCEDURE
5573 ,p_module => l_log_module);
5574
5575 END IF;
5576 --
5577 l_component_type := 'AMB_JLT';
5578 l_component_code := 'REINSTATE_PO_ENC_ON_RFI';
5579 l_component_type_code := 'S';
5580 l_component_appl_id := 707;
5581 l_amb_context_code := 'DEFAULT';
5582 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
5583 l_event_class_code := 'PURCHASE_ORDER';
5584 l_event_type_code := 'PO_DEL_INV';
5585 l_line_definition_owner_code := 'S';
5586 l_line_definition_code := 'ENC_PO_DEL_INV_DEL';
5587 --
5588 l_balance_type_code := 'E';
5589 l_segment := NULL;
5590 l_ccid := NULL;
5591 l_adr_transaction_coa_id := NULL;
5592 l_adr_accounting_coa_id := NULL;
5593 l_adr_flexfield_segment_code := NULL;
5594 l_adr_flex_value_set_id := NULL;
5595 l_adr_value_type_code := NULL;
5596 l_adr_value_combination_id := NULL;
5597 l_adr_value_segment_code := NULL;
5598
5599 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
5600 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
5601 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
5602 l_budgetary_control_flag := 'Y';
5603
5604 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5605 l_bflow_applied_to_amt := NULL; -- 5132302
5606 l_entered_amt_idx := NULL; -- 4262811
5607 l_accted_amt_idx := NULL; -- 4262811
5608 l_acc_rev_flag := NULL; -- 4262811
5609 l_accrual_line_num := NULL; -- 4262811
5610 l_tmp_amt := NULL; -- 4262811
5611 --
5612
5613 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5614 l_balance_type_code <> 'B' THEN
5615 IF NVL(p_source_16,'
5616 ') = 'Y' AND
5617 NVL(p_source_17,'
5618 ') = 'Y' AND
5619 NVL(
5620 xla_ae_sources_pkg.GetSystemSourceChar(
5621 p_source_code => 'XLA_EVENT_TYPE_CODE'
5622 , p_source_type_code => 'Y'
5623 , p_source_application_id => 602
5624 ),'
5625 ') = 'RET_RI_INV'
5626 THEN
5627
5628 --
5629 XLA_AE_LINES_PKG.SetNewLine;
5630
5631 p_balance_type_code := l_balance_type_code;
5632 -- set the flag so later we will know whether the gain loss line needs to be created
5633
5634 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5635 p_actual_flag :='A';
5636 END IF;
5637
5638 --
5639 -- bulk performance
5640 --
5641 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5642 p_header_num => 0); -- 4262811
5643 --
5644 -- set accounting line options
5645 --
5646 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5647 p_natural_side_code => 'D'
5648 , p_gain_or_loss_flag => 'N'
5649 , p_gl_transfer_mode_code => 'S'
5650 , p_acct_entry_type_code => 'E'
5651 , p_switch_side_flag => 'N'
5652 , p_merge_duplicate_code => 'N'
5653 );
5654 --
5655 l_acc_rev_natural_side_code := 'C'; -- 4262811
5656 --
5657 --
5658 -- set accounting line type info
5659 --
5660 xla_ae_lines_pkg.SetAcctLineType
5661 (p_component_type => l_component_type
5662 ,p_event_type_code => l_event_type_code
5663 ,p_line_definition_owner_code => l_line_definition_owner_code
5664 ,p_line_definition_code => l_line_definition_code
5665 ,p_accounting_line_code => l_component_code
5666 ,p_accounting_line_type_code => l_component_type_code
5667 ,p_accounting_line_appl_id => l_component_appl_id
5668 ,p_amb_context_code => l_amb_context_code
5669 ,p_entity_code => l_entity_code
5670 ,p_event_class_code => l_event_class_code);
5671 --
5672 -- set accounting class
5673 --
5674 xla_ae_lines_pkg.SetAcctClass(
5675 p_accounting_class_code => 'PURCHASE_ORDER'
5676 , p_ae_header_id => l_ae_header_id
5677 );
5678
5679 --
5680 -- set rounding class
5681 --
5682 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5683 'PURCHASE_ORDER';
5684
5685 --
5686 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5687 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5688 --
5689 -- bulk performance
5690 --
5691 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5692
5693 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5694 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5695
5696 -- 4955764
5697 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5698 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5699
5700 -- 4458381 Public Sector Enh
5701
5702 --
5703 -- set accounting attributes for the line type
5704 --
5705 l_entered_amt_idx := 17;
5706 l_accted_amt_idx := 19;
5707 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5708 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
5709 l_rec_acct_attrs.array_num_value(1) := p_source_19;
5710 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5711 l_rec_acct_attrs.array_char_value(2) := p_source_20;
5712 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
5713 l_rec_acct_attrs.array_char_value(3) := p_source_21;
5714 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
5715 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_22);
5716 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5717 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
5718 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
5719 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
5720 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
5721 l_rec_acct_attrs.array_char_value(7) := p_source_9;
5722 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
5723 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
5724 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
5725 l_rec_acct_attrs.array_num_value(9) := p_source_25;
5726 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
5727 l_rec_acct_attrs.array_char_value(10) := p_source_11;
5728 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
5729 l_rec_acct_attrs.array_num_value(11) := p_source_26;
5730 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
5731 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
5732 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
5733 l_rec_acct_attrs.array_num_value(13) := p_source_25;
5734 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
5735 l_rec_acct_attrs.array_char_value(14) := p_source_11;
5736 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
5737 l_rec_acct_attrs.array_num_value(15) := p_source_26;
5738 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
5739 l_rec_acct_attrs.array_char_value(16) := p_source_27;
5740 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
5741 l_rec_acct_attrs.array_num_value(17) := p_source_25;
5742 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
5743 l_rec_acct_attrs.array_char_value(18) := p_source_11;
5744 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
5745 l_rec_acct_attrs.array_num_value(19) := p_source_26;
5746 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
5747 l_rec_acct_attrs.array_num_value(20) := p_source_28;
5748 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
5749 l_rec_acct_attrs.array_num_value(21) := p_source_28;
5750
5751 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5752 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5753
5754 ---------------------------------------------------------------------------------------------------------------
5755 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5756 ---------------------------------------------------------------------------------------------------------------
5757 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5758
5759 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5760 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5761
5762 IF xla_accounting_cache_pkg.GetValueChar
5763 (p_source_code => 'LEDGER_CATEGORY_CODE'
5764 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5765 AND l_bflow_method_code = 'PRIOR_ENTRY'
5766 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5767 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5768 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5769 )
5770 THEN
5771 xla_ae_lines_pkg.BflowUpgEntry
5772 (p_business_method_code => l_bflow_method_code
5773 ,p_business_class_code => l_bflow_class_code
5774 ,p_balance_type => l_balance_type_code);
5775 ELSE
5776 NULL;
5777 XLA_AE_LINES_PKG.business_flow_validation(
5778 p_business_method_code => l_bflow_method_code
5779 ,p_business_class_code => l_bflow_class_code
5780 ,p_inherit_description_flag => l_inherit_desc_flag);
5781 END IF;
5782
5783 --
5784 -- call analytical criteria
5785 --
5786 -- Inherited Analytical Criteria for business flow method of Prior Entry.
5787 --
5788 -- call description
5789 --
5790 -- No description or it is inherited.
5791 --
5792 -- call ADRs
5793 -- Bug 4922099
5794 --
5795 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5796 (NVL(l_actual_upg_option, 'N') = 'O') OR
5797 (NVL(l_enc_upg_option, 'N') = 'O')
5798 )
5799 THEN
5800 NULL;
5801 --
5802 --
5803
5804 --
5805 --
5806 END IF;
5807 --
5808 -- Bug 4922099
5809 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5810 (NVL(l_enc_upg_option, 'N') = 'O')
5811 ) AND
5812 (l_bflow_method_code = 'PRIOR_ENTRY')
5813 )
5814 THEN
5815 IF
5816 --
5817 1 = 1
5818 --
5819 THEN
5820 xla_accounting_err_pkg.build_message
5821 (p_appli_s_name => 'XLA'
5822 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5823 ,p_token_1 => 'LINE_NUMBER'
5824 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5825 ,p_token_2 => 'LINE_TYPE_NAME'
5826 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5827 l_component_type
5828 ,l_component_code
5829 ,l_component_type_code
5830 ,l_component_appl_id
5831 ,l_amb_context_code
5832 ,l_entity_code
5833 ,l_event_class_code
5834 )
5835 ,p_token_3 => 'OWNER'
5836 ,p_value_3 => xla_lookups_pkg.get_meaning(
5837 p_lookup_type => 'XLA_OWNER_TYPE'
5838 ,p_lookup_code => l_component_type_code
5839 )
5840 ,p_token_4 => 'PRODUCT_NAME'
5841 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5842 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5843 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5844 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5845 ,p_ae_header_id => NULL
5846 );
5847
5848 IF (C_LEVEL_ERROR>= g_log_level) THEN
5849 trace
5850 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5851 ,p_level => C_LEVEL_ERROR
5852 ,p_module => l_log_module);
5853 END IF;
5854 END IF;
5855 END IF;
5856 --
5857 --
5858 ------------------------------------------------------------------------------------------------
5859 -- 4219869 Business Flow
5860 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5861 -- Prior Entry. Currently, the following code is always generated.
5862 ------------------------------------------------------------------------------------------------
5863 -- No ValidateCurrentLine for business flow method of Prior Entry
5864
5865 ------------------------------------------------------------------------------------
5866 -- 4219869 Business Flow
5867 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5868 ------------------------------------------------------------------------------------
5869 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5870
5871 ----------------------------------------------------------------------------------
5872 -- 4219869 Business Flow
5873 -- Update journal entry status -- Need to generate this within IF <condition>
5874 ----------------------------------------------------------------------------------
5875 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5876 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5877 ,p_balance_type_code => l_balance_type_code
5878 );
5879
5880 -------------------------------------------------------------------------------------------
5881 -- 4262811 - Generate the Accrual Reversal lines
5882 -------------------------------------------------------------------------------------------
5883 BEGIN
5884 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5885 (g_array_event(p_event_id).array_value_num('header_index'));
5886 IF l_acc_rev_flag IS NULL THEN
5887 l_acc_rev_flag := 'N';
5888 END IF;
5889 EXCEPTION
5890 WHEN OTHERS THEN
5891 l_acc_rev_flag := 'N';
5892 END;
5893 --
5894 IF (l_acc_rev_flag = 'Y') THEN
5895
5896 -- 4645092 ------------------------------------------------------------------------------
5897 -- To allow MPA report to determine if it should generate report process
5898 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5899 ------------------------------------------------------------------------------------------
5900
5901 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5902 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5903 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
5904 -- call ADRs
5905 -- Bug 4922099
5906 --
5907 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5908 (NVL(l_actual_upg_option, 'N') = 'O') OR
5909 (NVL(l_enc_upg_option, 'N') = 'O')
5910 )
5911 THEN
5912 NULL;
5913 --
5914 --
5915
5916 --
5917 --
5918 END IF;
5919
5920 --
5921 -- Update the line information that should be overwritten
5922 --
5923 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5924 p_header_num => 1);
5925 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5926
5927 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5928
5929 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5930 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5931 END IF;
5932
5933 --
5934 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5935 --
5936 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5937 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5938 ELSE
5939 ---------------------------------------------------------------------------------------------------
5940 -- 4262811a Switch Sign
5941 ---------------------------------------------------------------------------------------------------
5942 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5943 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5944 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5945 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5946 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5947 -- 5132302
5948 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5949 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5950
5951 END IF;
5952
5953 -- 4955764
5954 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5955 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5956
5957
5958 XLA_AE_LINES_PKG.ValidateCurrentLine;
5959 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5960
5961 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5962 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5963 ,p_balance_type_code => l_balance_type_code);
5964
5965 END IF;
5966
5967 -----------------------------------------------------------------------------------------
5968 -- 4262811 Multiperiod Accounting
5969 -----------------------------------------------------------------------------------------
5970 -- No MPA option is assigned.
5971
5972
5973 END IF;
5974 END IF;
5975 --
5976
5977 --
5978 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5979 trace
5980 (p_msg => 'END of AcctLineType_12'
5981 ,p_level => C_LEVEL_PROCEDURE
5982 ,p_module => l_log_module);
5983 END IF;
5984 --
5985 EXCEPTION
5986 WHEN xla_exceptions_pkg.application_exception THEN
5987 RAISE;
5988 WHEN OTHERS THEN
5989 xla_exceptions_pkg.raise_message
5990 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_12');
5991 END AcctLineType_12;
5992 --
5993
5994 ---------------------------------------
5995 --
5996 -- PRIVATE FUNCTION
5997 -- AcctLineType_13
5998 --
5999 ---------------------------------------
6000 PROCEDURE AcctLineType_13 (
6001 p_application_id IN NUMBER
6002 ,p_event_id IN NUMBER
6003 ,p_calculate_acctd_flag IN VARCHAR2
6004 ,p_calculate_g_l_flag IN VARCHAR2
6005 ,p_actual_flag IN OUT VARCHAR2
6006 ,p_balance_type_code OUT VARCHAR2
6007 ,p_gain_or_loss_ref OUT VARCHAR2
6008
6009 --DISTRIBUTION_IDENTIFIER
6010 , p_source_8 IN NUMBER
6011 --Distribution Type
6012 , p_source_9 IN VARCHAR2
6013 , p_source_9_meaning IN VARCHAR2
6014 --Entered Currency Code
6015 , p_source_11 IN VARCHAR2
6016 --Purchasing Encumbrance Flag
6017 , p_source_16 IN VARCHAR2
6018 --Applied to Application ID
6019 , p_source_19 IN NUMBER
6020 --Applied to Distribution Link Type
6021 , p_source_20 IN VARCHAR2
6022 --Applied to Entity Code
6023 , p_source_21 IN VARCHAR2
6024 --Applied To Purchase Document Identifier
6025 , p_source_23 IN NUMBER
6026 --PO Budget Account
6027 , p_source_24 IN NUMBER
6028 --Encumbrance Reversal Amount Entered
6029 , p_source_25 IN NUMBER
6030 --Transaction Encumbrance Reversal Amount
6031 , p_source_26 IN NUMBER
6032 --Costing Encumbrance Upgrade Option
6033 , p_source_27 IN VARCHAR2
6034 --Purchasing Encumbrance Type Identifier
6035 , p_source_28 IN NUMBER
6036 --Receiving Accounting Line Type
6037 , p_source_29 IN VARCHAR2
6038 --PO_DISTRIBUTION_ID
6039 , p_source_30 IN NUMBER
6040 )
6041 IS
6042
6043 l_component_type VARCHAR2(80);
6044 l_component_code VARCHAR2(30);
6045 l_component_type_code VARCHAR2(1);
6046 l_component_appl_id INTEGER;
6047 l_amb_context_code VARCHAR2(30);
6048 l_entity_code VARCHAR2(30);
6049 l_event_class_code VARCHAR2(30);
6050 l_ae_header_id NUMBER;
6051 l_event_type_code VARCHAR2(30);
6052 l_line_definition_code VARCHAR2(30);
6053 l_line_definition_owner_code VARCHAR2(1);
6054 --
6055 -- adr variables
6056 l_segment VARCHAR2(30);
6057 l_ccid NUMBER;
6058 l_adr_transaction_coa_id NUMBER;
6059 l_adr_accounting_coa_id NUMBER;
6060 l_adr_flexfield_segment_code VARCHAR2(30);
6061 l_adr_flex_value_set_id NUMBER;
6062 l_adr_value_type_code VARCHAR2(30);
6063 l_adr_value_combination_id NUMBER;
6064 l_adr_value_segment_code VARCHAR2(30);
6065
6066 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6067 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6068 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6069 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6070
6071 -- 4262811 Variables ------------------------------------------------------------------------------------------
6072 l_entered_amt_idx NUMBER;
6073 l_accted_amt_idx NUMBER;
6074 l_acc_rev_flag VARCHAR2(1);
6075 l_accrual_line_num NUMBER;
6076 l_tmp_amt NUMBER;
6077 l_acc_rev_natural_side_code VARCHAR2(1);
6078
6079 l_num_entries NUMBER;
6080 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6081 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6082 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6083 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6084 l_recog_line_1 NUMBER;
6085 l_recog_line_2 NUMBER;
6086
6087 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6088 l_bflow_applied_to_amt NUMBER; -- 5132302
6089 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6090
6091 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6092
6093 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6094 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6095
6096 ---------------------------------------------------------------------------------------------------------------
6097
6098
6099 --
6100 -- bulk performance
6101 --
6102 l_balance_type_code VARCHAR2(1);
6103 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6104 l_log_module VARCHAR2(240);
6105
6106 --
6107 -- Upgrade strategy
6108 --
6109 l_actual_upg_option VARCHAR2(1);
6110 l_enc_upg_option VARCHAR2(1);
6111
6112 --
6113 BEGIN
6114 --
6115 IF g_log_enabled THEN
6116 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_13';
6117 END IF;
6118 --
6119 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6120
6121 trace
6122 (p_msg => 'BEGIN of AcctLineType_13'
6123 ,p_level => C_LEVEL_PROCEDURE
6124 ,p_module => l_log_module);
6125
6126 END IF;
6127 --
6128 l_component_type := 'AMB_JLT';
6129 l_component_code := 'REINSTATE_PO_ENC_ON_RTR';
6130 l_component_type_code := 'S';
6131 l_component_appl_id := 707;
6132 l_amb_context_code := 'DEFAULT';
6133 l_entity_code := 'RCV_ACCOUNTING_EVENTS';
6134 l_event_class_code := 'DELIVER_EXPENSE';
6135 l_event_type_code := 'DELIVER_EXPENSE_ALL';
6136 l_line_definition_owner_code := 'S';
6137 l_line_definition_code := 'PO_ENCUM_FOR_DEL_TO_EXP';
6138 --
6139 l_balance_type_code := 'E';
6140 l_segment := NULL;
6141 l_ccid := NULL;
6142 l_adr_transaction_coa_id := NULL;
6143 l_adr_accounting_coa_id := NULL;
6144 l_adr_flexfield_segment_code := NULL;
6145 l_adr_flex_value_set_id := NULL;
6146 l_adr_value_type_code := NULL;
6147 l_adr_value_combination_id := NULL;
6148 l_adr_value_segment_code := NULL;
6149
6150 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
6151 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
6152 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
6153 l_budgetary_control_flag := 'Y';
6154
6155 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6156 l_bflow_applied_to_amt := NULL; -- 5132302
6157 l_entered_amt_idx := NULL; -- 4262811
6158 l_accted_amt_idx := NULL; -- 4262811
6159 l_acc_rev_flag := NULL; -- 4262811
6160 l_accrual_line_num := NULL; -- 4262811
6161 l_tmp_amt := NULL; -- 4262811
6162 --
6163
6164 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6165 l_balance_type_code <> 'B' THEN
6166 IF NVL(p_source_16,'
6167 ') = 'Y' AND
6168 NVL(
6169 xla_ae_sources_pkg.GetSystemSourceChar(
6170 p_source_code => 'XLA_EVENT_TYPE_CODE'
6171 , p_source_type_code => 'Y'
6172 , p_source_application_id => 602
6173 ),'
6174 ') = 'RETURN_TO_RECEIVING' AND
6175 NVL(p_source_29,'
6176 ') = 'Charge'
6177 THEN
6178
6179 --
6180 XLA_AE_LINES_PKG.SetNewLine;
6181
6182 p_balance_type_code := l_balance_type_code;
6183 -- set the flag so later we will know whether the gain loss line needs to be created
6184
6185 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6186 p_actual_flag :='A';
6187 END IF;
6188
6189 --
6190 -- bulk performance
6191 --
6192 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6193 p_header_num => 0); -- 4262811
6194 --
6195 -- set accounting line options
6196 --
6197 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6198 p_natural_side_code => 'D'
6199 , p_gain_or_loss_flag => 'N'
6200 , p_gl_transfer_mode_code => 'S'
6201 , p_acct_entry_type_code => 'E'
6202 , p_switch_side_flag => 'Y'
6203 , p_merge_duplicate_code => 'N'
6204 );
6205 --
6206 l_acc_rev_natural_side_code := 'C'; -- 4262811
6207 --
6208 --
6209 -- set accounting line type info
6210 --
6211 xla_ae_lines_pkg.SetAcctLineType
6212 (p_component_type => l_component_type
6213 ,p_event_type_code => l_event_type_code
6214 ,p_line_definition_owner_code => l_line_definition_owner_code
6215 ,p_line_definition_code => l_line_definition_code
6216 ,p_accounting_line_code => l_component_code
6217 ,p_accounting_line_type_code => l_component_type_code
6218 ,p_accounting_line_appl_id => l_component_appl_id
6219 ,p_amb_context_code => l_amb_context_code
6220 ,p_entity_code => l_entity_code
6221 ,p_event_class_code => l_event_class_code);
6222 --
6223 -- set accounting class
6224 --
6225 xla_ae_lines_pkg.SetAcctClass(
6226 p_accounting_class_code => 'PURCHASE_ORDER'
6227 , p_ae_header_id => l_ae_header_id
6228 );
6229
6230 --
6231 -- set rounding class
6232 --
6233 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6234 'PURCHASE_ORDER';
6235
6236 --
6237 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6238 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6239 --
6240 -- bulk performance
6241 --
6242 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6243
6244 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6245 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6246
6247 -- 4955764
6248 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6249 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6250
6251 -- 4458381 Public Sector Enh
6252
6253 --
6254 -- set accounting attributes for the line type
6255 --
6256 l_entered_amt_idx := 17;
6257 l_accted_amt_idx := 19;
6258 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6259 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
6260 l_rec_acct_attrs.array_num_value(1) := p_source_19;
6261 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6262 l_rec_acct_attrs.array_char_value(2) := p_source_20;
6263 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
6264 l_rec_acct_attrs.array_char_value(3) := p_source_21;
6265 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
6266 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_30);
6267 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6268 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
6269 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
6270 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
6271 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
6272 l_rec_acct_attrs.array_char_value(7) := p_source_9;
6273 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
6274 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
6275 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
6276 l_rec_acct_attrs.array_num_value(9) := p_source_25;
6277 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
6278 l_rec_acct_attrs.array_char_value(10) := p_source_11;
6279 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
6280 l_rec_acct_attrs.array_num_value(11) := p_source_26;
6281 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
6282 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
6283 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
6284 l_rec_acct_attrs.array_num_value(13) := p_source_25;
6285 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
6286 l_rec_acct_attrs.array_char_value(14) := p_source_11;
6287 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
6288 l_rec_acct_attrs.array_num_value(15) := p_source_26;
6289 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
6290 l_rec_acct_attrs.array_char_value(16) := p_source_27;
6291 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
6292 l_rec_acct_attrs.array_num_value(17) := p_source_25;
6293 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
6294 l_rec_acct_attrs.array_char_value(18) := p_source_11;
6295 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
6296 l_rec_acct_attrs.array_num_value(19) := p_source_26;
6297 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
6298 l_rec_acct_attrs.array_num_value(20) := p_source_28;
6299 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
6300 l_rec_acct_attrs.array_num_value(21) := p_source_28;
6301
6302 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6303 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6304
6305 ---------------------------------------------------------------------------------------------------------------
6306 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6307 ---------------------------------------------------------------------------------------------------------------
6308 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6309
6310 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6311 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6312
6313 IF xla_accounting_cache_pkg.GetValueChar
6314 (p_source_code => 'LEDGER_CATEGORY_CODE'
6315 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6316 AND l_bflow_method_code = 'PRIOR_ENTRY'
6317 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6318 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6319 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6320 )
6321 THEN
6322 xla_ae_lines_pkg.BflowUpgEntry
6323 (p_business_method_code => l_bflow_method_code
6324 ,p_business_class_code => l_bflow_class_code
6325 ,p_balance_type => l_balance_type_code);
6326 ELSE
6327 NULL;
6328 XLA_AE_LINES_PKG.business_flow_validation(
6329 p_business_method_code => l_bflow_method_code
6330 ,p_business_class_code => l_bflow_class_code
6331 ,p_inherit_description_flag => l_inherit_desc_flag);
6332 END IF;
6333
6334 --
6335 -- call analytical criteria
6336 --
6337 -- Inherited Analytical Criteria for business flow method of Prior Entry.
6338 --
6339 -- call description
6340 --
6341 -- No description or it is inherited.
6342 --
6343 -- call ADRs
6344 -- Bug 4922099
6345 --
6346 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6347 (NVL(l_actual_upg_option, 'N') = 'O') OR
6348 (NVL(l_enc_upg_option, 'N') = 'O')
6349 )
6350 THEN
6351 NULL;
6352 --
6353 --
6354
6355 --
6356 --
6357 END IF;
6358 --
6359 -- Bug 4922099
6360 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6361 (NVL(l_enc_upg_option, 'N') = 'O')
6362 ) AND
6363 (l_bflow_method_code = 'PRIOR_ENTRY')
6364 )
6365 THEN
6366 IF
6367 --
6368 1 = 1
6369 --
6370 THEN
6371 xla_accounting_err_pkg.build_message
6372 (p_appli_s_name => 'XLA'
6373 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6374 ,p_token_1 => 'LINE_NUMBER'
6375 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6376 ,p_token_2 => 'LINE_TYPE_NAME'
6377 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6378 l_component_type
6379 ,l_component_code
6380 ,l_component_type_code
6381 ,l_component_appl_id
6382 ,l_amb_context_code
6383 ,l_entity_code
6384 ,l_event_class_code
6385 )
6386 ,p_token_3 => 'OWNER'
6387 ,p_value_3 => xla_lookups_pkg.get_meaning(
6388 p_lookup_type => 'XLA_OWNER_TYPE'
6389 ,p_lookup_code => l_component_type_code
6390 )
6391 ,p_token_4 => 'PRODUCT_NAME'
6392 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6393 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6394 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6395 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6396 ,p_ae_header_id => NULL
6397 );
6398
6399 IF (C_LEVEL_ERROR>= g_log_level) THEN
6400 trace
6401 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6402 ,p_level => C_LEVEL_ERROR
6403 ,p_module => l_log_module);
6404 END IF;
6405 END IF;
6406 END IF;
6407 --
6408 --
6409 ------------------------------------------------------------------------------------------------
6410 -- 4219869 Business Flow
6411 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6412 -- Prior Entry. Currently, the following code is always generated.
6413 ------------------------------------------------------------------------------------------------
6414 -- No ValidateCurrentLine for business flow method of Prior Entry
6415
6416 ------------------------------------------------------------------------------------
6417 -- 4219869 Business Flow
6418 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6419 ------------------------------------------------------------------------------------
6420 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6421
6422 ----------------------------------------------------------------------------------
6423 -- 4219869 Business Flow
6424 -- Update journal entry status -- Need to generate this within IF <condition>
6425 ----------------------------------------------------------------------------------
6426 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6427 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6428 ,p_balance_type_code => l_balance_type_code
6429 );
6430
6431 -------------------------------------------------------------------------------------------
6432 -- 4262811 - Generate the Accrual Reversal lines
6433 -------------------------------------------------------------------------------------------
6434 BEGIN
6435 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6436 (g_array_event(p_event_id).array_value_num('header_index'));
6437 IF l_acc_rev_flag IS NULL THEN
6438 l_acc_rev_flag := 'N';
6439 END IF;
6440 EXCEPTION
6441 WHEN OTHERS THEN
6442 l_acc_rev_flag := 'N';
6443 END;
6444 --
6445 IF (l_acc_rev_flag = 'Y') THEN
6446
6447 -- 4645092 ------------------------------------------------------------------------------
6448 -- To allow MPA report to determine if it should generate report process
6449 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6450 ------------------------------------------------------------------------------------------
6451
6452 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6453 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6454 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
6455 -- call ADRs
6456 -- Bug 4922099
6457 --
6458 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6459 (NVL(l_actual_upg_option, 'N') = 'O') OR
6460 (NVL(l_enc_upg_option, 'N') = 'O')
6461 )
6462 THEN
6463 NULL;
6464 --
6465 --
6466
6467 --
6468 --
6469 END IF;
6470
6471 --
6472 -- Update the line information that should be overwritten
6473 --
6474 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6475 p_header_num => 1);
6476 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6477
6478 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6479
6480 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6481 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6482 END IF;
6483
6484 --
6485 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6486 --
6487 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6488 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6489 ELSE
6490 ---------------------------------------------------------------------------------------------------
6491 -- 4262811a Switch Sign
6492 ---------------------------------------------------------------------------------------------------
6493 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6494 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6495 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6496 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6497 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6498 -- 5132302
6499 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6500 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6501
6502 END IF;
6503
6504 -- 4955764
6505 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6506 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6507
6508
6509 XLA_AE_LINES_PKG.ValidateCurrentLine;
6510 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6511
6512 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6513 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6514 ,p_balance_type_code => l_balance_type_code);
6515
6516 END IF;
6517
6518 -----------------------------------------------------------------------------------------
6519 -- 4262811 Multiperiod Accounting
6520 -----------------------------------------------------------------------------------------
6521 -- No MPA option is assigned.
6522
6523
6524 END IF;
6525 END IF;
6526 --
6527
6528 --
6529 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6530 trace
6531 (p_msg => 'END of AcctLineType_13'
6532 ,p_level => C_LEVEL_PROCEDURE
6533 ,p_module => l_log_module);
6534 END IF;
6535 --
6536 EXCEPTION
6537 WHEN xla_exceptions_pkg.application_exception THEN
6538 RAISE;
6539 WHEN OTHERS THEN
6540 xla_exceptions_pkg.raise_message
6541 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_13');
6542 END AcctLineType_13;
6543 --
6544
6545 ---------------------------------------
6546 --
6547 -- PRIVATE FUNCTION
6548 -- AcctLineType_14
6549 --
6550 ---------------------------------------
6551 PROCEDURE AcctLineType_14 (
6552 p_application_id IN NUMBER
6553 ,p_event_id IN NUMBER
6554 ,p_calculate_acctd_flag IN VARCHAR2
6555 ,p_calculate_g_l_flag IN VARCHAR2
6556 ,p_actual_flag IN OUT VARCHAR2
6557 ,p_balance_type_code OUT VARCHAR2
6558 ,p_gain_or_loss_ref OUT VARCHAR2
6559
6560 --DISTRIBUTION_IDENTIFIER
6561 , p_source_8 IN NUMBER
6562 --Distribution Type
6563 , p_source_9 IN VARCHAR2
6564 , p_source_9_meaning IN VARCHAR2
6565 --Entered Currency Code
6566 , p_source_11 IN VARCHAR2
6567 --Purchasing Encumbrance Flag
6568 , p_source_16 IN VARCHAR2
6569 --Applied to Application ID
6570 , p_source_19 IN NUMBER
6571 --Applied to Distribution Link Type
6572 , p_source_20 IN VARCHAR2
6573 --Applied to Entity Code
6574 , p_source_21 IN VARCHAR2
6575 --Applied To Purchase Document Identifier
6576 , p_source_23 IN NUMBER
6577 --PO Budget Account
6578 , p_source_24 IN NUMBER
6579 --Encumbrance Reversal Amount Entered
6580 , p_source_25 IN NUMBER
6581 --Transaction Encumbrance Reversal Amount
6582 , p_source_26 IN NUMBER
6583 --Costing Encumbrance Upgrade Option
6584 , p_source_27 IN VARCHAR2
6585 --Purchasing Encumbrance Type Identifier
6586 , p_source_28 IN NUMBER
6587 --Receiving Accounting Line Type
6588 , p_source_29 IN VARCHAR2
6589 --PO_DISTRIBUTION_ID
6590 , p_source_30 IN NUMBER
6591 --Reserved Flag
6592 , p_source_31 IN VARCHAR2
6593 )
6594 IS
6595
6596 l_component_type VARCHAR2(80);
6597 l_component_code VARCHAR2(30);
6598 l_component_type_code VARCHAR2(1);
6599 l_component_appl_id INTEGER;
6600 l_amb_context_code VARCHAR2(30);
6601 l_entity_code VARCHAR2(30);
6602 l_event_class_code VARCHAR2(30);
6603 l_ae_header_id NUMBER;
6604 l_event_type_code VARCHAR2(30);
6605 l_line_definition_code VARCHAR2(30);
6606 l_line_definition_owner_code VARCHAR2(1);
6607 --
6608 -- adr variables
6609 l_segment VARCHAR2(30);
6610 l_ccid NUMBER;
6611 l_adr_transaction_coa_id NUMBER;
6612 l_adr_accounting_coa_id NUMBER;
6613 l_adr_flexfield_segment_code VARCHAR2(30);
6614 l_adr_flex_value_set_id NUMBER;
6615 l_adr_value_type_code VARCHAR2(30);
6616 l_adr_value_combination_id NUMBER;
6617 l_adr_value_segment_code VARCHAR2(30);
6618
6619 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6620 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6621 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6622 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6623
6624 -- 4262811 Variables ------------------------------------------------------------------------------------------
6625 l_entered_amt_idx NUMBER;
6626 l_accted_amt_idx NUMBER;
6627 l_acc_rev_flag VARCHAR2(1);
6628 l_accrual_line_num NUMBER;
6629 l_tmp_amt NUMBER;
6630 l_acc_rev_natural_side_code VARCHAR2(1);
6631
6632 l_num_entries NUMBER;
6633 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6634 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6635 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6636 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6637 l_recog_line_1 NUMBER;
6638 l_recog_line_2 NUMBER;
6639
6640 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6641 l_bflow_applied_to_amt NUMBER; -- 5132302
6642 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6643
6644 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6645
6646 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6647 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6648
6649 ---------------------------------------------------------------------------------------------------------------
6650
6651
6652 --
6653 -- bulk performance
6654 --
6655 l_balance_type_code VARCHAR2(1);
6656 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6657 l_log_module VARCHAR2(240);
6658
6659 --
6660 -- Upgrade strategy
6661 --
6662 l_actual_upg_option VARCHAR2(1);
6663 l_enc_upg_option VARCHAR2(1);
6664
6665 --
6666 BEGIN
6667 --
6668 IF g_log_enabled THEN
6669 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_14';
6670 END IF;
6671 --
6672 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6673
6674 trace
6675 (p_msg => 'BEGIN of AcctLineType_14'
6676 ,p_level => C_LEVEL_PROCEDURE
6677 ,p_module => l_log_module);
6678
6679 END IF;
6680 --
6681 l_component_type := 'AMB_JLT';
6682 l_component_code := 'RELIEVE_PO_ENC_ON_DTE';
6683 l_component_type_code := 'S';
6684 l_component_appl_id := 707;
6685 l_amb_context_code := 'DEFAULT';
6686 l_entity_code := 'RCV_ACCOUNTING_EVENTS';
6687 l_event_class_code := 'DELIVER_EXPENSE';
6688 l_event_type_code := 'DELIVER_EXPENSE_ALL';
6689 l_line_definition_owner_code := 'S';
6690 l_line_definition_code := 'PO_ENCUM_FOR_DEL_TO_EXP';
6691 --
6692 l_balance_type_code := 'E';
6693 l_segment := NULL;
6694 l_ccid := NULL;
6695 l_adr_transaction_coa_id := NULL;
6696 l_adr_accounting_coa_id := NULL;
6697 l_adr_flexfield_segment_code := NULL;
6698 l_adr_flex_value_set_id := NULL;
6699 l_adr_value_type_code := NULL;
6700 l_adr_value_combination_id := NULL;
6701 l_adr_value_segment_code := NULL;
6702
6703 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
6704 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
6705 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
6706 l_budgetary_control_flag := 'Y';
6707
6708 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6709 l_bflow_applied_to_amt := NULL; -- 5132302
6710 l_entered_amt_idx := NULL; -- 4262811
6711 l_accted_amt_idx := NULL; -- 4262811
6712 l_acc_rev_flag := NULL; -- 4262811
6713 l_accrual_line_num := NULL; -- 4262811
6714 l_tmp_amt := NULL; -- 4262811
6715 --
6716
6717 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6718 l_balance_type_code <> 'B' THEN
6719 IF NVL(p_source_16,'
6720 ') = 'Y' AND
6721 NVL(p_source_31,'
6722 ') = 'Y' AND
6723 NVL(
6724 xla_ae_sources_pkg.GetSystemSourceChar(
6725 p_source_code => 'XLA_EVENT_TYPE_CODE'
6726 , p_source_type_code => 'Y'
6727 , p_source_application_id => 602
6728 ),'
6729 ') = 'DELIVER_EXPENSE' AND
6730 NVL(p_source_29,'
6731 ') = 'Charge'
6732 THEN
6733
6734 --
6735 XLA_AE_LINES_PKG.SetNewLine;
6736
6737 p_balance_type_code := l_balance_type_code;
6738 -- set the flag so later we will know whether the gain loss line needs to be created
6739
6740 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6741 p_actual_flag :='A';
6742 END IF;
6743
6744 --
6745 -- bulk performance
6746 --
6747 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6748 p_header_num => 0); -- 4262811
6749 --
6750 -- set accounting line options
6751 --
6752 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6753 p_natural_side_code => 'D'
6754 , p_gain_or_loss_flag => 'N'
6755 , p_gl_transfer_mode_code => 'S'
6756 , p_acct_entry_type_code => 'E'
6757 , p_switch_side_flag => 'Y'
6758 , p_merge_duplicate_code => 'N'
6759 );
6760 --
6761 l_acc_rev_natural_side_code := 'C'; -- 4262811
6762 --
6763 --
6764 -- set accounting line type info
6765 --
6766 xla_ae_lines_pkg.SetAcctLineType
6767 (p_component_type => l_component_type
6768 ,p_event_type_code => l_event_type_code
6769 ,p_line_definition_owner_code => l_line_definition_owner_code
6770 ,p_line_definition_code => l_line_definition_code
6771 ,p_accounting_line_code => l_component_code
6772 ,p_accounting_line_type_code => l_component_type_code
6773 ,p_accounting_line_appl_id => l_component_appl_id
6774 ,p_amb_context_code => l_amb_context_code
6775 ,p_entity_code => l_entity_code
6776 ,p_event_class_code => l_event_class_code);
6777 --
6778 -- set accounting class
6779 --
6780 xla_ae_lines_pkg.SetAcctClass(
6781 p_accounting_class_code => 'PURCHASE_ORDER'
6782 , p_ae_header_id => l_ae_header_id
6783 );
6784
6785 --
6786 -- set rounding class
6787 --
6788 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6789 'PURCHASE_ORDER';
6790
6791 --
6792 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6793 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6794 --
6795 -- bulk performance
6796 --
6797 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6798
6799 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6800 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6801
6802 -- 4955764
6803 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6804 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6805
6806 -- 4458381 Public Sector Enh
6807
6808 --
6809 -- set accounting attributes for the line type
6810 --
6811 l_entered_amt_idx := 17;
6812 l_accted_amt_idx := 19;
6813 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6814 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
6815 l_rec_acct_attrs.array_num_value(1) := p_source_19;
6816 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6817 l_rec_acct_attrs.array_char_value(2) := p_source_20;
6818 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
6819 l_rec_acct_attrs.array_char_value(3) := p_source_21;
6820 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
6821 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_30);
6822 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6823 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
6824 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
6825 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
6826 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
6827 l_rec_acct_attrs.array_char_value(7) := p_source_9;
6828 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
6829 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
6830 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
6831 l_rec_acct_attrs.array_num_value(9) := p_source_25;
6832 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
6833 l_rec_acct_attrs.array_char_value(10) := p_source_11;
6834 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
6835 l_rec_acct_attrs.array_num_value(11) := p_source_26;
6836 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
6837 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
6838 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
6839 l_rec_acct_attrs.array_num_value(13) := p_source_25;
6840 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
6841 l_rec_acct_attrs.array_char_value(14) := p_source_11;
6842 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
6843 l_rec_acct_attrs.array_num_value(15) := p_source_26;
6844 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
6845 l_rec_acct_attrs.array_char_value(16) := p_source_27;
6846 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
6847 l_rec_acct_attrs.array_num_value(17) := p_source_25;
6848 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
6849 l_rec_acct_attrs.array_char_value(18) := p_source_11;
6850 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
6851 l_rec_acct_attrs.array_num_value(19) := p_source_26;
6852 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
6853 l_rec_acct_attrs.array_num_value(20) := p_source_28;
6854 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
6855 l_rec_acct_attrs.array_num_value(21) := p_source_28;
6856
6857 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6858 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6859
6860 ---------------------------------------------------------------------------------------------------------------
6861 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6862 ---------------------------------------------------------------------------------------------------------------
6863 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6864
6865 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6866 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6867
6868 IF xla_accounting_cache_pkg.GetValueChar
6869 (p_source_code => 'LEDGER_CATEGORY_CODE'
6870 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6871 AND l_bflow_method_code = 'PRIOR_ENTRY'
6872 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6873 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6874 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6875 )
6876 THEN
6877 xla_ae_lines_pkg.BflowUpgEntry
6878 (p_business_method_code => l_bflow_method_code
6879 ,p_business_class_code => l_bflow_class_code
6880 ,p_balance_type => l_balance_type_code);
6881 ELSE
6882 NULL;
6883 XLA_AE_LINES_PKG.business_flow_validation(
6884 p_business_method_code => l_bflow_method_code
6885 ,p_business_class_code => l_bflow_class_code
6886 ,p_inherit_description_flag => l_inherit_desc_flag);
6887 END IF;
6888
6889 --
6890 -- call analytical criteria
6891 --
6892 -- Inherited Analytical Criteria for business flow method of Prior Entry.
6893 --
6894 -- call description
6895 --
6896 -- No description or it is inherited.
6897 --
6898 -- call ADRs
6899 -- Bug 4922099
6900 --
6901 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6902 (NVL(l_actual_upg_option, 'N') = 'O') OR
6903 (NVL(l_enc_upg_option, 'N') = 'O')
6904 )
6905 THEN
6906 NULL;
6907 --
6908 --
6909
6910 --
6911 --
6912 END IF;
6913 --
6914 -- Bug 4922099
6915 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6916 (NVL(l_enc_upg_option, 'N') = 'O')
6917 ) AND
6918 (l_bflow_method_code = 'PRIOR_ENTRY')
6919 )
6920 THEN
6921 IF
6922 --
6923 1 = 1
6924 --
6925 THEN
6926 xla_accounting_err_pkg.build_message
6927 (p_appli_s_name => 'XLA'
6928 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6929 ,p_token_1 => 'LINE_NUMBER'
6930 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6931 ,p_token_2 => 'LINE_TYPE_NAME'
6932 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6933 l_component_type
6934 ,l_component_code
6935 ,l_component_type_code
6936 ,l_component_appl_id
6937 ,l_amb_context_code
6938 ,l_entity_code
6939 ,l_event_class_code
6940 )
6941 ,p_token_3 => 'OWNER'
6942 ,p_value_3 => xla_lookups_pkg.get_meaning(
6943 p_lookup_type => 'XLA_OWNER_TYPE'
6944 ,p_lookup_code => l_component_type_code
6945 )
6946 ,p_token_4 => 'PRODUCT_NAME'
6947 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6948 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6949 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6950 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6951 ,p_ae_header_id => NULL
6952 );
6953
6954 IF (C_LEVEL_ERROR>= g_log_level) THEN
6955 trace
6956 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6957 ,p_level => C_LEVEL_ERROR
6958 ,p_module => l_log_module);
6959 END IF;
6960 END IF;
6961 END IF;
6962 --
6963 --
6964 ------------------------------------------------------------------------------------------------
6965 -- 4219869 Business Flow
6966 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6967 -- Prior Entry. Currently, the following code is always generated.
6968 ------------------------------------------------------------------------------------------------
6969 -- No ValidateCurrentLine for business flow method of Prior Entry
6970
6971 ------------------------------------------------------------------------------------
6972 -- 4219869 Business Flow
6973 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6974 ------------------------------------------------------------------------------------
6975 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6976
6977 ----------------------------------------------------------------------------------
6978 -- 4219869 Business Flow
6979 -- Update journal entry status -- Need to generate this within IF <condition>
6980 ----------------------------------------------------------------------------------
6981 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6982 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6983 ,p_balance_type_code => l_balance_type_code
6984 );
6985
6986 -------------------------------------------------------------------------------------------
6987 -- 4262811 - Generate the Accrual Reversal lines
6988 -------------------------------------------------------------------------------------------
6989 BEGIN
6990 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6991 (g_array_event(p_event_id).array_value_num('header_index'));
6992 IF l_acc_rev_flag IS NULL THEN
6993 l_acc_rev_flag := 'N';
6994 END IF;
6995 EXCEPTION
6996 WHEN OTHERS THEN
6997 l_acc_rev_flag := 'N';
6998 END;
6999 --
7000 IF (l_acc_rev_flag = 'Y') THEN
7001
7002 -- 4645092 ------------------------------------------------------------------------------
7003 -- To allow MPA report to determine if it should generate report process
7004 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7005 ------------------------------------------------------------------------------------------
7006
7007 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7008 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7009 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
7010 -- call ADRs
7011 -- Bug 4922099
7012 --
7013 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7014 (NVL(l_actual_upg_option, 'N') = 'O') OR
7015 (NVL(l_enc_upg_option, 'N') = 'O')
7016 )
7017 THEN
7018 NULL;
7019 --
7020 --
7021
7022 --
7023 --
7024 END IF;
7025
7026 --
7027 -- Update the line information that should be overwritten
7028 --
7029 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7030 p_header_num => 1);
7031 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7032
7033 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7034
7035 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7036 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7037 END IF;
7038
7039 --
7040 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7041 --
7042 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7043 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7044 ELSE
7045 ---------------------------------------------------------------------------------------------------
7046 -- 4262811a Switch Sign
7047 ---------------------------------------------------------------------------------------------------
7048 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7049 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7050 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7051 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7052 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7053 -- 5132302
7054 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7055 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7056
7057 END IF;
7058
7059 -- 4955764
7060 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7061 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7062
7063
7064 XLA_AE_LINES_PKG.ValidateCurrentLine;
7065 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7066
7067 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7068 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7069 ,p_balance_type_code => l_balance_type_code);
7070
7071 END IF;
7072
7073 -----------------------------------------------------------------------------------------
7074 -- 4262811 Multiperiod Accounting
7075 -----------------------------------------------------------------------------------------
7076 -- No MPA option is assigned.
7077
7078
7079 END IF;
7080 END IF;
7081 --
7082
7083 --
7084 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7085 trace
7086 (p_msg => 'END of AcctLineType_14'
7087 ,p_level => C_LEVEL_PROCEDURE
7088 ,p_module => l_log_module);
7089 END IF;
7090 --
7091 EXCEPTION
7092 WHEN xla_exceptions_pkg.application_exception THEN
7093 RAISE;
7094 WHEN OTHERS THEN
7095 xla_exceptions_pkg.raise_message
7096 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_14');
7097 END AcctLineType_14;
7098 --
7099
7100 ---------------------------------------
7101 --
7102 -- PRIVATE FUNCTION
7103 -- AcctLineType_15
7104 --
7105 ---------------------------------------
7106 PROCEDURE AcctLineType_15 (
7107 p_application_id IN NUMBER
7108 ,p_event_id IN NUMBER
7109 ,p_calculate_acctd_flag IN VARCHAR2
7110 ,p_calculate_g_l_flag IN VARCHAR2
7111 ,p_actual_flag IN OUT VARCHAR2
7112 ,p_balance_type_code OUT VARCHAR2
7113 ,p_gain_or_loss_ref OUT VARCHAR2
7114
7115 --Accounting Line Type
7116 , p_source_7 IN NUMBER
7117 --DISTRIBUTION_IDENTIFIER
7118 , p_source_8 IN NUMBER
7119 --Distribution Type
7120 , p_source_9 IN VARCHAR2
7121 , p_source_9_meaning IN VARCHAR2
7122 --Entered Currency Code
7123 , p_source_11 IN VARCHAR2
7124 --Purchasing Encumbrance Flag
7125 , p_source_16 IN VARCHAR2
7126 --Organization Encumbrance Reversal Indicator
7127 , p_source_17 IN VARCHAR2
7128 --Applied to Application ID
7129 , p_source_19 IN NUMBER
7130 --Applied to Distribution Link Type
7131 , p_source_20 IN VARCHAR2
7132 --Applied to Entity Code
7133 , p_source_21 IN VARCHAR2
7134 --TXN_PO_DISTRIBUTION_ID
7135 , p_source_22 IN NUMBER
7136 --Applied To Purchase Document Identifier
7137 , p_source_23 IN NUMBER
7138 --PO Budget Account
7139 , p_source_24 IN NUMBER
7140 --Encumbrance Reversal Amount Entered
7141 , p_source_25 IN NUMBER
7142 --Transaction Encumbrance Reversal Amount
7143 , p_source_26 IN NUMBER
7144 --Costing Encumbrance Upgrade Option
7145 , p_source_27 IN VARCHAR2
7146 --Purchasing Encumbrance Type Identifier
7147 , p_source_28 IN NUMBER
7148 --Reserved Flag
7149 , p_source_31 IN VARCHAR2
7150 )
7151 IS
7152
7153 l_component_type VARCHAR2(80);
7154 l_component_code VARCHAR2(30);
7155 l_component_type_code VARCHAR2(1);
7156 l_component_appl_id INTEGER;
7157 l_amb_context_code VARCHAR2(30);
7158 l_entity_code VARCHAR2(30);
7159 l_event_class_code VARCHAR2(30);
7160 l_ae_header_id NUMBER;
7161 l_event_type_code VARCHAR2(30);
7162 l_line_definition_code VARCHAR2(30);
7163 l_line_definition_owner_code VARCHAR2(1);
7164 --
7165 -- adr variables
7166 l_segment VARCHAR2(30);
7167 l_ccid NUMBER;
7168 l_adr_transaction_coa_id NUMBER;
7169 l_adr_accounting_coa_id NUMBER;
7170 l_adr_flexfield_segment_code VARCHAR2(30);
7171 l_adr_flex_value_set_id NUMBER;
7172 l_adr_value_type_code VARCHAR2(30);
7173 l_adr_value_combination_id NUMBER;
7174 l_adr_value_segment_code VARCHAR2(30);
7175
7176 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7177 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7178 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7179 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7180
7181 -- 4262811 Variables ------------------------------------------------------------------------------------------
7182 l_entered_amt_idx NUMBER;
7183 l_accted_amt_idx NUMBER;
7184 l_acc_rev_flag VARCHAR2(1);
7185 l_accrual_line_num NUMBER;
7186 l_tmp_amt NUMBER;
7187 l_acc_rev_natural_side_code VARCHAR2(1);
7188
7189 l_num_entries NUMBER;
7190 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7191 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7192 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7193 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7194 l_recog_line_1 NUMBER;
7195 l_recog_line_2 NUMBER;
7196
7197 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7198 l_bflow_applied_to_amt NUMBER; -- 5132302
7199 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7200
7201 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7202
7203 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7204 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7205
7206 ---------------------------------------------------------------------------------------------------------------
7207
7208
7209 --
7210 -- bulk performance
7211 --
7212 l_balance_type_code VARCHAR2(1);
7213 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7214 l_log_module VARCHAR2(240);
7215
7216 --
7217 -- Upgrade strategy
7218 --
7219 l_actual_upg_option VARCHAR2(1);
7220 l_enc_upg_option VARCHAR2(1);
7221
7222 --
7223 BEGIN
7224 --
7225 IF g_log_enabled THEN
7226 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_15';
7227 END IF;
7228 --
7229 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7230
7231 trace
7232 (p_msg => 'BEGIN of AcctLineType_15'
7233 ,p_level => C_LEVEL_PROCEDURE
7234 ,p_module => l_log_module);
7235
7236 END IF;
7237 --
7238 l_component_type := 'AMB_JLT';
7239 l_component_code := 'RELIEVE_PO_ENC_ON_DTI';
7240 l_component_type_code := 'S';
7241 l_component_appl_id := 707;
7242 l_amb_context_code := 'DEFAULT';
7243 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
7244 l_event_class_code := 'PURCHASE_ORDER';
7245 l_event_type_code := 'PO_DEL_ADJ';
7246 l_line_definition_owner_code := 'S';
7247 l_line_definition_code := 'ENC_PO_DEL_INV_DEL_ADJ';
7248 --
7249 l_balance_type_code := 'E';
7250 l_segment := NULL;
7251 l_ccid := NULL;
7252 l_adr_transaction_coa_id := NULL;
7253 l_adr_accounting_coa_id := NULL;
7254 l_adr_flexfield_segment_code := NULL;
7255 l_adr_flex_value_set_id := NULL;
7256 l_adr_value_type_code := NULL;
7257 l_adr_value_combination_id := NULL;
7258 l_adr_value_segment_code := NULL;
7259
7260 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
7261 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
7262 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
7263 l_budgetary_control_flag := 'Y';
7264
7265 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7266 l_bflow_applied_to_amt := NULL; -- 5132302
7267 l_entered_amt_idx := NULL; -- 4262811
7268 l_accted_amt_idx := NULL; -- 4262811
7269 l_acc_rev_flag := NULL; -- 4262811
7270 l_accrual_line_num := NULL; -- 4262811
7271 l_tmp_amt := NULL; -- 4262811
7272 --
7273
7274 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7275 l_balance_type_code <> 'B' THEN
7276 IF NVL(p_source_16,'
7277 ') = 'Y' AND
7278 NVL(p_source_31,'
7279 ') = 'Y' AND
7280 NVL(p_source_17,'
7281 ') = 'Y' AND
7282 NVL(
7283 xla_ae_sources_pkg.GetSystemSourceChar(
7284 p_source_code => 'XLA_EVENT_TYPE_CODE'
7285 , p_source_type_code => 'Y'
7286 , p_source_application_id => 602
7287 ),'
7288 ') = 'PO_DEL_INV' AND
7289 NVL(p_source_7,9E125) = 15
7290 THEN
7291
7292 --
7293 XLA_AE_LINES_PKG.SetNewLine;
7294
7295 p_balance_type_code := l_balance_type_code;
7296 -- set the flag so later we will know whether the gain loss line needs to be created
7297
7298 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7299 p_actual_flag :='A';
7300 END IF;
7301
7302 --
7303 -- bulk performance
7304 --
7305 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7306 p_header_num => 0); -- 4262811
7307 --
7308 -- set accounting line options
7309 --
7310 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7311 p_natural_side_code => 'C'
7312 , p_gain_or_loss_flag => 'N'
7313 , p_gl_transfer_mode_code => 'S'
7314 , p_acct_entry_type_code => 'E'
7315 , p_switch_side_flag => 'N'
7316 , p_merge_duplicate_code => 'N'
7317 );
7318 --
7319 l_acc_rev_natural_side_code := 'D'; -- 4262811
7320 --
7321 --
7322 -- set accounting line type info
7323 --
7324 xla_ae_lines_pkg.SetAcctLineType
7325 (p_component_type => l_component_type
7326 ,p_event_type_code => l_event_type_code
7327 ,p_line_definition_owner_code => l_line_definition_owner_code
7328 ,p_line_definition_code => l_line_definition_code
7329 ,p_accounting_line_code => l_component_code
7330 ,p_accounting_line_type_code => l_component_type_code
7331 ,p_accounting_line_appl_id => l_component_appl_id
7332 ,p_amb_context_code => l_amb_context_code
7333 ,p_entity_code => l_entity_code
7334 ,p_event_class_code => l_event_class_code);
7335 --
7336 -- set accounting class
7337 --
7338 xla_ae_lines_pkg.SetAcctClass(
7339 p_accounting_class_code => 'PURCHASE_ORDER'
7340 , p_ae_header_id => l_ae_header_id
7341 );
7342
7343 --
7344 -- set rounding class
7345 --
7346 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7347 'PURCHASE_ORDER';
7348
7349 --
7350 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7351 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7352 --
7353 -- bulk performance
7354 --
7355 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7356
7357 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7358 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7359
7360 -- 4955764
7361 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7362 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7363
7364 -- 4458381 Public Sector Enh
7365
7366 --
7367 -- set accounting attributes for the line type
7368 --
7369 l_entered_amt_idx := 17;
7370 l_accted_amt_idx := 19;
7371 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7372 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
7373 l_rec_acct_attrs.array_num_value(1) := p_source_19;
7374 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7375 l_rec_acct_attrs.array_char_value(2) := p_source_20;
7376 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
7377 l_rec_acct_attrs.array_char_value(3) := p_source_21;
7378 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
7379 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_22);
7380 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7381 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
7382 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
7383 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
7384 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
7385 l_rec_acct_attrs.array_char_value(7) := p_source_9;
7386 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
7387 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
7388 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
7389 l_rec_acct_attrs.array_num_value(9) := p_source_25;
7390 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
7391 l_rec_acct_attrs.array_char_value(10) := p_source_11;
7392 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
7393 l_rec_acct_attrs.array_num_value(11) := p_source_26;
7394 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
7395 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
7396 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
7397 l_rec_acct_attrs.array_num_value(13) := p_source_25;
7398 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
7399 l_rec_acct_attrs.array_char_value(14) := p_source_11;
7400 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
7401 l_rec_acct_attrs.array_num_value(15) := p_source_26;
7402 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
7403 l_rec_acct_attrs.array_char_value(16) := p_source_27;
7404 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
7405 l_rec_acct_attrs.array_num_value(17) := p_source_25;
7406 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
7407 l_rec_acct_attrs.array_char_value(18) := p_source_11;
7408 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
7409 l_rec_acct_attrs.array_num_value(19) := p_source_26;
7410 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
7411 l_rec_acct_attrs.array_num_value(20) := p_source_28;
7412 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
7413 l_rec_acct_attrs.array_num_value(21) := p_source_28;
7414
7415 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7416 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7417
7418 ---------------------------------------------------------------------------------------------------------------
7419 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7420 ---------------------------------------------------------------------------------------------------------------
7421 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7422
7423 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7424 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7425
7426 IF xla_accounting_cache_pkg.GetValueChar
7427 (p_source_code => 'LEDGER_CATEGORY_CODE'
7428 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7429 AND l_bflow_method_code = 'PRIOR_ENTRY'
7430 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7431 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7432 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7433 )
7434 THEN
7435 xla_ae_lines_pkg.BflowUpgEntry
7436 (p_business_method_code => l_bflow_method_code
7437 ,p_business_class_code => l_bflow_class_code
7438 ,p_balance_type => l_balance_type_code);
7439 ELSE
7440 NULL;
7441 XLA_AE_LINES_PKG.business_flow_validation(
7442 p_business_method_code => l_bflow_method_code
7443 ,p_business_class_code => l_bflow_class_code
7444 ,p_inherit_description_flag => l_inherit_desc_flag);
7445 END IF;
7446
7447 --
7448 -- call analytical criteria
7449 --
7450 -- Inherited Analytical Criteria for business flow method of Prior Entry.
7451 --
7452 -- call description
7453 --
7454 -- No description or it is inherited.
7455 --
7456 -- call ADRs
7457 -- Bug 4922099
7458 --
7459 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7460 (NVL(l_actual_upg_option, 'N') = 'O') OR
7461 (NVL(l_enc_upg_option, 'N') = 'O')
7462 )
7463 THEN
7464 NULL;
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 = 1
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 -- No ValidateCurrentLine for business flow method of Prior Entry
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
7560 -- 4645092 ------------------------------------------------------------------------------
7561 -- To allow MPA report to determine if it should generate report process
7562 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7563 ------------------------------------------------------------------------------------------
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 --
7581 --
7582 END IF;
7583
7584 --
7585 -- Update the line information that should be overwritten
7586 --
7587 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7588 p_header_num => 1);
7589 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7590
7591 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7592
7593 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7594 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7595 END IF;
7596
7597 --
7598 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7599 --
7600 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7601 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7602 ELSE
7603 ---------------------------------------------------------------------------------------------------
7604 -- 4262811a Switch Sign
7605 ---------------------------------------------------------------------------------------------------
7606 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7607 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7608 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7609 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7610 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7611 -- 5132302
7612 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7613 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7614
7615 END IF;
7616
7617 -- 4955764
7618 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7619 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7620
7621
7622 XLA_AE_LINES_PKG.ValidateCurrentLine;
7623 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7624
7625 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7626 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7627 ,p_balance_type_code => l_balance_type_code);
7628
7629 END IF;
7630
7631 -----------------------------------------------------------------------------------------
7632 -- 4262811 Multiperiod Accounting
7633 -----------------------------------------------------------------------------------------
7634 -- No MPA option is assigned.
7635
7636
7637 END IF;
7638 END IF;
7639 --
7640
7641 --
7642 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7643 trace
7644 (p_msg => 'END of AcctLineType_15'
7645 ,p_level => C_LEVEL_PROCEDURE
7646 ,p_module => l_log_module);
7647 END IF;
7648 --
7649 EXCEPTION
7650 WHEN xla_exceptions_pkg.application_exception THEN
7651 RAISE;
7652 WHEN OTHERS THEN
7653 xla_exceptions_pkg.raise_message
7654 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_15');
7655 END AcctLineType_15;
7656 --
7657
7658 ---------------------------------------
7659 --
7660 -- PRIVATE FUNCTION
7661 -- AcctLineType_16
7662 --
7663 ---------------------------------------
7664 PROCEDURE AcctLineType_16 (
7665 p_application_id IN NUMBER
7666 ,p_event_id IN NUMBER
7667 ,p_calculate_acctd_flag IN VARCHAR2
7668 ,p_calculate_g_l_flag IN VARCHAR2
7669 ,p_actual_flag IN OUT VARCHAR2
7670 ,p_balance_type_code OUT VARCHAR2
7671 ,p_gain_or_loss_ref OUT VARCHAR2
7672
7673 --Accounting Line Type
7674 , p_source_7 IN NUMBER
7675 --DISTRIBUTION_IDENTIFIER
7676 , p_source_8 IN NUMBER
7677 --Distribution Type
7678 , p_source_9 IN VARCHAR2
7679 , p_source_9_meaning IN VARCHAR2
7680 --Entered Currency Code
7681 , p_source_11 IN VARCHAR2
7682 --Purchasing Encumbrance Flag
7683 , p_source_16 IN VARCHAR2
7684 --Organization Encumbrance Reversal Indicator
7685 , p_source_17 IN VARCHAR2
7686 --Applied to Application ID
7687 , p_source_19 IN NUMBER
7688 --Applied to Distribution Link Type
7689 , p_source_20 IN VARCHAR2
7690 --Applied to Entity Code
7691 , p_source_21 IN VARCHAR2
7692 --TXN_PO_DISTRIBUTION_ID
7693 , p_source_22 IN NUMBER
7694 --Applied To Purchase Document Identifier
7695 , p_source_23 IN NUMBER
7696 --PO Budget Account
7697 , p_source_24 IN NUMBER
7698 --Encumbrance Reversal Amount Entered
7699 , p_source_25 IN NUMBER
7700 --Transaction Encumbrance Reversal Amount
7701 , p_source_26 IN NUMBER
7702 --Costing Encumbrance Upgrade Option
7703 , p_source_27 IN VARCHAR2
7704 --Purchasing Encumbrance Type Identifier
7705 , p_source_28 IN NUMBER
7706 --Reserved Flag
7707 , p_source_31 IN VARCHAR2
7708 )
7709 IS
7710
7711 l_component_type VARCHAR2(80);
7712 l_component_code VARCHAR2(30);
7713 l_component_type_code VARCHAR2(1);
7714 l_component_appl_id INTEGER;
7715 l_amb_context_code VARCHAR2(30);
7716 l_entity_code VARCHAR2(30);
7717 l_event_class_code VARCHAR2(30);
7718 l_ae_header_id NUMBER;
7719 l_event_type_code VARCHAR2(30);
7720 l_line_definition_code VARCHAR2(30);
7721 l_line_definition_owner_code VARCHAR2(1);
7722 --
7723 -- adr variables
7724 l_segment VARCHAR2(30);
7725 l_ccid NUMBER;
7726 l_adr_transaction_coa_id NUMBER;
7727 l_adr_accounting_coa_id NUMBER;
7728 l_adr_flexfield_segment_code VARCHAR2(30);
7729 l_adr_flex_value_set_id NUMBER;
7730 l_adr_value_type_code VARCHAR2(30);
7731 l_adr_value_combination_id NUMBER;
7732 l_adr_value_segment_code VARCHAR2(30);
7733
7734 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7735 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7736 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7737 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7738
7739 -- 4262811 Variables ------------------------------------------------------------------------------------------
7740 l_entered_amt_idx NUMBER;
7741 l_accted_amt_idx NUMBER;
7742 l_acc_rev_flag VARCHAR2(1);
7743 l_accrual_line_num NUMBER;
7744 l_tmp_amt NUMBER;
7745 l_acc_rev_natural_side_code VARCHAR2(1);
7746
7747 l_num_entries NUMBER;
7748 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7749 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7750 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7751 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7752 l_recog_line_1 NUMBER;
7753 l_recog_line_2 NUMBER;
7754
7755 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7756 l_bflow_applied_to_amt NUMBER; -- 5132302
7757 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7758
7759 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7760
7761 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7762 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7763
7764 ---------------------------------------------------------------------------------------------------------------
7765
7766
7767 --
7768 -- bulk performance
7769 --
7770 l_balance_type_code VARCHAR2(1);
7771 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7772 l_log_module VARCHAR2(240);
7773
7774 --
7775 -- Upgrade strategy
7776 --
7777 l_actual_upg_option VARCHAR2(1);
7778 l_enc_upg_option VARCHAR2(1);
7779
7780 --
7781 BEGIN
7782 --
7783 IF g_log_enabled THEN
7784 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_16';
7785 END IF;
7786 --
7787 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7788
7789 trace
7790 (p_msg => 'BEGIN of AcctLineType_16'
7791 ,p_level => C_LEVEL_PROCEDURE
7792 ,p_module => l_log_module);
7793
7794 END IF;
7795 --
7796 l_component_type := 'AMB_JLT';
7797 l_component_code := 'RELIEVE_PO_ENC_ON_DTI';
7798 l_component_type_code := 'S';
7799 l_component_appl_id := 707;
7800 l_amb_context_code := 'DEFAULT';
7801 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
7802 l_event_class_code := 'PURCHASE_ORDER';
7803 l_event_type_code := 'LOG_PO_DEL_INV';
7804 l_line_definition_owner_code := 'S';
7805 l_line_definition_code := 'ENC_PO_DEL_INV_LOG_DEL';
7806 --
7807 l_balance_type_code := 'E';
7808 l_segment := NULL;
7809 l_ccid := NULL;
7810 l_adr_transaction_coa_id := NULL;
7811 l_adr_accounting_coa_id := NULL;
7812 l_adr_flexfield_segment_code := NULL;
7813 l_adr_flex_value_set_id := NULL;
7814 l_adr_value_type_code := NULL;
7815 l_adr_value_combination_id := NULL;
7816 l_adr_value_segment_code := NULL;
7817
7818 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
7819 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
7820 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
7821 l_budgetary_control_flag := 'Y';
7822
7823 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7824 l_bflow_applied_to_amt := NULL; -- 5132302
7825 l_entered_amt_idx := NULL; -- 4262811
7826 l_accted_amt_idx := NULL; -- 4262811
7827 l_acc_rev_flag := NULL; -- 4262811
7828 l_accrual_line_num := NULL; -- 4262811
7829 l_tmp_amt := NULL; -- 4262811
7830 --
7831
7832 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7833 l_balance_type_code <> 'B' THEN
7834 IF NVL(p_source_16,'
7835 ') = 'Y' AND
7836 NVL(p_source_31,'
7837 ') = 'Y' AND
7838 NVL(p_source_17,'
7839 ') = 'Y' AND
7840 NVL(
7841 xla_ae_sources_pkg.GetSystemSourceChar(
7842 p_source_code => 'XLA_EVENT_TYPE_CODE'
7843 , p_source_type_code => 'Y'
7844 , p_source_application_id => 602
7845 ),'
7846 ') = 'PO_DEL_INV' AND
7847 NVL(p_source_7,9E125) = 15
7848 THEN
7849
7850 --
7851 XLA_AE_LINES_PKG.SetNewLine;
7852
7853 p_balance_type_code := l_balance_type_code;
7854 -- set the flag so later we will know whether the gain loss line needs to be created
7855
7856 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7857 p_actual_flag :='A';
7858 END IF;
7859
7860 --
7861 -- bulk performance
7862 --
7863 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7864 p_header_num => 0); -- 4262811
7865 --
7866 -- set accounting line options
7867 --
7868 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7869 p_natural_side_code => 'C'
7870 , p_gain_or_loss_flag => 'N'
7871 , p_gl_transfer_mode_code => 'S'
7872 , p_acct_entry_type_code => 'E'
7873 , p_switch_side_flag => 'N'
7874 , p_merge_duplicate_code => 'N'
7875 );
7876 --
7877 l_acc_rev_natural_side_code := 'D'; -- 4262811
7878 --
7879 --
7880 -- set accounting line type info
7881 --
7882 xla_ae_lines_pkg.SetAcctLineType
7883 (p_component_type => l_component_type
7884 ,p_event_type_code => l_event_type_code
7885 ,p_line_definition_owner_code => l_line_definition_owner_code
7886 ,p_line_definition_code => l_line_definition_code
7887 ,p_accounting_line_code => l_component_code
7888 ,p_accounting_line_type_code => l_component_type_code
7889 ,p_accounting_line_appl_id => l_component_appl_id
7890 ,p_amb_context_code => l_amb_context_code
7891 ,p_entity_code => l_entity_code
7892 ,p_event_class_code => l_event_class_code);
7893 --
7894 -- set accounting class
7895 --
7896 xla_ae_lines_pkg.SetAcctClass(
7897 p_accounting_class_code => 'PURCHASE_ORDER'
7898 , p_ae_header_id => l_ae_header_id
7899 );
7900
7901 --
7902 -- set rounding class
7903 --
7904 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7905 'PURCHASE_ORDER';
7906
7907 --
7908 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7909 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7910 --
7911 -- bulk performance
7912 --
7913 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7914
7915 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7916 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7917
7918 -- 4955764
7919 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7920 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7921
7922 -- 4458381 Public Sector Enh
7923
7924 --
7925 -- set accounting attributes for the line type
7926 --
7927 l_entered_amt_idx := 17;
7928 l_accted_amt_idx := 19;
7929 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7930 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
7931 l_rec_acct_attrs.array_num_value(1) := p_source_19;
7932 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7933 l_rec_acct_attrs.array_char_value(2) := p_source_20;
7934 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
7935 l_rec_acct_attrs.array_char_value(3) := p_source_21;
7936 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
7937 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_22);
7938 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7939 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
7940 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
7941 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
7942 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
7943 l_rec_acct_attrs.array_char_value(7) := p_source_9;
7944 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
7945 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
7946 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
7947 l_rec_acct_attrs.array_num_value(9) := p_source_25;
7948 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
7949 l_rec_acct_attrs.array_char_value(10) := p_source_11;
7950 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
7951 l_rec_acct_attrs.array_num_value(11) := p_source_26;
7952 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
7953 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
7954 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
7955 l_rec_acct_attrs.array_num_value(13) := p_source_25;
7956 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
7957 l_rec_acct_attrs.array_char_value(14) := p_source_11;
7958 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
7959 l_rec_acct_attrs.array_num_value(15) := p_source_26;
7960 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
7961 l_rec_acct_attrs.array_char_value(16) := p_source_27;
7962 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
7963 l_rec_acct_attrs.array_num_value(17) := p_source_25;
7964 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
7965 l_rec_acct_attrs.array_char_value(18) := p_source_11;
7966 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
7967 l_rec_acct_attrs.array_num_value(19) := p_source_26;
7968 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
7969 l_rec_acct_attrs.array_num_value(20) := p_source_28;
7970 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
7971 l_rec_acct_attrs.array_num_value(21) := p_source_28;
7972
7973 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7974 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7975
7976 ---------------------------------------------------------------------------------------------------------------
7977 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7978 ---------------------------------------------------------------------------------------------------------------
7979 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7980
7981 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7982 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7983
7984 IF xla_accounting_cache_pkg.GetValueChar
7985 (p_source_code => 'LEDGER_CATEGORY_CODE'
7986 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7987 AND l_bflow_method_code = 'PRIOR_ENTRY'
7988 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7989 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7990 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7991 )
7992 THEN
7993 xla_ae_lines_pkg.BflowUpgEntry
7994 (p_business_method_code => l_bflow_method_code
7995 ,p_business_class_code => l_bflow_class_code
7996 ,p_balance_type => l_balance_type_code);
7997 ELSE
7998 NULL;
7999 XLA_AE_LINES_PKG.business_flow_validation(
8000 p_business_method_code => l_bflow_method_code
8001 ,p_business_class_code => l_bflow_class_code
8002 ,p_inherit_description_flag => l_inherit_desc_flag);
8003 END IF;
8004
8005 --
8006 -- call analytical criteria
8007 --
8008 -- Inherited Analytical Criteria for business flow method of Prior Entry.
8009 --
8010 -- call description
8011 --
8012 -- No description or it is inherited.
8013 --
8014 -- call ADRs
8015 -- Bug 4922099
8016 --
8017 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8018 (NVL(l_actual_upg_option, 'N') = 'O') OR
8019 (NVL(l_enc_upg_option, 'N') = 'O')
8020 )
8021 THEN
8022 NULL;
8023 --
8024 --
8025
8026 --
8027 --
8028 END IF;
8029 --
8030 -- Bug 4922099
8031 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8032 (NVL(l_enc_upg_option, 'N') = 'O')
8033 ) AND
8034 (l_bflow_method_code = 'PRIOR_ENTRY')
8035 )
8036 THEN
8037 IF
8038 --
8039 1 = 1
8040 --
8041 THEN
8042 xla_accounting_err_pkg.build_message
8043 (p_appli_s_name => 'XLA'
8044 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8045 ,p_token_1 => 'LINE_NUMBER'
8046 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8047 ,p_token_2 => 'LINE_TYPE_NAME'
8048 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8049 l_component_type
8050 ,l_component_code
8051 ,l_component_type_code
8052 ,l_component_appl_id
8053 ,l_amb_context_code
8054 ,l_entity_code
8055 ,l_event_class_code
8056 )
8057 ,p_token_3 => 'OWNER'
8058 ,p_value_3 => xla_lookups_pkg.get_meaning(
8059 p_lookup_type => 'XLA_OWNER_TYPE'
8060 ,p_lookup_code => l_component_type_code
8061 )
8062 ,p_token_4 => 'PRODUCT_NAME'
8063 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8064 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8065 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8066 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8067 ,p_ae_header_id => NULL
8068 );
8069
8070 IF (C_LEVEL_ERROR>= g_log_level) THEN
8071 trace
8072 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8073 ,p_level => C_LEVEL_ERROR
8074 ,p_module => l_log_module);
8075 END IF;
8076 END IF;
8077 END IF;
8078 --
8079 --
8080 ------------------------------------------------------------------------------------------------
8081 -- 4219869 Business Flow
8082 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8083 -- Prior Entry. Currently, the following code is always generated.
8084 ------------------------------------------------------------------------------------------------
8085 -- No ValidateCurrentLine for business flow method of Prior Entry
8086
8087 ------------------------------------------------------------------------------------
8088 -- 4219869 Business Flow
8089 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8090 ------------------------------------------------------------------------------------
8091 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8092
8093 ----------------------------------------------------------------------------------
8094 -- 4219869 Business Flow
8095 -- Update journal entry status -- Need to generate this within IF <condition>
8096 ----------------------------------------------------------------------------------
8097 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8098 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8099 ,p_balance_type_code => l_balance_type_code
8100 );
8101
8102 -------------------------------------------------------------------------------------------
8103 -- 4262811 - Generate the Accrual Reversal lines
8104 -------------------------------------------------------------------------------------------
8105 BEGIN
8106 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8107 (g_array_event(p_event_id).array_value_num('header_index'));
8108 IF l_acc_rev_flag IS NULL THEN
8109 l_acc_rev_flag := 'N';
8110 END IF;
8111 EXCEPTION
8112 WHEN OTHERS THEN
8113 l_acc_rev_flag := 'N';
8114 END;
8115 --
8116 IF (l_acc_rev_flag = 'Y') THEN
8117
8118 -- 4645092 ------------------------------------------------------------------------------
8119 -- To allow MPA report to determine if it should generate report process
8120 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8121 ------------------------------------------------------------------------------------------
8122
8123 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8124 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8125 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
8126 -- call ADRs
8127 -- Bug 4922099
8128 --
8129 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8130 (NVL(l_actual_upg_option, 'N') = 'O') OR
8131 (NVL(l_enc_upg_option, 'N') = 'O')
8132 )
8133 THEN
8134 NULL;
8135 --
8136 --
8137
8138 --
8139 --
8140 END IF;
8141
8142 --
8143 -- Update the line information that should be overwritten
8144 --
8145 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8146 p_header_num => 1);
8147 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8148
8149 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8150
8151 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8152 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8153 END IF;
8154
8155 --
8156 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8157 --
8158 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8159 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8160 ELSE
8161 ---------------------------------------------------------------------------------------------------
8162 -- 4262811a Switch Sign
8163 ---------------------------------------------------------------------------------------------------
8164 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8165 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8166 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8167 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8168 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8169 -- 5132302
8170 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8171 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8172
8173 END IF;
8174
8175 -- 4955764
8176 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8177 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8178
8179
8180 XLA_AE_LINES_PKG.ValidateCurrentLine;
8181 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8182
8183 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8184 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8185 ,p_balance_type_code => l_balance_type_code);
8186
8187 END IF;
8188
8189 -----------------------------------------------------------------------------------------
8190 -- 4262811 Multiperiod Accounting
8191 -----------------------------------------------------------------------------------------
8192 -- No MPA option is assigned.
8193
8194
8195 END IF;
8196 END IF;
8197 --
8198
8199 --
8200 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8201 trace
8202 (p_msg => 'END of AcctLineType_16'
8203 ,p_level => C_LEVEL_PROCEDURE
8204 ,p_module => l_log_module);
8205 END IF;
8206 --
8207 EXCEPTION
8208 WHEN xla_exceptions_pkg.application_exception THEN
8209 RAISE;
8210 WHEN OTHERS THEN
8211 xla_exceptions_pkg.raise_message
8212 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_16');
8213 END AcctLineType_16;
8214 --
8215
8216 ---------------------------------------
8217 --
8218 -- PRIVATE FUNCTION
8219 -- AcctLineType_17
8220 --
8221 ---------------------------------------
8222 PROCEDURE AcctLineType_17 (
8223 p_application_id IN NUMBER
8224 ,p_event_id IN NUMBER
8225 ,p_calculate_acctd_flag IN VARCHAR2
8226 ,p_calculate_g_l_flag IN VARCHAR2
8227 ,p_actual_flag IN OUT VARCHAR2
8228 ,p_balance_type_code OUT VARCHAR2
8229 ,p_gain_or_loss_ref OUT VARCHAR2
8230
8231 --Accounting Line Type
8232 , p_source_7 IN NUMBER
8233 --DISTRIBUTION_IDENTIFIER
8234 , p_source_8 IN NUMBER
8235 --Distribution Type
8236 , p_source_9 IN VARCHAR2
8237 , p_source_9_meaning IN VARCHAR2
8238 --Entered Currency Code
8239 , p_source_11 IN VARCHAR2
8240 --Purchasing Encumbrance Flag
8241 , p_source_16 IN VARCHAR2
8242 --Organization Encumbrance Reversal Indicator
8243 , p_source_17 IN VARCHAR2
8244 --Applied to Application ID
8245 , p_source_19 IN NUMBER
8246 --Applied to Distribution Link Type
8247 , p_source_20 IN VARCHAR2
8248 --Applied to Entity Code
8249 , p_source_21 IN VARCHAR2
8250 --TXN_PO_DISTRIBUTION_ID
8251 , p_source_22 IN NUMBER
8252 --Applied To Purchase Document Identifier
8253 , p_source_23 IN NUMBER
8254 --PO Budget Account
8255 , p_source_24 IN NUMBER
8256 --Encumbrance Reversal Amount Entered
8257 , p_source_25 IN NUMBER
8258 --Transaction Encumbrance Reversal Amount
8259 , p_source_26 IN NUMBER
8260 --Costing Encumbrance Upgrade Option
8261 , p_source_27 IN VARCHAR2
8262 --Purchasing Encumbrance Type Identifier
8263 , p_source_28 IN NUMBER
8264 --Reserved Flag
8265 , p_source_31 IN VARCHAR2
8266 )
8267 IS
8268
8269 l_component_type VARCHAR2(80);
8270 l_component_code VARCHAR2(30);
8271 l_component_type_code VARCHAR2(1);
8272 l_component_appl_id INTEGER;
8273 l_amb_context_code VARCHAR2(30);
8274 l_entity_code VARCHAR2(30);
8275 l_event_class_code VARCHAR2(30);
8276 l_ae_header_id NUMBER;
8277 l_event_type_code VARCHAR2(30);
8278 l_line_definition_code VARCHAR2(30);
8279 l_line_definition_owner_code VARCHAR2(1);
8280 --
8281 -- adr variables
8282 l_segment VARCHAR2(30);
8283 l_ccid NUMBER;
8284 l_adr_transaction_coa_id NUMBER;
8285 l_adr_accounting_coa_id NUMBER;
8286 l_adr_flexfield_segment_code VARCHAR2(30);
8287 l_adr_flex_value_set_id NUMBER;
8288 l_adr_value_type_code VARCHAR2(30);
8289 l_adr_value_combination_id NUMBER;
8290 l_adr_value_segment_code VARCHAR2(30);
8291
8292 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8293 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8294 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8295 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8296
8297 -- 4262811 Variables ------------------------------------------------------------------------------------------
8298 l_entered_amt_idx NUMBER;
8299 l_accted_amt_idx NUMBER;
8300 l_acc_rev_flag VARCHAR2(1);
8301 l_accrual_line_num NUMBER;
8302 l_tmp_amt NUMBER;
8303 l_acc_rev_natural_side_code VARCHAR2(1);
8304
8305 l_num_entries NUMBER;
8306 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8307 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8308 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8309 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8310 l_recog_line_1 NUMBER;
8311 l_recog_line_2 NUMBER;
8312
8313 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8314 l_bflow_applied_to_amt NUMBER; -- 5132302
8315 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8316
8317 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8318
8319 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8320 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8321
8322 ---------------------------------------------------------------------------------------------------------------
8323
8324
8325 --
8326 -- bulk performance
8327 --
8328 l_balance_type_code VARCHAR2(1);
8329 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8330 l_log_module VARCHAR2(240);
8331
8332 --
8333 -- Upgrade strategy
8334 --
8335 l_actual_upg_option VARCHAR2(1);
8336 l_enc_upg_option VARCHAR2(1);
8337
8338 --
8339 BEGIN
8340 --
8341 IF g_log_enabled THEN
8342 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_17';
8343 END IF;
8344 --
8345 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8346
8347 trace
8348 (p_msg => 'BEGIN of AcctLineType_17'
8349 ,p_level => C_LEVEL_PROCEDURE
8350 ,p_module => l_log_module);
8351
8352 END IF;
8353 --
8354 l_component_type := 'AMB_JLT';
8355 l_component_code := 'RELIEVE_PO_ENC_ON_DTI';
8356 l_component_type_code := 'S';
8357 l_component_appl_id := 707;
8358 l_amb_context_code := 'DEFAULT';
8359 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
8360 l_event_class_code := 'PURCHASE_ORDER';
8361 l_event_type_code := 'LOG_RET_RI_INV';
8362 l_line_definition_owner_code := 'S';
8363 l_line_definition_code := 'ENC_PO_DEL_INV_LOG_RET_RI';
8364 --
8365 l_balance_type_code := 'E';
8366 l_segment := NULL;
8367 l_ccid := NULL;
8368 l_adr_transaction_coa_id := NULL;
8369 l_adr_accounting_coa_id := NULL;
8370 l_adr_flexfield_segment_code := NULL;
8371 l_adr_flex_value_set_id := NULL;
8372 l_adr_value_type_code := NULL;
8373 l_adr_value_combination_id := NULL;
8374 l_adr_value_segment_code := NULL;
8375
8376 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
8377 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
8378 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
8379 l_budgetary_control_flag := 'Y';
8380
8381 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8382 l_bflow_applied_to_amt := NULL; -- 5132302
8383 l_entered_amt_idx := NULL; -- 4262811
8384 l_accted_amt_idx := NULL; -- 4262811
8385 l_acc_rev_flag := NULL; -- 4262811
8386 l_accrual_line_num := NULL; -- 4262811
8387 l_tmp_amt := NULL; -- 4262811
8388 --
8389
8390 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8391 l_balance_type_code <> 'B' THEN
8392 IF NVL(p_source_16,'
8393 ') = 'Y' AND
8394 NVL(p_source_31,'
8395 ') = 'Y' AND
8396 NVL(p_source_17,'
8397 ') = 'Y' AND
8398 NVL(
8399 xla_ae_sources_pkg.GetSystemSourceChar(
8400 p_source_code => 'XLA_EVENT_TYPE_CODE'
8401 , p_source_type_code => 'Y'
8402 , p_source_application_id => 602
8403 ),'
8404 ') = 'PO_DEL_INV' AND
8405 NVL(p_source_7,9E125) = 15
8406 THEN
8407
8408 --
8409 XLA_AE_LINES_PKG.SetNewLine;
8410
8411 p_balance_type_code := l_balance_type_code;
8412 -- set the flag so later we will know whether the gain loss line needs to be created
8413
8414 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8415 p_actual_flag :='A';
8416 END IF;
8417
8418 --
8419 -- bulk performance
8420 --
8421 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8422 p_header_num => 0); -- 4262811
8423 --
8424 -- set accounting line options
8425 --
8426 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8427 p_natural_side_code => 'C'
8428 , p_gain_or_loss_flag => 'N'
8429 , p_gl_transfer_mode_code => 'S'
8430 , p_acct_entry_type_code => 'E'
8431 , p_switch_side_flag => 'N'
8432 , p_merge_duplicate_code => 'N'
8433 );
8434 --
8435 l_acc_rev_natural_side_code := 'D'; -- 4262811
8436 --
8437 --
8438 -- set accounting line type info
8439 --
8440 xla_ae_lines_pkg.SetAcctLineType
8441 (p_component_type => l_component_type
8442 ,p_event_type_code => l_event_type_code
8443 ,p_line_definition_owner_code => l_line_definition_owner_code
8444 ,p_line_definition_code => l_line_definition_code
8445 ,p_accounting_line_code => l_component_code
8446 ,p_accounting_line_type_code => l_component_type_code
8447 ,p_accounting_line_appl_id => l_component_appl_id
8448 ,p_amb_context_code => l_amb_context_code
8449 ,p_entity_code => l_entity_code
8450 ,p_event_class_code => l_event_class_code);
8451 --
8452 -- set accounting class
8453 --
8454 xla_ae_lines_pkg.SetAcctClass(
8455 p_accounting_class_code => 'PURCHASE_ORDER'
8456 , p_ae_header_id => l_ae_header_id
8457 );
8458
8459 --
8460 -- set rounding class
8461 --
8462 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8463 'PURCHASE_ORDER';
8464
8465 --
8466 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8467 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8468 --
8469 -- bulk performance
8470 --
8471 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8472
8473 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8474 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8475
8476 -- 4955764
8477 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8478 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8479
8480 -- 4458381 Public Sector Enh
8481
8482 --
8483 -- set accounting attributes for the line type
8484 --
8485 l_entered_amt_idx := 17;
8486 l_accted_amt_idx := 19;
8487 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8488 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
8489 l_rec_acct_attrs.array_num_value(1) := p_source_19;
8490 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8491 l_rec_acct_attrs.array_char_value(2) := p_source_20;
8492 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
8493 l_rec_acct_attrs.array_char_value(3) := p_source_21;
8494 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
8495 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_22);
8496 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8497 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
8498 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
8499 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
8500 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
8501 l_rec_acct_attrs.array_char_value(7) := p_source_9;
8502 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
8503 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
8504 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
8505 l_rec_acct_attrs.array_num_value(9) := p_source_25;
8506 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
8507 l_rec_acct_attrs.array_char_value(10) := p_source_11;
8508 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
8509 l_rec_acct_attrs.array_num_value(11) := p_source_26;
8510 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
8511 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
8512 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
8513 l_rec_acct_attrs.array_num_value(13) := p_source_25;
8514 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
8515 l_rec_acct_attrs.array_char_value(14) := p_source_11;
8516 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
8517 l_rec_acct_attrs.array_num_value(15) := p_source_26;
8518 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
8519 l_rec_acct_attrs.array_char_value(16) := p_source_27;
8520 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
8521 l_rec_acct_attrs.array_num_value(17) := p_source_25;
8522 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
8523 l_rec_acct_attrs.array_char_value(18) := p_source_11;
8524 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
8525 l_rec_acct_attrs.array_num_value(19) := p_source_26;
8526 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
8527 l_rec_acct_attrs.array_num_value(20) := p_source_28;
8528 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
8529 l_rec_acct_attrs.array_num_value(21) := p_source_28;
8530
8531 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8532 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8533
8534 ---------------------------------------------------------------------------------------------------------------
8535 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8536 ---------------------------------------------------------------------------------------------------------------
8537 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8538
8539 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8540 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8541
8542 IF xla_accounting_cache_pkg.GetValueChar
8543 (p_source_code => 'LEDGER_CATEGORY_CODE'
8544 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8545 AND l_bflow_method_code = 'PRIOR_ENTRY'
8546 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8547 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8548 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8549 )
8550 THEN
8551 xla_ae_lines_pkg.BflowUpgEntry
8552 (p_business_method_code => l_bflow_method_code
8553 ,p_business_class_code => l_bflow_class_code
8554 ,p_balance_type => l_balance_type_code);
8555 ELSE
8556 NULL;
8557 XLA_AE_LINES_PKG.business_flow_validation(
8558 p_business_method_code => l_bflow_method_code
8559 ,p_business_class_code => l_bflow_class_code
8560 ,p_inherit_description_flag => l_inherit_desc_flag);
8561 END IF;
8562
8563 --
8564 -- call analytical criteria
8565 --
8566 -- Inherited Analytical Criteria for business flow method of Prior Entry.
8567 --
8568 -- call description
8569 --
8570 -- No description or it is inherited.
8571 --
8572 -- call ADRs
8573 -- Bug 4922099
8574 --
8575 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8576 (NVL(l_actual_upg_option, 'N') = 'O') OR
8577 (NVL(l_enc_upg_option, 'N') = 'O')
8578 )
8579 THEN
8580 NULL;
8581 --
8582 --
8583
8584 --
8585 --
8586 END IF;
8587 --
8588 -- Bug 4922099
8589 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8590 (NVL(l_enc_upg_option, 'N') = 'O')
8591 ) AND
8592 (l_bflow_method_code = 'PRIOR_ENTRY')
8593 )
8594 THEN
8595 IF
8596 --
8597 1 = 1
8598 --
8599 THEN
8600 xla_accounting_err_pkg.build_message
8601 (p_appli_s_name => 'XLA'
8602 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8603 ,p_token_1 => 'LINE_NUMBER'
8604 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8605 ,p_token_2 => 'LINE_TYPE_NAME'
8606 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8607 l_component_type
8608 ,l_component_code
8609 ,l_component_type_code
8610 ,l_component_appl_id
8611 ,l_amb_context_code
8612 ,l_entity_code
8613 ,l_event_class_code
8614 )
8615 ,p_token_3 => 'OWNER'
8616 ,p_value_3 => xla_lookups_pkg.get_meaning(
8617 p_lookup_type => 'XLA_OWNER_TYPE'
8618 ,p_lookup_code => l_component_type_code
8619 )
8620 ,p_token_4 => 'PRODUCT_NAME'
8621 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8622 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8623 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8624 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8625 ,p_ae_header_id => NULL
8626 );
8627
8628 IF (C_LEVEL_ERROR>= g_log_level) THEN
8629 trace
8630 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8631 ,p_level => C_LEVEL_ERROR
8632 ,p_module => l_log_module);
8633 END IF;
8634 END IF;
8635 END IF;
8636 --
8637 --
8638 ------------------------------------------------------------------------------------------------
8639 -- 4219869 Business Flow
8640 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8641 -- Prior Entry. Currently, the following code is always generated.
8642 ------------------------------------------------------------------------------------------------
8643 -- No ValidateCurrentLine for business flow method of Prior Entry
8644
8645 ------------------------------------------------------------------------------------
8646 -- 4219869 Business Flow
8647 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8648 ------------------------------------------------------------------------------------
8649 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8650
8651 ----------------------------------------------------------------------------------
8652 -- 4219869 Business Flow
8653 -- Update journal entry status -- Need to generate this within IF <condition>
8654 ----------------------------------------------------------------------------------
8655 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8656 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8657 ,p_balance_type_code => l_balance_type_code
8658 );
8659
8660 -------------------------------------------------------------------------------------------
8661 -- 4262811 - Generate the Accrual Reversal lines
8662 -------------------------------------------------------------------------------------------
8663 BEGIN
8664 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8665 (g_array_event(p_event_id).array_value_num('header_index'));
8666 IF l_acc_rev_flag IS NULL THEN
8667 l_acc_rev_flag := 'N';
8668 END IF;
8669 EXCEPTION
8670 WHEN OTHERS THEN
8671 l_acc_rev_flag := 'N';
8672 END;
8673 --
8674 IF (l_acc_rev_flag = 'Y') THEN
8675
8676 -- 4645092 ------------------------------------------------------------------------------
8677 -- To allow MPA report to determine if it should generate report process
8678 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8679 ------------------------------------------------------------------------------------------
8680
8681 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8682 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8683 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
8684 -- call ADRs
8685 -- Bug 4922099
8686 --
8687 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8688 (NVL(l_actual_upg_option, 'N') = 'O') OR
8689 (NVL(l_enc_upg_option, 'N') = 'O')
8690 )
8691 THEN
8692 NULL;
8693 --
8694 --
8695
8696 --
8697 --
8698 END IF;
8699
8700 --
8701 -- Update the line information that should be overwritten
8702 --
8703 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8704 p_header_num => 1);
8705 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8706
8707 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8708
8709 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8710 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8711 END IF;
8712
8713 --
8714 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8715 --
8716 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8717 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8718 ELSE
8719 ---------------------------------------------------------------------------------------------------
8720 -- 4262811a Switch Sign
8721 ---------------------------------------------------------------------------------------------------
8722 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8723 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8724 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8725 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8726 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8727 -- 5132302
8728 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8729 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8730
8731 END IF;
8732
8733 -- 4955764
8734 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8735 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8736
8737
8738 XLA_AE_LINES_PKG.ValidateCurrentLine;
8739 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8740
8741 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8742 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8743 ,p_balance_type_code => l_balance_type_code);
8744
8745 END IF;
8746
8747 -----------------------------------------------------------------------------------------
8748 -- 4262811 Multiperiod Accounting
8749 -----------------------------------------------------------------------------------------
8750 -- No MPA option is assigned.
8751
8752
8753 END IF;
8754 END IF;
8755 --
8756
8757 --
8758 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8759 trace
8760 (p_msg => 'END of AcctLineType_17'
8761 ,p_level => C_LEVEL_PROCEDURE
8762 ,p_module => l_log_module);
8763 END IF;
8764 --
8765 EXCEPTION
8766 WHEN xla_exceptions_pkg.application_exception THEN
8767 RAISE;
8768 WHEN OTHERS THEN
8769 xla_exceptions_pkg.raise_message
8770 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_17');
8771 END AcctLineType_17;
8772 --
8773
8774 ---------------------------------------
8775 --
8776 -- PRIVATE FUNCTION
8777 -- AcctLineType_18
8778 --
8779 ---------------------------------------
8780 PROCEDURE AcctLineType_18 (
8781 p_application_id IN NUMBER
8782 ,p_event_id IN NUMBER
8783 ,p_calculate_acctd_flag IN VARCHAR2
8784 ,p_calculate_g_l_flag IN VARCHAR2
8785 ,p_actual_flag IN OUT VARCHAR2
8786 ,p_balance_type_code OUT VARCHAR2
8787 ,p_gain_or_loss_ref OUT VARCHAR2
8788
8789 --Accounting Line Type
8790 , p_source_7 IN NUMBER
8791 --DISTRIBUTION_IDENTIFIER
8792 , p_source_8 IN NUMBER
8793 --Distribution Type
8794 , p_source_9 IN VARCHAR2
8795 , p_source_9_meaning IN VARCHAR2
8796 --Entered Currency Code
8797 , p_source_11 IN VARCHAR2
8798 --Purchasing Encumbrance Flag
8799 , p_source_16 IN VARCHAR2
8800 --Organization Encumbrance Reversal Indicator
8801 , p_source_17 IN VARCHAR2
8802 --Applied to Application ID
8803 , p_source_19 IN NUMBER
8804 --Applied to Distribution Link Type
8805 , p_source_20 IN VARCHAR2
8806 --Applied to Entity Code
8807 , p_source_21 IN VARCHAR2
8808 --TXN_PO_DISTRIBUTION_ID
8809 , p_source_22 IN NUMBER
8810 --Applied To Purchase Document Identifier
8811 , p_source_23 IN NUMBER
8812 --PO Budget Account
8813 , p_source_24 IN NUMBER
8814 --Encumbrance Reversal Amount Entered
8815 , p_source_25 IN NUMBER
8816 --Transaction Encumbrance Reversal Amount
8817 , p_source_26 IN NUMBER
8818 --Costing Encumbrance Upgrade Option
8819 , p_source_27 IN VARCHAR2
8820 --Purchasing Encumbrance Type Identifier
8821 , p_source_28 IN NUMBER
8822 --Reserved Flag
8823 , p_source_31 IN VARCHAR2
8824 )
8825 IS
8826
8827 l_component_type VARCHAR2(80);
8828 l_component_code VARCHAR2(30);
8829 l_component_type_code VARCHAR2(1);
8830 l_component_appl_id INTEGER;
8831 l_amb_context_code VARCHAR2(30);
8832 l_entity_code VARCHAR2(30);
8833 l_event_class_code VARCHAR2(30);
8834 l_ae_header_id NUMBER;
8835 l_event_type_code VARCHAR2(30);
8836 l_line_definition_code VARCHAR2(30);
8837 l_line_definition_owner_code VARCHAR2(1);
8838 --
8839 -- adr variables
8840 l_segment VARCHAR2(30);
8841 l_ccid NUMBER;
8842 l_adr_transaction_coa_id NUMBER;
8843 l_adr_accounting_coa_id NUMBER;
8844 l_adr_flexfield_segment_code VARCHAR2(30);
8845 l_adr_flex_value_set_id NUMBER;
8846 l_adr_value_type_code VARCHAR2(30);
8847 l_adr_value_combination_id NUMBER;
8848 l_adr_value_segment_code VARCHAR2(30);
8849
8850 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8851 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8852 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8853 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8854
8855 -- 4262811 Variables ------------------------------------------------------------------------------------------
8856 l_entered_amt_idx NUMBER;
8857 l_accted_amt_idx NUMBER;
8858 l_acc_rev_flag VARCHAR2(1);
8859 l_accrual_line_num NUMBER;
8860 l_tmp_amt NUMBER;
8861 l_acc_rev_natural_side_code VARCHAR2(1);
8862
8863 l_num_entries NUMBER;
8864 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8865 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8866 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8867 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8868 l_recog_line_1 NUMBER;
8869 l_recog_line_2 NUMBER;
8870
8871 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8872 l_bflow_applied_to_amt NUMBER; -- 5132302
8873 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8874
8875 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8876
8877 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8878 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8879
8880 ---------------------------------------------------------------------------------------------------------------
8881
8882
8883 --
8884 -- bulk performance
8885 --
8886 l_balance_type_code VARCHAR2(1);
8887 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8888 l_log_module VARCHAR2(240);
8889
8890 --
8891 -- Upgrade strategy
8892 --
8893 l_actual_upg_option VARCHAR2(1);
8894 l_enc_upg_option VARCHAR2(1);
8895
8896 --
8897 BEGIN
8898 --
8899 IF g_log_enabled THEN
8900 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_18';
8901 END IF;
8902 --
8903 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8904
8905 trace
8906 (p_msg => 'BEGIN of AcctLineType_18'
8907 ,p_level => C_LEVEL_PROCEDURE
8908 ,p_module => l_log_module);
8909
8910 END IF;
8911 --
8912 l_component_type := 'AMB_JLT';
8913 l_component_code := 'RELIEVE_PO_ENC_ON_DTI';
8914 l_component_type_code := 'S';
8915 l_component_appl_id := 707;
8916 l_amb_context_code := 'DEFAULT';
8917 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
8918 l_event_class_code := 'PURCHASE_ORDER';
8919 l_event_type_code := 'LOG_PO_DEL_ADJ';
8920 l_line_definition_owner_code := 'S';
8921 l_line_definition_code := 'ENC_PO_DEL_INV_LOG_DEL_ADJ';
8922 --
8923 l_balance_type_code := 'E';
8924 l_segment := NULL;
8925 l_ccid := NULL;
8926 l_adr_transaction_coa_id := NULL;
8927 l_adr_accounting_coa_id := NULL;
8928 l_adr_flexfield_segment_code := NULL;
8929 l_adr_flex_value_set_id := NULL;
8930 l_adr_value_type_code := NULL;
8931 l_adr_value_combination_id := NULL;
8932 l_adr_value_segment_code := NULL;
8933
8934 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
8935 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
8936 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
8937 l_budgetary_control_flag := 'Y';
8938
8939 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8940 l_bflow_applied_to_amt := NULL; -- 5132302
8941 l_entered_amt_idx := NULL; -- 4262811
8942 l_accted_amt_idx := NULL; -- 4262811
8943 l_acc_rev_flag := NULL; -- 4262811
8944 l_accrual_line_num := NULL; -- 4262811
8945 l_tmp_amt := NULL; -- 4262811
8946 --
8947
8948 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8949 l_balance_type_code <> 'B' THEN
8950 IF NVL(p_source_16,'
8951 ') = 'Y' AND
8952 NVL(p_source_31,'
8953 ') = 'Y' AND
8954 NVL(p_source_17,'
8955 ') = 'Y' AND
8956 NVL(
8957 xla_ae_sources_pkg.GetSystemSourceChar(
8958 p_source_code => 'XLA_EVENT_TYPE_CODE'
8959 , p_source_type_code => 'Y'
8960 , p_source_application_id => 602
8961 ),'
8962 ') = 'PO_DEL_INV' AND
8963 NVL(p_source_7,9E125) = 15
8964 THEN
8965
8966 --
8967 XLA_AE_LINES_PKG.SetNewLine;
8968
8969 p_balance_type_code := l_balance_type_code;
8970 -- set the flag so later we will know whether the gain loss line needs to be created
8971
8972 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8973 p_actual_flag :='A';
8974 END IF;
8975
8976 --
8977 -- bulk performance
8978 --
8979 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8980 p_header_num => 0); -- 4262811
8981 --
8982 -- set accounting line options
8983 --
8984 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8985 p_natural_side_code => 'C'
8986 , p_gain_or_loss_flag => 'N'
8987 , p_gl_transfer_mode_code => 'S'
8988 , p_acct_entry_type_code => 'E'
8989 , p_switch_side_flag => 'N'
8990 , p_merge_duplicate_code => 'N'
8991 );
8992 --
8993 l_acc_rev_natural_side_code := 'D'; -- 4262811
8994 --
8995 --
8996 -- set accounting line type info
8997 --
8998 xla_ae_lines_pkg.SetAcctLineType
8999 (p_component_type => l_component_type
9000 ,p_event_type_code => l_event_type_code
9001 ,p_line_definition_owner_code => l_line_definition_owner_code
9002 ,p_line_definition_code => l_line_definition_code
9003 ,p_accounting_line_code => l_component_code
9004 ,p_accounting_line_type_code => l_component_type_code
9005 ,p_accounting_line_appl_id => l_component_appl_id
9006 ,p_amb_context_code => l_amb_context_code
9007 ,p_entity_code => l_entity_code
9008 ,p_event_class_code => l_event_class_code);
9009 --
9010 -- set accounting class
9011 --
9012 xla_ae_lines_pkg.SetAcctClass(
9013 p_accounting_class_code => 'PURCHASE_ORDER'
9014 , p_ae_header_id => l_ae_header_id
9015 );
9016
9017 --
9018 -- set rounding class
9019 --
9020 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9021 'PURCHASE_ORDER';
9022
9023 --
9024 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9025 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9026 --
9027 -- bulk performance
9028 --
9029 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9030
9031 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9032 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9033
9034 -- 4955764
9035 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9036 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9037
9038 -- 4458381 Public Sector Enh
9039
9040 --
9041 -- set accounting attributes for the line type
9042 --
9043 l_entered_amt_idx := 17;
9044 l_accted_amt_idx := 19;
9045 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9046 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
9047 l_rec_acct_attrs.array_num_value(1) := p_source_19;
9048 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9049 l_rec_acct_attrs.array_char_value(2) := p_source_20;
9050 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
9051 l_rec_acct_attrs.array_char_value(3) := p_source_21;
9052 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
9053 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_22);
9054 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9055 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
9056 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
9057 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
9058 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
9059 l_rec_acct_attrs.array_char_value(7) := p_source_9;
9060 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
9061 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
9062 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
9063 l_rec_acct_attrs.array_num_value(9) := p_source_25;
9064 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
9065 l_rec_acct_attrs.array_char_value(10) := p_source_11;
9066 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
9067 l_rec_acct_attrs.array_num_value(11) := p_source_26;
9068 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
9069 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
9070 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
9071 l_rec_acct_attrs.array_num_value(13) := p_source_25;
9072 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
9073 l_rec_acct_attrs.array_char_value(14) := p_source_11;
9074 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
9075 l_rec_acct_attrs.array_num_value(15) := p_source_26;
9076 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
9077 l_rec_acct_attrs.array_char_value(16) := p_source_27;
9078 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
9079 l_rec_acct_attrs.array_num_value(17) := p_source_25;
9080 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
9081 l_rec_acct_attrs.array_char_value(18) := p_source_11;
9082 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
9083 l_rec_acct_attrs.array_num_value(19) := p_source_26;
9084 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
9085 l_rec_acct_attrs.array_num_value(20) := p_source_28;
9086 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
9087 l_rec_acct_attrs.array_num_value(21) := p_source_28;
9088
9089 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9090 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9091
9092 ---------------------------------------------------------------------------------------------------------------
9093 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9094 ---------------------------------------------------------------------------------------------------------------
9095 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9096
9097 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9098 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9099
9100 IF xla_accounting_cache_pkg.GetValueChar
9101 (p_source_code => 'LEDGER_CATEGORY_CODE'
9102 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9103 AND l_bflow_method_code = 'PRIOR_ENTRY'
9104 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9105 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9106 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9107 )
9108 THEN
9109 xla_ae_lines_pkg.BflowUpgEntry
9110 (p_business_method_code => l_bflow_method_code
9111 ,p_business_class_code => l_bflow_class_code
9112 ,p_balance_type => l_balance_type_code);
9113 ELSE
9114 NULL;
9115 XLA_AE_LINES_PKG.business_flow_validation(
9116 p_business_method_code => l_bflow_method_code
9117 ,p_business_class_code => l_bflow_class_code
9118 ,p_inherit_description_flag => l_inherit_desc_flag);
9119 END IF;
9120
9121 --
9122 -- call analytical criteria
9123 --
9124 -- Inherited Analytical Criteria for business flow method of Prior Entry.
9125 --
9126 -- call description
9127 --
9128 -- No description or it is inherited.
9129 --
9130 -- call ADRs
9131 -- Bug 4922099
9132 --
9133 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9134 (NVL(l_actual_upg_option, 'N') = 'O') OR
9135 (NVL(l_enc_upg_option, 'N') = 'O')
9136 )
9137 THEN
9138 NULL;
9139 --
9140 --
9141
9142 --
9143 --
9144 END IF;
9145 --
9146 -- Bug 4922099
9147 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9148 (NVL(l_enc_upg_option, 'N') = 'O')
9149 ) AND
9150 (l_bflow_method_code = 'PRIOR_ENTRY')
9151 )
9152 THEN
9153 IF
9154 --
9155 1 = 1
9156 --
9157 THEN
9158 xla_accounting_err_pkg.build_message
9159 (p_appli_s_name => 'XLA'
9160 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9161 ,p_token_1 => 'LINE_NUMBER'
9162 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
9163 ,p_token_2 => 'LINE_TYPE_NAME'
9164 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9165 l_component_type
9166 ,l_component_code
9167 ,l_component_type_code
9168 ,l_component_appl_id
9169 ,l_amb_context_code
9170 ,l_entity_code
9171 ,l_event_class_code
9172 )
9173 ,p_token_3 => 'OWNER'
9174 ,p_value_3 => xla_lookups_pkg.get_meaning(
9175 p_lookup_type => 'XLA_OWNER_TYPE'
9176 ,p_lookup_code => l_component_type_code
9177 )
9178 ,p_token_4 => 'PRODUCT_NAME'
9179 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9180 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9181 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9182 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9183 ,p_ae_header_id => NULL
9184 );
9185
9186 IF (C_LEVEL_ERROR>= g_log_level) THEN
9187 trace
9188 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9189 ,p_level => C_LEVEL_ERROR
9190 ,p_module => l_log_module);
9191 END IF;
9192 END IF;
9193 END IF;
9194 --
9195 --
9196 ------------------------------------------------------------------------------------------------
9197 -- 4219869 Business Flow
9198 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9199 -- Prior Entry. Currently, the following code is always generated.
9200 ------------------------------------------------------------------------------------------------
9201 -- No ValidateCurrentLine for business flow method of Prior Entry
9202
9203 ------------------------------------------------------------------------------------
9204 -- 4219869 Business Flow
9205 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9206 ------------------------------------------------------------------------------------
9207 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9208
9209 ----------------------------------------------------------------------------------
9210 -- 4219869 Business Flow
9211 -- Update journal entry status -- Need to generate this within IF <condition>
9212 ----------------------------------------------------------------------------------
9213 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9214 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9215 ,p_balance_type_code => l_balance_type_code
9216 );
9217
9218 -------------------------------------------------------------------------------------------
9219 -- 4262811 - Generate the Accrual Reversal lines
9220 -------------------------------------------------------------------------------------------
9221 BEGIN
9222 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9223 (g_array_event(p_event_id).array_value_num('header_index'));
9224 IF l_acc_rev_flag IS NULL THEN
9225 l_acc_rev_flag := 'N';
9226 END IF;
9227 EXCEPTION
9228 WHEN OTHERS THEN
9229 l_acc_rev_flag := 'N';
9230 END;
9231 --
9232 IF (l_acc_rev_flag = 'Y') THEN
9233
9234 -- 4645092 ------------------------------------------------------------------------------
9235 -- To allow MPA report to determine if it should generate report process
9236 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9237 ------------------------------------------------------------------------------------------
9238
9239 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9240 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9241 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
9242 -- call ADRs
9243 -- Bug 4922099
9244 --
9245 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9246 (NVL(l_actual_upg_option, 'N') = 'O') OR
9247 (NVL(l_enc_upg_option, 'N') = 'O')
9248 )
9249 THEN
9250 NULL;
9251 --
9252 --
9253
9254 --
9255 --
9256 END IF;
9257
9258 --
9259 -- Update the line information that should be overwritten
9260 --
9261 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9262 p_header_num => 1);
9263 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9264
9265 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9266
9267 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9268 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9269 END IF;
9270
9271 --
9272 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9273 --
9274 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9275 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9276 ELSE
9277 ---------------------------------------------------------------------------------------------------
9278 -- 4262811a Switch Sign
9279 ---------------------------------------------------------------------------------------------------
9280 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9281 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9282 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9283 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9284 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9285 -- 5132302
9286 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9287 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9288
9289 END IF;
9290
9291 -- 4955764
9292 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9293 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9294
9295
9296 XLA_AE_LINES_PKG.ValidateCurrentLine;
9297 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9298
9299 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9300 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9301 ,p_balance_type_code => l_balance_type_code);
9302
9303 END IF;
9304
9305 -----------------------------------------------------------------------------------------
9306 -- 4262811 Multiperiod Accounting
9307 -----------------------------------------------------------------------------------------
9308 -- No MPA option is assigned.
9309
9310
9311 END IF;
9312 END IF;
9313 --
9314
9315 --
9316 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9317 trace
9318 (p_msg => 'END of AcctLineType_18'
9319 ,p_level => C_LEVEL_PROCEDURE
9320 ,p_module => l_log_module);
9321 END IF;
9322 --
9323 EXCEPTION
9324 WHEN xla_exceptions_pkg.application_exception THEN
9325 RAISE;
9326 WHEN OTHERS THEN
9327 xla_exceptions_pkg.raise_message
9328 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_18');
9329 END AcctLineType_18;
9330 --
9331
9332 ---------------------------------------
9333 --
9334 -- PRIVATE FUNCTION
9335 -- AcctLineType_19
9336 --
9337 ---------------------------------------
9338 PROCEDURE AcctLineType_19 (
9339 p_application_id IN NUMBER
9340 ,p_event_id IN NUMBER
9341 ,p_calculate_acctd_flag IN VARCHAR2
9342 ,p_calculate_g_l_flag IN VARCHAR2
9343 ,p_actual_flag IN OUT VARCHAR2
9344 ,p_balance_type_code OUT VARCHAR2
9345 ,p_gain_or_loss_ref OUT VARCHAR2
9346
9347 --Accounting Line Type
9348 , p_source_7 IN NUMBER
9349 --DISTRIBUTION_IDENTIFIER
9350 , p_source_8 IN NUMBER
9351 --Distribution Type
9352 , p_source_9 IN VARCHAR2
9353 , p_source_9_meaning IN VARCHAR2
9354 --Entered Currency Code
9355 , p_source_11 IN VARCHAR2
9356 --Purchasing Encumbrance Flag
9357 , p_source_16 IN VARCHAR2
9358 --Organization Encumbrance Reversal Indicator
9359 , p_source_17 IN VARCHAR2
9360 --Applied to Application ID
9361 , p_source_19 IN NUMBER
9362 --Applied to Distribution Link Type
9363 , p_source_20 IN VARCHAR2
9364 --Applied to Entity Code
9365 , p_source_21 IN VARCHAR2
9366 --TXN_PO_DISTRIBUTION_ID
9367 , p_source_22 IN NUMBER
9368 --Applied To Purchase Document Identifier
9369 , p_source_23 IN NUMBER
9370 --PO Budget Account
9371 , p_source_24 IN NUMBER
9372 --Encumbrance Reversal Amount Entered
9373 , p_source_25 IN NUMBER
9374 --Transaction Encumbrance Reversal Amount
9375 , p_source_26 IN NUMBER
9376 --Costing Encumbrance Upgrade Option
9377 , p_source_27 IN VARCHAR2
9378 --Purchasing Encumbrance Type Identifier
9379 , p_source_28 IN NUMBER
9380 --Reserved Flag
9381 , p_source_31 IN VARCHAR2
9382 )
9383 IS
9384
9385 l_component_type VARCHAR2(80);
9386 l_component_code VARCHAR2(30);
9387 l_component_type_code VARCHAR2(1);
9388 l_component_appl_id INTEGER;
9389 l_amb_context_code VARCHAR2(30);
9390 l_entity_code VARCHAR2(30);
9391 l_event_class_code VARCHAR2(30);
9392 l_ae_header_id NUMBER;
9393 l_event_type_code VARCHAR2(30);
9394 l_line_definition_code VARCHAR2(30);
9395 l_line_definition_owner_code VARCHAR2(1);
9396 --
9397 -- adr variables
9398 l_segment VARCHAR2(30);
9399 l_ccid NUMBER;
9400 l_adr_transaction_coa_id NUMBER;
9401 l_adr_accounting_coa_id NUMBER;
9402 l_adr_flexfield_segment_code VARCHAR2(30);
9403 l_adr_flex_value_set_id NUMBER;
9404 l_adr_value_type_code VARCHAR2(30);
9405 l_adr_value_combination_id NUMBER;
9406 l_adr_value_segment_code VARCHAR2(30);
9407
9408 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9409 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9410 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9411 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9412
9413 -- 4262811 Variables ------------------------------------------------------------------------------------------
9414 l_entered_amt_idx NUMBER;
9415 l_accted_amt_idx NUMBER;
9416 l_acc_rev_flag VARCHAR2(1);
9417 l_accrual_line_num NUMBER;
9418 l_tmp_amt NUMBER;
9419 l_acc_rev_natural_side_code VARCHAR2(1);
9420
9421 l_num_entries NUMBER;
9422 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9423 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9424 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9425 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9426 l_recog_line_1 NUMBER;
9427 l_recog_line_2 NUMBER;
9428
9429 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9430 l_bflow_applied_to_amt NUMBER; -- 5132302
9431 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9432
9433 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9434
9435 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9436 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9437
9438 ---------------------------------------------------------------------------------------------------------------
9439
9440
9441 --
9442 -- bulk performance
9443 --
9444 l_balance_type_code VARCHAR2(1);
9445 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9446 l_log_module VARCHAR2(240);
9447
9448 --
9449 -- Upgrade strategy
9450 --
9451 l_actual_upg_option VARCHAR2(1);
9452 l_enc_upg_option VARCHAR2(1);
9453
9454 --
9455 BEGIN
9456 --
9457 IF g_log_enabled THEN
9458 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_19';
9459 END IF;
9460 --
9461 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9462
9463 trace
9464 (p_msg => 'BEGIN of AcctLineType_19'
9465 ,p_level => C_LEVEL_PROCEDURE
9466 ,p_module => l_log_module);
9467
9468 END IF;
9469 --
9470 l_component_type := 'AMB_JLT';
9471 l_component_code := 'RELIEVE_PO_ENC_ON_DTI';
9472 l_component_type_code := 'S';
9473 l_component_appl_id := 707;
9474 l_amb_context_code := 'DEFAULT';
9475 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
9476 l_event_class_code := 'PURCHASE_ORDER';
9477 l_event_type_code := 'PO_DEL_INV';
9478 l_line_definition_owner_code := 'S';
9479 l_line_definition_code := 'ENC_PO_DEL_INV_DEL';
9480 --
9481 l_balance_type_code := 'E';
9482 l_segment := NULL;
9483 l_ccid := NULL;
9484 l_adr_transaction_coa_id := NULL;
9485 l_adr_accounting_coa_id := NULL;
9486 l_adr_flexfield_segment_code := NULL;
9487 l_adr_flex_value_set_id := NULL;
9488 l_adr_value_type_code := NULL;
9489 l_adr_value_combination_id := NULL;
9490 l_adr_value_segment_code := NULL;
9491
9492 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
9493 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
9494 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
9495 l_budgetary_control_flag := 'Y';
9496
9497 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9498 l_bflow_applied_to_amt := NULL; -- 5132302
9499 l_entered_amt_idx := NULL; -- 4262811
9500 l_accted_amt_idx := NULL; -- 4262811
9501 l_acc_rev_flag := NULL; -- 4262811
9502 l_accrual_line_num := NULL; -- 4262811
9503 l_tmp_amt := NULL; -- 4262811
9504 --
9505
9506 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9507 l_balance_type_code <> 'B' THEN
9508 IF NVL(p_source_16,'
9509 ') = 'Y' AND
9510 NVL(p_source_31,'
9511 ') = 'Y' AND
9512 NVL(p_source_17,'
9513 ') = 'Y' AND
9514 NVL(
9515 xla_ae_sources_pkg.GetSystemSourceChar(
9516 p_source_code => 'XLA_EVENT_TYPE_CODE'
9517 , p_source_type_code => 'Y'
9518 , p_source_application_id => 602
9519 ),'
9520 ') = 'PO_DEL_INV' AND
9521 NVL(p_source_7,9E125) = 15
9522 THEN
9523
9524 --
9525 XLA_AE_LINES_PKG.SetNewLine;
9526
9527 p_balance_type_code := l_balance_type_code;
9528 -- set the flag so later we will know whether the gain loss line needs to be created
9529
9530 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9531 p_actual_flag :='A';
9532 END IF;
9533
9534 --
9535 -- bulk performance
9536 --
9537 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9538 p_header_num => 0); -- 4262811
9539 --
9540 -- set accounting line options
9541 --
9542 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9543 p_natural_side_code => 'C'
9544 , p_gain_or_loss_flag => 'N'
9545 , p_gl_transfer_mode_code => 'S'
9546 , p_acct_entry_type_code => 'E'
9547 , p_switch_side_flag => 'N'
9548 , p_merge_duplicate_code => 'N'
9549 );
9550 --
9551 l_acc_rev_natural_side_code := 'D'; -- 4262811
9552 --
9553 --
9554 -- set accounting line type info
9555 --
9556 xla_ae_lines_pkg.SetAcctLineType
9557 (p_component_type => l_component_type
9558 ,p_event_type_code => l_event_type_code
9559 ,p_line_definition_owner_code => l_line_definition_owner_code
9560 ,p_line_definition_code => l_line_definition_code
9561 ,p_accounting_line_code => l_component_code
9562 ,p_accounting_line_type_code => l_component_type_code
9563 ,p_accounting_line_appl_id => l_component_appl_id
9564 ,p_amb_context_code => l_amb_context_code
9565 ,p_entity_code => l_entity_code
9566 ,p_event_class_code => l_event_class_code);
9567 --
9568 -- set accounting class
9569 --
9570 xla_ae_lines_pkg.SetAcctClass(
9571 p_accounting_class_code => 'PURCHASE_ORDER'
9572 , p_ae_header_id => l_ae_header_id
9573 );
9574
9575 --
9576 -- set rounding class
9577 --
9578 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9579 'PURCHASE_ORDER';
9580
9581 --
9582 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9583 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9584 --
9585 -- bulk performance
9586 --
9587 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9588
9589 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9590 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9591
9592 -- 4955764
9593 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9594 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9595
9596 -- 4458381 Public Sector Enh
9597
9598 --
9599 -- set accounting attributes for the line type
9600 --
9601 l_entered_amt_idx := 17;
9602 l_accted_amt_idx := 19;
9603 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9604 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
9605 l_rec_acct_attrs.array_num_value(1) := p_source_19;
9606 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9607 l_rec_acct_attrs.array_char_value(2) := p_source_20;
9608 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
9609 l_rec_acct_attrs.array_char_value(3) := p_source_21;
9610 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
9611 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_22);
9612 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9613 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
9614 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
9615 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
9616 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
9617 l_rec_acct_attrs.array_char_value(7) := p_source_9;
9618 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
9619 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
9620 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
9621 l_rec_acct_attrs.array_num_value(9) := p_source_25;
9622 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
9623 l_rec_acct_attrs.array_char_value(10) := p_source_11;
9624 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
9625 l_rec_acct_attrs.array_num_value(11) := p_source_26;
9626 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
9627 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
9628 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
9629 l_rec_acct_attrs.array_num_value(13) := p_source_25;
9630 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
9631 l_rec_acct_attrs.array_char_value(14) := p_source_11;
9632 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
9633 l_rec_acct_attrs.array_num_value(15) := p_source_26;
9634 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
9635 l_rec_acct_attrs.array_char_value(16) := p_source_27;
9636 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
9637 l_rec_acct_attrs.array_num_value(17) := p_source_25;
9638 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
9639 l_rec_acct_attrs.array_char_value(18) := p_source_11;
9640 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
9641 l_rec_acct_attrs.array_num_value(19) := p_source_26;
9642 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
9643 l_rec_acct_attrs.array_num_value(20) := p_source_28;
9644 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
9645 l_rec_acct_attrs.array_num_value(21) := p_source_28;
9646
9647 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9648 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9649
9650 ---------------------------------------------------------------------------------------------------------------
9651 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9652 ---------------------------------------------------------------------------------------------------------------
9653 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9654
9655 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9656 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9657
9658 IF xla_accounting_cache_pkg.GetValueChar
9659 (p_source_code => 'LEDGER_CATEGORY_CODE'
9660 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9661 AND l_bflow_method_code = 'PRIOR_ENTRY'
9662 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9663 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9664 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9665 )
9666 THEN
9667 xla_ae_lines_pkg.BflowUpgEntry
9668 (p_business_method_code => l_bflow_method_code
9669 ,p_business_class_code => l_bflow_class_code
9670 ,p_balance_type => l_balance_type_code);
9671 ELSE
9672 NULL;
9673 XLA_AE_LINES_PKG.business_flow_validation(
9674 p_business_method_code => l_bflow_method_code
9675 ,p_business_class_code => l_bflow_class_code
9676 ,p_inherit_description_flag => l_inherit_desc_flag);
9677 END IF;
9678
9679 --
9680 -- call analytical criteria
9681 --
9682 -- Inherited Analytical Criteria for business flow method of Prior Entry.
9683 --
9684 -- call description
9685 --
9686 -- No description or it is inherited.
9687 --
9688 -- call ADRs
9689 -- Bug 4922099
9690 --
9691 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9692 (NVL(l_actual_upg_option, 'N') = 'O') OR
9693 (NVL(l_enc_upg_option, 'N') = 'O')
9694 )
9695 THEN
9696 NULL;
9697 --
9698 --
9699
9700 --
9701 --
9702 END IF;
9703 --
9704 -- Bug 4922099
9705 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9706 (NVL(l_enc_upg_option, 'N') = 'O')
9707 ) AND
9708 (l_bflow_method_code = 'PRIOR_ENTRY')
9709 )
9710 THEN
9711 IF
9712 --
9713 1 = 1
9714 --
9715 THEN
9716 xla_accounting_err_pkg.build_message
9717 (p_appli_s_name => 'XLA'
9718 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9719 ,p_token_1 => 'LINE_NUMBER'
9720 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
9721 ,p_token_2 => 'LINE_TYPE_NAME'
9722 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9723 l_component_type
9724 ,l_component_code
9725 ,l_component_type_code
9726 ,l_component_appl_id
9727 ,l_amb_context_code
9728 ,l_entity_code
9729 ,l_event_class_code
9730 )
9731 ,p_token_3 => 'OWNER'
9732 ,p_value_3 => xla_lookups_pkg.get_meaning(
9733 p_lookup_type => 'XLA_OWNER_TYPE'
9734 ,p_lookup_code => l_component_type_code
9735 )
9736 ,p_token_4 => 'PRODUCT_NAME'
9737 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9738 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9739 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9740 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9741 ,p_ae_header_id => NULL
9742 );
9743
9744 IF (C_LEVEL_ERROR>= g_log_level) THEN
9745 trace
9746 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9747 ,p_level => C_LEVEL_ERROR
9748 ,p_module => l_log_module);
9749 END IF;
9750 END IF;
9751 END IF;
9752 --
9753 --
9754 ------------------------------------------------------------------------------------------------
9755 -- 4219869 Business Flow
9756 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9757 -- Prior Entry. Currently, the following code is always generated.
9758 ------------------------------------------------------------------------------------------------
9759 -- No ValidateCurrentLine for business flow method of Prior Entry
9760
9761 ------------------------------------------------------------------------------------
9762 -- 4219869 Business Flow
9763 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9764 ------------------------------------------------------------------------------------
9765 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9766
9767 ----------------------------------------------------------------------------------
9768 -- 4219869 Business Flow
9769 -- Update journal entry status -- Need to generate this within IF <condition>
9770 ----------------------------------------------------------------------------------
9771 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9772 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9773 ,p_balance_type_code => l_balance_type_code
9774 );
9775
9776 -------------------------------------------------------------------------------------------
9777 -- 4262811 - Generate the Accrual Reversal lines
9778 -------------------------------------------------------------------------------------------
9779 BEGIN
9780 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9781 (g_array_event(p_event_id).array_value_num('header_index'));
9782 IF l_acc_rev_flag IS NULL THEN
9783 l_acc_rev_flag := 'N';
9784 END IF;
9785 EXCEPTION
9786 WHEN OTHERS THEN
9787 l_acc_rev_flag := 'N';
9788 END;
9789 --
9790 IF (l_acc_rev_flag = 'Y') THEN
9791
9792 -- 4645092 ------------------------------------------------------------------------------
9793 -- To allow MPA report to determine if it should generate report process
9794 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9795 ------------------------------------------------------------------------------------------
9796
9797 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9798 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9799 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
9800 -- call ADRs
9801 -- Bug 4922099
9802 --
9803 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9804 (NVL(l_actual_upg_option, 'N') = 'O') OR
9805 (NVL(l_enc_upg_option, 'N') = 'O')
9806 )
9807 THEN
9808 NULL;
9809 --
9810 --
9811
9812 --
9813 --
9814 END IF;
9815
9816 --
9817 -- Update the line information that should be overwritten
9818 --
9819 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9820 p_header_num => 1);
9821 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9822
9823 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9824
9825 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9826 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9827 END IF;
9828
9829 --
9830 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9831 --
9832 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9833 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9834 ELSE
9835 ---------------------------------------------------------------------------------------------------
9836 -- 4262811a Switch Sign
9837 ---------------------------------------------------------------------------------------------------
9838 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9839 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9840 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9841 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9842 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9843 -- 5132302
9844 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9845 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9846
9847 END IF;
9848
9849 -- 4955764
9850 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9851 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9852
9853
9854 XLA_AE_LINES_PKG.ValidateCurrentLine;
9855 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9856
9857 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9858 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9859 ,p_balance_type_code => l_balance_type_code);
9860
9861 END IF;
9862
9863 -----------------------------------------------------------------------------------------
9864 -- 4262811 Multiperiod Accounting
9865 -----------------------------------------------------------------------------------------
9866 -- No MPA option is assigned.
9867
9868
9869 END IF;
9870 END IF;
9871 --
9872
9873 --
9874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9875 trace
9876 (p_msg => 'END of AcctLineType_19'
9877 ,p_level => C_LEVEL_PROCEDURE
9878 ,p_module => l_log_module);
9879 END IF;
9880 --
9881 EXCEPTION
9882 WHEN xla_exceptions_pkg.application_exception THEN
9883 RAISE;
9884 WHEN OTHERS THEN
9885 xla_exceptions_pkg.raise_message
9886 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_19');
9887 END AcctLineType_19;
9888 --
9889
9890 ---------------------------------------
9891 --
9892 -- PRIVATE FUNCTION
9893 -- AcctLineType_20
9894 --
9895 ---------------------------------------
9896 PROCEDURE AcctLineType_20 (
9897 p_application_id IN NUMBER
9898 ,p_event_id IN NUMBER
9899 ,p_calculate_acctd_flag IN VARCHAR2
9900 ,p_calculate_g_l_flag IN VARCHAR2
9901 ,p_actual_flag IN OUT VARCHAR2
9902 ,p_balance_type_code OUT VARCHAR2
9903 ,p_gain_or_loss_ref OUT VARCHAR2
9904
9905 --Accounting Line Type
9906 , p_source_7 IN NUMBER
9907 --DISTRIBUTION_IDENTIFIER
9908 , p_source_8 IN NUMBER
9909 --Distribution Type
9910 , p_source_9 IN VARCHAR2
9911 , p_source_9_meaning IN VARCHAR2
9912 --Entered Currency Code
9913 , p_source_11 IN VARCHAR2
9914 --Purchasing Encumbrance Flag
9915 , p_source_16 IN VARCHAR2
9916 --Organization Encumbrance Reversal Indicator
9917 , p_source_17 IN VARCHAR2
9918 --Applied to Application ID
9919 , p_source_19 IN NUMBER
9920 --Applied to Distribution Link Type
9921 , p_source_20 IN VARCHAR2
9922 --Applied to Entity Code
9923 , p_source_21 IN VARCHAR2
9924 --TXN_PO_DISTRIBUTION_ID
9925 , p_source_22 IN NUMBER
9926 --Applied To Purchase Document Identifier
9927 , p_source_23 IN NUMBER
9928 --PO Budget Account
9929 , p_source_24 IN NUMBER
9930 --Encumbrance Reversal Amount Entered
9931 , p_source_25 IN NUMBER
9932 --Transaction Encumbrance Reversal Amount
9933 , p_source_26 IN NUMBER
9934 --Costing Encumbrance Upgrade Option
9935 , p_source_27 IN VARCHAR2
9936 --Purchasing Encumbrance Type Identifier
9937 , p_source_28 IN NUMBER
9938 --Reserved Flag
9939 , p_source_31 IN VARCHAR2
9940 )
9941 IS
9942
9943 l_component_type VARCHAR2(80);
9944 l_component_code VARCHAR2(30);
9945 l_component_type_code VARCHAR2(1);
9946 l_component_appl_id INTEGER;
9947 l_amb_context_code VARCHAR2(30);
9948 l_entity_code VARCHAR2(30);
9949 l_event_class_code VARCHAR2(30);
9950 l_ae_header_id NUMBER;
9951 l_event_type_code VARCHAR2(30);
9952 l_line_definition_code VARCHAR2(30);
9953 l_line_definition_owner_code VARCHAR2(1);
9954 --
9955 -- adr variables
9956 l_segment VARCHAR2(30);
9957 l_ccid NUMBER;
9958 l_adr_transaction_coa_id NUMBER;
9959 l_adr_accounting_coa_id NUMBER;
9960 l_adr_flexfield_segment_code VARCHAR2(30);
9961 l_adr_flex_value_set_id NUMBER;
9962 l_adr_value_type_code VARCHAR2(30);
9963 l_adr_value_combination_id NUMBER;
9964 l_adr_value_segment_code VARCHAR2(30);
9965
9966 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9967 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9968 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9969 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9970
9971 -- 4262811 Variables ------------------------------------------------------------------------------------------
9972 l_entered_amt_idx NUMBER;
9973 l_accted_amt_idx NUMBER;
9974 l_acc_rev_flag VARCHAR2(1);
9975 l_accrual_line_num NUMBER;
9976 l_tmp_amt NUMBER;
9977 l_acc_rev_natural_side_code VARCHAR2(1);
9978
9979 l_num_entries NUMBER;
9980 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9981 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9982 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9983 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9984 l_recog_line_1 NUMBER;
9985 l_recog_line_2 NUMBER;
9986
9987 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9988 l_bflow_applied_to_amt NUMBER; -- 5132302
9989 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9990
9991 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9992
9993 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9994 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9995
9996 ---------------------------------------------------------------------------------------------------------------
9997
9998
9999 --
10000 -- bulk performance
10001 --
10002 l_balance_type_code VARCHAR2(1);
10003 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
10004 l_log_module VARCHAR2(240);
10005
10006 --
10007 -- Upgrade strategy
10008 --
10009 l_actual_upg_option VARCHAR2(1);
10010 l_enc_upg_option VARCHAR2(1);
10011
10012 --
10013 BEGIN
10014 --
10015 IF g_log_enabled THEN
10016 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_20';
10017 END IF;
10018 --
10019 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10020
10021 trace
10022 (p_msg => 'BEGIN of AcctLineType_20'
10023 ,p_level => C_LEVEL_PROCEDURE
10024 ,p_module => l_log_module);
10025
10026 END IF;
10027 --
10028 l_component_type := 'AMB_JLT';
10029 l_component_code := 'RELIEVE_PO_ENC_ON_DTI';
10030 l_component_type_code := 'S';
10031 l_component_appl_id := 707;
10032 l_amb_context_code := 'DEFAULT';
10033 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
10034 l_event_class_code := 'PURCHASE_ORDER';
10035 l_event_type_code := 'RET_RI_INV';
10036 l_line_definition_owner_code := 'S';
10037 l_line_definition_code := 'ENC_PO_DEL_INV_RET_RI';
10038 --
10039 l_balance_type_code := 'E';
10040 l_segment := NULL;
10041 l_ccid := NULL;
10042 l_adr_transaction_coa_id := NULL;
10043 l_adr_accounting_coa_id := NULL;
10044 l_adr_flexfield_segment_code := NULL;
10045 l_adr_flex_value_set_id := NULL;
10046 l_adr_value_type_code := NULL;
10047 l_adr_value_combination_id := NULL;
10048 l_adr_value_segment_code := NULL;
10049
10050 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
10051 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
10052 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
10053 l_budgetary_control_flag := 'Y';
10054
10055 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10056 l_bflow_applied_to_amt := NULL; -- 5132302
10057 l_entered_amt_idx := NULL; -- 4262811
10058 l_accted_amt_idx := NULL; -- 4262811
10059 l_acc_rev_flag := NULL; -- 4262811
10060 l_accrual_line_num := NULL; -- 4262811
10061 l_tmp_amt := NULL; -- 4262811
10062 --
10063
10064 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10065 l_balance_type_code <> 'B' THEN
10066 IF NVL(p_source_16,'
10067 ') = 'Y' AND
10068 NVL(p_source_31,'
10069 ') = 'Y' AND
10070 NVL(p_source_17,'
10071 ') = 'Y' AND
10072 NVL(
10073 xla_ae_sources_pkg.GetSystemSourceChar(
10074 p_source_code => 'XLA_EVENT_TYPE_CODE'
10075 , p_source_type_code => 'Y'
10076 , p_source_application_id => 602
10077 ),'
10078 ') = 'PO_DEL_INV' AND
10079 NVL(p_source_7,9E125) = 15
10080 THEN
10081
10082 --
10083 XLA_AE_LINES_PKG.SetNewLine;
10084
10085 p_balance_type_code := l_balance_type_code;
10086 -- set the flag so later we will know whether the gain loss line needs to be created
10087
10088 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
10089 p_actual_flag :='A';
10090 END IF;
10091
10092 --
10093 -- bulk performance
10094 --
10095 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10096 p_header_num => 0); -- 4262811
10097 --
10098 -- set accounting line options
10099 --
10100 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10101 p_natural_side_code => 'C'
10102 , p_gain_or_loss_flag => 'N'
10103 , p_gl_transfer_mode_code => 'S'
10104 , p_acct_entry_type_code => 'E'
10105 , p_switch_side_flag => 'N'
10106 , p_merge_duplicate_code => 'N'
10107 );
10108 --
10109 l_acc_rev_natural_side_code := 'D'; -- 4262811
10110 --
10111 --
10112 -- set accounting line type info
10113 --
10114 xla_ae_lines_pkg.SetAcctLineType
10115 (p_component_type => l_component_type
10116 ,p_event_type_code => l_event_type_code
10117 ,p_line_definition_owner_code => l_line_definition_owner_code
10118 ,p_line_definition_code => l_line_definition_code
10119 ,p_accounting_line_code => l_component_code
10120 ,p_accounting_line_type_code => l_component_type_code
10121 ,p_accounting_line_appl_id => l_component_appl_id
10122 ,p_amb_context_code => l_amb_context_code
10123 ,p_entity_code => l_entity_code
10124 ,p_event_class_code => l_event_class_code);
10125 --
10126 -- set accounting class
10127 --
10128 xla_ae_lines_pkg.SetAcctClass(
10129 p_accounting_class_code => 'PURCHASE_ORDER'
10130 , p_ae_header_id => l_ae_header_id
10131 );
10132
10133 --
10134 -- set rounding class
10135 --
10136 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10137 'PURCHASE_ORDER';
10138
10139 --
10140 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10141 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10142 --
10143 -- bulk performance
10144 --
10145 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10146
10147 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10148 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10149
10150 -- 4955764
10151 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10152 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10153
10154 -- 4458381 Public Sector Enh
10155
10156 --
10157 -- set accounting attributes for the line type
10158 --
10159 l_entered_amt_idx := 17;
10160 l_accted_amt_idx := 19;
10161 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10162 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
10163 l_rec_acct_attrs.array_num_value(1) := p_source_19;
10164 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10165 l_rec_acct_attrs.array_char_value(2) := p_source_20;
10166 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
10167 l_rec_acct_attrs.array_char_value(3) := p_source_21;
10168 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
10169 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_22);
10170 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10171 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
10172 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
10173 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
10174 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
10175 l_rec_acct_attrs.array_char_value(7) := p_source_9;
10176 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
10177 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
10178 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
10179 l_rec_acct_attrs.array_num_value(9) := p_source_25;
10180 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
10181 l_rec_acct_attrs.array_char_value(10) := p_source_11;
10182 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
10183 l_rec_acct_attrs.array_num_value(11) := p_source_26;
10184 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
10185 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
10186 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
10187 l_rec_acct_attrs.array_num_value(13) := p_source_25;
10188 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
10189 l_rec_acct_attrs.array_char_value(14) := p_source_11;
10190 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
10191 l_rec_acct_attrs.array_num_value(15) := p_source_26;
10192 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
10193 l_rec_acct_attrs.array_char_value(16) := p_source_27;
10194 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
10195 l_rec_acct_attrs.array_num_value(17) := p_source_25;
10196 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
10197 l_rec_acct_attrs.array_char_value(18) := p_source_11;
10198 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
10199 l_rec_acct_attrs.array_num_value(19) := p_source_26;
10200 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
10201 l_rec_acct_attrs.array_num_value(20) := p_source_28;
10202 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
10203 l_rec_acct_attrs.array_num_value(21) := p_source_28;
10204
10205 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10206 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10207
10208 ---------------------------------------------------------------------------------------------------------------
10209 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10210 ---------------------------------------------------------------------------------------------------------------
10211 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10212
10213 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10214 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10215
10216 IF xla_accounting_cache_pkg.GetValueChar
10217 (p_source_code => 'LEDGER_CATEGORY_CODE'
10218 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10219 AND l_bflow_method_code = 'PRIOR_ENTRY'
10220 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10221 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10222 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10223 )
10224 THEN
10225 xla_ae_lines_pkg.BflowUpgEntry
10226 (p_business_method_code => l_bflow_method_code
10227 ,p_business_class_code => l_bflow_class_code
10228 ,p_balance_type => l_balance_type_code);
10229 ELSE
10230 NULL;
10231 XLA_AE_LINES_PKG.business_flow_validation(
10232 p_business_method_code => l_bflow_method_code
10233 ,p_business_class_code => l_bflow_class_code
10234 ,p_inherit_description_flag => l_inherit_desc_flag);
10235 END IF;
10236
10237 --
10238 -- call analytical criteria
10239 --
10240 -- Inherited Analytical Criteria for business flow method of Prior Entry.
10241 --
10242 -- call description
10243 --
10244 -- No description or it is inherited.
10245 --
10246 -- call ADRs
10247 -- Bug 4922099
10248 --
10249 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10250 (NVL(l_actual_upg_option, 'N') = 'O') OR
10251 (NVL(l_enc_upg_option, 'N') = 'O')
10252 )
10253 THEN
10254 NULL;
10255 --
10256 --
10257
10258 --
10259 --
10260 END IF;
10261 --
10262 -- Bug 4922099
10263 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10264 (NVL(l_enc_upg_option, 'N') = 'O')
10265 ) AND
10266 (l_bflow_method_code = 'PRIOR_ENTRY')
10267 )
10268 THEN
10269 IF
10270 --
10271 1 = 1
10272 --
10273 THEN
10274 xla_accounting_err_pkg.build_message
10275 (p_appli_s_name => 'XLA'
10276 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10277 ,p_token_1 => 'LINE_NUMBER'
10278 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10279 ,p_token_2 => 'LINE_TYPE_NAME'
10280 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10281 l_component_type
10282 ,l_component_code
10283 ,l_component_type_code
10284 ,l_component_appl_id
10285 ,l_amb_context_code
10286 ,l_entity_code
10287 ,l_event_class_code
10288 )
10289 ,p_token_3 => 'OWNER'
10290 ,p_value_3 => xla_lookups_pkg.get_meaning(
10291 p_lookup_type => 'XLA_OWNER_TYPE'
10292 ,p_lookup_code => l_component_type_code
10293 )
10294 ,p_token_4 => 'PRODUCT_NAME'
10295 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10296 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10297 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10298 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10299 ,p_ae_header_id => NULL
10300 );
10301
10302 IF (C_LEVEL_ERROR>= g_log_level) THEN
10303 trace
10304 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10305 ,p_level => C_LEVEL_ERROR
10306 ,p_module => l_log_module);
10307 END IF;
10308 END IF;
10309 END IF;
10310 --
10311 --
10312 ------------------------------------------------------------------------------------------------
10313 -- 4219869 Business Flow
10314 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10315 -- Prior Entry. Currently, the following code is always generated.
10316 ------------------------------------------------------------------------------------------------
10317 -- No ValidateCurrentLine for business flow method of Prior Entry
10318
10319 ------------------------------------------------------------------------------------
10320 -- 4219869 Business Flow
10321 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10322 ------------------------------------------------------------------------------------
10323 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10324
10325 ----------------------------------------------------------------------------------
10326 -- 4219869 Business Flow
10327 -- Update journal entry status -- Need to generate this within IF <condition>
10328 ----------------------------------------------------------------------------------
10329 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10330 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10331 ,p_balance_type_code => l_balance_type_code
10332 );
10333
10334 -------------------------------------------------------------------------------------------
10335 -- 4262811 - Generate the Accrual Reversal lines
10336 -------------------------------------------------------------------------------------------
10337 BEGIN
10338 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10339 (g_array_event(p_event_id).array_value_num('header_index'));
10340 IF l_acc_rev_flag IS NULL THEN
10341 l_acc_rev_flag := 'N';
10342 END IF;
10343 EXCEPTION
10344 WHEN OTHERS THEN
10345 l_acc_rev_flag := 'N';
10346 END;
10347 --
10348 IF (l_acc_rev_flag = 'Y') THEN
10349
10350 -- 4645092 ------------------------------------------------------------------------------
10351 -- To allow MPA report to determine if it should generate report process
10352 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10353 ------------------------------------------------------------------------------------------
10354
10355 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10356 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10357 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
10358 -- call ADRs
10359 -- Bug 4922099
10360 --
10361 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10362 (NVL(l_actual_upg_option, 'N') = 'O') OR
10363 (NVL(l_enc_upg_option, 'N') = 'O')
10364 )
10365 THEN
10366 NULL;
10367 --
10368 --
10369
10370 --
10371 --
10372 END IF;
10373
10374 --
10375 -- Update the line information that should be overwritten
10376 --
10377 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10378 p_header_num => 1);
10379 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10380
10381 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10382
10383 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10384 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10385 END IF;
10386
10387 --
10388 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10389 --
10390 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10391 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10392 ELSE
10393 ---------------------------------------------------------------------------------------------------
10394 -- 4262811a Switch Sign
10395 ---------------------------------------------------------------------------------------------------
10396 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10397 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10398 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10399 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10400 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10401 -- 5132302
10402 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10403 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10404
10405 END IF;
10406
10407 -- 4955764
10408 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10409 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10410
10411
10412 XLA_AE_LINES_PKG.ValidateCurrentLine;
10413 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10414
10415 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10416 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10417 ,p_balance_type_code => l_balance_type_code);
10418
10419 END IF;
10420
10421 -----------------------------------------------------------------------------------------
10422 -- 4262811 Multiperiod Accounting
10423 -----------------------------------------------------------------------------------------
10424 -- No MPA option is assigned.
10425
10426
10427 END IF;
10428 END IF;
10429 --
10430
10431 --
10432 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10433 trace
10434 (p_msg => 'END of AcctLineType_20'
10435 ,p_level => C_LEVEL_PROCEDURE
10436 ,p_module => l_log_module);
10437 END IF;
10438 --
10439 EXCEPTION
10440 WHEN xla_exceptions_pkg.application_exception THEN
10441 RAISE;
10442 WHEN OTHERS THEN
10443 xla_exceptions_pkg.raise_message
10444 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_20');
10445 END AcctLineType_20;
10446 --
10447
10448 ---------------------------------------
10449 --
10450 -- PRIVATE FUNCTION
10451 -- AcctLineType_21
10452 --
10453 ---------------------------------------
10454 PROCEDURE AcctLineType_21 (
10455 p_application_id IN NUMBER
10456 ,p_event_id IN NUMBER
10457 ,p_calculate_acctd_flag IN VARCHAR2
10458 ,p_calculate_g_l_flag IN VARCHAR2
10459 ,p_actual_flag IN OUT VARCHAR2
10460 ,p_balance_type_code OUT VARCHAR2
10461 ,p_gain_or_loss_ref OUT VARCHAR2
10462
10463 --DISTRIBUTION_IDENTIFIER
10464 , p_source_8 IN NUMBER
10465 --Distribution Type
10466 , p_source_9 IN VARCHAR2
10467 , p_source_9_meaning IN VARCHAR2
10468 --Entered Currency Code
10469 , p_source_11 IN VARCHAR2
10470 --Purchasing Encumbrance Flag
10471 , p_source_16 IN VARCHAR2
10472 --Applied to Application ID
10473 , p_source_19 IN NUMBER
10474 --Applied to Distribution Link Type
10475 , p_source_20 IN VARCHAR2
10476 --Applied to Entity Code
10477 , p_source_21 IN VARCHAR2
10478 --Applied To Purchase Document Identifier
10479 , p_source_23 IN NUMBER
10480 --PO Budget Account
10481 , p_source_24 IN NUMBER
10482 --Encumbrance Reversal Amount Entered
10483 , p_source_25 IN NUMBER
10484 --Transaction Encumbrance Reversal Amount
10485 , p_source_26 IN NUMBER
10486 --Purchasing Encumbrance Type Identifier
10487 , p_source_28 IN NUMBER
10488 --Receiving Accounting Line Type
10489 , p_source_29 IN VARCHAR2
10490 --PO_DISTRIBUTION_ID
10491 , p_source_30 IN NUMBER
10492 --Costing Period End Accrual Encumbrance Upgrade Option
10493 , p_source_32 IN VARCHAR2
10494 )
10495 IS
10496
10497 l_component_type VARCHAR2(80);
10498 l_component_code VARCHAR2(30);
10499 l_component_type_code VARCHAR2(1);
10500 l_component_appl_id INTEGER;
10501 l_amb_context_code VARCHAR2(30);
10502 l_entity_code VARCHAR2(30);
10503 l_event_class_code VARCHAR2(30);
10504 l_ae_header_id NUMBER;
10505 l_event_type_code VARCHAR2(30);
10506 l_line_definition_code VARCHAR2(30);
10507 l_line_definition_owner_code VARCHAR2(1);
10508 --
10509 -- adr variables
10510 l_segment VARCHAR2(30);
10511 l_ccid NUMBER;
10512 l_adr_transaction_coa_id NUMBER;
10513 l_adr_accounting_coa_id NUMBER;
10514 l_adr_flexfield_segment_code VARCHAR2(30);
10515 l_adr_flex_value_set_id NUMBER;
10516 l_adr_value_type_code VARCHAR2(30);
10517 l_adr_value_combination_id NUMBER;
10518 l_adr_value_segment_code VARCHAR2(30);
10519
10520 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
10521 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
10522 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
10523 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
10524
10525 -- 4262811 Variables ------------------------------------------------------------------------------------------
10526 l_entered_amt_idx NUMBER;
10527 l_accted_amt_idx NUMBER;
10528 l_acc_rev_flag VARCHAR2(1);
10529 l_accrual_line_num NUMBER;
10530 l_tmp_amt NUMBER;
10531 l_acc_rev_natural_side_code VARCHAR2(1);
10532
10533 l_num_entries NUMBER;
10534 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
10535 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
10536 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
10537 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
10538 l_recog_line_1 NUMBER;
10539 l_recog_line_2 NUMBER;
10540
10541 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
10542 l_bflow_applied_to_amt NUMBER; -- 5132302
10543 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
10544
10545 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10546
10547 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
10548 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
10549
10550 ---------------------------------------------------------------------------------------------------------------
10551
10552
10553 --
10554 -- bulk performance
10555 --
10556 l_balance_type_code VARCHAR2(1);
10557 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
10558 l_log_module VARCHAR2(240);
10559
10560 --
10561 -- Upgrade strategy
10562 --
10563 l_actual_upg_option VARCHAR2(1);
10564 l_enc_upg_option VARCHAR2(1);
10565
10566 --
10567 BEGIN
10568 --
10569 IF g_log_enabled THEN
10570 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_21';
10571 END IF;
10572 --
10573 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10574
10575 trace
10576 (p_msg => 'BEGIN of AcctLineType_21'
10577 ,p_level => C_LEVEL_PROCEDURE
10578 ,p_module => l_log_module);
10579
10580 END IF;
10581 --
10582 l_component_type := 'AMB_JLT';
10583 l_component_code := 'RELIEVE_PO_ENC_ON_PEA';
10584 l_component_type_code := 'S';
10585 l_component_appl_id := 707;
10586 l_amb_context_code := 'DEFAULT';
10587 l_entity_code := 'RCV_ACCOUNTING_EVENTS';
10588 l_event_class_code := 'PERIOD_END_ACCRUAL';
10589 l_event_type_code := 'PERIOD_END_ACCRUAL_ALL';
10590 l_line_definition_owner_code := 'S';
10591 l_line_definition_code := 'PO_ENCUM_FOR_PERIOD_END_ACCR';
10592 --
10593 l_balance_type_code := 'E';
10594 l_segment := NULL;
10595 l_ccid := NULL;
10596 l_adr_transaction_coa_id := NULL;
10597 l_adr_accounting_coa_id := NULL;
10598 l_adr_flexfield_segment_code := NULL;
10599 l_adr_flex_value_set_id := NULL;
10600 l_adr_value_type_code := NULL;
10601 l_adr_value_combination_id := NULL;
10602 l_adr_value_segment_code := NULL;
10603
10604 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
10605 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
10606 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
10607 l_budgetary_control_flag := 'Y';
10608
10609 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10610 l_bflow_applied_to_amt := NULL; -- 5132302
10611 l_entered_amt_idx := NULL; -- 4262811
10612 l_accted_amt_idx := NULL; -- 4262811
10613 l_acc_rev_flag := NULL; -- 4262811
10614 l_accrual_line_num := NULL; -- 4262811
10615 l_tmp_amt := NULL; -- 4262811
10616 --
10617
10618 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10619 l_balance_type_code <> 'B' THEN
10620 IF NVL(p_source_16,'
10621 ') = 'Y' AND
10622 NVL(
10623 xla_ae_sources_pkg.GetSystemSourceChar(
10624 p_source_code => 'XLA_EVENT_TYPE_CODE'
10625 , p_source_type_code => 'Y'
10626 , p_source_application_id => 602
10627 ),'
10628 ') = 'PERIOD_END_ACCRUAL' AND
10629 NVL(p_source_29,'
10630 ') = 'Charge'
10631 THEN
10632
10633 --
10634 XLA_AE_LINES_PKG.SetNewLine;
10635
10636 p_balance_type_code := l_balance_type_code;
10637 -- set the flag so later we will know whether the gain loss line needs to be created
10638
10639 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
10640 p_actual_flag :='A';
10641 END IF;
10642
10643 --
10644 -- bulk performance
10645 --
10646 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10647 p_header_num => 0); -- 4262811
10648 --
10649 -- set accounting line options
10650 --
10651 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10652 p_natural_side_code => 'D'
10653 , p_gain_or_loss_flag => 'N'
10654 , p_gl_transfer_mode_code => 'S'
10655 , p_acct_entry_type_code => 'E'
10656 , p_switch_side_flag => 'Y'
10657 , p_merge_duplicate_code => 'N'
10658 );
10659 --
10660 l_acc_rev_natural_side_code := 'C'; -- 4262811
10661 --
10662 --
10663 -- set accounting line type info
10664 --
10665 xla_ae_lines_pkg.SetAcctLineType
10666 (p_component_type => l_component_type
10667 ,p_event_type_code => l_event_type_code
10668 ,p_line_definition_owner_code => l_line_definition_owner_code
10669 ,p_line_definition_code => l_line_definition_code
10670 ,p_accounting_line_code => l_component_code
10671 ,p_accounting_line_type_code => l_component_type_code
10672 ,p_accounting_line_appl_id => l_component_appl_id
10673 ,p_amb_context_code => l_amb_context_code
10674 ,p_entity_code => l_entity_code
10675 ,p_event_class_code => l_event_class_code);
10676 --
10677 -- set accounting class
10678 --
10679 xla_ae_lines_pkg.SetAcctClass(
10680 p_accounting_class_code => 'PURCHASE_ORDER'
10681 , p_ae_header_id => l_ae_header_id
10682 );
10683
10684 --
10685 -- set rounding class
10686 --
10687 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10688 'PURCHASE_ORDER';
10689
10690 --
10691 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10692 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10693 --
10694 -- bulk performance
10695 --
10696 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10697
10698 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10699 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10700
10701 -- 4955764
10702 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10703 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10704
10705 -- 4458381 Public Sector Enh
10706
10707 --
10708 -- set accounting attributes for the line type
10709 --
10710 l_entered_amt_idx := 17;
10711 l_accted_amt_idx := 19;
10712 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10713 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
10714 l_rec_acct_attrs.array_num_value(1) := p_source_19;
10715 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10716 l_rec_acct_attrs.array_char_value(2) := p_source_20;
10717 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
10718 l_rec_acct_attrs.array_char_value(3) := p_source_21;
10719 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
10720 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_30);
10721 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10722 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_23);
10723 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
10724 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
10725 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
10726 l_rec_acct_attrs.array_char_value(7) := p_source_9;
10727 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
10728 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_24);
10729 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
10730 l_rec_acct_attrs.array_num_value(9) := p_source_25;
10731 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
10732 l_rec_acct_attrs.array_char_value(10) := p_source_11;
10733 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
10734 l_rec_acct_attrs.array_num_value(11) := p_source_26;
10735 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
10736 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_24);
10737 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
10738 l_rec_acct_attrs.array_num_value(13) := p_source_25;
10739 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
10740 l_rec_acct_attrs.array_char_value(14) := p_source_11;
10741 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
10742 l_rec_acct_attrs.array_num_value(15) := p_source_26;
10743 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
10744 l_rec_acct_attrs.array_char_value(16) := p_source_32;
10745 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
10746 l_rec_acct_attrs.array_num_value(17) := p_source_25;
10747 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
10748 l_rec_acct_attrs.array_char_value(18) := p_source_11;
10749 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
10750 l_rec_acct_attrs.array_num_value(19) := p_source_26;
10751 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
10752 l_rec_acct_attrs.array_num_value(20) := p_source_28;
10753 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
10754 l_rec_acct_attrs.array_num_value(21) := p_source_28;
10755
10756 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10757 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10758
10759 ---------------------------------------------------------------------------------------------------------------
10760 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10761 ---------------------------------------------------------------------------------------------------------------
10762 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10763
10764 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10765 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10766
10767 IF xla_accounting_cache_pkg.GetValueChar
10768 (p_source_code => 'LEDGER_CATEGORY_CODE'
10769 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10770 AND l_bflow_method_code = 'PRIOR_ENTRY'
10771 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10772 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10773 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10774 )
10775 THEN
10776 xla_ae_lines_pkg.BflowUpgEntry
10777 (p_business_method_code => l_bflow_method_code
10778 ,p_business_class_code => l_bflow_class_code
10779 ,p_balance_type => l_balance_type_code);
10780 ELSE
10781 NULL;
10782 XLA_AE_LINES_PKG.business_flow_validation(
10783 p_business_method_code => l_bflow_method_code
10784 ,p_business_class_code => l_bflow_class_code
10785 ,p_inherit_description_flag => l_inherit_desc_flag);
10786 END IF;
10787
10788 --
10789 -- call analytical criteria
10790 --
10791 -- Inherited Analytical Criteria for business flow method of Prior Entry.
10792 --
10793 -- call description
10794 --
10795 -- No description or it is inherited.
10796 --
10797 -- call ADRs
10798 -- Bug 4922099
10799 --
10800 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10801 (NVL(l_actual_upg_option, 'N') = 'O') OR
10802 (NVL(l_enc_upg_option, 'N') = 'O')
10803 )
10804 THEN
10805 NULL;
10806 --
10807 --
10808
10809 --
10810 --
10811 END IF;
10812 --
10813 -- Bug 4922099
10814 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10815 (NVL(l_enc_upg_option, 'N') = 'O')
10816 ) AND
10817 (l_bflow_method_code = 'PRIOR_ENTRY')
10818 )
10819 THEN
10820 IF
10821 --
10822 1 = 1
10823 --
10824 THEN
10825 xla_accounting_err_pkg.build_message
10826 (p_appli_s_name => 'XLA'
10827 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10828 ,p_token_1 => 'LINE_NUMBER'
10829 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10830 ,p_token_2 => 'LINE_TYPE_NAME'
10831 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10832 l_component_type
10833 ,l_component_code
10834 ,l_component_type_code
10835 ,l_component_appl_id
10836 ,l_amb_context_code
10837 ,l_entity_code
10838 ,l_event_class_code
10839 )
10840 ,p_token_3 => 'OWNER'
10841 ,p_value_3 => xla_lookups_pkg.get_meaning(
10842 p_lookup_type => 'XLA_OWNER_TYPE'
10843 ,p_lookup_code => l_component_type_code
10844 )
10845 ,p_token_4 => 'PRODUCT_NAME'
10846 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10847 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10848 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10849 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10850 ,p_ae_header_id => NULL
10851 );
10852
10853 IF (C_LEVEL_ERROR>= g_log_level) THEN
10854 trace
10855 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10856 ,p_level => C_LEVEL_ERROR
10857 ,p_module => l_log_module);
10858 END IF;
10859 END IF;
10860 END IF;
10861 --
10862 --
10863 ------------------------------------------------------------------------------------------------
10864 -- 4219869 Business Flow
10865 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10866 -- Prior Entry. Currently, the following code is always generated.
10867 ------------------------------------------------------------------------------------------------
10868 -- No ValidateCurrentLine for business flow method of Prior Entry
10869
10870 ------------------------------------------------------------------------------------
10871 -- 4219869 Business Flow
10872 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10873 ------------------------------------------------------------------------------------
10874 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10875
10876 ----------------------------------------------------------------------------------
10877 -- 4219869 Business Flow
10878 -- Update journal entry status -- Need to generate this within IF <condition>
10879 ----------------------------------------------------------------------------------
10880 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10881 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10882 ,p_balance_type_code => l_balance_type_code
10883 );
10884
10885 -------------------------------------------------------------------------------------------
10886 -- 4262811 - Generate the Accrual Reversal lines
10887 -------------------------------------------------------------------------------------------
10888 BEGIN
10889 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10890 (g_array_event(p_event_id).array_value_num('header_index'));
10891 IF l_acc_rev_flag IS NULL THEN
10892 l_acc_rev_flag := 'N';
10893 END IF;
10894 EXCEPTION
10895 WHEN OTHERS THEN
10896 l_acc_rev_flag := 'N';
10897 END;
10898 --
10899 IF (l_acc_rev_flag = 'Y') THEN
10900
10901 -- 4645092 ------------------------------------------------------------------------------
10902 -- To allow MPA report to determine if it should generate report process
10903 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10904 ------------------------------------------------------------------------------------------
10905
10906 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10907 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10908 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
10909 -- call ADRs
10910 -- Bug 4922099
10911 --
10912 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10913 (NVL(l_actual_upg_option, 'N') = 'O') OR
10914 (NVL(l_enc_upg_option, 'N') = 'O')
10915 )
10916 THEN
10917 NULL;
10918 --
10919 --
10920
10921 --
10922 --
10923 END IF;
10924
10925 --
10926 -- Update the line information that should be overwritten
10927 --
10928 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10929 p_header_num => 1);
10930 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10931
10932 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10933
10934 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10935 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10936 END IF;
10937
10938 --
10939 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10940 --
10941 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10942 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10943 ELSE
10944 ---------------------------------------------------------------------------------------------------
10945 -- 4262811a Switch Sign
10946 ---------------------------------------------------------------------------------------------------
10947 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10948 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10949 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10950 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10951 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10952 -- 5132302
10953 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10954 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10955
10956 END IF;
10957
10958 -- 4955764
10959 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10960 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10961
10962
10963 XLA_AE_LINES_PKG.ValidateCurrentLine;
10964 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10965
10966 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10967 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10968 ,p_balance_type_code => l_balance_type_code);
10969
10970 END IF;
10971
10972 -----------------------------------------------------------------------------------------
10973 -- 4262811 Multiperiod Accounting
10974 -----------------------------------------------------------------------------------------
10975 -- No MPA option is assigned.
10976
10977
10978 END IF;
10979 END IF;
10980 --
10981
10982 --
10983 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10984 trace
10985 (p_msg => 'END of AcctLineType_21'
10986 ,p_level => C_LEVEL_PROCEDURE
10987 ,p_module => l_log_module);
10988 END IF;
10989 --
10990 EXCEPTION
10991 WHEN xla_exceptions_pkg.application_exception THEN
10992 RAISE;
10993 WHEN OTHERS THEN
10994 xla_exceptions_pkg.raise_message
10995 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_21');
10996 END AcctLineType_21;
10997 --
10998
10999 ---------------------------------------
11000 --
11001 -- PRIVATE FUNCTION
11002 -- AcctLineType_22
11003 --
11004 ---------------------------------------
11005 PROCEDURE AcctLineType_22 (
11006 p_application_id IN NUMBER
11007 ,p_event_id IN NUMBER
11008 ,p_calculate_acctd_flag IN VARCHAR2
11009 ,p_calculate_g_l_flag IN VARCHAR2
11010 ,p_actual_flag IN OUT VARCHAR2
11011 ,p_balance_type_code OUT VARCHAR2
11012 ,p_gain_or_loss_ref OUT VARCHAR2
11013
11014 --DISTRIBUTION_IDENTIFIER
11015 , p_source_8 IN NUMBER
11016 --Distribution Type
11017 , p_source_9 IN VARCHAR2
11018 , p_source_9_meaning IN VARCHAR2
11019 --Entered Currency Code
11020 , p_source_11 IN VARCHAR2
11021 --Organization Encumbrance Reversal Indicator
11022 , p_source_17 IN VARCHAR2
11023 --Applied to Application ID
11024 , p_source_19 IN NUMBER
11025 --Encumbrance Reversal Amount Entered
11026 , p_source_25 IN NUMBER
11027 --Transaction Encumbrance Reversal Amount
11028 , p_source_26 IN NUMBER
11029 --Costing Encumbrance Upgrade Option
11030 , p_source_27 IN VARCHAR2
11031 --Requisition Encumbrance Flag
11032 , p_source_33 IN VARCHAR2
11033 --Requisition Reserved Flag
11034 , p_source_34 IN VARCHAR2
11035 --Business Flow Requisition Distribution Type
11036 , p_source_35 IN VARCHAR2
11037 --Business Flow Requisition Entity Code
11038 , p_source_36 IN VARCHAR2
11039 --Business Flow Requisition Distribution Identifier
11040 , p_source_37 IN NUMBER
11041 --Business Flow Requisition Identifier
11042 , p_source_38 IN NUMBER
11043 --Requisition Budget Account
11044 , p_source_39 IN NUMBER
11045 --Requisition Encumbrance Type Identifier
11046 , p_source_40 IN NUMBER
11047 )
11048 IS
11049
11050 l_component_type VARCHAR2(80);
11051 l_component_code VARCHAR2(30);
11052 l_component_type_code VARCHAR2(1);
11053 l_component_appl_id INTEGER;
11054 l_amb_context_code VARCHAR2(30);
11055 l_entity_code VARCHAR2(30);
11056 l_event_class_code VARCHAR2(30);
11057 l_ae_header_id NUMBER;
11058 l_event_type_code VARCHAR2(30);
11059 l_line_definition_code VARCHAR2(30);
11060 l_line_definition_owner_code VARCHAR2(1);
11061 --
11062 -- adr variables
11063 l_segment VARCHAR2(30);
11064 l_ccid NUMBER;
11065 l_adr_transaction_coa_id NUMBER;
11066 l_adr_accounting_coa_id NUMBER;
11067 l_adr_flexfield_segment_code VARCHAR2(30);
11068 l_adr_flex_value_set_id NUMBER;
11069 l_adr_value_type_code VARCHAR2(30);
11070 l_adr_value_combination_id NUMBER;
11071 l_adr_value_segment_code VARCHAR2(30);
11072
11073 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11074 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11075 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11076 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11077
11078 -- 4262811 Variables ------------------------------------------------------------------------------------------
11079 l_entered_amt_idx NUMBER;
11080 l_accted_amt_idx NUMBER;
11081 l_acc_rev_flag VARCHAR2(1);
11082 l_accrual_line_num NUMBER;
11083 l_tmp_amt NUMBER;
11084 l_acc_rev_natural_side_code VARCHAR2(1);
11085
11086 l_num_entries NUMBER;
11087 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11088 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11089 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11090 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11091 l_recog_line_1 NUMBER;
11092 l_recog_line_2 NUMBER;
11093
11094 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11095 l_bflow_applied_to_amt NUMBER; -- 5132302
11096 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11097
11098 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11099
11100 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11101 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11102
11103 ---------------------------------------------------------------------------------------------------------------
11104
11105
11106 --
11107 -- bulk performance
11108 --
11109 l_balance_type_code VARCHAR2(1);
11110 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11111 l_log_module VARCHAR2(240);
11112
11113 --
11114 -- Upgrade strategy
11115 --
11116 l_actual_upg_option VARCHAR2(1);
11117 l_enc_upg_option VARCHAR2(1);
11118
11119 --
11120 BEGIN
11121 --
11122 IF g_log_enabled THEN
11123 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_22';
11124 END IF;
11125 --
11126 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11127
11128 trace
11129 (p_msg => 'BEGIN of AcctLineType_22'
11130 ,p_level => C_LEVEL_PROCEDURE
11131 ,p_module => l_log_module);
11132
11133 END IF;
11134 --
11135 l_component_type := 'AMB_JLT';
11136 l_component_code := 'RELIEVE_REQ_ENC_ON_DIR';
11137 l_component_type_code := 'S';
11138 l_component_appl_id := 707;
11139 l_amb_context_code := 'DEFAULT';
11140 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
11141 l_event_class_code := 'DIR_INTERORG_RCPT';
11142 l_event_type_code := 'DIR_INTERORG_RCPT_ALL';
11143 l_line_definition_owner_code := 'S';
11144 l_line_definition_code := 'REQ_ENCUM_ON_DIR';
11145 --
11146 l_balance_type_code := 'E';
11147 l_segment := NULL;
11148 l_ccid := NULL;
11149 l_adr_transaction_coa_id := NULL;
11150 l_adr_accounting_coa_id := NULL;
11151 l_adr_flexfield_segment_code := NULL;
11152 l_adr_flex_value_set_id := NULL;
11153 l_adr_value_type_code := NULL;
11154 l_adr_value_combination_id := NULL;
11155 l_adr_value_segment_code := NULL;
11156
11157 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
11158 l_bflow_class_code := 'REQ_ENCUMBRANCE'; -- 4219869 Business Flow
11159 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
11160 l_budgetary_control_flag := 'Y';
11161
11162 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11163 l_bflow_applied_to_amt := NULL; -- 5132302
11164 l_entered_amt_idx := NULL; -- 4262811
11165 l_accted_amt_idx := NULL; -- 4262811
11166 l_acc_rev_flag := NULL; -- 4262811
11167 l_accrual_line_num := NULL; -- 4262811
11168 l_tmp_amt := NULL; -- 4262811
11169 --
11170
11171 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11172 l_balance_type_code <> 'B' THEN
11173 IF NVL(p_source_33,'
11174 ') = 'Y' AND
11175 NVL(p_source_17,'
11176 ') = 'Y' AND
11177 NVL(p_source_34,'
11178 ') = 'Y'
11179 THEN
11180
11181 --
11182 XLA_AE_LINES_PKG.SetNewLine;
11183
11184 p_balance_type_code := l_balance_type_code;
11185 -- set the flag so later we will know whether the gain loss line needs to be created
11186
11187 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11188 p_actual_flag :='A';
11189 END IF;
11190
11191 --
11192 -- bulk performance
11193 --
11194 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11195 p_header_num => 0); -- 4262811
11196 --
11197 -- set accounting line options
11198 --
11199 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11200 p_natural_side_code => 'C'
11201 , p_gain_or_loss_flag => 'N'
11202 , p_gl_transfer_mode_code => 'S'
11203 , p_acct_entry_type_code => 'E'
11204 , p_switch_side_flag => 'N'
11205 , p_merge_duplicate_code => 'N'
11206 );
11207 --
11208 l_acc_rev_natural_side_code := 'D'; -- 4262811
11209 --
11210 --
11211 -- set accounting line type info
11212 --
11213 xla_ae_lines_pkg.SetAcctLineType
11214 (p_component_type => l_component_type
11215 ,p_event_type_code => l_event_type_code
11216 ,p_line_definition_owner_code => l_line_definition_owner_code
11217 ,p_line_definition_code => l_line_definition_code
11218 ,p_accounting_line_code => l_component_code
11219 ,p_accounting_line_type_code => l_component_type_code
11220 ,p_accounting_line_appl_id => l_component_appl_id
11221 ,p_amb_context_code => l_amb_context_code
11222 ,p_entity_code => l_entity_code
11223 ,p_event_class_code => l_event_class_code);
11224 --
11225 -- set accounting class
11226 --
11227 xla_ae_lines_pkg.SetAcctClass(
11228 p_accounting_class_code => 'REQUISITION'
11229 , p_ae_header_id => l_ae_header_id
11230 );
11231
11232 --
11233 -- set rounding class
11234 --
11235 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11236 'REQUISITION';
11237
11238 --
11239 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11240 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11241 --
11242 -- bulk performance
11243 --
11244 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11245
11246 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11247 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11248
11249 -- 4955764
11250 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11251 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11252
11253 -- 4458381 Public Sector Enh
11254
11255 --
11256 -- set accounting attributes for the line type
11257 --
11258 l_entered_amt_idx := 17;
11259 l_accted_amt_idx := 19;
11260 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11261 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
11262 l_rec_acct_attrs.array_num_value(1) := p_source_19;
11263 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11264 l_rec_acct_attrs.array_char_value(2) := p_source_35;
11265 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
11266 l_rec_acct_attrs.array_char_value(3) := p_source_36;
11267 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
11268 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_37);
11269 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11270 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_38);
11271 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
11272 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
11273 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
11274 l_rec_acct_attrs.array_char_value(7) := p_source_9;
11275 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
11276 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_39);
11277 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
11278 l_rec_acct_attrs.array_num_value(9) := p_source_25;
11279 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
11280 l_rec_acct_attrs.array_char_value(10) := p_source_11;
11281 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
11282 l_rec_acct_attrs.array_num_value(11) := p_source_26;
11283 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
11284 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_39);
11285 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
11286 l_rec_acct_attrs.array_num_value(13) := p_source_25;
11287 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
11288 l_rec_acct_attrs.array_char_value(14) := p_source_11;
11289 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
11290 l_rec_acct_attrs.array_num_value(15) := p_source_26;
11291 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
11292 l_rec_acct_attrs.array_char_value(16) := p_source_27;
11293 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
11294 l_rec_acct_attrs.array_num_value(17) := p_source_25;
11295 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
11296 l_rec_acct_attrs.array_char_value(18) := p_source_11;
11297 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
11298 l_rec_acct_attrs.array_num_value(19) := p_source_26;
11299 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
11300 l_rec_acct_attrs.array_num_value(20) := p_source_40;
11301 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
11302 l_rec_acct_attrs.array_num_value(21) := p_source_40;
11303
11304 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11305 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11306
11307 ---------------------------------------------------------------------------------------------------------------
11308 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11309 ---------------------------------------------------------------------------------------------------------------
11310 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11311
11312 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11313 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11314
11315 IF xla_accounting_cache_pkg.GetValueChar
11316 (p_source_code => 'LEDGER_CATEGORY_CODE'
11317 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11318 AND l_bflow_method_code = 'PRIOR_ENTRY'
11319 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11320 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11321 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11322 )
11323 THEN
11324 xla_ae_lines_pkg.BflowUpgEntry
11325 (p_business_method_code => l_bflow_method_code
11326 ,p_business_class_code => l_bflow_class_code
11327 ,p_balance_type => l_balance_type_code);
11328 ELSE
11329 NULL;
11330 XLA_AE_LINES_PKG.business_flow_validation(
11331 p_business_method_code => l_bflow_method_code
11332 ,p_business_class_code => l_bflow_class_code
11333 ,p_inherit_description_flag => l_inherit_desc_flag);
11334 END IF;
11335
11336 --
11337 -- call analytical criteria
11338 --
11339 -- Inherited Analytical Criteria for business flow method of Prior Entry.
11340 --
11341 -- call description
11342 --
11343 -- No description or it is inherited.
11344 --
11345 -- call ADRs
11346 -- Bug 4922099
11347 --
11348 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11349 (NVL(l_actual_upg_option, 'N') = 'O') OR
11350 (NVL(l_enc_upg_option, 'N') = 'O')
11351 )
11352 THEN
11353 NULL;
11354 --
11355 --
11356
11357 --
11358 --
11359 END IF;
11360 --
11361 -- Bug 4922099
11362 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11363 (NVL(l_enc_upg_option, 'N') = 'O')
11364 ) AND
11365 (l_bflow_method_code = 'PRIOR_ENTRY')
11366 )
11367 THEN
11368 IF
11369 --
11370 1 = 1
11371 --
11372 THEN
11373 xla_accounting_err_pkg.build_message
11374 (p_appli_s_name => 'XLA'
11375 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11376 ,p_token_1 => 'LINE_NUMBER'
11377 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
11378 ,p_token_2 => 'LINE_TYPE_NAME'
11379 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11380 l_component_type
11381 ,l_component_code
11382 ,l_component_type_code
11383 ,l_component_appl_id
11384 ,l_amb_context_code
11385 ,l_entity_code
11386 ,l_event_class_code
11387 )
11388 ,p_token_3 => 'OWNER'
11389 ,p_value_3 => xla_lookups_pkg.get_meaning(
11390 p_lookup_type => 'XLA_OWNER_TYPE'
11391 ,p_lookup_code => l_component_type_code
11392 )
11393 ,p_token_4 => 'PRODUCT_NAME'
11394 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11395 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11396 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11397 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11398 ,p_ae_header_id => NULL
11399 );
11400
11401 IF (C_LEVEL_ERROR>= g_log_level) THEN
11402 trace
11403 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11404 ,p_level => C_LEVEL_ERROR
11405 ,p_module => l_log_module);
11406 END IF;
11407 END IF;
11408 END IF;
11409 --
11410 --
11411 ------------------------------------------------------------------------------------------------
11412 -- 4219869 Business Flow
11413 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11414 -- Prior Entry. Currently, the following code is always generated.
11415 ------------------------------------------------------------------------------------------------
11416 -- No ValidateCurrentLine for business flow method of Prior Entry
11417
11418 ------------------------------------------------------------------------------------
11419 -- 4219869 Business Flow
11420 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11421 ------------------------------------------------------------------------------------
11422 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11423
11424 ----------------------------------------------------------------------------------
11425 -- 4219869 Business Flow
11426 -- Update journal entry status -- Need to generate this within IF <condition>
11427 ----------------------------------------------------------------------------------
11428 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11429 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11430 ,p_balance_type_code => l_balance_type_code
11431 );
11432
11433 -------------------------------------------------------------------------------------------
11434 -- 4262811 - Generate the Accrual Reversal lines
11435 -------------------------------------------------------------------------------------------
11436 BEGIN
11437 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11438 (g_array_event(p_event_id).array_value_num('header_index'));
11439 IF l_acc_rev_flag IS NULL THEN
11440 l_acc_rev_flag := 'N';
11441 END IF;
11442 EXCEPTION
11443 WHEN OTHERS THEN
11444 l_acc_rev_flag := 'N';
11445 END;
11446 --
11447 IF (l_acc_rev_flag = 'Y') THEN
11448
11449 -- 4645092 ------------------------------------------------------------------------------
11450 -- To allow MPA report to determine if it should generate report process
11451 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11452 ------------------------------------------------------------------------------------------
11453
11454 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11455 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11456 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
11457 -- call ADRs
11458 -- Bug 4922099
11459 --
11460 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11461 (NVL(l_actual_upg_option, 'N') = 'O') OR
11462 (NVL(l_enc_upg_option, 'N') = 'O')
11463 )
11464 THEN
11465 NULL;
11466 --
11467 --
11468
11469 --
11470 --
11471 END IF;
11472
11473 --
11474 -- Update the line information that should be overwritten
11475 --
11476 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11477 p_header_num => 1);
11478 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
11479
11480 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11481
11482 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
11483 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11484 END IF;
11485
11486 --
11487 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11488 --
11489 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11490 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
11491 ELSE
11492 ---------------------------------------------------------------------------------------------------
11493 -- 4262811a Switch Sign
11494 ---------------------------------------------------------------------------------------------------
11495 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
11496 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11497 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11498 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11499 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11500 -- 5132302
11501 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11502 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11503
11504 END IF;
11505
11506 -- 4955764
11507 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11508 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11509
11510
11511 XLA_AE_LINES_PKG.ValidateCurrentLine;
11512 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11513
11514 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11515 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11516 ,p_balance_type_code => l_balance_type_code);
11517
11518 END IF;
11519
11520 -----------------------------------------------------------------------------------------
11521 -- 4262811 Multiperiod Accounting
11522 -----------------------------------------------------------------------------------------
11523 -- No MPA option is assigned.
11524
11525
11526 END IF;
11527 END IF;
11528 --
11529
11530 --
11531 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11532 trace
11533 (p_msg => 'END of AcctLineType_22'
11534 ,p_level => C_LEVEL_PROCEDURE
11535 ,p_module => l_log_module);
11536 END IF;
11537 --
11538 EXCEPTION
11539 WHEN xla_exceptions_pkg.application_exception THEN
11540 RAISE;
11541 WHEN OTHERS THEN
11542 xla_exceptions_pkg.raise_message
11543 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_22');
11544 END AcctLineType_22;
11545 --
11546
11547 ---------------------------------------
11548 --
11549 -- PRIVATE FUNCTION
11550 -- AcctLineType_23
11551 --
11552 ---------------------------------------
11553 PROCEDURE AcctLineType_23 (
11554 p_application_id IN NUMBER
11555 ,p_event_id IN NUMBER
11556 ,p_calculate_acctd_flag IN VARCHAR2
11557 ,p_calculate_g_l_flag IN VARCHAR2
11558 ,p_actual_flag IN OUT VARCHAR2
11559 ,p_balance_type_code OUT VARCHAR2
11560 ,p_gain_or_loss_ref OUT VARCHAR2
11561
11562 --Accounting Line Type
11563 , p_source_7 IN NUMBER
11564 --DISTRIBUTION_IDENTIFIER
11565 , p_source_8 IN NUMBER
11566 --Distribution Type
11567 , p_source_9 IN VARCHAR2
11568 , p_source_9_meaning IN VARCHAR2
11569 --Entered Currency Code
11570 , p_source_11 IN VARCHAR2
11571 --Organization Encumbrance Reversal Indicator
11572 , p_source_17 IN VARCHAR2
11573 --Applied to Application ID
11574 , p_source_19 IN NUMBER
11575 --Encumbrance Reversal Amount Entered
11576 , p_source_25 IN NUMBER
11577 --Transaction Encumbrance Reversal Amount
11578 , p_source_26 IN NUMBER
11579 --Costing Encumbrance Upgrade Option
11580 , p_source_27 IN VARCHAR2
11581 --Requisition Encumbrance Flag
11582 , p_source_33 IN VARCHAR2
11583 --Requisition Reserved Flag
11584 , p_source_34 IN VARCHAR2
11585 --Business Flow Requisition Distribution Type
11586 , p_source_35 IN VARCHAR2
11587 --Business Flow Requisition Entity Code
11588 , p_source_36 IN VARCHAR2
11589 --Business Flow Requisition Distribution Identifier
11590 , p_source_37 IN NUMBER
11591 --Business Flow Requisition Identifier
11592 , p_source_38 IN NUMBER
11593 --Requisition Budget Account
11594 , p_source_39 IN NUMBER
11595 --Requisition Encumbrance Type Identifier
11596 , p_source_40 IN NUMBER
11597 )
11598 IS
11599
11600 l_component_type VARCHAR2(80);
11601 l_component_code VARCHAR2(30);
11602 l_component_type_code VARCHAR2(1);
11603 l_component_appl_id INTEGER;
11604 l_amb_context_code VARCHAR2(30);
11605 l_entity_code VARCHAR2(30);
11606 l_event_class_code VARCHAR2(30);
11607 l_ae_header_id NUMBER;
11608 l_event_type_code VARCHAR2(30);
11609 l_line_definition_code VARCHAR2(30);
11610 l_line_definition_owner_code VARCHAR2(1);
11611 --
11612 -- adr variables
11613 l_segment VARCHAR2(30);
11614 l_ccid NUMBER;
11615 l_adr_transaction_coa_id NUMBER;
11616 l_adr_accounting_coa_id NUMBER;
11617 l_adr_flexfield_segment_code VARCHAR2(30);
11618 l_adr_flex_value_set_id NUMBER;
11619 l_adr_value_type_code VARCHAR2(30);
11620 l_adr_value_combination_id NUMBER;
11621 l_adr_value_segment_code VARCHAR2(30);
11622
11623 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11624 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11625 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11626 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11627
11628 -- 4262811 Variables ------------------------------------------------------------------------------------------
11629 l_entered_amt_idx NUMBER;
11630 l_accted_amt_idx NUMBER;
11631 l_acc_rev_flag VARCHAR2(1);
11632 l_accrual_line_num NUMBER;
11633 l_tmp_amt NUMBER;
11634 l_acc_rev_natural_side_code VARCHAR2(1);
11635
11636 l_num_entries NUMBER;
11637 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11638 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11639 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11640 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11641 l_recog_line_1 NUMBER;
11642 l_recog_line_2 NUMBER;
11643
11644 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11645 l_bflow_applied_to_amt NUMBER; -- 5132302
11646 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11647
11648 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11649
11650 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11651 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11652
11653 ---------------------------------------------------------------------------------------------------------------
11654
11655
11656 --
11657 -- bulk performance
11658 --
11659 l_balance_type_code VARCHAR2(1);
11660 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11661 l_log_module VARCHAR2(240);
11662
11663 --
11664 -- Upgrade strategy
11665 --
11666 l_actual_upg_option VARCHAR2(1);
11667 l_enc_upg_option VARCHAR2(1);
11668
11669 --
11670 BEGIN
11671 --
11672 IF g_log_enabled THEN
11673 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_23';
11674 END IF;
11675 --
11676 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11677
11678 trace
11679 (p_msg => 'BEGIN of AcctLineType_23'
11680 ,p_level => C_LEVEL_PROCEDURE
11681 ,p_module => l_log_module);
11682
11683 END IF;
11684 --
11685 l_component_type := 'AMB_JLT';
11686 l_component_code := 'RELIEVE_REQ_ENC_ON_REC_IIRFOBR';
11687 l_component_type_code := 'S';
11688 l_component_appl_id := 707;
11689 l_amb_context_code := 'DEFAULT';
11690 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
11691 l_event_class_code := 'FOB_RCPT_RECIPIENT_RCPT';
11692 l_event_type_code := 'FOB_RCPT_RECIPIENT_RCPT_TP';
11693 l_line_definition_owner_code := 'S';
11694 l_line_definition_code := 'REQ_ENC_ON_IIR_FOB_RCPT_TP';
11695 --
11696 l_balance_type_code := 'E';
11697 l_segment := NULL;
11698 l_ccid := NULL;
11699 l_adr_transaction_coa_id := NULL;
11700 l_adr_accounting_coa_id := NULL;
11701 l_adr_flexfield_segment_code := NULL;
11702 l_adr_flex_value_set_id := NULL;
11703 l_adr_value_type_code := NULL;
11704 l_adr_value_combination_id := NULL;
11705 l_adr_value_segment_code := NULL;
11706
11707 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
11708 l_bflow_class_code := 'REQ_ENCUMBRANCE'; -- 4219869 Business Flow
11709 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
11710 l_budgetary_control_flag := 'Y';
11711
11712 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11713 l_bflow_applied_to_amt := NULL; -- 5132302
11714 l_entered_amt_idx := NULL; -- 4262811
11715 l_accted_amt_idx := NULL; -- 4262811
11716 l_acc_rev_flag := NULL; -- 4262811
11717 l_accrual_line_num := NULL; -- 4262811
11718 l_tmp_amt := NULL; -- 4262811
11719 --
11720
11721 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11722 l_balance_type_code <> 'B' THEN
11723 IF NVL(p_source_33,'
11724 ') = 'Y' AND
11725 NVL(p_source_17,'
11726 ') = 'Y' AND
11727 NVL(p_source_34,'
11728 ') = 'Y' AND
11729 NVL(p_source_7,9E125) = 15
11730 THEN
11731
11732 --
11733 XLA_AE_LINES_PKG.SetNewLine;
11734
11735 p_balance_type_code := l_balance_type_code;
11736 -- set the flag so later we will know whether the gain loss line needs to be created
11737
11738 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11739 p_actual_flag :='A';
11740 END IF;
11741
11742 --
11743 -- bulk performance
11744 --
11745 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11746 p_header_num => 0); -- 4262811
11747 --
11748 -- set accounting line options
11749 --
11750 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11751 p_natural_side_code => 'C'
11752 , p_gain_or_loss_flag => 'N'
11753 , p_gl_transfer_mode_code => 'S'
11754 , p_acct_entry_type_code => 'E'
11755 , p_switch_side_flag => 'N'
11756 , p_merge_duplicate_code => 'N'
11757 );
11758 --
11759 l_acc_rev_natural_side_code := 'D'; -- 4262811
11760 --
11761 --
11762 -- set accounting line type info
11763 --
11764 xla_ae_lines_pkg.SetAcctLineType
11765 (p_component_type => l_component_type
11766 ,p_event_type_code => l_event_type_code
11767 ,p_line_definition_owner_code => l_line_definition_owner_code
11768 ,p_line_definition_code => l_line_definition_code
11769 ,p_accounting_line_code => l_component_code
11770 ,p_accounting_line_type_code => l_component_type_code
11771 ,p_accounting_line_appl_id => l_component_appl_id
11772 ,p_amb_context_code => l_amb_context_code
11773 ,p_entity_code => l_entity_code
11774 ,p_event_class_code => l_event_class_code);
11775 --
11776 -- set accounting class
11777 --
11778 xla_ae_lines_pkg.SetAcctClass(
11779 p_accounting_class_code => 'REQUISITION'
11780 , p_ae_header_id => l_ae_header_id
11781 );
11782
11783 --
11784 -- set rounding class
11785 --
11786 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11787 'REQUISITION';
11788
11789 --
11790 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11791 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11792 --
11793 -- bulk performance
11794 --
11795 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11796
11797 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11798 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11799
11800 -- 4955764
11801 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11802 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11803
11804 -- 4458381 Public Sector Enh
11805
11806 --
11807 -- set accounting attributes for the line type
11808 --
11809 l_entered_amt_idx := 17;
11810 l_accted_amt_idx := 19;
11811 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11812 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
11813 l_rec_acct_attrs.array_num_value(1) := p_source_19;
11814 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11815 l_rec_acct_attrs.array_char_value(2) := p_source_35;
11816 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
11817 l_rec_acct_attrs.array_char_value(3) := p_source_36;
11818 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
11819 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_37);
11820 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11821 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_38);
11822 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
11823 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
11824 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
11825 l_rec_acct_attrs.array_char_value(7) := p_source_9;
11826 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
11827 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_39);
11828 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
11829 l_rec_acct_attrs.array_num_value(9) := p_source_25;
11830 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
11831 l_rec_acct_attrs.array_char_value(10) := p_source_11;
11832 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
11833 l_rec_acct_attrs.array_num_value(11) := p_source_26;
11834 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
11835 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_39);
11836 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
11837 l_rec_acct_attrs.array_num_value(13) := p_source_25;
11838 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
11839 l_rec_acct_attrs.array_char_value(14) := p_source_11;
11840 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
11841 l_rec_acct_attrs.array_num_value(15) := p_source_26;
11842 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
11843 l_rec_acct_attrs.array_char_value(16) := p_source_27;
11844 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
11845 l_rec_acct_attrs.array_num_value(17) := p_source_25;
11846 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
11847 l_rec_acct_attrs.array_char_value(18) := p_source_11;
11848 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
11849 l_rec_acct_attrs.array_num_value(19) := p_source_26;
11850 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
11851 l_rec_acct_attrs.array_num_value(20) := p_source_40;
11852 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
11853 l_rec_acct_attrs.array_num_value(21) := p_source_40;
11854
11855 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11856 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11857
11858 ---------------------------------------------------------------------------------------------------------------
11859 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11860 ---------------------------------------------------------------------------------------------------------------
11861 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11862
11863 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11864 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11865
11866 IF xla_accounting_cache_pkg.GetValueChar
11867 (p_source_code => 'LEDGER_CATEGORY_CODE'
11868 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11869 AND l_bflow_method_code = 'PRIOR_ENTRY'
11870 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11871 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11872 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11873 )
11874 THEN
11875 xla_ae_lines_pkg.BflowUpgEntry
11876 (p_business_method_code => l_bflow_method_code
11877 ,p_business_class_code => l_bflow_class_code
11878 ,p_balance_type => l_balance_type_code);
11879 ELSE
11880 NULL;
11881 XLA_AE_LINES_PKG.business_flow_validation(
11882 p_business_method_code => l_bflow_method_code
11883 ,p_business_class_code => l_bflow_class_code
11884 ,p_inherit_description_flag => l_inherit_desc_flag);
11885 END IF;
11886
11887 --
11888 -- call analytical criteria
11889 --
11890 -- Inherited Analytical Criteria for business flow method of Prior Entry.
11891 --
11892 -- call description
11893 --
11894 -- No description or it is inherited.
11895 --
11896 -- call ADRs
11897 -- Bug 4922099
11898 --
11899 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11900 (NVL(l_actual_upg_option, 'N') = 'O') OR
11901 (NVL(l_enc_upg_option, 'N') = 'O')
11902 )
11903 THEN
11904 NULL;
11905 --
11906 --
11907
11908 --
11909 --
11910 END IF;
11911 --
11912 -- Bug 4922099
11913 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11914 (NVL(l_enc_upg_option, 'N') = 'O')
11915 ) AND
11916 (l_bflow_method_code = 'PRIOR_ENTRY')
11917 )
11918 THEN
11919 IF
11920 --
11921 1 = 1
11922 --
11923 THEN
11924 xla_accounting_err_pkg.build_message
11925 (p_appli_s_name => 'XLA'
11926 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11927 ,p_token_1 => 'LINE_NUMBER'
11928 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
11929 ,p_token_2 => 'LINE_TYPE_NAME'
11930 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11931 l_component_type
11932 ,l_component_code
11933 ,l_component_type_code
11934 ,l_component_appl_id
11935 ,l_amb_context_code
11936 ,l_entity_code
11937 ,l_event_class_code
11938 )
11939 ,p_token_3 => 'OWNER'
11940 ,p_value_3 => xla_lookups_pkg.get_meaning(
11941 p_lookup_type => 'XLA_OWNER_TYPE'
11942 ,p_lookup_code => l_component_type_code
11943 )
11944 ,p_token_4 => 'PRODUCT_NAME'
11945 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11946 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11947 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11948 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11949 ,p_ae_header_id => NULL
11950 );
11951
11952 IF (C_LEVEL_ERROR>= g_log_level) THEN
11953 trace
11954 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11955 ,p_level => C_LEVEL_ERROR
11956 ,p_module => l_log_module);
11957 END IF;
11958 END IF;
11959 END IF;
11960 --
11961 --
11962 ------------------------------------------------------------------------------------------------
11963 -- 4219869 Business Flow
11964 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11965 -- Prior Entry. Currently, the following code is always generated.
11966 ------------------------------------------------------------------------------------------------
11967 -- No ValidateCurrentLine for business flow method of Prior Entry
11968
11969 ------------------------------------------------------------------------------------
11970 -- 4219869 Business Flow
11971 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11972 ------------------------------------------------------------------------------------
11973 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11974
11975 ----------------------------------------------------------------------------------
11976 -- 4219869 Business Flow
11977 -- Update journal entry status -- Need to generate this within IF <condition>
11978 ----------------------------------------------------------------------------------
11979 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11980 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11981 ,p_balance_type_code => l_balance_type_code
11982 );
11983
11984 -------------------------------------------------------------------------------------------
11985 -- 4262811 - Generate the Accrual Reversal lines
11986 -------------------------------------------------------------------------------------------
11987 BEGIN
11988 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11989 (g_array_event(p_event_id).array_value_num('header_index'));
11990 IF l_acc_rev_flag IS NULL THEN
11991 l_acc_rev_flag := 'N';
11992 END IF;
11993 EXCEPTION
11994 WHEN OTHERS THEN
11995 l_acc_rev_flag := 'N';
11996 END;
11997 --
11998 IF (l_acc_rev_flag = 'Y') THEN
11999
12000 -- 4645092 ------------------------------------------------------------------------------
12001 -- To allow MPA report to determine if it should generate report process
12002 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12003 ------------------------------------------------------------------------------------------
12004
12005 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12006 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12007 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
12008 -- call ADRs
12009 -- Bug 4922099
12010 --
12011 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12012 (NVL(l_actual_upg_option, 'N') = 'O') OR
12013 (NVL(l_enc_upg_option, 'N') = 'O')
12014 )
12015 THEN
12016 NULL;
12017 --
12018 --
12019
12020 --
12021 --
12022 END IF;
12023
12024 --
12025 -- Update the line information that should be overwritten
12026 --
12027 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12028 p_header_num => 1);
12029 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12030
12031 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12032
12033 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12034 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12035 END IF;
12036
12037 --
12038 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12039 --
12040 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12041 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12042 ELSE
12043 ---------------------------------------------------------------------------------------------------
12044 -- 4262811a Switch Sign
12045 ---------------------------------------------------------------------------------------------------
12046 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12047 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12048 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12049 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12050 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12051 -- 5132302
12052 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12053 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12054
12055 END IF;
12056
12057 -- 4955764
12058 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12059 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12060
12061
12062 XLA_AE_LINES_PKG.ValidateCurrentLine;
12063 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12064
12065 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12066 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12067 ,p_balance_type_code => l_balance_type_code);
12068
12069 END IF;
12070
12071 -----------------------------------------------------------------------------------------
12072 -- 4262811 Multiperiod Accounting
12073 -----------------------------------------------------------------------------------------
12074 -- No MPA option is assigned.
12075
12076
12077 END IF;
12078 END IF;
12079 --
12080
12081 --
12082 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12083 trace
12084 (p_msg => 'END of AcctLineType_23'
12085 ,p_level => C_LEVEL_PROCEDURE
12086 ,p_module => l_log_module);
12087 END IF;
12088 --
12089 EXCEPTION
12090 WHEN xla_exceptions_pkg.application_exception THEN
12091 RAISE;
12092 WHEN OTHERS THEN
12093 xla_exceptions_pkg.raise_message
12094 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_23');
12095 END AcctLineType_23;
12096 --
12097
12098 ---------------------------------------
12099 --
12100 -- PRIVATE FUNCTION
12101 -- AcctLineType_24
12102 --
12103 ---------------------------------------
12104 PROCEDURE AcctLineType_24 (
12105 p_application_id IN NUMBER
12106 ,p_event_id IN NUMBER
12107 ,p_calculate_acctd_flag IN VARCHAR2
12108 ,p_calculate_g_l_flag IN VARCHAR2
12109 ,p_actual_flag IN OUT VARCHAR2
12110 ,p_balance_type_code OUT VARCHAR2
12111 ,p_gain_or_loss_ref OUT VARCHAR2
12112
12113 --Accounting Line Type
12114 , p_source_7 IN NUMBER
12115 --DISTRIBUTION_IDENTIFIER
12116 , p_source_8 IN NUMBER
12117 --Distribution Type
12118 , p_source_9 IN VARCHAR2
12119 , p_source_9_meaning IN VARCHAR2
12120 --Entered Currency Code
12121 , p_source_11 IN VARCHAR2
12122 --Organization Encumbrance Reversal Indicator
12123 , p_source_17 IN VARCHAR2
12124 --Applied to Application ID
12125 , p_source_19 IN NUMBER
12126 --Encumbrance Reversal Amount Entered
12127 , p_source_25 IN NUMBER
12128 --Transaction Encumbrance Reversal Amount
12129 , p_source_26 IN NUMBER
12130 --Costing Encumbrance Upgrade Option
12131 , p_source_27 IN VARCHAR2
12132 --Requisition Encumbrance Flag
12133 , p_source_33 IN VARCHAR2
12134 --Requisition Reserved Flag
12135 , p_source_34 IN VARCHAR2
12136 --Business Flow Requisition Distribution Type
12137 , p_source_35 IN VARCHAR2
12138 --Business Flow Requisition Entity Code
12139 , p_source_36 IN VARCHAR2
12140 --Business Flow Requisition Distribution Identifier
12141 , p_source_37 IN NUMBER
12142 --Business Flow Requisition Identifier
12143 , p_source_38 IN NUMBER
12144 --Requisition Budget Account
12145 , p_source_39 IN NUMBER
12146 --Requisition Encumbrance Type Identifier
12147 , p_source_40 IN NUMBER
12148 )
12149 IS
12150
12151 l_component_type VARCHAR2(80);
12152 l_component_code VARCHAR2(30);
12153 l_component_type_code VARCHAR2(1);
12154 l_component_appl_id INTEGER;
12155 l_amb_context_code VARCHAR2(30);
12156 l_entity_code VARCHAR2(30);
12157 l_event_class_code VARCHAR2(30);
12158 l_ae_header_id NUMBER;
12159 l_event_type_code VARCHAR2(30);
12160 l_line_definition_code VARCHAR2(30);
12161 l_line_definition_owner_code VARCHAR2(1);
12162 --
12163 -- adr variables
12164 l_segment VARCHAR2(30);
12165 l_ccid NUMBER;
12166 l_adr_transaction_coa_id NUMBER;
12167 l_adr_accounting_coa_id NUMBER;
12168 l_adr_flexfield_segment_code VARCHAR2(30);
12169 l_adr_flex_value_set_id NUMBER;
12170 l_adr_value_type_code VARCHAR2(30);
12171 l_adr_value_combination_id NUMBER;
12172 l_adr_value_segment_code VARCHAR2(30);
12173
12174 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12175 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12176 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12177 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12178
12179 -- 4262811 Variables ------------------------------------------------------------------------------------------
12180 l_entered_amt_idx NUMBER;
12181 l_accted_amt_idx NUMBER;
12182 l_acc_rev_flag VARCHAR2(1);
12183 l_accrual_line_num NUMBER;
12184 l_tmp_amt NUMBER;
12185 l_acc_rev_natural_side_code VARCHAR2(1);
12186
12187 l_num_entries NUMBER;
12188 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12189 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12190 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12191 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12192 l_recog_line_1 NUMBER;
12193 l_recog_line_2 NUMBER;
12194
12195 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12196 l_bflow_applied_to_amt NUMBER; -- 5132302
12197 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12198
12199 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12200
12201 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12202 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12203
12204 ---------------------------------------------------------------------------------------------------------------
12205
12206
12207 --
12208 -- bulk performance
12209 --
12210 l_balance_type_code VARCHAR2(1);
12211 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12212 l_log_module VARCHAR2(240);
12213
12214 --
12215 -- Upgrade strategy
12216 --
12217 l_actual_upg_option VARCHAR2(1);
12218 l_enc_upg_option VARCHAR2(1);
12219
12220 --
12221 BEGIN
12222 --
12223 IF g_log_enabled THEN
12224 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_24';
12225 END IF;
12226 --
12227 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12228
12229 trace
12230 (p_msg => 'BEGIN of AcctLineType_24'
12231 ,p_level => C_LEVEL_PROCEDURE
12232 ,p_module => l_log_module);
12233
12234 END IF;
12235 --
12236 l_component_type := 'AMB_JLT';
12237 l_component_code := 'RELIEVE_REQ_ENC_ON_REC_IIRFOBR';
12238 l_component_type_code := 'S';
12239 l_component_appl_id := 707;
12240 l_amb_context_code := 'DEFAULT';
12241 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
12242 l_event_class_code := 'FOB_RCPT_RECIPIENT_RCPT';
12243 l_event_type_code := 'FOB_RCPT_RECIPIENT_RCPT_NO_TP';
12244 l_line_definition_owner_code := 'S';
12245 l_line_definition_code := 'REQ_ENC_ON_IIR_FOB_RCPT_NTP';
12246 --
12247 l_balance_type_code := 'E';
12248 l_segment := NULL;
12249 l_ccid := NULL;
12250 l_adr_transaction_coa_id := NULL;
12251 l_adr_accounting_coa_id := NULL;
12252 l_adr_flexfield_segment_code := NULL;
12253 l_adr_flex_value_set_id := NULL;
12254 l_adr_value_type_code := NULL;
12255 l_adr_value_combination_id := NULL;
12256 l_adr_value_segment_code := NULL;
12257
12258 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
12259 l_bflow_class_code := 'REQ_ENCUMBRANCE'; -- 4219869 Business Flow
12260 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
12261 l_budgetary_control_flag := 'Y';
12262
12263 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12264 l_bflow_applied_to_amt := NULL; -- 5132302
12265 l_entered_amt_idx := NULL; -- 4262811
12266 l_accted_amt_idx := NULL; -- 4262811
12267 l_acc_rev_flag := NULL; -- 4262811
12268 l_accrual_line_num := NULL; -- 4262811
12269 l_tmp_amt := NULL; -- 4262811
12270 --
12271
12272 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12273 l_balance_type_code <> 'B' THEN
12274 IF NVL(p_source_33,'
12275 ') = 'Y' AND
12276 NVL(p_source_17,'
12277 ') = 'Y' AND
12278 NVL(p_source_34,'
12279 ') = 'Y' AND
12280 NVL(p_source_7,9E125) = 15
12281 THEN
12282
12283 --
12284 XLA_AE_LINES_PKG.SetNewLine;
12285
12286 p_balance_type_code := l_balance_type_code;
12287 -- set the flag so later we will know whether the gain loss line needs to be created
12288
12289 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
12290 p_actual_flag :='A';
12291 END IF;
12292
12293 --
12294 -- bulk performance
12295 --
12296 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12297 p_header_num => 0); -- 4262811
12298 --
12299 -- set accounting line options
12300 --
12301 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12302 p_natural_side_code => 'C'
12303 , p_gain_or_loss_flag => 'N'
12304 , p_gl_transfer_mode_code => 'S'
12305 , p_acct_entry_type_code => 'E'
12306 , p_switch_side_flag => 'N'
12307 , p_merge_duplicate_code => 'N'
12308 );
12309 --
12310 l_acc_rev_natural_side_code := 'D'; -- 4262811
12311 --
12312 --
12313 -- set accounting line type info
12314 --
12315 xla_ae_lines_pkg.SetAcctLineType
12316 (p_component_type => l_component_type
12317 ,p_event_type_code => l_event_type_code
12318 ,p_line_definition_owner_code => l_line_definition_owner_code
12319 ,p_line_definition_code => l_line_definition_code
12320 ,p_accounting_line_code => l_component_code
12321 ,p_accounting_line_type_code => l_component_type_code
12322 ,p_accounting_line_appl_id => l_component_appl_id
12323 ,p_amb_context_code => l_amb_context_code
12324 ,p_entity_code => l_entity_code
12325 ,p_event_class_code => l_event_class_code);
12326 --
12327 -- set accounting class
12328 --
12329 xla_ae_lines_pkg.SetAcctClass(
12330 p_accounting_class_code => 'REQUISITION'
12331 , p_ae_header_id => l_ae_header_id
12332 );
12333
12334 --
12335 -- set rounding class
12336 --
12337 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12338 'REQUISITION';
12339
12340 --
12341 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12342 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12343 --
12344 -- bulk performance
12345 --
12346 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12347
12348 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12349 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12350
12351 -- 4955764
12352 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12353 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12354
12355 -- 4458381 Public Sector Enh
12356
12357 --
12358 -- set accounting attributes for the line type
12359 --
12360 l_entered_amt_idx := 17;
12361 l_accted_amt_idx := 19;
12362 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12363 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
12364 l_rec_acct_attrs.array_num_value(1) := p_source_19;
12365 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12366 l_rec_acct_attrs.array_char_value(2) := p_source_35;
12367 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
12368 l_rec_acct_attrs.array_char_value(3) := p_source_36;
12369 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
12370 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_37);
12371 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12372 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_38);
12373 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
12374 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_8);
12375 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
12376 l_rec_acct_attrs.array_char_value(7) := p_source_9;
12377 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
12378 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_39);
12379 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
12380 l_rec_acct_attrs.array_num_value(9) := p_source_25;
12381 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
12382 l_rec_acct_attrs.array_char_value(10) := p_source_11;
12383 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
12384 l_rec_acct_attrs.array_num_value(11) := p_source_26;
12385 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
12386 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_39);
12387 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
12388 l_rec_acct_attrs.array_num_value(13) := p_source_25;
12389 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
12390 l_rec_acct_attrs.array_char_value(14) := p_source_11;
12391 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
12392 l_rec_acct_attrs.array_num_value(15) := p_source_26;
12393 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
12394 l_rec_acct_attrs.array_char_value(16) := p_source_27;
12395 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
12396 l_rec_acct_attrs.array_num_value(17) := p_source_25;
12397 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
12398 l_rec_acct_attrs.array_char_value(18) := p_source_11;
12399 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
12400 l_rec_acct_attrs.array_num_value(19) := p_source_26;
12401 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
12402 l_rec_acct_attrs.array_num_value(20) := p_source_40;
12403 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
12404 l_rec_acct_attrs.array_num_value(21) := p_source_40;
12405
12406 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12407 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12408
12409 ---------------------------------------------------------------------------------------------------------------
12410 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12411 ---------------------------------------------------------------------------------------------------------------
12412 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12413
12414 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12415 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12416
12417 IF xla_accounting_cache_pkg.GetValueChar
12418 (p_source_code => 'LEDGER_CATEGORY_CODE'
12419 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12420 AND l_bflow_method_code = 'PRIOR_ENTRY'
12421 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12422 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12423 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12424 )
12425 THEN
12426 xla_ae_lines_pkg.BflowUpgEntry
12427 (p_business_method_code => l_bflow_method_code
12428 ,p_business_class_code => l_bflow_class_code
12429 ,p_balance_type => l_balance_type_code);
12430 ELSE
12431 NULL;
12432 XLA_AE_LINES_PKG.business_flow_validation(
12433 p_business_method_code => l_bflow_method_code
12434 ,p_business_class_code => l_bflow_class_code
12435 ,p_inherit_description_flag => l_inherit_desc_flag);
12436 END IF;
12437
12438 --
12439 -- call analytical criteria
12440 --
12441 -- Inherited Analytical Criteria for business flow method of Prior Entry.
12442 --
12443 -- call description
12444 --
12445 -- No description or it is inherited.
12446 --
12447 -- call ADRs
12448 -- Bug 4922099
12449 --
12450 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12451 (NVL(l_actual_upg_option, 'N') = 'O') OR
12452 (NVL(l_enc_upg_option, 'N') = 'O')
12453 )
12454 THEN
12455 NULL;
12456 --
12457 --
12458
12459 --
12460 --
12461 END IF;
12462 --
12463 -- Bug 4922099
12464 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12465 (NVL(l_enc_upg_option, 'N') = 'O')
12466 ) AND
12467 (l_bflow_method_code = 'PRIOR_ENTRY')
12468 )
12469 THEN
12470 IF
12471 --
12472 1 = 1
12473 --
12474 THEN
12475 xla_accounting_err_pkg.build_message
12476 (p_appli_s_name => 'XLA'
12477 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12478 ,p_token_1 => 'LINE_NUMBER'
12479 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12480 ,p_token_2 => 'LINE_TYPE_NAME'
12481 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12482 l_component_type
12483 ,l_component_code
12484 ,l_component_type_code
12485 ,l_component_appl_id
12486 ,l_amb_context_code
12487 ,l_entity_code
12488 ,l_event_class_code
12489 )
12490 ,p_token_3 => 'OWNER'
12491 ,p_value_3 => xla_lookups_pkg.get_meaning(
12492 p_lookup_type => 'XLA_OWNER_TYPE'
12493 ,p_lookup_code => l_component_type_code
12494 )
12495 ,p_token_4 => 'PRODUCT_NAME'
12496 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12497 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12498 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12499 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12500 ,p_ae_header_id => NULL
12501 );
12502
12503 IF (C_LEVEL_ERROR>= g_log_level) THEN
12504 trace
12505 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12506 ,p_level => C_LEVEL_ERROR
12507 ,p_module => l_log_module);
12508 END IF;
12509 END IF;
12510 END IF;
12511 --
12512 --
12513 ------------------------------------------------------------------------------------------------
12514 -- 4219869 Business Flow
12515 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12516 -- Prior Entry. Currently, the following code is always generated.
12517 ------------------------------------------------------------------------------------------------
12518 -- No ValidateCurrentLine for business flow method of Prior Entry
12519
12520 ------------------------------------------------------------------------------------
12521 -- 4219869 Business Flow
12522 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12523 ------------------------------------------------------------------------------------
12524 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12525
12526 ----------------------------------------------------------------------------------
12527 -- 4219869 Business Flow
12528 -- Update journal entry status -- Need to generate this within IF <condition>
12529 ----------------------------------------------------------------------------------
12530 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12531 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12532 ,p_balance_type_code => l_balance_type_code
12533 );
12534
12535 -------------------------------------------------------------------------------------------
12536 -- 4262811 - Generate the Accrual Reversal lines
12537 -------------------------------------------------------------------------------------------
12538 BEGIN
12539 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12540 (g_array_event(p_event_id).array_value_num('header_index'));
12541 IF l_acc_rev_flag IS NULL THEN
12542 l_acc_rev_flag := 'N';
12543 END IF;
12544 EXCEPTION
12545 WHEN OTHERS THEN
12546 l_acc_rev_flag := 'N';
12547 END;
12548 --
12549 IF (l_acc_rev_flag = 'Y') THEN
12550
12551 -- 4645092 ------------------------------------------------------------------------------
12552 -- To allow MPA report to determine if it should generate report process
12553 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12554 ------------------------------------------------------------------------------------------
12555
12556 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12557 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12558 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
12559 -- call ADRs
12560 -- Bug 4922099
12561 --
12562 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12563 (NVL(l_actual_upg_option, 'N') = 'O') OR
12564 (NVL(l_enc_upg_option, 'N') = 'O')
12565 )
12566 THEN
12567 NULL;
12568 --
12569 --
12570
12571 --
12572 --
12573 END IF;
12574
12575 --
12576 -- Update the line information that should be overwritten
12577 --
12578 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12579 p_header_num => 1);
12580 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12581
12582 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12583
12584 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12585 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12586 END IF;
12587
12588 --
12589 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12590 --
12591 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12592 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12593 ELSE
12594 ---------------------------------------------------------------------------------------------------
12595 -- 4262811a Switch Sign
12596 ---------------------------------------------------------------------------------------------------
12597 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12598 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12599 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12600 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12601 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12602 -- 5132302
12603 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12604 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12605
12606 END IF;
12607
12608 -- 4955764
12609 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12610 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12611
12612
12613 XLA_AE_LINES_PKG.ValidateCurrentLine;
12614 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12615
12616 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12617 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12618 ,p_balance_type_code => l_balance_type_code);
12619
12620 END IF;
12621
12622 -----------------------------------------------------------------------------------------
12623 -- 4262811 Multiperiod Accounting
12624 -----------------------------------------------------------------------------------------
12625 -- No MPA option is assigned.
12626
12627
12628 END IF;
12629 END IF;
12630 --
12631
12632 --
12633 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12634 trace
12635 (p_msg => 'END of AcctLineType_24'
12636 ,p_level => C_LEVEL_PROCEDURE
12637 ,p_module => l_log_module);
12638 END IF;
12639 --
12640 EXCEPTION
12641 WHEN xla_exceptions_pkg.application_exception THEN
12642 RAISE;
12643 WHEN OTHERS THEN
12644 xla_exceptions_pkg.raise_message
12645 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_24');
12646 END AcctLineType_24;
12647 --
12648
12649 ---------------------------------------
12650 --
12651 -- PRIVATE FUNCTION
12652 -- AcctLineType_25
12653 --
12654 ---------------------------------------
12655 PROCEDURE AcctLineType_25 (
12656 p_application_id IN NUMBER
12657 ,p_event_id IN NUMBER
12658 ,p_calculate_acctd_flag IN VARCHAR2
12659 ,p_calculate_g_l_flag IN VARCHAR2
12660 ,p_actual_flag IN OUT VARCHAR2
12661 ,p_balance_type_code OUT VARCHAR2
12662 ,p_gain_or_loss_ref OUT VARCHAR2
12663
12664 --Cost Management Default Account
12665 , p_source_6 IN NUMBER
12666 --Accounting Line Type
12667 , p_source_7 IN NUMBER
12668 --DISTRIBUTION_IDENTIFIER
12669 , p_source_8 IN NUMBER
12670 --Distribution Type
12671 , p_source_9 IN VARCHAR2
12672 , p_source_9_meaning IN VARCHAR2
12673 --Entered Amount
12674 , p_source_10 IN NUMBER
12675 --Entered Currency Code
12676 , p_source_11 IN VARCHAR2
12677 --Currency Conversion Date
12678 , p_source_12 IN DATE
12679 --Currency Conversion Rate
12680 , p_source_13 IN NUMBER
12681 --Currency Conversion Type
12682 , p_source_14 IN VARCHAR2
12683 --Accounted Amount
12684 , p_source_15 IN NUMBER
12685 )
12686 IS
12687
12688 l_component_type VARCHAR2(80);
12689 l_component_code VARCHAR2(30);
12690 l_component_type_code VARCHAR2(1);
12691 l_component_appl_id INTEGER;
12692 l_amb_context_code VARCHAR2(30);
12693 l_entity_code VARCHAR2(30);
12694 l_event_class_code VARCHAR2(30);
12695 l_ae_header_id NUMBER;
12696 l_event_type_code VARCHAR2(30);
12697 l_line_definition_code VARCHAR2(30);
12698 l_line_definition_owner_code VARCHAR2(1);
12699 --
12700 -- adr variables
12701 l_segment VARCHAR2(30);
12702 l_ccid NUMBER;
12703 l_adr_transaction_coa_id NUMBER;
12704 l_adr_accounting_coa_id NUMBER;
12705 l_adr_flexfield_segment_code VARCHAR2(30);
12706 l_adr_flex_value_set_id NUMBER;
12707 l_adr_value_type_code VARCHAR2(30);
12708 l_adr_value_combination_id NUMBER;
12709 l_adr_value_segment_code VARCHAR2(30);
12710
12711 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12712 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12713 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12714 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12715
12716 -- 4262811 Variables ------------------------------------------------------------------------------------------
12717 l_entered_amt_idx NUMBER;
12718 l_accted_amt_idx NUMBER;
12719 l_acc_rev_flag VARCHAR2(1);
12720 l_accrual_line_num NUMBER;
12721 l_tmp_amt NUMBER;
12722 l_acc_rev_natural_side_code VARCHAR2(1);
12723
12724 l_num_entries NUMBER;
12725 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12726 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12727 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12728 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12729 l_recog_line_1 NUMBER;
12730 l_recog_line_2 NUMBER;
12731
12732 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12733 l_bflow_applied_to_amt NUMBER; -- 5132302
12734 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12735
12736 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12737
12738 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12739 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12740
12741 ---------------------------------------------------------------------------------------------------------------
12742
12743
12744 --
12745 -- bulk performance
12746 --
12747 l_balance_type_code VARCHAR2(1);
12748 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12749 l_log_module VARCHAR2(240);
12750
12751 --
12752 -- Upgrade strategy
12753 --
12754 l_actual_upg_option VARCHAR2(1);
12755 l_enc_upg_option VARCHAR2(1);
12756
12757 --
12758 BEGIN
12759 --
12760 IF g_log_enabled THEN
12761 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_25';
12762 END IF;
12763 --
12764 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12765
12766 trace
12767 (p_msg => 'BEGIN of AcctLineType_25'
12768 ,p_level => C_LEVEL_PROCEDURE
12769 ,p_module => l_log_module);
12770
12771 END IF;
12772 --
12773 l_component_type := 'AMB_JLT';
12774 l_component_code := 'RELIEVE_REQ_ENC_ON_REC_IIRFOBS';
12775 l_component_type_code := 'S';
12776 l_component_appl_id := 707;
12777 l_amb_context_code := 'DEFAULT';
12778 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
12779 l_event_class_code := 'FOB_SHIP_SENDER_SHIP';
12780 l_event_type_code := 'FOB_SHIP_SENDER_SHIP_TP';
12781 l_line_definition_owner_code := 'S';
12782 l_line_definition_code := 'REQ_ENC_ON_IIS_FOB_SHIP_TP';
12783 --
12784 l_balance_type_code := 'E';
12785 l_segment := NULL;
12786 l_ccid := NULL;
12787 l_adr_transaction_coa_id := NULL;
12788 l_adr_accounting_coa_id := NULL;
12789 l_adr_flexfield_segment_code := NULL;
12790 l_adr_flex_value_set_id := NULL;
12791 l_adr_value_type_code := NULL;
12792 l_adr_value_combination_id := NULL;
12793 l_adr_value_segment_code := NULL;
12794
12795 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
12796 l_bflow_class_code := ''; -- 4219869 Business Flow
12797 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
12798 l_budgetary_control_flag := 'Y';
12799
12800 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12801 l_bflow_applied_to_amt := NULL; -- 5132302
12802 l_entered_amt_idx := NULL; -- 4262811
12803 l_accted_amt_idx := NULL; -- 4262811
12804 l_acc_rev_flag := NULL; -- 4262811
12805 l_accrual_line_num := NULL; -- 4262811
12806 l_tmp_amt := NULL; -- 4262811
12807 --
12808
12809 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12810 l_balance_type_code <> 'B' THEN
12811 IF NVL(p_source_7,9E125) = 15
12812 THEN
12813
12814 --
12815 XLA_AE_LINES_PKG.SetNewLine;
12816
12817 p_balance_type_code := l_balance_type_code;
12818 -- set the flag so later we will know whether the gain loss line needs to be created
12819
12820 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
12821 p_actual_flag :='A';
12822 END IF;
12823
12824 --
12825 -- bulk performance
12826 --
12827 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12828 p_header_num => 0); -- 4262811
12829 --
12830 -- set accounting line options
12831 --
12832 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12833 p_natural_side_code => 'D'
12834 , p_gain_or_loss_flag => 'N'
12835 , p_gl_transfer_mode_code => 'S'
12836 , p_acct_entry_type_code => 'E'
12837 , p_switch_side_flag => 'Y'
12838 , p_merge_duplicate_code => 'N'
12839 );
12840 --
12841 l_acc_rev_natural_side_code := 'C'; -- 4262811
12842 --
12843 --
12844 -- set accounting line type info
12845 --
12846 xla_ae_lines_pkg.SetAcctLineType
12847 (p_component_type => l_component_type
12848 ,p_event_type_code => l_event_type_code
12849 ,p_line_definition_owner_code => l_line_definition_owner_code
12850 ,p_line_definition_code => l_line_definition_code
12851 ,p_accounting_line_code => l_component_code
12852 ,p_accounting_line_type_code => l_component_type_code
12853 ,p_accounting_line_appl_id => l_component_appl_id
12854 ,p_amb_context_code => l_amb_context_code
12855 ,p_entity_code => l_entity_code
12856 ,p_event_class_code => l_event_class_code);
12857 --
12858 -- set accounting class
12859 --
12860 xla_ae_lines_pkg.SetAcctClass(
12861 p_accounting_class_code => 'REQUISITION'
12862 , p_ae_header_id => l_ae_header_id
12863 );
12864
12865 --
12866 -- set rounding class
12867 --
12868 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12869 'REQUISITION';
12870
12871 --
12872 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12873 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12874 --
12875 -- bulk performance
12876 --
12877 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12878
12879 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12880 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12881
12882 -- 4955764
12883 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12884 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12885
12886 -- 4458381 Public Sector Enh
12887 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
12888 --
12889 -- set accounting attributes for the line type
12890 --
12891 l_entered_amt_idx := 3;
12892 l_accted_amt_idx := 8;
12893 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12894 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
12895 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_8);
12896 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
12897 l_rec_acct_attrs.array_char_value(2) := p_source_9;
12898 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
12899 l_rec_acct_attrs.array_num_value(3) := p_source_10;
12900 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
12901 l_rec_acct_attrs.array_char_value(4) := p_source_11;
12902 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
12903 l_rec_acct_attrs.array_date_value(5) := p_source_12;
12904 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
12905 l_rec_acct_attrs.array_num_value(6) := p_source_13;
12906 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
12907 l_rec_acct_attrs.array_char_value(7) := p_source_14;
12908 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
12909 l_rec_acct_attrs.array_num_value(8) := p_source_15;
12910
12911 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12912 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12913
12914 ---------------------------------------------------------------------------------------------------------------
12915 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12916 ---------------------------------------------------------------------------------------------------------------
12917 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12918
12919 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12920 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12921
12922 IF xla_accounting_cache_pkg.GetValueChar
12923 (p_source_code => 'LEDGER_CATEGORY_CODE'
12924 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12925 AND l_bflow_method_code = 'PRIOR_ENTRY'
12926 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12927 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12928 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12929 )
12930 THEN
12931 xla_ae_lines_pkg.BflowUpgEntry
12932 (p_business_method_code => l_bflow_method_code
12933 ,p_business_class_code => l_bflow_class_code
12934 ,p_balance_type => l_balance_type_code);
12935 ELSE
12936 NULL;
12937 -- No business flow processing for business flow method of NONE.
12938 END IF;
12939
12940 --
12941 -- call analytical criteria
12942 --
12943
12944 --
12945 -- call description
12946 --
12947 -- No description or it is inherited.
12948 --
12949 -- call ADRs
12950 -- Bug 4922099
12951 --
12952 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12953 (NVL(l_actual_upg_option, 'N') = 'O') OR
12954 (NVL(l_enc_upg_option, 'N') = 'O')
12955 )
12956 THEN
12957 NULL;
12958 --
12959 --
12960
12961 l_ccid := AcctDerRule_2(
12962 p_application_id => p_application_id
12963 , p_ae_header_id => l_ae_header_id
12964 , p_source_6 => p_source_6
12965 , x_transaction_coa_id => l_adr_transaction_coa_id
12966 , x_accounting_coa_id => l_adr_accounting_coa_id
12967 , x_value_type_code => l_adr_value_type_code
12968 , p_side => 'NA'
12969 );
12970
12971 xla_ae_lines_pkg.set_ccid(
12972 p_code_combination_id => l_ccid
12973 , p_value_type_code => l_adr_value_type_code
12974 , p_transaction_coa_id => l_adr_transaction_coa_id
12975 , p_accounting_coa_id => l_adr_accounting_coa_id
12976 , p_adr_code => 'CST_DEFAULT'
12977 , p_adr_type_code => 'S'
12978 , p_component_type => l_component_type
12979 , p_component_code => l_component_code
12980 , p_component_type_code => l_component_type_code
12981 , p_component_appl_id => l_component_appl_id
12982 , p_amb_context_code => l_amb_context_code
12983 , p_side => 'NA'
12984 );
12985
12986
12987 --
12988 --
12989 END IF;
12990 --
12991 -- Bug 4922099
12992 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12993 (NVL(l_enc_upg_option, 'N') = 'O')
12994 ) AND
12995 (l_bflow_method_code = 'PRIOR_ENTRY')
12996 )
12997 THEN
12998 IF
12999 --
13000 1 = 2
13001 --
13002 THEN
13003 xla_accounting_err_pkg.build_message
13004 (p_appli_s_name => 'XLA'
13005 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13006 ,p_token_1 => 'LINE_NUMBER'
13007 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13008 ,p_token_2 => 'LINE_TYPE_NAME'
13009 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13010 l_component_type
13011 ,l_component_code
13012 ,l_component_type_code
13013 ,l_component_appl_id
13014 ,l_amb_context_code
13015 ,l_entity_code
13016 ,l_event_class_code
13017 )
13018 ,p_token_3 => 'OWNER'
13019 ,p_value_3 => xla_lookups_pkg.get_meaning(
13020 p_lookup_type => 'XLA_OWNER_TYPE'
13021 ,p_lookup_code => l_component_type_code
13022 )
13023 ,p_token_4 => 'PRODUCT_NAME'
13024 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13025 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13026 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13027 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13028 ,p_ae_header_id => NULL
13029 );
13030
13031 IF (C_LEVEL_ERROR>= g_log_level) THEN
13032 trace
13033 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13034 ,p_level => C_LEVEL_ERROR
13035 ,p_module => l_log_module);
13036 END IF;
13037 END IF;
13038 END IF;
13039 --
13040 --
13041 ------------------------------------------------------------------------------------------------
13042 -- 4219869 Business Flow
13043 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13044 -- Prior Entry. Currently, the following code is always generated.
13045 ------------------------------------------------------------------------------------------------
13046 XLA_AE_LINES_PKG.ValidateCurrentLine;
13047
13048 ------------------------------------------------------------------------------------
13049 -- 4219869 Business Flow
13050 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13051 ------------------------------------------------------------------------------------
13052 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13053
13054 ----------------------------------------------------------------------------------
13055 -- 4219869 Business Flow
13056 -- Update journal entry status -- Need to generate this within IF <condition>
13057 ----------------------------------------------------------------------------------
13058 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13059 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13060 ,p_balance_type_code => l_balance_type_code
13061 );
13062
13063 -------------------------------------------------------------------------------------------
13064 -- 4262811 - Generate the Accrual Reversal lines
13065 -------------------------------------------------------------------------------------------
13066 BEGIN
13067 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13068 (g_array_event(p_event_id).array_value_num('header_index'));
13069 IF l_acc_rev_flag IS NULL THEN
13070 l_acc_rev_flag := 'N';
13071 END IF;
13072 EXCEPTION
13073 WHEN OTHERS THEN
13074 l_acc_rev_flag := 'N';
13075 END;
13076 --
13077 IF (l_acc_rev_flag = 'Y') THEN
13078
13079 -- 4645092 ------------------------------------------------------------------------------
13080 -- To allow MPA report to determine if it should generate report process
13081 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13082 ------------------------------------------------------------------------------------------
13083
13084 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13085 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13086 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
13087 -- call ADRs
13088 -- Bug 4922099
13089 --
13090 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13091 (NVL(l_actual_upg_option, 'N') = 'O') OR
13092 (NVL(l_enc_upg_option, 'N') = 'O')
13093 )
13094 THEN
13095 NULL;
13096 --
13097 --
13098
13099 l_ccid := AcctDerRule_2(
13100 p_application_id => p_application_id
13101 , p_ae_header_id => l_ae_header_id
13102 , p_source_6 => p_source_6
13103 , x_transaction_coa_id => l_adr_transaction_coa_id
13104 , x_accounting_coa_id => l_adr_accounting_coa_id
13105 , x_value_type_code => l_adr_value_type_code
13106 , p_side => 'NA'
13107 );
13108
13109 xla_ae_lines_pkg.set_ccid(
13110 p_code_combination_id => l_ccid
13111 , p_value_type_code => l_adr_value_type_code
13112 , p_transaction_coa_id => l_adr_transaction_coa_id
13113 , p_accounting_coa_id => l_adr_accounting_coa_id
13114 , p_adr_code => 'CST_DEFAULT'
13115 , p_adr_type_code => 'S'
13116 , p_component_type => l_component_type
13117 , p_component_code => l_component_code
13118 , p_component_type_code => l_component_type_code
13119 , p_component_appl_id => l_component_appl_id
13120 , p_amb_context_code => l_amb_context_code
13121 , p_side => 'NA'
13122 );
13123
13124
13125 --
13126 --
13127 END IF;
13128
13129 --
13130 -- Update the line information that should be overwritten
13131 --
13132 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13133 p_header_num => 1);
13134 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
13135
13136 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13137
13138 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
13139 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13140 END IF;
13141
13142 --
13143 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13144 --
13145 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13146 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
13147 ELSE
13148 ---------------------------------------------------------------------------------------------------
13149 -- 4262811a Switch Sign
13150 ---------------------------------------------------------------------------------------------------
13151 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
13152 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13153 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13154 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13155 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13156 -- 5132302
13157 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13158 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13159
13160 END IF;
13161
13162 -- 4955764
13163 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13164 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13165
13166
13167 XLA_AE_LINES_PKG.ValidateCurrentLine;
13168 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13169
13170 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13171 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13172 ,p_balance_type_code => l_balance_type_code);
13173
13174 END IF;
13175
13176 -----------------------------------------------------------------------------------------
13177 -- 4262811 Multiperiod Accounting
13178 -----------------------------------------------------------------------------------------
13179 -- No MPA option is assigned.
13180
13181
13182 END IF;
13183 END IF;
13184 --
13185
13186 --
13187 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13188 trace
13189 (p_msg => 'END of AcctLineType_25'
13190 ,p_level => C_LEVEL_PROCEDURE
13191 ,p_module => l_log_module);
13192 END IF;
13193 --
13194 EXCEPTION
13195 WHEN xla_exceptions_pkg.application_exception THEN
13196 RAISE;
13197 WHEN OTHERS THEN
13198 xla_exceptions_pkg.raise_message
13199 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_25');
13200 END AcctLineType_25;
13201 --
13202
13203 ---------------------------------------
13204 --
13205 -- PRIVATE FUNCTION
13206 -- AcctLineType_26
13207 --
13208 ---------------------------------------
13209 PROCEDURE AcctLineType_26 (
13210 p_application_id IN NUMBER
13211 ,p_event_id IN NUMBER
13212 ,p_calculate_acctd_flag IN VARCHAR2
13213 ,p_calculate_g_l_flag IN VARCHAR2
13214 ,p_actual_flag IN OUT VARCHAR2
13215 ,p_balance_type_code OUT VARCHAR2
13216 ,p_gain_or_loss_ref OUT VARCHAR2
13217
13218 --Cost Management Default Account
13219 , p_source_6 IN NUMBER
13220 --Accounting Line Type
13221 , p_source_7 IN NUMBER
13222 --DISTRIBUTION_IDENTIFIER
13223 , p_source_8 IN NUMBER
13224 --Distribution Type
13225 , p_source_9 IN VARCHAR2
13226 , p_source_9_meaning IN VARCHAR2
13227 --Entered Amount
13228 , p_source_10 IN NUMBER
13229 --Entered Currency Code
13230 , p_source_11 IN VARCHAR2
13231 --Currency Conversion Date
13232 , p_source_12 IN DATE
13233 --Currency Conversion Rate
13234 , p_source_13 IN NUMBER
13235 --Currency Conversion Type
13236 , p_source_14 IN VARCHAR2
13237 --Accounted Amount
13238 , p_source_15 IN NUMBER
13239 )
13240 IS
13241
13242 l_component_type VARCHAR2(80);
13243 l_component_code VARCHAR2(30);
13244 l_component_type_code VARCHAR2(1);
13245 l_component_appl_id INTEGER;
13246 l_amb_context_code VARCHAR2(30);
13247 l_entity_code VARCHAR2(30);
13248 l_event_class_code VARCHAR2(30);
13249 l_ae_header_id NUMBER;
13250 l_event_type_code VARCHAR2(30);
13251 l_line_definition_code VARCHAR2(30);
13252 l_line_definition_owner_code VARCHAR2(1);
13253 --
13254 -- adr variables
13255 l_segment VARCHAR2(30);
13256 l_ccid NUMBER;
13257 l_adr_transaction_coa_id NUMBER;
13258 l_adr_accounting_coa_id NUMBER;
13259 l_adr_flexfield_segment_code VARCHAR2(30);
13260 l_adr_flex_value_set_id NUMBER;
13261 l_adr_value_type_code VARCHAR2(30);
13262 l_adr_value_combination_id NUMBER;
13263 l_adr_value_segment_code VARCHAR2(30);
13264
13265 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
13266 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
13267 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
13268 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
13269
13270 -- 4262811 Variables ------------------------------------------------------------------------------------------
13271 l_entered_amt_idx NUMBER;
13272 l_accted_amt_idx NUMBER;
13273 l_acc_rev_flag VARCHAR2(1);
13274 l_accrual_line_num NUMBER;
13275 l_tmp_amt NUMBER;
13276 l_acc_rev_natural_side_code VARCHAR2(1);
13277
13278 l_num_entries NUMBER;
13279 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
13280 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
13281 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
13282 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
13283 l_recog_line_1 NUMBER;
13284 l_recog_line_2 NUMBER;
13285
13286 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
13287 l_bflow_applied_to_amt NUMBER; -- 5132302
13288 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
13289
13290 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13291
13292 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
13293 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
13294
13295 ---------------------------------------------------------------------------------------------------------------
13296
13297
13298 --
13299 -- bulk performance
13300 --
13301 l_balance_type_code VARCHAR2(1);
13302 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13303 l_log_module VARCHAR2(240);
13304
13305 --
13306 -- Upgrade strategy
13307 --
13308 l_actual_upg_option VARCHAR2(1);
13309 l_enc_upg_option VARCHAR2(1);
13310
13311 --
13312 BEGIN
13313 --
13314 IF g_log_enabled THEN
13315 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_26';
13316 END IF;
13317 --
13318 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13319
13320 trace
13321 (p_msg => 'BEGIN of AcctLineType_26'
13322 ,p_level => C_LEVEL_PROCEDURE
13323 ,p_module => l_log_module);
13324
13325 END IF;
13326 --
13327 l_component_type := 'AMB_JLT';
13328 l_component_code := 'RELIEVE_REQ_ENC_ON_REC_IIRFOBS';
13329 l_component_type_code := 'S';
13330 l_component_appl_id := 707;
13331 l_amb_context_code := 'DEFAULT';
13332 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
13333 l_event_class_code := 'FOB_SHIP_SENDER_SHIP';
13334 l_event_type_code := 'FOB_SHIP_SENDER_SHIP_NO_TP';
13335 l_line_definition_owner_code := 'S';
13336 l_line_definition_code := 'REQ_ENC_ON_IIS_FOB_SHIP_NTP';
13337 --
13338 l_balance_type_code := 'E';
13339 l_segment := NULL;
13340 l_ccid := NULL;
13341 l_adr_transaction_coa_id := NULL;
13342 l_adr_accounting_coa_id := NULL;
13343 l_adr_flexfield_segment_code := NULL;
13344 l_adr_flex_value_set_id := NULL;
13345 l_adr_value_type_code := NULL;
13346 l_adr_value_combination_id := NULL;
13347 l_adr_value_segment_code := NULL;
13348
13349 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
13350 l_bflow_class_code := ''; -- 4219869 Business Flow
13351 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13352 l_budgetary_control_flag := 'Y';
13353
13354 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13355 l_bflow_applied_to_amt := NULL; -- 5132302
13356 l_entered_amt_idx := NULL; -- 4262811
13357 l_accted_amt_idx := NULL; -- 4262811
13358 l_acc_rev_flag := NULL; -- 4262811
13359 l_accrual_line_num := NULL; -- 4262811
13360 l_tmp_amt := NULL; -- 4262811
13361 --
13362
13363 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13364 l_balance_type_code <> 'B' THEN
13365 IF NVL(p_source_7,9E125) = 15
13366 THEN
13367
13368 --
13369 XLA_AE_LINES_PKG.SetNewLine;
13370
13371 p_balance_type_code := l_balance_type_code;
13372 -- set the flag so later we will know whether the gain loss line needs to be created
13373
13374 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
13375 p_actual_flag :='A';
13376 END IF;
13377
13378 --
13379 -- bulk performance
13380 --
13381 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13382 p_header_num => 0); -- 4262811
13383 --
13384 -- set accounting line options
13385 --
13386 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13387 p_natural_side_code => 'D'
13388 , p_gain_or_loss_flag => 'N'
13389 , p_gl_transfer_mode_code => 'S'
13390 , p_acct_entry_type_code => 'E'
13391 , p_switch_side_flag => 'Y'
13392 , p_merge_duplicate_code => 'N'
13393 );
13394 --
13395 l_acc_rev_natural_side_code := 'C'; -- 4262811
13396 --
13397 --
13398 -- set accounting line type info
13399 --
13400 xla_ae_lines_pkg.SetAcctLineType
13401 (p_component_type => l_component_type
13402 ,p_event_type_code => l_event_type_code
13403 ,p_line_definition_owner_code => l_line_definition_owner_code
13404 ,p_line_definition_code => l_line_definition_code
13405 ,p_accounting_line_code => l_component_code
13406 ,p_accounting_line_type_code => l_component_type_code
13407 ,p_accounting_line_appl_id => l_component_appl_id
13408 ,p_amb_context_code => l_amb_context_code
13409 ,p_entity_code => l_entity_code
13410 ,p_event_class_code => l_event_class_code);
13411 --
13412 -- set accounting class
13413 --
13414 xla_ae_lines_pkg.SetAcctClass(
13415 p_accounting_class_code => 'REQUISITION'
13416 , p_ae_header_id => l_ae_header_id
13417 );
13418
13419 --
13420 -- set rounding class
13421 --
13422 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13423 'REQUISITION';
13424
13425 --
13426 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13427 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13428 --
13429 -- bulk performance
13430 --
13431 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13432
13433 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13434 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13435
13436 -- 4955764
13437 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13438 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13439
13440 -- 4458381 Public Sector Enh
13441 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
13442 --
13443 -- set accounting attributes for the line type
13444 --
13445 l_entered_amt_idx := 3;
13446 l_accted_amt_idx := 8;
13447 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13448 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
13449 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_8);
13450 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
13451 l_rec_acct_attrs.array_char_value(2) := p_source_9;
13452 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
13453 l_rec_acct_attrs.array_num_value(3) := p_source_10;
13454 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
13455 l_rec_acct_attrs.array_char_value(4) := p_source_11;
13456 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
13457 l_rec_acct_attrs.array_date_value(5) := p_source_12;
13458 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
13459 l_rec_acct_attrs.array_num_value(6) := p_source_13;
13460 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
13461 l_rec_acct_attrs.array_char_value(7) := p_source_14;
13462 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
13463 l_rec_acct_attrs.array_num_value(8) := p_source_15;
13464
13465 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13466 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13467
13468 ---------------------------------------------------------------------------------------------------------------
13469 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13470 ---------------------------------------------------------------------------------------------------------------
13471 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13472
13473 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13474 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13475
13476 IF xla_accounting_cache_pkg.GetValueChar
13477 (p_source_code => 'LEDGER_CATEGORY_CODE'
13478 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13479 AND l_bflow_method_code = 'PRIOR_ENTRY'
13480 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13481 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13482 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13483 )
13484 THEN
13485 xla_ae_lines_pkg.BflowUpgEntry
13486 (p_business_method_code => l_bflow_method_code
13487 ,p_business_class_code => l_bflow_class_code
13488 ,p_balance_type => l_balance_type_code);
13489 ELSE
13490 NULL;
13491 -- No business flow processing for business flow method of NONE.
13492 END IF;
13493
13494 --
13495 -- call analytical criteria
13496 --
13497
13498 --
13499 -- call description
13500 --
13501 -- No description or it is inherited.
13502 --
13503 -- call ADRs
13504 -- Bug 4922099
13505 --
13506 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13507 (NVL(l_actual_upg_option, 'N') = 'O') OR
13508 (NVL(l_enc_upg_option, 'N') = 'O')
13509 )
13510 THEN
13511 NULL;
13512 --
13513 --
13514
13515 l_ccid := AcctDerRule_2(
13516 p_application_id => p_application_id
13517 , p_ae_header_id => l_ae_header_id
13518 , p_source_6 => p_source_6
13519 , x_transaction_coa_id => l_adr_transaction_coa_id
13520 , x_accounting_coa_id => l_adr_accounting_coa_id
13521 , x_value_type_code => l_adr_value_type_code
13522 , p_side => 'NA'
13523 );
13524
13525 xla_ae_lines_pkg.set_ccid(
13526 p_code_combination_id => l_ccid
13527 , p_value_type_code => l_adr_value_type_code
13528 , p_transaction_coa_id => l_adr_transaction_coa_id
13529 , p_accounting_coa_id => l_adr_accounting_coa_id
13530 , p_adr_code => 'CST_DEFAULT'
13531 , p_adr_type_code => 'S'
13532 , p_component_type => l_component_type
13533 , p_component_code => l_component_code
13534 , p_component_type_code => l_component_type_code
13535 , p_component_appl_id => l_component_appl_id
13536 , p_amb_context_code => l_amb_context_code
13537 , p_side => 'NA'
13538 );
13539
13540
13541 --
13542 --
13543 END IF;
13544 --
13545 -- Bug 4922099
13546 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13547 (NVL(l_enc_upg_option, 'N') = 'O')
13548 ) AND
13549 (l_bflow_method_code = 'PRIOR_ENTRY')
13550 )
13551 THEN
13552 IF
13553 --
13554 1 = 2
13555 --
13556 THEN
13557 xla_accounting_err_pkg.build_message
13558 (p_appli_s_name => 'XLA'
13559 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13560 ,p_token_1 => 'LINE_NUMBER'
13561 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13562 ,p_token_2 => 'LINE_TYPE_NAME'
13563 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13564 l_component_type
13565 ,l_component_code
13566 ,l_component_type_code
13567 ,l_component_appl_id
13568 ,l_amb_context_code
13569 ,l_entity_code
13570 ,l_event_class_code
13571 )
13572 ,p_token_3 => 'OWNER'
13573 ,p_value_3 => xla_lookups_pkg.get_meaning(
13574 p_lookup_type => 'XLA_OWNER_TYPE'
13575 ,p_lookup_code => l_component_type_code
13576 )
13577 ,p_token_4 => 'PRODUCT_NAME'
13578 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13579 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13580 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13581 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13582 ,p_ae_header_id => NULL
13583 );
13584
13585 IF (C_LEVEL_ERROR>= g_log_level) THEN
13586 trace
13587 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13588 ,p_level => C_LEVEL_ERROR
13589 ,p_module => l_log_module);
13590 END IF;
13591 END IF;
13592 END IF;
13593 --
13594 --
13595 ------------------------------------------------------------------------------------------------
13596 -- 4219869 Business Flow
13597 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13598 -- Prior Entry. Currently, the following code is always generated.
13599 ------------------------------------------------------------------------------------------------
13600 XLA_AE_LINES_PKG.ValidateCurrentLine;
13601
13602 ------------------------------------------------------------------------------------
13603 -- 4219869 Business Flow
13604 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13605 ------------------------------------------------------------------------------------
13606 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13607
13608 ----------------------------------------------------------------------------------
13609 -- 4219869 Business Flow
13610 -- Update journal entry status -- Need to generate this within IF <condition>
13611 ----------------------------------------------------------------------------------
13612 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13613 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13614 ,p_balance_type_code => l_balance_type_code
13615 );
13616
13617 -------------------------------------------------------------------------------------------
13618 -- 4262811 - Generate the Accrual Reversal lines
13619 -------------------------------------------------------------------------------------------
13620 BEGIN
13621 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13622 (g_array_event(p_event_id).array_value_num('header_index'));
13623 IF l_acc_rev_flag IS NULL THEN
13624 l_acc_rev_flag := 'N';
13625 END IF;
13626 EXCEPTION
13627 WHEN OTHERS THEN
13628 l_acc_rev_flag := 'N';
13629 END;
13630 --
13631 IF (l_acc_rev_flag = 'Y') THEN
13632
13633 -- 4645092 ------------------------------------------------------------------------------
13634 -- To allow MPA report to determine if it should generate report process
13635 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13636 ------------------------------------------------------------------------------------------
13637
13638 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13639 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13640 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
13641 -- call ADRs
13642 -- Bug 4922099
13643 --
13644 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13645 (NVL(l_actual_upg_option, 'N') = 'O') OR
13646 (NVL(l_enc_upg_option, 'N') = 'O')
13647 )
13648 THEN
13649 NULL;
13650 --
13651 --
13652
13653 l_ccid := AcctDerRule_2(
13654 p_application_id => p_application_id
13655 , p_ae_header_id => l_ae_header_id
13656 , p_source_6 => p_source_6
13657 , x_transaction_coa_id => l_adr_transaction_coa_id
13658 , x_accounting_coa_id => l_adr_accounting_coa_id
13659 , x_value_type_code => l_adr_value_type_code
13660 , p_side => 'NA'
13661 );
13662
13663 xla_ae_lines_pkg.set_ccid(
13664 p_code_combination_id => l_ccid
13665 , p_value_type_code => l_adr_value_type_code
13666 , p_transaction_coa_id => l_adr_transaction_coa_id
13667 , p_accounting_coa_id => l_adr_accounting_coa_id
13668 , p_adr_code => 'CST_DEFAULT'
13669 , p_adr_type_code => 'S'
13670 , p_component_type => l_component_type
13671 , p_component_code => l_component_code
13672 , p_component_type_code => l_component_type_code
13673 , p_component_appl_id => l_component_appl_id
13674 , p_amb_context_code => l_amb_context_code
13675 , p_side => 'NA'
13676 );
13677
13678
13679 --
13680 --
13681 END IF;
13682
13683 --
13684 -- Update the line information that should be overwritten
13685 --
13686 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13687 p_header_num => 1);
13688 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
13689
13690 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13691
13692 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
13693 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13694 END IF;
13695
13696 --
13697 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13698 --
13699 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13700 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
13701 ELSE
13702 ---------------------------------------------------------------------------------------------------
13703 -- 4262811a Switch Sign
13704 ---------------------------------------------------------------------------------------------------
13705 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
13706 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13707 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13708 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13709 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13710 -- 5132302
13711 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13712 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13713
13714 END IF;
13715
13716 -- 4955764
13717 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13718 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13719
13720
13721 XLA_AE_LINES_PKG.ValidateCurrentLine;
13722 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13723
13724 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13725 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13726 ,p_balance_type_code => l_balance_type_code);
13727
13728 END IF;
13729
13730 -----------------------------------------------------------------------------------------
13731 -- 4262811 Multiperiod Accounting
13732 -----------------------------------------------------------------------------------------
13733 -- No MPA option is assigned.
13734
13735
13736 END IF;
13737 END IF;
13738 --
13739
13740 --
13741 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13742 trace
13743 (p_msg => 'END of AcctLineType_26'
13744 ,p_level => C_LEVEL_PROCEDURE
13745 ,p_module => l_log_module);
13746 END IF;
13747 --
13748 EXCEPTION
13749 WHEN xla_exceptions_pkg.application_exception THEN
13750 RAISE;
13751 WHEN OTHERS THEN
13752 xla_exceptions_pkg.raise_message
13753 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.AcctLineType_26');
13754 END AcctLineType_26;
13755 --
13756
13757 ---------------------------------------
13758 --
13759 -- PRIVATE PROCEDURE
13760 -- insert_sources_27
13761 --
13762 ----------------------------------------
13763 --
13764 PROCEDURE insert_sources_27(
13765 p_target_ledger_id IN NUMBER
13766 , p_language IN VARCHAR2
13767 , p_sla_ledger_id IN NUMBER
13768 , p_pad_start_date IN DATE
13769 , p_pad_end_date IN DATE
13770 )
13771 IS
13772
13773 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DELIVER_EXPENSE_ALL';
13774 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DELIVER_EXPENSE';
13775 p_apps_owner VARCHAR2(30);
13776 l_log_module VARCHAR2(240);
13777 BEGIN
13778 IF g_log_enabled THEN
13779 l_log_module := C_DEFAULT_MODULE||'.insert_sources_27';
13780 END IF;
13781 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13782
13783 trace
13784 (p_msg => 'BEGIN of insert_sources_27'
13785 ,p_level => C_LEVEL_PROCEDURE
13786 ,p_module => l_log_module);
13787
13788 END IF;
13789
13790 -- select APPS owner
13791 SELECT oracle_username
13792 INTO p_apps_owner
13793 FROM fnd_oracle_userid
13794 WHERE read_only_flag = 'U'
13795 ;
13796
13797 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13798 trace
13799 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
13800 ' - p_language = '||p_language||
13801 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
13802 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
13803 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
13804 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
13805 ,p_level => C_LEVEL_STATEMENT
13806 ,p_module => l_log_module);
13807 END IF;
13808
13809
13810 --
13811 INSERT INTO xla_diag_sources --hdr2
13812 (
13813 event_id
13814 , ledger_id
13815 , sla_ledger_id
13816 , description_language
13817 , object_name
13818 , object_type_code
13819 , line_number
13820 , source_application_id
13821 , source_type_code
13822 , source_code
13823 , source_value
13824 , source_meaning
13825 , created_by
13826 , creation_date
13827 , last_update_date
13828 , last_updated_by
13829 , last_update_login
13830 , program_update_date
13831 , program_application_id
13832 , program_id
13833 , request_id
13834 )
13835 SELECT
13836 event_id
13837 , p_target_ledger_id
13838 , p_sla_ledger_id
13839 , p_language
13840 , object_name
13841 , object_type_code
13842 , line_number
13843 , source_application_id
13844 , source_type_code
13845 , source_code
13846 , SUBSTR(source_value ,1,1996)
13847 , SUBSTR(source_meaning ,1,200)
13848 , xla_environment_pkg.g_Usr_Id
13849 , TRUNC(SYSDATE)
13850 , TRUNC(SYSDATE)
13851 , xla_environment_pkg.g_Usr_Id
13852 , xla_environment_pkg.g_Login_Id
13853 , TRUNC(SYSDATE)
13854 , xla_environment_pkg.g_Prog_Appl_Id
13855 , xla_environment_pkg.g_Prog_Id
13856 , xla_environment_pkg.g_Req_Id
13857 FROM (
13858 SELECT xet.event_id event_id
13859 , 0 line_number
13860 , CASE r
13861 WHEN 1 THEN 'CST_XLA_RCV_HEADERS_V'
13862 WHEN 2 THEN 'CST_XLA_RCV_HEADERS_V'
13863 WHEN 3 THEN 'PO_HEADERS_REF_V'
13864 WHEN 4 THEN 'CST_XLA_RCV_REF_V'
13865 WHEN 5 THEN 'CST_XLA_RCV_REF_V'
13866 WHEN 6 THEN 'CST_XLA_RCV_REF_V'
13867 WHEN 7 THEN 'CST_XLA_RCV_REF_V'
13868 WHEN 8 THEN 'PO_DISTS_REF_V'
13869 WHEN 9 THEN 'CST_XLA_RCV_REF_V'
13870 WHEN 10 THEN 'CST_XLA_RCV_REF_V'
13871 WHEN 11 THEN 'PSA_CST_XLA_UPG_V'
13872 WHEN 12 THEN 'PO_HEADERS_REF_V'
13873 WHEN 13 THEN 'CST_XLA_RCV_REF_V'
13874 WHEN 14 THEN 'PO_DISTS_REF_V'
13875 WHEN 15 THEN 'CST_XLA_RCV_HEADERS_V'
13876
13877 ELSE null
13878 END object_name
13879 , CASE r
13880 WHEN 1 THEN 'HEADER'
13881 WHEN 2 THEN 'HEADER'
13882 WHEN 3 THEN 'HEADER'
13883 WHEN 4 THEN 'HEADER'
13884 WHEN 5 THEN 'HEADER'
13885 WHEN 6 THEN 'HEADER'
13886 WHEN 7 THEN 'HEADER'
13887 WHEN 8 THEN 'HEADER'
13888 WHEN 9 THEN 'HEADER'
13889 WHEN 10 THEN 'HEADER'
13890 WHEN 11 THEN 'HEADER'
13891 WHEN 12 THEN 'HEADER'
13892 WHEN 13 THEN 'HEADER'
13893 WHEN 14 THEN 'HEADER'
13894 WHEN 15 THEN 'HEADER'
13895
13896 ELSE null
13897 END object_type_code
13898 , CASE r
13899 WHEN 1 THEN '707'
13900 WHEN 2 THEN '707'
13901 WHEN 3 THEN '201'
13902 WHEN 4 THEN '707'
13903 WHEN 5 THEN '707'
13904 WHEN 6 THEN '707'
13905 WHEN 7 THEN '707'
13906 WHEN 8 THEN '201'
13907 WHEN 9 THEN '707'
13908 WHEN 10 THEN '707'
13909 WHEN 11 THEN '707'
13910 WHEN 12 THEN '201'
13911 WHEN 13 THEN '707'
13912 WHEN 14 THEN '201'
13913 WHEN 15 THEN '707'
13914
13915 ELSE null
13916 END source_application_id
13917 , 'S' source_type_code
13918 , CASE r
13919 WHEN 1 THEN 'DISTRIBUTION_TYPE'
13920 WHEN 2 THEN 'CURRENCY_CODE'
13921 WHEN 3 THEN 'PURCH_ENCUMBRANCE_FLAG'
13922 WHEN 4 THEN 'APPLIED_TO_APPL_ID'
13923 WHEN 5 THEN 'APPLIED_TO_DIST_LINK_TYPE'
13924 WHEN 6 THEN 'APPLIED_TO_ENTITY_CODE'
13925 WHEN 7 THEN 'APPLIED_TO_PO_DOC_ID'
13926 WHEN 8 THEN 'PO_BUDGET_ACCOUNT'
13927 WHEN 9 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
13928 WHEN 10 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
13929 WHEN 11 THEN 'CST_ENCUM_UPG_OPTION'
13930 WHEN 12 THEN 'PURCH_ENCUMBRANCE_TYPE_ID'
13931 WHEN 13 THEN 'PO_DISTRIBUTION_ID'
13932 WHEN 14 THEN 'RESERVED_FLAG'
13933 WHEN 15 THEN 'TRANSFER_TO_GL_INDICATOR'
13934
13935 ELSE null
13936 END source_code
13937 , CASE r
13938 WHEN 1 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
13939 WHEN 2 THEN TO_CHAR(h1.CURRENCY_CODE)
13940 WHEN 3 THEN TO_CHAR(h5.PURCH_ENCUMBRANCE_FLAG)
13941 WHEN 4 THEN TO_CHAR(h3.APPLIED_TO_APPL_ID)
13942 WHEN 5 THEN TO_CHAR(h3.APPLIED_TO_DIST_LINK_TYPE)
13943 WHEN 6 THEN TO_CHAR(h3.APPLIED_TO_ENTITY_CODE)
13944 WHEN 7 THEN TO_CHAR(h3.APPLIED_TO_PO_DOC_ID)
13945 WHEN 8 THEN TO_CHAR(h4.PO_BUDGET_ACCOUNT)
13946 WHEN 9 THEN TO_CHAR(h3.ENCUM_REVERSAL_AMOUNT_ENTERED)
13947 WHEN 10 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_AMOUNT)
13948 WHEN 11 THEN TO_CHAR(h6.CST_ENCUM_UPG_OPTION)
13949 WHEN 12 THEN TO_CHAR(h5.PURCH_ENCUMBRANCE_TYPE_ID)
13950 WHEN 13 THEN TO_CHAR(h3.PO_DISTRIBUTION_ID)
13951 WHEN 14 THEN TO_CHAR(h4.RESERVED_FLAG)
13952 WHEN 15 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
13953
13954 ELSE null
13955 END source_value
13956 , CASE r
13957 WHEN 1 THEN fvl9.meaning
13958 WHEN 15 THEN fvl42.meaning
13959
13960 ELSE null
13961 END source_meaning
13962 FROM xla_events_gt xet
13963 , CST_XLA_RCV_HEADERS_V h1
13964 , CST_XLA_RCV_REF_V h3
13965 , PO_DISTS_REF_V h4
13966 , PO_HEADERS_REF_V h5
13967 , PSA_CST_XLA_UPG_V h6
13968 , fnd_lookup_values fvl9
13969 , fnd_lookup_values fvl42
13970 ,(select rownum r from all_objects where rownum <= 15 and owner = p_apps_owner)
13971 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
13972 AND xet.event_class_code = C_EVENT_CLASS_CODE
13973 AND h1.event_id = xet.event_id
13974 AND h3.ref_rcv_accounting_event_id = h1.rcv_accounting_event_id AND h3.po_header_id = h4.po_header_id (+) and h3.po_distribution_id = h4.po_distribution_id (+) AND h3.po_header_id = h5.po_header_id (+) AND h3.rcv_transaction_id = h6.transaction_id (+) AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
13975 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
13976 AND fvl9.view_application_id(+) = 700
13977 AND fvl9.language(+) = USERENV('LANG')
13978 AND fvl42.lookup_type(+) = 'YES_NO'
13979 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
13980 AND fvl42.view_application_id(+) = 0
13981 AND fvl42.language(+) = USERENV('LANG')
13982
13983 )
13984 ;
13985 --
13986 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13987
13988 trace
13989 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
13990 ,p_level => C_LEVEL_STATEMENT
13991 ,p_module => l_log_module);
13992
13993 END IF;
13994 --
13995
13996
13997
13998 --
13999 INSERT INTO xla_diag_sources --line2
14000 (
14001 event_id
14002 , ledger_id
14003 , sla_ledger_id
14004 , description_language
14005 , object_name
14006 , object_type_code
14007 , line_number
14008 , source_application_id
14009 , source_type_code
14010 , source_code
14011 , source_value
14012 , source_meaning
14013 , created_by
14014 , creation_date
14015 , last_update_date
14016 , last_updated_by
14017 , last_update_login
14018 , program_update_date
14019 , program_application_id
14020 , program_id
14021 , request_id
14022 )
14023 SELECT event_id
14024 , p_target_ledger_id
14025 , p_sla_ledger_id
14026 , p_language
14027 , object_name
14028 , object_type_code
14029 , line_number
14030 , source_application_id
14031 , source_type_code
14032 , source_code
14033 , SUBSTR(source_value,1,1996)
14034 , SUBSTR(source_meaning ,1,200)
14035 , xla_environment_pkg.g_Usr_Id
14036 , TRUNC(SYSDATE)
14037 , TRUNC(SYSDATE)
14038 , xla_environment_pkg.g_Usr_Id
14039 , xla_environment_pkg.g_Login_Id
14040 , TRUNC(SYSDATE)
14041 , xla_environment_pkg.g_Prog_Appl_Id
14042 , xla_environment_pkg.g_Prog_Id
14043 , xla_environment_pkg.g_Req_Id
14044 FROM (
14045 SELECT xet.event_id event_id
14046 , l2.line_number line_number
14047 , CASE r
14048 WHEN 1 THEN 'CST_XLA_RCV_LINES_V'
14049 WHEN 2 THEN 'CST_XLA_RCV_LINES_V'
14050
14051 ELSE null
14052 END object_name
14053 , CASE r
14054 WHEN 1 THEN 'LINE'
14055 WHEN 2 THEN 'LINE'
14056
14057 ELSE null
14058 END object_type_code
14059 , CASE r
14060 WHEN 1 THEN '707'
14061 WHEN 2 THEN '707'
14062
14063 ELSE null
14064 END source_application_id
14065 , 'S' source_type_code
14066 , CASE r
14067 WHEN 1 THEN 'DISTRIBUTION_IDENTIFIER'
14068 WHEN 2 THEN 'RCV_ACCOUNTING_LINE_TYPE'
14069
14070 ELSE null
14071 END source_code
14072 , CASE r
14073 WHEN 1 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
14074 WHEN 2 THEN TO_CHAR(l2.RCV_ACCOUNTING_LINE_TYPE)
14075
14076 ELSE null
14077 END source_value
14078 , null source_meaning
14079 FROM xla_events_gt xet
14080 , CST_XLA_RCV_LINES_V l2
14081 , (select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
14082 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
14083 AND xet.event_class_code = C_EVENT_CLASS_CODE
14084 AND l2.event_id = xet.event_id
14085
14086 )
14087 ;
14088 --
14089 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14090
14091 trace
14092 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
14093 ,p_level => C_LEVEL_STATEMENT
14094 ,p_module => l_log_module);
14095
14096 END IF;
14097
14098
14099 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14100 trace
14101 (p_msg => 'END of insert_sources_27'
14102 ,p_level => C_LEVEL_PROCEDURE
14103 ,p_module => l_log_module);
14104 END IF;
14105 EXCEPTION
14106 WHEN xla_exceptions_pkg.application_exception THEN
14107 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
14108 trace
14109 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
14110 ,p_level => C_LEVEL_EXCEPTION
14111 ,p_module => l_log_module);
14112 END IF;
14113 RAISE;
14114 WHEN OTHERS THEN
14115 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
14116 trace
14117 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
14118 ,p_level => C_LEVEL_EXCEPTION
14119 ,p_module => l_log_module);
14120 END IF;
14121 xla_exceptions_pkg.raise_message
14122 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_27');
14123 END insert_sources_27;
14124 --
14125
14126 ---------------------------------------
14127 --
14128 -- PRIVATE FUNCTION
14129 -- EventClass_27
14130 --
14131 ----------------------------------------
14132 --
14133 FUNCTION EventClass_27
14134 (p_application_id IN NUMBER
14135 ,p_base_ledger_id IN NUMBER
14136 ,p_target_ledger_id IN NUMBER
14137 ,p_language IN VARCHAR2
14138 ,p_currency_code IN VARCHAR2
14139 ,p_sla_ledger_id IN NUMBER
14140 ,p_pad_start_date IN DATE
14141 ,p_pad_end_date IN DATE
14142 ,p_primary_ledger_id IN NUMBER)
14143 RETURN BOOLEAN IS
14144 --
14145 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DELIVER_EXPENSE_ALL';
14146 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DELIVER_EXPENSE';
14147
14148 l_calculate_acctd_flag VARCHAR2(1) :='N';
14149 l_calculate_g_l_flag VARCHAR2(1) :='N';
14150 --
14151 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
14152 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
14153 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
14154 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
14155 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
14156 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
14157 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
14158 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
14159 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
14160 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
14161 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
14162 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
14163 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
14164 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
14165 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
14166 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
14167 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
14168 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
14169 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
14170 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
14171 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
14172 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
14173 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
14174 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
14175 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
14176 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
14177
14178 l_event_id NUMBER;
14179 l_previous_event_id NUMBER;
14180 l_first_event_id NUMBER;
14181 l_last_event_id NUMBER;
14182
14183 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
14184 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14185 --
14186 --
14187 l_result BOOLEAN := TRUE;
14188 l_rows NUMBER := 1000;
14189 l_event_type_name VARCHAR2(80) := 'All';
14190 l_event_class_name VARCHAR2(80) := 'Delivery to Expense Destination';
14191 l_description VARCHAR2(4000);
14192 l_transaction_reversal NUMBER;
14193 l_ae_header_id NUMBER;
14194 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
14195 l_log_module VARCHAR2(240);
14196 --
14197 l_acct_reversal_source VARCHAR2(30);
14198 l_trx_reversal_source VARCHAR2(30);
14199
14200 l_continue_with_lines BOOLEAN := TRUE;
14201 --
14202 l_acc_rev_gl_date_source DATE; -- 4262811
14203 --
14204 type t_array_event_id is table of number index by binary_integer;
14205
14206 l_rec_array_event t_rec_array_event;
14207 l_null_rec_array_event t_rec_array_event;
14208 l_array_ae_header_id xla_number_array_type;
14209 l_actual_flag VARCHAR2(1) := NULL;
14210 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
14211 l_balance_type_code VARCHAR2(1) :=NULL;
14212 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
14213
14214 --
14215 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
14216 --
14217
14218 TYPE t_array_source_9 IS TABLE OF CST_XLA_RCV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
14219 TYPE t_array_source_11 IS TABLE OF CST_XLA_RCV_HEADERS_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
14220 TYPE t_array_source_16 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
14221 TYPE t_array_source_19 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
14222 TYPE t_array_source_20 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
14223 TYPE t_array_source_21 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
14224 TYPE t_array_source_23 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
14225 TYPE t_array_source_24 IS TABLE OF PO_DISTS_REF_V.PO_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
14226 TYPE t_array_source_25 IS TABLE OF CST_XLA_RCV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
14227 TYPE t_array_source_26 IS TABLE OF CST_XLA_RCV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
14228 TYPE t_array_source_27 IS TABLE OF PSA_CST_XLA_UPG_V.CST_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
14229 TYPE t_array_source_28 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
14230 TYPE t_array_source_30 IS TABLE OF CST_XLA_RCV_REF_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
14231 TYPE t_array_source_31 IS TABLE OF PO_DISTS_REF_V.RESERVED_FLAG%TYPE INDEX BY BINARY_INTEGER;
14232 TYPE t_array_source_42 IS TABLE OF CST_XLA_RCV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
14233
14234 TYPE t_array_source_8 IS TABLE OF CST_XLA_RCV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
14235 TYPE t_array_source_29 IS TABLE OF CST_XLA_RCV_LINES_V.RCV_ACCOUNTING_LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
14236
14237 l_array_source_9 t_array_source_9;
14238 l_array_source_9_meaning t_array_lookup_meaning;
14239 l_array_source_11 t_array_source_11;
14240 l_array_source_16 t_array_source_16;
14241 l_array_source_19 t_array_source_19;
14242 l_array_source_20 t_array_source_20;
14243 l_array_source_21 t_array_source_21;
14244 l_array_source_23 t_array_source_23;
14245 l_array_source_24 t_array_source_24;
14246 l_array_source_25 t_array_source_25;
14247 l_array_source_26 t_array_source_26;
14248 l_array_source_27 t_array_source_27;
14249 l_array_source_28 t_array_source_28;
14250 l_array_source_30 t_array_source_30;
14251 l_array_source_31 t_array_source_31;
14252 l_array_source_42 t_array_source_42;
14253 l_array_source_42_meaning t_array_lookup_meaning;
14254
14255 l_array_source_8 t_array_source_8;
14256 l_array_source_29 t_array_source_29;
14257
14258 --
14259 CURSOR header_cur
14260 IS
14261 SELECT /*+ leading(xet) cardinality(xet,1) */
14262 -- Event Class Code: DELIVER_EXPENSE
14263 xet.entity_id
14264 ,xet.legal_entity_id
14265 ,xet.entity_code
14266 ,xet.transaction_number
14267 ,xet.event_id
14268 ,xet.event_class_code
14269 ,xet.event_type_code
14270 ,xet.event_number
14271 ,xet.event_date
14272 ,xet.transaction_date
14273 ,xet.reference_num_1
14274 ,xet.reference_num_2
14275 ,xet.reference_num_3
14276 ,xet.reference_num_4
14277 ,xet.reference_char_1
14278 ,xet.reference_char_2
14279 ,xet.reference_char_3
14280 ,xet.reference_char_4
14281 ,xet.reference_date_1
14282 ,xet.reference_date_2
14283 ,xet.reference_date_3
14284 ,xet.reference_date_4
14285 ,xet.event_created_by
14286 ,xet.budgetary_control_flag
14287 , h1.DISTRIBUTION_TYPE source_9
14288 , fvl9.meaning source_9_meaning
14289 , h1.CURRENCY_CODE source_11
14290 , h5.PURCH_ENCUMBRANCE_FLAG source_16
14291 , h3.APPLIED_TO_APPL_ID source_19
14292 , h3.APPLIED_TO_DIST_LINK_TYPE source_20
14293 , h3.APPLIED_TO_ENTITY_CODE source_21
14294 , h3.APPLIED_TO_PO_DOC_ID source_23
14295 , h4.PO_BUDGET_ACCOUNT source_24
14296 , h3.ENCUM_REVERSAL_AMOUNT_ENTERED source_25
14297 , h3.ENCUMBRANCE_REVERSAL_AMOUNT source_26
14298 , h6.CST_ENCUM_UPG_OPTION source_27
14299 , h5.PURCH_ENCUMBRANCE_TYPE_ID source_28
14300 , h3.PO_DISTRIBUTION_ID source_30
14301 , h4.RESERVED_FLAG source_31
14302 , h1.TRANSFER_TO_GL_INDICATOR source_42
14303 , fvl42.meaning source_42_meaning
14304 FROM xla_events_gt xet
14305 , CST_XLA_RCV_HEADERS_V h1
14306 , CST_XLA_RCV_REF_V h3
14307 , PO_DISTS_REF_V h4
14308 , PO_HEADERS_REF_V h5
14309 , PSA_CST_XLA_UPG_V h6
14310 , fnd_lookup_values fvl9
14311 , fnd_lookup_values fvl42
14312 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
14313 and xet.event_class_code = C_EVENT_CLASS_CODE
14314 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
14315 AND h3.REF_RCV_ACCOUNTING_EVENT_ID = h1.RCV_ACCOUNTING_EVENT_ID AND h3.po_header_id = h4.po_header_id (+) AND h3.po_distribution_id = h4.po_distribution_id (+) AND h3.po_header_id = h5.po_header_id (+) AND h3.rcv_transaction_id = h6.transaction_id (+) AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
14316 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
14317 AND fvl9.view_application_id(+) = 700
14318 AND fvl9.language(+) = USERENV('LANG')
14319 AND fvl42.lookup_type(+) = 'YES_NO'
14320 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
14321 AND fvl42.view_application_id(+) = 0
14322 AND fvl42.language(+) = USERENV('LANG')
14323
14324 ORDER BY event_id
14325 ;
14326
14327
14328 --
14329 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
14330 IS
14331 SELECT /*+ leading(xet) cardinality(xet,1) */
14332 -- Event Class Code: DELIVER_EXPENSE
14333 xet.entity_id
14334 ,xet.legal_entity_id
14335 ,xet.entity_code
14336 ,xet.transaction_number
14337 ,xet.event_id
14338 ,xet.event_class_code
14339 ,xet.event_type_code
14340 ,xet.event_number
14341 ,xet.event_date
14342 ,xet.transaction_date
14343 ,xet.reference_num_1
14344 ,xet.reference_num_2
14345 ,xet.reference_num_3
14346 ,xet.reference_num_4
14347 ,xet.reference_char_1
14348 ,xet.reference_char_2
14349 ,xet.reference_char_3
14350 ,xet.reference_char_4
14351 ,xet.reference_date_1
14352 ,xet.reference_date_2
14353 ,xet.reference_date_3
14354 ,xet.reference_date_4
14355 ,xet.event_created_by
14356 ,xet.budgetary_control_flag
14357 , l2.LINE_NUMBER
14358 , l2.DISTRIBUTION_IDENTIFIER source_8
14359 , l2.RCV_ACCOUNTING_LINE_TYPE source_29
14360 FROM xla_events_gt xet
14361 , CST_XLA_RCV_LINES_V l2
14362 WHERE xet.event_id between x_first_event_id and x_last_event_id
14363 and xet.event_date between p_pad_start_date and p_pad_end_date
14364 and xet.event_class_code = C_EVENT_CLASS_CODE
14365 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
14366 ;
14367
14368 --
14369 BEGIN
14370 IF g_log_enabled THEN
14371 l_log_module := C_DEFAULT_MODULE||'.EventClass_27';
14372 END IF;
14373 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14374 trace
14375 (p_msg => 'BEGIN of EventClass_27'
14376 ,p_level => C_LEVEL_PROCEDURE
14377 ,p_module => l_log_module);
14378 END IF;
14379
14380 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14381 trace
14382 (p_msg => 'p_application_id = '||p_application_id||
14383 ' - p_base_ledger_id = '||p_base_ledger_id||
14384 ' - p_target_ledger_id = '||p_target_ledger_id||
14385 ' - p_language = '||p_language||
14386 ' - p_currency_code = '||p_currency_code||
14387 ' - p_sla_ledger_id = '||p_sla_ledger_id
14388 ,p_level => C_LEVEL_STATEMENT
14389 ,p_module => l_log_module);
14390 END IF;
14391 --
14392 -- initialze arrays
14393 --
14394 g_array_event.DELETE;
14395 l_rec_array_event := l_null_rec_array_event;
14396 --
14397 --------------------------------------
14398 -- 4262811 Initialze MPA Line Number
14399 --------------------------------------
14400 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
14401
14402 --
14403
14404 --
14405 OPEN header_cur;
14406 --
14407 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14408 trace
14409 (p_msg => 'SQL - FETCH header_cur'
14410 ,p_level => C_LEVEL_STATEMENT
14411 ,p_module => l_log_module);
14412 END IF;
14413 --
14414 LOOP
14415 FETCH header_cur BULK COLLECT INTO
14416 l_array_entity_id
14417 , l_array_legal_entity_id
14418 , l_array_entity_code
14419 , l_array_transaction_num
14420 , l_array_event_id
14421 , l_array_class_code
14422 , l_array_event_type
14423 , l_array_event_number
14424 , l_array_event_date
14425 , l_array_transaction_date
14426 , l_array_reference_num_1
14427 , l_array_reference_num_2
14428 , l_array_reference_num_3
14429 , l_array_reference_num_4
14430 , l_array_reference_char_1
14431 , l_array_reference_char_2
14432 , l_array_reference_char_3
14433 , l_array_reference_char_4
14434 , l_array_reference_date_1
14435 , l_array_reference_date_2
14436 , l_array_reference_date_3
14437 , l_array_reference_date_4
14438 , l_array_event_created_by
14439 , l_array_budgetary_control_flag
14440 , l_array_source_9
14441 , l_array_source_9_meaning
14442 , l_array_source_11
14443 , l_array_source_16
14444 , l_array_source_19
14445 , l_array_source_20
14446 , l_array_source_21
14447 , l_array_source_23
14448 , l_array_source_24
14449 , l_array_source_25
14450 , l_array_source_26
14451 , l_array_source_27
14452 , l_array_source_28
14453 , l_array_source_30
14454 , l_array_source_31
14455 , l_array_source_42
14456 , l_array_source_42_meaning
14457 LIMIT l_rows;
14458 --
14459 IF (C_LEVEL_EVENT >= g_log_level) THEN
14460 trace
14461 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
14462 ,p_level => C_LEVEL_EVENT
14463 ,p_module => l_log_module);
14464 END IF;
14465 --
14466 EXIT WHEN l_array_entity_id.COUNT = 0;
14467
14468 -- initialize arrays
14469 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
14470 XLA_AE_LINES_PKG.g_rec_lines := NULL;
14471
14472 --
14473 -- Bug 4458708
14474 --
14475 XLA_AE_LINES_PKG.g_LineNumber := 0;
14476
14477
14478 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
14479 g_last_hdr_idx := l_array_event_id.LAST;
14480 --
14481 -- loop for the headers. Each iteration is for each header extract row
14482 -- fetched in header cursor
14483 --
14484 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
14485
14486 --
14487 -- set event info as cache for other routines to refer event attributes
14488 --
14489 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
14490 (p_application_id => p_application_id
14491 ,p_primary_ledger_id => p_primary_ledger_id
14492 ,p_base_ledger_id => p_base_ledger_id
14493 ,p_target_ledger_id => p_target_ledger_id
14494 ,p_entity_id => l_array_entity_id(hdr_idx)
14495 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
14496 ,p_entity_code => l_array_entity_code(hdr_idx)
14497 ,p_transaction_num => l_array_transaction_num(hdr_idx)
14498 ,p_event_id => l_array_event_id(hdr_idx)
14499 ,p_event_class_code => l_array_class_code(hdr_idx)
14500 ,p_event_type_code => l_array_event_type(hdr_idx)
14501 ,p_event_number => l_array_event_number(hdr_idx)
14502 ,p_event_date => l_array_event_date(hdr_idx)
14503 ,p_transaction_date => l_array_transaction_date(hdr_idx)
14504 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
14505 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
14506 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
14507 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
14508 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
14509 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
14510 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
14511 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
14512 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
14513 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
14514 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
14515 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
14516 ,p_event_created_by => l_array_event_created_by(hdr_idx)
14517 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
14518
14519 --
14520 -- set the status of entry to C_VALID (0)
14521 --
14522 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
14523
14524 --
14525 -- initialize a row for ae header
14526 --
14527 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
14528
14529 l_event_id := l_array_event_id(hdr_idx);
14530
14531 --
14532 -- storing the hdr_idx for event. May be used by line cursor.
14533 --
14534 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
14535
14536 --
14537 -- store sources from header extract. This can be improved to
14538 -- store only those sources from header extract that may be used in lines
14539 --
14540
14541 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
14542 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
14543 g_array_event(l_event_id).array_value_char('source_11') := l_array_source_11(hdr_idx);
14544 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
14545 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
14546 g_array_event(l_event_id).array_value_char('source_20') := l_array_source_20(hdr_idx);
14547 g_array_event(l_event_id).array_value_char('source_21') := l_array_source_21(hdr_idx);
14548 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
14549 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
14550 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
14551 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
14552 g_array_event(l_event_id).array_value_char('source_27') := l_array_source_27(hdr_idx);
14553 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
14554 g_array_event(l_event_id).array_value_num('source_30') := l_array_source_30(hdr_idx);
14555 g_array_event(l_event_id).array_value_char('source_31') := l_array_source_31(hdr_idx);
14556 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
14557 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
14558
14559 --
14560 -- initilaize the status of ae headers for diffrent balance types
14561 -- the status is initialised to C_NOT_CREATED (2)
14562 --
14563 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
14564 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
14565 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
14566
14567 --
14568 -- call api to validate and store accounting attributes for header
14569 --
14570
14571 ------------------------------------------------------------
14572 -- Accrual Reversal : to get date for Standard Source (NONE)
14573 ------------------------------------------------------------
14574 l_acc_rev_gl_date_source := NULL;
14575
14576 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
14577 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_28');
14578 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
14579 l_rec_acct_attrs.array_date_value(2) :=
14580 xla_ae_sources_pkg.GetSystemSourceDate(
14581 p_source_code => 'XLA_REFERENCE_DATE_1'
14582 , p_source_type_code => 'Y'
14583 , p_source_application_id => 602
14584 );
14585 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
14586 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_42');
14587
14588
14589 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
14590
14591 XLA_AE_HEADER_PKG.SetJeCategoryName;
14592
14593 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
14594 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
14595 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
14596 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
14597 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
14598
14599
14600 -- No header level analytical criteria
14601
14602 --
14603 --accounting attribute enhancement, bug 3612931
14604 --
14605 l_trx_reversal_source := SUBSTR(NULL, 1,30);
14606
14607 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
14608 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
14609
14610 xla_accounting_err_pkg.build_message
14611 (p_appli_s_name => 'XLA'
14612 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
14613 ,p_token_1 => 'ACCT_ATTR_NAME'
14614 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
14615 ,p_token_2 => 'PRODUCT_NAME'
14616 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
14617 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
14618 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
14619 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
14620
14621 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
14622 --
14623 -- following sets the accounting attributes needed to reverse
14624 -- accounting for a distributeion
14625 --
14626 xla_ae_lines_pkg.SetTrxReversalAttrs
14627 (p_event_id => l_event_id
14628 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
14629 ,p_trx_reversal_source => l_trx_reversal_source);
14630
14631 END IF;
14632
14633
14634 ----------------------------------------------------------------
14635 -- 4262811 - update the header statuses to invalid in need be
14636 ----------------------------------------------------------------
14637 --
14638 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
14639
14640
14641 -----------------------------------------------
14642 -- No accrual reversal for the event class/type
14643 -----------------------------------------------
14644 ----------------------------------------------------------------
14645
14646 --
14647 -- this ends the header loop iteration for one bulk fetch
14648 --
14649 END LOOP;
14650
14651 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
14652 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
14653
14654 --
14655 -- insert dummy rows into lines gt table that were created due to
14656 -- transaction reversals
14657 --
14658 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
14659 l_result := XLA_AE_LINES_PKG.InsertLines;
14660 END IF;
14661
14662 --
14663 -- reset the temp_line_num for each set of events fetched from header
14664 -- cursor rather than doing it for each new event in line cursor
14665 -- Bug 3939231
14666 --
14667 xla_ae_lines_pkg.g_temp_line_num := 0;
14668
14669
14670
14671 --
14672 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
14673 --
14674 --
14675 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14676
14677 trace
14678 (p_msg => 'SQL - FETCH line_cur'
14679 ,p_level => C_LEVEL_STATEMENT
14680 ,p_module => l_log_module);
14681
14682 END IF;
14683 --
14684 --
14685 LOOP
14686 --
14687 FETCH line_cur BULK COLLECT INTO
14688 l_array_entity_id
14689 , l_array_legal_entity_id
14690 , l_array_entity_code
14691 , l_array_transaction_num
14692 , l_array_event_id
14693 , l_array_class_code
14694 , l_array_event_type
14695 , l_array_event_number
14696 , l_array_event_date
14697 , l_array_transaction_date
14698 , l_array_reference_num_1
14699 , l_array_reference_num_2
14700 , l_array_reference_num_3
14701 , l_array_reference_num_4
14702 , l_array_reference_char_1
14703 , l_array_reference_char_2
14704 , l_array_reference_char_3
14705 , l_array_reference_char_4
14706 , l_array_reference_date_1
14707 , l_array_reference_date_2
14708 , l_array_reference_date_3
14709 , l_array_reference_date_4
14710 , l_array_event_created_by
14711 , l_array_budgetary_control_flag
14712 , l_array_extract_line_num
14713 , l_array_source_8
14714 , l_array_source_29
14715 LIMIT l_rows;
14716
14717 --
14718 IF (C_LEVEL_EVENT >= g_log_level) THEN
14719 trace
14720 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
14721 ,p_level => C_LEVEL_EVENT
14722 ,p_module => l_log_module);
14723 END IF;
14724 --
14725 EXIT WHEN l_array_entity_id.count = 0;
14726
14727 XLA_AE_LINES_PKG.g_rec_lines := null;
14728
14729 --
14730 -- Bug 4458708
14731 --
14732 XLA_AE_LINES_PKG.g_LineNumber := 0;
14733 --
14734 --
14735
14736 FOR Idx IN 1..l_array_event_id.count LOOP
14737 --
14738 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
14739 --
14740 l_event_id := l_array_event_id(idx); -- 5648433
14741
14742 --
14743 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
14744 --
14745
14746 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
14747 (g_array_event(l_event_id).array_value_num('header_index'))
14748 ,'N'
14749 ) <> 'Y'
14750 THEN
14751 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14752 trace
14753 (p_msg => 'Trancaction revesal option is not Y '
14754 ,p_level => C_LEVEL_STATEMENT
14755 ,p_module => l_log_module);
14756 END IF;
14757
14758 --
14759 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
14760 --
14761 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
14762 --
14763 -- set event info as cache for other routines to refer event attributes
14764 --
14765
14766 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
14767 l_previous_event_id := l_event_id;
14768
14769 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
14770 (p_application_id => p_application_id
14771 ,p_primary_ledger_id => p_primary_ledger_id
14772 ,p_base_ledger_id => p_base_ledger_id
14773 ,p_target_ledger_id => p_target_ledger_id
14774 ,p_entity_id => l_array_entity_id(Idx)
14775 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
14776 ,p_entity_code => l_array_entity_code(Idx)
14777 ,p_transaction_num => l_array_transaction_num(Idx)
14778 ,p_event_id => l_array_event_id(Idx)
14779 ,p_event_class_code => l_array_class_code(Idx)
14780 ,p_event_type_code => l_array_event_type(Idx)
14781 ,p_event_number => l_array_event_number(Idx)
14782 ,p_event_date => l_array_event_date(Idx)
14783 ,p_transaction_date => l_array_transaction_date(Idx)
14784 ,p_reference_num_1 => l_array_reference_num_1(Idx)
14785 ,p_reference_num_2 => l_array_reference_num_2(Idx)
14786 ,p_reference_num_3 => l_array_reference_num_3(Idx)
14787 ,p_reference_num_4 => l_array_reference_num_4(Idx)
14788 ,p_reference_char_1 => l_array_reference_char_1(Idx)
14789 ,p_reference_char_2 => l_array_reference_char_2(Idx)
14790 ,p_reference_char_3 => l_array_reference_char_3(Idx)
14791 ,p_reference_char_4 => l_array_reference_char_4(Idx)
14792 ,p_reference_date_1 => l_array_reference_date_1(Idx)
14793 ,p_reference_date_2 => l_array_reference_date_2(Idx)
14794 ,p_reference_date_3 => l_array_reference_date_3(Idx)
14795 ,p_reference_date_4 => l_array_reference_date_4(Idx)
14796 ,p_event_created_by => l_array_event_created_by(Idx)
14797 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
14798 --
14799 END IF;
14800
14801
14802
14803 --
14804 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
14805
14806 l_acct_reversal_source := SUBSTR(NULL, 1,30);
14807
14808 IF l_continue_with_lines THEN
14809 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
14810 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
14811
14812 xla_accounting_err_pkg.build_message
14813 (p_appli_s_name => 'XLA'
14814 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
14815 ,p_token_1 => 'LINE_NUMBER'
14816 ,p_value_1 => l_array_extract_line_num(Idx)
14817 ,p_token_2 => 'PRODUCT_NAME'
14818 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
14819 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
14820 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
14821 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
14822
14823 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
14824 --
14825 -- following sets the accounting attributes needed to reverse
14826 -- accounting for a distributeion
14827 --
14828
14829 --
14830 -- 5217187
14831 --
14832 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
14833 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
14834 g_array_event(l_event_id).array_value_num('header_index'));
14835 --
14836 --
14837
14838 -- No reversal code generated
14839
14840 xla_ae_lines_pkg.SetAcctReversalAttrs
14841 (p_event_id => l_event_id
14842 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
14843 ,p_calculate_acctd_flag => l_calculate_acctd_flag
14844 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
14845 END IF;
14846
14847 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
14848 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
14849
14850 --
14851 AcctLineType_13 (
14852 p_application_id => p_application_id
14853 ,p_event_id => l_event_id
14854 ,p_calculate_acctd_flag => l_calculate_acctd_flag
14855 ,p_calculate_g_l_flag => l_calculate_g_l_flag
14856 ,p_actual_flag => l_actual_flag
14857 ,p_balance_type_code => l_balance_type_code
14858 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
14859
14860 , p_source_8 => l_array_source_8(Idx)
14861 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
14862 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
14863 , p_source_11 => g_array_event(l_event_id).array_value_char('source_11')
14864 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
14865 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
14866 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
14867 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
14868 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
14869 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
14870 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
14871 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
14872 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
14873 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
14874 , p_source_29 => l_array_source_29(Idx)
14875 , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
14876 );
14877 If(l_balance_type_code = 'A') THEN
14878 l_actual_gain_loss_ref := l_gain_or_loss_ref;
14879 END IF;
14880
14881 --
14882
14883
14884 --
14885 AcctLineType_14 (
14886 p_application_id => p_application_id
14887 ,p_event_id => l_event_id
14888 ,p_calculate_acctd_flag => l_calculate_acctd_flag
14889 ,p_calculate_g_l_flag => l_calculate_g_l_flag
14890 ,p_actual_flag => l_actual_flag
14891 ,p_balance_type_code => l_balance_type_code
14892 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
14893
14894 , p_source_8 => l_array_source_8(Idx)
14895 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
14896 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
14897 , p_source_11 => g_array_event(l_event_id).array_value_char('source_11')
14898 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
14899 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
14900 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
14901 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
14902 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
14903 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
14904 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
14905 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
14906 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
14907 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
14908 , p_source_29 => l_array_source_29(Idx)
14909 , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
14910 , p_source_31 => g_array_event(l_event_id).array_value_char('source_31')
14911 );
14912 If(l_balance_type_code = 'A') THEN
14913 l_actual_gain_loss_ref := l_gain_or_loss_ref;
14914 END IF;
14915
14916 --
14917
14918 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
14919 -- or secondary ledger that has different currency with primary
14920 -- or alc that is calculated by sla
14921 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
14922 (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'))
14923
14924 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
14925 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
14926 AND (l_actual_flag = 'A')) THEN
14927 XLA_AE_LINES_PKG.CreateGainOrLossLines(
14928 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
14929 ,p_application_id => p_application_id
14930 ,p_amb_context_code => 'DEFAULT'
14931 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
14932 ,p_event_class_code => C_EVENT_CLASS_CODE
14933 ,p_event_type_code => C_EVENT_TYPE_CODE
14934
14935 ,p_gain_ccid => -1
14936 ,p_loss_ccid => -1
14937
14938 ,p_actual_flag => l_actual_flag
14939 ,p_enc_flag => null
14940 ,p_actual_g_l_ref => l_actual_gain_loss_ref
14941 ,p_enc_g_l_ref => null
14942 );
14943 END IF;
14944 END IF;
14945 END IF;
14946
14947 ELSE
14948 --
14949 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
14950 --
14951 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14952 trace
14953 (p_msg => 'Trancaction revesal option is Y'
14954 ,p_level => C_LEVEL_STATEMENT
14955 ,p_module => l_log_module);
14956 END IF;
14957 END IF;
14958
14959 END LOOP;
14960 l_result := XLA_AE_LINES_PKG.InsertLines ;
14961 end loop;
14962 close line_cur;
14963
14964
14965 --
14966 -- insert headers into xla_ae_headers_gt table
14967 --
14968 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
14969
14970 -- insert into errors table here.
14971
14972 END LOOP;
14973
14974 --
14975 -- 4865292
14976 --
14977 -- Compare g_hdr_extract_count with event count in
14978 -- CreateHeadersAndLines.
14979 --
14980 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
14981
14982 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14983 trace (p_msg => '# rows extracted from header extract objects '
14984 || ' (running total): '
14985 || g_hdr_extract_count
14986 ,p_level => C_LEVEL_STATEMENT
14987 ,p_module => l_log_module);
14988 END IF;
14989
14990 CLOSE header_cur;
14991 --
14992
14993 --
14994 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14995 trace
14996 (p_msg => 'END of EventClass_27'
14997 ,p_level => C_LEVEL_PROCEDURE
14998 ,p_module => l_log_module);
14999 END IF;
15000 --
15001 RETURN l_result;
15002 EXCEPTION
15003 WHEN xla_exceptions_pkg.application_exception THEN
15004
15005 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
15006
15007
15008 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
15009
15010 RAISE;
15011
15012 WHEN NO_DATA_FOUND THEN
15013
15014 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
15015 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
15016
15017 FOR header_record IN header_cur
15018 LOOP
15019 l_array_header_events(header_record.event_id) := header_record.event_id;
15020 END LOOP;
15021
15022 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
15023 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
15024
15025 fnd_file.put_line(fnd_file.LOG, ' ');
15026 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
15027 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
15028 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
15029
15030 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
15031 LOOP
15032 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
15033 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
15034 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
15035 END IF;
15036 END LOOP;
15037
15038 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
15039 fnd_file.put_line(fnd_file.LOG, ' ');
15040
15041
15042 xla_exceptions_pkg.raise_message
15043 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventClass_27');
15044
15045
15046 WHEN OTHERS THEN
15047 xla_exceptions_pkg.raise_message
15048 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventClass_27');
15049 END EventClass_27;
15050 --
15051
15052 ---------------------------------------
15053 --
15054 -- PRIVATE PROCEDURE
15055 -- insert_sources_28
15056 --
15057 ----------------------------------------
15058 --
15059 PROCEDURE insert_sources_28(
15060 p_target_ledger_id IN NUMBER
15061 , p_language IN VARCHAR2
15062 , p_sla_ledger_id IN NUMBER
15063 , p_pad_start_date IN DATE
15064 , p_pad_end_date IN DATE
15065 )
15066 IS
15067
15068 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DIR_INTERORG_RCPT_ALL';
15069 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DIR_INTERORG_RCPT';
15070 p_apps_owner VARCHAR2(30);
15071 l_log_module VARCHAR2(240);
15072 BEGIN
15073 IF g_log_enabled THEN
15074 l_log_module := C_DEFAULT_MODULE||'.insert_sources_28';
15075 END IF;
15076 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15077
15078 trace
15079 (p_msg => 'BEGIN of insert_sources_28'
15080 ,p_level => C_LEVEL_PROCEDURE
15081 ,p_module => l_log_module);
15082
15083 END IF;
15084
15085 -- select APPS owner
15086 SELECT oracle_username
15087 INTO p_apps_owner
15088 FROM fnd_oracle_userid
15089 WHERE read_only_flag = 'U'
15090 ;
15091
15092 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
15093 trace
15094 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
15095 ' - p_language = '||p_language||
15096 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
15097 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
15098 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
15099 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
15100 ,p_level => C_LEVEL_STATEMENT
15101 ,p_module => l_log_module);
15102 END IF;
15103
15104
15105 --
15106 INSERT INTO xla_diag_sources --hdr2
15107 (
15108 event_id
15109 , ledger_id
15110 , sla_ledger_id
15111 , description_language
15112 , object_name
15113 , object_type_code
15114 , line_number
15115 , source_application_id
15116 , source_type_code
15117 , source_code
15118 , source_value
15119 , source_meaning
15120 , created_by
15121 , creation_date
15122 , last_update_date
15123 , last_updated_by
15124 , last_update_login
15125 , program_update_date
15126 , program_application_id
15127 , program_id
15128 , request_id
15129 )
15130 SELECT
15131 event_id
15132 , p_target_ledger_id
15133 , p_sla_ledger_id
15134 , p_language
15135 , object_name
15136 , object_type_code
15137 , line_number
15138 , source_application_id
15139 , source_type_code
15140 , source_code
15141 , SUBSTR(source_value ,1,1996)
15142 , SUBSTR(source_meaning ,1,200)
15143 , xla_environment_pkg.g_Usr_Id
15144 , TRUNC(SYSDATE)
15145 , TRUNC(SYSDATE)
15146 , xla_environment_pkg.g_Usr_Id
15147 , xla_environment_pkg.g_Login_Id
15148 , TRUNC(SYSDATE)
15149 , xla_environment_pkg.g_Prog_Appl_Id
15150 , xla_environment_pkg.g_Prog_Id
15151 , xla_environment_pkg.g_Req_Id
15152 FROM (
15153 SELECT xet.event_id event_id
15154 , 0 line_number
15155 , CASE r
15156 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
15157 WHEN 2 THEN 'CST_XLA_INV_SYSTEM_ITEMS_REF_V'
15158 WHEN 3 THEN 'CST_XLA_INV_REF_V'
15159 WHEN 4 THEN 'CST_XLA_INV_REF_V'
15160 WHEN 5 THEN 'CST_XLA_INV_TXN_TYPES_REF_V'
15161 WHEN 6 THEN 'CST_XLA_INV_HEADERS_V'
15162 WHEN 7 THEN 'CST_XLA_INV_ORG_PARAMS_REF_V'
15163 WHEN 8 THEN 'CST_XLA_INV_REF_V'
15164 WHEN 9 THEN 'CST_XLA_INV_REF_V'
15165 WHEN 10 THEN 'CST_XLA_INV_REF_V'
15166 WHEN 11 THEN 'PSA_CST_XLA_UPG_V'
15167 WHEN 12 THEN 'PO_REQ_HEADERS_REF_V'
15168 WHEN 13 THEN 'PO_REQ_DISTS_REF_V'
15169 WHEN 14 THEN 'CST_XLA_INV_REF_V'
15170 WHEN 15 THEN 'CST_XLA_INV_REF_V'
15171 WHEN 16 THEN 'CST_XLA_INV_REF_V'
15172 WHEN 17 THEN 'CST_XLA_INV_REF_V'
15173 WHEN 18 THEN 'PO_REQ_DISTS_REF_V'
15174 WHEN 19 THEN 'PO_REQ_HEADERS_REF_V'
15175 WHEN 20 THEN 'CST_XLA_INV_HEADERS_V'
15176
15177 ELSE null
15178 END object_name
15179 , CASE r
15180 WHEN 1 THEN 'HEADER'
15181 WHEN 2 THEN 'HEADER'
15182 WHEN 3 THEN 'HEADER'
15183 WHEN 4 THEN 'HEADER'
15184 WHEN 5 THEN 'HEADER'
15185 WHEN 6 THEN 'HEADER'
15186 WHEN 7 THEN 'HEADER'
15187 WHEN 8 THEN 'HEADER'
15188 WHEN 9 THEN 'HEADER'
15189 WHEN 10 THEN 'HEADER'
15190 WHEN 11 THEN 'HEADER'
15191 WHEN 12 THEN 'HEADER'
15192 WHEN 13 THEN 'HEADER'
15193 WHEN 14 THEN 'HEADER'
15194 WHEN 15 THEN 'HEADER'
15195 WHEN 16 THEN 'HEADER'
15196 WHEN 17 THEN 'HEADER'
15197 WHEN 18 THEN 'HEADER'
15198 WHEN 19 THEN 'HEADER'
15199 WHEN 20 THEN 'HEADER'
15200
15201 ELSE null
15202 END object_type_code
15203 , CASE r
15204 WHEN 1 THEN '707'
15205 WHEN 2 THEN '707'
15206 WHEN 3 THEN '707'
15207 WHEN 4 THEN '707'
15208 WHEN 5 THEN '707'
15209 WHEN 6 THEN '707'
15210 WHEN 7 THEN '707'
15211 WHEN 8 THEN '707'
15212 WHEN 9 THEN '707'
15213 WHEN 10 THEN '707'
15214 WHEN 11 THEN '707'
15215 WHEN 12 THEN '201'
15216 WHEN 13 THEN '201'
15217 WHEN 14 THEN '707'
15218 WHEN 15 THEN '707'
15219 WHEN 16 THEN '707'
15220 WHEN 17 THEN '707'
15221 WHEN 18 THEN '201'
15222 WHEN 19 THEN '201'
15223 WHEN 20 THEN '707'
15224
15225 ELSE null
15226 END source_application_id
15227 , 'S' source_type_code
15228 , CASE r
15229 WHEN 1 THEN 'TRANSACTION_ID'
15230 WHEN 2 THEN 'ITEM_CONCATENATED_SEGMENTS'
15231 WHEN 3 THEN 'TRANSACTION_QUANTITY'
15232 WHEN 4 THEN 'TRANSACTION_UOM'
15233 WHEN 5 THEN 'INV_TXN_TYPE_DESCRIPTION'
15234 WHEN 6 THEN 'DISTRIBUTION_TYPE'
15235 WHEN 7 THEN 'ENCUMBRANCE_REVERSAL_FLAG'
15236 WHEN 8 THEN 'APPLIED_TO_APPL_ID'
15237 WHEN 9 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
15238 WHEN 10 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
15239 WHEN 11 THEN 'CST_ENCUM_UPG_OPTION'
15240 WHEN 12 THEN 'REQ_ENCUMBRANCE_FLAG'
15241 WHEN 13 THEN 'REQ_RESERVED_FLAG'
15242 WHEN 14 THEN 'BUS_FLOW_REQ_DIST_TYPE'
15243 WHEN 15 THEN 'BUS_FLOW_REQ_ENTITY_CODE'
15244 WHEN 16 THEN 'BUS_FLOW_REQ_DIST_ID'
15245 WHEN 17 THEN 'BUS_FLOW_REQ_ID'
15246 WHEN 18 THEN 'REQ_BUDGET_ACCOUNT'
15247 WHEN 19 THEN 'REQ_ENCUMBRANCE_TYPE_ID'
15248 WHEN 20 THEN 'TRANSFER_TO_GL_INDICATOR'
15249
15250 ELSE null
15251 END source_code
15252 , CASE r
15253 WHEN 1 THEN TO_CHAR(h1.TRANSACTION_ID)
15254 WHEN 2 THEN TO_CHAR(h5.ITEM_CONCATENATED_SEGMENTS)
15255 WHEN 3 THEN TO_CHAR(h4.TRANSACTION_QUANTITY)
15256 WHEN 4 THEN TO_CHAR(h4.TRANSACTION_UOM)
15257 WHEN 5 THEN TO_CHAR(h6.INV_TXN_TYPE_DESCRIPTION)
15258 WHEN 6 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
15259 WHEN 7 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_FLAG)
15260 WHEN 8 THEN TO_CHAR(h4.APPLIED_TO_APPL_ID)
15261 WHEN 9 THEN TO_CHAR(h4.ENCUM_REVERSAL_AMOUNT_ENTERED)
15262 WHEN 10 THEN TO_CHAR(h4.ENCUMBRANCE_REVERSAL_AMOUNT)
15263 WHEN 11 THEN TO_CHAR(h9.CST_ENCUM_UPG_OPTION)
15264 WHEN 12 THEN TO_CHAR(h8.REQ_ENCUMBRANCE_FLAG)
15265 WHEN 13 THEN TO_CHAR(h7.REQ_RESERVED_FLAG)
15266 WHEN 14 THEN TO_CHAR(h4.BUS_FLOW_REQ_DIST_TYPE)
15267 WHEN 15 THEN TO_CHAR(h4.BUS_FLOW_REQ_ENTITY_CODE)
15268 WHEN 16 THEN TO_CHAR(h4.BUS_FLOW_REQ_DIST_ID)
15269 WHEN 17 THEN TO_CHAR(h4.BUS_FLOW_REQ_ID)
15270 WHEN 18 THEN TO_CHAR(h7.REQ_BUDGET_ACCOUNT)
15271 WHEN 19 THEN TO_CHAR(h8.REQ_ENCUMBRANCE_TYPE_ID)
15272 WHEN 20 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
15273
15274 ELSE null
15275 END source_value
15276 , CASE r
15277 WHEN 6 THEN fvl9.meaning
15278 WHEN 20 THEN fvl42.meaning
15279
15280 ELSE null
15281 END source_meaning
15282 FROM xla_events_gt xet
15283 , CST_XLA_INV_HEADERS_V h1
15284 , CST_XLA_INV_ORG_PARAMS_REF_V h3
15285 , CST_XLA_INV_REF_V h4
15286 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
15287 , CST_XLA_INV_TXN_TYPES_REF_V h6
15288 , PO_REQ_DISTS_REF_V h7
15289 , PO_REQ_HEADERS_REF_V h8
15290 , PSA_CST_XLA_UPG_V h9
15291 , fnd_lookup_values fvl9
15292 , fnd_lookup_values fvl42
15293 ,(select rownum r from all_objects where rownum <= 20 and owner = p_apps_owner)
15294 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
15295 AND xet.event_class_code = C_EVENT_CLASS_CODE
15296 AND h1.event_id = xet.event_id
15297 AND h3.inv_organization_id (+) = h1.organization_id AND h4.ref_transaction_id = h1.transaction_id AND h5.inventory_item_id = h1.inventory_item_id and h5.organization_id = h1.organization_id AND h6.inv_transaction_type_id = h1.transaction_type_id AND h4.bus_flow_req_dist_id=h7.req_distribution_id (+) AND h4.bus_flow_req_id = h8.req_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
15298 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
15299 AND fvl9.view_application_id(+) = 700
15300 AND fvl9.language(+) = USERENV('LANG')
15301 AND fvl42.lookup_type(+) = 'YES_NO'
15302 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
15303 AND fvl42.view_application_id(+) = 0
15304 AND fvl42.language(+) = USERENV('LANG')
15305
15306 )
15307 ;
15308 --
15309 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
15310
15311 trace
15312 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
15313 ,p_level => C_LEVEL_STATEMENT
15314 ,p_module => l_log_module);
15315
15316 END IF;
15317 --
15318
15319
15320
15321 --
15322 INSERT INTO xla_diag_sources --line2
15323 (
15324 event_id
15325 , ledger_id
15326 , sla_ledger_id
15327 , description_language
15328 , object_name
15329 , object_type_code
15330 , line_number
15331 , source_application_id
15332 , source_type_code
15333 , source_code
15334 , source_value
15335 , source_meaning
15336 , created_by
15337 , creation_date
15338 , last_update_date
15339 , last_updated_by
15340 , last_update_login
15341 , program_update_date
15342 , program_application_id
15343 , program_id
15344 , request_id
15345 )
15346 SELECT event_id
15347 , p_target_ledger_id
15348 , p_sla_ledger_id
15349 , p_language
15350 , object_name
15351 , object_type_code
15352 , line_number
15353 , source_application_id
15354 , source_type_code
15355 , source_code
15356 , SUBSTR(source_value,1,1996)
15357 , SUBSTR(source_meaning ,1,200)
15358 , xla_environment_pkg.g_Usr_Id
15359 , TRUNC(SYSDATE)
15360 , TRUNC(SYSDATE)
15361 , xla_environment_pkg.g_Usr_Id
15362 , xla_environment_pkg.g_Login_Id
15363 , TRUNC(SYSDATE)
15364 , xla_environment_pkg.g_Prog_Appl_Id
15365 , xla_environment_pkg.g_Prog_Id
15366 , xla_environment_pkg.g_Req_Id
15367 FROM (
15368 SELECT xet.event_id event_id
15369 , l2.line_number line_number
15370 , CASE r
15371 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
15372 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
15373
15374 ELSE null
15375 END object_name
15376 , CASE r
15377 WHEN 1 THEN 'LINE'
15378 WHEN 2 THEN 'LINE'
15379
15380 ELSE null
15381 END object_type_code
15382 , CASE r
15383 WHEN 1 THEN '707'
15384 WHEN 2 THEN '707'
15385
15386 ELSE null
15387 END source_application_id
15388 , 'S' source_type_code
15389 , CASE r
15390 WHEN 1 THEN 'DISTRIBUTION_IDENTIFIER'
15391 WHEN 2 THEN 'CURRENCY_CODE'
15392
15393 ELSE null
15394 END source_code
15395 , CASE r
15396 WHEN 1 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
15397 WHEN 2 THEN TO_CHAR(l2.CURRENCY_CODE)
15398
15399 ELSE null
15400 END source_value
15401 , null source_meaning
15402 FROM xla_events_gt xet
15403 , CST_XLA_INV_LINES_V l2
15404 , (select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
15405 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
15406 AND xet.event_class_code = C_EVENT_CLASS_CODE
15407 AND l2.event_id = xet.event_id
15408
15409 )
15410 ;
15411 --
15412 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
15413
15414 trace
15415 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
15416 ,p_level => C_LEVEL_STATEMENT
15417 ,p_module => l_log_module);
15418
15419 END IF;
15420
15421
15422 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15423 trace
15424 (p_msg => 'END of insert_sources_28'
15425 ,p_level => C_LEVEL_PROCEDURE
15426 ,p_module => l_log_module);
15427 END IF;
15428 EXCEPTION
15429 WHEN xla_exceptions_pkg.application_exception THEN
15430 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
15431 trace
15432 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
15433 ,p_level => C_LEVEL_EXCEPTION
15434 ,p_module => l_log_module);
15435 END IF;
15436 RAISE;
15437 WHEN OTHERS THEN
15438 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
15439 trace
15440 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
15441 ,p_level => C_LEVEL_EXCEPTION
15442 ,p_module => l_log_module);
15443 END IF;
15444 xla_exceptions_pkg.raise_message
15445 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_28');
15446 END insert_sources_28;
15447 --
15448
15449 ---------------------------------------
15450 --
15451 -- PRIVATE FUNCTION
15452 -- EventClass_28
15453 --
15454 ----------------------------------------
15455 --
15456 FUNCTION EventClass_28
15457 (p_application_id IN NUMBER
15458 ,p_base_ledger_id IN NUMBER
15459 ,p_target_ledger_id IN NUMBER
15460 ,p_language IN VARCHAR2
15461 ,p_currency_code IN VARCHAR2
15462 ,p_sla_ledger_id IN NUMBER
15463 ,p_pad_start_date IN DATE
15464 ,p_pad_end_date IN DATE
15465 ,p_primary_ledger_id IN NUMBER)
15466 RETURN BOOLEAN IS
15467 --
15468 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DIR_INTERORG_RCPT_ALL';
15469 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DIR_INTERORG_RCPT';
15470
15471 l_calculate_acctd_flag VARCHAR2(1) :='N';
15472 l_calculate_g_l_flag VARCHAR2(1) :='N';
15473 --
15474 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
15475 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
15476 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
15477 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
15478 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
15479 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
15480 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
15481 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
15482 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
15483 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
15484 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
15485 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
15486 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
15487 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
15488 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
15489 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
15490 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
15491 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
15492 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
15493 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
15494 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
15495 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
15496 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
15497 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
15498 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
15499 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
15500
15501 l_event_id NUMBER;
15502 l_previous_event_id NUMBER;
15503 l_first_event_id NUMBER;
15504 l_last_event_id NUMBER;
15505
15506 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
15507 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
15508 --
15509 --
15510 l_result BOOLEAN := TRUE;
15511 l_rows NUMBER := 1000;
15512 l_event_type_name VARCHAR2(80) := 'All';
15513 l_event_class_name VARCHAR2(80) := 'Direct Interorg Receipt';
15514 l_description VARCHAR2(4000);
15515 l_transaction_reversal NUMBER;
15516 l_ae_header_id NUMBER;
15517 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
15518 l_log_module VARCHAR2(240);
15519 --
15520 l_acct_reversal_source VARCHAR2(30);
15521 l_trx_reversal_source VARCHAR2(30);
15522
15523 l_continue_with_lines BOOLEAN := TRUE;
15524 --
15525 l_acc_rev_gl_date_source DATE; -- 4262811
15526 --
15527 type t_array_event_id is table of number index by binary_integer;
15528
15529 l_rec_array_event t_rec_array_event;
15530 l_null_rec_array_event t_rec_array_event;
15531 l_array_ae_header_id xla_number_array_type;
15532 l_actual_flag VARCHAR2(1) := NULL;
15533 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
15534 l_balance_type_code VARCHAR2(1) :=NULL;
15535 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
15536
15537 --
15538 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
15539 --
15540
15541 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSACTION_ID%TYPE INDEX BY BINARY_INTEGER;
15542 TYPE t_array_source_2 IS TABLE OF CST_XLA_INV_SYSTEM_ITEMS_REF_V.ITEM_CONCATENATED_SEGMENTS%TYPE INDEX BY BINARY_INTEGER;
15543 TYPE t_array_source_3 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_QUANTITY%TYPE INDEX BY BINARY_INTEGER;
15544 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_UOM%TYPE INDEX BY BINARY_INTEGER;
15545 TYPE t_array_source_5 IS TABLE OF CST_XLA_INV_TXN_TYPES_REF_V.INV_TXN_TYPE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
15546 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
15547 TYPE t_array_source_17 IS TABLE OF CST_XLA_INV_ORG_PARAMS_REF_V.ENCUMBRANCE_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
15548 TYPE t_array_source_19 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
15549 TYPE t_array_source_25 IS TABLE OF CST_XLA_INV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
15550 TYPE t_array_source_26 IS TABLE OF CST_XLA_INV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
15551 TYPE t_array_source_27 IS TABLE OF PSA_CST_XLA_UPG_V.CST_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
15552 TYPE t_array_source_33 IS TABLE OF PO_REQ_HEADERS_REF_V.REQ_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
15553 TYPE t_array_source_34 IS TABLE OF PO_REQ_DISTS_REF_V.REQ_RESERVED_FLAG%TYPE INDEX BY BINARY_INTEGER;
15554 TYPE t_array_source_35 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
15555 TYPE t_array_source_36 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
15556 TYPE t_array_source_37 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
15557 TYPE t_array_source_38 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_ID%TYPE INDEX BY BINARY_INTEGER;
15558 TYPE t_array_source_39 IS TABLE OF PO_REQ_DISTS_REF_V.REQ_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
15559 TYPE t_array_source_40 IS TABLE OF PO_REQ_HEADERS_REF_V.REQ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
15560 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
15561
15562 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
15563 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
15564
15565 l_array_source_1 t_array_source_1;
15566 l_array_source_2 t_array_source_2;
15567 l_array_source_3 t_array_source_3;
15568 l_array_source_4 t_array_source_4;
15569 l_array_source_5 t_array_source_5;
15570 l_array_source_9 t_array_source_9;
15571 l_array_source_9_meaning t_array_lookup_meaning;
15572 l_array_source_17 t_array_source_17;
15573 l_array_source_19 t_array_source_19;
15574 l_array_source_25 t_array_source_25;
15575 l_array_source_26 t_array_source_26;
15576 l_array_source_27 t_array_source_27;
15577 l_array_source_33 t_array_source_33;
15578 l_array_source_34 t_array_source_34;
15579 l_array_source_35 t_array_source_35;
15580 l_array_source_36 t_array_source_36;
15581 l_array_source_37 t_array_source_37;
15582 l_array_source_38 t_array_source_38;
15583 l_array_source_39 t_array_source_39;
15584 l_array_source_40 t_array_source_40;
15585 l_array_source_42 t_array_source_42;
15586 l_array_source_42_meaning t_array_lookup_meaning;
15587
15588 l_array_source_8 t_array_source_8;
15589 l_array_source_11 t_array_source_11;
15590
15591 --
15592 CURSOR header_cur
15593 IS
15594 SELECT /*+ leading(xet) cardinality(xet,1) */
15595 -- Event Class Code: DIR_INTERORG_RCPT
15596 xet.entity_id
15597 ,xet.legal_entity_id
15598 ,xet.entity_code
15599 ,xet.transaction_number
15600 ,xet.event_id
15601 ,xet.event_class_code
15602 ,xet.event_type_code
15603 ,xet.event_number
15604 ,xet.event_date
15605 ,xet.transaction_date
15606 ,xet.reference_num_1
15607 ,xet.reference_num_2
15608 ,xet.reference_num_3
15609 ,xet.reference_num_4
15610 ,xet.reference_char_1
15611 ,xet.reference_char_2
15612 ,xet.reference_char_3
15613 ,xet.reference_char_4
15614 ,xet.reference_date_1
15615 ,xet.reference_date_2
15616 ,xet.reference_date_3
15617 ,xet.reference_date_4
15618 ,xet.event_created_by
15619 ,xet.budgetary_control_flag
15620 , h1.TRANSACTION_ID source_1
15621 , h5.ITEM_CONCATENATED_SEGMENTS source_2
15622 , h4.TRANSACTION_QUANTITY source_3
15623 , h4.TRANSACTION_UOM source_4
15624 , h6.INV_TXN_TYPE_DESCRIPTION source_5
15625 , h1.DISTRIBUTION_TYPE source_9
15626 , fvl9.meaning source_9_meaning
15627 , h3.ENCUMBRANCE_REVERSAL_FLAG source_17
15628 , h4.APPLIED_TO_APPL_ID source_19
15629 , h4.ENCUM_REVERSAL_AMOUNT_ENTERED source_25
15630 , h4.ENCUMBRANCE_REVERSAL_AMOUNT source_26
15631 , h9.CST_ENCUM_UPG_OPTION source_27
15632 , h8.REQ_ENCUMBRANCE_FLAG source_33
15633 , h7.REQ_RESERVED_FLAG source_34
15634 , h4.BUS_FLOW_REQ_DIST_TYPE source_35
15635 , h4.BUS_FLOW_REQ_ENTITY_CODE source_36
15636 , h4.BUS_FLOW_REQ_DIST_ID source_37
15637 , h4.BUS_FLOW_REQ_ID source_38
15638 , h7.REQ_BUDGET_ACCOUNT source_39
15639 , h8.REQ_ENCUMBRANCE_TYPE_ID source_40
15640 , h1.TRANSFER_TO_GL_INDICATOR source_42
15641 , fvl42.meaning source_42_meaning
15642 FROM xla_events_gt xet
15643 , CST_XLA_INV_HEADERS_V h1
15644 , CST_XLA_INV_ORG_PARAMS_REF_V h3
15645 , CST_XLA_INV_REF_V h4
15646 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
15647 , CST_XLA_INV_TXN_TYPES_REF_V h6
15648 , PO_REQ_DISTS_REF_V h7
15649 , PO_REQ_HEADERS_REF_V h8
15650 , PSA_CST_XLA_UPG_V h9
15651 , fnd_lookup_values fvl9
15652 , fnd_lookup_values fvl42
15653 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
15654 and xet.event_class_code = C_EVENT_CLASS_CODE
15655 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
15656 AND h3.INV_ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h4.ref_transaction_id = h1.transaction_id AND h5.INVENTORY_ITEM_ID = h1.INVENTORY_ITEM_ID AND h5.ORGANIZATION_ID = h1.ORGANIZATION_ID AND h6.INV_TRANSACTION_TYPE_ID = h1.TRANSACTION_TYPE_ID AND h4.BUS_FLOW_REQ_DIST_ID=h7.REQ_DISTRIBUTION_ID (+) AND h4.BUS_FLOW_REQ_ID = h8.REQ_ID (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
15657 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
15658 AND fvl9.view_application_id(+) = 700
15659 AND fvl9.language(+) = USERENV('LANG')
15660 AND fvl42.lookup_type(+) = 'YES_NO'
15661 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
15662 AND fvl42.view_application_id(+) = 0
15663 AND fvl42.language(+) = USERENV('LANG')
15664
15665 ORDER BY event_id
15666 ;
15667
15668
15669 --
15670 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
15671 IS
15672 SELECT /*+ leading(xet) cardinality(xet,1) */
15673 -- Event Class Code: DIR_INTERORG_RCPT
15674 xet.entity_id
15675 ,xet.legal_entity_id
15676 ,xet.entity_code
15677 ,xet.transaction_number
15678 ,xet.event_id
15679 ,xet.event_class_code
15680 ,xet.event_type_code
15681 ,xet.event_number
15682 ,xet.event_date
15683 ,xet.transaction_date
15684 ,xet.reference_num_1
15685 ,xet.reference_num_2
15686 ,xet.reference_num_3
15687 ,xet.reference_num_4
15688 ,xet.reference_char_1
15689 ,xet.reference_char_2
15690 ,xet.reference_char_3
15691 ,xet.reference_char_4
15692 ,xet.reference_date_1
15693 ,xet.reference_date_2
15694 ,xet.reference_date_3
15695 ,xet.reference_date_4
15696 ,xet.event_created_by
15697 ,xet.budgetary_control_flag
15698 , l2.LINE_NUMBER
15699 , l2.DISTRIBUTION_IDENTIFIER source_8
15700 , l2.CURRENCY_CODE source_11
15701 FROM xla_events_gt xet
15702 , CST_XLA_INV_LINES_V l2
15703 WHERE xet.event_id between x_first_event_id and x_last_event_id
15704 and xet.event_date between p_pad_start_date and p_pad_end_date
15705 and xet.event_class_code = C_EVENT_CLASS_CODE
15706 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
15707 ;
15708
15709 --
15710 BEGIN
15711 IF g_log_enabled THEN
15712 l_log_module := C_DEFAULT_MODULE||'.EventClass_28';
15713 END IF;
15714 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15715 trace
15716 (p_msg => 'BEGIN of EventClass_28'
15717 ,p_level => C_LEVEL_PROCEDURE
15718 ,p_module => l_log_module);
15719 END IF;
15720
15721 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
15722 trace
15723 (p_msg => 'p_application_id = '||p_application_id||
15724 ' - p_base_ledger_id = '||p_base_ledger_id||
15725 ' - p_target_ledger_id = '||p_target_ledger_id||
15726 ' - p_language = '||p_language||
15727 ' - p_currency_code = '||p_currency_code||
15728 ' - p_sla_ledger_id = '||p_sla_ledger_id
15729 ,p_level => C_LEVEL_STATEMENT
15730 ,p_module => l_log_module);
15731 END IF;
15732 --
15733 -- initialze arrays
15734 --
15735 g_array_event.DELETE;
15736 l_rec_array_event := l_null_rec_array_event;
15737 --
15738 --------------------------------------
15739 -- 4262811 Initialze MPA Line Number
15740 --------------------------------------
15741 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
15742
15743 --
15744
15745 --
15746 OPEN header_cur;
15747 --
15748 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
15749 trace
15750 (p_msg => 'SQL - FETCH header_cur'
15751 ,p_level => C_LEVEL_STATEMENT
15752 ,p_module => l_log_module);
15753 END IF;
15754 --
15755 LOOP
15756 FETCH header_cur BULK COLLECT INTO
15757 l_array_entity_id
15758 , l_array_legal_entity_id
15759 , l_array_entity_code
15760 , l_array_transaction_num
15761 , l_array_event_id
15762 , l_array_class_code
15763 , l_array_event_type
15764 , l_array_event_number
15765 , l_array_event_date
15766 , l_array_transaction_date
15767 , l_array_reference_num_1
15768 , l_array_reference_num_2
15769 , l_array_reference_num_3
15770 , l_array_reference_num_4
15771 , l_array_reference_char_1
15772 , l_array_reference_char_2
15773 , l_array_reference_char_3
15774 , l_array_reference_char_4
15775 , l_array_reference_date_1
15776 , l_array_reference_date_2
15777 , l_array_reference_date_3
15778 , l_array_reference_date_4
15779 , l_array_event_created_by
15780 , l_array_budgetary_control_flag
15781 , l_array_source_1
15782 , l_array_source_2
15783 , l_array_source_3
15784 , l_array_source_4
15785 , l_array_source_5
15786 , l_array_source_9
15787 , l_array_source_9_meaning
15788 , l_array_source_17
15789 , l_array_source_19
15790 , l_array_source_25
15791 , l_array_source_26
15792 , l_array_source_27
15793 , l_array_source_33
15794 , l_array_source_34
15795 , l_array_source_35
15796 , l_array_source_36
15797 , l_array_source_37
15798 , l_array_source_38
15799 , l_array_source_39
15800 , l_array_source_40
15801 , l_array_source_42
15802 , l_array_source_42_meaning
15803 LIMIT l_rows;
15804 --
15805 IF (C_LEVEL_EVENT >= g_log_level) THEN
15806 trace
15807 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
15808 ,p_level => C_LEVEL_EVENT
15809 ,p_module => l_log_module);
15810 END IF;
15811 --
15812 EXIT WHEN l_array_entity_id.COUNT = 0;
15813
15814 -- initialize arrays
15815 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
15816 XLA_AE_LINES_PKG.g_rec_lines := NULL;
15817
15818 --
15819 -- Bug 4458708
15820 --
15821 XLA_AE_LINES_PKG.g_LineNumber := 0;
15822
15823
15824 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
15825 g_last_hdr_idx := l_array_event_id.LAST;
15826 --
15827 -- loop for the headers. Each iteration is for each header extract row
15828 -- fetched in header cursor
15829 --
15830 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
15831
15832 --
15833 -- set event info as cache for other routines to refer event attributes
15834 --
15835 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
15836 (p_application_id => p_application_id
15837 ,p_primary_ledger_id => p_primary_ledger_id
15838 ,p_base_ledger_id => p_base_ledger_id
15839 ,p_target_ledger_id => p_target_ledger_id
15840 ,p_entity_id => l_array_entity_id(hdr_idx)
15841 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
15842 ,p_entity_code => l_array_entity_code(hdr_idx)
15843 ,p_transaction_num => l_array_transaction_num(hdr_idx)
15844 ,p_event_id => l_array_event_id(hdr_idx)
15845 ,p_event_class_code => l_array_class_code(hdr_idx)
15846 ,p_event_type_code => l_array_event_type(hdr_idx)
15847 ,p_event_number => l_array_event_number(hdr_idx)
15848 ,p_event_date => l_array_event_date(hdr_idx)
15849 ,p_transaction_date => l_array_transaction_date(hdr_idx)
15850 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
15851 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
15852 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
15853 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
15854 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
15855 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
15856 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
15857 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
15858 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
15859 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
15860 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
15861 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
15862 ,p_event_created_by => l_array_event_created_by(hdr_idx)
15863 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
15864
15865 --
15866 -- set the status of entry to C_VALID (0)
15867 --
15868 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
15869
15870 --
15871 -- initialize a row for ae header
15872 --
15873 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
15874
15875 l_event_id := l_array_event_id(hdr_idx);
15876
15877 --
15878 -- storing the hdr_idx for event. May be used by line cursor.
15879 --
15880 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
15881
15882 --
15883 -- store sources from header extract. This can be improved to
15884 -- store only those sources from header extract that may be used in lines
15885 --
15886
15887 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
15888 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
15889 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
15890 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
15891 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
15892 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
15893 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
15894 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
15895 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
15896 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
15897 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
15898 g_array_event(l_event_id).array_value_char('source_27') := l_array_source_27(hdr_idx);
15899 g_array_event(l_event_id).array_value_char('source_33') := l_array_source_33(hdr_idx);
15900 g_array_event(l_event_id).array_value_char('source_34') := l_array_source_34(hdr_idx);
15901 g_array_event(l_event_id).array_value_char('source_35') := l_array_source_35(hdr_idx);
15902 g_array_event(l_event_id).array_value_char('source_36') := l_array_source_36(hdr_idx);
15903 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
15904 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
15905 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
15906 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
15907 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
15908 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
15909
15910 --
15911 -- initilaize the status of ae headers for diffrent balance types
15912 -- the status is initialised to C_NOT_CREATED (2)
15913 --
15914 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
15915 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
15916 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
15917
15918 --
15919 -- call api to validate and store accounting attributes for header
15920 --
15921
15922 ------------------------------------------------------------
15923 -- Accrual Reversal : to get date for Standard Source (NONE)
15924 ------------------------------------------------------------
15925 l_acc_rev_gl_date_source := NULL;
15926
15927 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
15928 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_40');
15929 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
15930 l_rec_acct_attrs.array_date_value(2) :=
15931 xla_ae_sources_pkg.GetSystemSourceDate(
15932 p_source_code => 'XLA_REFERENCE_DATE_1'
15933 , p_source_type_code => 'Y'
15934 , p_source_application_id => 602
15935 );
15936 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
15937 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_42');
15938
15939
15940 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
15941
15942 XLA_AE_HEADER_PKG.SetJeCategoryName;
15943
15944 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
15945 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
15946 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
15947 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
15948 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
15949
15950
15951 --
15952 xla_ae_header_pkg.SetHdrDescription(
15953 p_description => Description_1 (
15954 p_application_id => p_application_id
15955 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
15956 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
15957 , p_source_3 => g_array_event(l_event_id).array_value_num('source_3')
15958 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
15959 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
15960 )
15961 );
15962 --
15963
15964 -- No header level analytical criteria
15965
15966 --
15967 --accounting attribute enhancement, bug 3612931
15968 --
15969 l_trx_reversal_source := SUBSTR(NULL, 1,30);
15970
15971 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
15972 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
15973
15974 xla_accounting_err_pkg.build_message
15975 (p_appli_s_name => 'XLA'
15976 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
15977 ,p_token_1 => 'ACCT_ATTR_NAME'
15978 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
15979 ,p_token_2 => 'PRODUCT_NAME'
15980 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
15981 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
15982 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
15983 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
15984
15985 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
15986 --
15987 -- following sets the accounting attributes needed to reverse
15988 -- accounting for a distributeion
15989 --
15990 xla_ae_lines_pkg.SetTrxReversalAttrs
15991 (p_event_id => l_event_id
15992 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
15993 ,p_trx_reversal_source => l_trx_reversal_source);
15994
15995 END IF;
15996
15997
15998 ----------------------------------------------------------------
15999 -- 4262811 - update the header statuses to invalid in need be
16000 ----------------------------------------------------------------
16001 --
16002 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
16003
16004
16005 -----------------------------------------------
16006 -- No accrual reversal for the event class/type
16007 -----------------------------------------------
16008 ----------------------------------------------------------------
16009
16010 --
16011 -- this ends the header loop iteration for one bulk fetch
16012 --
16013 END LOOP;
16014
16015 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
16016 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
16017
16018 --
16019 -- insert dummy rows into lines gt table that were created due to
16020 -- transaction reversals
16021 --
16022 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
16023 l_result := XLA_AE_LINES_PKG.InsertLines;
16024 END IF;
16025
16026 --
16027 -- reset the temp_line_num for each set of events fetched from header
16028 -- cursor rather than doing it for each new event in line cursor
16029 -- Bug 3939231
16030 --
16031 xla_ae_lines_pkg.g_temp_line_num := 0;
16032
16033
16034
16035 --
16036 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
16037 --
16038 --
16039 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
16040
16041 trace
16042 (p_msg => 'SQL - FETCH line_cur'
16043 ,p_level => C_LEVEL_STATEMENT
16044 ,p_module => l_log_module);
16045
16046 END IF;
16047 --
16048 --
16049 LOOP
16050 --
16051 FETCH line_cur BULK COLLECT INTO
16052 l_array_entity_id
16053 , l_array_legal_entity_id
16054 , l_array_entity_code
16055 , l_array_transaction_num
16056 , l_array_event_id
16057 , l_array_class_code
16058 , l_array_event_type
16059 , l_array_event_number
16060 , l_array_event_date
16061 , l_array_transaction_date
16062 , l_array_reference_num_1
16063 , l_array_reference_num_2
16064 , l_array_reference_num_3
16065 , l_array_reference_num_4
16066 , l_array_reference_char_1
16067 , l_array_reference_char_2
16068 , l_array_reference_char_3
16069 , l_array_reference_char_4
16070 , l_array_reference_date_1
16071 , l_array_reference_date_2
16072 , l_array_reference_date_3
16073 , l_array_reference_date_4
16074 , l_array_event_created_by
16075 , l_array_budgetary_control_flag
16076 , l_array_extract_line_num
16077 , l_array_source_8
16078 , l_array_source_11
16079 LIMIT l_rows;
16080
16081 --
16082 IF (C_LEVEL_EVENT >= g_log_level) THEN
16083 trace
16084 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
16085 ,p_level => C_LEVEL_EVENT
16086 ,p_module => l_log_module);
16087 END IF;
16088 --
16089 EXIT WHEN l_array_entity_id.count = 0;
16090
16091 XLA_AE_LINES_PKG.g_rec_lines := null;
16092
16093 --
16094 -- Bug 4458708
16095 --
16096 XLA_AE_LINES_PKG.g_LineNumber := 0;
16097 --
16098 --
16099
16100 FOR Idx IN 1..l_array_event_id.count LOOP
16101 --
16102 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
16103 --
16104 l_event_id := l_array_event_id(idx); -- 5648433
16105
16106 --
16107 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
16108 --
16109
16110 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
16111 (g_array_event(l_event_id).array_value_num('header_index'))
16112 ,'N'
16113 ) <> 'Y'
16114 THEN
16115 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
16116 trace
16117 (p_msg => 'Trancaction revesal option is not Y '
16118 ,p_level => C_LEVEL_STATEMENT
16119 ,p_module => l_log_module);
16120 END IF;
16121
16122 --
16123 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
16124 --
16125 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
16126 --
16127 -- set event info as cache for other routines to refer event attributes
16128 --
16129
16130 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
16131 l_previous_event_id := l_event_id;
16132
16133 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
16134 (p_application_id => p_application_id
16135 ,p_primary_ledger_id => p_primary_ledger_id
16136 ,p_base_ledger_id => p_base_ledger_id
16137 ,p_target_ledger_id => p_target_ledger_id
16138 ,p_entity_id => l_array_entity_id(Idx)
16139 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
16140 ,p_entity_code => l_array_entity_code(Idx)
16141 ,p_transaction_num => l_array_transaction_num(Idx)
16142 ,p_event_id => l_array_event_id(Idx)
16143 ,p_event_class_code => l_array_class_code(Idx)
16144 ,p_event_type_code => l_array_event_type(Idx)
16145 ,p_event_number => l_array_event_number(Idx)
16146 ,p_event_date => l_array_event_date(Idx)
16147 ,p_transaction_date => l_array_transaction_date(Idx)
16148 ,p_reference_num_1 => l_array_reference_num_1(Idx)
16149 ,p_reference_num_2 => l_array_reference_num_2(Idx)
16150 ,p_reference_num_3 => l_array_reference_num_3(Idx)
16151 ,p_reference_num_4 => l_array_reference_num_4(Idx)
16152 ,p_reference_char_1 => l_array_reference_char_1(Idx)
16153 ,p_reference_char_2 => l_array_reference_char_2(Idx)
16154 ,p_reference_char_3 => l_array_reference_char_3(Idx)
16155 ,p_reference_char_4 => l_array_reference_char_4(Idx)
16156 ,p_reference_date_1 => l_array_reference_date_1(Idx)
16157 ,p_reference_date_2 => l_array_reference_date_2(Idx)
16158 ,p_reference_date_3 => l_array_reference_date_3(Idx)
16159 ,p_reference_date_4 => l_array_reference_date_4(Idx)
16160 ,p_event_created_by => l_array_event_created_by(Idx)
16161 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
16162 --
16163 END IF;
16164
16165
16166
16167 --
16168 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
16169
16170 l_acct_reversal_source := SUBSTR(NULL, 1,30);
16171
16172 IF l_continue_with_lines THEN
16173 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
16174 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
16175
16176 xla_accounting_err_pkg.build_message
16177 (p_appli_s_name => 'XLA'
16178 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
16179 ,p_token_1 => 'LINE_NUMBER'
16180 ,p_value_1 => l_array_extract_line_num(Idx)
16181 ,p_token_2 => 'PRODUCT_NAME'
16182 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
16183 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
16184 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
16185 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
16186
16187 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
16188 --
16189 -- following sets the accounting attributes needed to reverse
16190 -- accounting for a distributeion
16191 --
16192
16193 --
16194 -- 5217187
16195 --
16196 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
16197 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
16198 g_array_event(l_event_id).array_value_num('header_index'));
16199 --
16200 --
16201
16202 -- No reversal code generated
16203
16204 xla_ae_lines_pkg.SetAcctReversalAttrs
16205 (p_event_id => l_event_id
16206 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
16207 ,p_calculate_acctd_flag => l_calculate_acctd_flag
16208 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
16209 END IF;
16210
16211 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
16212 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
16213
16214 --
16215 AcctLineType_22 (
16216 p_application_id => p_application_id
16217 ,p_event_id => l_event_id
16218 ,p_calculate_acctd_flag => l_calculate_acctd_flag
16219 ,p_calculate_g_l_flag => l_calculate_g_l_flag
16220 ,p_actual_flag => l_actual_flag
16221 ,p_balance_type_code => l_balance_type_code
16222 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
16223
16224 , p_source_8 => l_array_source_8(Idx)
16225 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
16226 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
16227 , p_source_11 => l_array_source_11(Idx)
16228 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
16229 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
16230 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
16231 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
16232 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
16233 , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
16234 , p_source_34 => g_array_event(l_event_id).array_value_char('source_34')
16235 , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
16236 , p_source_36 => g_array_event(l_event_id).array_value_char('source_36')
16237 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
16238 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
16239 , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
16240 , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
16241 );
16242 If(l_balance_type_code = 'A') THEN
16243 l_actual_gain_loss_ref := l_gain_or_loss_ref;
16244 END IF;
16245
16246 --
16247
16248 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
16249 -- or secondary ledger that has different currency with primary
16250 -- or alc that is calculated by sla
16251 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
16252 (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'))
16253
16254 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
16255 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
16256 AND (l_actual_flag = 'A')) THEN
16257 XLA_AE_LINES_PKG.CreateGainOrLossLines(
16258 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
16259 ,p_application_id => p_application_id
16260 ,p_amb_context_code => 'DEFAULT'
16261 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
16262 ,p_event_class_code => C_EVENT_CLASS_CODE
16263 ,p_event_type_code => C_EVENT_TYPE_CODE
16264
16265 ,p_gain_ccid => -1
16266 ,p_loss_ccid => -1
16267
16268 ,p_actual_flag => l_actual_flag
16269 ,p_enc_flag => null
16270 ,p_actual_g_l_ref => l_actual_gain_loss_ref
16271 ,p_enc_g_l_ref => null
16272 );
16273 END IF;
16274 END IF;
16275 END IF;
16276
16277 ELSE
16278 --
16279 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
16280 --
16281 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
16282 trace
16283 (p_msg => 'Trancaction revesal option is Y'
16284 ,p_level => C_LEVEL_STATEMENT
16285 ,p_module => l_log_module);
16286 END IF;
16287 END IF;
16288
16289 END LOOP;
16290 l_result := XLA_AE_LINES_PKG.InsertLines ;
16291 end loop;
16292 close line_cur;
16293
16294
16295 --
16296 -- insert headers into xla_ae_headers_gt table
16297 --
16298 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
16299
16300 -- insert into errors table here.
16301
16302 END LOOP;
16303
16304 --
16305 -- 4865292
16306 --
16307 -- Compare g_hdr_extract_count with event count in
16308 -- CreateHeadersAndLines.
16309 --
16310 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
16311
16312 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
16313 trace (p_msg => '# rows extracted from header extract objects '
16314 || ' (running total): '
16315 || g_hdr_extract_count
16316 ,p_level => C_LEVEL_STATEMENT
16317 ,p_module => l_log_module);
16318 END IF;
16319
16320 CLOSE header_cur;
16321 --
16322
16323 --
16324 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16325 trace
16326 (p_msg => 'END of EventClass_28'
16327 ,p_level => C_LEVEL_PROCEDURE
16328 ,p_module => l_log_module);
16329 END IF;
16330 --
16331 RETURN l_result;
16332 EXCEPTION
16333 WHEN xla_exceptions_pkg.application_exception THEN
16334
16335 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
16336
16337
16338 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
16339
16340 RAISE;
16341
16342 WHEN NO_DATA_FOUND THEN
16343
16344 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
16345 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
16346
16347 FOR header_record IN header_cur
16348 LOOP
16349 l_array_header_events(header_record.event_id) := header_record.event_id;
16350 END LOOP;
16351
16352 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
16353 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
16354
16355 fnd_file.put_line(fnd_file.LOG, ' ');
16356 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
16357 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
16358 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
16359
16360 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
16361 LOOP
16362 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
16363 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
16364 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
16365 END IF;
16366 END LOOP;
16367
16368 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
16369 fnd_file.put_line(fnd_file.LOG, ' ');
16370
16371
16372 xla_exceptions_pkg.raise_message
16373 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventClass_28');
16374
16375
16376 WHEN OTHERS THEN
16377 xla_exceptions_pkg.raise_message
16378 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventClass_28');
16379 END EventClass_28;
16380 --
16381
16382 ---------------------------------------
16383 --
16384 -- PRIVATE PROCEDURE
16385 -- insert_sources_29
16386 --
16387 ----------------------------------------
16388 --
16389 PROCEDURE insert_sources_29(
16390 p_target_ledger_id IN NUMBER
16391 , p_language IN VARCHAR2
16392 , p_sla_ledger_id IN NUMBER
16393 , p_pad_start_date IN DATE
16394 , p_pad_end_date IN DATE
16395 )
16396 IS
16397
16398 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'EXP_REQ_RCPT_NO_TP';
16399 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_TO_EXP';
16400 p_apps_owner VARCHAR2(30);
16401 l_log_module VARCHAR2(240);
16402 BEGIN
16403 IF g_log_enabled THEN
16404 l_log_module := C_DEFAULT_MODULE||'.insert_sources_29';
16405 END IF;
16406 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16407
16408 trace
16409 (p_msg => 'BEGIN of insert_sources_29'
16410 ,p_level => C_LEVEL_PROCEDURE
16411 ,p_module => l_log_module);
16412
16413 END IF;
16414
16415 -- select APPS owner
16416 SELECT oracle_username
16417 INTO p_apps_owner
16418 FROM fnd_oracle_userid
16419 WHERE read_only_flag = 'U'
16420 ;
16421
16422 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
16423 trace
16424 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
16425 ' - p_language = '||p_language||
16426 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
16427 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
16428 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
16429 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
16430 ,p_level => C_LEVEL_STATEMENT
16431 ,p_module => l_log_module);
16432 END IF;
16433
16434
16435 --
16436 INSERT INTO xla_diag_sources --hdr1
16437 (
16438 event_id
16439 , ledger_id
16440 , sla_ledger_id
16441 , description_language
16442 , object_name
16443 , object_type_code
16444 , line_number
16445 , source_application_id
16446 , source_type_code
16447 , source_code
16448 , source_value
16449 , source_meaning
16450 , created_by
16451 , creation_date
16452 , last_update_date
16453 , last_updated_by
16454 , last_update_login
16455 , program_update_date
16456 , program_application_id
16457 , program_id
16458 , request_id
16459 )
16460 SELECT
16461 event_id
16462 , p_target_ledger_id
16463 , p_sla_ledger_id
16464 , p_language
16465 , object_name
16466 , object_type_code
16467 , line_number
16468 , source_application_id
16469 , source_type_code
16470 , source_code
16471 , SUBSTR(source_value ,1,1996)
16472 , SUBSTR(source_meaning,1,200)
16473 , xla_environment_pkg.g_Usr_Id
16474 , TRUNC(SYSDATE)
16475 , TRUNC(SYSDATE)
16476 , xla_environment_pkg.g_Usr_Id
16477 , xla_environment_pkg.g_Login_Id
16478 , TRUNC(SYSDATE)
16479 , xla_environment_pkg.g_Prog_Appl_Id
16480 , xla_environment_pkg.g_Prog_Id
16481 , xla_environment_pkg.g_Req_Id
16482 FROM (
16483 SELECT xet.event_id event_id
16484 , 0 line_number
16485 , CASE r
16486 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
16487 WHEN 2 THEN 'CST_XLA_INV_SYSTEM_ITEMS_REF_V'
16488 WHEN 3 THEN 'CST_XLA_INV_REF_V'
16489 WHEN 4 THEN 'CST_XLA_INV_REF_V'
16490 WHEN 5 THEN 'CST_XLA_INV_TXN_TYPES_REF_V'
16491 WHEN 6 THEN 'CST_XLA_INV_HEADERS_V'
16492 WHEN 7 THEN 'CST_XLA_INV_HEADERS_V'
16493
16494 ELSE null
16495 END object_name
16496 , CASE r
16497 WHEN 1 THEN 'HEADER'
16498 WHEN 2 THEN 'HEADER'
16499 WHEN 3 THEN 'HEADER'
16500 WHEN 4 THEN 'HEADER'
16501 WHEN 5 THEN 'HEADER'
16502 WHEN 6 THEN 'HEADER'
16503 WHEN 7 THEN 'HEADER'
16504
16505 ELSE null
16506 END object_type_code
16507 , CASE r
16508 WHEN 1 THEN '707'
16509 WHEN 2 THEN '707'
16510 WHEN 3 THEN '707'
16511 WHEN 4 THEN '707'
16512 WHEN 5 THEN '707'
16513 WHEN 6 THEN '707'
16514 WHEN 7 THEN '707'
16515
16516 ELSE null
16517 END source_application_id
16518 , 'S' source_type_code
16519 , CASE r
16520 WHEN 1 THEN 'TRANSACTION_ID'
16521 WHEN 2 THEN 'ITEM_CONCATENATED_SEGMENTS'
16522 WHEN 3 THEN 'TRANSACTION_QUANTITY'
16523 WHEN 4 THEN 'TRANSACTION_UOM'
16524 WHEN 5 THEN 'INV_TXN_TYPE_DESCRIPTION'
16525 WHEN 6 THEN 'DISTRIBUTION_TYPE'
16526 WHEN 7 THEN 'TRANSFER_TO_GL_INDICATOR'
16527
16528 ELSE null
16529 END source_code
16530 , CASE r
16531 WHEN 1 THEN TO_CHAR(h1.TRANSACTION_ID)
16532 WHEN 2 THEN TO_CHAR(h4.ITEM_CONCATENATED_SEGMENTS)
16533 WHEN 3 THEN TO_CHAR(h3.TRANSACTION_QUANTITY)
16534 WHEN 4 THEN TO_CHAR(h3.TRANSACTION_UOM)
16535 WHEN 5 THEN TO_CHAR(h5.INV_TXN_TYPE_DESCRIPTION)
16536 WHEN 6 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
16537 WHEN 7 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
16538
16539 ELSE null
16540 END source_value
16541 , CASE r
16542 WHEN 6 THEN fvl9.meaning
16543 WHEN 7 THEN fvl42.meaning
16544
16545 ELSE null
16546 END source_meaning
16547 FROM xla_events_gt xet
16548 , CST_XLA_INV_HEADERS_V h1
16549 , CST_XLA_INV_REF_V h3
16550 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h4
16551 , CST_XLA_INV_TXN_TYPES_REF_V h5
16552 , fnd_lookup_values fvl9
16553 , fnd_lookup_values fvl42
16554 ,(select rownum r from all_objects where rownum <= 7 and owner = p_apps_owner)
16555 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
16556 AND xet.event_type_code = C_EVENT_TYPE_CODE
16557 AND h1.event_id = xet.event_id
16558 AND h3.ref_transaction_id = h1.transaction_id AND h4.inventory_item_id = h1.inventory_item_id and h4.organization_id = h1.organization_id AND h5.inv_transaction_type_id = h1.transaction_type_id AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
16559 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
16560 AND fvl9.view_application_id(+) = 700
16561 AND fvl9.language(+) = USERENV('LANG')
16562 AND fvl42.lookup_type(+) = 'YES_NO'
16563 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
16564 AND fvl42.view_application_id(+) = 0
16565 AND fvl42.language(+) = USERENV('LANG')
16566
16567 )
16568 ;
16569 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
16570
16571 trace
16572 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
16573 ,p_level => C_LEVEL_STATEMENT
16574 ,p_module => l_log_module);
16575
16576 END IF;
16577 --
16578
16579
16580
16581 --
16582 INSERT INTO xla_diag_sources --line1
16583 (
16584 event_id
16585 , ledger_id
16586 , sla_ledger_id
16587 , description_language
16588 , object_name
16589 , object_type_code
16590 , line_number
16591 , source_application_id
16592 , source_type_code
16593 , source_code
16594 , source_value
16595 , source_meaning
16596 , created_by
16597 , creation_date
16598 , last_update_date
16599 , last_updated_by
16600 , last_update_login
16601 , program_update_date
16602 , program_application_id
16603 , program_id
16604 , request_id
16605 )
16606 SELECT event_id
16607 , p_target_ledger_id
16608 , p_sla_ledger_id
16609 , p_language
16610 , object_name
16611 , object_type_code
16612 , line_number
16613 , source_application_id
16614 , source_type_code
16615 , source_code
16616 , SUBSTR(source_value,1,1996)
16617 , SUBSTR(source_meaning,1,200)
16618 , xla_environment_pkg.g_Usr_Id
16619 , TRUNC(SYSDATE)
16620 , TRUNC(SYSDATE)
16621 , xla_environment_pkg.g_Usr_Id
16622 , xla_environment_pkg.g_Login_Id
16623 , TRUNC(SYSDATE)
16624 , xla_environment_pkg.g_Prog_Appl_Id
16625 , xla_environment_pkg.g_Prog_Id
16626 , xla_environment_pkg.g_Req_Id
16627 FROM (
16628 SELECT xet.event_id event_id
16629 , l2.line_number line_number
16630 , CASE r
16631 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
16632 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
16633 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
16634 WHEN 4 THEN 'CST_XLA_INV_LINES_V'
16635 WHEN 5 THEN 'CST_XLA_INV_LINES_V'
16636 WHEN 6 THEN 'CST_XLA_INV_LINES_V'
16637 WHEN 7 THEN 'CST_XLA_INV_LINES_V'
16638 WHEN 8 THEN 'CST_XLA_INV_LINES_V'
16639 WHEN 9 THEN 'CST_XLA_INV_LINES_V'
16640
16641 ELSE null
16642 END object_name
16643 , CASE r
16644 WHEN 1 THEN 'LINE'
16645 WHEN 2 THEN 'LINE'
16646 WHEN 3 THEN 'LINE'
16647 WHEN 4 THEN 'LINE'
16648 WHEN 5 THEN 'LINE'
16649 WHEN 6 THEN 'LINE'
16650 WHEN 7 THEN 'LINE'
16651 WHEN 8 THEN 'LINE'
16652 WHEN 9 THEN 'LINE'
16653
16654 ELSE null
16655 END object_type_code
16656 , CASE r
16657 WHEN 1 THEN '707'
16658 WHEN 2 THEN '707'
16659 WHEN 3 THEN '707'
16660 WHEN 4 THEN '707'
16661 WHEN 5 THEN '707'
16662 WHEN 6 THEN '707'
16663 WHEN 7 THEN '707'
16664 WHEN 8 THEN '707'
16665 WHEN 9 THEN '707'
16666
16667 ELSE null
16668 END source_application_id
16669 , 'S' source_type_code
16670 , CASE r
16671 WHEN 1 THEN 'CODE_COMBINATION_ID'
16672 WHEN 2 THEN 'ACCOUNTING_LINE_TYPE_CODE'
16673 WHEN 3 THEN 'DISTRIBUTION_IDENTIFIER'
16674 WHEN 4 THEN 'ENTERED_AMOUNT'
16675 WHEN 5 THEN 'CURRENCY_CODE'
16676 WHEN 6 THEN 'CURRENCY_CONVERSION_DATE'
16677 WHEN 7 THEN 'CURRENCY_CONVERSION_RATE'
16678 WHEN 8 THEN 'CURRENCY_CONVERSION_TYPE'
16679 WHEN 9 THEN 'ACCOUNTED_AMOUNT'
16680
16681 ELSE null
16682 END source_code
16683 , CASE r
16684 WHEN 1 THEN TO_CHAR(l2.CODE_COMBINATION_ID)
16685 WHEN 2 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
16686 WHEN 3 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
16687 WHEN 4 THEN TO_CHAR(l2.ENTERED_AMOUNT)
16688 WHEN 5 THEN TO_CHAR(l2.CURRENCY_CODE)
16689 WHEN 6 THEN TO_CHAR(l2.CURRENCY_CONVERSION_DATE)
16690 WHEN 7 THEN TO_CHAR(l2.CURRENCY_CONVERSION_RATE)
16691 WHEN 8 THEN TO_CHAR(l2.CURRENCY_CONVERSION_TYPE)
16692 WHEN 9 THEN TO_CHAR(l2.ACCOUNTED_AMOUNT)
16693
16694 ELSE null
16695 END source_value
16696 , null source_meaning
16697 FROM xla_events_gt xet
16698 , CST_XLA_INV_LINES_V l2
16699 ,(select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
16700 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
16701 AND xet.event_type_code = C_EVENT_TYPE_CODE
16702 AND l2.event_id = xet.event_id
16703
16704 )
16705 ;
16706 --
16707 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
16708
16709 trace
16710 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
16711 ,p_level => C_LEVEL_STATEMENT
16712 ,p_module => l_log_module);
16713
16714 END IF;
16715
16716
16717 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16718 trace
16719 (p_msg => 'END of insert_sources_29'
16720 ,p_level => C_LEVEL_PROCEDURE
16721 ,p_module => l_log_module);
16722 END IF;
16723 EXCEPTION
16724 WHEN xla_exceptions_pkg.application_exception THEN
16725 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
16726 trace
16727 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
16728 ,p_level => C_LEVEL_EXCEPTION
16729 ,p_module => l_log_module);
16730 END IF;
16731 RAISE;
16732 WHEN OTHERS THEN
16733 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
16734 trace
16735 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
16736 ,p_level => C_LEVEL_EXCEPTION
16737 ,p_module => l_log_module);
16738 END IF;
16739 xla_exceptions_pkg.raise_message
16740 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_29');
16741 END insert_sources_29;
16742 --
16743
16744 ---------------------------------------
16745 --
16746 -- PRIVATE FUNCTION
16747 -- EventType_29
16748 --
16749 ----------------------------------------
16750 --
16751 FUNCTION EventType_29
16752 (p_application_id IN NUMBER
16753 ,p_base_ledger_id IN NUMBER
16754 ,p_target_ledger_id IN NUMBER
16755 ,p_language IN VARCHAR2
16756 ,p_currency_code IN VARCHAR2
16757 ,p_sla_ledger_id IN NUMBER
16758 ,p_pad_start_date IN DATE
16759 ,p_pad_end_date IN DATE
16760 ,p_primary_ledger_id IN NUMBER)
16761 RETURN BOOLEAN IS
16762 --
16763 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'EXP_REQ_RCPT_NO_TP';
16764 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_TO_EXP';
16765
16766 l_calculate_acctd_flag VARCHAR2(1) :='N';
16767 l_calculate_g_l_flag VARCHAR2(1) :='N';
16768 --
16769 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
16770 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
16771 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
16772 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
16773 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
16774 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
16775 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
16776 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
16777 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
16778 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
16779 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
16780 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
16781 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
16782 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
16783 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
16784 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
16785 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
16786 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
16787 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
16788 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
16789 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
16790 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
16791 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
16792 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
16793 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
16794 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
16795
16796 l_event_id NUMBER;
16797 l_previous_event_id NUMBER;
16798 l_first_event_id NUMBER;
16799 l_last_event_id NUMBER;
16800
16801 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
16802 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16803 --
16804 --
16805 l_result BOOLEAN := TRUE;
16806 l_rows NUMBER := 1000;
16807 l_event_type_name VARCHAR2(80) := 'Internal Order Receipt into Expense, no Transfer Pricing';
16808 l_event_class_name VARCHAR2(80) := 'Internal Order to Expense';
16809 l_description VARCHAR2(4000);
16810 l_transaction_reversal NUMBER;
16811 l_ae_header_id NUMBER;
16812 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
16813 l_log_module VARCHAR2(240);
16814 --
16815 l_acct_reversal_source VARCHAR2(30);
16816 l_trx_reversal_source VARCHAR2(30);
16817
16818 l_continue_with_lines BOOLEAN := TRUE;
16819 --
16820 l_acc_rev_gl_date_source DATE; -- 4262811
16821 --
16822 type t_array_event_id is table of number index by binary_integer;
16823
16824 l_rec_array_event t_rec_array_event;
16825 l_null_rec_array_event t_rec_array_event;
16826 l_array_ae_header_id xla_number_array_type;
16827 l_actual_flag VARCHAR2(1) := NULL;
16828 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
16829 l_balance_type_code VARCHAR2(1) :=NULL;
16830 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
16831
16832 --
16833 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
16834 --
16835
16836 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSACTION_ID%TYPE INDEX BY BINARY_INTEGER;
16837 TYPE t_array_source_2 IS TABLE OF CST_XLA_INV_SYSTEM_ITEMS_REF_V.ITEM_CONCATENATED_SEGMENTS%TYPE INDEX BY BINARY_INTEGER;
16838 TYPE t_array_source_3 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_QUANTITY%TYPE INDEX BY BINARY_INTEGER;
16839 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_UOM%TYPE INDEX BY BINARY_INTEGER;
16840 TYPE t_array_source_5 IS TABLE OF CST_XLA_INV_TXN_TYPES_REF_V.INV_TXN_TYPE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
16841 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
16842 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
16843
16844 TYPE t_array_source_6 IS TABLE OF CST_XLA_INV_LINES_V.CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
16845 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
16846 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
16847 TYPE t_array_source_10 IS TABLE OF CST_XLA_INV_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
16848 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
16849 TYPE t_array_source_12 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
16850 TYPE t_array_source_13 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
16851 TYPE t_array_source_14 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
16852 TYPE t_array_source_15 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
16853
16854 l_array_source_1 t_array_source_1;
16855 l_array_source_2 t_array_source_2;
16856 l_array_source_3 t_array_source_3;
16857 l_array_source_4 t_array_source_4;
16858 l_array_source_5 t_array_source_5;
16859 l_array_source_9 t_array_source_9;
16860 l_array_source_9_meaning t_array_lookup_meaning;
16861 l_array_source_42 t_array_source_42;
16862 l_array_source_42_meaning t_array_lookup_meaning;
16863
16864 l_array_source_6 t_array_source_6;
16865 l_array_source_7 t_array_source_7;
16866 l_array_source_8 t_array_source_8;
16867 l_array_source_10 t_array_source_10;
16868 l_array_source_11 t_array_source_11;
16869 l_array_source_12 t_array_source_12;
16870 l_array_source_13 t_array_source_13;
16871 l_array_source_14 t_array_source_14;
16872 l_array_source_15 t_array_source_15;
16873
16874 --
16875 CURSOR header_cur
16876 IS
16877 SELECT /*+ leading(xet) cardinality(xet,1) */
16878 -- Event Type Code: EXP_REQ_RCPT_NO_TP
16879 -- Event Class Code: INT_ORDER_TO_EXP
16880 xet.entity_id
16881 , xet.legal_entity_id
16882 , xet.entity_code
16883 , xet.transaction_number
16884 , xet.event_id
16885 , xet.event_class_code
16886 , xet.event_type_code
16887 , xet.event_number
16888 , xet.event_date
16889 , xet.transaction_date
16890 , xet.reference_num_1
16891 , xet.reference_num_2
16892 , xet.reference_num_3
16893 , xet.reference_num_4
16894 , xet.reference_char_1
16895 , xet.reference_char_2
16896 , xet.reference_char_3
16897 , xet.reference_char_4
16898 , xet.reference_date_1
16899 , xet.reference_date_2
16900 , xet.reference_date_3
16901 , xet.reference_date_4
16902 , xet.event_created_by
16903 , xet.budgetary_control_flag
16904 , h1.TRANSACTION_ID source_1
16905 , h4.ITEM_CONCATENATED_SEGMENTS source_2
16906 , h3.TRANSACTION_QUANTITY source_3
16907 , h3.TRANSACTION_UOM source_4
16908 , h5.INV_TXN_TYPE_DESCRIPTION source_5
16909 , h1.DISTRIBUTION_TYPE source_9
16910 , fvl9.meaning source_9_meaning
16911 , h1.TRANSFER_TO_GL_INDICATOR source_42
16912 , fvl42.meaning source_42_meaning
16913 FROM xla_events_gt xet
16914 , CST_XLA_INV_HEADERS_V h1
16915 , CST_XLA_INV_REF_V h3
16916 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h4
16917 , CST_XLA_INV_TXN_TYPES_REF_V h5
16918 , fnd_lookup_values fvl9
16919 , fnd_lookup_values fvl42
16920 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
16921 and xet.event_type_code = C_EVENT_TYPE_CODE
16922 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
16923 AND h3.ref_transaction_id = h1.transaction_id AND h4.INVENTORY_ITEM_ID = h1.INVENTORY_ITEM_ID AND h4.ORGANIZATION_ID = h1.ORGANIZATION_ID AND h5.INV_TRANSACTION_TYPE_ID = h1.TRANSACTION_TYPE_ID AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
16924 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
16925 AND fvl9.view_application_id(+) = 700
16926 AND fvl9.language(+) = USERENV('LANG')
16927 AND fvl42.lookup_type(+) = 'YES_NO'
16928 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
16929 AND fvl42.view_application_id(+) = 0
16930 AND fvl42.language(+) = USERENV('LANG')
16931
16932 ORDER BY event_id
16933 ;
16934
16935
16936 --
16937 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
16938 IS
16939 SELECT /*+ leading(xet) cardinality(xet,1) */
16940 -- Event Type Code: EXP_REQ_RCPT_NO_TP
16941 -- Event Class Code: INT_ORDER_TO_EXP
16942 xet.entity_id
16943 ,xet.legal_entity_id
16944 ,xet.entity_code
16945 ,xet.transaction_number
16946 ,xet.event_id
16947 ,xet.event_class_code
16948 ,xet.event_type_code
16949 ,xet.event_number
16950 ,xet.event_date
16951 ,xet.transaction_date
16952 ,xet.reference_num_1
16953 ,xet.reference_num_2
16954 ,xet.reference_num_3
16955 ,xet.reference_num_4
16956 ,xet.reference_char_1
16957 ,xet.reference_char_2
16958 ,xet.reference_char_3
16959 ,xet.reference_char_4
16960 ,xet.reference_date_1
16961 ,xet.reference_date_2
16962 ,xet.reference_date_3
16963 ,xet.reference_date_4
16964 ,xet.event_created_by
16965 ,xet.budgetary_control_flag , l2.LINE_NUMBER
16966 , l2.CODE_COMBINATION_ID source_6
16967 , l2.ACCOUNTING_LINE_TYPE_CODE source_7
16968 , l2.DISTRIBUTION_IDENTIFIER source_8
16969 , l2.ENTERED_AMOUNT source_10
16970 , l2.CURRENCY_CODE source_11
16971 , l2.CURRENCY_CONVERSION_DATE source_12
16972 , l2.CURRENCY_CONVERSION_RATE source_13
16973 , l2.CURRENCY_CONVERSION_TYPE source_14
16974 , l2.ACCOUNTED_AMOUNT source_15
16975 FROM xla_events_gt xet
16976 , CST_XLA_INV_LINES_V l2
16977 WHERE xet.event_id between x_first_event_id and x_last_event_id
16978 and xet.event_date between p_pad_start_date and p_pad_end_date
16979 and xet.event_type_code = C_EVENT_TYPE_CODE
16980 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
16981 ;
16982
16983 --
16984 BEGIN
16985 IF g_log_enabled THEN
16986 l_log_module := C_DEFAULT_MODULE||'.EventType_29';
16987 END IF;
16988 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16989 trace
16990 (p_msg => 'BEGIN of EventType_29'
16991 ,p_level => C_LEVEL_PROCEDURE
16992 ,p_module => l_log_module);
16993 END IF;
16994
16995 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
16996 trace
16997 (p_msg => 'p_application_id = '||p_application_id||
16998 ' - p_base_ledger_id = '||p_base_ledger_id||
16999 ' - p_target_ledger_id = '||p_target_ledger_id||
17000 ' - p_language = '||p_language||
17001 ' - p_currency_code = '||p_currency_code||
17002 ' - p_sla_ledger_id = '||p_sla_ledger_id
17003 ,p_level => C_LEVEL_STATEMENT
17004 ,p_module => l_log_module);
17005 END IF;
17006 --
17007 -- initialze arrays
17008 --
17009 g_array_event.DELETE;
17010 l_rec_array_event := l_null_rec_array_event;
17011 --
17012 --------------------------------------
17013 -- 4262811 Initialze MPA Line Number
17014 --------------------------------------
17015 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
17016
17017 --
17018
17019 --
17020 OPEN header_cur;
17021 --
17022 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
17023 trace
17024 (p_msg => 'SQL - FETCH header_cur'
17025 ,p_level => C_LEVEL_STATEMENT
17026 ,p_module => l_log_module);
17027 END IF;
17028 --
17029 LOOP
17030 FETCH header_cur BULK COLLECT INTO
17031 l_array_entity_id
17032 , l_array_legal_entity_id
17033 , l_array_entity_code
17034 , l_array_transaction_num
17035 , l_array_event_id
17036 , l_array_class_code
17037 , l_array_event_type
17038 , l_array_event_number
17039 , l_array_event_date
17040 , l_array_transaction_date
17041 , l_array_reference_num_1
17042 , l_array_reference_num_2
17043 , l_array_reference_num_3
17044 , l_array_reference_num_4
17045 , l_array_reference_char_1
17046 , l_array_reference_char_2
17047 , l_array_reference_char_3
17048 , l_array_reference_char_4
17049 , l_array_reference_date_1
17050 , l_array_reference_date_2
17051 , l_array_reference_date_3
17052 , l_array_reference_date_4
17053 , l_array_event_created_by
17054 , l_array_budgetary_control_flag
17055 , l_array_source_1
17056 , l_array_source_2
17057 , l_array_source_3
17058 , l_array_source_4
17059 , l_array_source_5
17060 , l_array_source_9
17061 , l_array_source_9_meaning
17062 , l_array_source_42
17063 , l_array_source_42_meaning
17064 LIMIT l_rows;
17065 --
17066 IF (C_LEVEL_EVENT >= g_log_level) THEN
17067 trace
17068 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
17069 ,p_level => C_LEVEL_EVENT
17070 ,p_module => l_log_module);
17071 END IF;
17072 --
17073 EXIT WHEN l_array_entity_id.COUNT = 0;
17074
17075 -- initialize arrays
17076 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
17077 XLA_AE_LINES_PKG.g_rec_lines := NULL;
17078
17079 --
17080 -- Bug 4458708
17081 --
17082 XLA_AE_LINES_PKG.g_LineNumber := 0;
17083
17084
17085 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
17086 g_last_hdr_idx := l_array_event_id.LAST;
17087 --
17088 -- loop for the headers. Each iteration is for each header extract row
17089 -- fetched in header cursor
17090 --
17091 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
17092
17093 --
17094 -- set event info as cache for other routines to refer event attributes
17095 --
17096 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
17097 (p_application_id => p_application_id
17098 ,p_primary_ledger_id => p_primary_ledger_id
17099 ,p_base_ledger_id => p_base_ledger_id
17100 ,p_target_ledger_id => p_target_ledger_id
17101 ,p_entity_id => l_array_entity_id(hdr_idx)
17102 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
17103 ,p_entity_code => l_array_entity_code(hdr_idx)
17104 ,p_transaction_num => l_array_transaction_num(hdr_idx)
17105 ,p_event_id => l_array_event_id(hdr_idx)
17106 ,p_event_class_code => l_array_class_code(hdr_idx)
17107 ,p_event_type_code => l_array_event_type(hdr_idx)
17108 ,p_event_number => l_array_event_number(hdr_idx)
17109 ,p_event_date => l_array_event_date(hdr_idx)
17110 ,p_transaction_date => l_array_transaction_date(hdr_idx)
17111 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
17112 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
17113 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
17114 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
17115 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
17116 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
17117 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
17118 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
17119 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
17120 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
17121 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
17122 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
17123 ,p_event_created_by => l_array_event_created_by(hdr_idx)
17124 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
17125
17126 --
17127 -- set the status of entry to C_VALID (0)
17128 --
17129 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
17130
17131 --
17132 -- initialize a row for ae header
17133 --
17134 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
17135
17136 l_event_id := l_array_event_id(hdr_idx);
17137
17138 --
17139 -- storing the hdr_idx for event. May be used by line cursor.
17140 --
17141 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
17142
17143 --
17144 -- store sources from header extract. This can be improved to
17145 -- store only those sources from header extract that may be used in lines
17146 --
17147
17148 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
17149 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
17150 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
17151 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
17152 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
17153 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
17154 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
17155 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
17156 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
17157
17158 --
17159 -- initilaize the status of ae headers for diffrent balance types
17160 -- the status is initialised to C_NOT_CREATED (2)
17161 --
17162 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
17163 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
17164 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
17165
17166 --
17167 -- call api to validate and store accounting attributes for header
17168 --
17169
17170 ------------------------------------------------------------
17171 -- Accrual Reversal : to get date for Standard Source (NONE)
17172 ------------------------------------------------------------
17173 l_acc_rev_gl_date_source := NULL;
17174
17175 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
17176 l_rec_acct_attrs.array_date_value(1) :=
17177 xla_ae_sources_pkg.GetSystemSourceDate(
17178 p_source_code => 'XLA_REFERENCE_DATE_1'
17179 , p_source_type_code => 'Y'
17180 , p_source_application_id => 602
17181 );
17182 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_TRANSFER_FLAG';
17183 l_rec_acct_attrs.array_char_value(2) := g_array_event(l_event_id).array_value_char('source_42');
17184
17185
17186 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
17187
17188 XLA_AE_HEADER_PKG.SetJeCategoryName;
17189
17190 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
17191 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
17192 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
17193 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
17194 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
17195
17196
17197 --
17198 xla_ae_header_pkg.SetHdrDescription(
17199 p_description => Description_1 (
17200 p_application_id => p_application_id
17201 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
17202 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
17203 , p_source_3 => g_array_event(l_event_id).array_value_num('source_3')
17204 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
17205 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
17206 )
17207 );
17208 --
17209
17210 -- No header level analytical criteria
17211
17212 --
17213 --accounting attribute enhancement, bug 3612931
17214 --
17215 l_trx_reversal_source := SUBSTR(NULL, 1,30);
17216
17217 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
17218 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
17219
17220 xla_accounting_err_pkg.build_message
17221 (p_appli_s_name => 'XLA'
17222 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
17223 ,p_token_1 => 'ACCT_ATTR_NAME'
17224 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
17225 ,p_token_2 => 'PRODUCT_NAME'
17226 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
17227 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
17228 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
17229 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
17230
17231 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
17232 --
17233 -- following sets the accounting attributes needed to reverse
17234 -- accounting for a distributeion
17235 --
17236 xla_ae_lines_pkg.SetTrxReversalAttrs
17237 (p_event_id => l_event_id
17238 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
17239 ,p_trx_reversal_source => l_trx_reversal_source);
17240
17241 END IF;
17242
17243
17244 ----------------------------------------------------------------
17245 -- 4262811 - update the header statuses to invalid in need be
17246 ----------------------------------------------------------------
17247 --
17248 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
17249
17250
17251 -----------------------------------------------
17252 -- No accrual reversal for the event class/type
17253 -----------------------------------------------
17254 ----------------------------------------------------------------
17255
17256 --
17257 -- this ends the header loop iteration for one bulk fetch
17258 --
17259 END LOOP;
17260
17261 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
17262 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
17263
17264 --
17265 -- insert dummy rows into lines gt table that were created due to
17266 -- transaction reversals
17267 --
17268 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
17269 l_result := XLA_AE_LINES_PKG.InsertLines;
17270 END IF;
17271
17272 --
17273 -- reset the temp_line_num for each set of events fetched from header
17274 -- cursor rather than doing it for each new event in line cursor
17275 -- Bug 3939231
17276 --
17277 xla_ae_lines_pkg.g_temp_line_num := 0;
17278
17279
17280
17281 --
17282 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
17283 --
17284 --
17285 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
17286
17287 trace
17288 (p_msg => 'SQL - FETCH line_cur'
17289 ,p_level => C_LEVEL_STATEMENT
17290 ,p_module => l_log_module);
17291
17292 END IF;
17293 --
17294 --
17295 LOOP
17296 --
17297 FETCH line_cur BULK COLLECT INTO
17298 l_array_entity_id
17299 , l_array_legal_entity_id
17300 , l_array_entity_code
17301 , l_array_transaction_num
17302 , l_array_event_id
17303 , l_array_class_code
17304 , l_array_event_type
17305 , l_array_event_number
17306 , l_array_event_date
17307 , l_array_transaction_date
17308 , l_array_reference_num_1
17309 , l_array_reference_num_2
17310 , l_array_reference_num_3
17311 , l_array_reference_num_4
17312 , l_array_reference_char_1
17313 , l_array_reference_char_2
17314 , l_array_reference_char_3
17315 , l_array_reference_char_4
17316 , l_array_reference_date_1
17317 , l_array_reference_date_2
17318 , l_array_reference_date_3
17319 , l_array_reference_date_4
17320 , l_array_event_created_by
17321 , l_array_budgetary_control_flag
17322 , l_array_extract_line_num
17323 , l_array_source_6
17324 , l_array_source_7
17325 , l_array_source_8
17326 , l_array_source_10
17327 , l_array_source_11
17328 , l_array_source_12
17329 , l_array_source_13
17330 , l_array_source_14
17331 , l_array_source_15
17332 LIMIT l_rows;
17333
17334 --
17335 IF (C_LEVEL_EVENT >= g_log_level) THEN
17336 trace
17337 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
17338 ,p_level => C_LEVEL_EVENT
17339 ,p_module => l_log_module);
17340 END IF;
17341 --
17342 EXIT WHEN l_array_entity_id.count = 0;
17343
17344 XLA_AE_LINES_PKG.g_rec_lines := null;
17345
17346 --
17347 -- Bug 4458708
17348 --
17349 XLA_AE_LINES_PKG.g_LineNumber := 0;
17350 --
17351 --
17352
17353 FOR Idx IN 1..l_array_event_id.count LOOP
17354 --
17355 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
17356 --
17357 l_event_id := l_array_event_id(idx); -- 5648433
17358
17359 --
17360 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
17361 --
17362
17363 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
17364 (g_array_event(l_event_id).array_value_num('header_index'))
17365 ,'N'
17366 ) <> 'Y'
17367 THEN
17368 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
17369 trace
17370 (p_msg => 'Trancaction revesal option is not Y '
17371 ,p_level => C_LEVEL_STATEMENT
17372 ,p_module => l_log_module);
17373 END IF;
17374
17375 --
17376 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
17377 --
17378 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
17379 --
17380 -- set event info as cache for other routines to refer event attributes
17381 --
17382
17383 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
17384 l_previous_event_id := l_event_id;
17385
17386 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
17387 (p_application_id => p_application_id
17388 ,p_primary_ledger_id => p_primary_ledger_id
17389 ,p_base_ledger_id => p_base_ledger_id
17390 ,p_target_ledger_id => p_target_ledger_id
17391 ,p_entity_id => l_array_entity_id(Idx)
17392 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
17393 ,p_entity_code => l_array_entity_code(Idx)
17394 ,p_transaction_num => l_array_transaction_num(Idx)
17395 ,p_event_id => l_array_event_id(Idx)
17396 ,p_event_class_code => l_array_class_code(Idx)
17397 ,p_event_type_code => l_array_event_type(Idx)
17398 ,p_event_number => l_array_event_number(Idx)
17399 ,p_event_date => l_array_event_date(Idx)
17400 ,p_transaction_date => l_array_transaction_date(Idx)
17401 ,p_reference_num_1 => l_array_reference_num_1(Idx)
17402 ,p_reference_num_2 => l_array_reference_num_2(Idx)
17403 ,p_reference_num_3 => l_array_reference_num_3(Idx)
17404 ,p_reference_num_4 => l_array_reference_num_4(Idx)
17405 ,p_reference_char_1 => l_array_reference_char_1(Idx)
17406 ,p_reference_char_2 => l_array_reference_char_2(Idx)
17407 ,p_reference_char_3 => l_array_reference_char_3(Idx)
17408 ,p_reference_char_4 => l_array_reference_char_4(Idx)
17409 ,p_reference_date_1 => l_array_reference_date_1(Idx)
17410 ,p_reference_date_2 => l_array_reference_date_2(Idx)
17411 ,p_reference_date_3 => l_array_reference_date_3(Idx)
17412 ,p_reference_date_4 => l_array_reference_date_4(Idx)
17413 ,p_event_created_by => l_array_event_created_by(Idx)
17414 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
17415 --
17416 END IF;
17417
17418
17419
17420 --
17421 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
17422
17423 l_acct_reversal_source := SUBSTR(NULL, 1,30);
17424
17425 IF l_continue_with_lines THEN
17426 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
17427 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
17428
17429 xla_accounting_err_pkg.build_message
17430 (p_appli_s_name => 'XLA'
17431 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
17432 ,p_token_1 => 'LINE_NUMBER'
17433 ,p_value_1 => l_array_extract_line_num(Idx)
17434 ,p_token_2 => 'PRODUCT_NAME'
17435 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
17436 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
17437 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
17438 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
17439
17440 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
17441 --
17442 -- following sets the accounting attributes needed to reverse
17443 -- accounting for a distributeion
17444 --
17445
17446 --
17447 -- 5217187
17448 --
17449 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
17450 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
17451 g_array_event(l_event_id).array_value_num('header_index'));
17452 --
17453 --
17454
17455 -- No reversal code generated
17456
17457 xla_ae_lines_pkg.SetAcctReversalAttrs
17458 (p_event_id => l_event_id
17459 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
17460 ,p_calculate_acctd_flag => l_calculate_acctd_flag
17461 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
17462 END IF;
17463
17464 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
17465 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
17466
17467 --
17468 AcctLineType_5 (
17469 p_application_id => p_application_id
17470 ,p_event_id => l_event_id
17471 ,p_calculate_acctd_flag => l_calculate_acctd_flag
17472 ,p_calculate_g_l_flag => l_calculate_g_l_flag
17473 ,p_actual_flag => l_actual_flag
17474 ,p_balance_type_code => l_balance_type_code
17475 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
17476
17477 , p_source_6 => l_array_source_6(Idx)
17478 , p_source_7 => l_array_source_7(Idx)
17479 , p_source_8 => l_array_source_8(Idx)
17480 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
17481 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
17482 , p_source_10 => l_array_source_10(Idx)
17483 , p_source_11 => l_array_source_11(Idx)
17484 , p_source_12 => l_array_source_12(Idx)
17485 , p_source_13 => l_array_source_13(Idx)
17486 , p_source_14 => l_array_source_14(Idx)
17487 , p_source_15 => l_array_source_15(Idx)
17488 );
17489 If(l_balance_type_code = 'A') THEN
17490 l_actual_gain_loss_ref := l_gain_or_loss_ref;
17491 END IF;
17492
17493 --
17494
17495 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
17496 -- or secondary ledger that has different currency with primary
17497 -- or alc that is calculated by sla
17498 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
17499 (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'))
17500
17501 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
17502 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
17503 AND (l_actual_flag = 'A')) THEN
17504 XLA_AE_LINES_PKG.CreateGainOrLossLines(
17505 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
17506 ,p_application_id => p_application_id
17507 ,p_amb_context_code => 'DEFAULT'
17508 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
17509 ,p_event_class_code => C_EVENT_CLASS_CODE
17510 ,p_event_type_code => C_EVENT_TYPE_CODE
17511
17512 ,p_gain_ccid => -1
17513 ,p_loss_ccid => -1
17514
17515 ,p_actual_flag => l_actual_flag
17516 ,p_enc_flag => null
17517 ,p_actual_g_l_ref => l_actual_gain_loss_ref
17518 ,p_enc_g_l_ref => null
17519 );
17520 END IF;
17521 END IF;
17522 END IF;
17523
17524 ELSE
17525 --
17526 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
17527 --
17528 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
17529 trace
17530 (p_msg => 'Trancaction revesal option is Y'
17531 ,p_level => C_LEVEL_STATEMENT
17532 ,p_module => l_log_module);
17533 END IF;
17534 END IF;
17535
17536 END LOOP;
17537 l_result := XLA_AE_LINES_PKG.InsertLines ;
17538 end loop;
17539 close line_cur;
17540
17541
17542 --
17543 -- insert headers into xla_ae_headers_gt table
17544 --
17545 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
17546
17547 -- insert into errors table here.
17548
17549 END LOOP;
17550
17551 --
17552 -- 4865292
17553 --
17554 -- Compare g_hdr_extract_count with event count in
17555 -- CreateHeadersAndLines.
17556 --
17557 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
17558
17559 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
17560 trace (p_msg => '# rows extracted from header extract objects '
17561 || ' (running total): '
17562 || g_hdr_extract_count
17563 ,p_level => C_LEVEL_STATEMENT
17564 ,p_module => l_log_module);
17565 END IF;
17566
17567 CLOSE header_cur;
17568 --
17569
17570 --
17571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17572 trace
17573 (p_msg => 'END of EventType_29'
17574 ,p_level => C_LEVEL_PROCEDURE
17575 ,p_module => l_log_module);
17576 END IF;
17577 --
17578 RETURN l_result;
17579 EXCEPTION
17580 WHEN xla_exceptions_pkg.application_exception THEN
17581
17582 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
17583
17584
17585 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
17586
17587 RAISE;
17588
17589 WHEN NO_DATA_FOUND THEN
17590
17591 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
17592 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
17593
17594 FOR header_record IN header_cur
17595 LOOP
17596 l_array_header_events(header_record.event_id) := header_record.event_id;
17597 END LOOP;
17598
17599 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
17600 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
17601
17602 fnd_file.put_line(fnd_file.LOG, ' ');
17603 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
17604 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
17605 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
17606
17607 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
17608 LOOP
17609 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
17610 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
17611 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
17612 END IF;
17613 END LOOP;
17614
17615 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
17616 fnd_file.put_line(fnd_file.LOG, ' ');
17617
17618
17619 xla_exceptions_pkg.raise_message
17620 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_29');
17621
17622
17623 WHEN OTHERS THEN
17624 xla_exceptions_pkg.raise_message
17625 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_29');
17626 END EventType_29;
17627 --
17628
17629 ---------------------------------------
17630 --
17631 -- PRIVATE PROCEDURE
17632 -- insert_sources_30
17633 --
17634 ----------------------------------------
17635 --
17636 PROCEDURE insert_sources_30(
17637 p_target_ledger_id IN NUMBER
17638 , p_language IN VARCHAR2
17639 , p_sla_ledger_id IN NUMBER
17640 , p_pad_start_date IN DATE
17641 , p_pad_end_date IN DATE
17642 )
17643 IS
17644
17645 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'EXP_REQ_RCPT_TP';
17646 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_TO_EXP';
17647 p_apps_owner VARCHAR2(30);
17648 l_log_module VARCHAR2(240);
17649 BEGIN
17650 IF g_log_enabled THEN
17651 l_log_module := C_DEFAULT_MODULE||'.insert_sources_30';
17652 END IF;
17653 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17654
17655 trace
17656 (p_msg => 'BEGIN of insert_sources_30'
17657 ,p_level => C_LEVEL_PROCEDURE
17658 ,p_module => l_log_module);
17659
17660 END IF;
17661
17662 -- select APPS owner
17663 SELECT oracle_username
17664 INTO p_apps_owner
17665 FROM fnd_oracle_userid
17666 WHERE read_only_flag = 'U'
17667 ;
17668
17669 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
17670 trace
17671 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
17672 ' - p_language = '||p_language||
17673 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
17674 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
17675 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
17676 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
17677 ,p_level => C_LEVEL_STATEMENT
17678 ,p_module => l_log_module);
17679 END IF;
17680
17681
17682 --
17683 INSERT INTO xla_diag_sources --hdr1
17684 (
17685 event_id
17686 , ledger_id
17687 , sla_ledger_id
17688 , description_language
17689 , object_name
17690 , object_type_code
17691 , line_number
17692 , source_application_id
17693 , source_type_code
17694 , source_code
17695 , source_value
17696 , source_meaning
17697 , created_by
17698 , creation_date
17699 , last_update_date
17700 , last_updated_by
17701 , last_update_login
17702 , program_update_date
17703 , program_application_id
17704 , program_id
17705 , request_id
17706 )
17707 SELECT
17708 event_id
17709 , p_target_ledger_id
17710 , p_sla_ledger_id
17711 , p_language
17712 , object_name
17713 , object_type_code
17714 , line_number
17715 , source_application_id
17716 , source_type_code
17717 , source_code
17718 , SUBSTR(source_value ,1,1996)
17719 , SUBSTR(source_meaning,1,200)
17720 , xla_environment_pkg.g_Usr_Id
17721 , TRUNC(SYSDATE)
17722 , TRUNC(SYSDATE)
17723 , xla_environment_pkg.g_Usr_Id
17724 , xla_environment_pkg.g_Login_Id
17725 , TRUNC(SYSDATE)
17726 , xla_environment_pkg.g_Prog_Appl_Id
17727 , xla_environment_pkg.g_Prog_Id
17728 , xla_environment_pkg.g_Req_Id
17729 FROM (
17730 SELECT xet.event_id event_id
17731 , 0 line_number
17732 , CASE r
17733 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
17734 WHEN 2 THEN 'CST_XLA_INV_SYSTEM_ITEMS_REF_V'
17735 WHEN 3 THEN 'CST_XLA_INV_REF_V'
17736 WHEN 4 THEN 'CST_XLA_INV_REF_V'
17737 WHEN 5 THEN 'CST_XLA_INV_TXN_TYPES_REF_V'
17738 WHEN 6 THEN 'CST_XLA_INV_HEADERS_V'
17739 WHEN 7 THEN 'CST_XLA_INV_HEADERS_V'
17740
17741 ELSE null
17742 END object_name
17743 , CASE r
17744 WHEN 1 THEN 'HEADER'
17745 WHEN 2 THEN 'HEADER'
17746 WHEN 3 THEN 'HEADER'
17747 WHEN 4 THEN 'HEADER'
17748 WHEN 5 THEN 'HEADER'
17749 WHEN 6 THEN 'HEADER'
17750 WHEN 7 THEN 'HEADER'
17751
17752 ELSE null
17753 END object_type_code
17754 , CASE r
17755 WHEN 1 THEN '707'
17756 WHEN 2 THEN '707'
17757 WHEN 3 THEN '707'
17758 WHEN 4 THEN '707'
17759 WHEN 5 THEN '707'
17760 WHEN 6 THEN '707'
17761 WHEN 7 THEN '707'
17762
17763 ELSE null
17764 END source_application_id
17765 , 'S' source_type_code
17766 , CASE r
17767 WHEN 1 THEN 'TRANSACTION_ID'
17768 WHEN 2 THEN 'ITEM_CONCATENATED_SEGMENTS'
17769 WHEN 3 THEN 'TRANSACTION_QUANTITY'
17770 WHEN 4 THEN 'TRANSACTION_UOM'
17771 WHEN 5 THEN 'INV_TXN_TYPE_DESCRIPTION'
17772 WHEN 6 THEN 'DISTRIBUTION_TYPE'
17773 WHEN 7 THEN 'TRANSFER_TO_GL_INDICATOR'
17774
17775 ELSE null
17776 END source_code
17777 , CASE r
17778 WHEN 1 THEN TO_CHAR(h1.TRANSACTION_ID)
17779 WHEN 2 THEN TO_CHAR(h4.ITEM_CONCATENATED_SEGMENTS)
17780 WHEN 3 THEN TO_CHAR(h3.TRANSACTION_QUANTITY)
17781 WHEN 4 THEN TO_CHAR(h3.TRANSACTION_UOM)
17782 WHEN 5 THEN TO_CHAR(h5.INV_TXN_TYPE_DESCRIPTION)
17783 WHEN 6 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
17784 WHEN 7 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
17785
17786 ELSE null
17787 END source_value
17788 , CASE r
17789 WHEN 6 THEN fvl9.meaning
17790 WHEN 7 THEN fvl42.meaning
17791
17792 ELSE null
17793 END source_meaning
17794 FROM xla_events_gt xet
17795 , CST_XLA_INV_HEADERS_V h1
17796 , CST_XLA_INV_REF_V h3
17797 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h4
17798 , CST_XLA_INV_TXN_TYPES_REF_V h5
17799 , fnd_lookup_values fvl9
17800 , fnd_lookup_values fvl42
17801 ,(select rownum r from all_objects where rownum <= 7 and owner = p_apps_owner)
17802 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
17803 AND xet.event_type_code = C_EVENT_TYPE_CODE
17804 AND h1.event_id = xet.event_id
17805 AND h3.ref_transaction_id = h1.transaction_id AND h4.inventory_item_id = h1.inventory_item_id and h4.organization_id = h1.organization_id AND h5.inv_transaction_type_id = h1.transaction_type_id AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
17806 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
17807 AND fvl9.view_application_id(+) = 700
17808 AND fvl9.language(+) = USERENV('LANG')
17809 AND fvl42.lookup_type(+) = 'YES_NO'
17810 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
17811 AND fvl42.view_application_id(+) = 0
17812 AND fvl42.language(+) = USERENV('LANG')
17813
17814 )
17815 ;
17816 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
17817
17818 trace
17819 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
17820 ,p_level => C_LEVEL_STATEMENT
17821 ,p_module => l_log_module);
17822
17823 END IF;
17824 --
17825
17826
17827
17828 --
17829 INSERT INTO xla_diag_sources --line1
17830 (
17831 event_id
17832 , ledger_id
17833 , sla_ledger_id
17834 , description_language
17835 , object_name
17836 , object_type_code
17837 , line_number
17838 , source_application_id
17839 , source_type_code
17840 , source_code
17841 , source_value
17842 , source_meaning
17843 , created_by
17844 , creation_date
17845 , last_update_date
17846 , last_updated_by
17847 , last_update_login
17848 , program_update_date
17849 , program_application_id
17850 , program_id
17851 , request_id
17852 )
17853 SELECT event_id
17854 , p_target_ledger_id
17855 , p_sla_ledger_id
17856 , p_language
17857 , object_name
17858 , object_type_code
17859 , line_number
17860 , source_application_id
17861 , source_type_code
17862 , source_code
17863 , SUBSTR(source_value,1,1996)
17864 , SUBSTR(source_meaning,1,200)
17865 , xla_environment_pkg.g_Usr_Id
17866 , TRUNC(SYSDATE)
17867 , TRUNC(SYSDATE)
17868 , xla_environment_pkg.g_Usr_Id
17869 , xla_environment_pkg.g_Login_Id
17870 , TRUNC(SYSDATE)
17871 , xla_environment_pkg.g_Prog_Appl_Id
17872 , xla_environment_pkg.g_Prog_Id
17873 , xla_environment_pkg.g_Req_Id
17874 FROM (
17875 SELECT xet.event_id event_id
17876 , l2.line_number line_number
17877 , CASE r
17878 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
17879 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
17880 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
17881 WHEN 4 THEN 'CST_XLA_INV_LINES_V'
17882 WHEN 5 THEN 'CST_XLA_INV_LINES_V'
17883 WHEN 6 THEN 'CST_XLA_INV_LINES_V'
17884 WHEN 7 THEN 'CST_XLA_INV_LINES_V'
17885 WHEN 8 THEN 'CST_XLA_INV_LINES_V'
17886 WHEN 9 THEN 'CST_XLA_INV_LINES_V'
17887
17888 ELSE null
17889 END object_name
17890 , CASE r
17891 WHEN 1 THEN 'LINE'
17892 WHEN 2 THEN 'LINE'
17893 WHEN 3 THEN 'LINE'
17894 WHEN 4 THEN 'LINE'
17895 WHEN 5 THEN 'LINE'
17896 WHEN 6 THEN 'LINE'
17897 WHEN 7 THEN 'LINE'
17898 WHEN 8 THEN 'LINE'
17899 WHEN 9 THEN 'LINE'
17900
17901 ELSE null
17902 END object_type_code
17903 , CASE r
17904 WHEN 1 THEN '707'
17905 WHEN 2 THEN '707'
17906 WHEN 3 THEN '707'
17907 WHEN 4 THEN '707'
17908 WHEN 5 THEN '707'
17909 WHEN 6 THEN '707'
17910 WHEN 7 THEN '707'
17911 WHEN 8 THEN '707'
17912 WHEN 9 THEN '707'
17913
17914 ELSE null
17915 END source_application_id
17916 , 'S' source_type_code
17917 , CASE r
17918 WHEN 1 THEN 'CODE_COMBINATION_ID'
17919 WHEN 2 THEN 'ACCOUNTING_LINE_TYPE_CODE'
17920 WHEN 3 THEN 'DISTRIBUTION_IDENTIFIER'
17921 WHEN 4 THEN 'ENTERED_AMOUNT'
17922 WHEN 5 THEN 'CURRENCY_CODE'
17923 WHEN 6 THEN 'CURRENCY_CONVERSION_DATE'
17924 WHEN 7 THEN 'CURRENCY_CONVERSION_RATE'
17925 WHEN 8 THEN 'CURRENCY_CONVERSION_TYPE'
17926 WHEN 9 THEN 'ACCOUNTED_AMOUNT'
17927
17928 ELSE null
17929 END source_code
17930 , CASE r
17931 WHEN 1 THEN TO_CHAR(l2.CODE_COMBINATION_ID)
17932 WHEN 2 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
17933 WHEN 3 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
17934 WHEN 4 THEN TO_CHAR(l2.ENTERED_AMOUNT)
17935 WHEN 5 THEN TO_CHAR(l2.CURRENCY_CODE)
17936 WHEN 6 THEN TO_CHAR(l2.CURRENCY_CONVERSION_DATE)
17937 WHEN 7 THEN TO_CHAR(l2.CURRENCY_CONVERSION_RATE)
17938 WHEN 8 THEN TO_CHAR(l2.CURRENCY_CONVERSION_TYPE)
17939 WHEN 9 THEN TO_CHAR(l2.ACCOUNTED_AMOUNT)
17940
17941 ELSE null
17942 END source_value
17943 , null source_meaning
17944 FROM xla_events_gt xet
17945 , CST_XLA_INV_LINES_V l2
17946 ,(select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
17947 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
17948 AND xet.event_type_code = C_EVENT_TYPE_CODE
17949 AND l2.event_id = xet.event_id
17950
17951 )
17952 ;
17953 --
17954 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
17955
17956 trace
17957 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
17958 ,p_level => C_LEVEL_STATEMENT
17959 ,p_module => l_log_module);
17960
17961 END IF;
17962
17963
17964 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17965 trace
17966 (p_msg => 'END of insert_sources_30'
17967 ,p_level => C_LEVEL_PROCEDURE
17968 ,p_module => l_log_module);
17969 END IF;
17970 EXCEPTION
17971 WHEN xla_exceptions_pkg.application_exception THEN
17972 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
17973 trace
17974 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
17975 ,p_level => C_LEVEL_EXCEPTION
17976 ,p_module => l_log_module);
17977 END IF;
17978 RAISE;
17979 WHEN OTHERS THEN
17980 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
17981 trace
17982 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
17983 ,p_level => C_LEVEL_EXCEPTION
17984 ,p_module => l_log_module);
17985 END IF;
17986 xla_exceptions_pkg.raise_message
17987 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_30');
17988 END insert_sources_30;
17989 --
17990
17991 ---------------------------------------
17992 --
17993 -- PRIVATE FUNCTION
17994 -- EventType_30
17995 --
17996 ----------------------------------------
17997 --
17998 FUNCTION EventType_30
17999 (p_application_id IN NUMBER
18000 ,p_base_ledger_id IN NUMBER
18001 ,p_target_ledger_id IN NUMBER
18002 ,p_language IN VARCHAR2
18003 ,p_currency_code IN VARCHAR2
18004 ,p_sla_ledger_id IN NUMBER
18005 ,p_pad_start_date IN DATE
18006 ,p_pad_end_date IN DATE
18007 ,p_primary_ledger_id IN NUMBER)
18008 RETURN BOOLEAN IS
18009 --
18010 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'EXP_REQ_RCPT_TP';
18011 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_TO_EXP';
18012
18013 l_calculate_acctd_flag VARCHAR2(1) :='N';
18014 l_calculate_g_l_flag VARCHAR2(1) :='N';
18015 --
18016 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
18017 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
18018 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
18019 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
18020 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
18021 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
18022 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
18023 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
18024 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
18025 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
18026 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
18027 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
18028 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
18029 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
18030 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
18031 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
18032 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
18033 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
18034 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
18035 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
18036 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
18037 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
18038 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
18039 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
18040 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
18041 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
18042
18043 l_event_id NUMBER;
18044 l_previous_event_id NUMBER;
18045 l_first_event_id NUMBER;
18046 l_last_event_id NUMBER;
18047
18048 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
18049 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18050 --
18051 --
18052 l_result BOOLEAN := TRUE;
18053 l_rows NUMBER := 1000;
18054 l_event_type_name VARCHAR2(80) := 'Internal Order Receipt into Expense, Transfer Pricing';
18055 l_event_class_name VARCHAR2(80) := 'Internal Order to Expense';
18056 l_description VARCHAR2(4000);
18057 l_transaction_reversal NUMBER;
18058 l_ae_header_id NUMBER;
18059 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
18060 l_log_module VARCHAR2(240);
18061 --
18062 l_acct_reversal_source VARCHAR2(30);
18063 l_trx_reversal_source VARCHAR2(30);
18064
18065 l_continue_with_lines BOOLEAN := TRUE;
18066 --
18067 l_acc_rev_gl_date_source DATE; -- 4262811
18068 --
18069 type t_array_event_id is table of number index by binary_integer;
18070
18071 l_rec_array_event t_rec_array_event;
18072 l_null_rec_array_event t_rec_array_event;
18073 l_array_ae_header_id xla_number_array_type;
18074 l_actual_flag VARCHAR2(1) := NULL;
18075 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
18076 l_balance_type_code VARCHAR2(1) :=NULL;
18077 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
18078
18079 --
18080 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
18081 --
18082
18083 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSACTION_ID%TYPE INDEX BY BINARY_INTEGER;
18084 TYPE t_array_source_2 IS TABLE OF CST_XLA_INV_SYSTEM_ITEMS_REF_V.ITEM_CONCATENATED_SEGMENTS%TYPE INDEX BY BINARY_INTEGER;
18085 TYPE t_array_source_3 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_QUANTITY%TYPE INDEX BY BINARY_INTEGER;
18086 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_UOM%TYPE INDEX BY BINARY_INTEGER;
18087 TYPE t_array_source_5 IS TABLE OF CST_XLA_INV_TXN_TYPES_REF_V.INV_TXN_TYPE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
18088 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
18089 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
18090
18091 TYPE t_array_source_6 IS TABLE OF CST_XLA_INV_LINES_V.CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
18092 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
18093 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
18094 TYPE t_array_source_10 IS TABLE OF CST_XLA_INV_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
18095 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
18096 TYPE t_array_source_12 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
18097 TYPE t_array_source_13 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
18098 TYPE t_array_source_14 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
18099 TYPE t_array_source_15 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
18100
18101 l_array_source_1 t_array_source_1;
18102 l_array_source_2 t_array_source_2;
18103 l_array_source_3 t_array_source_3;
18104 l_array_source_4 t_array_source_4;
18105 l_array_source_5 t_array_source_5;
18106 l_array_source_9 t_array_source_9;
18107 l_array_source_9_meaning t_array_lookup_meaning;
18108 l_array_source_42 t_array_source_42;
18109 l_array_source_42_meaning t_array_lookup_meaning;
18110
18111 l_array_source_6 t_array_source_6;
18112 l_array_source_7 t_array_source_7;
18113 l_array_source_8 t_array_source_8;
18114 l_array_source_10 t_array_source_10;
18115 l_array_source_11 t_array_source_11;
18116 l_array_source_12 t_array_source_12;
18117 l_array_source_13 t_array_source_13;
18118 l_array_source_14 t_array_source_14;
18119 l_array_source_15 t_array_source_15;
18120
18121 --
18122 CURSOR header_cur
18123 IS
18124 SELECT /*+ leading(xet) cardinality(xet,1) */
18125 -- Event Type Code: EXP_REQ_RCPT_TP
18126 -- Event Class Code: INT_ORDER_TO_EXP
18127 xet.entity_id
18128 , xet.legal_entity_id
18129 , xet.entity_code
18130 , xet.transaction_number
18131 , xet.event_id
18132 , xet.event_class_code
18133 , xet.event_type_code
18134 , xet.event_number
18135 , xet.event_date
18136 , xet.transaction_date
18137 , xet.reference_num_1
18138 , xet.reference_num_2
18139 , xet.reference_num_3
18140 , xet.reference_num_4
18141 , xet.reference_char_1
18142 , xet.reference_char_2
18143 , xet.reference_char_3
18144 , xet.reference_char_4
18145 , xet.reference_date_1
18146 , xet.reference_date_2
18147 , xet.reference_date_3
18148 , xet.reference_date_4
18149 , xet.event_created_by
18150 , xet.budgetary_control_flag
18151 , h1.TRANSACTION_ID source_1
18152 , h4.ITEM_CONCATENATED_SEGMENTS source_2
18153 , h3.TRANSACTION_QUANTITY source_3
18154 , h3.TRANSACTION_UOM source_4
18155 , h5.INV_TXN_TYPE_DESCRIPTION source_5
18156 , h1.DISTRIBUTION_TYPE source_9
18157 , fvl9.meaning source_9_meaning
18158 , h1.TRANSFER_TO_GL_INDICATOR source_42
18159 , fvl42.meaning source_42_meaning
18160 FROM xla_events_gt xet
18161 , CST_XLA_INV_HEADERS_V h1
18162 , CST_XLA_INV_REF_V h3
18163 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h4
18164 , CST_XLA_INV_TXN_TYPES_REF_V h5
18165 , fnd_lookup_values fvl9
18166 , fnd_lookup_values fvl42
18167 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
18168 and xet.event_type_code = C_EVENT_TYPE_CODE
18169 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
18170 AND h3.ref_transaction_id = h1.transaction_id AND h4.INVENTORY_ITEM_ID = h1.INVENTORY_ITEM_ID AND h4.ORGANIZATION_ID = h1.ORGANIZATION_ID AND h5.INV_TRANSACTION_TYPE_ID = h1.TRANSACTION_TYPE_ID AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
18171 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
18172 AND fvl9.view_application_id(+) = 700
18173 AND fvl9.language(+) = USERENV('LANG')
18174 AND fvl42.lookup_type(+) = 'YES_NO'
18175 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
18176 AND fvl42.view_application_id(+) = 0
18177 AND fvl42.language(+) = USERENV('LANG')
18178
18179 ORDER BY event_id
18180 ;
18181
18182
18183 --
18184 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
18185 IS
18186 SELECT /*+ leading(xet) cardinality(xet,1) */
18187 -- Event Type Code: EXP_REQ_RCPT_TP
18188 -- Event Class Code: INT_ORDER_TO_EXP
18189 xet.entity_id
18190 ,xet.legal_entity_id
18191 ,xet.entity_code
18192 ,xet.transaction_number
18193 ,xet.event_id
18194 ,xet.event_class_code
18195 ,xet.event_type_code
18196 ,xet.event_number
18197 ,xet.event_date
18198 ,xet.transaction_date
18199 ,xet.reference_num_1
18200 ,xet.reference_num_2
18201 ,xet.reference_num_3
18202 ,xet.reference_num_4
18203 ,xet.reference_char_1
18204 ,xet.reference_char_2
18205 ,xet.reference_char_3
18206 ,xet.reference_char_4
18207 ,xet.reference_date_1
18208 ,xet.reference_date_2
18209 ,xet.reference_date_3
18210 ,xet.reference_date_4
18211 ,xet.event_created_by
18212 ,xet.budgetary_control_flag , l2.LINE_NUMBER
18213 , l2.CODE_COMBINATION_ID source_6
18214 , l2.ACCOUNTING_LINE_TYPE_CODE source_7
18215 , l2.DISTRIBUTION_IDENTIFIER source_8
18216 , l2.ENTERED_AMOUNT source_10
18217 , l2.CURRENCY_CODE source_11
18218 , l2.CURRENCY_CONVERSION_DATE source_12
18219 , l2.CURRENCY_CONVERSION_RATE source_13
18220 , l2.CURRENCY_CONVERSION_TYPE source_14
18221 , l2.ACCOUNTED_AMOUNT source_15
18222 FROM xla_events_gt xet
18223 , CST_XLA_INV_LINES_V l2
18224 WHERE xet.event_id between x_first_event_id and x_last_event_id
18225 and xet.event_date between p_pad_start_date and p_pad_end_date
18226 and xet.event_type_code = C_EVENT_TYPE_CODE
18227 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
18228 ;
18229
18230 --
18231 BEGIN
18232 IF g_log_enabled THEN
18233 l_log_module := C_DEFAULT_MODULE||'.EventType_30';
18234 END IF;
18235 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18236 trace
18237 (p_msg => 'BEGIN of EventType_30'
18238 ,p_level => C_LEVEL_PROCEDURE
18239 ,p_module => l_log_module);
18240 END IF;
18241
18242 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
18243 trace
18244 (p_msg => 'p_application_id = '||p_application_id||
18245 ' - p_base_ledger_id = '||p_base_ledger_id||
18246 ' - p_target_ledger_id = '||p_target_ledger_id||
18247 ' - p_language = '||p_language||
18248 ' - p_currency_code = '||p_currency_code||
18249 ' - p_sla_ledger_id = '||p_sla_ledger_id
18250 ,p_level => C_LEVEL_STATEMENT
18251 ,p_module => l_log_module);
18252 END IF;
18253 --
18254 -- initialze arrays
18255 --
18256 g_array_event.DELETE;
18257 l_rec_array_event := l_null_rec_array_event;
18258 --
18259 --------------------------------------
18260 -- 4262811 Initialze MPA Line Number
18261 --------------------------------------
18262 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
18263
18264 --
18265
18266 --
18267 OPEN header_cur;
18268 --
18269 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
18270 trace
18271 (p_msg => 'SQL - FETCH header_cur'
18272 ,p_level => C_LEVEL_STATEMENT
18273 ,p_module => l_log_module);
18274 END IF;
18275 --
18276 LOOP
18277 FETCH header_cur BULK COLLECT INTO
18278 l_array_entity_id
18279 , l_array_legal_entity_id
18280 , l_array_entity_code
18281 , l_array_transaction_num
18282 , l_array_event_id
18283 , l_array_class_code
18284 , l_array_event_type
18285 , l_array_event_number
18286 , l_array_event_date
18287 , l_array_transaction_date
18288 , l_array_reference_num_1
18289 , l_array_reference_num_2
18290 , l_array_reference_num_3
18291 , l_array_reference_num_4
18292 , l_array_reference_char_1
18293 , l_array_reference_char_2
18294 , l_array_reference_char_3
18295 , l_array_reference_char_4
18296 , l_array_reference_date_1
18297 , l_array_reference_date_2
18298 , l_array_reference_date_3
18299 , l_array_reference_date_4
18300 , l_array_event_created_by
18301 , l_array_budgetary_control_flag
18302 , l_array_source_1
18303 , l_array_source_2
18304 , l_array_source_3
18305 , l_array_source_4
18306 , l_array_source_5
18307 , l_array_source_9
18308 , l_array_source_9_meaning
18309 , l_array_source_42
18310 , l_array_source_42_meaning
18311 LIMIT l_rows;
18312 --
18313 IF (C_LEVEL_EVENT >= g_log_level) THEN
18314 trace
18315 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
18316 ,p_level => C_LEVEL_EVENT
18317 ,p_module => l_log_module);
18318 END IF;
18319 --
18320 EXIT WHEN l_array_entity_id.COUNT = 0;
18321
18322 -- initialize arrays
18323 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
18324 XLA_AE_LINES_PKG.g_rec_lines := NULL;
18325
18326 --
18327 -- Bug 4458708
18328 --
18329 XLA_AE_LINES_PKG.g_LineNumber := 0;
18330
18331
18332 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
18333 g_last_hdr_idx := l_array_event_id.LAST;
18334 --
18335 -- loop for the headers. Each iteration is for each header extract row
18336 -- fetched in header cursor
18337 --
18338 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
18339
18340 --
18341 -- set event info as cache for other routines to refer event attributes
18342 --
18343 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
18344 (p_application_id => p_application_id
18345 ,p_primary_ledger_id => p_primary_ledger_id
18346 ,p_base_ledger_id => p_base_ledger_id
18347 ,p_target_ledger_id => p_target_ledger_id
18348 ,p_entity_id => l_array_entity_id(hdr_idx)
18349 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
18350 ,p_entity_code => l_array_entity_code(hdr_idx)
18351 ,p_transaction_num => l_array_transaction_num(hdr_idx)
18352 ,p_event_id => l_array_event_id(hdr_idx)
18353 ,p_event_class_code => l_array_class_code(hdr_idx)
18354 ,p_event_type_code => l_array_event_type(hdr_idx)
18355 ,p_event_number => l_array_event_number(hdr_idx)
18356 ,p_event_date => l_array_event_date(hdr_idx)
18357 ,p_transaction_date => l_array_transaction_date(hdr_idx)
18358 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
18359 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
18360 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
18361 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
18362 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
18363 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
18364 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
18365 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
18366 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
18367 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
18368 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
18369 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
18370 ,p_event_created_by => l_array_event_created_by(hdr_idx)
18371 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
18372
18373 --
18374 -- set the status of entry to C_VALID (0)
18375 --
18376 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
18377
18378 --
18379 -- initialize a row for ae header
18380 --
18381 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
18382
18383 l_event_id := l_array_event_id(hdr_idx);
18384
18385 --
18386 -- storing the hdr_idx for event. May be used by line cursor.
18387 --
18388 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
18389
18390 --
18391 -- store sources from header extract. This can be improved to
18392 -- store only those sources from header extract that may be used in lines
18393 --
18394
18395 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
18396 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
18397 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
18398 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
18399 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
18400 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
18401 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
18402 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
18403 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
18404
18405 --
18406 -- initilaize the status of ae headers for diffrent balance types
18407 -- the status is initialised to C_NOT_CREATED (2)
18408 --
18409 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
18410 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
18411 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
18412
18413 --
18414 -- call api to validate and store accounting attributes for header
18415 --
18416
18417 ------------------------------------------------------------
18418 -- Accrual Reversal : to get date for Standard Source (NONE)
18419 ------------------------------------------------------------
18420 l_acc_rev_gl_date_source := NULL;
18421
18422 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
18423 l_rec_acct_attrs.array_date_value(1) :=
18424 xla_ae_sources_pkg.GetSystemSourceDate(
18425 p_source_code => 'XLA_REFERENCE_DATE_1'
18426 , p_source_type_code => 'Y'
18427 , p_source_application_id => 602
18428 );
18429 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_TRANSFER_FLAG';
18430 l_rec_acct_attrs.array_char_value(2) := g_array_event(l_event_id).array_value_char('source_42');
18431
18432
18433 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
18434
18435 XLA_AE_HEADER_PKG.SetJeCategoryName;
18436
18437 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
18438 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
18439 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
18440 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
18441 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
18442
18443
18444 --
18445 xla_ae_header_pkg.SetHdrDescription(
18446 p_description => Description_1 (
18447 p_application_id => p_application_id
18448 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
18449 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
18450 , p_source_3 => g_array_event(l_event_id).array_value_num('source_3')
18451 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
18452 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
18453 )
18454 );
18455 --
18456
18457 -- No header level analytical criteria
18458
18459 --
18460 --accounting attribute enhancement, bug 3612931
18461 --
18462 l_trx_reversal_source := SUBSTR(NULL, 1,30);
18463
18464 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
18465 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
18466
18467 xla_accounting_err_pkg.build_message
18468 (p_appli_s_name => 'XLA'
18469 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
18470 ,p_token_1 => 'ACCT_ATTR_NAME'
18471 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
18472 ,p_token_2 => 'PRODUCT_NAME'
18473 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
18474 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
18475 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
18476 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
18477
18478 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
18479 --
18480 -- following sets the accounting attributes needed to reverse
18481 -- accounting for a distributeion
18482 --
18483 xla_ae_lines_pkg.SetTrxReversalAttrs
18484 (p_event_id => l_event_id
18485 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
18486 ,p_trx_reversal_source => l_trx_reversal_source);
18487
18488 END IF;
18489
18490
18491 ----------------------------------------------------------------
18492 -- 4262811 - update the header statuses to invalid in need be
18493 ----------------------------------------------------------------
18494 --
18495 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
18496
18497
18498 -----------------------------------------------
18499 -- No accrual reversal for the event class/type
18500 -----------------------------------------------
18501 ----------------------------------------------------------------
18502
18503 --
18504 -- this ends the header loop iteration for one bulk fetch
18505 --
18506 END LOOP;
18507
18508 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
18509 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
18510
18511 --
18512 -- insert dummy rows into lines gt table that were created due to
18513 -- transaction reversals
18514 --
18515 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
18516 l_result := XLA_AE_LINES_PKG.InsertLines;
18517 END IF;
18518
18519 --
18520 -- reset the temp_line_num for each set of events fetched from header
18521 -- cursor rather than doing it for each new event in line cursor
18522 -- Bug 3939231
18523 --
18524 xla_ae_lines_pkg.g_temp_line_num := 0;
18525
18526
18527
18528 --
18529 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
18530 --
18531 --
18532 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
18533
18534 trace
18535 (p_msg => 'SQL - FETCH line_cur'
18536 ,p_level => C_LEVEL_STATEMENT
18537 ,p_module => l_log_module);
18538
18539 END IF;
18540 --
18541 --
18542 LOOP
18543 --
18544 FETCH line_cur BULK COLLECT INTO
18545 l_array_entity_id
18546 , l_array_legal_entity_id
18547 , l_array_entity_code
18548 , l_array_transaction_num
18549 , l_array_event_id
18550 , l_array_class_code
18551 , l_array_event_type
18552 , l_array_event_number
18553 , l_array_event_date
18554 , l_array_transaction_date
18555 , l_array_reference_num_1
18556 , l_array_reference_num_2
18557 , l_array_reference_num_3
18558 , l_array_reference_num_4
18559 , l_array_reference_char_1
18560 , l_array_reference_char_2
18561 , l_array_reference_char_3
18562 , l_array_reference_char_4
18563 , l_array_reference_date_1
18564 , l_array_reference_date_2
18565 , l_array_reference_date_3
18566 , l_array_reference_date_4
18567 , l_array_event_created_by
18568 , l_array_budgetary_control_flag
18569 , l_array_extract_line_num
18570 , l_array_source_6
18571 , l_array_source_7
18572 , l_array_source_8
18573 , l_array_source_10
18574 , l_array_source_11
18575 , l_array_source_12
18576 , l_array_source_13
18577 , l_array_source_14
18578 , l_array_source_15
18579 LIMIT l_rows;
18580
18581 --
18582 IF (C_LEVEL_EVENT >= g_log_level) THEN
18583 trace
18584 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
18585 ,p_level => C_LEVEL_EVENT
18586 ,p_module => l_log_module);
18587 END IF;
18588 --
18589 EXIT WHEN l_array_entity_id.count = 0;
18590
18591 XLA_AE_LINES_PKG.g_rec_lines := null;
18592
18593 --
18594 -- Bug 4458708
18595 --
18596 XLA_AE_LINES_PKG.g_LineNumber := 0;
18597 --
18598 --
18599
18600 FOR Idx IN 1..l_array_event_id.count LOOP
18601 --
18602 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
18603 --
18604 l_event_id := l_array_event_id(idx); -- 5648433
18605
18606 --
18607 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
18608 --
18609
18610 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
18611 (g_array_event(l_event_id).array_value_num('header_index'))
18612 ,'N'
18613 ) <> 'Y'
18614 THEN
18615 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
18616 trace
18617 (p_msg => 'Trancaction revesal option is not Y '
18618 ,p_level => C_LEVEL_STATEMENT
18619 ,p_module => l_log_module);
18620 END IF;
18621
18622 --
18623 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
18624 --
18625 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
18626 --
18627 -- set event info as cache for other routines to refer event attributes
18628 --
18629
18630 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
18631 l_previous_event_id := l_event_id;
18632
18633 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
18634 (p_application_id => p_application_id
18635 ,p_primary_ledger_id => p_primary_ledger_id
18636 ,p_base_ledger_id => p_base_ledger_id
18637 ,p_target_ledger_id => p_target_ledger_id
18638 ,p_entity_id => l_array_entity_id(Idx)
18639 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
18640 ,p_entity_code => l_array_entity_code(Idx)
18641 ,p_transaction_num => l_array_transaction_num(Idx)
18642 ,p_event_id => l_array_event_id(Idx)
18643 ,p_event_class_code => l_array_class_code(Idx)
18644 ,p_event_type_code => l_array_event_type(Idx)
18645 ,p_event_number => l_array_event_number(Idx)
18646 ,p_event_date => l_array_event_date(Idx)
18647 ,p_transaction_date => l_array_transaction_date(Idx)
18648 ,p_reference_num_1 => l_array_reference_num_1(Idx)
18649 ,p_reference_num_2 => l_array_reference_num_2(Idx)
18650 ,p_reference_num_3 => l_array_reference_num_3(Idx)
18651 ,p_reference_num_4 => l_array_reference_num_4(Idx)
18652 ,p_reference_char_1 => l_array_reference_char_1(Idx)
18653 ,p_reference_char_2 => l_array_reference_char_2(Idx)
18654 ,p_reference_char_3 => l_array_reference_char_3(Idx)
18655 ,p_reference_char_4 => l_array_reference_char_4(Idx)
18656 ,p_reference_date_1 => l_array_reference_date_1(Idx)
18657 ,p_reference_date_2 => l_array_reference_date_2(Idx)
18658 ,p_reference_date_3 => l_array_reference_date_3(Idx)
18659 ,p_reference_date_4 => l_array_reference_date_4(Idx)
18660 ,p_event_created_by => l_array_event_created_by(Idx)
18661 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
18662 --
18663 END IF;
18664
18665
18666
18667 --
18668 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
18669
18670 l_acct_reversal_source := SUBSTR(NULL, 1,30);
18671
18672 IF l_continue_with_lines THEN
18673 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
18674 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
18675
18676 xla_accounting_err_pkg.build_message
18677 (p_appli_s_name => 'XLA'
18678 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
18679 ,p_token_1 => 'LINE_NUMBER'
18680 ,p_value_1 => l_array_extract_line_num(Idx)
18681 ,p_token_2 => 'PRODUCT_NAME'
18682 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
18683 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
18684 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
18685 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
18686
18687 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
18688 --
18689 -- following sets the accounting attributes needed to reverse
18690 -- accounting for a distributeion
18691 --
18692
18693 --
18694 -- 5217187
18695 --
18696 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
18697 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
18698 g_array_event(l_event_id).array_value_num('header_index'));
18699 --
18700 --
18701
18702 -- No reversal code generated
18703
18704 xla_ae_lines_pkg.SetAcctReversalAttrs
18705 (p_event_id => l_event_id
18706 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
18707 ,p_calculate_acctd_flag => l_calculate_acctd_flag
18708 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
18709 END IF;
18710
18711 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
18712 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
18713
18714 --
18715 AcctLineType_3 (
18716 p_application_id => p_application_id
18717 ,p_event_id => l_event_id
18718 ,p_calculate_acctd_flag => l_calculate_acctd_flag
18719 ,p_calculate_g_l_flag => l_calculate_g_l_flag
18720 ,p_actual_flag => l_actual_flag
18721 ,p_balance_type_code => l_balance_type_code
18722 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
18723
18724 , p_source_6 => l_array_source_6(Idx)
18725 , p_source_7 => l_array_source_7(Idx)
18726 , p_source_8 => l_array_source_8(Idx)
18727 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
18728 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
18729 , p_source_10 => l_array_source_10(Idx)
18730 , p_source_11 => l_array_source_11(Idx)
18731 , p_source_12 => l_array_source_12(Idx)
18732 , p_source_13 => l_array_source_13(Idx)
18733 , p_source_14 => l_array_source_14(Idx)
18734 , p_source_15 => l_array_source_15(Idx)
18735 );
18736 If(l_balance_type_code = 'A') THEN
18737 l_actual_gain_loss_ref := l_gain_or_loss_ref;
18738 END IF;
18739
18740 --
18741
18742 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
18743 -- or secondary ledger that has different currency with primary
18744 -- or alc that is calculated by sla
18745 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
18746 (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'))
18747
18748 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
18749 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
18750 AND (l_actual_flag = 'A')) THEN
18751 XLA_AE_LINES_PKG.CreateGainOrLossLines(
18752 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
18753 ,p_application_id => p_application_id
18754 ,p_amb_context_code => 'DEFAULT'
18755 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
18756 ,p_event_class_code => C_EVENT_CLASS_CODE
18757 ,p_event_type_code => C_EVENT_TYPE_CODE
18758
18759 ,p_gain_ccid => -1
18760 ,p_loss_ccid => -1
18761
18762 ,p_actual_flag => l_actual_flag
18763 ,p_enc_flag => null
18764 ,p_actual_g_l_ref => l_actual_gain_loss_ref
18765 ,p_enc_g_l_ref => null
18766 );
18767 END IF;
18768 END IF;
18769 END IF;
18770
18771 ELSE
18772 --
18773 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
18774 --
18775 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
18776 trace
18777 (p_msg => 'Trancaction revesal option is Y'
18778 ,p_level => C_LEVEL_STATEMENT
18779 ,p_module => l_log_module);
18780 END IF;
18781 END IF;
18782
18783 END LOOP;
18784 l_result := XLA_AE_LINES_PKG.InsertLines ;
18785 end loop;
18786 close line_cur;
18787
18788
18789 --
18790 -- insert headers into xla_ae_headers_gt table
18791 --
18792 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
18793
18794 -- insert into errors table here.
18795
18796 END LOOP;
18797
18798 --
18799 -- 4865292
18800 --
18801 -- Compare g_hdr_extract_count with event count in
18802 -- CreateHeadersAndLines.
18803 --
18804 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
18805
18806 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
18807 trace (p_msg => '# rows extracted from header extract objects '
18808 || ' (running total): '
18809 || g_hdr_extract_count
18810 ,p_level => C_LEVEL_STATEMENT
18811 ,p_module => l_log_module);
18812 END IF;
18813
18814 CLOSE header_cur;
18815 --
18816
18817 --
18818 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18819 trace
18820 (p_msg => 'END of EventType_30'
18821 ,p_level => C_LEVEL_PROCEDURE
18822 ,p_module => l_log_module);
18823 END IF;
18824 --
18825 RETURN l_result;
18826 EXCEPTION
18827 WHEN xla_exceptions_pkg.application_exception THEN
18828
18829 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
18830
18831
18832 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
18833
18834 RAISE;
18835
18836 WHEN NO_DATA_FOUND THEN
18837
18838 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
18839 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
18840
18841 FOR header_record IN header_cur
18842 LOOP
18843 l_array_header_events(header_record.event_id) := header_record.event_id;
18844 END LOOP;
18845
18846 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
18847 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
18848
18849 fnd_file.put_line(fnd_file.LOG, ' ');
18850 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
18851 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
18852 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
18853
18854 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
18855 LOOP
18856 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
18857 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
18858 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
18859 END IF;
18860 END LOOP;
18861
18862 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
18863 fnd_file.put_line(fnd_file.LOG, ' ');
18864
18865
18866 xla_exceptions_pkg.raise_message
18867 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_30');
18868
18869
18870 WHEN OTHERS THEN
18871 xla_exceptions_pkg.raise_message
18872 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_30');
18873 END EventType_30;
18874 --
18875
18876 ---------------------------------------
18877 --
18878 -- PRIVATE PROCEDURE
18879 -- insert_sources_31
18880 --
18881 ----------------------------------------
18882 --
18883 PROCEDURE insert_sources_31(
18884 p_target_ledger_id IN NUMBER
18885 , p_language IN VARCHAR2
18886 , p_sla_ledger_id IN NUMBER
18887 , p_pad_start_date IN DATE
18888 , p_pad_end_date IN DATE
18889 )
18890 IS
18891
18892 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FOB_RCPT_RECIPIENT_RCPT_NO_TP';
18893 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FOB_RCPT_RECIPIENT_RCPT';
18894 p_apps_owner VARCHAR2(30);
18895 l_log_module VARCHAR2(240);
18896 BEGIN
18897 IF g_log_enabled THEN
18898 l_log_module := C_DEFAULT_MODULE||'.insert_sources_31';
18899 END IF;
18900 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18901
18902 trace
18903 (p_msg => 'BEGIN of insert_sources_31'
18904 ,p_level => C_LEVEL_PROCEDURE
18905 ,p_module => l_log_module);
18906
18907 END IF;
18908
18909 -- select APPS owner
18910 SELECT oracle_username
18911 INTO p_apps_owner
18912 FROM fnd_oracle_userid
18913 WHERE read_only_flag = 'U'
18914 ;
18915
18916 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
18917 trace
18918 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
18919 ' - p_language = '||p_language||
18920 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
18921 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
18922 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
18923 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
18924 ,p_level => C_LEVEL_STATEMENT
18925 ,p_module => l_log_module);
18926 END IF;
18927
18928
18929 --
18930 INSERT INTO xla_diag_sources --hdr1
18931 (
18932 event_id
18933 , ledger_id
18934 , sla_ledger_id
18935 , description_language
18936 , object_name
18937 , object_type_code
18938 , line_number
18939 , source_application_id
18940 , source_type_code
18941 , source_code
18942 , source_value
18943 , source_meaning
18944 , created_by
18945 , creation_date
18946 , last_update_date
18947 , last_updated_by
18948 , last_update_login
18949 , program_update_date
18950 , program_application_id
18951 , program_id
18952 , request_id
18953 )
18954 SELECT
18955 event_id
18956 , p_target_ledger_id
18957 , p_sla_ledger_id
18958 , p_language
18959 , object_name
18960 , object_type_code
18961 , line_number
18962 , source_application_id
18963 , source_type_code
18964 , source_code
18965 , SUBSTR(source_value ,1,1996)
18966 , SUBSTR(source_meaning,1,200)
18967 , xla_environment_pkg.g_Usr_Id
18968 , TRUNC(SYSDATE)
18969 , TRUNC(SYSDATE)
18970 , xla_environment_pkg.g_Usr_Id
18971 , xla_environment_pkg.g_Login_Id
18972 , TRUNC(SYSDATE)
18973 , xla_environment_pkg.g_Prog_Appl_Id
18974 , xla_environment_pkg.g_Prog_Id
18975 , xla_environment_pkg.g_Req_Id
18976 FROM (
18977 SELECT xet.event_id event_id
18978 , 0 line_number
18979 , CASE r
18980 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
18981 WHEN 2 THEN 'CST_XLA_INV_SYSTEM_ITEMS_REF_V'
18982 WHEN 3 THEN 'CST_XLA_INV_REF_V'
18983 WHEN 4 THEN 'CST_XLA_INV_REF_V'
18984 WHEN 5 THEN 'CST_XLA_INV_TXN_TYPES_REF_V'
18985 WHEN 6 THEN 'CST_XLA_INV_HEADERS_V'
18986 WHEN 7 THEN 'CST_XLA_INV_ORG_PARAMS_REF_V'
18987 WHEN 8 THEN 'CST_XLA_INV_REF_V'
18988 WHEN 9 THEN 'CST_XLA_INV_REF_V'
18989 WHEN 10 THEN 'CST_XLA_INV_REF_V'
18990 WHEN 11 THEN 'PSA_CST_XLA_UPG_V'
18991 WHEN 12 THEN 'PO_REQ_HEADERS_REF_V'
18992 WHEN 13 THEN 'PO_REQ_DISTS_REF_V'
18993 WHEN 14 THEN 'CST_XLA_INV_REF_V'
18994 WHEN 15 THEN 'CST_XLA_INV_REF_V'
18995 WHEN 16 THEN 'CST_XLA_INV_REF_V'
18996 WHEN 17 THEN 'CST_XLA_INV_REF_V'
18997 WHEN 18 THEN 'PO_REQ_DISTS_REF_V'
18998 WHEN 19 THEN 'PO_REQ_HEADERS_REF_V'
18999 WHEN 20 THEN 'CST_XLA_INV_HEADERS_V'
19000
19001 ELSE null
19002 END object_name
19003 , CASE r
19004 WHEN 1 THEN 'HEADER'
19005 WHEN 2 THEN 'HEADER'
19006 WHEN 3 THEN 'HEADER'
19007 WHEN 4 THEN 'HEADER'
19008 WHEN 5 THEN 'HEADER'
19009 WHEN 6 THEN 'HEADER'
19010 WHEN 7 THEN 'HEADER'
19011 WHEN 8 THEN 'HEADER'
19012 WHEN 9 THEN 'HEADER'
19013 WHEN 10 THEN 'HEADER'
19014 WHEN 11 THEN 'HEADER'
19015 WHEN 12 THEN 'HEADER'
19016 WHEN 13 THEN 'HEADER'
19017 WHEN 14 THEN 'HEADER'
19018 WHEN 15 THEN 'HEADER'
19019 WHEN 16 THEN 'HEADER'
19020 WHEN 17 THEN 'HEADER'
19021 WHEN 18 THEN 'HEADER'
19022 WHEN 19 THEN 'HEADER'
19023 WHEN 20 THEN 'HEADER'
19024
19025 ELSE null
19026 END object_type_code
19027 , CASE r
19028 WHEN 1 THEN '707'
19029 WHEN 2 THEN '707'
19030 WHEN 3 THEN '707'
19031 WHEN 4 THEN '707'
19032 WHEN 5 THEN '707'
19033 WHEN 6 THEN '707'
19034 WHEN 7 THEN '707'
19035 WHEN 8 THEN '707'
19036 WHEN 9 THEN '707'
19037 WHEN 10 THEN '707'
19038 WHEN 11 THEN '707'
19039 WHEN 12 THEN '201'
19040 WHEN 13 THEN '201'
19041 WHEN 14 THEN '707'
19042 WHEN 15 THEN '707'
19043 WHEN 16 THEN '707'
19044 WHEN 17 THEN '707'
19045 WHEN 18 THEN '201'
19046 WHEN 19 THEN '201'
19047 WHEN 20 THEN '707'
19048
19049 ELSE null
19050 END source_application_id
19051 , 'S' source_type_code
19052 , CASE r
19053 WHEN 1 THEN 'TRANSACTION_ID'
19054 WHEN 2 THEN 'ITEM_CONCATENATED_SEGMENTS'
19055 WHEN 3 THEN 'TRANSACTION_QUANTITY'
19056 WHEN 4 THEN 'TRANSACTION_UOM'
19057 WHEN 5 THEN 'INV_TXN_TYPE_DESCRIPTION'
19058 WHEN 6 THEN 'DISTRIBUTION_TYPE'
19059 WHEN 7 THEN 'ENCUMBRANCE_REVERSAL_FLAG'
19060 WHEN 8 THEN 'APPLIED_TO_APPL_ID'
19061 WHEN 9 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
19062 WHEN 10 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
19063 WHEN 11 THEN 'CST_ENCUM_UPG_OPTION'
19064 WHEN 12 THEN 'REQ_ENCUMBRANCE_FLAG'
19065 WHEN 13 THEN 'REQ_RESERVED_FLAG'
19066 WHEN 14 THEN 'BUS_FLOW_REQ_DIST_TYPE'
19067 WHEN 15 THEN 'BUS_FLOW_REQ_ENTITY_CODE'
19068 WHEN 16 THEN 'BUS_FLOW_REQ_DIST_ID'
19069 WHEN 17 THEN 'BUS_FLOW_REQ_ID'
19070 WHEN 18 THEN 'REQ_BUDGET_ACCOUNT'
19071 WHEN 19 THEN 'REQ_ENCUMBRANCE_TYPE_ID'
19072 WHEN 20 THEN 'TRANSFER_TO_GL_INDICATOR'
19073
19074 ELSE null
19075 END source_code
19076 , CASE r
19077 WHEN 1 THEN TO_CHAR(h1.TRANSACTION_ID)
19078 WHEN 2 THEN TO_CHAR(h5.ITEM_CONCATENATED_SEGMENTS)
19079 WHEN 3 THEN TO_CHAR(h4.TRANSACTION_QUANTITY)
19080 WHEN 4 THEN TO_CHAR(h4.TRANSACTION_UOM)
19081 WHEN 5 THEN TO_CHAR(h6.INV_TXN_TYPE_DESCRIPTION)
19082 WHEN 6 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
19083 WHEN 7 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_FLAG)
19084 WHEN 8 THEN TO_CHAR(h4.APPLIED_TO_APPL_ID)
19085 WHEN 9 THEN TO_CHAR(h4.ENCUM_REVERSAL_AMOUNT_ENTERED)
19086 WHEN 10 THEN TO_CHAR(h4.ENCUMBRANCE_REVERSAL_AMOUNT)
19087 WHEN 11 THEN TO_CHAR(h9.CST_ENCUM_UPG_OPTION)
19088 WHEN 12 THEN TO_CHAR(h8.REQ_ENCUMBRANCE_FLAG)
19089 WHEN 13 THEN TO_CHAR(h7.REQ_RESERVED_FLAG)
19090 WHEN 14 THEN TO_CHAR(h4.BUS_FLOW_REQ_DIST_TYPE)
19091 WHEN 15 THEN TO_CHAR(h4.BUS_FLOW_REQ_ENTITY_CODE)
19092 WHEN 16 THEN TO_CHAR(h4.BUS_FLOW_REQ_DIST_ID)
19093 WHEN 17 THEN TO_CHAR(h4.BUS_FLOW_REQ_ID)
19094 WHEN 18 THEN TO_CHAR(h7.REQ_BUDGET_ACCOUNT)
19095 WHEN 19 THEN TO_CHAR(h8.REQ_ENCUMBRANCE_TYPE_ID)
19096 WHEN 20 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
19097
19098 ELSE null
19099 END source_value
19100 , CASE r
19101 WHEN 6 THEN fvl9.meaning
19102 WHEN 20 THEN fvl42.meaning
19103
19104 ELSE null
19105 END source_meaning
19106 FROM xla_events_gt xet
19107 , CST_XLA_INV_HEADERS_V h1
19108 , CST_XLA_INV_ORG_PARAMS_REF_V h3
19109 , CST_XLA_INV_REF_V h4
19110 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
19111 , CST_XLA_INV_TXN_TYPES_REF_V h6
19112 , PO_REQ_DISTS_REF_V h7
19113 , PO_REQ_HEADERS_REF_V h8
19114 , PSA_CST_XLA_UPG_V h9
19115 , fnd_lookup_values fvl9
19116 , fnd_lookup_values fvl42
19117 ,(select rownum r from all_objects where rownum <= 20 and owner = p_apps_owner)
19118 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
19119 AND xet.event_type_code = C_EVENT_TYPE_CODE
19120 AND h1.event_id = xet.event_id
19121 AND h3.inv_organization_id (+) = h1.organization_id AND h4.ref_transaction_id = h1.transaction_id AND h5.inventory_item_id = h1.inventory_item_id and h5.organization_id = h1.organization_id AND h6.inv_transaction_type_id = h1.transaction_type_id AND h4.bus_flow_req_dist_id=h7.req_distribution_id (+) AND h4.bus_flow_req_id = h8.req_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
19122 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
19123 AND fvl9.view_application_id(+) = 700
19124 AND fvl9.language(+) = USERENV('LANG')
19125 AND fvl42.lookup_type(+) = 'YES_NO'
19126 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
19127 AND fvl42.view_application_id(+) = 0
19128 AND fvl42.language(+) = USERENV('LANG')
19129
19130 )
19131 ;
19132 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
19133
19134 trace
19135 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
19136 ,p_level => C_LEVEL_STATEMENT
19137 ,p_module => l_log_module);
19138
19139 END IF;
19140 --
19141
19142
19143
19144 --
19145 INSERT INTO xla_diag_sources --line1
19146 (
19147 event_id
19148 , ledger_id
19149 , sla_ledger_id
19150 , description_language
19151 , object_name
19152 , object_type_code
19153 , line_number
19154 , source_application_id
19155 , source_type_code
19156 , source_code
19157 , source_value
19158 , source_meaning
19159 , created_by
19160 , creation_date
19161 , last_update_date
19162 , last_updated_by
19163 , last_update_login
19164 , program_update_date
19165 , program_application_id
19166 , program_id
19167 , request_id
19168 )
19169 SELECT event_id
19170 , p_target_ledger_id
19171 , p_sla_ledger_id
19172 , p_language
19173 , object_name
19174 , object_type_code
19175 , line_number
19176 , source_application_id
19177 , source_type_code
19178 , source_code
19179 , SUBSTR(source_value,1,1996)
19180 , SUBSTR(source_meaning,1,200)
19181 , xla_environment_pkg.g_Usr_Id
19182 , TRUNC(SYSDATE)
19183 , TRUNC(SYSDATE)
19184 , xla_environment_pkg.g_Usr_Id
19185 , xla_environment_pkg.g_Login_Id
19186 , TRUNC(SYSDATE)
19187 , xla_environment_pkg.g_Prog_Appl_Id
19188 , xla_environment_pkg.g_Prog_Id
19189 , xla_environment_pkg.g_Req_Id
19190 FROM (
19191 SELECT xet.event_id event_id
19192 , l2.line_number line_number
19193 , CASE r
19194 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
19195 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
19196 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
19197
19198 ELSE null
19199 END object_name
19200 , CASE r
19201 WHEN 1 THEN 'LINE'
19202 WHEN 2 THEN 'LINE'
19203 WHEN 3 THEN 'LINE'
19204
19205 ELSE null
19206 END object_type_code
19207 , CASE r
19208 WHEN 1 THEN '707'
19209 WHEN 2 THEN '707'
19210 WHEN 3 THEN '707'
19211
19212 ELSE null
19213 END source_application_id
19214 , 'S' source_type_code
19215 , CASE r
19216 WHEN 1 THEN 'ACCOUNTING_LINE_TYPE_CODE'
19217 WHEN 2 THEN 'DISTRIBUTION_IDENTIFIER'
19218 WHEN 3 THEN 'CURRENCY_CODE'
19219
19220 ELSE null
19221 END source_code
19222 , CASE r
19223 WHEN 1 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
19224 WHEN 2 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
19225 WHEN 3 THEN TO_CHAR(l2.CURRENCY_CODE)
19226
19227 ELSE null
19228 END source_value
19229 , null source_meaning
19230 FROM xla_events_gt xet
19231 , CST_XLA_INV_LINES_V l2
19232 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
19233 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
19234 AND xet.event_type_code = C_EVENT_TYPE_CODE
19235 AND l2.event_id = xet.event_id
19236
19237 )
19238 ;
19239 --
19240 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
19241
19242 trace
19243 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
19244 ,p_level => C_LEVEL_STATEMENT
19245 ,p_module => l_log_module);
19246
19247 END IF;
19248
19249
19250 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19251 trace
19252 (p_msg => 'END of insert_sources_31'
19253 ,p_level => C_LEVEL_PROCEDURE
19254 ,p_module => l_log_module);
19255 END IF;
19256 EXCEPTION
19257 WHEN xla_exceptions_pkg.application_exception THEN
19258 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
19259 trace
19260 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
19261 ,p_level => C_LEVEL_EXCEPTION
19262 ,p_module => l_log_module);
19263 END IF;
19264 RAISE;
19265 WHEN OTHERS THEN
19266 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
19267 trace
19268 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
19269 ,p_level => C_LEVEL_EXCEPTION
19270 ,p_module => l_log_module);
19271 END IF;
19272 xla_exceptions_pkg.raise_message
19273 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_31');
19274 END insert_sources_31;
19275 --
19276
19277 ---------------------------------------
19278 --
19279 -- PRIVATE FUNCTION
19280 -- EventType_31
19281 --
19282 ----------------------------------------
19283 --
19284 FUNCTION EventType_31
19285 (p_application_id IN NUMBER
19286 ,p_base_ledger_id IN NUMBER
19287 ,p_target_ledger_id IN NUMBER
19288 ,p_language IN VARCHAR2
19289 ,p_currency_code IN VARCHAR2
19290 ,p_sla_ledger_id IN NUMBER
19291 ,p_pad_start_date IN DATE
19292 ,p_pad_end_date IN DATE
19293 ,p_primary_ledger_id IN NUMBER)
19294 RETURN BOOLEAN IS
19295 --
19296 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FOB_RCPT_RECIPIENT_RCPT_NO_TP';
19297 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FOB_RCPT_RECIPIENT_RCPT';
19298
19299 l_calculate_acctd_flag VARCHAR2(1) :='N';
19300 l_calculate_g_l_flag VARCHAR2(1) :='N';
19301 --
19302 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
19303 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
19304 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
19305 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
19306 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
19307 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
19308 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
19309 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
19310 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
19311 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
19312 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
19313 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
19314 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
19315 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
19316 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
19317 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
19318 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
19319 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
19320 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
19321 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
19322 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
19323 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
19324 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
19325 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
19326 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
19327 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
19328
19329 l_event_id NUMBER;
19330 l_previous_event_id NUMBER;
19331 l_first_event_id NUMBER;
19332 l_last_event_id NUMBER;
19333
19334 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
19335 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19336 --
19337 --
19338 l_result BOOLEAN := TRUE;
19339 l_rows NUMBER := 1000;
19340 l_event_type_name VARCHAR2(80) := 'Recipient-side Intransit Interorg Receipt for FOB Receipt, no Transfer Pricing';
19341 l_event_class_name VARCHAR2(80) := 'Recipient-side Intransit Interorg Receipt for FOB Receipt';
19342 l_description VARCHAR2(4000);
19343 l_transaction_reversal NUMBER;
19344 l_ae_header_id NUMBER;
19345 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
19346 l_log_module VARCHAR2(240);
19347 --
19348 l_acct_reversal_source VARCHAR2(30);
19349 l_trx_reversal_source VARCHAR2(30);
19350
19351 l_continue_with_lines BOOLEAN := TRUE;
19352 --
19353 l_acc_rev_gl_date_source DATE; -- 4262811
19354 --
19355 type t_array_event_id is table of number index by binary_integer;
19356
19357 l_rec_array_event t_rec_array_event;
19358 l_null_rec_array_event t_rec_array_event;
19359 l_array_ae_header_id xla_number_array_type;
19360 l_actual_flag VARCHAR2(1) := NULL;
19361 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
19362 l_balance_type_code VARCHAR2(1) :=NULL;
19363 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
19364
19365 --
19366 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
19367 --
19368
19369 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSACTION_ID%TYPE INDEX BY BINARY_INTEGER;
19370 TYPE t_array_source_2 IS TABLE OF CST_XLA_INV_SYSTEM_ITEMS_REF_V.ITEM_CONCATENATED_SEGMENTS%TYPE INDEX BY BINARY_INTEGER;
19371 TYPE t_array_source_3 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_QUANTITY%TYPE INDEX BY BINARY_INTEGER;
19372 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_UOM%TYPE INDEX BY BINARY_INTEGER;
19373 TYPE t_array_source_5 IS TABLE OF CST_XLA_INV_TXN_TYPES_REF_V.INV_TXN_TYPE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
19374 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
19375 TYPE t_array_source_17 IS TABLE OF CST_XLA_INV_ORG_PARAMS_REF_V.ENCUMBRANCE_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
19376 TYPE t_array_source_19 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
19377 TYPE t_array_source_25 IS TABLE OF CST_XLA_INV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
19378 TYPE t_array_source_26 IS TABLE OF CST_XLA_INV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
19379 TYPE t_array_source_27 IS TABLE OF PSA_CST_XLA_UPG_V.CST_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
19380 TYPE t_array_source_33 IS TABLE OF PO_REQ_HEADERS_REF_V.REQ_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
19381 TYPE t_array_source_34 IS TABLE OF PO_REQ_DISTS_REF_V.REQ_RESERVED_FLAG%TYPE INDEX BY BINARY_INTEGER;
19382 TYPE t_array_source_35 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
19383 TYPE t_array_source_36 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
19384 TYPE t_array_source_37 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
19385 TYPE t_array_source_38 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_ID%TYPE INDEX BY BINARY_INTEGER;
19386 TYPE t_array_source_39 IS TABLE OF PO_REQ_DISTS_REF_V.REQ_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
19387 TYPE t_array_source_40 IS TABLE OF PO_REQ_HEADERS_REF_V.REQ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
19388 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
19389
19390 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
19391 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
19392 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
19393
19394 l_array_source_1 t_array_source_1;
19395 l_array_source_2 t_array_source_2;
19396 l_array_source_3 t_array_source_3;
19397 l_array_source_4 t_array_source_4;
19398 l_array_source_5 t_array_source_5;
19399 l_array_source_9 t_array_source_9;
19400 l_array_source_9_meaning t_array_lookup_meaning;
19401 l_array_source_17 t_array_source_17;
19402 l_array_source_19 t_array_source_19;
19403 l_array_source_25 t_array_source_25;
19404 l_array_source_26 t_array_source_26;
19405 l_array_source_27 t_array_source_27;
19406 l_array_source_33 t_array_source_33;
19407 l_array_source_34 t_array_source_34;
19408 l_array_source_35 t_array_source_35;
19409 l_array_source_36 t_array_source_36;
19410 l_array_source_37 t_array_source_37;
19411 l_array_source_38 t_array_source_38;
19412 l_array_source_39 t_array_source_39;
19413 l_array_source_40 t_array_source_40;
19414 l_array_source_42 t_array_source_42;
19415 l_array_source_42_meaning t_array_lookup_meaning;
19416
19417 l_array_source_7 t_array_source_7;
19418 l_array_source_8 t_array_source_8;
19419 l_array_source_11 t_array_source_11;
19420
19421 --
19422 CURSOR header_cur
19423 IS
19424 SELECT /*+ leading(xet) cardinality(xet,1) */
19425 -- Event Type Code: FOB_RCPT_RECIPIENT_RCPT_NO_TP
19426 -- Event Class Code: FOB_RCPT_RECIPIENT_RCPT
19427 xet.entity_id
19428 , xet.legal_entity_id
19429 , xet.entity_code
19430 , xet.transaction_number
19431 , xet.event_id
19432 , xet.event_class_code
19433 , xet.event_type_code
19434 , xet.event_number
19435 , xet.event_date
19436 , xet.transaction_date
19437 , xet.reference_num_1
19438 , xet.reference_num_2
19439 , xet.reference_num_3
19440 , xet.reference_num_4
19441 , xet.reference_char_1
19442 , xet.reference_char_2
19443 , xet.reference_char_3
19444 , xet.reference_char_4
19445 , xet.reference_date_1
19446 , xet.reference_date_2
19447 , xet.reference_date_3
19448 , xet.reference_date_4
19449 , xet.event_created_by
19450 , xet.budgetary_control_flag
19451 , h1.TRANSACTION_ID source_1
19452 , h5.ITEM_CONCATENATED_SEGMENTS source_2
19453 , h4.TRANSACTION_QUANTITY source_3
19454 , h4.TRANSACTION_UOM source_4
19455 , h6.INV_TXN_TYPE_DESCRIPTION source_5
19456 , h1.DISTRIBUTION_TYPE source_9
19457 , fvl9.meaning source_9_meaning
19458 , h3.ENCUMBRANCE_REVERSAL_FLAG source_17
19459 , h4.APPLIED_TO_APPL_ID source_19
19460 , h4.ENCUM_REVERSAL_AMOUNT_ENTERED source_25
19461 , h4.ENCUMBRANCE_REVERSAL_AMOUNT source_26
19462 , h9.CST_ENCUM_UPG_OPTION source_27
19463 , h8.REQ_ENCUMBRANCE_FLAG source_33
19464 , h7.REQ_RESERVED_FLAG source_34
19465 , h4.BUS_FLOW_REQ_DIST_TYPE source_35
19466 , h4.BUS_FLOW_REQ_ENTITY_CODE source_36
19467 , h4.BUS_FLOW_REQ_DIST_ID source_37
19468 , h4.BUS_FLOW_REQ_ID source_38
19469 , h7.REQ_BUDGET_ACCOUNT source_39
19470 , h8.REQ_ENCUMBRANCE_TYPE_ID source_40
19471 , h1.TRANSFER_TO_GL_INDICATOR source_42
19472 , fvl42.meaning source_42_meaning
19473 FROM xla_events_gt xet
19474 , CST_XLA_INV_HEADERS_V h1
19475 , CST_XLA_INV_ORG_PARAMS_REF_V h3
19476 , CST_XLA_INV_REF_V h4
19477 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
19478 , CST_XLA_INV_TXN_TYPES_REF_V h6
19479 , PO_REQ_DISTS_REF_V h7
19480 , PO_REQ_HEADERS_REF_V h8
19481 , PSA_CST_XLA_UPG_V h9
19482 , fnd_lookup_values fvl9
19483 , fnd_lookup_values fvl42
19484 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
19485 and xet.event_type_code = C_EVENT_TYPE_CODE
19486 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
19487 AND h3.INV_ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h4.ref_transaction_id = h1.transaction_id AND h5.INVENTORY_ITEM_ID = h1.INVENTORY_ITEM_ID AND h5.ORGANIZATION_ID = h1.ORGANIZATION_ID AND h6.INV_TRANSACTION_TYPE_ID = h1.TRANSACTION_TYPE_ID AND h4.BUS_FLOW_REQ_DIST_ID=h7.REQ_DISTRIBUTION_ID (+) AND h4.BUS_FLOW_REQ_ID = h8.REQ_ID (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
19488 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
19489 AND fvl9.view_application_id(+) = 700
19490 AND fvl9.language(+) = USERENV('LANG')
19491 AND fvl42.lookup_type(+) = 'YES_NO'
19492 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
19493 AND fvl42.view_application_id(+) = 0
19494 AND fvl42.language(+) = USERENV('LANG')
19495
19496 ORDER BY event_id
19497 ;
19498
19499
19500 --
19501 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
19502 IS
19503 SELECT /*+ leading(xet) cardinality(xet,1) */
19504 -- Event Type Code: FOB_RCPT_RECIPIENT_RCPT_NO_TP
19505 -- Event Class Code: FOB_RCPT_RECIPIENT_RCPT
19506 xet.entity_id
19507 ,xet.legal_entity_id
19508 ,xet.entity_code
19509 ,xet.transaction_number
19510 ,xet.event_id
19511 ,xet.event_class_code
19512 ,xet.event_type_code
19513 ,xet.event_number
19514 ,xet.event_date
19515 ,xet.transaction_date
19516 ,xet.reference_num_1
19517 ,xet.reference_num_2
19518 ,xet.reference_num_3
19519 ,xet.reference_num_4
19520 ,xet.reference_char_1
19521 ,xet.reference_char_2
19522 ,xet.reference_char_3
19523 ,xet.reference_char_4
19524 ,xet.reference_date_1
19525 ,xet.reference_date_2
19526 ,xet.reference_date_3
19527 ,xet.reference_date_4
19528 ,xet.event_created_by
19529 ,xet.budgetary_control_flag , l2.LINE_NUMBER
19530 , l2.ACCOUNTING_LINE_TYPE_CODE source_7
19531 , l2.DISTRIBUTION_IDENTIFIER source_8
19532 , l2.CURRENCY_CODE source_11
19533 FROM xla_events_gt xet
19534 , CST_XLA_INV_LINES_V l2
19535 WHERE xet.event_id between x_first_event_id and x_last_event_id
19536 and xet.event_date between p_pad_start_date and p_pad_end_date
19537 and xet.event_type_code = C_EVENT_TYPE_CODE
19538 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
19539 ;
19540
19541 --
19542 BEGIN
19543 IF g_log_enabled THEN
19544 l_log_module := C_DEFAULT_MODULE||'.EventType_31';
19545 END IF;
19546 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19547 trace
19548 (p_msg => 'BEGIN of EventType_31'
19549 ,p_level => C_LEVEL_PROCEDURE
19550 ,p_module => l_log_module);
19551 END IF;
19552
19553 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
19554 trace
19555 (p_msg => 'p_application_id = '||p_application_id||
19556 ' - p_base_ledger_id = '||p_base_ledger_id||
19557 ' - p_target_ledger_id = '||p_target_ledger_id||
19558 ' - p_language = '||p_language||
19559 ' - p_currency_code = '||p_currency_code||
19560 ' - p_sla_ledger_id = '||p_sla_ledger_id
19561 ,p_level => C_LEVEL_STATEMENT
19562 ,p_module => l_log_module);
19563 END IF;
19564 --
19565 -- initialze arrays
19566 --
19567 g_array_event.DELETE;
19568 l_rec_array_event := l_null_rec_array_event;
19569 --
19570 --------------------------------------
19571 -- 4262811 Initialze MPA Line Number
19572 --------------------------------------
19573 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
19574
19575 --
19576
19577 --
19578 OPEN header_cur;
19579 --
19580 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
19581 trace
19582 (p_msg => 'SQL - FETCH header_cur'
19583 ,p_level => C_LEVEL_STATEMENT
19584 ,p_module => l_log_module);
19585 END IF;
19586 --
19587 LOOP
19588 FETCH header_cur BULK COLLECT INTO
19589 l_array_entity_id
19590 , l_array_legal_entity_id
19591 , l_array_entity_code
19592 , l_array_transaction_num
19593 , l_array_event_id
19594 , l_array_class_code
19595 , l_array_event_type
19596 , l_array_event_number
19597 , l_array_event_date
19598 , l_array_transaction_date
19599 , l_array_reference_num_1
19600 , l_array_reference_num_2
19601 , l_array_reference_num_3
19602 , l_array_reference_num_4
19603 , l_array_reference_char_1
19604 , l_array_reference_char_2
19605 , l_array_reference_char_3
19606 , l_array_reference_char_4
19607 , l_array_reference_date_1
19608 , l_array_reference_date_2
19609 , l_array_reference_date_3
19610 , l_array_reference_date_4
19611 , l_array_event_created_by
19612 , l_array_budgetary_control_flag
19613 , l_array_source_1
19614 , l_array_source_2
19615 , l_array_source_3
19616 , l_array_source_4
19617 , l_array_source_5
19618 , l_array_source_9
19619 , l_array_source_9_meaning
19620 , l_array_source_17
19621 , l_array_source_19
19622 , l_array_source_25
19623 , l_array_source_26
19624 , l_array_source_27
19625 , l_array_source_33
19626 , l_array_source_34
19627 , l_array_source_35
19628 , l_array_source_36
19629 , l_array_source_37
19630 , l_array_source_38
19631 , l_array_source_39
19632 , l_array_source_40
19633 , l_array_source_42
19634 , l_array_source_42_meaning
19635 LIMIT l_rows;
19636 --
19637 IF (C_LEVEL_EVENT >= g_log_level) THEN
19638 trace
19639 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
19640 ,p_level => C_LEVEL_EVENT
19641 ,p_module => l_log_module);
19642 END IF;
19643 --
19644 EXIT WHEN l_array_entity_id.COUNT = 0;
19645
19646 -- initialize arrays
19647 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
19648 XLA_AE_LINES_PKG.g_rec_lines := NULL;
19649
19650 --
19651 -- Bug 4458708
19652 --
19653 XLA_AE_LINES_PKG.g_LineNumber := 0;
19654
19655
19656 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
19657 g_last_hdr_idx := l_array_event_id.LAST;
19658 --
19659 -- loop for the headers. Each iteration is for each header extract row
19660 -- fetched in header cursor
19661 --
19662 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
19663
19664 --
19665 -- set event info as cache for other routines to refer event attributes
19666 --
19667 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
19668 (p_application_id => p_application_id
19669 ,p_primary_ledger_id => p_primary_ledger_id
19670 ,p_base_ledger_id => p_base_ledger_id
19671 ,p_target_ledger_id => p_target_ledger_id
19672 ,p_entity_id => l_array_entity_id(hdr_idx)
19673 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
19674 ,p_entity_code => l_array_entity_code(hdr_idx)
19675 ,p_transaction_num => l_array_transaction_num(hdr_idx)
19676 ,p_event_id => l_array_event_id(hdr_idx)
19677 ,p_event_class_code => l_array_class_code(hdr_idx)
19678 ,p_event_type_code => l_array_event_type(hdr_idx)
19679 ,p_event_number => l_array_event_number(hdr_idx)
19680 ,p_event_date => l_array_event_date(hdr_idx)
19681 ,p_transaction_date => l_array_transaction_date(hdr_idx)
19682 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
19683 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
19684 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
19685 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
19686 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
19687 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
19688 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
19689 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
19690 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
19691 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
19692 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
19693 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
19694 ,p_event_created_by => l_array_event_created_by(hdr_idx)
19695 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
19696
19697 --
19698 -- set the status of entry to C_VALID (0)
19699 --
19700 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
19701
19702 --
19703 -- initialize a row for ae header
19704 --
19705 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
19706
19707 l_event_id := l_array_event_id(hdr_idx);
19708
19709 --
19710 -- storing the hdr_idx for event. May be used by line cursor.
19711 --
19712 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
19713
19714 --
19715 -- store sources from header extract. This can be improved to
19716 -- store only those sources from header extract that may be used in lines
19717 --
19718
19719 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
19720 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
19721 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
19722 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
19723 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
19724 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
19725 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
19726 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
19727 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
19728 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
19729 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
19730 g_array_event(l_event_id).array_value_char('source_27') := l_array_source_27(hdr_idx);
19731 g_array_event(l_event_id).array_value_char('source_33') := l_array_source_33(hdr_idx);
19732 g_array_event(l_event_id).array_value_char('source_34') := l_array_source_34(hdr_idx);
19733 g_array_event(l_event_id).array_value_char('source_35') := l_array_source_35(hdr_idx);
19734 g_array_event(l_event_id).array_value_char('source_36') := l_array_source_36(hdr_idx);
19735 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
19736 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
19737 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
19738 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
19739 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
19740 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
19741
19742 --
19743 -- initilaize the status of ae headers for diffrent balance types
19744 -- the status is initialised to C_NOT_CREATED (2)
19745 --
19746 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
19747 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
19748 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
19749
19750 --
19751 -- call api to validate and store accounting attributes for header
19752 --
19753
19754 ------------------------------------------------------------
19755 -- Accrual Reversal : to get date for Standard Source (NONE)
19756 ------------------------------------------------------------
19757 l_acc_rev_gl_date_source := NULL;
19758
19759 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
19760 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_40');
19761 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
19762 l_rec_acct_attrs.array_date_value(2) :=
19763 xla_ae_sources_pkg.GetSystemSourceDate(
19764 p_source_code => 'XLA_REFERENCE_DATE_1'
19765 , p_source_type_code => 'Y'
19766 , p_source_application_id => 602
19767 );
19768 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
19769 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_42');
19770
19771
19772 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
19773
19774 XLA_AE_HEADER_PKG.SetJeCategoryName;
19775
19776 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
19777 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
19778 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
19779 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
19780 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
19781
19782
19783 --
19784 xla_ae_header_pkg.SetHdrDescription(
19785 p_description => Description_1 (
19786 p_application_id => p_application_id
19787 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
19788 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
19789 , p_source_3 => g_array_event(l_event_id).array_value_num('source_3')
19790 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
19791 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
19792 )
19793 );
19794 --
19795
19796 -- No header level analytical criteria
19797
19798 --
19799 --accounting attribute enhancement, bug 3612931
19800 --
19801 l_trx_reversal_source := SUBSTR(NULL, 1,30);
19802
19803 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
19804 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
19805
19806 xla_accounting_err_pkg.build_message
19807 (p_appli_s_name => 'XLA'
19808 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
19809 ,p_token_1 => 'ACCT_ATTR_NAME'
19810 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
19811 ,p_token_2 => 'PRODUCT_NAME'
19812 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
19813 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
19814 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
19815 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
19816
19817 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
19818 --
19819 -- following sets the accounting attributes needed to reverse
19820 -- accounting for a distributeion
19821 --
19822 xla_ae_lines_pkg.SetTrxReversalAttrs
19823 (p_event_id => l_event_id
19824 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
19825 ,p_trx_reversal_source => l_trx_reversal_source);
19826
19827 END IF;
19828
19829
19830 ----------------------------------------------------------------
19831 -- 4262811 - update the header statuses to invalid in need be
19832 ----------------------------------------------------------------
19833 --
19834 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
19835
19836
19837 -----------------------------------------------
19838 -- No accrual reversal for the event class/type
19839 -----------------------------------------------
19840 ----------------------------------------------------------------
19841
19842 --
19843 -- this ends the header loop iteration for one bulk fetch
19844 --
19845 END LOOP;
19846
19847 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
19848 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
19849
19850 --
19851 -- insert dummy rows into lines gt table that were created due to
19852 -- transaction reversals
19853 --
19854 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
19855 l_result := XLA_AE_LINES_PKG.InsertLines;
19856 END IF;
19857
19858 --
19859 -- reset the temp_line_num for each set of events fetched from header
19860 -- cursor rather than doing it for each new event in line cursor
19861 -- Bug 3939231
19862 --
19863 xla_ae_lines_pkg.g_temp_line_num := 0;
19864
19865
19866
19867 --
19868 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
19869 --
19870 --
19871 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
19872
19873 trace
19874 (p_msg => 'SQL - FETCH line_cur'
19875 ,p_level => C_LEVEL_STATEMENT
19876 ,p_module => l_log_module);
19877
19878 END IF;
19879 --
19880 --
19881 LOOP
19882 --
19883 FETCH line_cur BULK COLLECT INTO
19884 l_array_entity_id
19885 , l_array_legal_entity_id
19886 , l_array_entity_code
19887 , l_array_transaction_num
19888 , l_array_event_id
19889 , l_array_class_code
19890 , l_array_event_type
19891 , l_array_event_number
19892 , l_array_event_date
19893 , l_array_transaction_date
19894 , l_array_reference_num_1
19895 , l_array_reference_num_2
19896 , l_array_reference_num_3
19897 , l_array_reference_num_4
19898 , l_array_reference_char_1
19899 , l_array_reference_char_2
19900 , l_array_reference_char_3
19901 , l_array_reference_char_4
19902 , l_array_reference_date_1
19903 , l_array_reference_date_2
19904 , l_array_reference_date_3
19905 , l_array_reference_date_4
19906 , l_array_event_created_by
19907 , l_array_budgetary_control_flag
19908 , l_array_extract_line_num
19909 , l_array_source_7
19910 , l_array_source_8
19911 , l_array_source_11
19912 LIMIT l_rows;
19913
19914 --
19915 IF (C_LEVEL_EVENT >= g_log_level) THEN
19916 trace
19917 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
19918 ,p_level => C_LEVEL_EVENT
19919 ,p_module => l_log_module);
19920 END IF;
19921 --
19922 EXIT WHEN l_array_entity_id.count = 0;
19923
19924 XLA_AE_LINES_PKG.g_rec_lines := null;
19925
19926 --
19927 -- Bug 4458708
19928 --
19929 XLA_AE_LINES_PKG.g_LineNumber := 0;
19930 --
19931 --
19932
19933 FOR Idx IN 1..l_array_event_id.count LOOP
19934 --
19935 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
19936 --
19937 l_event_id := l_array_event_id(idx); -- 5648433
19938
19939 --
19940 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
19941 --
19942
19943 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
19944 (g_array_event(l_event_id).array_value_num('header_index'))
19945 ,'N'
19946 ) <> 'Y'
19947 THEN
19948 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
19949 trace
19950 (p_msg => 'Trancaction revesal option is not Y '
19951 ,p_level => C_LEVEL_STATEMENT
19952 ,p_module => l_log_module);
19953 END IF;
19954
19955 --
19956 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
19957 --
19958 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
19959 --
19960 -- set event info as cache for other routines to refer event attributes
19961 --
19962
19963 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
19964 l_previous_event_id := l_event_id;
19965
19966 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
19967 (p_application_id => p_application_id
19968 ,p_primary_ledger_id => p_primary_ledger_id
19969 ,p_base_ledger_id => p_base_ledger_id
19970 ,p_target_ledger_id => p_target_ledger_id
19971 ,p_entity_id => l_array_entity_id(Idx)
19972 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
19973 ,p_entity_code => l_array_entity_code(Idx)
19974 ,p_transaction_num => l_array_transaction_num(Idx)
19975 ,p_event_id => l_array_event_id(Idx)
19976 ,p_event_class_code => l_array_class_code(Idx)
19977 ,p_event_type_code => l_array_event_type(Idx)
19978 ,p_event_number => l_array_event_number(Idx)
19979 ,p_event_date => l_array_event_date(Idx)
19980 ,p_transaction_date => l_array_transaction_date(Idx)
19981 ,p_reference_num_1 => l_array_reference_num_1(Idx)
19982 ,p_reference_num_2 => l_array_reference_num_2(Idx)
19983 ,p_reference_num_3 => l_array_reference_num_3(Idx)
19984 ,p_reference_num_4 => l_array_reference_num_4(Idx)
19985 ,p_reference_char_1 => l_array_reference_char_1(Idx)
19986 ,p_reference_char_2 => l_array_reference_char_2(Idx)
19987 ,p_reference_char_3 => l_array_reference_char_3(Idx)
19988 ,p_reference_char_4 => l_array_reference_char_4(Idx)
19989 ,p_reference_date_1 => l_array_reference_date_1(Idx)
19990 ,p_reference_date_2 => l_array_reference_date_2(Idx)
19991 ,p_reference_date_3 => l_array_reference_date_3(Idx)
19992 ,p_reference_date_4 => l_array_reference_date_4(Idx)
19993 ,p_event_created_by => l_array_event_created_by(Idx)
19994 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
19995 --
19996 END IF;
19997
19998
19999
20000 --
20001 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
20002
20003 l_acct_reversal_source := SUBSTR(NULL, 1,30);
20004
20005 IF l_continue_with_lines THEN
20006 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
20007 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
20008
20009 xla_accounting_err_pkg.build_message
20010 (p_appli_s_name => 'XLA'
20011 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
20012 ,p_token_1 => 'LINE_NUMBER'
20013 ,p_value_1 => l_array_extract_line_num(Idx)
20014 ,p_token_2 => 'PRODUCT_NAME'
20015 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
20016 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
20017 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
20018 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
20019
20020 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
20021 --
20022 -- following sets the accounting attributes needed to reverse
20023 -- accounting for a distributeion
20024 --
20025
20026 --
20027 -- 5217187
20028 --
20029 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
20030 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
20031 g_array_event(l_event_id).array_value_num('header_index'));
20032 --
20033 --
20034
20035 -- No reversal code generated
20036
20037 xla_ae_lines_pkg.SetAcctReversalAttrs
20038 (p_event_id => l_event_id
20039 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
20040 ,p_calculate_acctd_flag => l_calculate_acctd_flag
20041 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
20042 END IF;
20043
20044 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
20045 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
20046
20047 --
20048 AcctLineType_24 (
20049 p_application_id => p_application_id
20050 ,p_event_id => l_event_id
20051 ,p_calculate_acctd_flag => l_calculate_acctd_flag
20052 ,p_calculate_g_l_flag => l_calculate_g_l_flag
20053 ,p_actual_flag => l_actual_flag
20054 ,p_balance_type_code => l_balance_type_code
20055 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
20056
20057 , p_source_7 => l_array_source_7(Idx)
20058 , p_source_8 => l_array_source_8(Idx)
20059 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
20060 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
20061 , p_source_11 => l_array_source_11(Idx)
20062 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
20063 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
20064 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
20065 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
20066 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
20067 , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
20068 , p_source_34 => g_array_event(l_event_id).array_value_char('source_34')
20069 , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
20070 , p_source_36 => g_array_event(l_event_id).array_value_char('source_36')
20071 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
20072 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
20073 , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
20074 , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
20075 );
20076 If(l_balance_type_code = 'A') THEN
20077 l_actual_gain_loss_ref := l_gain_or_loss_ref;
20078 END IF;
20079
20080 --
20081
20082 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
20083 -- or secondary ledger that has different currency with primary
20084 -- or alc that is calculated by sla
20085 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
20086 (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'))
20087
20088 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
20089 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
20090 AND (l_actual_flag = 'A')) THEN
20091 XLA_AE_LINES_PKG.CreateGainOrLossLines(
20092 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
20093 ,p_application_id => p_application_id
20094 ,p_amb_context_code => 'DEFAULT'
20095 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
20096 ,p_event_class_code => C_EVENT_CLASS_CODE
20097 ,p_event_type_code => C_EVENT_TYPE_CODE
20098
20099 ,p_gain_ccid => -1
20100 ,p_loss_ccid => -1
20101
20102 ,p_actual_flag => l_actual_flag
20103 ,p_enc_flag => null
20104 ,p_actual_g_l_ref => l_actual_gain_loss_ref
20105 ,p_enc_g_l_ref => null
20106 );
20107 END IF;
20108 END IF;
20109 END IF;
20110
20111 ELSE
20112 --
20113 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
20114 --
20115 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
20116 trace
20117 (p_msg => 'Trancaction revesal option is Y'
20118 ,p_level => C_LEVEL_STATEMENT
20119 ,p_module => l_log_module);
20120 END IF;
20121 END IF;
20122
20123 END LOOP;
20124 l_result := XLA_AE_LINES_PKG.InsertLines ;
20125 end loop;
20126 close line_cur;
20127
20128
20129 --
20130 -- insert headers into xla_ae_headers_gt table
20131 --
20132 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
20133
20134 -- insert into errors table here.
20135
20136 END LOOP;
20137
20138 --
20139 -- 4865292
20140 --
20141 -- Compare g_hdr_extract_count with event count in
20142 -- CreateHeadersAndLines.
20143 --
20144 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
20145
20146 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
20147 trace (p_msg => '# rows extracted from header extract objects '
20148 || ' (running total): '
20149 || g_hdr_extract_count
20150 ,p_level => C_LEVEL_STATEMENT
20151 ,p_module => l_log_module);
20152 END IF;
20153
20154 CLOSE header_cur;
20155 --
20156
20157 --
20158 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20159 trace
20160 (p_msg => 'END of EventType_31'
20161 ,p_level => C_LEVEL_PROCEDURE
20162 ,p_module => l_log_module);
20163 END IF;
20164 --
20165 RETURN l_result;
20166 EXCEPTION
20167 WHEN xla_exceptions_pkg.application_exception THEN
20168
20169 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
20170
20171
20172 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
20173
20174 RAISE;
20175
20176 WHEN NO_DATA_FOUND THEN
20177
20178 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
20179 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
20180
20181 FOR header_record IN header_cur
20182 LOOP
20183 l_array_header_events(header_record.event_id) := header_record.event_id;
20184 END LOOP;
20185
20186 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
20187 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
20188
20189 fnd_file.put_line(fnd_file.LOG, ' ');
20190 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
20191 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
20192 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
20193
20194 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
20195 LOOP
20196 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
20197 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
20198 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
20199 END IF;
20200 END LOOP;
20201
20202 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
20203 fnd_file.put_line(fnd_file.LOG, ' ');
20204
20205
20206 xla_exceptions_pkg.raise_message
20207 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_31');
20208
20209
20210 WHEN OTHERS THEN
20211 xla_exceptions_pkg.raise_message
20212 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_31');
20213 END EventType_31;
20214 --
20215
20216 ---------------------------------------
20217 --
20218 -- PRIVATE PROCEDURE
20219 -- insert_sources_32
20220 --
20221 ----------------------------------------
20222 --
20223 PROCEDURE insert_sources_32(
20224 p_target_ledger_id IN NUMBER
20225 , p_language IN VARCHAR2
20226 , p_sla_ledger_id IN NUMBER
20227 , p_pad_start_date IN DATE
20228 , p_pad_end_date IN DATE
20229 )
20230 IS
20231
20232 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FOB_RCPT_RECIPIENT_RCPT_TP';
20233 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FOB_RCPT_RECIPIENT_RCPT';
20234 p_apps_owner VARCHAR2(30);
20235 l_log_module VARCHAR2(240);
20236 BEGIN
20237 IF g_log_enabled THEN
20238 l_log_module := C_DEFAULT_MODULE||'.insert_sources_32';
20239 END IF;
20240 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20241
20242 trace
20243 (p_msg => 'BEGIN of insert_sources_32'
20244 ,p_level => C_LEVEL_PROCEDURE
20245 ,p_module => l_log_module);
20246
20247 END IF;
20248
20249 -- select APPS owner
20250 SELECT oracle_username
20251 INTO p_apps_owner
20252 FROM fnd_oracle_userid
20253 WHERE read_only_flag = 'U'
20254 ;
20255
20256 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
20257 trace
20258 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
20259 ' - p_language = '||p_language||
20260 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
20261 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
20262 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
20263 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
20264 ,p_level => C_LEVEL_STATEMENT
20265 ,p_module => l_log_module);
20266 END IF;
20267
20268
20269 --
20270 INSERT INTO xla_diag_sources --hdr1
20271 (
20272 event_id
20273 , ledger_id
20274 , sla_ledger_id
20275 , description_language
20276 , object_name
20277 , object_type_code
20278 , line_number
20279 , source_application_id
20280 , source_type_code
20281 , source_code
20282 , source_value
20283 , source_meaning
20284 , created_by
20285 , creation_date
20286 , last_update_date
20287 , last_updated_by
20288 , last_update_login
20289 , program_update_date
20290 , program_application_id
20291 , program_id
20292 , request_id
20293 )
20294 SELECT
20295 event_id
20296 , p_target_ledger_id
20297 , p_sla_ledger_id
20298 , p_language
20299 , object_name
20300 , object_type_code
20301 , line_number
20302 , source_application_id
20303 , source_type_code
20304 , source_code
20305 , SUBSTR(source_value ,1,1996)
20306 , SUBSTR(source_meaning,1,200)
20307 , xla_environment_pkg.g_Usr_Id
20308 , TRUNC(SYSDATE)
20309 , TRUNC(SYSDATE)
20310 , xla_environment_pkg.g_Usr_Id
20311 , xla_environment_pkg.g_Login_Id
20312 , TRUNC(SYSDATE)
20313 , xla_environment_pkg.g_Prog_Appl_Id
20314 , xla_environment_pkg.g_Prog_Id
20315 , xla_environment_pkg.g_Req_Id
20316 FROM (
20317 SELECT xet.event_id event_id
20318 , 0 line_number
20319 , CASE r
20320 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
20321 WHEN 2 THEN 'CST_XLA_INV_SYSTEM_ITEMS_REF_V'
20322 WHEN 3 THEN 'CST_XLA_INV_REF_V'
20323 WHEN 4 THEN 'CST_XLA_INV_REF_V'
20324 WHEN 5 THEN 'CST_XLA_INV_TXN_TYPES_REF_V'
20325 WHEN 6 THEN 'CST_XLA_INV_HEADERS_V'
20326 WHEN 7 THEN 'CST_XLA_INV_ORG_PARAMS_REF_V'
20327 WHEN 8 THEN 'CST_XLA_INV_REF_V'
20328 WHEN 9 THEN 'CST_XLA_INV_REF_V'
20329 WHEN 10 THEN 'CST_XLA_INV_REF_V'
20330 WHEN 11 THEN 'PSA_CST_XLA_UPG_V'
20331 WHEN 12 THEN 'PO_REQ_HEADERS_REF_V'
20332 WHEN 13 THEN 'PO_REQ_DISTS_REF_V'
20333 WHEN 14 THEN 'CST_XLA_INV_REF_V'
20334 WHEN 15 THEN 'CST_XLA_INV_REF_V'
20335 WHEN 16 THEN 'CST_XLA_INV_REF_V'
20336 WHEN 17 THEN 'CST_XLA_INV_REF_V'
20337 WHEN 18 THEN 'PO_REQ_DISTS_REF_V'
20338 WHEN 19 THEN 'PO_REQ_HEADERS_REF_V'
20339 WHEN 20 THEN 'CST_XLA_INV_HEADERS_V'
20340
20341 ELSE null
20342 END object_name
20343 , CASE r
20344 WHEN 1 THEN 'HEADER'
20345 WHEN 2 THEN 'HEADER'
20346 WHEN 3 THEN 'HEADER'
20347 WHEN 4 THEN 'HEADER'
20348 WHEN 5 THEN 'HEADER'
20349 WHEN 6 THEN 'HEADER'
20350 WHEN 7 THEN 'HEADER'
20351 WHEN 8 THEN 'HEADER'
20352 WHEN 9 THEN 'HEADER'
20353 WHEN 10 THEN 'HEADER'
20354 WHEN 11 THEN 'HEADER'
20355 WHEN 12 THEN 'HEADER'
20356 WHEN 13 THEN 'HEADER'
20357 WHEN 14 THEN 'HEADER'
20358 WHEN 15 THEN 'HEADER'
20359 WHEN 16 THEN 'HEADER'
20360 WHEN 17 THEN 'HEADER'
20361 WHEN 18 THEN 'HEADER'
20362 WHEN 19 THEN 'HEADER'
20363 WHEN 20 THEN 'HEADER'
20364
20365 ELSE null
20366 END object_type_code
20367 , CASE r
20368 WHEN 1 THEN '707'
20369 WHEN 2 THEN '707'
20370 WHEN 3 THEN '707'
20371 WHEN 4 THEN '707'
20372 WHEN 5 THEN '707'
20373 WHEN 6 THEN '707'
20374 WHEN 7 THEN '707'
20375 WHEN 8 THEN '707'
20376 WHEN 9 THEN '707'
20377 WHEN 10 THEN '707'
20378 WHEN 11 THEN '707'
20379 WHEN 12 THEN '201'
20380 WHEN 13 THEN '201'
20381 WHEN 14 THEN '707'
20382 WHEN 15 THEN '707'
20383 WHEN 16 THEN '707'
20384 WHEN 17 THEN '707'
20385 WHEN 18 THEN '201'
20386 WHEN 19 THEN '201'
20387 WHEN 20 THEN '707'
20388
20389 ELSE null
20390 END source_application_id
20391 , 'S' source_type_code
20392 , CASE r
20393 WHEN 1 THEN 'TRANSACTION_ID'
20394 WHEN 2 THEN 'ITEM_CONCATENATED_SEGMENTS'
20395 WHEN 3 THEN 'TRANSACTION_QUANTITY'
20396 WHEN 4 THEN 'TRANSACTION_UOM'
20397 WHEN 5 THEN 'INV_TXN_TYPE_DESCRIPTION'
20398 WHEN 6 THEN 'DISTRIBUTION_TYPE'
20399 WHEN 7 THEN 'ENCUMBRANCE_REVERSAL_FLAG'
20400 WHEN 8 THEN 'APPLIED_TO_APPL_ID'
20401 WHEN 9 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
20402 WHEN 10 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
20403 WHEN 11 THEN 'CST_ENCUM_UPG_OPTION'
20404 WHEN 12 THEN 'REQ_ENCUMBRANCE_FLAG'
20405 WHEN 13 THEN 'REQ_RESERVED_FLAG'
20406 WHEN 14 THEN 'BUS_FLOW_REQ_DIST_TYPE'
20407 WHEN 15 THEN 'BUS_FLOW_REQ_ENTITY_CODE'
20408 WHEN 16 THEN 'BUS_FLOW_REQ_DIST_ID'
20409 WHEN 17 THEN 'BUS_FLOW_REQ_ID'
20410 WHEN 18 THEN 'REQ_BUDGET_ACCOUNT'
20411 WHEN 19 THEN 'REQ_ENCUMBRANCE_TYPE_ID'
20412 WHEN 20 THEN 'TRANSFER_TO_GL_INDICATOR'
20413
20414 ELSE null
20415 END source_code
20416 , CASE r
20417 WHEN 1 THEN TO_CHAR(h1.TRANSACTION_ID)
20418 WHEN 2 THEN TO_CHAR(h5.ITEM_CONCATENATED_SEGMENTS)
20419 WHEN 3 THEN TO_CHAR(h4.TRANSACTION_QUANTITY)
20420 WHEN 4 THEN TO_CHAR(h4.TRANSACTION_UOM)
20421 WHEN 5 THEN TO_CHAR(h6.INV_TXN_TYPE_DESCRIPTION)
20422 WHEN 6 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
20423 WHEN 7 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_FLAG)
20424 WHEN 8 THEN TO_CHAR(h4.APPLIED_TO_APPL_ID)
20425 WHEN 9 THEN TO_CHAR(h4.ENCUM_REVERSAL_AMOUNT_ENTERED)
20426 WHEN 10 THEN TO_CHAR(h4.ENCUMBRANCE_REVERSAL_AMOUNT)
20427 WHEN 11 THEN TO_CHAR(h9.CST_ENCUM_UPG_OPTION)
20428 WHEN 12 THEN TO_CHAR(h8.REQ_ENCUMBRANCE_FLAG)
20429 WHEN 13 THEN TO_CHAR(h7.REQ_RESERVED_FLAG)
20430 WHEN 14 THEN TO_CHAR(h4.BUS_FLOW_REQ_DIST_TYPE)
20431 WHEN 15 THEN TO_CHAR(h4.BUS_FLOW_REQ_ENTITY_CODE)
20432 WHEN 16 THEN TO_CHAR(h4.BUS_FLOW_REQ_DIST_ID)
20433 WHEN 17 THEN TO_CHAR(h4.BUS_FLOW_REQ_ID)
20434 WHEN 18 THEN TO_CHAR(h7.REQ_BUDGET_ACCOUNT)
20435 WHEN 19 THEN TO_CHAR(h8.REQ_ENCUMBRANCE_TYPE_ID)
20436 WHEN 20 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
20437
20438 ELSE null
20439 END source_value
20440 , CASE r
20441 WHEN 6 THEN fvl9.meaning
20442 WHEN 20 THEN fvl42.meaning
20443
20444 ELSE null
20445 END source_meaning
20446 FROM xla_events_gt xet
20447 , CST_XLA_INV_HEADERS_V h1
20448 , CST_XLA_INV_ORG_PARAMS_REF_V h3
20449 , CST_XLA_INV_REF_V h4
20450 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
20451 , CST_XLA_INV_TXN_TYPES_REF_V h6
20452 , PO_REQ_DISTS_REF_V h7
20453 , PO_REQ_HEADERS_REF_V h8
20454 , PSA_CST_XLA_UPG_V h9
20455 , fnd_lookup_values fvl9
20456 , fnd_lookup_values fvl42
20457 ,(select rownum r from all_objects where rownum <= 20 and owner = p_apps_owner)
20458 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
20459 AND xet.event_type_code = C_EVENT_TYPE_CODE
20460 AND h1.event_id = xet.event_id
20461 AND h3.inv_organization_id (+) = h1.organization_id AND h4.ref_transaction_id = h1.transaction_id AND h5.inventory_item_id = h1.inventory_item_id and h5.organization_id = h1.organization_id AND h6.inv_transaction_type_id = h1.transaction_type_id AND h4.bus_flow_req_dist_id=h7.req_distribution_id (+) AND h4.bus_flow_req_id = h8.req_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
20462 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
20463 AND fvl9.view_application_id(+) = 700
20464 AND fvl9.language(+) = USERENV('LANG')
20465 AND fvl42.lookup_type(+) = 'YES_NO'
20466 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
20467 AND fvl42.view_application_id(+) = 0
20468 AND fvl42.language(+) = USERENV('LANG')
20469
20470 )
20471 ;
20472 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
20473
20474 trace
20475 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
20476 ,p_level => C_LEVEL_STATEMENT
20477 ,p_module => l_log_module);
20478
20479 END IF;
20480 --
20481
20482
20483
20484 --
20485 INSERT INTO xla_diag_sources --line1
20486 (
20487 event_id
20488 , ledger_id
20489 , sla_ledger_id
20490 , description_language
20491 , object_name
20492 , object_type_code
20493 , line_number
20494 , source_application_id
20495 , source_type_code
20496 , source_code
20497 , source_value
20498 , source_meaning
20499 , created_by
20500 , creation_date
20501 , last_update_date
20502 , last_updated_by
20503 , last_update_login
20504 , program_update_date
20505 , program_application_id
20506 , program_id
20507 , request_id
20508 )
20509 SELECT event_id
20510 , p_target_ledger_id
20511 , p_sla_ledger_id
20512 , p_language
20513 , object_name
20514 , object_type_code
20515 , line_number
20516 , source_application_id
20517 , source_type_code
20518 , source_code
20519 , SUBSTR(source_value,1,1996)
20520 , SUBSTR(source_meaning,1,200)
20521 , xla_environment_pkg.g_Usr_Id
20522 , TRUNC(SYSDATE)
20523 , TRUNC(SYSDATE)
20524 , xla_environment_pkg.g_Usr_Id
20525 , xla_environment_pkg.g_Login_Id
20526 , TRUNC(SYSDATE)
20527 , xla_environment_pkg.g_Prog_Appl_Id
20528 , xla_environment_pkg.g_Prog_Id
20529 , xla_environment_pkg.g_Req_Id
20530 FROM (
20531 SELECT xet.event_id event_id
20532 , l2.line_number line_number
20533 , CASE r
20534 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
20535 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
20536 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
20537
20538 ELSE null
20539 END object_name
20540 , CASE r
20541 WHEN 1 THEN 'LINE'
20542 WHEN 2 THEN 'LINE'
20543 WHEN 3 THEN 'LINE'
20544
20545 ELSE null
20546 END object_type_code
20547 , CASE r
20548 WHEN 1 THEN '707'
20549 WHEN 2 THEN '707'
20550 WHEN 3 THEN '707'
20551
20552 ELSE null
20553 END source_application_id
20554 , 'S' source_type_code
20555 , CASE r
20556 WHEN 1 THEN 'ACCOUNTING_LINE_TYPE_CODE'
20557 WHEN 2 THEN 'DISTRIBUTION_IDENTIFIER'
20558 WHEN 3 THEN 'CURRENCY_CODE'
20559
20560 ELSE null
20561 END source_code
20562 , CASE r
20563 WHEN 1 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
20564 WHEN 2 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
20565 WHEN 3 THEN TO_CHAR(l2.CURRENCY_CODE)
20566
20567 ELSE null
20568 END source_value
20569 , null source_meaning
20570 FROM xla_events_gt xet
20571 , CST_XLA_INV_LINES_V l2
20572 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
20573 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
20574 AND xet.event_type_code = C_EVENT_TYPE_CODE
20575 AND l2.event_id = xet.event_id
20576
20577 )
20578 ;
20579 --
20580 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
20581
20582 trace
20583 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
20584 ,p_level => C_LEVEL_STATEMENT
20585 ,p_module => l_log_module);
20586
20587 END IF;
20588
20589
20590 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20591 trace
20592 (p_msg => 'END of insert_sources_32'
20593 ,p_level => C_LEVEL_PROCEDURE
20594 ,p_module => l_log_module);
20595 END IF;
20596 EXCEPTION
20597 WHEN xla_exceptions_pkg.application_exception THEN
20598 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
20599 trace
20600 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
20601 ,p_level => C_LEVEL_EXCEPTION
20602 ,p_module => l_log_module);
20603 END IF;
20604 RAISE;
20605 WHEN OTHERS THEN
20606 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
20607 trace
20608 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
20609 ,p_level => C_LEVEL_EXCEPTION
20610 ,p_module => l_log_module);
20611 END IF;
20612 xla_exceptions_pkg.raise_message
20613 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_32');
20614 END insert_sources_32;
20615 --
20616
20617 ---------------------------------------
20618 --
20619 -- PRIVATE FUNCTION
20620 -- EventType_32
20621 --
20622 ----------------------------------------
20623 --
20624 FUNCTION EventType_32
20625 (p_application_id IN NUMBER
20626 ,p_base_ledger_id IN NUMBER
20627 ,p_target_ledger_id IN NUMBER
20628 ,p_language IN VARCHAR2
20629 ,p_currency_code IN VARCHAR2
20630 ,p_sla_ledger_id IN NUMBER
20631 ,p_pad_start_date IN DATE
20632 ,p_pad_end_date IN DATE
20633 ,p_primary_ledger_id IN NUMBER)
20634 RETURN BOOLEAN IS
20635 --
20636 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FOB_RCPT_RECIPIENT_RCPT_TP';
20637 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FOB_RCPT_RECIPIENT_RCPT';
20638
20639 l_calculate_acctd_flag VARCHAR2(1) :='N';
20640 l_calculate_g_l_flag VARCHAR2(1) :='N';
20641 --
20642 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
20643 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
20644 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
20645 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
20646 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
20647 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
20648 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
20649 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
20650 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
20651 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
20652 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
20653 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
20654 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
20655 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
20656 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
20657 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
20658 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
20659 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
20660 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
20661 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
20662 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
20663 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
20664 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
20665 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
20666 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
20667 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
20668
20669 l_event_id NUMBER;
20670 l_previous_event_id NUMBER;
20671 l_first_event_id NUMBER;
20672 l_last_event_id NUMBER;
20673
20674 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
20675 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20676 --
20677 --
20678 l_result BOOLEAN := TRUE;
20679 l_rows NUMBER := 1000;
20680 l_event_type_name VARCHAR2(80) := 'Recipient-side Intransit Interorg Receipt for FOB Receipt, Transfer Pricing';
20681 l_event_class_name VARCHAR2(80) := 'Recipient-side Intransit Interorg Receipt for FOB Receipt';
20682 l_description VARCHAR2(4000);
20683 l_transaction_reversal NUMBER;
20684 l_ae_header_id NUMBER;
20685 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
20686 l_log_module VARCHAR2(240);
20687 --
20688 l_acct_reversal_source VARCHAR2(30);
20689 l_trx_reversal_source VARCHAR2(30);
20690
20691 l_continue_with_lines BOOLEAN := TRUE;
20692 --
20693 l_acc_rev_gl_date_source DATE; -- 4262811
20694 --
20695 type t_array_event_id is table of number index by binary_integer;
20696
20697 l_rec_array_event t_rec_array_event;
20698 l_null_rec_array_event t_rec_array_event;
20699 l_array_ae_header_id xla_number_array_type;
20700 l_actual_flag VARCHAR2(1) := NULL;
20701 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
20702 l_balance_type_code VARCHAR2(1) :=NULL;
20703 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
20704
20705 --
20706 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
20707 --
20708
20709 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSACTION_ID%TYPE INDEX BY BINARY_INTEGER;
20710 TYPE t_array_source_2 IS TABLE OF CST_XLA_INV_SYSTEM_ITEMS_REF_V.ITEM_CONCATENATED_SEGMENTS%TYPE INDEX BY BINARY_INTEGER;
20711 TYPE t_array_source_3 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_QUANTITY%TYPE INDEX BY BINARY_INTEGER;
20712 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_UOM%TYPE INDEX BY BINARY_INTEGER;
20713 TYPE t_array_source_5 IS TABLE OF CST_XLA_INV_TXN_TYPES_REF_V.INV_TXN_TYPE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
20714 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
20715 TYPE t_array_source_17 IS TABLE OF CST_XLA_INV_ORG_PARAMS_REF_V.ENCUMBRANCE_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
20716 TYPE t_array_source_19 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
20717 TYPE t_array_source_25 IS TABLE OF CST_XLA_INV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
20718 TYPE t_array_source_26 IS TABLE OF CST_XLA_INV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
20719 TYPE t_array_source_27 IS TABLE OF PSA_CST_XLA_UPG_V.CST_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
20720 TYPE t_array_source_33 IS TABLE OF PO_REQ_HEADERS_REF_V.REQ_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
20721 TYPE t_array_source_34 IS TABLE OF PO_REQ_DISTS_REF_V.REQ_RESERVED_FLAG%TYPE INDEX BY BINARY_INTEGER;
20722 TYPE t_array_source_35 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
20723 TYPE t_array_source_36 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
20724 TYPE t_array_source_37 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
20725 TYPE t_array_source_38 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_ID%TYPE INDEX BY BINARY_INTEGER;
20726 TYPE t_array_source_39 IS TABLE OF PO_REQ_DISTS_REF_V.REQ_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
20727 TYPE t_array_source_40 IS TABLE OF PO_REQ_HEADERS_REF_V.REQ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
20728 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
20729
20730 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
20731 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
20732 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
20733
20734 l_array_source_1 t_array_source_1;
20735 l_array_source_2 t_array_source_2;
20736 l_array_source_3 t_array_source_3;
20737 l_array_source_4 t_array_source_4;
20738 l_array_source_5 t_array_source_5;
20739 l_array_source_9 t_array_source_9;
20740 l_array_source_9_meaning t_array_lookup_meaning;
20741 l_array_source_17 t_array_source_17;
20742 l_array_source_19 t_array_source_19;
20743 l_array_source_25 t_array_source_25;
20744 l_array_source_26 t_array_source_26;
20745 l_array_source_27 t_array_source_27;
20746 l_array_source_33 t_array_source_33;
20747 l_array_source_34 t_array_source_34;
20748 l_array_source_35 t_array_source_35;
20749 l_array_source_36 t_array_source_36;
20750 l_array_source_37 t_array_source_37;
20751 l_array_source_38 t_array_source_38;
20752 l_array_source_39 t_array_source_39;
20753 l_array_source_40 t_array_source_40;
20754 l_array_source_42 t_array_source_42;
20755 l_array_source_42_meaning t_array_lookup_meaning;
20756
20757 l_array_source_7 t_array_source_7;
20758 l_array_source_8 t_array_source_8;
20759 l_array_source_11 t_array_source_11;
20760
20761 --
20762 CURSOR header_cur
20763 IS
20764 SELECT /*+ leading(xet) cardinality(xet,1) */
20765 -- Event Type Code: FOB_RCPT_RECIPIENT_RCPT_TP
20766 -- Event Class Code: FOB_RCPT_RECIPIENT_RCPT
20767 xet.entity_id
20768 , xet.legal_entity_id
20769 , xet.entity_code
20770 , xet.transaction_number
20771 , xet.event_id
20772 , xet.event_class_code
20773 , xet.event_type_code
20774 , xet.event_number
20775 , xet.event_date
20776 , xet.transaction_date
20777 , xet.reference_num_1
20778 , xet.reference_num_2
20779 , xet.reference_num_3
20780 , xet.reference_num_4
20781 , xet.reference_char_1
20782 , xet.reference_char_2
20783 , xet.reference_char_3
20784 , xet.reference_char_4
20785 , xet.reference_date_1
20786 , xet.reference_date_2
20787 , xet.reference_date_3
20788 , xet.reference_date_4
20789 , xet.event_created_by
20790 , xet.budgetary_control_flag
20791 , h1.TRANSACTION_ID source_1
20792 , h5.ITEM_CONCATENATED_SEGMENTS source_2
20793 , h4.TRANSACTION_QUANTITY source_3
20794 , h4.TRANSACTION_UOM source_4
20795 , h6.INV_TXN_TYPE_DESCRIPTION source_5
20796 , h1.DISTRIBUTION_TYPE source_9
20797 , fvl9.meaning source_9_meaning
20798 , h3.ENCUMBRANCE_REVERSAL_FLAG source_17
20799 , h4.APPLIED_TO_APPL_ID source_19
20800 , h4.ENCUM_REVERSAL_AMOUNT_ENTERED source_25
20801 , h4.ENCUMBRANCE_REVERSAL_AMOUNT source_26
20802 , h9.CST_ENCUM_UPG_OPTION source_27
20803 , h8.REQ_ENCUMBRANCE_FLAG source_33
20804 , h7.REQ_RESERVED_FLAG source_34
20805 , h4.BUS_FLOW_REQ_DIST_TYPE source_35
20806 , h4.BUS_FLOW_REQ_ENTITY_CODE source_36
20807 , h4.BUS_FLOW_REQ_DIST_ID source_37
20808 , h4.BUS_FLOW_REQ_ID source_38
20809 , h7.REQ_BUDGET_ACCOUNT source_39
20810 , h8.REQ_ENCUMBRANCE_TYPE_ID source_40
20811 , h1.TRANSFER_TO_GL_INDICATOR source_42
20812 , fvl42.meaning source_42_meaning
20813 FROM xla_events_gt xet
20814 , CST_XLA_INV_HEADERS_V h1
20815 , CST_XLA_INV_ORG_PARAMS_REF_V h3
20816 , CST_XLA_INV_REF_V h4
20817 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
20818 , CST_XLA_INV_TXN_TYPES_REF_V h6
20819 , PO_REQ_DISTS_REF_V h7
20820 , PO_REQ_HEADERS_REF_V h8
20821 , PSA_CST_XLA_UPG_V h9
20822 , fnd_lookup_values fvl9
20823 , fnd_lookup_values fvl42
20824 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
20825 and xet.event_type_code = C_EVENT_TYPE_CODE
20826 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
20827 AND h3.INV_ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h4.ref_transaction_id = h1.transaction_id AND h5.INVENTORY_ITEM_ID = h1.INVENTORY_ITEM_ID AND h5.ORGANIZATION_ID = h1.ORGANIZATION_ID AND h6.INV_TRANSACTION_TYPE_ID = h1.TRANSACTION_TYPE_ID AND h4.BUS_FLOW_REQ_DIST_ID=h7.REQ_DISTRIBUTION_ID (+) AND h4.BUS_FLOW_REQ_ID = h8.REQ_ID (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
20828 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
20829 AND fvl9.view_application_id(+) = 700
20830 AND fvl9.language(+) = USERENV('LANG')
20831 AND fvl42.lookup_type(+) = 'YES_NO'
20832 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
20833 AND fvl42.view_application_id(+) = 0
20834 AND fvl42.language(+) = USERENV('LANG')
20835
20836 ORDER BY event_id
20837 ;
20838
20839
20840 --
20841 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
20842 IS
20843 SELECT /*+ leading(xet) cardinality(xet,1) */
20844 -- Event Type Code: FOB_RCPT_RECIPIENT_RCPT_TP
20845 -- Event Class Code: FOB_RCPT_RECIPIENT_RCPT
20846 xet.entity_id
20847 ,xet.legal_entity_id
20848 ,xet.entity_code
20849 ,xet.transaction_number
20850 ,xet.event_id
20851 ,xet.event_class_code
20852 ,xet.event_type_code
20853 ,xet.event_number
20854 ,xet.event_date
20855 ,xet.transaction_date
20856 ,xet.reference_num_1
20857 ,xet.reference_num_2
20858 ,xet.reference_num_3
20859 ,xet.reference_num_4
20860 ,xet.reference_char_1
20861 ,xet.reference_char_2
20862 ,xet.reference_char_3
20863 ,xet.reference_char_4
20864 ,xet.reference_date_1
20865 ,xet.reference_date_2
20866 ,xet.reference_date_3
20867 ,xet.reference_date_4
20868 ,xet.event_created_by
20869 ,xet.budgetary_control_flag , l2.LINE_NUMBER
20870 , l2.ACCOUNTING_LINE_TYPE_CODE source_7
20871 , l2.DISTRIBUTION_IDENTIFIER source_8
20872 , l2.CURRENCY_CODE source_11
20873 FROM xla_events_gt xet
20874 , CST_XLA_INV_LINES_V l2
20875 WHERE xet.event_id between x_first_event_id and x_last_event_id
20876 and xet.event_date between p_pad_start_date and p_pad_end_date
20877 and xet.event_type_code = C_EVENT_TYPE_CODE
20878 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
20879 ;
20880
20881 --
20882 BEGIN
20883 IF g_log_enabled THEN
20884 l_log_module := C_DEFAULT_MODULE||'.EventType_32';
20885 END IF;
20886 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20887 trace
20888 (p_msg => 'BEGIN of EventType_32'
20889 ,p_level => C_LEVEL_PROCEDURE
20890 ,p_module => l_log_module);
20891 END IF;
20892
20893 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
20894 trace
20895 (p_msg => 'p_application_id = '||p_application_id||
20896 ' - p_base_ledger_id = '||p_base_ledger_id||
20897 ' - p_target_ledger_id = '||p_target_ledger_id||
20898 ' - p_language = '||p_language||
20899 ' - p_currency_code = '||p_currency_code||
20900 ' - p_sla_ledger_id = '||p_sla_ledger_id
20901 ,p_level => C_LEVEL_STATEMENT
20902 ,p_module => l_log_module);
20903 END IF;
20904 --
20905 -- initialze arrays
20906 --
20907 g_array_event.DELETE;
20908 l_rec_array_event := l_null_rec_array_event;
20909 --
20910 --------------------------------------
20911 -- 4262811 Initialze MPA Line Number
20912 --------------------------------------
20913 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
20914
20915 --
20916
20917 --
20918 OPEN header_cur;
20919 --
20920 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
20921 trace
20922 (p_msg => 'SQL - FETCH header_cur'
20923 ,p_level => C_LEVEL_STATEMENT
20924 ,p_module => l_log_module);
20925 END IF;
20926 --
20927 LOOP
20928 FETCH header_cur BULK COLLECT INTO
20929 l_array_entity_id
20930 , l_array_legal_entity_id
20931 , l_array_entity_code
20932 , l_array_transaction_num
20933 , l_array_event_id
20934 , l_array_class_code
20935 , l_array_event_type
20936 , l_array_event_number
20937 , l_array_event_date
20938 , l_array_transaction_date
20939 , l_array_reference_num_1
20940 , l_array_reference_num_2
20941 , l_array_reference_num_3
20942 , l_array_reference_num_4
20943 , l_array_reference_char_1
20944 , l_array_reference_char_2
20945 , l_array_reference_char_3
20946 , l_array_reference_char_4
20947 , l_array_reference_date_1
20948 , l_array_reference_date_2
20949 , l_array_reference_date_3
20950 , l_array_reference_date_4
20951 , l_array_event_created_by
20952 , l_array_budgetary_control_flag
20953 , l_array_source_1
20954 , l_array_source_2
20955 , l_array_source_3
20956 , l_array_source_4
20957 , l_array_source_5
20958 , l_array_source_9
20959 , l_array_source_9_meaning
20960 , l_array_source_17
20961 , l_array_source_19
20962 , l_array_source_25
20963 , l_array_source_26
20964 , l_array_source_27
20965 , l_array_source_33
20966 , l_array_source_34
20967 , l_array_source_35
20968 , l_array_source_36
20969 , l_array_source_37
20970 , l_array_source_38
20971 , l_array_source_39
20972 , l_array_source_40
20973 , l_array_source_42
20974 , l_array_source_42_meaning
20975 LIMIT l_rows;
20976 --
20977 IF (C_LEVEL_EVENT >= g_log_level) THEN
20978 trace
20979 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
20980 ,p_level => C_LEVEL_EVENT
20981 ,p_module => l_log_module);
20982 END IF;
20983 --
20984 EXIT WHEN l_array_entity_id.COUNT = 0;
20985
20986 -- initialize arrays
20987 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
20988 XLA_AE_LINES_PKG.g_rec_lines := NULL;
20989
20990 --
20991 -- Bug 4458708
20992 --
20993 XLA_AE_LINES_PKG.g_LineNumber := 0;
20994
20995
20996 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
20997 g_last_hdr_idx := l_array_event_id.LAST;
20998 --
20999 -- loop for the headers. Each iteration is for each header extract row
21000 -- fetched in header cursor
21001 --
21002 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
21003
21004 --
21005 -- set event info as cache for other routines to refer event attributes
21006 --
21007 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
21008 (p_application_id => p_application_id
21009 ,p_primary_ledger_id => p_primary_ledger_id
21010 ,p_base_ledger_id => p_base_ledger_id
21011 ,p_target_ledger_id => p_target_ledger_id
21012 ,p_entity_id => l_array_entity_id(hdr_idx)
21013 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
21014 ,p_entity_code => l_array_entity_code(hdr_idx)
21015 ,p_transaction_num => l_array_transaction_num(hdr_idx)
21016 ,p_event_id => l_array_event_id(hdr_idx)
21017 ,p_event_class_code => l_array_class_code(hdr_idx)
21018 ,p_event_type_code => l_array_event_type(hdr_idx)
21019 ,p_event_number => l_array_event_number(hdr_idx)
21020 ,p_event_date => l_array_event_date(hdr_idx)
21021 ,p_transaction_date => l_array_transaction_date(hdr_idx)
21022 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
21023 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
21024 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
21025 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
21026 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
21027 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
21028 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
21029 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
21030 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
21031 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
21032 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
21033 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
21034 ,p_event_created_by => l_array_event_created_by(hdr_idx)
21035 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
21036
21037 --
21038 -- set the status of entry to C_VALID (0)
21039 --
21040 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
21041
21042 --
21043 -- initialize a row for ae header
21044 --
21045 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
21046
21047 l_event_id := l_array_event_id(hdr_idx);
21048
21049 --
21050 -- storing the hdr_idx for event. May be used by line cursor.
21051 --
21052 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
21053
21054 --
21055 -- store sources from header extract. This can be improved to
21056 -- store only those sources from header extract that may be used in lines
21057 --
21058
21059 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
21060 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
21061 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
21062 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
21063 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
21064 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
21065 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
21066 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
21067 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
21068 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
21069 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
21070 g_array_event(l_event_id).array_value_char('source_27') := l_array_source_27(hdr_idx);
21071 g_array_event(l_event_id).array_value_char('source_33') := l_array_source_33(hdr_idx);
21072 g_array_event(l_event_id).array_value_char('source_34') := l_array_source_34(hdr_idx);
21073 g_array_event(l_event_id).array_value_char('source_35') := l_array_source_35(hdr_idx);
21074 g_array_event(l_event_id).array_value_char('source_36') := l_array_source_36(hdr_idx);
21075 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
21076 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
21077 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
21078 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
21079 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
21080 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
21081
21082 --
21083 -- initilaize the status of ae headers for diffrent balance types
21084 -- the status is initialised to C_NOT_CREATED (2)
21085 --
21086 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
21087 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
21088 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
21089
21090 --
21091 -- call api to validate and store accounting attributes for header
21092 --
21093
21094 ------------------------------------------------------------
21095 -- Accrual Reversal : to get date for Standard Source (NONE)
21096 ------------------------------------------------------------
21097 l_acc_rev_gl_date_source := NULL;
21098
21099 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
21100 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_40');
21101 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
21102 l_rec_acct_attrs.array_date_value(2) :=
21103 xla_ae_sources_pkg.GetSystemSourceDate(
21104 p_source_code => 'XLA_REFERENCE_DATE_1'
21105 , p_source_type_code => 'Y'
21106 , p_source_application_id => 602
21107 );
21108 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
21109 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_42');
21110
21111
21112 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
21113
21114 XLA_AE_HEADER_PKG.SetJeCategoryName;
21115
21116 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
21117 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
21118 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
21119 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
21120 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
21121
21122
21123 --
21124 xla_ae_header_pkg.SetHdrDescription(
21125 p_description => Description_1 (
21126 p_application_id => p_application_id
21127 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
21128 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
21129 , p_source_3 => g_array_event(l_event_id).array_value_num('source_3')
21130 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
21131 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
21132 )
21133 );
21134 --
21135
21136 -- No header level analytical criteria
21137
21138 --
21139 --accounting attribute enhancement, bug 3612931
21140 --
21141 l_trx_reversal_source := SUBSTR(NULL, 1,30);
21142
21143 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
21144 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
21145
21146 xla_accounting_err_pkg.build_message
21147 (p_appli_s_name => 'XLA'
21148 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
21149 ,p_token_1 => 'ACCT_ATTR_NAME'
21150 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
21151 ,p_token_2 => 'PRODUCT_NAME'
21152 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
21153 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
21154 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
21155 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
21156
21157 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
21158 --
21159 -- following sets the accounting attributes needed to reverse
21160 -- accounting for a distributeion
21161 --
21162 xla_ae_lines_pkg.SetTrxReversalAttrs
21163 (p_event_id => l_event_id
21164 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
21165 ,p_trx_reversal_source => l_trx_reversal_source);
21166
21167 END IF;
21168
21169
21170 ----------------------------------------------------------------
21171 -- 4262811 - update the header statuses to invalid in need be
21172 ----------------------------------------------------------------
21173 --
21174 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
21175
21176
21177 -----------------------------------------------
21178 -- No accrual reversal for the event class/type
21179 -----------------------------------------------
21180 ----------------------------------------------------------------
21181
21182 --
21183 -- this ends the header loop iteration for one bulk fetch
21184 --
21185 END LOOP;
21186
21187 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
21188 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
21189
21190 --
21191 -- insert dummy rows into lines gt table that were created due to
21192 -- transaction reversals
21193 --
21194 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
21195 l_result := XLA_AE_LINES_PKG.InsertLines;
21196 END IF;
21197
21198 --
21199 -- reset the temp_line_num for each set of events fetched from header
21200 -- cursor rather than doing it for each new event in line cursor
21201 -- Bug 3939231
21202 --
21203 xla_ae_lines_pkg.g_temp_line_num := 0;
21204
21205
21206
21207 --
21208 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
21209 --
21210 --
21211 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
21212
21213 trace
21214 (p_msg => 'SQL - FETCH line_cur'
21215 ,p_level => C_LEVEL_STATEMENT
21216 ,p_module => l_log_module);
21217
21218 END IF;
21219 --
21220 --
21221 LOOP
21222 --
21223 FETCH line_cur BULK COLLECT INTO
21224 l_array_entity_id
21225 , l_array_legal_entity_id
21226 , l_array_entity_code
21227 , l_array_transaction_num
21228 , l_array_event_id
21229 , l_array_class_code
21230 , l_array_event_type
21231 , l_array_event_number
21232 , l_array_event_date
21233 , l_array_transaction_date
21234 , l_array_reference_num_1
21235 , l_array_reference_num_2
21236 , l_array_reference_num_3
21237 , l_array_reference_num_4
21238 , l_array_reference_char_1
21239 , l_array_reference_char_2
21240 , l_array_reference_char_3
21241 , l_array_reference_char_4
21242 , l_array_reference_date_1
21243 , l_array_reference_date_2
21244 , l_array_reference_date_3
21245 , l_array_reference_date_4
21246 , l_array_event_created_by
21247 , l_array_budgetary_control_flag
21248 , l_array_extract_line_num
21249 , l_array_source_7
21250 , l_array_source_8
21251 , l_array_source_11
21252 LIMIT l_rows;
21253
21254 --
21255 IF (C_LEVEL_EVENT >= g_log_level) THEN
21256 trace
21257 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
21258 ,p_level => C_LEVEL_EVENT
21259 ,p_module => l_log_module);
21260 END IF;
21261 --
21262 EXIT WHEN l_array_entity_id.count = 0;
21263
21264 XLA_AE_LINES_PKG.g_rec_lines := null;
21265
21266 --
21267 -- Bug 4458708
21268 --
21269 XLA_AE_LINES_PKG.g_LineNumber := 0;
21270 --
21271 --
21272
21273 FOR Idx IN 1..l_array_event_id.count LOOP
21274 --
21275 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
21276 --
21277 l_event_id := l_array_event_id(idx); -- 5648433
21278
21279 --
21280 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
21281 --
21282
21283 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
21284 (g_array_event(l_event_id).array_value_num('header_index'))
21285 ,'N'
21286 ) <> 'Y'
21287 THEN
21288 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
21289 trace
21290 (p_msg => 'Trancaction revesal option is not Y '
21291 ,p_level => C_LEVEL_STATEMENT
21292 ,p_module => l_log_module);
21293 END IF;
21294
21295 --
21296 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
21297 --
21298 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
21299 --
21300 -- set event info as cache for other routines to refer event attributes
21301 --
21302
21303 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
21304 l_previous_event_id := l_event_id;
21305
21306 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
21307 (p_application_id => p_application_id
21308 ,p_primary_ledger_id => p_primary_ledger_id
21309 ,p_base_ledger_id => p_base_ledger_id
21310 ,p_target_ledger_id => p_target_ledger_id
21311 ,p_entity_id => l_array_entity_id(Idx)
21312 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
21313 ,p_entity_code => l_array_entity_code(Idx)
21314 ,p_transaction_num => l_array_transaction_num(Idx)
21315 ,p_event_id => l_array_event_id(Idx)
21316 ,p_event_class_code => l_array_class_code(Idx)
21317 ,p_event_type_code => l_array_event_type(Idx)
21318 ,p_event_number => l_array_event_number(Idx)
21319 ,p_event_date => l_array_event_date(Idx)
21320 ,p_transaction_date => l_array_transaction_date(Idx)
21321 ,p_reference_num_1 => l_array_reference_num_1(Idx)
21322 ,p_reference_num_2 => l_array_reference_num_2(Idx)
21323 ,p_reference_num_3 => l_array_reference_num_3(Idx)
21324 ,p_reference_num_4 => l_array_reference_num_4(Idx)
21325 ,p_reference_char_1 => l_array_reference_char_1(Idx)
21326 ,p_reference_char_2 => l_array_reference_char_2(Idx)
21327 ,p_reference_char_3 => l_array_reference_char_3(Idx)
21328 ,p_reference_char_4 => l_array_reference_char_4(Idx)
21329 ,p_reference_date_1 => l_array_reference_date_1(Idx)
21330 ,p_reference_date_2 => l_array_reference_date_2(Idx)
21331 ,p_reference_date_3 => l_array_reference_date_3(Idx)
21332 ,p_reference_date_4 => l_array_reference_date_4(Idx)
21333 ,p_event_created_by => l_array_event_created_by(Idx)
21334 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
21335 --
21336 END IF;
21337
21338
21339
21340 --
21341 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
21342
21343 l_acct_reversal_source := SUBSTR(NULL, 1,30);
21344
21345 IF l_continue_with_lines THEN
21346 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
21347 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
21348
21349 xla_accounting_err_pkg.build_message
21350 (p_appli_s_name => 'XLA'
21351 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
21352 ,p_token_1 => 'LINE_NUMBER'
21353 ,p_value_1 => l_array_extract_line_num(Idx)
21354 ,p_token_2 => 'PRODUCT_NAME'
21355 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
21356 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
21357 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
21358 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
21359
21360 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
21361 --
21362 -- following sets the accounting attributes needed to reverse
21363 -- accounting for a distributeion
21364 --
21365
21366 --
21367 -- 5217187
21368 --
21369 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
21370 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
21371 g_array_event(l_event_id).array_value_num('header_index'));
21372 --
21373 --
21374
21375 -- No reversal code generated
21376
21377 xla_ae_lines_pkg.SetAcctReversalAttrs
21378 (p_event_id => l_event_id
21379 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
21380 ,p_calculate_acctd_flag => l_calculate_acctd_flag
21381 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
21382 END IF;
21383
21384 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
21385 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
21386
21387 --
21388 AcctLineType_23 (
21389 p_application_id => p_application_id
21390 ,p_event_id => l_event_id
21391 ,p_calculate_acctd_flag => l_calculate_acctd_flag
21392 ,p_calculate_g_l_flag => l_calculate_g_l_flag
21393 ,p_actual_flag => l_actual_flag
21394 ,p_balance_type_code => l_balance_type_code
21395 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
21396
21397 , p_source_7 => l_array_source_7(Idx)
21398 , p_source_8 => l_array_source_8(Idx)
21399 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
21400 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
21401 , p_source_11 => l_array_source_11(Idx)
21402 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
21403 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
21404 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
21405 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
21406 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
21407 , p_source_33 => g_array_event(l_event_id).array_value_char('source_33')
21408 , p_source_34 => g_array_event(l_event_id).array_value_char('source_34')
21409 , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
21410 , p_source_36 => g_array_event(l_event_id).array_value_char('source_36')
21411 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
21412 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
21413 , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
21414 , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
21415 );
21416 If(l_balance_type_code = 'A') THEN
21417 l_actual_gain_loss_ref := l_gain_or_loss_ref;
21418 END IF;
21419
21420 --
21421
21422 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
21423 -- or secondary ledger that has different currency with primary
21424 -- or alc that is calculated by sla
21425 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
21426 (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'))
21427
21428 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
21429 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
21430 AND (l_actual_flag = 'A')) THEN
21431 XLA_AE_LINES_PKG.CreateGainOrLossLines(
21432 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
21433 ,p_application_id => p_application_id
21434 ,p_amb_context_code => 'DEFAULT'
21435 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
21436 ,p_event_class_code => C_EVENT_CLASS_CODE
21437 ,p_event_type_code => C_EVENT_TYPE_CODE
21438
21439 ,p_gain_ccid => -1
21440 ,p_loss_ccid => -1
21441
21442 ,p_actual_flag => l_actual_flag
21443 ,p_enc_flag => null
21444 ,p_actual_g_l_ref => l_actual_gain_loss_ref
21445 ,p_enc_g_l_ref => null
21446 );
21447 END IF;
21448 END IF;
21449 END IF;
21450
21451 ELSE
21452 --
21453 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
21454 --
21455 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
21456 trace
21457 (p_msg => 'Trancaction revesal option is Y'
21458 ,p_level => C_LEVEL_STATEMENT
21459 ,p_module => l_log_module);
21460 END IF;
21461 END IF;
21462
21463 END LOOP;
21464 l_result := XLA_AE_LINES_PKG.InsertLines ;
21465 end loop;
21466 close line_cur;
21467
21468
21469 --
21470 -- insert headers into xla_ae_headers_gt table
21471 --
21472 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
21473
21474 -- insert into errors table here.
21475
21476 END LOOP;
21477
21478 --
21479 -- 4865292
21480 --
21481 -- Compare g_hdr_extract_count with event count in
21482 -- CreateHeadersAndLines.
21483 --
21484 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
21485
21486 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
21487 trace (p_msg => '# rows extracted from header extract objects '
21488 || ' (running total): '
21489 || g_hdr_extract_count
21490 ,p_level => C_LEVEL_STATEMENT
21491 ,p_module => l_log_module);
21492 END IF;
21493
21494 CLOSE header_cur;
21495 --
21496
21497 --
21498 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21499 trace
21500 (p_msg => 'END of EventType_32'
21501 ,p_level => C_LEVEL_PROCEDURE
21502 ,p_module => l_log_module);
21503 END IF;
21504 --
21505 RETURN l_result;
21506 EXCEPTION
21507 WHEN xla_exceptions_pkg.application_exception THEN
21508
21509 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
21510
21511
21512 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
21513
21514 RAISE;
21515
21516 WHEN NO_DATA_FOUND THEN
21517
21518 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
21519 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
21520
21521 FOR header_record IN header_cur
21522 LOOP
21523 l_array_header_events(header_record.event_id) := header_record.event_id;
21524 END LOOP;
21525
21526 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
21527 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
21528
21529 fnd_file.put_line(fnd_file.LOG, ' ');
21530 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
21531 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
21532 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
21533
21534 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
21535 LOOP
21536 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
21537 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
21538 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
21539 END IF;
21540 END LOOP;
21541
21542 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
21543 fnd_file.put_line(fnd_file.LOG, ' ');
21544
21545
21546 xla_exceptions_pkg.raise_message
21547 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_32');
21548
21549
21550 WHEN OTHERS THEN
21551 xla_exceptions_pkg.raise_message
21552 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_32');
21553 END EventType_32;
21554 --
21555
21556 ---------------------------------------
21557 --
21558 -- PRIVATE PROCEDURE
21559 -- insert_sources_33
21560 --
21561 ----------------------------------------
21562 --
21563 PROCEDURE insert_sources_33(
21564 p_target_ledger_id IN NUMBER
21565 , p_language IN VARCHAR2
21566 , p_sla_ledger_id IN NUMBER
21567 , p_pad_start_date IN DATE
21568 , p_pad_end_date IN DATE
21569 )
21570 IS
21571
21572 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FOB_SHIP_SENDER_SHIP_NO_TP';
21573 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FOB_SHIP_SENDER_SHIP';
21574 p_apps_owner VARCHAR2(30);
21575 l_log_module VARCHAR2(240);
21576 BEGIN
21577 IF g_log_enabled THEN
21578 l_log_module := C_DEFAULT_MODULE||'.insert_sources_33';
21579 END IF;
21580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21581
21582 trace
21583 (p_msg => 'BEGIN of insert_sources_33'
21584 ,p_level => C_LEVEL_PROCEDURE
21585 ,p_module => l_log_module);
21586
21587 END IF;
21588
21589 -- select APPS owner
21590 SELECT oracle_username
21591 INTO p_apps_owner
21592 FROM fnd_oracle_userid
21593 WHERE read_only_flag = 'U'
21594 ;
21595
21596 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
21597 trace
21598 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
21599 ' - p_language = '||p_language||
21600 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
21601 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
21602 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
21603 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
21604 ,p_level => C_LEVEL_STATEMENT
21605 ,p_module => l_log_module);
21606 END IF;
21607
21608
21609 --
21610 INSERT INTO xla_diag_sources --hdr1
21611 (
21612 event_id
21613 , ledger_id
21614 , sla_ledger_id
21615 , description_language
21616 , object_name
21617 , object_type_code
21618 , line_number
21619 , source_application_id
21620 , source_type_code
21621 , source_code
21622 , source_value
21623 , source_meaning
21624 , created_by
21625 , creation_date
21626 , last_update_date
21627 , last_updated_by
21628 , last_update_login
21629 , program_update_date
21630 , program_application_id
21631 , program_id
21632 , request_id
21633 )
21634 SELECT
21635 event_id
21636 , p_target_ledger_id
21637 , p_sla_ledger_id
21638 , p_language
21639 , object_name
21640 , object_type_code
21641 , line_number
21642 , source_application_id
21643 , source_type_code
21644 , source_code
21645 , SUBSTR(source_value ,1,1996)
21646 , SUBSTR(source_meaning,1,200)
21647 , xla_environment_pkg.g_Usr_Id
21648 , TRUNC(SYSDATE)
21649 , TRUNC(SYSDATE)
21650 , xla_environment_pkg.g_Usr_Id
21651 , xla_environment_pkg.g_Login_Id
21652 , TRUNC(SYSDATE)
21653 , xla_environment_pkg.g_Prog_Appl_Id
21654 , xla_environment_pkg.g_Prog_Id
21655 , xla_environment_pkg.g_Req_Id
21656 FROM (
21657 SELECT xet.event_id event_id
21658 , 0 line_number
21659 , CASE r
21660 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
21661 WHEN 2 THEN 'CST_XLA_INV_HEADERS_V'
21662
21663 ELSE null
21664 END object_name
21665 , CASE r
21666 WHEN 1 THEN 'HEADER'
21667 WHEN 2 THEN 'HEADER'
21668
21669 ELSE null
21670 END object_type_code
21671 , CASE r
21672 WHEN 1 THEN '707'
21673 WHEN 2 THEN '707'
21674
21675 ELSE null
21676 END source_application_id
21677 , 'S' source_type_code
21678 , CASE r
21679 WHEN 1 THEN 'DISTRIBUTION_TYPE'
21680 WHEN 2 THEN 'TRANSFER_TO_GL_INDICATOR'
21681
21682 ELSE null
21683 END source_code
21684 , CASE r
21685 WHEN 1 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
21686 WHEN 2 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
21687
21688 ELSE null
21689 END source_value
21690 , CASE r
21691 WHEN 1 THEN fvl9.meaning
21692 WHEN 2 THEN fvl42.meaning
21693
21694 ELSE null
21695 END source_meaning
21696 FROM xla_events_gt xet
21697 , CST_XLA_INV_HEADERS_V h1
21698 , fnd_lookup_values fvl9
21699 , fnd_lookup_values fvl42
21700 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
21701 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
21702 AND xet.event_type_code = C_EVENT_TYPE_CODE
21703 AND h1.event_id = xet.event_id
21704 AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
21705 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
21706 AND fvl9.view_application_id(+) = 700
21707 AND fvl9.language(+) = USERENV('LANG')
21708 AND fvl42.lookup_type(+) = 'YES_NO'
21709 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
21710 AND fvl42.view_application_id(+) = 0
21711 AND fvl42.language(+) = USERENV('LANG')
21712
21713 )
21714 ;
21715 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
21716
21717 trace
21718 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
21719 ,p_level => C_LEVEL_STATEMENT
21720 ,p_module => l_log_module);
21721
21722 END IF;
21723 --
21724
21725
21726
21727 --
21728 INSERT INTO xla_diag_sources --line1
21729 (
21730 event_id
21731 , ledger_id
21732 , sla_ledger_id
21733 , description_language
21734 , object_name
21735 , object_type_code
21736 , line_number
21737 , source_application_id
21738 , source_type_code
21739 , source_code
21740 , source_value
21741 , source_meaning
21742 , created_by
21743 , creation_date
21744 , last_update_date
21745 , last_updated_by
21746 , last_update_login
21747 , program_update_date
21748 , program_application_id
21749 , program_id
21750 , request_id
21751 )
21752 SELECT event_id
21753 , p_target_ledger_id
21754 , p_sla_ledger_id
21755 , p_language
21756 , object_name
21757 , object_type_code
21758 , line_number
21759 , source_application_id
21760 , source_type_code
21761 , source_code
21762 , SUBSTR(source_value,1,1996)
21763 , SUBSTR(source_meaning,1,200)
21764 , xla_environment_pkg.g_Usr_Id
21765 , TRUNC(SYSDATE)
21766 , TRUNC(SYSDATE)
21767 , xla_environment_pkg.g_Usr_Id
21768 , xla_environment_pkg.g_Login_Id
21769 , TRUNC(SYSDATE)
21770 , xla_environment_pkg.g_Prog_Appl_Id
21771 , xla_environment_pkg.g_Prog_Id
21772 , xla_environment_pkg.g_Req_Id
21773 FROM (
21774 SELECT xet.event_id event_id
21775 , l2.line_number line_number
21776 , CASE r
21777 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
21778 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
21779 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
21780 WHEN 4 THEN 'CST_XLA_INV_LINES_V'
21781 WHEN 5 THEN 'CST_XLA_INV_LINES_V'
21782 WHEN 6 THEN 'CST_XLA_INV_LINES_V'
21783 WHEN 7 THEN 'CST_XLA_INV_LINES_V'
21784 WHEN 8 THEN 'CST_XLA_INV_LINES_V'
21785 WHEN 9 THEN 'CST_XLA_INV_LINES_V'
21786
21787 ELSE null
21788 END object_name
21789 , CASE r
21790 WHEN 1 THEN 'LINE'
21791 WHEN 2 THEN 'LINE'
21792 WHEN 3 THEN 'LINE'
21793 WHEN 4 THEN 'LINE'
21794 WHEN 5 THEN 'LINE'
21795 WHEN 6 THEN 'LINE'
21796 WHEN 7 THEN 'LINE'
21797 WHEN 8 THEN 'LINE'
21798 WHEN 9 THEN 'LINE'
21799
21800 ELSE null
21801 END object_type_code
21802 , CASE r
21803 WHEN 1 THEN '707'
21804 WHEN 2 THEN '707'
21805 WHEN 3 THEN '707'
21806 WHEN 4 THEN '707'
21807 WHEN 5 THEN '707'
21808 WHEN 6 THEN '707'
21809 WHEN 7 THEN '707'
21810 WHEN 8 THEN '707'
21811 WHEN 9 THEN '707'
21812
21813 ELSE null
21814 END source_application_id
21815 , 'S' source_type_code
21816 , CASE r
21817 WHEN 1 THEN 'CODE_COMBINATION_ID'
21818 WHEN 2 THEN 'ACCOUNTING_LINE_TYPE_CODE'
21819 WHEN 3 THEN 'DISTRIBUTION_IDENTIFIER'
21820 WHEN 4 THEN 'ENTERED_AMOUNT'
21821 WHEN 5 THEN 'CURRENCY_CODE'
21822 WHEN 6 THEN 'CURRENCY_CONVERSION_DATE'
21823 WHEN 7 THEN 'CURRENCY_CONVERSION_RATE'
21824 WHEN 8 THEN 'CURRENCY_CONVERSION_TYPE'
21825 WHEN 9 THEN 'ACCOUNTED_AMOUNT'
21826
21827 ELSE null
21828 END source_code
21829 , CASE r
21830 WHEN 1 THEN TO_CHAR(l2.CODE_COMBINATION_ID)
21831 WHEN 2 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
21832 WHEN 3 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
21833 WHEN 4 THEN TO_CHAR(l2.ENTERED_AMOUNT)
21834 WHEN 5 THEN TO_CHAR(l2.CURRENCY_CODE)
21835 WHEN 6 THEN TO_CHAR(l2.CURRENCY_CONVERSION_DATE)
21836 WHEN 7 THEN TO_CHAR(l2.CURRENCY_CONVERSION_RATE)
21837 WHEN 8 THEN TO_CHAR(l2.CURRENCY_CONVERSION_TYPE)
21838 WHEN 9 THEN TO_CHAR(l2.ACCOUNTED_AMOUNT)
21839
21840 ELSE null
21841 END source_value
21842 , null source_meaning
21843 FROM xla_events_gt xet
21844 , CST_XLA_INV_LINES_V l2
21845 ,(select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
21846 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
21847 AND xet.event_type_code = C_EVENT_TYPE_CODE
21848 AND l2.event_id = xet.event_id
21849
21850 )
21851 ;
21852 --
21853 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
21854
21855 trace
21856 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
21857 ,p_level => C_LEVEL_STATEMENT
21858 ,p_module => l_log_module);
21859
21860 END IF;
21861
21862
21863 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21864 trace
21865 (p_msg => 'END of insert_sources_33'
21866 ,p_level => C_LEVEL_PROCEDURE
21867 ,p_module => l_log_module);
21868 END IF;
21869 EXCEPTION
21870 WHEN xla_exceptions_pkg.application_exception THEN
21871 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
21872 trace
21873 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
21874 ,p_level => C_LEVEL_EXCEPTION
21875 ,p_module => l_log_module);
21876 END IF;
21877 RAISE;
21878 WHEN OTHERS THEN
21879 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
21880 trace
21881 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
21882 ,p_level => C_LEVEL_EXCEPTION
21883 ,p_module => l_log_module);
21884 END IF;
21885 xla_exceptions_pkg.raise_message
21886 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_33');
21887 END insert_sources_33;
21888 --
21889
21890 ---------------------------------------
21891 --
21892 -- PRIVATE FUNCTION
21893 -- EventType_33
21894 --
21895 ----------------------------------------
21896 --
21897 FUNCTION EventType_33
21898 (p_application_id IN NUMBER
21899 ,p_base_ledger_id IN NUMBER
21900 ,p_target_ledger_id IN NUMBER
21901 ,p_language IN VARCHAR2
21902 ,p_currency_code IN VARCHAR2
21903 ,p_sla_ledger_id IN NUMBER
21904 ,p_pad_start_date IN DATE
21905 ,p_pad_end_date IN DATE
21906 ,p_primary_ledger_id IN NUMBER)
21907 RETURN BOOLEAN IS
21908 --
21909 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FOB_SHIP_SENDER_SHIP_NO_TP';
21910 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FOB_SHIP_SENDER_SHIP';
21911
21912 l_calculate_acctd_flag VARCHAR2(1) :='N';
21913 l_calculate_g_l_flag VARCHAR2(1) :='N';
21914 --
21915 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
21916 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
21917 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
21918 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
21919 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
21920 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
21921 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
21922 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
21923 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
21924 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
21925 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
21926 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
21927 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
21928 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
21929 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
21930 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
21931 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
21932 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
21933 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
21934 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
21935 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
21936 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
21937 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
21938 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
21939 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
21940 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
21941
21942 l_event_id NUMBER;
21943 l_previous_event_id NUMBER;
21944 l_first_event_id NUMBER;
21945 l_last_event_id NUMBER;
21946
21947 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
21948 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21949 --
21950 --
21951 l_result BOOLEAN := TRUE;
21952 l_rows NUMBER := 1000;
21953 l_event_type_name VARCHAR2(80) := 'Sender-side Intransit Interorg Shipment for FOB Shipment, no Transfer Pricing';
21954 l_event_class_name VARCHAR2(80) := 'Sender-side Intransit Interorg Shipment for FOB Shipment';
21955 l_description VARCHAR2(4000);
21956 l_transaction_reversal NUMBER;
21957 l_ae_header_id NUMBER;
21958 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
21959 l_log_module VARCHAR2(240);
21960 --
21961 l_acct_reversal_source VARCHAR2(30);
21962 l_trx_reversal_source VARCHAR2(30);
21963
21964 l_continue_with_lines BOOLEAN := TRUE;
21965 --
21966 l_acc_rev_gl_date_source DATE; -- 4262811
21967 --
21968 type t_array_event_id is table of number index by binary_integer;
21969
21970 l_rec_array_event t_rec_array_event;
21971 l_null_rec_array_event t_rec_array_event;
21972 l_array_ae_header_id xla_number_array_type;
21973 l_actual_flag VARCHAR2(1) := NULL;
21974 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
21975 l_balance_type_code VARCHAR2(1) :=NULL;
21976 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
21977
21978 --
21979 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
21980 --
21981
21982 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
21983 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
21984
21985 TYPE t_array_source_6 IS TABLE OF CST_XLA_INV_LINES_V.CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
21986 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
21987 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
21988 TYPE t_array_source_10 IS TABLE OF CST_XLA_INV_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
21989 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
21990 TYPE t_array_source_12 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
21991 TYPE t_array_source_13 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
21992 TYPE t_array_source_14 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
21993 TYPE t_array_source_15 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
21994
21995 l_array_source_9 t_array_source_9;
21996 l_array_source_9_meaning t_array_lookup_meaning;
21997 l_array_source_42 t_array_source_42;
21998 l_array_source_42_meaning t_array_lookup_meaning;
21999
22000 l_array_source_6 t_array_source_6;
22001 l_array_source_7 t_array_source_7;
22002 l_array_source_8 t_array_source_8;
22003 l_array_source_10 t_array_source_10;
22004 l_array_source_11 t_array_source_11;
22005 l_array_source_12 t_array_source_12;
22006 l_array_source_13 t_array_source_13;
22007 l_array_source_14 t_array_source_14;
22008 l_array_source_15 t_array_source_15;
22009
22010 --
22011 CURSOR header_cur
22012 IS
22013 SELECT /*+ leading(xet) cardinality(xet,1) */
22014 -- Event Type Code: FOB_SHIP_SENDER_SHIP_NO_TP
22015 -- Event Class Code: FOB_SHIP_SENDER_SHIP
22016 xet.entity_id
22017 , xet.legal_entity_id
22018 , xet.entity_code
22019 , xet.transaction_number
22020 , xet.event_id
22021 , xet.event_class_code
22022 , xet.event_type_code
22023 , xet.event_number
22024 , xet.event_date
22025 , xet.transaction_date
22026 , xet.reference_num_1
22027 , xet.reference_num_2
22028 , xet.reference_num_3
22029 , xet.reference_num_4
22030 , xet.reference_char_1
22031 , xet.reference_char_2
22032 , xet.reference_char_3
22033 , xet.reference_char_4
22034 , xet.reference_date_1
22035 , xet.reference_date_2
22036 , xet.reference_date_3
22037 , xet.reference_date_4
22038 , xet.event_created_by
22039 , xet.budgetary_control_flag
22040 , h1.DISTRIBUTION_TYPE source_9
22041 , fvl9.meaning source_9_meaning
22042 , h1.TRANSFER_TO_GL_INDICATOR source_42
22043 , fvl42.meaning source_42_meaning
22044 FROM xla_events_gt xet
22045 , CST_XLA_INV_HEADERS_V h1
22046 , fnd_lookup_values fvl9
22047 , fnd_lookup_values fvl42
22048 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
22049 and xet.event_type_code = C_EVENT_TYPE_CODE
22050 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
22051 AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
22052 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
22053 AND fvl9.view_application_id(+) = 700
22054 AND fvl9.language(+) = USERENV('LANG')
22055 AND fvl42.lookup_type(+) = 'YES_NO'
22056 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
22057 AND fvl42.view_application_id(+) = 0
22058 AND fvl42.language(+) = USERENV('LANG')
22059
22060 ORDER BY event_id
22061 ;
22062
22063
22064 --
22065 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
22066 IS
22067 SELECT /*+ leading(xet) cardinality(xet,1) */
22068 -- Event Type Code: FOB_SHIP_SENDER_SHIP_NO_TP
22069 -- Event Class Code: FOB_SHIP_SENDER_SHIP
22070 xet.entity_id
22071 ,xet.legal_entity_id
22072 ,xet.entity_code
22073 ,xet.transaction_number
22074 ,xet.event_id
22075 ,xet.event_class_code
22076 ,xet.event_type_code
22077 ,xet.event_number
22078 ,xet.event_date
22079 ,xet.transaction_date
22080 ,xet.reference_num_1
22081 ,xet.reference_num_2
22082 ,xet.reference_num_3
22083 ,xet.reference_num_4
22084 ,xet.reference_char_1
22085 ,xet.reference_char_2
22086 ,xet.reference_char_3
22087 ,xet.reference_char_4
22088 ,xet.reference_date_1
22089 ,xet.reference_date_2
22090 ,xet.reference_date_3
22091 ,xet.reference_date_4
22092 ,xet.event_created_by
22093 ,xet.budgetary_control_flag , l2.LINE_NUMBER
22094 , l2.CODE_COMBINATION_ID source_6
22095 , l2.ACCOUNTING_LINE_TYPE_CODE source_7
22096 , l2.DISTRIBUTION_IDENTIFIER source_8
22097 , l2.ENTERED_AMOUNT source_10
22098 , l2.CURRENCY_CODE source_11
22099 , l2.CURRENCY_CONVERSION_DATE source_12
22100 , l2.CURRENCY_CONVERSION_RATE source_13
22101 , l2.CURRENCY_CONVERSION_TYPE source_14
22102 , l2.ACCOUNTED_AMOUNT source_15
22103 FROM xla_events_gt xet
22104 , CST_XLA_INV_LINES_V l2
22105 WHERE xet.event_id between x_first_event_id and x_last_event_id
22106 and xet.event_date between p_pad_start_date and p_pad_end_date
22107 and xet.event_type_code = C_EVENT_TYPE_CODE
22108 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
22109 ;
22110
22111 --
22112 BEGIN
22113 IF g_log_enabled THEN
22114 l_log_module := C_DEFAULT_MODULE||'.EventType_33';
22115 END IF;
22116 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22117 trace
22118 (p_msg => 'BEGIN of EventType_33'
22119 ,p_level => C_LEVEL_PROCEDURE
22120 ,p_module => l_log_module);
22121 END IF;
22122
22123 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
22124 trace
22125 (p_msg => 'p_application_id = '||p_application_id||
22126 ' - p_base_ledger_id = '||p_base_ledger_id||
22127 ' - p_target_ledger_id = '||p_target_ledger_id||
22128 ' - p_language = '||p_language||
22129 ' - p_currency_code = '||p_currency_code||
22130 ' - p_sla_ledger_id = '||p_sla_ledger_id
22131 ,p_level => C_LEVEL_STATEMENT
22132 ,p_module => l_log_module);
22133 END IF;
22134 --
22135 -- initialze arrays
22136 --
22137 g_array_event.DELETE;
22138 l_rec_array_event := l_null_rec_array_event;
22139 --
22140 --------------------------------------
22141 -- 4262811 Initialze MPA Line Number
22142 --------------------------------------
22143 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
22144
22145 --
22146
22147 --
22148 OPEN header_cur;
22149 --
22150 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
22151 trace
22152 (p_msg => 'SQL - FETCH header_cur'
22153 ,p_level => C_LEVEL_STATEMENT
22154 ,p_module => l_log_module);
22155 END IF;
22156 --
22157 LOOP
22158 FETCH header_cur BULK COLLECT INTO
22159 l_array_entity_id
22160 , l_array_legal_entity_id
22161 , l_array_entity_code
22162 , l_array_transaction_num
22163 , l_array_event_id
22164 , l_array_class_code
22165 , l_array_event_type
22166 , l_array_event_number
22167 , l_array_event_date
22168 , l_array_transaction_date
22169 , l_array_reference_num_1
22170 , l_array_reference_num_2
22171 , l_array_reference_num_3
22172 , l_array_reference_num_4
22173 , l_array_reference_char_1
22174 , l_array_reference_char_2
22175 , l_array_reference_char_3
22176 , l_array_reference_char_4
22177 , l_array_reference_date_1
22178 , l_array_reference_date_2
22179 , l_array_reference_date_3
22180 , l_array_reference_date_4
22181 , l_array_event_created_by
22182 , l_array_budgetary_control_flag
22183 , l_array_source_9
22184 , l_array_source_9_meaning
22185 , l_array_source_42
22186 , l_array_source_42_meaning
22187 LIMIT l_rows;
22188 --
22189 IF (C_LEVEL_EVENT >= g_log_level) THEN
22190 trace
22191 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
22192 ,p_level => C_LEVEL_EVENT
22193 ,p_module => l_log_module);
22194 END IF;
22195 --
22196 EXIT WHEN l_array_entity_id.COUNT = 0;
22197
22198 -- initialize arrays
22199 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
22200 XLA_AE_LINES_PKG.g_rec_lines := NULL;
22201
22202 --
22203 -- Bug 4458708
22204 --
22205 XLA_AE_LINES_PKG.g_LineNumber := 0;
22206
22207
22208 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
22209 g_last_hdr_idx := l_array_event_id.LAST;
22210 --
22211 -- loop for the headers. Each iteration is for each header extract row
22212 -- fetched in header cursor
22213 --
22214 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
22215
22216 --
22217 -- set event info as cache for other routines to refer event attributes
22218 --
22219 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
22220 (p_application_id => p_application_id
22221 ,p_primary_ledger_id => p_primary_ledger_id
22222 ,p_base_ledger_id => p_base_ledger_id
22223 ,p_target_ledger_id => p_target_ledger_id
22224 ,p_entity_id => l_array_entity_id(hdr_idx)
22225 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
22226 ,p_entity_code => l_array_entity_code(hdr_idx)
22227 ,p_transaction_num => l_array_transaction_num(hdr_idx)
22228 ,p_event_id => l_array_event_id(hdr_idx)
22229 ,p_event_class_code => l_array_class_code(hdr_idx)
22230 ,p_event_type_code => l_array_event_type(hdr_idx)
22231 ,p_event_number => l_array_event_number(hdr_idx)
22232 ,p_event_date => l_array_event_date(hdr_idx)
22233 ,p_transaction_date => l_array_transaction_date(hdr_idx)
22234 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
22235 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
22236 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
22237 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
22238 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
22239 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
22240 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
22241 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
22242 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
22243 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
22244 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
22245 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
22246 ,p_event_created_by => l_array_event_created_by(hdr_idx)
22247 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
22248
22249 --
22250 -- set the status of entry to C_VALID (0)
22251 --
22252 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
22253
22254 --
22255 -- initialize a row for ae header
22256 --
22257 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
22258
22259 l_event_id := l_array_event_id(hdr_idx);
22260
22261 --
22262 -- storing the hdr_idx for event. May be used by line cursor.
22263 --
22264 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
22265
22266 --
22267 -- store sources from header extract. This can be improved to
22268 -- store only those sources from header extract that may be used in lines
22269 --
22270
22271 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
22272 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
22273 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
22274 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
22275
22276 --
22277 -- initilaize the status of ae headers for diffrent balance types
22278 -- the status is initialised to C_NOT_CREATED (2)
22279 --
22280 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
22281 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
22282 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
22283
22284 --
22285 -- call api to validate and store accounting attributes for header
22286 --
22287
22288 ------------------------------------------------------------
22289 -- Accrual Reversal : to get date for Standard Source (NONE)
22290 ------------------------------------------------------------
22291 l_acc_rev_gl_date_source := NULL;
22292
22293 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
22294 l_rec_acct_attrs.array_date_value(1) :=
22295 xla_ae_sources_pkg.GetSystemSourceDate(
22296 p_source_code => 'XLA_REFERENCE_DATE_1'
22297 , p_source_type_code => 'Y'
22298 , p_source_application_id => 602
22299 );
22300 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_TRANSFER_FLAG';
22301 l_rec_acct_attrs.array_char_value(2) := g_array_event(l_event_id).array_value_char('source_42');
22302
22303
22304 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
22305
22306 XLA_AE_HEADER_PKG.SetJeCategoryName;
22307
22308 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
22309 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
22310 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
22311 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
22312 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
22313
22314
22315 -- No header level analytical criteria
22316
22317 --
22318 --accounting attribute enhancement, bug 3612931
22319 --
22320 l_trx_reversal_source := SUBSTR(NULL, 1,30);
22321
22322 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
22323 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
22324
22325 xla_accounting_err_pkg.build_message
22326 (p_appli_s_name => 'XLA'
22327 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
22328 ,p_token_1 => 'ACCT_ATTR_NAME'
22329 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
22330 ,p_token_2 => 'PRODUCT_NAME'
22331 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
22332 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
22333 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
22334 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
22335
22336 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
22337 --
22338 -- following sets the accounting attributes needed to reverse
22339 -- accounting for a distributeion
22340 --
22341 xla_ae_lines_pkg.SetTrxReversalAttrs
22342 (p_event_id => l_event_id
22343 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
22344 ,p_trx_reversal_source => l_trx_reversal_source);
22345
22346 END IF;
22347
22348
22349 ----------------------------------------------------------------
22350 -- 4262811 - update the header statuses to invalid in need be
22351 ----------------------------------------------------------------
22352 --
22353 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
22354
22355
22356 -----------------------------------------------
22357 -- No accrual reversal for the event class/type
22358 -----------------------------------------------
22359 ----------------------------------------------------------------
22360
22361 --
22362 -- this ends the header loop iteration for one bulk fetch
22363 --
22364 END LOOP;
22365
22366 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
22367 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
22368
22369 --
22370 -- insert dummy rows into lines gt table that were created due to
22371 -- transaction reversals
22372 --
22373 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
22374 l_result := XLA_AE_LINES_PKG.InsertLines;
22375 END IF;
22376
22377 --
22378 -- reset the temp_line_num for each set of events fetched from header
22379 -- cursor rather than doing it for each new event in line cursor
22380 -- Bug 3939231
22381 --
22382 xla_ae_lines_pkg.g_temp_line_num := 0;
22383
22384
22385
22386 --
22387 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
22388 --
22389 --
22390 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
22391
22392 trace
22393 (p_msg => 'SQL - FETCH line_cur'
22394 ,p_level => C_LEVEL_STATEMENT
22395 ,p_module => l_log_module);
22396
22397 END IF;
22398 --
22399 --
22400 LOOP
22401 --
22402 FETCH line_cur BULK COLLECT INTO
22403 l_array_entity_id
22404 , l_array_legal_entity_id
22405 , l_array_entity_code
22406 , l_array_transaction_num
22407 , l_array_event_id
22408 , l_array_class_code
22409 , l_array_event_type
22410 , l_array_event_number
22411 , l_array_event_date
22412 , l_array_transaction_date
22413 , l_array_reference_num_1
22414 , l_array_reference_num_2
22415 , l_array_reference_num_3
22416 , l_array_reference_num_4
22417 , l_array_reference_char_1
22418 , l_array_reference_char_2
22419 , l_array_reference_char_3
22420 , l_array_reference_char_4
22421 , l_array_reference_date_1
22422 , l_array_reference_date_2
22423 , l_array_reference_date_3
22424 , l_array_reference_date_4
22425 , l_array_event_created_by
22426 , l_array_budgetary_control_flag
22427 , l_array_extract_line_num
22428 , l_array_source_6
22429 , l_array_source_7
22430 , l_array_source_8
22431 , l_array_source_10
22432 , l_array_source_11
22433 , l_array_source_12
22434 , l_array_source_13
22435 , l_array_source_14
22436 , l_array_source_15
22437 LIMIT l_rows;
22438
22439 --
22440 IF (C_LEVEL_EVENT >= g_log_level) THEN
22441 trace
22442 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
22443 ,p_level => C_LEVEL_EVENT
22444 ,p_module => l_log_module);
22445 END IF;
22446 --
22447 EXIT WHEN l_array_entity_id.count = 0;
22448
22449 XLA_AE_LINES_PKG.g_rec_lines := null;
22450
22451 --
22452 -- Bug 4458708
22453 --
22454 XLA_AE_LINES_PKG.g_LineNumber := 0;
22455 --
22456 --
22457
22458 FOR Idx IN 1..l_array_event_id.count LOOP
22459 --
22460 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
22461 --
22462 l_event_id := l_array_event_id(idx); -- 5648433
22463
22464 --
22465 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
22466 --
22467
22468 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
22469 (g_array_event(l_event_id).array_value_num('header_index'))
22470 ,'N'
22471 ) <> 'Y'
22472 THEN
22473 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
22474 trace
22475 (p_msg => 'Trancaction revesal option is not Y '
22476 ,p_level => C_LEVEL_STATEMENT
22477 ,p_module => l_log_module);
22478 END IF;
22479
22480 --
22481 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
22482 --
22483 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
22484 --
22485 -- set event info as cache for other routines to refer event attributes
22486 --
22487
22488 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
22489 l_previous_event_id := l_event_id;
22490
22491 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
22492 (p_application_id => p_application_id
22493 ,p_primary_ledger_id => p_primary_ledger_id
22494 ,p_base_ledger_id => p_base_ledger_id
22495 ,p_target_ledger_id => p_target_ledger_id
22496 ,p_entity_id => l_array_entity_id(Idx)
22497 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
22498 ,p_entity_code => l_array_entity_code(Idx)
22499 ,p_transaction_num => l_array_transaction_num(Idx)
22500 ,p_event_id => l_array_event_id(Idx)
22501 ,p_event_class_code => l_array_class_code(Idx)
22502 ,p_event_type_code => l_array_event_type(Idx)
22503 ,p_event_number => l_array_event_number(Idx)
22504 ,p_event_date => l_array_event_date(Idx)
22505 ,p_transaction_date => l_array_transaction_date(Idx)
22506 ,p_reference_num_1 => l_array_reference_num_1(Idx)
22507 ,p_reference_num_2 => l_array_reference_num_2(Idx)
22508 ,p_reference_num_3 => l_array_reference_num_3(Idx)
22509 ,p_reference_num_4 => l_array_reference_num_4(Idx)
22510 ,p_reference_char_1 => l_array_reference_char_1(Idx)
22511 ,p_reference_char_2 => l_array_reference_char_2(Idx)
22512 ,p_reference_char_3 => l_array_reference_char_3(Idx)
22513 ,p_reference_char_4 => l_array_reference_char_4(Idx)
22514 ,p_reference_date_1 => l_array_reference_date_1(Idx)
22515 ,p_reference_date_2 => l_array_reference_date_2(Idx)
22516 ,p_reference_date_3 => l_array_reference_date_3(Idx)
22517 ,p_reference_date_4 => l_array_reference_date_4(Idx)
22518 ,p_event_created_by => l_array_event_created_by(Idx)
22519 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
22520 --
22521 END IF;
22522
22523
22524
22525 --
22526 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
22527
22528 l_acct_reversal_source := SUBSTR(NULL, 1,30);
22529
22530 IF l_continue_with_lines THEN
22531 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
22532 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
22533
22534 xla_accounting_err_pkg.build_message
22535 (p_appli_s_name => 'XLA'
22536 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
22537 ,p_token_1 => 'LINE_NUMBER'
22538 ,p_value_1 => l_array_extract_line_num(Idx)
22539 ,p_token_2 => 'PRODUCT_NAME'
22540 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
22541 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
22542 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
22543 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
22544
22545 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
22546 --
22547 -- following sets the accounting attributes needed to reverse
22548 -- accounting for a distributeion
22549 --
22550
22551 --
22552 -- 5217187
22553 --
22554 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
22555 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
22556 g_array_event(l_event_id).array_value_num('header_index'));
22557 --
22558 --
22559
22560 -- No reversal code generated
22561
22562 xla_ae_lines_pkg.SetAcctReversalAttrs
22563 (p_event_id => l_event_id
22564 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
22565 ,p_calculate_acctd_flag => l_calculate_acctd_flag
22566 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
22567 END IF;
22568
22569 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
22570 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
22571
22572 --
22573 AcctLineType_26 (
22574 p_application_id => p_application_id
22575 ,p_event_id => l_event_id
22576 ,p_calculate_acctd_flag => l_calculate_acctd_flag
22577 ,p_calculate_g_l_flag => l_calculate_g_l_flag
22578 ,p_actual_flag => l_actual_flag
22579 ,p_balance_type_code => l_balance_type_code
22580 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
22581
22582 , p_source_6 => l_array_source_6(Idx)
22583 , p_source_7 => l_array_source_7(Idx)
22584 , p_source_8 => l_array_source_8(Idx)
22585 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
22586 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
22587 , p_source_10 => l_array_source_10(Idx)
22588 , p_source_11 => l_array_source_11(Idx)
22589 , p_source_12 => l_array_source_12(Idx)
22590 , p_source_13 => l_array_source_13(Idx)
22591 , p_source_14 => l_array_source_14(Idx)
22592 , p_source_15 => l_array_source_15(Idx)
22593 );
22594 If(l_balance_type_code = 'A') THEN
22595 l_actual_gain_loss_ref := l_gain_or_loss_ref;
22596 END IF;
22597
22598 --
22599
22600 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
22601 -- or secondary ledger that has different currency with primary
22602 -- or alc that is calculated by sla
22603 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
22604 (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'))
22605
22606 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
22607 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
22608 AND (l_actual_flag = 'A')) THEN
22609 XLA_AE_LINES_PKG.CreateGainOrLossLines(
22610 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
22611 ,p_application_id => p_application_id
22612 ,p_amb_context_code => 'DEFAULT'
22613 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
22614 ,p_event_class_code => C_EVENT_CLASS_CODE
22615 ,p_event_type_code => C_EVENT_TYPE_CODE
22616
22617 ,p_gain_ccid => -1
22618 ,p_loss_ccid => -1
22619
22620 ,p_actual_flag => l_actual_flag
22621 ,p_enc_flag => null
22622 ,p_actual_g_l_ref => l_actual_gain_loss_ref
22623 ,p_enc_g_l_ref => null
22624 );
22625 END IF;
22626 END IF;
22627 END IF;
22628
22629 ELSE
22630 --
22631 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
22632 --
22633 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
22634 trace
22635 (p_msg => 'Trancaction revesal option is Y'
22636 ,p_level => C_LEVEL_STATEMENT
22637 ,p_module => l_log_module);
22638 END IF;
22639 END IF;
22640
22641 END LOOP;
22642 l_result := XLA_AE_LINES_PKG.InsertLines ;
22643 end loop;
22644 close line_cur;
22645
22646
22647 --
22648 -- insert headers into xla_ae_headers_gt table
22649 --
22650 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
22651
22652 -- insert into errors table here.
22653
22654 END LOOP;
22655
22656 --
22657 -- 4865292
22658 --
22659 -- Compare g_hdr_extract_count with event count in
22660 -- CreateHeadersAndLines.
22661 --
22662 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
22663
22664 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
22665 trace (p_msg => '# rows extracted from header extract objects '
22666 || ' (running total): '
22667 || g_hdr_extract_count
22668 ,p_level => C_LEVEL_STATEMENT
22669 ,p_module => l_log_module);
22670 END IF;
22671
22672 CLOSE header_cur;
22673 --
22674
22675 --
22676 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22677 trace
22678 (p_msg => 'END of EventType_33'
22679 ,p_level => C_LEVEL_PROCEDURE
22680 ,p_module => l_log_module);
22681 END IF;
22682 --
22683 RETURN l_result;
22684 EXCEPTION
22685 WHEN xla_exceptions_pkg.application_exception THEN
22686
22687 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
22688
22689
22690 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
22691
22692 RAISE;
22693
22694 WHEN NO_DATA_FOUND THEN
22695
22696 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
22697 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
22698
22699 FOR header_record IN header_cur
22700 LOOP
22701 l_array_header_events(header_record.event_id) := header_record.event_id;
22702 END LOOP;
22703
22704 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
22705 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
22706
22707 fnd_file.put_line(fnd_file.LOG, ' ');
22708 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
22709 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
22710 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
22711
22712 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
22713 LOOP
22714 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
22715 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
22716 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
22717 END IF;
22718 END LOOP;
22719
22720 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
22721 fnd_file.put_line(fnd_file.LOG, ' ');
22722
22723
22724 xla_exceptions_pkg.raise_message
22725 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_33');
22726
22727
22728 WHEN OTHERS THEN
22729 xla_exceptions_pkg.raise_message
22730 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_33');
22731 END EventType_33;
22732 --
22733
22734 ---------------------------------------
22735 --
22736 -- PRIVATE PROCEDURE
22737 -- insert_sources_34
22738 --
22739 ----------------------------------------
22740 --
22741 PROCEDURE insert_sources_34(
22742 p_target_ledger_id IN NUMBER
22743 , p_language IN VARCHAR2
22744 , p_sla_ledger_id IN NUMBER
22745 , p_pad_start_date IN DATE
22746 , p_pad_end_date IN DATE
22747 )
22748 IS
22749
22750 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FOB_SHIP_SENDER_SHIP_TP';
22751 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FOB_SHIP_SENDER_SHIP';
22752 p_apps_owner VARCHAR2(30);
22753 l_log_module VARCHAR2(240);
22754 BEGIN
22755 IF g_log_enabled THEN
22756 l_log_module := C_DEFAULT_MODULE||'.insert_sources_34';
22757 END IF;
22758 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22759
22760 trace
22761 (p_msg => 'BEGIN of insert_sources_34'
22762 ,p_level => C_LEVEL_PROCEDURE
22763 ,p_module => l_log_module);
22764
22765 END IF;
22766
22767 -- select APPS owner
22768 SELECT oracle_username
22769 INTO p_apps_owner
22770 FROM fnd_oracle_userid
22771 WHERE read_only_flag = 'U'
22772 ;
22773
22774 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
22775 trace
22776 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
22777 ' - p_language = '||p_language||
22778 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
22779 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
22780 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
22781 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
22782 ,p_level => C_LEVEL_STATEMENT
22783 ,p_module => l_log_module);
22784 END IF;
22785
22786
22787 --
22788 INSERT INTO xla_diag_sources --hdr1
22789 (
22790 event_id
22791 , ledger_id
22792 , sla_ledger_id
22793 , description_language
22794 , object_name
22795 , object_type_code
22796 , line_number
22797 , source_application_id
22798 , source_type_code
22799 , source_code
22800 , source_value
22801 , source_meaning
22802 , created_by
22803 , creation_date
22804 , last_update_date
22805 , last_updated_by
22806 , last_update_login
22807 , program_update_date
22808 , program_application_id
22809 , program_id
22810 , request_id
22811 )
22812 SELECT
22813 event_id
22814 , p_target_ledger_id
22815 , p_sla_ledger_id
22816 , p_language
22817 , object_name
22818 , object_type_code
22819 , line_number
22820 , source_application_id
22821 , source_type_code
22822 , source_code
22823 , SUBSTR(source_value ,1,1996)
22824 , SUBSTR(source_meaning,1,200)
22825 , xla_environment_pkg.g_Usr_Id
22826 , TRUNC(SYSDATE)
22827 , TRUNC(SYSDATE)
22828 , xla_environment_pkg.g_Usr_Id
22829 , xla_environment_pkg.g_Login_Id
22830 , TRUNC(SYSDATE)
22831 , xla_environment_pkg.g_Prog_Appl_Id
22832 , xla_environment_pkg.g_Prog_Id
22833 , xla_environment_pkg.g_Req_Id
22834 FROM (
22835 SELECT xet.event_id event_id
22836 , 0 line_number
22837 , CASE r
22838 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
22839 WHEN 2 THEN 'CST_XLA_INV_HEADERS_V'
22840
22841 ELSE null
22842 END object_name
22843 , CASE r
22844 WHEN 1 THEN 'HEADER'
22845 WHEN 2 THEN 'HEADER'
22846
22847 ELSE null
22848 END object_type_code
22849 , CASE r
22850 WHEN 1 THEN '707'
22851 WHEN 2 THEN '707'
22852
22853 ELSE null
22854 END source_application_id
22855 , 'S' source_type_code
22856 , CASE r
22857 WHEN 1 THEN 'DISTRIBUTION_TYPE'
22858 WHEN 2 THEN 'TRANSFER_TO_GL_INDICATOR'
22859
22860 ELSE null
22861 END source_code
22862 , CASE r
22863 WHEN 1 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
22864 WHEN 2 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
22865
22866 ELSE null
22867 END source_value
22868 , CASE r
22869 WHEN 1 THEN fvl9.meaning
22870 WHEN 2 THEN fvl42.meaning
22871
22872 ELSE null
22873 END source_meaning
22874 FROM xla_events_gt xet
22875 , CST_XLA_INV_HEADERS_V h1
22876 , fnd_lookup_values fvl9
22877 , fnd_lookup_values fvl42
22878 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
22879 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
22880 AND xet.event_type_code = C_EVENT_TYPE_CODE
22881 AND h1.event_id = xet.event_id
22882 AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
22883 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
22884 AND fvl9.view_application_id(+) = 700
22885 AND fvl9.language(+) = USERENV('LANG')
22886 AND fvl42.lookup_type(+) = 'YES_NO'
22887 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
22888 AND fvl42.view_application_id(+) = 0
22889 AND fvl42.language(+) = USERENV('LANG')
22890
22891 )
22892 ;
22893 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
22894
22895 trace
22896 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
22897 ,p_level => C_LEVEL_STATEMENT
22898 ,p_module => l_log_module);
22899
22900 END IF;
22901 --
22902
22903
22904
22905 --
22906 INSERT INTO xla_diag_sources --line1
22907 (
22908 event_id
22909 , ledger_id
22910 , sla_ledger_id
22911 , description_language
22912 , object_name
22913 , object_type_code
22914 , line_number
22915 , source_application_id
22916 , source_type_code
22917 , source_code
22918 , source_value
22919 , source_meaning
22920 , created_by
22921 , creation_date
22922 , last_update_date
22923 , last_updated_by
22924 , last_update_login
22925 , program_update_date
22926 , program_application_id
22927 , program_id
22928 , request_id
22929 )
22930 SELECT event_id
22931 , p_target_ledger_id
22932 , p_sla_ledger_id
22933 , p_language
22934 , object_name
22935 , object_type_code
22936 , line_number
22937 , source_application_id
22938 , source_type_code
22939 , source_code
22940 , SUBSTR(source_value,1,1996)
22941 , SUBSTR(source_meaning,1,200)
22942 , xla_environment_pkg.g_Usr_Id
22943 , TRUNC(SYSDATE)
22944 , TRUNC(SYSDATE)
22945 , xla_environment_pkg.g_Usr_Id
22946 , xla_environment_pkg.g_Login_Id
22947 , TRUNC(SYSDATE)
22948 , xla_environment_pkg.g_Prog_Appl_Id
22949 , xla_environment_pkg.g_Prog_Id
22950 , xla_environment_pkg.g_Req_Id
22951 FROM (
22952 SELECT xet.event_id event_id
22953 , l2.line_number line_number
22954 , CASE r
22955 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
22956 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
22957 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
22958 WHEN 4 THEN 'CST_XLA_INV_LINES_V'
22959 WHEN 5 THEN 'CST_XLA_INV_LINES_V'
22960 WHEN 6 THEN 'CST_XLA_INV_LINES_V'
22961 WHEN 7 THEN 'CST_XLA_INV_LINES_V'
22962 WHEN 8 THEN 'CST_XLA_INV_LINES_V'
22963 WHEN 9 THEN 'CST_XLA_INV_LINES_V'
22964
22965 ELSE null
22966 END object_name
22967 , CASE r
22968 WHEN 1 THEN 'LINE'
22969 WHEN 2 THEN 'LINE'
22970 WHEN 3 THEN 'LINE'
22971 WHEN 4 THEN 'LINE'
22972 WHEN 5 THEN 'LINE'
22973 WHEN 6 THEN 'LINE'
22974 WHEN 7 THEN 'LINE'
22975 WHEN 8 THEN 'LINE'
22976 WHEN 9 THEN 'LINE'
22977
22978 ELSE null
22979 END object_type_code
22980 , CASE r
22981 WHEN 1 THEN '707'
22982 WHEN 2 THEN '707'
22983 WHEN 3 THEN '707'
22984 WHEN 4 THEN '707'
22985 WHEN 5 THEN '707'
22986 WHEN 6 THEN '707'
22987 WHEN 7 THEN '707'
22988 WHEN 8 THEN '707'
22989 WHEN 9 THEN '707'
22990
22991 ELSE null
22992 END source_application_id
22993 , 'S' source_type_code
22994 , CASE r
22995 WHEN 1 THEN 'CODE_COMBINATION_ID'
22996 WHEN 2 THEN 'ACCOUNTING_LINE_TYPE_CODE'
22997 WHEN 3 THEN 'DISTRIBUTION_IDENTIFIER'
22998 WHEN 4 THEN 'ENTERED_AMOUNT'
22999 WHEN 5 THEN 'CURRENCY_CODE'
23000 WHEN 6 THEN 'CURRENCY_CONVERSION_DATE'
23001 WHEN 7 THEN 'CURRENCY_CONVERSION_RATE'
23002 WHEN 8 THEN 'CURRENCY_CONVERSION_TYPE'
23003 WHEN 9 THEN 'ACCOUNTED_AMOUNT'
23004
23005 ELSE null
23006 END source_code
23007 , CASE r
23008 WHEN 1 THEN TO_CHAR(l2.CODE_COMBINATION_ID)
23009 WHEN 2 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
23010 WHEN 3 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
23011 WHEN 4 THEN TO_CHAR(l2.ENTERED_AMOUNT)
23012 WHEN 5 THEN TO_CHAR(l2.CURRENCY_CODE)
23013 WHEN 6 THEN TO_CHAR(l2.CURRENCY_CONVERSION_DATE)
23014 WHEN 7 THEN TO_CHAR(l2.CURRENCY_CONVERSION_RATE)
23015 WHEN 8 THEN TO_CHAR(l2.CURRENCY_CONVERSION_TYPE)
23016 WHEN 9 THEN TO_CHAR(l2.ACCOUNTED_AMOUNT)
23017
23018 ELSE null
23019 END source_value
23020 , null source_meaning
23021 FROM xla_events_gt xet
23022 , CST_XLA_INV_LINES_V l2
23023 ,(select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
23024 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
23025 AND xet.event_type_code = C_EVENT_TYPE_CODE
23026 AND l2.event_id = xet.event_id
23027
23028 )
23029 ;
23030 --
23031 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
23032
23033 trace
23034 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
23035 ,p_level => C_LEVEL_STATEMENT
23036 ,p_module => l_log_module);
23037
23038 END IF;
23039
23040
23041 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23042 trace
23043 (p_msg => 'END of insert_sources_34'
23044 ,p_level => C_LEVEL_PROCEDURE
23045 ,p_module => l_log_module);
23046 END IF;
23047 EXCEPTION
23048 WHEN xla_exceptions_pkg.application_exception THEN
23049 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
23050 trace
23051 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
23052 ,p_level => C_LEVEL_EXCEPTION
23053 ,p_module => l_log_module);
23054 END IF;
23055 RAISE;
23056 WHEN OTHERS THEN
23057 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
23058 trace
23059 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
23060 ,p_level => C_LEVEL_EXCEPTION
23061 ,p_module => l_log_module);
23062 END IF;
23063 xla_exceptions_pkg.raise_message
23064 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_34');
23065 END insert_sources_34;
23066 --
23067
23068 ---------------------------------------
23069 --
23070 -- PRIVATE FUNCTION
23071 -- EventType_34
23072 --
23073 ----------------------------------------
23074 --
23075 FUNCTION EventType_34
23076 (p_application_id IN NUMBER
23077 ,p_base_ledger_id IN NUMBER
23078 ,p_target_ledger_id IN NUMBER
23079 ,p_language IN VARCHAR2
23080 ,p_currency_code IN VARCHAR2
23081 ,p_sla_ledger_id IN NUMBER
23082 ,p_pad_start_date IN DATE
23083 ,p_pad_end_date IN DATE
23084 ,p_primary_ledger_id IN NUMBER)
23085 RETURN BOOLEAN IS
23086 --
23087 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FOB_SHIP_SENDER_SHIP_TP';
23088 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FOB_SHIP_SENDER_SHIP';
23089
23090 l_calculate_acctd_flag VARCHAR2(1) :='N';
23091 l_calculate_g_l_flag VARCHAR2(1) :='N';
23092 --
23093 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
23094 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
23095 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
23096 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
23097 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
23098 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
23099 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
23100 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
23101 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
23102 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
23103 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
23104 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
23105 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
23106 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
23107 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
23108 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
23109 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
23110 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
23111 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
23112 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
23113 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
23114 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
23115 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
23116 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
23117 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
23118 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
23119
23120 l_event_id NUMBER;
23121 l_previous_event_id NUMBER;
23122 l_first_event_id NUMBER;
23123 l_last_event_id NUMBER;
23124
23125 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
23126 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23127 --
23128 --
23129 l_result BOOLEAN := TRUE;
23130 l_rows NUMBER := 1000;
23131 l_event_type_name VARCHAR2(80) := 'Sender-side Intransit Interorg Shipment for FOB Shipment, Transfer Pricing';
23132 l_event_class_name VARCHAR2(80) := 'Sender-side Intransit Interorg Shipment for FOB Shipment';
23133 l_description VARCHAR2(4000);
23134 l_transaction_reversal NUMBER;
23135 l_ae_header_id NUMBER;
23136 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
23137 l_log_module VARCHAR2(240);
23138 --
23139 l_acct_reversal_source VARCHAR2(30);
23140 l_trx_reversal_source VARCHAR2(30);
23141
23142 l_continue_with_lines BOOLEAN := TRUE;
23143 --
23144 l_acc_rev_gl_date_source DATE; -- 4262811
23145 --
23146 type t_array_event_id is table of number index by binary_integer;
23147
23148 l_rec_array_event t_rec_array_event;
23149 l_null_rec_array_event t_rec_array_event;
23150 l_array_ae_header_id xla_number_array_type;
23151 l_actual_flag VARCHAR2(1) := NULL;
23152 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
23153 l_balance_type_code VARCHAR2(1) :=NULL;
23154 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
23155
23156 --
23157 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
23158 --
23159
23160 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
23161 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
23162
23163 TYPE t_array_source_6 IS TABLE OF CST_XLA_INV_LINES_V.CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
23164 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
23165 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
23166 TYPE t_array_source_10 IS TABLE OF CST_XLA_INV_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
23167 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
23168 TYPE t_array_source_12 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
23169 TYPE t_array_source_13 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
23170 TYPE t_array_source_14 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
23171 TYPE t_array_source_15 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
23172
23173 l_array_source_9 t_array_source_9;
23174 l_array_source_9_meaning t_array_lookup_meaning;
23175 l_array_source_42 t_array_source_42;
23176 l_array_source_42_meaning t_array_lookup_meaning;
23177
23178 l_array_source_6 t_array_source_6;
23179 l_array_source_7 t_array_source_7;
23180 l_array_source_8 t_array_source_8;
23181 l_array_source_10 t_array_source_10;
23182 l_array_source_11 t_array_source_11;
23183 l_array_source_12 t_array_source_12;
23184 l_array_source_13 t_array_source_13;
23185 l_array_source_14 t_array_source_14;
23186 l_array_source_15 t_array_source_15;
23187
23188 --
23189 CURSOR header_cur
23190 IS
23191 SELECT /*+ leading(xet) cardinality(xet,1) */
23192 -- Event Type Code: FOB_SHIP_SENDER_SHIP_TP
23193 -- Event Class Code: FOB_SHIP_SENDER_SHIP
23194 xet.entity_id
23195 , xet.legal_entity_id
23196 , xet.entity_code
23197 , xet.transaction_number
23198 , xet.event_id
23199 , xet.event_class_code
23200 , xet.event_type_code
23201 , xet.event_number
23202 , xet.event_date
23203 , xet.transaction_date
23204 , xet.reference_num_1
23205 , xet.reference_num_2
23206 , xet.reference_num_3
23207 , xet.reference_num_4
23208 , xet.reference_char_1
23209 , xet.reference_char_2
23210 , xet.reference_char_3
23211 , xet.reference_char_4
23212 , xet.reference_date_1
23213 , xet.reference_date_2
23214 , xet.reference_date_3
23215 , xet.reference_date_4
23216 , xet.event_created_by
23217 , xet.budgetary_control_flag
23218 , h1.DISTRIBUTION_TYPE source_9
23219 , fvl9.meaning source_9_meaning
23220 , h1.TRANSFER_TO_GL_INDICATOR source_42
23221 , fvl42.meaning source_42_meaning
23222 FROM xla_events_gt xet
23223 , CST_XLA_INV_HEADERS_V h1
23224 , fnd_lookup_values fvl9
23225 , fnd_lookup_values fvl42
23226 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
23227 and xet.event_type_code = C_EVENT_TYPE_CODE
23228 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
23229 AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
23230 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
23231 AND fvl9.view_application_id(+) = 700
23232 AND fvl9.language(+) = USERENV('LANG')
23233 AND fvl42.lookup_type(+) = 'YES_NO'
23234 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
23235 AND fvl42.view_application_id(+) = 0
23236 AND fvl42.language(+) = USERENV('LANG')
23237
23238 ORDER BY event_id
23239 ;
23240
23241
23242 --
23243 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
23244 IS
23245 SELECT /*+ leading(xet) cardinality(xet,1) */
23246 -- Event Type Code: FOB_SHIP_SENDER_SHIP_TP
23247 -- Event Class Code: FOB_SHIP_SENDER_SHIP
23248 xet.entity_id
23249 ,xet.legal_entity_id
23250 ,xet.entity_code
23251 ,xet.transaction_number
23252 ,xet.event_id
23253 ,xet.event_class_code
23254 ,xet.event_type_code
23255 ,xet.event_number
23256 ,xet.event_date
23257 ,xet.transaction_date
23258 ,xet.reference_num_1
23259 ,xet.reference_num_2
23260 ,xet.reference_num_3
23261 ,xet.reference_num_4
23262 ,xet.reference_char_1
23263 ,xet.reference_char_2
23264 ,xet.reference_char_3
23265 ,xet.reference_char_4
23266 ,xet.reference_date_1
23267 ,xet.reference_date_2
23268 ,xet.reference_date_3
23269 ,xet.reference_date_4
23270 ,xet.event_created_by
23271 ,xet.budgetary_control_flag , l2.LINE_NUMBER
23272 , l2.CODE_COMBINATION_ID source_6
23273 , l2.ACCOUNTING_LINE_TYPE_CODE source_7
23274 , l2.DISTRIBUTION_IDENTIFIER source_8
23275 , l2.ENTERED_AMOUNT source_10
23276 , l2.CURRENCY_CODE source_11
23277 , l2.CURRENCY_CONVERSION_DATE source_12
23278 , l2.CURRENCY_CONVERSION_RATE source_13
23279 , l2.CURRENCY_CONVERSION_TYPE source_14
23280 , l2.ACCOUNTED_AMOUNT source_15
23281 FROM xla_events_gt xet
23282 , CST_XLA_INV_LINES_V l2
23283 WHERE xet.event_id between x_first_event_id and x_last_event_id
23284 and xet.event_date between p_pad_start_date and p_pad_end_date
23285 and xet.event_type_code = C_EVENT_TYPE_CODE
23286 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
23287 ;
23288
23289 --
23290 BEGIN
23291 IF g_log_enabled THEN
23292 l_log_module := C_DEFAULT_MODULE||'.EventType_34';
23293 END IF;
23294 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23295 trace
23296 (p_msg => 'BEGIN of EventType_34'
23297 ,p_level => C_LEVEL_PROCEDURE
23298 ,p_module => l_log_module);
23299 END IF;
23300
23301 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
23302 trace
23303 (p_msg => 'p_application_id = '||p_application_id||
23304 ' - p_base_ledger_id = '||p_base_ledger_id||
23305 ' - p_target_ledger_id = '||p_target_ledger_id||
23306 ' - p_language = '||p_language||
23307 ' - p_currency_code = '||p_currency_code||
23308 ' - p_sla_ledger_id = '||p_sla_ledger_id
23309 ,p_level => C_LEVEL_STATEMENT
23310 ,p_module => l_log_module);
23311 END IF;
23312 --
23313 -- initialze arrays
23314 --
23315 g_array_event.DELETE;
23316 l_rec_array_event := l_null_rec_array_event;
23317 --
23318 --------------------------------------
23319 -- 4262811 Initialze MPA Line Number
23320 --------------------------------------
23321 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
23322
23323 --
23324
23325 --
23326 OPEN header_cur;
23327 --
23328 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
23329 trace
23330 (p_msg => 'SQL - FETCH header_cur'
23331 ,p_level => C_LEVEL_STATEMENT
23332 ,p_module => l_log_module);
23333 END IF;
23334 --
23335 LOOP
23336 FETCH header_cur BULK COLLECT INTO
23337 l_array_entity_id
23338 , l_array_legal_entity_id
23339 , l_array_entity_code
23340 , l_array_transaction_num
23341 , l_array_event_id
23342 , l_array_class_code
23343 , l_array_event_type
23344 , l_array_event_number
23345 , l_array_event_date
23346 , l_array_transaction_date
23347 , l_array_reference_num_1
23348 , l_array_reference_num_2
23349 , l_array_reference_num_3
23350 , l_array_reference_num_4
23351 , l_array_reference_char_1
23352 , l_array_reference_char_2
23353 , l_array_reference_char_3
23354 , l_array_reference_char_4
23355 , l_array_reference_date_1
23356 , l_array_reference_date_2
23357 , l_array_reference_date_3
23358 , l_array_reference_date_4
23359 , l_array_event_created_by
23360 , l_array_budgetary_control_flag
23361 , l_array_source_9
23362 , l_array_source_9_meaning
23363 , l_array_source_42
23364 , l_array_source_42_meaning
23365 LIMIT l_rows;
23366 --
23367 IF (C_LEVEL_EVENT >= g_log_level) THEN
23368 trace
23369 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
23370 ,p_level => C_LEVEL_EVENT
23371 ,p_module => l_log_module);
23372 END IF;
23373 --
23374 EXIT WHEN l_array_entity_id.COUNT = 0;
23375
23376 -- initialize arrays
23377 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
23378 XLA_AE_LINES_PKG.g_rec_lines := NULL;
23379
23380 --
23381 -- Bug 4458708
23382 --
23383 XLA_AE_LINES_PKG.g_LineNumber := 0;
23384
23385
23386 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
23387 g_last_hdr_idx := l_array_event_id.LAST;
23388 --
23389 -- loop for the headers. Each iteration is for each header extract row
23390 -- fetched in header cursor
23391 --
23392 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
23393
23394 --
23395 -- set event info as cache for other routines to refer event attributes
23396 --
23397 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
23398 (p_application_id => p_application_id
23399 ,p_primary_ledger_id => p_primary_ledger_id
23400 ,p_base_ledger_id => p_base_ledger_id
23401 ,p_target_ledger_id => p_target_ledger_id
23402 ,p_entity_id => l_array_entity_id(hdr_idx)
23403 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
23404 ,p_entity_code => l_array_entity_code(hdr_idx)
23405 ,p_transaction_num => l_array_transaction_num(hdr_idx)
23406 ,p_event_id => l_array_event_id(hdr_idx)
23407 ,p_event_class_code => l_array_class_code(hdr_idx)
23408 ,p_event_type_code => l_array_event_type(hdr_idx)
23409 ,p_event_number => l_array_event_number(hdr_idx)
23410 ,p_event_date => l_array_event_date(hdr_idx)
23411 ,p_transaction_date => l_array_transaction_date(hdr_idx)
23412 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
23413 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
23414 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
23415 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
23416 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
23417 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
23418 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
23419 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
23420 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
23421 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
23422 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
23423 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
23424 ,p_event_created_by => l_array_event_created_by(hdr_idx)
23425 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
23426
23427 --
23428 -- set the status of entry to C_VALID (0)
23429 --
23430 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
23431
23432 --
23433 -- initialize a row for ae header
23434 --
23435 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
23436
23437 l_event_id := l_array_event_id(hdr_idx);
23438
23439 --
23440 -- storing the hdr_idx for event. May be used by line cursor.
23441 --
23442 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
23443
23444 --
23445 -- store sources from header extract. This can be improved to
23446 -- store only those sources from header extract that may be used in lines
23447 --
23448
23449 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
23450 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
23451 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
23452 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
23453
23454 --
23455 -- initilaize the status of ae headers for diffrent balance types
23456 -- the status is initialised to C_NOT_CREATED (2)
23457 --
23458 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
23459 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
23460 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
23461
23462 --
23463 -- call api to validate and store accounting attributes for header
23464 --
23465
23466 ------------------------------------------------------------
23467 -- Accrual Reversal : to get date for Standard Source (NONE)
23468 ------------------------------------------------------------
23469 l_acc_rev_gl_date_source := NULL;
23470
23471 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
23472 l_rec_acct_attrs.array_date_value(1) :=
23473 xla_ae_sources_pkg.GetSystemSourceDate(
23474 p_source_code => 'XLA_REFERENCE_DATE_1'
23475 , p_source_type_code => 'Y'
23476 , p_source_application_id => 602
23477 );
23478 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_TRANSFER_FLAG';
23479 l_rec_acct_attrs.array_char_value(2) := g_array_event(l_event_id).array_value_char('source_42');
23480
23481
23482 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
23483
23484 XLA_AE_HEADER_PKG.SetJeCategoryName;
23485
23486 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
23487 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
23488 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
23489 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
23490 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
23491
23492
23493 -- No header level analytical criteria
23494
23495 --
23496 --accounting attribute enhancement, bug 3612931
23497 --
23498 l_trx_reversal_source := SUBSTR(NULL, 1,30);
23499
23500 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
23501 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
23502
23503 xla_accounting_err_pkg.build_message
23504 (p_appli_s_name => 'XLA'
23505 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
23506 ,p_token_1 => 'ACCT_ATTR_NAME'
23507 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
23508 ,p_token_2 => 'PRODUCT_NAME'
23509 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
23510 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
23511 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
23512 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
23513
23514 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
23515 --
23516 -- following sets the accounting attributes needed to reverse
23517 -- accounting for a distributeion
23518 --
23519 xla_ae_lines_pkg.SetTrxReversalAttrs
23520 (p_event_id => l_event_id
23521 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
23522 ,p_trx_reversal_source => l_trx_reversal_source);
23523
23524 END IF;
23525
23526
23527 ----------------------------------------------------------------
23528 -- 4262811 - update the header statuses to invalid in need be
23529 ----------------------------------------------------------------
23530 --
23531 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
23532
23533
23534 -----------------------------------------------
23535 -- No accrual reversal for the event class/type
23536 -----------------------------------------------
23537 ----------------------------------------------------------------
23538
23539 --
23540 -- this ends the header loop iteration for one bulk fetch
23541 --
23542 END LOOP;
23543
23544 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
23545 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
23546
23547 --
23548 -- insert dummy rows into lines gt table that were created due to
23549 -- transaction reversals
23550 --
23551 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
23552 l_result := XLA_AE_LINES_PKG.InsertLines;
23553 END IF;
23554
23555 --
23556 -- reset the temp_line_num for each set of events fetched from header
23557 -- cursor rather than doing it for each new event in line cursor
23558 -- Bug 3939231
23559 --
23560 xla_ae_lines_pkg.g_temp_line_num := 0;
23561
23562
23563
23564 --
23565 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
23566 --
23567 --
23568 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
23569
23570 trace
23571 (p_msg => 'SQL - FETCH line_cur'
23572 ,p_level => C_LEVEL_STATEMENT
23573 ,p_module => l_log_module);
23574
23575 END IF;
23576 --
23577 --
23578 LOOP
23579 --
23580 FETCH line_cur BULK COLLECT INTO
23581 l_array_entity_id
23582 , l_array_legal_entity_id
23583 , l_array_entity_code
23584 , l_array_transaction_num
23585 , l_array_event_id
23586 , l_array_class_code
23587 , l_array_event_type
23588 , l_array_event_number
23589 , l_array_event_date
23590 , l_array_transaction_date
23591 , l_array_reference_num_1
23592 , l_array_reference_num_2
23593 , l_array_reference_num_3
23594 , l_array_reference_num_4
23595 , l_array_reference_char_1
23596 , l_array_reference_char_2
23597 , l_array_reference_char_3
23598 , l_array_reference_char_4
23599 , l_array_reference_date_1
23600 , l_array_reference_date_2
23601 , l_array_reference_date_3
23602 , l_array_reference_date_4
23603 , l_array_event_created_by
23604 , l_array_budgetary_control_flag
23605 , l_array_extract_line_num
23606 , l_array_source_6
23607 , l_array_source_7
23608 , l_array_source_8
23609 , l_array_source_10
23610 , l_array_source_11
23611 , l_array_source_12
23612 , l_array_source_13
23613 , l_array_source_14
23614 , l_array_source_15
23615 LIMIT l_rows;
23616
23617 --
23618 IF (C_LEVEL_EVENT >= g_log_level) THEN
23619 trace
23620 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
23621 ,p_level => C_LEVEL_EVENT
23622 ,p_module => l_log_module);
23623 END IF;
23624 --
23625 EXIT WHEN l_array_entity_id.count = 0;
23626
23627 XLA_AE_LINES_PKG.g_rec_lines := null;
23628
23629 --
23630 -- Bug 4458708
23631 --
23632 XLA_AE_LINES_PKG.g_LineNumber := 0;
23633 --
23634 --
23635
23636 FOR Idx IN 1..l_array_event_id.count LOOP
23637 --
23638 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
23639 --
23640 l_event_id := l_array_event_id(idx); -- 5648433
23641
23642 --
23643 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
23644 --
23645
23646 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
23647 (g_array_event(l_event_id).array_value_num('header_index'))
23648 ,'N'
23649 ) <> 'Y'
23650 THEN
23651 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
23652 trace
23653 (p_msg => 'Trancaction revesal option is not Y '
23654 ,p_level => C_LEVEL_STATEMENT
23655 ,p_module => l_log_module);
23656 END IF;
23657
23658 --
23659 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
23660 --
23661 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
23662 --
23663 -- set event info as cache for other routines to refer event attributes
23664 --
23665
23666 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
23667 l_previous_event_id := l_event_id;
23668
23669 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
23670 (p_application_id => p_application_id
23671 ,p_primary_ledger_id => p_primary_ledger_id
23672 ,p_base_ledger_id => p_base_ledger_id
23673 ,p_target_ledger_id => p_target_ledger_id
23674 ,p_entity_id => l_array_entity_id(Idx)
23675 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
23676 ,p_entity_code => l_array_entity_code(Idx)
23677 ,p_transaction_num => l_array_transaction_num(Idx)
23678 ,p_event_id => l_array_event_id(Idx)
23679 ,p_event_class_code => l_array_class_code(Idx)
23680 ,p_event_type_code => l_array_event_type(Idx)
23681 ,p_event_number => l_array_event_number(Idx)
23682 ,p_event_date => l_array_event_date(Idx)
23683 ,p_transaction_date => l_array_transaction_date(Idx)
23684 ,p_reference_num_1 => l_array_reference_num_1(Idx)
23685 ,p_reference_num_2 => l_array_reference_num_2(Idx)
23686 ,p_reference_num_3 => l_array_reference_num_3(Idx)
23687 ,p_reference_num_4 => l_array_reference_num_4(Idx)
23688 ,p_reference_char_1 => l_array_reference_char_1(Idx)
23689 ,p_reference_char_2 => l_array_reference_char_2(Idx)
23690 ,p_reference_char_3 => l_array_reference_char_3(Idx)
23691 ,p_reference_char_4 => l_array_reference_char_4(Idx)
23692 ,p_reference_date_1 => l_array_reference_date_1(Idx)
23693 ,p_reference_date_2 => l_array_reference_date_2(Idx)
23694 ,p_reference_date_3 => l_array_reference_date_3(Idx)
23695 ,p_reference_date_4 => l_array_reference_date_4(Idx)
23696 ,p_event_created_by => l_array_event_created_by(Idx)
23697 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
23698 --
23699 END IF;
23700
23701
23702
23703 --
23704 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
23705
23706 l_acct_reversal_source := SUBSTR(NULL, 1,30);
23707
23708 IF l_continue_with_lines THEN
23709 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
23710 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
23711
23712 xla_accounting_err_pkg.build_message
23713 (p_appli_s_name => 'XLA'
23714 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
23715 ,p_token_1 => 'LINE_NUMBER'
23716 ,p_value_1 => l_array_extract_line_num(Idx)
23717 ,p_token_2 => 'PRODUCT_NAME'
23718 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
23719 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
23720 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
23721 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
23722
23723 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
23724 --
23725 -- following sets the accounting attributes needed to reverse
23726 -- accounting for a distributeion
23727 --
23728
23729 --
23730 -- 5217187
23731 --
23732 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
23733 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
23734 g_array_event(l_event_id).array_value_num('header_index'));
23735 --
23736 --
23737
23738 -- No reversal code generated
23739
23740 xla_ae_lines_pkg.SetAcctReversalAttrs
23741 (p_event_id => l_event_id
23742 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
23743 ,p_calculate_acctd_flag => l_calculate_acctd_flag
23744 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
23745 END IF;
23746
23747 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
23748 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
23749
23750 --
23751 AcctLineType_25 (
23752 p_application_id => p_application_id
23753 ,p_event_id => l_event_id
23754 ,p_calculate_acctd_flag => l_calculate_acctd_flag
23755 ,p_calculate_g_l_flag => l_calculate_g_l_flag
23756 ,p_actual_flag => l_actual_flag
23757 ,p_balance_type_code => l_balance_type_code
23758 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
23759
23760 , p_source_6 => l_array_source_6(Idx)
23761 , p_source_7 => l_array_source_7(Idx)
23762 , p_source_8 => l_array_source_8(Idx)
23763 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
23764 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
23765 , p_source_10 => l_array_source_10(Idx)
23766 , p_source_11 => l_array_source_11(Idx)
23767 , p_source_12 => l_array_source_12(Idx)
23768 , p_source_13 => l_array_source_13(Idx)
23769 , p_source_14 => l_array_source_14(Idx)
23770 , p_source_15 => l_array_source_15(Idx)
23771 );
23772 If(l_balance_type_code = 'A') THEN
23773 l_actual_gain_loss_ref := l_gain_or_loss_ref;
23774 END IF;
23775
23776 --
23777
23778 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
23779 -- or secondary ledger that has different currency with primary
23780 -- or alc that is calculated by sla
23781 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
23782 (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'))
23783
23784 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
23785 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
23786 AND (l_actual_flag = 'A')) THEN
23787 XLA_AE_LINES_PKG.CreateGainOrLossLines(
23788 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
23789 ,p_application_id => p_application_id
23790 ,p_amb_context_code => 'DEFAULT'
23791 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
23792 ,p_event_class_code => C_EVENT_CLASS_CODE
23793 ,p_event_type_code => C_EVENT_TYPE_CODE
23794
23795 ,p_gain_ccid => -1
23796 ,p_loss_ccid => -1
23797
23798 ,p_actual_flag => l_actual_flag
23799 ,p_enc_flag => null
23800 ,p_actual_g_l_ref => l_actual_gain_loss_ref
23801 ,p_enc_g_l_ref => null
23802 );
23803 END IF;
23804 END IF;
23805 END IF;
23806
23807 ELSE
23808 --
23809 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
23810 --
23811 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
23812 trace
23813 (p_msg => 'Trancaction revesal option is Y'
23814 ,p_level => C_LEVEL_STATEMENT
23815 ,p_module => l_log_module);
23816 END IF;
23817 END IF;
23818
23819 END LOOP;
23820 l_result := XLA_AE_LINES_PKG.InsertLines ;
23821 end loop;
23822 close line_cur;
23823
23824
23825 --
23826 -- insert headers into xla_ae_headers_gt table
23827 --
23828 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
23829
23830 -- insert into errors table here.
23831
23832 END LOOP;
23833
23834 --
23835 -- 4865292
23836 --
23837 -- Compare g_hdr_extract_count with event count in
23838 -- CreateHeadersAndLines.
23839 --
23840 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
23841
23842 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
23843 trace (p_msg => '# rows extracted from header extract objects '
23844 || ' (running total): '
23845 || g_hdr_extract_count
23846 ,p_level => C_LEVEL_STATEMENT
23847 ,p_module => l_log_module);
23848 END IF;
23849
23850 CLOSE header_cur;
23851 --
23852
23853 --
23854 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23855 trace
23856 (p_msg => 'END of EventType_34'
23857 ,p_level => C_LEVEL_PROCEDURE
23858 ,p_module => l_log_module);
23859 END IF;
23860 --
23861 RETURN l_result;
23862 EXCEPTION
23863 WHEN xla_exceptions_pkg.application_exception THEN
23864
23865 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
23866
23867
23868 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
23869
23870 RAISE;
23871
23872 WHEN NO_DATA_FOUND THEN
23873
23874 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
23875 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
23876
23877 FOR header_record IN header_cur
23878 LOOP
23879 l_array_header_events(header_record.event_id) := header_record.event_id;
23880 END LOOP;
23881
23882 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
23883 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
23884
23885 fnd_file.put_line(fnd_file.LOG, ' ');
23886 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
23887 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
23888 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
23889
23890 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
23891 LOOP
23892 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
23893 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
23894 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
23895 END IF;
23896 END LOOP;
23897
23898 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
23899 fnd_file.put_line(fnd_file.LOG, ' ');
23900
23901
23902 xla_exceptions_pkg.raise_message
23903 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_34');
23904
23905
23906 WHEN OTHERS THEN
23907 xla_exceptions_pkg.raise_message
23908 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_34');
23909 END EventType_34;
23910 --
23911
23912 ---------------------------------------
23913 --
23914 -- PRIVATE PROCEDURE
23915 -- insert_sources_35
23916 --
23917 ----------------------------------------
23918 --
23919 PROCEDURE insert_sources_35(
23920 p_target_ledger_id IN NUMBER
23921 , p_language IN VARCHAR2
23922 , p_sla_ledger_id IN NUMBER
23923 , p_pad_start_date IN DATE
23924 , p_pad_end_date IN DATE
23925 )
23926 IS
23927
23928 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_ISSUE_NO_TP';
23929 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_TO_EXP';
23930 p_apps_owner VARCHAR2(30);
23931 l_log_module VARCHAR2(240);
23932 BEGIN
23933 IF g_log_enabled THEN
23934 l_log_module := C_DEFAULT_MODULE||'.insert_sources_35';
23935 END IF;
23936 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23937
23938 trace
23939 (p_msg => 'BEGIN of insert_sources_35'
23940 ,p_level => C_LEVEL_PROCEDURE
23941 ,p_module => l_log_module);
23942
23943 END IF;
23944
23945 -- select APPS owner
23946 SELECT oracle_username
23947 INTO p_apps_owner
23948 FROM fnd_oracle_userid
23949 WHERE read_only_flag = 'U'
23950 ;
23951
23952 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
23953 trace
23954 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
23955 ' - p_language = '||p_language||
23956 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
23957 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
23958 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
23959 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
23960 ,p_level => C_LEVEL_STATEMENT
23961 ,p_module => l_log_module);
23962 END IF;
23963
23964
23965 --
23966 INSERT INTO xla_diag_sources --hdr1
23967 (
23968 event_id
23969 , ledger_id
23970 , sla_ledger_id
23971 , description_language
23972 , object_name
23973 , object_type_code
23974 , line_number
23975 , source_application_id
23976 , source_type_code
23977 , source_code
23978 , source_value
23979 , source_meaning
23980 , created_by
23981 , creation_date
23982 , last_update_date
23983 , last_updated_by
23984 , last_update_login
23985 , program_update_date
23986 , program_application_id
23987 , program_id
23988 , request_id
23989 )
23990 SELECT
23991 event_id
23992 , p_target_ledger_id
23993 , p_sla_ledger_id
23994 , p_language
23995 , object_name
23996 , object_type_code
23997 , line_number
23998 , source_application_id
23999 , source_type_code
24000 , source_code
24001 , SUBSTR(source_value ,1,1996)
24002 , SUBSTR(source_meaning,1,200)
24003 , xla_environment_pkg.g_Usr_Id
24004 , TRUNC(SYSDATE)
24005 , TRUNC(SYSDATE)
24006 , xla_environment_pkg.g_Usr_Id
24007 , xla_environment_pkg.g_Login_Id
24008 , TRUNC(SYSDATE)
24009 , xla_environment_pkg.g_Prog_Appl_Id
24010 , xla_environment_pkg.g_Prog_Id
24011 , xla_environment_pkg.g_Req_Id
24012 FROM (
24013 SELECT xet.event_id event_id
24014 , 0 line_number
24015 , CASE r
24016 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
24017 WHEN 2 THEN 'CST_XLA_INV_SYSTEM_ITEMS_REF_V'
24018 WHEN 3 THEN 'CST_XLA_INV_REF_V'
24019 WHEN 4 THEN 'CST_XLA_INV_REF_V'
24020 WHEN 5 THEN 'CST_XLA_INV_TXN_TYPES_REF_V'
24021 WHEN 6 THEN 'CST_XLA_INV_HEADERS_V'
24022 WHEN 7 THEN 'CST_XLA_INV_HEADERS_V'
24023
24024 ELSE null
24025 END object_name
24026 , CASE r
24027 WHEN 1 THEN 'HEADER'
24028 WHEN 2 THEN 'HEADER'
24029 WHEN 3 THEN 'HEADER'
24030 WHEN 4 THEN 'HEADER'
24031 WHEN 5 THEN 'HEADER'
24032 WHEN 6 THEN 'HEADER'
24033 WHEN 7 THEN 'HEADER'
24034
24035 ELSE null
24036 END object_type_code
24037 , CASE r
24038 WHEN 1 THEN '707'
24039 WHEN 2 THEN '707'
24040 WHEN 3 THEN '707'
24041 WHEN 4 THEN '707'
24042 WHEN 5 THEN '707'
24043 WHEN 6 THEN '707'
24044 WHEN 7 THEN '707'
24045
24046 ELSE null
24047 END source_application_id
24048 , 'S' source_type_code
24049 , CASE r
24050 WHEN 1 THEN 'TRANSACTION_ID'
24051 WHEN 2 THEN 'ITEM_CONCATENATED_SEGMENTS'
24052 WHEN 3 THEN 'TRANSACTION_QUANTITY'
24053 WHEN 4 THEN 'TRANSACTION_UOM'
24054 WHEN 5 THEN 'INV_TXN_TYPE_DESCRIPTION'
24055 WHEN 6 THEN 'DISTRIBUTION_TYPE'
24056 WHEN 7 THEN 'TRANSFER_TO_GL_INDICATOR'
24057
24058 ELSE null
24059 END source_code
24060 , CASE r
24061 WHEN 1 THEN TO_CHAR(h1.TRANSACTION_ID)
24062 WHEN 2 THEN TO_CHAR(h4.ITEM_CONCATENATED_SEGMENTS)
24063 WHEN 3 THEN TO_CHAR(h3.TRANSACTION_QUANTITY)
24064 WHEN 4 THEN TO_CHAR(h3.TRANSACTION_UOM)
24065 WHEN 5 THEN TO_CHAR(h5.INV_TXN_TYPE_DESCRIPTION)
24066 WHEN 6 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
24067 WHEN 7 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
24068
24069 ELSE null
24070 END source_value
24071 , CASE r
24072 WHEN 6 THEN fvl9.meaning
24073 WHEN 7 THEN fvl42.meaning
24074
24075 ELSE null
24076 END source_meaning
24077 FROM xla_events_gt xet
24078 , CST_XLA_INV_HEADERS_V h1
24079 , CST_XLA_INV_REF_V h3
24080 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h4
24081 , CST_XLA_INV_TXN_TYPES_REF_V h5
24082 , fnd_lookup_values fvl9
24083 , fnd_lookup_values fvl42
24084 ,(select rownum r from all_objects where rownum <= 7 and owner = p_apps_owner)
24085 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
24086 AND xet.event_type_code = C_EVENT_TYPE_CODE
24087 AND h1.event_id = xet.event_id
24088 AND h3.ref_transaction_id = h1.transaction_id AND h4.inventory_item_id = h1.inventory_item_id and h4.organization_id = h1.organization_id AND h5.inv_transaction_type_id = h1.transaction_type_id AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
24089 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
24090 AND fvl9.view_application_id(+) = 700
24091 AND fvl9.language(+) = USERENV('LANG')
24092 AND fvl42.lookup_type(+) = 'YES_NO'
24093 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
24094 AND fvl42.view_application_id(+) = 0
24095 AND fvl42.language(+) = USERENV('LANG')
24096
24097 )
24098 ;
24099 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
24100
24101 trace
24102 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
24103 ,p_level => C_LEVEL_STATEMENT
24104 ,p_module => l_log_module);
24105
24106 END IF;
24107 --
24108
24109
24110
24111 --
24112 INSERT INTO xla_diag_sources --line1
24113 (
24114 event_id
24115 , ledger_id
24116 , sla_ledger_id
24117 , description_language
24118 , object_name
24119 , object_type_code
24120 , line_number
24121 , source_application_id
24122 , source_type_code
24123 , source_code
24124 , source_value
24125 , source_meaning
24126 , created_by
24127 , creation_date
24128 , last_update_date
24129 , last_updated_by
24130 , last_update_login
24131 , program_update_date
24132 , program_application_id
24133 , program_id
24134 , request_id
24135 )
24136 SELECT event_id
24137 , p_target_ledger_id
24138 , p_sla_ledger_id
24139 , p_language
24140 , object_name
24141 , object_type_code
24142 , line_number
24143 , source_application_id
24144 , source_type_code
24145 , source_code
24146 , SUBSTR(source_value,1,1996)
24147 , SUBSTR(source_meaning,1,200)
24148 , xla_environment_pkg.g_Usr_Id
24149 , TRUNC(SYSDATE)
24150 , TRUNC(SYSDATE)
24151 , xla_environment_pkg.g_Usr_Id
24152 , xla_environment_pkg.g_Login_Id
24153 , TRUNC(SYSDATE)
24154 , xla_environment_pkg.g_Prog_Appl_Id
24155 , xla_environment_pkg.g_Prog_Id
24156 , xla_environment_pkg.g_Req_Id
24157 FROM (
24158 SELECT xet.event_id event_id
24159 , l2.line_number line_number
24160 , CASE r
24161 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
24162 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
24163 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
24164 WHEN 4 THEN 'CST_XLA_INV_LINES_V'
24165 WHEN 5 THEN 'CST_XLA_INV_LINES_V'
24166 WHEN 6 THEN 'CST_XLA_INV_LINES_V'
24167 WHEN 7 THEN 'CST_XLA_INV_LINES_V'
24168 WHEN 8 THEN 'CST_XLA_INV_LINES_V'
24169 WHEN 9 THEN 'CST_XLA_INV_LINES_V'
24170
24171 ELSE null
24172 END object_name
24173 , CASE r
24174 WHEN 1 THEN 'LINE'
24175 WHEN 2 THEN 'LINE'
24176 WHEN 3 THEN 'LINE'
24177 WHEN 4 THEN 'LINE'
24178 WHEN 5 THEN 'LINE'
24179 WHEN 6 THEN 'LINE'
24180 WHEN 7 THEN 'LINE'
24181 WHEN 8 THEN 'LINE'
24182 WHEN 9 THEN 'LINE'
24183
24184 ELSE null
24185 END object_type_code
24186 , CASE r
24187 WHEN 1 THEN '707'
24188 WHEN 2 THEN '707'
24189 WHEN 3 THEN '707'
24190 WHEN 4 THEN '707'
24191 WHEN 5 THEN '707'
24192 WHEN 6 THEN '707'
24193 WHEN 7 THEN '707'
24194 WHEN 8 THEN '707'
24195 WHEN 9 THEN '707'
24196
24197 ELSE null
24198 END source_application_id
24199 , 'S' source_type_code
24200 , CASE r
24201 WHEN 1 THEN 'CODE_COMBINATION_ID'
24202 WHEN 2 THEN 'ACCOUNTING_LINE_TYPE_CODE'
24203 WHEN 3 THEN 'DISTRIBUTION_IDENTIFIER'
24204 WHEN 4 THEN 'ENTERED_AMOUNT'
24205 WHEN 5 THEN 'CURRENCY_CODE'
24206 WHEN 6 THEN 'CURRENCY_CONVERSION_DATE'
24207 WHEN 7 THEN 'CURRENCY_CONVERSION_RATE'
24208 WHEN 8 THEN 'CURRENCY_CONVERSION_TYPE'
24209 WHEN 9 THEN 'ACCOUNTED_AMOUNT'
24210
24211 ELSE null
24212 END source_code
24213 , CASE r
24214 WHEN 1 THEN TO_CHAR(l2.CODE_COMBINATION_ID)
24215 WHEN 2 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
24216 WHEN 3 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
24217 WHEN 4 THEN TO_CHAR(l2.ENTERED_AMOUNT)
24218 WHEN 5 THEN TO_CHAR(l2.CURRENCY_CODE)
24219 WHEN 6 THEN TO_CHAR(l2.CURRENCY_CONVERSION_DATE)
24220 WHEN 7 THEN TO_CHAR(l2.CURRENCY_CONVERSION_RATE)
24221 WHEN 8 THEN TO_CHAR(l2.CURRENCY_CONVERSION_TYPE)
24222 WHEN 9 THEN TO_CHAR(l2.ACCOUNTED_AMOUNT)
24223
24224 ELSE null
24225 END source_value
24226 , null source_meaning
24227 FROM xla_events_gt xet
24228 , CST_XLA_INV_LINES_V l2
24229 ,(select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
24230 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
24231 AND xet.event_type_code = C_EVENT_TYPE_CODE
24232 AND l2.event_id = xet.event_id
24233
24234 )
24235 ;
24236 --
24237 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
24238
24239 trace
24240 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
24241 ,p_level => C_LEVEL_STATEMENT
24242 ,p_module => l_log_module);
24243
24244 END IF;
24245
24246
24247 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24248 trace
24249 (p_msg => 'END of insert_sources_35'
24250 ,p_level => C_LEVEL_PROCEDURE
24251 ,p_module => l_log_module);
24252 END IF;
24253 EXCEPTION
24254 WHEN xla_exceptions_pkg.application_exception THEN
24255 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
24256 trace
24257 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
24258 ,p_level => C_LEVEL_EXCEPTION
24259 ,p_module => l_log_module);
24260 END IF;
24261 RAISE;
24262 WHEN OTHERS THEN
24263 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
24264 trace
24265 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
24266 ,p_level => C_LEVEL_EXCEPTION
24267 ,p_module => l_log_module);
24268 END IF;
24269 xla_exceptions_pkg.raise_message
24270 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_35');
24271 END insert_sources_35;
24272 --
24273
24274 ---------------------------------------
24275 --
24276 -- PRIVATE FUNCTION
24277 -- EventType_35
24278 --
24279 ----------------------------------------
24280 --
24281 FUNCTION EventType_35
24282 (p_application_id IN NUMBER
24283 ,p_base_ledger_id IN NUMBER
24284 ,p_target_ledger_id IN NUMBER
24285 ,p_language IN VARCHAR2
24286 ,p_currency_code IN VARCHAR2
24287 ,p_sla_ledger_id IN NUMBER
24288 ,p_pad_start_date IN DATE
24289 ,p_pad_end_date IN DATE
24290 ,p_primary_ledger_id IN NUMBER)
24291 RETURN BOOLEAN IS
24292 --
24293 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_ISSUE_NO_TP';
24294 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_TO_EXP';
24295
24296 l_calculate_acctd_flag VARCHAR2(1) :='N';
24297 l_calculate_g_l_flag VARCHAR2(1) :='N';
24298 --
24299 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
24300 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
24301 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
24302 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
24303 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
24304 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
24305 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
24306 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
24307 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
24308 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
24309 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
24310 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
24311 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
24312 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
24313 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
24314 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
24315 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
24316 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
24317 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
24318 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
24319 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
24320 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
24321 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
24322 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
24323 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
24324 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
24325
24326 l_event_id NUMBER;
24327 l_previous_event_id NUMBER;
24328 l_first_event_id NUMBER;
24329 l_last_event_id NUMBER;
24330
24331 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
24332 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24333 --
24334 --
24335 l_result BOOLEAN := TRUE;
24336 l_rows NUMBER := 1000;
24337 l_event_type_name VARCHAR2(80) := 'Internal Order Issue to Expense, no Transfer Pricing';
24338 l_event_class_name VARCHAR2(80) := 'Internal Order to Expense';
24339 l_description VARCHAR2(4000);
24340 l_transaction_reversal NUMBER;
24341 l_ae_header_id NUMBER;
24342 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
24343 l_log_module VARCHAR2(240);
24344 --
24345 l_acct_reversal_source VARCHAR2(30);
24346 l_trx_reversal_source VARCHAR2(30);
24347
24348 l_continue_with_lines BOOLEAN := TRUE;
24349 --
24350 l_acc_rev_gl_date_source DATE; -- 4262811
24351 --
24352 type t_array_event_id is table of number index by binary_integer;
24353
24354 l_rec_array_event t_rec_array_event;
24355 l_null_rec_array_event t_rec_array_event;
24356 l_array_ae_header_id xla_number_array_type;
24357 l_actual_flag VARCHAR2(1) := NULL;
24358 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
24359 l_balance_type_code VARCHAR2(1) :=NULL;
24360 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
24361
24362 --
24363 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
24364 --
24365
24366 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSACTION_ID%TYPE INDEX BY BINARY_INTEGER;
24367 TYPE t_array_source_2 IS TABLE OF CST_XLA_INV_SYSTEM_ITEMS_REF_V.ITEM_CONCATENATED_SEGMENTS%TYPE INDEX BY BINARY_INTEGER;
24368 TYPE t_array_source_3 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_QUANTITY%TYPE INDEX BY BINARY_INTEGER;
24369 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_UOM%TYPE INDEX BY BINARY_INTEGER;
24370 TYPE t_array_source_5 IS TABLE OF CST_XLA_INV_TXN_TYPES_REF_V.INV_TXN_TYPE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
24371 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
24372 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
24373
24374 TYPE t_array_source_6 IS TABLE OF CST_XLA_INV_LINES_V.CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
24375 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
24376 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
24377 TYPE t_array_source_10 IS TABLE OF CST_XLA_INV_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
24378 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
24379 TYPE t_array_source_12 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
24380 TYPE t_array_source_13 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
24381 TYPE t_array_source_14 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
24382 TYPE t_array_source_15 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
24383
24384 l_array_source_1 t_array_source_1;
24385 l_array_source_2 t_array_source_2;
24386 l_array_source_3 t_array_source_3;
24387 l_array_source_4 t_array_source_4;
24388 l_array_source_5 t_array_source_5;
24389 l_array_source_9 t_array_source_9;
24390 l_array_source_9_meaning t_array_lookup_meaning;
24391 l_array_source_42 t_array_source_42;
24392 l_array_source_42_meaning t_array_lookup_meaning;
24393
24394 l_array_source_6 t_array_source_6;
24395 l_array_source_7 t_array_source_7;
24396 l_array_source_8 t_array_source_8;
24397 l_array_source_10 t_array_source_10;
24398 l_array_source_11 t_array_source_11;
24399 l_array_source_12 t_array_source_12;
24400 l_array_source_13 t_array_source_13;
24401 l_array_source_14 t_array_source_14;
24402 l_array_source_15 t_array_source_15;
24403
24404 --
24405 CURSOR header_cur
24406 IS
24407 SELECT /*+ leading(xet) cardinality(xet,1) */
24408 -- Event Type Code: INT_ORDER_ISSUE_NO_TP
24409 -- Event Class Code: INT_ORDER_TO_EXP
24410 xet.entity_id
24411 , xet.legal_entity_id
24412 , xet.entity_code
24413 , xet.transaction_number
24414 , xet.event_id
24415 , xet.event_class_code
24416 , xet.event_type_code
24417 , xet.event_number
24418 , xet.event_date
24419 , xet.transaction_date
24420 , xet.reference_num_1
24421 , xet.reference_num_2
24422 , xet.reference_num_3
24423 , xet.reference_num_4
24424 , xet.reference_char_1
24425 , xet.reference_char_2
24426 , xet.reference_char_3
24427 , xet.reference_char_4
24428 , xet.reference_date_1
24429 , xet.reference_date_2
24430 , xet.reference_date_3
24431 , xet.reference_date_4
24432 , xet.event_created_by
24433 , xet.budgetary_control_flag
24434 , h1.TRANSACTION_ID source_1
24435 , h4.ITEM_CONCATENATED_SEGMENTS source_2
24436 , h3.TRANSACTION_QUANTITY source_3
24437 , h3.TRANSACTION_UOM source_4
24438 , h5.INV_TXN_TYPE_DESCRIPTION source_5
24439 , h1.DISTRIBUTION_TYPE source_9
24440 , fvl9.meaning source_9_meaning
24441 , h1.TRANSFER_TO_GL_INDICATOR source_42
24442 , fvl42.meaning source_42_meaning
24443 FROM xla_events_gt xet
24444 , CST_XLA_INV_HEADERS_V h1
24445 , CST_XLA_INV_REF_V h3
24446 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h4
24447 , CST_XLA_INV_TXN_TYPES_REF_V h5
24448 , fnd_lookup_values fvl9
24449 , fnd_lookup_values fvl42
24450 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
24451 and xet.event_type_code = C_EVENT_TYPE_CODE
24452 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
24453 AND h3.ref_transaction_id = h1.transaction_id AND h4.INVENTORY_ITEM_ID = h1.INVENTORY_ITEM_ID AND h4.ORGANIZATION_ID = h1.ORGANIZATION_ID AND h5.INV_TRANSACTION_TYPE_ID = h1.TRANSACTION_TYPE_ID AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
24454 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
24455 AND fvl9.view_application_id(+) = 700
24456 AND fvl9.language(+) = USERENV('LANG')
24457 AND fvl42.lookup_type(+) = 'YES_NO'
24458 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
24459 AND fvl42.view_application_id(+) = 0
24460 AND fvl42.language(+) = USERENV('LANG')
24461
24462 ORDER BY event_id
24463 ;
24464
24465
24466 --
24467 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
24468 IS
24469 SELECT /*+ leading(xet) cardinality(xet,1) */
24470 -- Event Type Code: INT_ORDER_ISSUE_NO_TP
24471 -- Event Class Code: INT_ORDER_TO_EXP
24472 xet.entity_id
24473 ,xet.legal_entity_id
24474 ,xet.entity_code
24475 ,xet.transaction_number
24476 ,xet.event_id
24477 ,xet.event_class_code
24478 ,xet.event_type_code
24479 ,xet.event_number
24480 ,xet.event_date
24481 ,xet.transaction_date
24482 ,xet.reference_num_1
24483 ,xet.reference_num_2
24484 ,xet.reference_num_3
24485 ,xet.reference_num_4
24486 ,xet.reference_char_1
24487 ,xet.reference_char_2
24488 ,xet.reference_char_3
24489 ,xet.reference_char_4
24490 ,xet.reference_date_1
24491 ,xet.reference_date_2
24492 ,xet.reference_date_3
24493 ,xet.reference_date_4
24494 ,xet.event_created_by
24495 ,xet.budgetary_control_flag , l2.LINE_NUMBER
24496 , l2.CODE_COMBINATION_ID source_6
24497 , l2.ACCOUNTING_LINE_TYPE_CODE source_7
24498 , l2.DISTRIBUTION_IDENTIFIER source_8
24499 , l2.ENTERED_AMOUNT source_10
24500 , l2.CURRENCY_CODE source_11
24501 , l2.CURRENCY_CONVERSION_DATE source_12
24502 , l2.CURRENCY_CONVERSION_RATE source_13
24503 , l2.CURRENCY_CONVERSION_TYPE source_14
24504 , l2.ACCOUNTED_AMOUNT source_15
24505 FROM xla_events_gt xet
24506 , CST_XLA_INV_LINES_V l2
24507 WHERE xet.event_id between x_first_event_id and x_last_event_id
24508 and xet.event_date between p_pad_start_date and p_pad_end_date
24509 and xet.event_type_code = C_EVENT_TYPE_CODE
24510 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
24511 ;
24512
24513 --
24514 BEGIN
24515 IF g_log_enabled THEN
24516 l_log_module := C_DEFAULT_MODULE||'.EventType_35';
24517 END IF;
24518 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24519 trace
24520 (p_msg => 'BEGIN of EventType_35'
24521 ,p_level => C_LEVEL_PROCEDURE
24522 ,p_module => l_log_module);
24523 END IF;
24524
24525 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
24526 trace
24527 (p_msg => 'p_application_id = '||p_application_id||
24528 ' - p_base_ledger_id = '||p_base_ledger_id||
24529 ' - p_target_ledger_id = '||p_target_ledger_id||
24530 ' - p_language = '||p_language||
24531 ' - p_currency_code = '||p_currency_code||
24532 ' - p_sla_ledger_id = '||p_sla_ledger_id
24533 ,p_level => C_LEVEL_STATEMENT
24534 ,p_module => l_log_module);
24535 END IF;
24536 --
24537 -- initialze arrays
24538 --
24539 g_array_event.DELETE;
24540 l_rec_array_event := l_null_rec_array_event;
24541 --
24542 --------------------------------------
24543 -- 4262811 Initialze MPA Line Number
24544 --------------------------------------
24545 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
24546
24547 --
24548
24549 --
24550 OPEN header_cur;
24551 --
24552 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
24553 trace
24554 (p_msg => 'SQL - FETCH header_cur'
24555 ,p_level => C_LEVEL_STATEMENT
24556 ,p_module => l_log_module);
24557 END IF;
24558 --
24559 LOOP
24560 FETCH header_cur BULK COLLECT INTO
24561 l_array_entity_id
24562 , l_array_legal_entity_id
24563 , l_array_entity_code
24564 , l_array_transaction_num
24565 , l_array_event_id
24566 , l_array_class_code
24567 , l_array_event_type
24568 , l_array_event_number
24569 , l_array_event_date
24570 , l_array_transaction_date
24571 , l_array_reference_num_1
24572 , l_array_reference_num_2
24573 , l_array_reference_num_3
24574 , l_array_reference_num_4
24575 , l_array_reference_char_1
24576 , l_array_reference_char_2
24577 , l_array_reference_char_3
24578 , l_array_reference_char_4
24579 , l_array_reference_date_1
24580 , l_array_reference_date_2
24581 , l_array_reference_date_3
24582 , l_array_reference_date_4
24583 , l_array_event_created_by
24584 , l_array_budgetary_control_flag
24585 , l_array_source_1
24586 , l_array_source_2
24587 , l_array_source_3
24588 , l_array_source_4
24589 , l_array_source_5
24590 , l_array_source_9
24591 , l_array_source_9_meaning
24592 , l_array_source_42
24593 , l_array_source_42_meaning
24594 LIMIT l_rows;
24595 --
24596 IF (C_LEVEL_EVENT >= g_log_level) THEN
24597 trace
24598 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
24599 ,p_level => C_LEVEL_EVENT
24600 ,p_module => l_log_module);
24601 END IF;
24602 --
24603 EXIT WHEN l_array_entity_id.COUNT = 0;
24604
24605 -- initialize arrays
24606 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
24607 XLA_AE_LINES_PKG.g_rec_lines := NULL;
24608
24609 --
24610 -- Bug 4458708
24611 --
24612 XLA_AE_LINES_PKG.g_LineNumber := 0;
24613
24614
24615 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
24616 g_last_hdr_idx := l_array_event_id.LAST;
24617 --
24618 -- loop for the headers. Each iteration is for each header extract row
24619 -- fetched in header cursor
24620 --
24621 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
24622
24623 --
24624 -- set event info as cache for other routines to refer event attributes
24625 --
24626 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
24627 (p_application_id => p_application_id
24628 ,p_primary_ledger_id => p_primary_ledger_id
24629 ,p_base_ledger_id => p_base_ledger_id
24630 ,p_target_ledger_id => p_target_ledger_id
24631 ,p_entity_id => l_array_entity_id(hdr_idx)
24632 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
24633 ,p_entity_code => l_array_entity_code(hdr_idx)
24634 ,p_transaction_num => l_array_transaction_num(hdr_idx)
24635 ,p_event_id => l_array_event_id(hdr_idx)
24636 ,p_event_class_code => l_array_class_code(hdr_idx)
24637 ,p_event_type_code => l_array_event_type(hdr_idx)
24638 ,p_event_number => l_array_event_number(hdr_idx)
24639 ,p_event_date => l_array_event_date(hdr_idx)
24640 ,p_transaction_date => l_array_transaction_date(hdr_idx)
24641 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
24642 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
24643 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
24644 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
24645 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
24646 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
24647 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
24648 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
24649 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
24650 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
24651 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
24652 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
24653 ,p_event_created_by => l_array_event_created_by(hdr_idx)
24654 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
24655
24656 --
24657 -- set the status of entry to C_VALID (0)
24658 --
24659 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
24660
24661 --
24662 -- initialize a row for ae header
24663 --
24664 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
24665
24666 l_event_id := l_array_event_id(hdr_idx);
24667
24668 --
24669 -- storing the hdr_idx for event. May be used by line cursor.
24670 --
24671 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
24672
24673 --
24674 -- store sources from header extract. This can be improved to
24675 -- store only those sources from header extract that may be used in lines
24676 --
24677
24678 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
24679 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
24680 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
24681 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
24682 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
24683 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
24684 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
24685 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
24686 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
24687
24688 --
24689 -- initilaize the status of ae headers for diffrent balance types
24690 -- the status is initialised to C_NOT_CREATED (2)
24691 --
24692 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
24693 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
24694 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
24695
24696 --
24697 -- call api to validate and store accounting attributes for header
24698 --
24699
24700 ------------------------------------------------------------
24701 -- Accrual Reversal : to get date for Standard Source (NONE)
24702 ------------------------------------------------------------
24703 l_acc_rev_gl_date_source := NULL;
24704
24705 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
24706 l_rec_acct_attrs.array_date_value(1) :=
24707 xla_ae_sources_pkg.GetSystemSourceDate(
24708 p_source_code => 'XLA_REFERENCE_DATE_1'
24709 , p_source_type_code => 'Y'
24710 , p_source_application_id => 602
24711 );
24712 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_TRANSFER_FLAG';
24713 l_rec_acct_attrs.array_char_value(2) := g_array_event(l_event_id).array_value_char('source_42');
24714
24715
24716 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
24717
24718 XLA_AE_HEADER_PKG.SetJeCategoryName;
24719
24720 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
24721 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
24722 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
24723 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
24724 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
24725
24726
24727 --
24728 xla_ae_header_pkg.SetHdrDescription(
24729 p_description => Description_1 (
24730 p_application_id => p_application_id
24731 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
24732 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
24733 , p_source_3 => g_array_event(l_event_id).array_value_num('source_3')
24734 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
24735 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
24736 )
24737 );
24738 --
24739
24740 -- No header level analytical criteria
24741
24742 --
24743 --accounting attribute enhancement, bug 3612931
24744 --
24745 l_trx_reversal_source := SUBSTR(NULL, 1,30);
24746
24747 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
24748 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
24749
24750 xla_accounting_err_pkg.build_message
24751 (p_appli_s_name => 'XLA'
24752 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
24753 ,p_token_1 => 'ACCT_ATTR_NAME'
24754 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
24755 ,p_token_2 => 'PRODUCT_NAME'
24756 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
24757 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
24758 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
24759 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
24760
24761 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
24762 --
24763 -- following sets the accounting attributes needed to reverse
24764 -- accounting for a distributeion
24765 --
24766 xla_ae_lines_pkg.SetTrxReversalAttrs
24767 (p_event_id => l_event_id
24768 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
24769 ,p_trx_reversal_source => l_trx_reversal_source);
24770
24771 END IF;
24772
24773
24774 ----------------------------------------------------------------
24775 -- 4262811 - update the header statuses to invalid in need be
24776 ----------------------------------------------------------------
24777 --
24778 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
24779
24780
24781 -----------------------------------------------
24782 -- No accrual reversal for the event class/type
24783 -----------------------------------------------
24784 ----------------------------------------------------------------
24785
24786 --
24787 -- this ends the header loop iteration for one bulk fetch
24788 --
24789 END LOOP;
24790
24791 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
24792 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
24793
24794 --
24795 -- insert dummy rows into lines gt table that were created due to
24796 -- transaction reversals
24797 --
24798 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
24799 l_result := XLA_AE_LINES_PKG.InsertLines;
24800 END IF;
24801
24802 --
24803 -- reset the temp_line_num for each set of events fetched from header
24804 -- cursor rather than doing it for each new event in line cursor
24805 -- Bug 3939231
24806 --
24807 xla_ae_lines_pkg.g_temp_line_num := 0;
24808
24809
24810
24811 --
24812 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
24813 --
24814 --
24815 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
24816
24817 trace
24818 (p_msg => 'SQL - FETCH line_cur'
24819 ,p_level => C_LEVEL_STATEMENT
24820 ,p_module => l_log_module);
24821
24822 END IF;
24823 --
24824 --
24825 LOOP
24826 --
24827 FETCH line_cur BULK COLLECT INTO
24828 l_array_entity_id
24829 , l_array_legal_entity_id
24830 , l_array_entity_code
24831 , l_array_transaction_num
24832 , l_array_event_id
24833 , l_array_class_code
24834 , l_array_event_type
24835 , l_array_event_number
24836 , l_array_event_date
24837 , l_array_transaction_date
24838 , l_array_reference_num_1
24839 , l_array_reference_num_2
24840 , l_array_reference_num_3
24841 , l_array_reference_num_4
24842 , l_array_reference_char_1
24843 , l_array_reference_char_2
24844 , l_array_reference_char_3
24845 , l_array_reference_char_4
24846 , l_array_reference_date_1
24847 , l_array_reference_date_2
24848 , l_array_reference_date_3
24849 , l_array_reference_date_4
24850 , l_array_event_created_by
24851 , l_array_budgetary_control_flag
24852 , l_array_extract_line_num
24853 , l_array_source_6
24854 , l_array_source_7
24855 , l_array_source_8
24856 , l_array_source_10
24857 , l_array_source_11
24858 , l_array_source_12
24859 , l_array_source_13
24860 , l_array_source_14
24861 , l_array_source_15
24862 LIMIT l_rows;
24863
24864 --
24865 IF (C_LEVEL_EVENT >= g_log_level) THEN
24866 trace
24867 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
24868 ,p_level => C_LEVEL_EVENT
24869 ,p_module => l_log_module);
24870 END IF;
24871 --
24872 EXIT WHEN l_array_entity_id.count = 0;
24873
24874 XLA_AE_LINES_PKG.g_rec_lines := null;
24875
24876 --
24877 -- Bug 4458708
24878 --
24879 XLA_AE_LINES_PKG.g_LineNumber := 0;
24880 --
24881 --
24882
24883 FOR Idx IN 1..l_array_event_id.count LOOP
24884 --
24885 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
24886 --
24887 l_event_id := l_array_event_id(idx); -- 5648433
24888
24889 --
24890 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
24891 --
24892
24893 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
24894 (g_array_event(l_event_id).array_value_num('header_index'))
24895 ,'N'
24896 ) <> 'Y'
24897 THEN
24898 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
24899 trace
24900 (p_msg => 'Trancaction revesal option is not Y '
24901 ,p_level => C_LEVEL_STATEMENT
24902 ,p_module => l_log_module);
24903 END IF;
24904
24905 --
24906 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
24907 --
24908 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
24909 --
24910 -- set event info as cache for other routines to refer event attributes
24911 --
24912
24913 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
24914 l_previous_event_id := l_event_id;
24915
24916 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
24917 (p_application_id => p_application_id
24918 ,p_primary_ledger_id => p_primary_ledger_id
24919 ,p_base_ledger_id => p_base_ledger_id
24920 ,p_target_ledger_id => p_target_ledger_id
24921 ,p_entity_id => l_array_entity_id(Idx)
24922 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
24923 ,p_entity_code => l_array_entity_code(Idx)
24924 ,p_transaction_num => l_array_transaction_num(Idx)
24925 ,p_event_id => l_array_event_id(Idx)
24926 ,p_event_class_code => l_array_class_code(Idx)
24927 ,p_event_type_code => l_array_event_type(Idx)
24928 ,p_event_number => l_array_event_number(Idx)
24929 ,p_event_date => l_array_event_date(Idx)
24930 ,p_transaction_date => l_array_transaction_date(Idx)
24931 ,p_reference_num_1 => l_array_reference_num_1(Idx)
24932 ,p_reference_num_2 => l_array_reference_num_2(Idx)
24933 ,p_reference_num_3 => l_array_reference_num_3(Idx)
24934 ,p_reference_num_4 => l_array_reference_num_4(Idx)
24935 ,p_reference_char_1 => l_array_reference_char_1(Idx)
24936 ,p_reference_char_2 => l_array_reference_char_2(Idx)
24937 ,p_reference_char_3 => l_array_reference_char_3(Idx)
24938 ,p_reference_char_4 => l_array_reference_char_4(Idx)
24939 ,p_reference_date_1 => l_array_reference_date_1(Idx)
24940 ,p_reference_date_2 => l_array_reference_date_2(Idx)
24941 ,p_reference_date_3 => l_array_reference_date_3(Idx)
24942 ,p_reference_date_4 => l_array_reference_date_4(Idx)
24943 ,p_event_created_by => l_array_event_created_by(Idx)
24944 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
24945 --
24946 END IF;
24947
24948
24949
24950 --
24951 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
24952
24953 l_acct_reversal_source := SUBSTR(NULL, 1,30);
24954
24955 IF l_continue_with_lines THEN
24956 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
24957 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
24958
24959 xla_accounting_err_pkg.build_message
24960 (p_appli_s_name => 'XLA'
24961 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
24962 ,p_token_1 => 'LINE_NUMBER'
24963 ,p_value_1 => l_array_extract_line_num(Idx)
24964 ,p_token_2 => 'PRODUCT_NAME'
24965 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
24966 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
24967 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
24968 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
24969
24970 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
24971 --
24972 -- following sets the accounting attributes needed to reverse
24973 -- accounting for a distributeion
24974 --
24975
24976 --
24977 -- 5217187
24978 --
24979 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
24980 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
24981 g_array_event(l_event_id).array_value_num('header_index'));
24982 --
24983 --
24984
24985 -- No reversal code generated
24986
24987 xla_ae_lines_pkg.SetAcctReversalAttrs
24988 (p_event_id => l_event_id
24989 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
24990 ,p_calculate_acctd_flag => l_calculate_acctd_flag
24991 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
24992 END IF;
24993
24994 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
24995 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
24996
24997 --
24998 AcctLineType_6 (
24999 p_application_id => p_application_id
25000 ,p_event_id => l_event_id
25001 ,p_calculate_acctd_flag => l_calculate_acctd_flag
25002 ,p_calculate_g_l_flag => l_calculate_g_l_flag
25003 ,p_actual_flag => l_actual_flag
25004 ,p_balance_type_code => l_balance_type_code
25005 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
25006
25007 , p_source_6 => l_array_source_6(Idx)
25008 , p_source_7 => l_array_source_7(Idx)
25009 , p_source_8 => l_array_source_8(Idx)
25010 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
25011 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
25012 , p_source_10 => l_array_source_10(Idx)
25013 , p_source_11 => l_array_source_11(Idx)
25014 , p_source_12 => l_array_source_12(Idx)
25015 , p_source_13 => l_array_source_13(Idx)
25016 , p_source_14 => l_array_source_14(Idx)
25017 , p_source_15 => l_array_source_15(Idx)
25018 );
25019 If(l_balance_type_code = 'A') THEN
25020 l_actual_gain_loss_ref := l_gain_or_loss_ref;
25021 END IF;
25022
25023 --
25024
25025 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
25026 -- or secondary ledger that has different currency with primary
25027 -- or alc that is calculated by sla
25028 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
25029 (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'))
25030
25031 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
25032 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
25033 AND (l_actual_flag = 'A')) THEN
25034 XLA_AE_LINES_PKG.CreateGainOrLossLines(
25035 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
25036 ,p_application_id => p_application_id
25037 ,p_amb_context_code => 'DEFAULT'
25038 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
25039 ,p_event_class_code => C_EVENT_CLASS_CODE
25040 ,p_event_type_code => C_EVENT_TYPE_CODE
25041
25042 ,p_gain_ccid => -1
25043 ,p_loss_ccid => -1
25044
25045 ,p_actual_flag => l_actual_flag
25046 ,p_enc_flag => null
25047 ,p_actual_g_l_ref => l_actual_gain_loss_ref
25048 ,p_enc_g_l_ref => null
25049 );
25050 END IF;
25051 END IF;
25052 END IF;
25053
25054 ELSE
25055 --
25056 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
25057 --
25058 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
25059 trace
25060 (p_msg => 'Trancaction revesal option is Y'
25061 ,p_level => C_LEVEL_STATEMENT
25062 ,p_module => l_log_module);
25063 END IF;
25064 END IF;
25065
25066 END LOOP;
25067 l_result := XLA_AE_LINES_PKG.InsertLines ;
25068 end loop;
25069 close line_cur;
25070
25071
25072 --
25073 -- insert headers into xla_ae_headers_gt table
25074 --
25075 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
25076
25077 -- insert into errors table here.
25078
25079 END LOOP;
25080
25081 --
25082 -- 4865292
25083 --
25084 -- Compare g_hdr_extract_count with event count in
25085 -- CreateHeadersAndLines.
25086 --
25087 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
25088
25089 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
25090 trace (p_msg => '# rows extracted from header extract objects '
25091 || ' (running total): '
25092 || g_hdr_extract_count
25093 ,p_level => C_LEVEL_STATEMENT
25094 ,p_module => l_log_module);
25095 END IF;
25096
25097 CLOSE header_cur;
25098 --
25099
25100 --
25101 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25102 trace
25103 (p_msg => 'END of EventType_35'
25104 ,p_level => C_LEVEL_PROCEDURE
25105 ,p_module => l_log_module);
25106 END IF;
25107 --
25108 RETURN l_result;
25109 EXCEPTION
25110 WHEN xla_exceptions_pkg.application_exception THEN
25111
25112 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
25113
25114
25115 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
25116
25117 RAISE;
25118
25119 WHEN NO_DATA_FOUND THEN
25120
25121 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
25122 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
25123
25124 FOR header_record IN header_cur
25125 LOOP
25126 l_array_header_events(header_record.event_id) := header_record.event_id;
25127 END LOOP;
25128
25129 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
25130 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
25131
25132 fnd_file.put_line(fnd_file.LOG, ' ');
25133 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
25134 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
25135 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
25136
25137 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
25138 LOOP
25139 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
25140 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
25141 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
25142 END IF;
25143 END LOOP;
25144
25145 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
25146 fnd_file.put_line(fnd_file.LOG, ' ');
25147
25148
25149 xla_exceptions_pkg.raise_message
25150 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_35');
25151
25152
25153 WHEN OTHERS THEN
25154 xla_exceptions_pkg.raise_message
25155 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_35');
25156 END EventType_35;
25157 --
25158
25159 ---------------------------------------
25160 --
25161 -- PRIVATE PROCEDURE
25162 -- insert_sources_36
25163 --
25164 ----------------------------------------
25165 --
25166 PROCEDURE insert_sources_36(
25167 p_target_ledger_id IN NUMBER
25168 , p_language IN VARCHAR2
25169 , p_sla_ledger_id IN NUMBER
25170 , p_pad_start_date IN DATE
25171 , p_pad_end_date IN DATE
25172 )
25173 IS
25174
25175 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_ISSUE_TP';
25176 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_TO_EXP';
25177 p_apps_owner VARCHAR2(30);
25178 l_log_module VARCHAR2(240);
25179 BEGIN
25180 IF g_log_enabled THEN
25181 l_log_module := C_DEFAULT_MODULE||'.insert_sources_36';
25182 END IF;
25183 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25184
25185 trace
25186 (p_msg => 'BEGIN of insert_sources_36'
25187 ,p_level => C_LEVEL_PROCEDURE
25188 ,p_module => l_log_module);
25189
25190 END IF;
25191
25192 -- select APPS owner
25193 SELECT oracle_username
25194 INTO p_apps_owner
25195 FROM fnd_oracle_userid
25196 WHERE read_only_flag = 'U'
25197 ;
25198
25199 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
25200 trace
25201 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
25202 ' - p_language = '||p_language||
25203 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
25204 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
25205 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
25206 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
25207 ,p_level => C_LEVEL_STATEMENT
25208 ,p_module => l_log_module);
25209 END IF;
25210
25211
25212 --
25213 INSERT INTO xla_diag_sources --hdr1
25214 (
25215 event_id
25216 , ledger_id
25217 , sla_ledger_id
25218 , description_language
25219 , object_name
25220 , object_type_code
25221 , line_number
25222 , source_application_id
25223 , source_type_code
25224 , source_code
25225 , source_value
25226 , source_meaning
25227 , created_by
25228 , creation_date
25229 , last_update_date
25230 , last_updated_by
25231 , last_update_login
25232 , program_update_date
25233 , program_application_id
25234 , program_id
25235 , request_id
25236 )
25237 SELECT
25238 event_id
25239 , p_target_ledger_id
25240 , p_sla_ledger_id
25241 , p_language
25242 , object_name
25243 , object_type_code
25244 , line_number
25245 , source_application_id
25246 , source_type_code
25247 , source_code
25248 , SUBSTR(source_value ,1,1996)
25249 , SUBSTR(source_meaning,1,200)
25250 , xla_environment_pkg.g_Usr_Id
25251 , TRUNC(SYSDATE)
25252 , TRUNC(SYSDATE)
25253 , xla_environment_pkg.g_Usr_Id
25254 , xla_environment_pkg.g_Login_Id
25255 , TRUNC(SYSDATE)
25256 , xla_environment_pkg.g_Prog_Appl_Id
25257 , xla_environment_pkg.g_Prog_Id
25258 , xla_environment_pkg.g_Req_Id
25259 FROM (
25260 SELECT xet.event_id event_id
25261 , 0 line_number
25262 , CASE r
25263 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
25264 WHEN 2 THEN 'CST_XLA_INV_SYSTEM_ITEMS_REF_V'
25265 WHEN 3 THEN 'CST_XLA_INV_REF_V'
25266 WHEN 4 THEN 'CST_XLA_INV_REF_V'
25267 WHEN 5 THEN 'CST_XLA_INV_TXN_TYPES_REF_V'
25268 WHEN 6 THEN 'CST_XLA_INV_HEADERS_V'
25269 WHEN 7 THEN 'CST_XLA_INV_HEADERS_V'
25270
25271 ELSE null
25272 END object_name
25273 , CASE r
25274 WHEN 1 THEN 'HEADER'
25275 WHEN 2 THEN 'HEADER'
25276 WHEN 3 THEN 'HEADER'
25277 WHEN 4 THEN 'HEADER'
25278 WHEN 5 THEN 'HEADER'
25279 WHEN 6 THEN 'HEADER'
25280 WHEN 7 THEN 'HEADER'
25281
25282 ELSE null
25283 END object_type_code
25284 , CASE r
25285 WHEN 1 THEN '707'
25286 WHEN 2 THEN '707'
25287 WHEN 3 THEN '707'
25288 WHEN 4 THEN '707'
25289 WHEN 5 THEN '707'
25290 WHEN 6 THEN '707'
25291 WHEN 7 THEN '707'
25292
25293 ELSE null
25294 END source_application_id
25295 , 'S' source_type_code
25296 , CASE r
25297 WHEN 1 THEN 'TRANSACTION_ID'
25298 WHEN 2 THEN 'ITEM_CONCATENATED_SEGMENTS'
25299 WHEN 3 THEN 'TRANSACTION_QUANTITY'
25300 WHEN 4 THEN 'TRANSACTION_UOM'
25301 WHEN 5 THEN 'INV_TXN_TYPE_DESCRIPTION'
25302 WHEN 6 THEN 'DISTRIBUTION_TYPE'
25303 WHEN 7 THEN 'TRANSFER_TO_GL_INDICATOR'
25304
25305 ELSE null
25306 END source_code
25307 , CASE r
25308 WHEN 1 THEN TO_CHAR(h1.TRANSACTION_ID)
25309 WHEN 2 THEN TO_CHAR(h4.ITEM_CONCATENATED_SEGMENTS)
25310 WHEN 3 THEN TO_CHAR(h3.TRANSACTION_QUANTITY)
25311 WHEN 4 THEN TO_CHAR(h3.TRANSACTION_UOM)
25312 WHEN 5 THEN TO_CHAR(h5.INV_TXN_TYPE_DESCRIPTION)
25313 WHEN 6 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
25314 WHEN 7 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
25315
25316 ELSE null
25317 END source_value
25318 , CASE r
25319 WHEN 6 THEN fvl9.meaning
25320 WHEN 7 THEN fvl42.meaning
25321
25322 ELSE null
25323 END source_meaning
25324 FROM xla_events_gt xet
25325 , CST_XLA_INV_HEADERS_V h1
25326 , CST_XLA_INV_REF_V h3
25327 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h4
25328 , CST_XLA_INV_TXN_TYPES_REF_V h5
25329 , fnd_lookup_values fvl9
25330 , fnd_lookup_values fvl42
25331 ,(select rownum r from all_objects where rownum <= 7 and owner = p_apps_owner)
25332 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
25333 AND xet.event_type_code = C_EVENT_TYPE_CODE
25334 AND h1.event_id = xet.event_id
25335 AND h3.ref_transaction_id = h1.transaction_id AND h4.inventory_item_id = h1.inventory_item_id and h4.organization_id = h1.organization_id AND h5.inv_transaction_type_id = h1.transaction_type_id AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
25336 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
25337 AND fvl9.view_application_id(+) = 700
25338 AND fvl9.language(+) = USERENV('LANG')
25339 AND fvl42.lookup_type(+) = 'YES_NO'
25340 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
25341 AND fvl42.view_application_id(+) = 0
25342 AND fvl42.language(+) = USERENV('LANG')
25343
25344 )
25345 ;
25346 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
25347
25348 trace
25349 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
25350 ,p_level => C_LEVEL_STATEMENT
25351 ,p_module => l_log_module);
25352
25353 END IF;
25354 --
25355
25356
25357
25358 --
25359 INSERT INTO xla_diag_sources --line1
25360 (
25361 event_id
25362 , ledger_id
25363 , sla_ledger_id
25364 , description_language
25365 , object_name
25366 , object_type_code
25367 , line_number
25368 , source_application_id
25369 , source_type_code
25370 , source_code
25371 , source_value
25372 , source_meaning
25373 , created_by
25374 , creation_date
25375 , last_update_date
25376 , last_updated_by
25377 , last_update_login
25378 , program_update_date
25379 , program_application_id
25380 , program_id
25381 , request_id
25382 )
25383 SELECT event_id
25384 , p_target_ledger_id
25385 , p_sla_ledger_id
25386 , p_language
25387 , object_name
25388 , object_type_code
25389 , line_number
25390 , source_application_id
25391 , source_type_code
25392 , source_code
25393 , SUBSTR(source_value,1,1996)
25394 , SUBSTR(source_meaning,1,200)
25395 , xla_environment_pkg.g_Usr_Id
25396 , TRUNC(SYSDATE)
25397 , TRUNC(SYSDATE)
25398 , xla_environment_pkg.g_Usr_Id
25399 , xla_environment_pkg.g_Login_Id
25400 , TRUNC(SYSDATE)
25401 , xla_environment_pkg.g_Prog_Appl_Id
25402 , xla_environment_pkg.g_Prog_Id
25403 , xla_environment_pkg.g_Req_Id
25404 FROM (
25405 SELECT xet.event_id event_id
25406 , l2.line_number line_number
25407 , CASE r
25408 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
25409 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
25410 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
25411 WHEN 4 THEN 'CST_XLA_INV_LINES_V'
25412 WHEN 5 THEN 'CST_XLA_INV_LINES_V'
25413 WHEN 6 THEN 'CST_XLA_INV_LINES_V'
25414 WHEN 7 THEN 'CST_XLA_INV_LINES_V'
25415 WHEN 8 THEN 'CST_XLA_INV_LINES_V'
25416 WHEN 9 THEN 'CST_XLA_INV_LINES_V'
25417
25418 ELSE null
25419 END object_name
25420 , CASE r
25421 WHEN 1 THEN 'LINE'
25422 WHEN 2 THEN 'LINE'
25423 WHEN 3 THEN 'LINE'
25424 WHEN 4 THEN 'LINE'
25425 WHEN 5 THEN 'LINE'
25426 WHEN 6 THEN 'LINE'
25427 WHEN 7 THEN 'LINE'
25428 WHEN 8 THEN 'LINE'
25429 WHEN 9 THEN 'LINE'
25430
25431 ELSE null
25432 END object_type_code
25433 , CASE r
25434 WHEN 1 THEN '707'
25435 WHEN 2 THEN '707'
25436 WHEN 3 THEN '707'
25437 WHEN 4 THEN '707'
25438 WHEN 5 THEN '707'
25439 WHEN 6 THEN '707'
25440 WHEN 7 THEN '707'
25441 WHEN 8 THEN '707'
25442 WHEN 9 THEN '707'
25443
25444 ELSE null
25445 END source_application_id
25446 , 'S' source_type_code
25447 , CASE r
25448 WHEN 1 THEN 'CODE_COMBINATION_ID'
25449 WHEN 2 THEN 'ACCOUNTING_LINE_TYPE_CODE'
25450 WHEN 3 THEN 'DISTRIBUTION_IDENTIFIER'
25451 WHEN 4 THEN 'ENTERED_AMOUNT'
25452 WHEN 5 THEN 'CURRENCY_CODE'
25453 WHEN 6 THEN 'CURRENCY_CONVERSION_DATE'
25454 WHEN 7 THEN 'CURRENCY_CONVERSION_RATE'
25455 WHEN 8 THEN 'CURRENCY_CONVERSION_TYPE'
25456 WHEN 9 THEN 'ACCOUNTED_AMOUNT'
25457
25458 ELSE null
25459 END source_code
25460 , CASE r
25461 WHEN 1 THEN TO_CHAR(l2.CODE_COMBINATION_ID)
25462 WHEN 2 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
25463 WHEN 3 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
25464 WHEN 4 THEN TO_CHAR(l2.ENTERED_AMOUNT)
25465 WHEN 5 THEN TO_CHAR(l2.CURRENCY_CODE)
25466 WHEN 6 THEN TO_CHAR(l2.CURRENCY_CONVERSION_DATE)
25467 WHEN 7 THEN TO_CHAR(l2.CURRENCY_CONVERSION_RATE)
25468 WHEN 8 THEN TO_CHAR(l2.CURRENCY_CONVERSION_TYPE)
25469 WHEN 9 THEN TO_CHAR(l2.ACCOUNTED_AMOUNT)
25470
25471 ELSE null
25472 END source_value
25473 , null source_meaning
25474 FROM xla_events_gt xet
25475 , CST_XLA_INV_LINES_V l2
25476 ,(select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
25477 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
25478 AND xet.event_type_code = C_EVENT_TYPE_CODE
25479 AND l2.event_id = xet.event_id
25480
25481 )
25482 ;
25483 --
25484 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
25485
25486 trace
25487 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
25488 ,p_level => C_LEVEL_STATEMENT
25489 ,p_module => l_log_module);
25490
25491 END IF;
25492
25493
25494 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25495 trace
25496 (p_msg => 'END of insert_sources_36'
25497 ,p_level => C_LEVEL_PROCEDURE
25498 ,p_module => l_log_module);
25499 END IF;
25500 EXCEPTION
25501 WHEN xla_exceptions_pkg.application_exception THEN
25502 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
25503 trace
25504 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
25505 ,p_level => C_LEVEL_EXCEPTION
25506 ,p_module => l_log_module);
25507 END IF;
25508 RAISE;
25509 WHEN OTHERS THEN
25510 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
25511 trace
25512 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
25513 ,p_level => C_LEVEL_EXCEPTION
25514 ,p_module => l_log_module);
25515 END IF;
25516 xla_exceptions_pkg.raise_message
25517 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_36');
25518 END insert_sources_36;
25519 --
25520
25521 ---------------------------------------
25522 --
25523 -- PRIVATE FUNCTION
25524 -- EventType_36
25525 --
25526 ----------------------------------------
25527 --
25528 FUNCTION EventType_36
25529 (p_application_id IN NUMBER
25530 ,p_base_ledger_id IN NUMBER
25531 ,p_target_ledger_id IN NUMBER
25532 ,p_language IN VARCHAR2
25533 ,p_currency_code IN VARCHAR2
25534 ,p_sla_ledger_id IN NUMBER
25535 ,p_pad_start_date IN DATE
25536 ,p_pad_end_date IN DATE
25537 ,p_primary_ledger_id IN NUMBER)
25538 RETURN BOOLEAN IS
25539 --
25540 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_ISSUE_TP';
25541 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_TO_EXP';
25542
25543 l_calculate_acctd_flag VARCHAR2(1) :='N';
25544 l_calculate_g_l_flag VARCHAR2(1) :='N';
25545 --
25546 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
25547 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
25548 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
25549 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
25550 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
25551 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
25552 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
25553 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
25554 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
25555 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
25556 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
25557 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
25558 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
25559 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
25560 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
25561 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
25562 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
25563 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
25564 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
25565 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
25566 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
25567 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
25568 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
25569 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
25570 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
25571 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
25572
25573 l_event_id NUMBER;
25574 l_previous_event_id NUMBER;
25575 l_first_event_id NUMBER;
25576 l_last_event_id NUMBER;
25577
25578 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
25579 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25580 --
25581 --
25582 l_result BOOLEAN := TRUE;
25583 l_rows NUMBER := 1000;
25584 l_event_type_name VARCHAR2(80) := 'Internal Order Issue to Expense, Transfer Pricing';
25585 l_event_class_name VARCHAR2(80) := 'Internal Order to Expense';
25586 l_description VARCHAR2(4000);
25587 l_transaction_reversal NUMBER;
25588 l_ae_header_id NUMBER;
25589 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
25590 l_log_module VARCHAR2(240);
25591 --
25592 l_acct_reversal_source VARCHAR2(30);
25593 l_trx_reversal_source VARCHAR2(30);
25594
25595 l_continue_with_lines BOOLEAN := TRUE;
25596 --
25597 l_acc_rev_gl_date_source DATE; -- 4262811
25598 --
25599 type t_array_event_id is table of number index by binary_integer;
25600
25601 l_rec_array_event t_rec_array_event;
25602 l_null_rec_array_event t_rec_array_event;
25603 l_array_ae_header_id xla_number_array_type;
25604 l_actual_flag VARCHAR2(1) := NULL;
25605 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
25606 l_balance_type_code VARCHAR2(1) :=NULL;
25607 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
25608
25609 --
25610 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
25611 --
25612
25613 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSACTION_ID%TYPE INDEX BY BINARY_INTEGER;
25614 TYPE t_array_source_2 IS TABLE OF CST_XLA_INV_SYSTEM_ITEMS_REF_V.ITEM_CONCATENATED_SEGMENTS%TYPE INDEX BY BINARY_INTEGER;
25615 TYPE t_array_source_3 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_QUANTITY%TYPE INDEX BY BINARY_INTEGER;
25616 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_UOM%TYPE INDEX BY BINARY_INTEGER;
25617 TYPE t_array_source_5 IS TABLE OF CST_XLA_INV_TXN_TYPES_REF_V.INV_TXN_TYPE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
25618 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
25619 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
25620
25621 TYPE t_array_source_6 IS TABLE OF CST_XLA_INV_LINES_V.CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
25622 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
25623 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
25624 TYPE t_array_source_10 IS TABLE OF CST_XLA_INV_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
25625 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
25626 TYPE t_array_source_12 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
25627 TYPE t_array_source_13 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
25628 TYPE t_array_source_14 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
25629 TYPE t_array_source_15 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
25630
25631 l_array_source_1 t_array_source_1;
25632 l_array_source_2 t_array_source_2;
25633 l_array_source_3 t_array_source_3;
25634 l_array_source_4 t_array_source_4;
25635 l_array_source_5 t_array_source_5;
25636 l_array_source_9 t_array_source_9;
25637 l_array_source_9_meaning t_array_lookup_meaning;
25638 l_array_source_42 t_array_source_42;
25639 l_array_source_42_meaning t_array_lookup_meaning;
25640
25641 l_array_source_6 t_array_source_6;
25642 l_array_source_7 t_array_source_7;
25643 l_array_source_8 t_array_source_8;
25644 l_array_source_10 t_array_source_10;
25645 l_array_source_11 t_array_source_11;
25646 l_array_source_12 t_array_source_12;
25647 l_array_source_13 t_array_source_13;
25648 l_array_source_14 t_array_source_14;
25649 l_array_source_15 t_array_source_15;
25650
25651 --
25652 CURSOR header_cur
25653 IS
25654 SELECT /*+ leading(xet) cardinality(xet,1) */
25655 -- Event Type Code: INT_ORDER_ISSUE_TP
25656 -- Event Class Code: INT_ORDER_TO_EXP
25657 xet.entity_id
25658 , xet.legal_entity_id
25659 , xet.entity_code
25660 , xet.transaction_number
25661 , xet.event_id
25662 , xet.event_class_code
25663 , xet.event_type_code
25664 , xet.event_number
25665 , xet.event_date
25666 , xet.transaction_date
25667 , xet.reference_num_1
25668 , xet.reference_num_2
25669 , xet.reference_num_3
25670 , xet.reference_num_4
25671 , xet.reference_char_1
25672 , xet.reference_char_2
25673 , xet.reference_char_3
25674 , xet.reference_char_4
25675 , xet.reference_date_1
25676 , xet.reference_date_2
25677 , xet.reference_date_3
25678 , xet.reference_date_4
25679 , xet.event_created_by
25680 , xet.budgetary_control_flag
25681 , h1.TRANSACTION_ID source_1
25682 , h4.ITEM_CONCATENATED_SEGMENTS source_2
25683 , h3.TRANSACTION_QUANTITY source_3
25684 , h3.TRANSACTION_UOM source_4
25685 , h5.INV_TXN_TYPE_DESCRIPTION source_5
25686 , h1.DISTRIBUTION_TYPE source_9
25687 , fvl9.meaning source_9_meaning
25688 , h1.TRANSFER_TO_GL_INDICATOR source_42
25689 , fvl42.meaning source_42_meaning
25690 FROM xla_events_gt xet
25691 , CST_XLA_INV_HEADERS_V h1
25692 , CST_XLA_INV_REF_V h3
25693 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h4
25694 , CST_XLA_INV_TXN_TYPES_REF_V h5
25695 , fnd_lookup_values fvl9
25696 , fnd_lookup_values fvl42
25697 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
25698 and xet.event_type_code = C_EVENT_TYPE_CODE
25699 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
25700 AND h3.ref_transaction_id = h1.transaction_id AND h4.INVENTORY_ITEM_ID = h1.INVENTORY_ITEM_ID AND h4.ORGANIZATION_ID = h1.ORGANIZATION_ID AND h5.INV_TRANSACTION_TYPE_ID = h1.TRANSACTION_TYPE_ID AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
25701 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
25702 AND fvl9.view_application_id(+) = 700
25703 AND fvl9.language(+) = USERENV('LANG')
25704 AND fvl42.lookup_type(+) = 'YES_NO'
25705 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
25706 AND fvl42.view_application_id(+) = 0
25707 AND fvl42.language(+) = USERENV('LANG')
25708
25709 ORDER BY event_id
25710 ;
25711
25712
25713 --
25714 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
25715 IS
25716 SELECT /*+ leading(xet) cardinality(xet,1) */
25717 -- Event Type Code: INT_ORDER_ISSUE_TP
25718 -- Event Class Code: INT_ORDER_TO_EXP
25719 xet.entity_id
25720 ,xet.legal_entity_id
25721 ,xet.entity_code
25722 ,xet.transaction_number
25723 ,xet.event_id
25724 ,xet.event_class_code
25725 ,xet.event_type_code
25726 ,xet.event_number
25727 ,xet.event_date
25728 ,xet.transaction_date
25729 ,xet.reference_num_1
25730 ,xet.reference_num_2
25731 ,xet.reference_num_3
25732 ,xet.reference_num_4
25733 ,xet.reference_char_1
25734 ,xet.reference_char_2
25735 ,xet.reference_char_3
25736 ,xet.reference_char_4
25737 ,xet.reference_date_1
25738 ,xet.reference_date_2
25739 ,xet.reference_date_3
25740 ,xet.reference_date_4
25741 ,xet.event_created_by
25742 ,xet.budgetary_control_flag , l2.LINE_NUMBER
25743 , l2.CODE_COMBINATION_ID source_6
25744 , l2.ACCOUNTING_LINE_TYPE_CODE source_7
25745 , l2.DISTRIBUTION_IDENTIFIER source_8
25746 , l2.ENTERED_AMOUNT source_10
25747 , l2.CURRENCY_CODE source_11
25748 , l2.CURRENCY_CONVERSION_DATE source_12
25749 , l2.CURRENCY_CONVERSION_RATE source_13
25750 , l2.CURRENCY_CONVERSION_TYPE source_14
25751 , l2.ACCOUNTED_AMOUNT source_15
25752 FROM xla_events_gt xet
25753 , CST_XLA_INV_LINES_V l2
25754 WHERE xet.event_id between x_first_event_id and x_last_event_id
25755 and xet.event_date between p_pad_start_date and p_pad_end_date
25756 and xet.event_type_code = C_EVENT_TYPE_CODE
25757 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
25758 ;
25759
25760 --
25761 BEGIN
25762 IF g_log_enabled THEN
25763 l_log_module := C_DEFAULT_MODULE||'.EventType_36';
25764 END IF;
25765 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25766 trace
25767 (p_msg => 'BEGIN of EventType_36'
25768 ,p_level => C_LEVEL_PROCEDURE
25769 ,p_module => l_log_module);
25770 END IF;
25771
25772 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
25773 trace
25774 (p_msg => 'p_application_id = '||p_application_id||
25775 ' - p_base_ledger_id = '||p_base_ledger_id||
25776 ' - p_target_ledger_id = '||p_target_ledger_id||
25777 ' - p_language = '||p_language||
25778 ' - p_currency_code = '||p_currency_code||
25779 ' - p_sla_ledger_id = '||p_sla_ledger_id
25780 ,p_level => C_LEVEL_STATEMENT
25781 ,p_module => l_log_module);
25782 END IF;
25783 --
25784 -- initialze arrays
25785 --
25786 g_array_event.DELETE;
25787 l_rec_array_event := l_null_rec_array_event;
25788 --
25789 --------------------------------------
25790 -- 4262811 Initialze MPA Line Number
25791 --------------------------------------
25792 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
25793
25794 --
25795
25796 --
25797 OPEN header_cur;
25798 --
25799 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
25800 trace
25801 (p_msg => 'SQL - FETCH header_cur'
25802 ,p_level => C_LEVEL_STATEMENT
25803 ,p_module => l_log_module);
25804 END IF;
25805 --
25806 LOOP
25807 FETCH header_cur BULK COLLECT INTO
25808 l_array_entity_id
25809 , l_array_legal_entity_id
25810 , l_array_entity_code
25811 , l_array_transaction_num
25812 , l_array_event_id
25813 , l_array_class_code
25814 , l_array_event_type
25815 , l_array_event_number
25816 , l_array_event_date
25817 , l_array_transaction_date
25818 , l_array_reference_num_1
25819 , l_array_reference_num_2
25820 , l_array_reference_num_3
25821 , l_array_reference_num_4
25822 , l_array_reference_char_1
25823 , l_array_reference_char_2
25824 , l_array_reference_char_3
25825 , l_array_reference_char_4
25826 , l_array_reference_date_1
25827 , l_array_reference_date_2
25828 , l_array_reference_date_3
25829 , l_array_reference_date_4
25830 , l_array_event_created_by
25831 , l_array_budgetary_control_flag
25832 , l_array_source_1
25833 , l_array_source_2
25834 , l_array_source_3
25835 , l_array_source_4
25836 , l_array_source_5
25837 , l_array_source_9
25838 , l_array_source_9_meaning
25839 , l_array_source_42
25840 , l_array_source_42_meaning
25841 LIMIT l_rows;
25842 --
25843 IF (C_LEVEL_EVENT >= g_log_level) THEN
25844 trace
25845 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
25846 ,p_level => C_LEVEL_EVENT
25847 ,p_module => l_log_module);
25848 END IF;
25849 --
25850 EXIT WHEN l_array_entity_id.COUNT = 0;
25851
25852 -- initialize arrays
25853 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
25854 XLA_AE_LINES_PKG.g_rec_lines := NULL;
25855
25856 --
25857 -- Bug 4458708
25858 --
25859 XLA_AE_LINES_PKG.g_LineNumber := 0;
25860
25861
25862 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
25863 g_last_hdr_idx := l_array_event_id.LAST;
25864 --
25865 -- loop for the headers. Each iteration is for each header extract row
25866 -- fetched in header cursor
25867 --
25868 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
25869
25870 --
25871 -- set event info as cache for other routines to refer event attributes
25872 --
25873 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
25874 (p_application_id => p_application_id
25875 ,p_primary_ledger_id => p_primary_ledger_id
25876 ,p_base_ledger_id => p_base_ledger_id
25877 ,p_target_ledger_id => p_target_ledger_id
25878 ,p_entity_id => l_array_entity_id(hdr_idx)
25879 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
25880 ,p_entity_code => l_array_entity_code(hdr_idx)
25881 ,p_transaction_num => l_array_transaction_num(hdr_idx)
25882 ,p_event_id => l_array_event_id(hdr_idx)
25883 ,p_event_class_code => l_array_class_code(hdr_idx)
25884 ,p_event_type_code => l_array_event_type(hdr_idx)
25885 ,p_event_number => l_array_event_number(hdr_idx)
25886 ,p_event_date => l_array_event_date(hdr_idx)
25887 ,p_transaction_date => l_array_transaction_date(hdr_idx)
25888 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
25889 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
25890 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
25891 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
25892 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
25893 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
25894 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
25895 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
25896 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
25897 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
25898 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
25899 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
25900 ,p_event_created_by => l_array_event_created_by(hdr_idx)
25901 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
25902
25903 --
25904 -- set the status of entry to C_VALID (0)
25905 --
25906 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
25907
25908 --
25909 -- initialize a row for ae header
25910 --
25911 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
25912
25913 l_event_id := l_array_event_id(hdr_idx);
25914
25915 --
25916 -- storing the hdr_idx for event. May be used by line cursor.
25917 --
25918 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
25919
25920 --
25921 -- store sources from header extract. This can be improved to
25922 -- store only those sources from header extract that may be used in lines
25923 --
25924
25925 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
25926 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
25927 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
25928 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
25929 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
25930 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
25931 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
25932 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
25933 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
25934
25935 --
25936 -- initilaize the status of ae headers for diffrent balance types
25937 -- the status is initialised to C_NOT_CREATED (2)
25938 --
25939 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
25940 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
25941 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
25942
25943 --
25944 -- call api to validate and store accounting attributes for header
25945 --
25946
25947 ------------------------------------------------------------
25948 -- Accrual Reversal : to get date for Standard Source (NONE)
25949 ------------------------------------------------------------
25950 l_acc_rev_gl_date_source := NULL;
25951
25952 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
25953 l_rec_acct_attrs.array_date_value(1) :=
25954 xla_ae_sources_pkg.GetSystemSourceDate(
25955 p_source_code => 'XLA_REFERENCE_DATE_1'
25956 , p_source_type_code => 'Y'
25957 , p_source_application_id => 602
25958 );
25959 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_TRANSFER_FLAG';
25960 l_rec_acct_attrs.array_char_value(2) := g_array_event(l_event_id).array_value_char('source_42');
25961
25962
25963 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
25964
25965 XLA_AE_HEADER_PKG.SetJeCategoryName;
25966
25967 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
25968 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
25969 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
25970 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
25971 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
25972
25973
25974 --
25975 xla_ae_header_pkg.SetHdrDescription(
25976 p_description => Description_1 (
25977 p_application_id => p_application_id
25978 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
25979 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
25980 , p_source_3 => g_array_event(l_event_id).array_value_num('source_3')
25981 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
25982 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
25983 )
25984 );
25985 --
25986
25987 -- No header level analytical criteria
25988
25989 --
25990 --accounting attribute enhancement, bug 3612931
25991 --
25992 l_trx_reversal_source := SUBSTR(NULL, 1,30);
25993
25994 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
25995 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
25996
25997 xla_accounting_err_pkg.build_message
25998 (p_appli_s_name => 'XLA'
25999 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
26000 ,p_token_1 => 'ACCT_ATTR_NAME'
26001 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
26002 ,p_token_2 => 'PRODUCT_NAME'
26003 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
26004 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
26005 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
26006 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
26007
26008 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
26009 --
26010 -- following sets the accounting attributes needed to reverse
26011 -- accounting for a distributeion
26012 --
26013 xla_ae_lines_pkg.SetTrxReversalAttrs
26014 (p_event_id => l_event_id
26015 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
26016 ,p_trx_reversal_source => l_trx_reversal_source);
26017
26018 END IF;
26019
26020
26021 ----------------------------------------------------------------
26022 -- 4262811 - update the header statuses to invalid in need be
26023 ----------------------------------------------------------------
26024 --
26025 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
26026
26027
26028 -----------------------------------------------
26029 -- No accrual reversal for the event class/type
26030 -----------------------------------------------
26031 ----------------------------------------------------------------
26032
26033 --
26034 -- this ends the header loop iteration for one bulk fetch
26035 --
26036 END LOOP;
26037
26038 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
26039 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
26040
26041 --
26042 -- insert dummy rows into lines gt table that were created due to
26043 -- transaction reversals
26044 --
26045 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
26046 l_result := XLA_AE_LINES_PKG.InsertLines;
26047 END IF;
26048
26049 --
26050 -- reset the temp_line_num for each set of events fetched from header
26051 -- cursor rather than doing it for each new event in line cursor
26052 -- Bug 3939231
26053 --
26054 xla_ae_lines_pkg.g_temp_line_num := 0;
26055
26056
26057
26058 --
26059 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
26060 --
26061 --
26062 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
26063
26064 trace
26065 (p_msg => 'SQL - FETCH line_cur'
26066 ,p_level => C_LEVEL_STATEMENT
26067 ,p_module => l_log_module);
26068
26069 END IF;
26070 --
26071 --
26072 LOOP
26073 --
26074 FETCH line_cur BULK COLLECT INTO
26075 l_array_entity_id
26076 , l_array_legal_entity_id
26077 , l_array_entity_code
26078 , l_array_transaction_num
26079 , l_array_event_id
26080 , l_array_class_code
26081 , l_array_event_type
26082 , l_array_event_number
26083 , l_array_event_date
26084 , l_array_transaction_date
26085 , l_array_reference_num_1
26086 , l_array_reference_num_2
26087 , l_array_reference_num_3
26088 , l_array_reference_num_4
26089 , l_array_reference_char_1
26090 , l_array_reference_char_2
26091 , l_array_reference_char_3
26092 , l_array_reference_char_4
26093 , l_array_reference_date_1
26094 , l_array_reference_date_2
26095 , l_array_reference_date_3
26096 , l_array_reference_date_4
26097 , l_array_event_created_by
26098 , l_array_budgetary_control_flag
26099 , l_array_extract_line_num
26100 , l_array_source_6
26101 , l_array_source_7
26102 , l_array_source_8
26103 , l_array_source_10
26104 , l_array_source_11
26105 , l_array_source_12
26106 , l_array_source_13
26107 , l_array_source_14
26108 , l_array_source_15
26109 LIMIT l_rows;
26110
26111 --
26112 IF (C_LEVEL_EVENT >= g_log_level) THEN
26113 trace
26114 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
26115 ,p_level => C_LEVEL_EVENT
26116 ,p_module => l_log_module);
26117 END IF;
26118 --
26119 EXIT WHEN l_array_entity_id.count = 0;
26120
26121 XLA_AE_LINES_PKG.g_rec_lines := null;
26122
26123 --
26124 -- Bug 4458708
26125 --
26126 XLA_AE_LINES_PKG.g_LineNumber := 0;
26127 --
26128 --
26129
26130 FOR Idx IN 1..l_array_event_id.count LOOP
26131 --
26132 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
26133 --
26134 l_event_id := l_array_event_id(idx); -- 5648433
26135
26136 --
26137 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
26138 --
26139
26140 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
26141 (g_array_event(l_event_id).array_value_num('header_index'))
26142 ,'N'
26143 ) <> 'Y'
26144 THEN
26145 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
26146 trace
26147 (p_msg => 'Trancaction revesal option is not Y '
26148 ,p_level => C_LEVEL_STATEMENT
26149 ,p_module => l_log_module);
26150 END IF;
26151
26152 --
26153 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
26154 --
26155 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
26156 --
26157 -- set event info as cache for other routines to refer event attributes
26158 --
26159
26160 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
26161 l_previous_event_id := l_event_id;
26162
26163 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
26164 (p_application_id => p_application_id
26165 ,p_primary_ledger_id => p_primary_ledger_id
26166 ,p_base_ledger_id => p_base_ledger_id
26167 ,p_target_ledger_id => p_target_ledger_id
26168 ,p_entity_id => l_array_entity_id(Idx)
26169 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
26170 ,p_entity_code => l_array_entity_code(Idx)
26171 ,p_transaction_num => l_array_transaction_num(Idx)
26172 ,p_event_id => l_array_event_id(Idx)
26173 ,p_event_class_code => l_array_class_code(Idx)
26174 ,p_event_type_code => l_array_event_type(Idx)
26175 ,p_event_number => l_array_event_number(Idx)
26176 ,p_event_date => l_array_event_date(Idx)
26177 ,p_transaction_date => l_array_transaction_date(Idx)
26178 ,p_reference_num_1 => l_array_reference_num_1(Idx)
26179 ,p_reference_num_2 => l_array_reference_num_2(Idx)
26180 ,p_reference_num_3 => l_array_reference_num_3(Idx)
26181 ,p_reference_num_4 => l_array_reference_num_4(Idx)
26182 ,p_reference_char_1 => l_array_reference_char_1(Idx)
26183 ,p_reference_char_2 => l_array_reference_char_2(Idx)
26184 ,p_reference_char_3 => l_array_reference_char_3(Idx)
26185 ,p_reference_char_4 => l_array_reference_char_4(Idx)
26186 ,p_reference_date_1 => l_array_reference_date_1(Idx)
26187 ,p_reference_date_2 => l_array_reference_date_2(Idx)
26188 ,p_reference_date_3 => l_array_reference_date_3(Idx)
26189 ,p_reference_date_4 => l_array_reference_date_4(Idx)
26190 ,p_event_created_by => l_array_event_created_by(Idx)
26191 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
26192 --
26193 END IF;
26194
26195
26196
26197 --
26198 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
26199
26200 l_acct_reversal_source := SUBSTR(NULL, 1,30);
26201
26202 IF l_continue_with_lines THEN
26203 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
26204 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
26205
26206 xla_accounting_err_pkg.build_message
26207 (p_appli_s_name => 'XLA'
26208 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
26209 ,p_token_1 => 'LINE_NUMBER'
26210 ,p_value_1 => l_array_extract_line_num(Idx)
26211 ,p_token_2 => 'PRODUCT_NAME'
26212 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
26213 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
26214 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
26215 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
26216
26217 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
26218 --
26219 -- following sets the accounting attributes needed to reverse
26220 -- accounting for a distributeion
26221 --
26222
26223 --
26224 -- 5217187
26225 --
26226 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
26227 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
26228 g_array_event(l_event_id).array_value_num('header_index'));
26229 --
26230 --
26231
26232 -- No reversal code generated
26233
26234 xla_ae_lines_pkg.SetAcctReversalAttrs
26235 (p_event_id => l_event_id
26236 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
26237 ,p_calculate_acctd_flag => l_calculate_acctd_flag
26238 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
26239 END IF;
26240
26241 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
26242 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
26243
26244 --
26245 AcctLineType_4 (
26246 p_application_id => p_application_id
26247 ,p_event_id => l_event_id
26248 ,p_calculate_acctd_flag => l_calculate_acctd_flag
26249 ,p_calculate_g_l_flag => l_calculate_g_l_flag
26250 ,p_actual_flag => l_actual_flag
26251 ,p_balance_type_code => l_balance_type_code
26252 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
26253
26254 , p_source_6 => l_array_source_6(Idx)
26255 , p_source_7 => l_array_source_7(Idx)
26256 , p_source_8 => l_array_source_8(Idx)
26257 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
26258 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
26259 , p_source_10 => l_array_source_10(Idx)
26260 , p_source_11 => l_array_source_11(Idx)
26261 , p_source_12 => l_array_source_12(Idx)
26262 , p_source_13 => l_array_source_13(Idx)
26263 , p_source_14 => l_array_source_14(Idx)
26264 , p_source_15 => l_array_source_15(Idx)
26265 );
26266 If(l_balance_type_code = 'A') THEN
26267 l_actual_gain_loss_ref := l_gain_or_loss_ref;
26268 END IF;
26269
26270 --
26271
26272 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
26273 -- or secondary ledger that has different currency with primary
26274 -- or alc that is calculated by sla
26275 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
26276 (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'))
26277
26278 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
26279 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
26280 AND (l_actual_flag = 'A')) THEN
26281 XLA_AE_LINES_PKG.CreateGainOrLossLines(
26282 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
26283 ,p_application_id => p_application_id
26284 ,p_amb_context_code => 'DEFAULT'
26285 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
26286 ,p_event_class_code => C_EVENT_CLASS_CODE
26287 ,p_event_type_code => C_EVENT_TYPE_CODE
26288
26289 ,p_gain_ccid => -1
26290 ,p_loss_ccid => -1
26291
26292 ,p_actual_flag => l_actual_flag
26293 ,p_enc_flag => null
26294 ,p_actual_g_l_ref => l_actual_gain_loss_ref
26295 ,p_enc_g_l_ref => null
26296 );
26297 END IF;
26298 END IF;
26299 END IF;
26300
26301 ELSE
26302 --
26303 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
26304 --
26305 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
26306 trace
26307 (p_msg => 'Trancaction revesal option is Y'
26308 ,p_level => C_LEVEL_STATEMENT
26309 ,p_module => l_log_module);
26310 END IF;
26311 END IF;
26312
26313 END LOOP;
26314 l_result := XLA_AE_LINES_PKG.InsertLines ;
26315 end loop;
26316 close line_cur;
26317
26318
26319 --
26320 -- insert headers into xla_ae_headers_gt table
26321 --
26322 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
26323
26324 -- insert into errors table here.
26325
26326 END LOOP;
26327
26328 --
26329 -- 4865292
26330 --
26331 -- Compare g_hdr_extract_count with event count in
26332 -- CreateHeadersAndLines.
26333 --
26334 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
26335
26336 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
26337 trace (p_msg => '# rows extracted from header extract objects '
26338 || ' (running total): '
26339 || g_hdr_extract_count
26340 ,p_level => C_LEVEL_STATEMENT
26341 ,p_module => l_log_module);
26342 END IF;
26343
26344 CLOSE header_cur;
26345 --
26346
26347 --
26348 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26349 trace
26350 (p_msg => 'END of EventType_36'
26351 ,p_level => C_LEVEL_PROCEDURE
26352 ,p_module => l_log_module);
26353 END IF;
26354 --
26355 RETURN l_result;
26356 EXCEPTION
26357 WHEN xla_exceptions_pkg.application_exception THEN
26358
26359 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
26360
26361
26362 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
26363
26364 RAISE;
26365
26366 WHEN NO_DATA_FOUND THEN
26367
26368 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
26369 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
26370
26371 FOR header_record IN header_cur
26372 LOOP
26373 l_array_header_events(header_record.event_id) := header_record.event_id;
26374 END LOOP;
26375
26376 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
26377 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
26378
26379 fnd_file.put_line(fnd_file.LOG, ' ');
26380 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
26381 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
26382 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
26383
26384 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
26385 LOOP
26386 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
26387 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
26388 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
26389 END IF;
26390 END LOOP;
26391
26392 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
26393 fnd_file.put_line(fnd_file.LOG, ' ');
26394
26395
26396 xla_exceptions_pkg.raise_message
26397 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_36');
26398
26399
26400 WHEN OTHERS THEN
26401 xla_exceptions_pkg.raise_message
26402 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_36');
26403 END EventType_36;
26404 --
26405
26406 ---------------------------------------
26407 --
26408 -- PRIVATE PROCEDURE
26409 -- insert_sources_37
26410 --
26411 ----------------------------------------
26412 --
26413 PROCEDURE insert_sources_37(
26414 p_target_ledger_id IN NUMBER
26415 , p_language IN VARCHAR2
26416 , p_sla_ledger_id IN NUMBER
26417 , p_pad_start_date IN DATE
26418 , p_pad_end_date IN DATE
26419 )
26420 IS
26421
26422 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LOG_PO_DEL_ADJ';
26423 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER';
26424 p_apps_owner VARCHAR2(30);
26425 l_log_module VARCHAR2(240);
26426 BEGIN
26427 IF g_log_enabled THEN
26428 l_log_module := C_DEFAULT_MODULE||'.insert_sources_37';
26429 END IF;
26430 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26431
26432 trace
26433 (p_msg => 'BEGIN of insert_sources_37'
26434 ,p_level => C_LEVEL_PROCEDURE
26435 ,p_module => l_log_module);
26436
26437 END IF;
26438
26439 -- select APPS owner
26440 SELECT oracle_username
26441 INTO p_apps_owner
26442 FROM fnd_oracle_userid
26443 WHERE read_only_flag = 'U'
26444 ;
26445
26446 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
26447 trace
26448 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
26449 ' - p_language = '||p_language||
26450 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
26451 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
26452 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
26453 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
26454 ,p_level => C_LEVEL_STATEMENT
26455 ,p_module => l_log_module);
26456 END IF;
26457
26458
26459 --
26460 INSERT INTO xla_diag_sources --hdr1
26461 (
26462 event_id
26463 , ledger_id
26464 , sla_ledger_id
26465 , description_language
26466 , object_name
26467 , object_type_code
26468 , line_number
26469 , source_application_id
26470 , source_type_code
26471 , source_code
26472 , source_value
26473 , source_meaning
26474 , created_by
26475 , creation_date
26476 , last_update_date
26477 , last_updated_by
26478 , last_update_login
26479 , program_update_date
26480 , program_application_id
26481 , program_id
26482 , request_id
26483 )
26484 SELECT
26485 event_id
26486 , p_target_ledger_id
26487 , p_sla_ledger_id
26488 , p_language
26489 , object_name
26490 , object_type_code
26491 , line_number
26492 , source_application_id
26493 , source_type_code
26494 , source_code
26495 , SUBSTR(source_value ,1,1996)
26496 , SUBSTR(source_meaning,1,200)
26497 , xla_environment_pkg.g_Usr_Id
26498 , TRUNC(SYSDATE)
26499 , TRUNC(SYSDATE)
26500 , xla_environment_pkg.g_Usr_Id
26501 , xla_environment_pkg.g_Login_Id
26502 , TRUNC(SYSDATE)
26503 , xla_environment_pkg.g_Prog_Appl_Id
26504 , xla_environment_pkg.g_Prog_Id
26505 , xla_environment_pkg.g_Req_Id
26506 FROM (
26507 SELECT xet.event_id event_id
26508 , 0 line_number
26509 , CASE r
26510 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
26511 WHEN 2 THEN 'CST_XLA_INV_SYSTEM_ITEMS_REF_V'
26512 WHEN 3 THEN 'CST_XLA_INV_REF_V'
26513 WHEN 4 THEN 'CST_XLA_INV_REF_V'
26514 WHEN 5 THEN 'CST_XLA_INV_TXN_TYPES_REF_V'
26515 WHEN 6 THEN 'CST_XLA_INV_HEADERS_V'
26516 WHEN 7 THEN 'PO_HEADERS_REF_V'
26517 WHEN 8 THEN 'CST_XLA_INV_ORG_PARAMS_REF_V'
26518 WHEN 9 THEN 'CST_XLA_INV_REF_V'
26519 WHEN 10 THEN 'CST_XLA_INV_REF_V'
26520 WHEN 11 THEN 'CST_XLA_INV_REF_V'
26521 WHEN 12 THEN 'CST_XLA_INV_REF_V'
26522 WHEN 13 THEN 'CST_XLA_INV_REF_V'
26523 WHEN 14 THEN 'PO_DISTS_REF_V'
26524 WHEN 15 THEN 'CST_XLA_INV_REF_V'
26525 WHEN 16 THEN 'CST_XLA_INV_REF_V'
26526 WHEN 17 THEN 'PSA_CST_XLA_UPG_V'
26527 WHEN 18 THEN 'PO_HEADERS_REF_V'
26528 WHEN 19 THEN 'PO_DISTS_REF_V'
26529 WHEN 20 THEN 'CST_XLA_INV_HEADERS_V'
26530
26531 ELSE null
26532 END object_name
26533 , CASE r
26534 WHEN 1 THEN 'HEADER'
26535 WHEN 2 THEN 'HEADER'
26536 WHEN 3 THEN 'HEADER'
26537 WHEN 4 THEN 'HEADER'
26538 WHEN 5 THEN 'HEADER'
26539 WHEN 6 THEN 'HEADER'
26540 WHEN 7 THEN 'HEADER'
26541 WHEN 8 THEN 'HEADER'
26542 WHEN 9 THEN 'HEADER'
26543 WHEN 10 THEN 'HEADER'
26544 WHEN 11 THEN 'HEADER'
26545 WHEN 12 THEN 'HEADER'
26546 WHEN 13 THEN 'HEADER'
26547 WHEN 14 THEN 'HEADER'
26548 WHEN 15 THEN 'HEADER'
26549 WHEN 16 THEN 'HEADER'
26550 WHEN 17 THEN 'HEADER'
26551 WHEN 18 THEN 'HEADER'
26552 WHEN 19 THEN 'HEADER'
26553 WHEN 20 THEN 'HEADER'
26554
26555 ELSE null
26556 END object_type_code
26557 , CASE r
26558 WHEN 1 THEN '707'
26559 WHEN 2 THEN '707'
26560 WHEN 3 THEN '707'
26561 WHEN 4 THEN '707'
26562 WHEN 5 THEN '707'
26563 WHEN 6 THEN '707'
26564 WHEN 7 THEN '201'
26565 WHEN 8 THEN '707'
26566 WHEN 9 THEN '707'
26567 WHEN 10 THEN '707'
26568 WHEN 11 THEN '707'
26569 WHEN 12 THEN '707'
26570 WHEN 13 THEN '707'
26571 WHEN 14 THEN '201'
26572 WHEN 15 THEN '707'
26573 WHEN 16 THEN '707'
26574 WHEN 17 THEN '707'
26575 WHEN 18 THEN '201'
26576 WHEN 19 THEN '201'
26577 WHEN 20 THEN '707'
26578
26579 ELSE null
26580 END source_application_id
26581 , 'S' source_type_code
26582 , CASE r
26583 WHEN 1 THEN 'TRANSACTION_ID'
26584 WHEN 2 THEN 'ITEM_CONCATENATED_SEGMENTS'
26585 WHEN 3 THEN 'TRANSACTION_QUANTITY'
26586 WHEN 4 THEN 'TRANSACTION_UOM'
26587 WHEN 5 THEN 'INV_TXN_TYPE_DESCRIPTION'
26588 WHEN 6 THEN 'DISTRIBUTION_TYPE'
26589 WHEN 7 THEN 'PURCH_ENCUMBRANCE_FLAG'
26590 WHEN 8 THEN 'ENCUMBRANCE_REVERSAL_FLAG'
26591 WHEN 9 THEN 'APPLIED_TO_APPL_ID'
26592 WHEN 10 THEN 'APPLIED_TO_DIST_LINK_TYPE'
26593 WHEN 11 THEN 'APPLIED_TO_ENTITY_CODE'
26594 WHEN 12 THEN 'TXN_PO_DISTRIBUTION_ID'
26595 WHEN 13 THEN 'APPLIED_TO_PO_DOC_ID'
26596 WHEN 14 THEN 'PO_BUDGET_ACCOUNT'
26597 WHEN 15 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
26598 WHEN 16 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
26599 WHEN 17 THEN 'CST_ENCUM_UPG_OPTION'
26600 WHEN 18 THEN 'PURCH_ENCUMBRANCE_TYPE_ID'
26601 WHEN 19 THEN 'RESERVED_FLAG'
26602 WHEN 20 THEN 'TRANSFER_TO_GL_INDICATOR'
26603
26604 ELSE null
26605 END source_code
26606 , CASE r
26607 WHEN 1 THEN TO_CHAR(h1.TRANSACTION_ID)
26608 WHEN 2 THEN TO_CHAR(h5.ITEM_CONCATENATED_SEGMENTS)
26609 WHEN 3 THEN TO_CHAR(h4.TRANSACTION_QUANTITY)
26610 WHEN 4 THEN TO_CHAR(h4.TRANSACTION_UOM)
26611 WHEN 5 THEN TO_CHAR(h6.INV_TXN_TYPE_DESCRIPTION)
26612 WHEN 6 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
26613 WHEN 7 THEN TO_CHAR(h8.PURCH_ENCUMBRANCE_FLAG)
26614 WHEN 8 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_FLAG)
26615 WHEN 9 THEN TO_CHAR(h4.APPLIED_TO_APPL_ID)
26616 WHEN 10 THEN TO_CHAR(h4.APPLIED_TO_DIST_LINK_TYPE)
26617 WHEN 11 THEN TO_CHAR(h4.APPLIED_TO_ENTITY_CODE)
26618 WHEN 12 THEN TO_CHAR(h4.TXN_PO_DISTRIBUTION_ID)
26619 WHEN 13 THEN TO_CHAR(h4.APPLIED_TO_PO_DOC_ID)
26620 WHEN 14 THEN TO_CHAR(h7.PO_BUDGET_ACCOUNT)
26621 WHEN 15 THEN TO_CHAR(h4.ENCUM_REVERSAL_AMOUNT_ENTERED)
26622 WHEN 16 THEN TO_CHAR(h4.ENCUMBRANCE_REVERSAL_AMOUNT)
26623 WHEN 17 THEN TO_CHAR(h9.CST_ENCUM_UPG_OPTION)
26624 WHEN 18 THEN TO_CHAR(h8.PURCH_ENCUMBRANCE_TYPE_ID)
26625 WHEN 19 THEN TO_CHAR(h7.RESERVED_FLAG)
26626 WHEN 20 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
26627
26628 ELSE null
26629 END source_value
26630 , CASE r
26631 WHEN 6 THEN fvl9.meaning
26632 WHEN 20 THEN fvl42.meaning
26633
26634 ELSE null
26635 END source_meaning
26636 FROM xla_events_gt xet
26637 , CST_XLA_INV_HEADERS_V h1
26638 , CST_XLA_INV_ORG_PARAMS_REF_V h3
26639 , CST_XLA_INV_REF_V h4
26640 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
26641 , CST_XLA_INV_TXN_TYPES_REF_V h6
26642 , PO_DISTS_REF_V h7
26643 , PO_HEADERS_REF_V h8
26644 , PSA_CST_XLA_UPG_V h9
26645 , fnd_lookup_values fvl9
26646 , fnd_lookup_values fvl42
26647 ,(select rownum r from all_objects where rownum <= 20 and owner = p_apps_owner)
26648 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
26649 AND xet.event_type_code = C_EVENT_TYPE_CODE
26650 AND h1.event_id = xet.event_id
26651 AND h3.inv_organization_id (+) = h1.organization_id AND h4.ref_transaction_id = h1.transaction_id AND h5.inventory_item_id (+) = h1.inventory_item_id and h5.organization_id (+) = h1.organization_id AND h6.inv_transaction_type_id = h1.transaction_type_id AND h4.txn_po_header_id = h7.po_header_id (+) and h4.txn_po_distribution_id = h7.po_distribution_id (+) AND h4.txn_po_header_id = h8.po_header_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) =
26652 'CST_DISTRIBUTION_TYPE'
26653 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
26654 AND fvl9.view_application_id(+) = 700
26655 AND fvl9.language(+) = USERENV('LANG')
26656 AND fvl42.lookup_type(+) = 'YES_NO'
26657 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
26658 AND fvl42.view_application_id(+) = 0
26659 AND fvl42.language(+) = USERENV('LANG')
26660
26661 )
26662 ;
26663 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
26664
26665 trace
26666 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
26667 ,p_level => C_LEVEL_STATEMENT
26668 ,p_module => l_log_module);
26669
26670 END IF;
26671 --
26672
26673
26674
26675 --
26676 INSERT INTO xla_diag_sources --line1
26677 (
26678 event_id
26679 , ledger_id
26680 , sla_ledger_id
26681 , description_language
26682 , object_name
26683 , object_type_code
26684 , line_number
26685 , source_application_id
26686 , source_type_code
26687 , source_code
26688 , source_value
26689 , source_meaning
26690 , created_by
26691 , creation_date
26692 , last_update_date
26693 , last_updated_by
26694 , last_update_login
26695 , program_update_date
26696 , program_application_id
26697 , program_id
26698 , request_id
26699 )
26700 SELECT event_id
26701 , p_target_ledger_id
26702 , p_sla_ledger_id
26703 , p_language
26704 , object_name
26705 , object_type_code
26706 , line_number
26707 , source_application_id
26708 , source_type_code
26709 , source_code
26710 , SUBSTR(source_value,1,1996)
26711 , SUBSTR(source_meaning,1,200)
26712 , xla_environment_pkg.g_Usr_Id
26713 , TRUNC(SYSDATE)
26714 , TRUNC(SYSDATE)
26715 , xla_environment_pkg.g_Usr_Id
26716 , xla_environment_pkg.g_Login_Id
26717 , TRUNC(SYSDATE)
26718 , xla_environment_pkg.g_Prog_Appl_Id
26719 , xla_environment_pkg.g_Prog_Id
26720 , xla_environment_pkg.g_Req_Id
26721 FROM (
26722 SELECT xet.event_id event_id
26723 , l2.line_number line_number
26724 , CASE r
26725 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
26726 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
26727 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
26728
26729 ELSE null
26730 END object_name
26731 , CASE r
26732 WHEN 1 THEN 'LINE'
26733 WHEN 2 THEN 'LINE'
26734 WHEN 3 THEN 'LINE'
26735
26736 ELSE null
26737 END object_type_code
26738 , CASE r
26739 WHEN 1 THEN '707'
26740 WHEN 2 THEN '707'
26741 WHEN 3 THEN '707'
26742
26743 ELSE null
26744 END source_application_id
26745 , 'S' source_type_code
26746 , CASE r
26747 WHEN 1 THEN 'ACCOUNTING_LINE_TYPE_CODE'
26748 WHEN 2 THEN 'DISTRIBUTION_IDENTIFIER'
26749 WHEN 3 THEN 'CURRENCY_CODE'
26750
26751 ELSE null
26752 END source_code
26753 , CASE r
26754 WHEN 1 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
26755 WHEN 2 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
26756 WHEN 3 THEN TO_CHAR(l2.CURRENCY_CODE)
26757
26758 ELSE null
26759 END source_value
26760 , null source_meaning
26761 FROM xla_events_gt xet
26762 , CST_XLA_INV_LINES_V l2
26763 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
26764 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
26765 AND xet.event_type_code = C_EVENT_TYPE_CODE
26766 AND l2.event_id = xet.event_id
26767
26768 )
26769 ;
26770 --
26771 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
26772
26773 trace
26774 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
26775 ,p_level => C_LEVEL_STATEMENT
26776 ,p_module => l_log_module);
26777
26778 END IF;
26779
26780
26781 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26782 trace
26783 (p_msg => 'END of insert_sources_37'
26784 ,p_level => C_LEVEL_PROCEDURE
26785 ,p_module => l_log_module);
26786 END IF;
26787 EXCEPTION
26788 WHEN xla_exceptions_pkg.application_exception THEN
26789 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
26790 trace
26791 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
26792 ,p_level => C_LEVEL_EXCEPTION
26793 ,p_module => l_log_module);
26794 END IF;
26795 RAISE;
26796 WHEN OTHERS THEN
26797 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
26798 trace
26799 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
26800 ,p_level => C_LEVEL_EXCEPTION
26801 ,p_module => l_log_module);
26802 END IF;
26803 xla_exceptions_pkg.raise_message
26804 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_37');
26805 END insert_sources_37;
26806 --
26807
26808 ---------------------------------------
26809 --
26810 -- PRIVATE FUNCTION
26811 -- EventType_37
26812 --
26813 ----------------------------------------
26814 --
26815 FUNCTION EventType_37
26816 (p_application_id IN NUMBER
26817 ,p_base_ledger_id IN NUMBER
26818 ,p_target_ledger_id IN NUMBER
26819 ,p_language IN VARCHAR2
26820 ,p_currency_code IN VARCHAR2
26821 ,p_sla_ledger_id IN NUMBER
26822 ,p_pad_start_date IN DATE
26823 ,p_pad_end_date IN DATE
26824 ,p_primary_ledger_id IN NUMBER)
26825 RETURN BOOLEAN IS
26826 --
26827 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LOG_PO_DEL_ADJ';
26828 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER';
26829
26830 l_calculate_acctd_flag VARCHAR2(1) :='N';
26831 l_calculate_g_l_flag VARCHAR2(1) :='N';
26832 --
26833 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
26834 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
26835 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
26836 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
26837 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
26838 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
26839 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
26840 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
26841 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
26842 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
26843 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
26844 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
26845 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
26846 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
26847 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
26848 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
26849 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
26850 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
26851 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
26852 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
26853 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
26854 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
26855 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
26856 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
26857 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
26858 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
26859
26860 l_event_id NUMBER;
26861 l_previous_event_id NUMBER;
26862 l_first_event_id NUMBER;
26863 l_last_event_id NUMBER;
26864
26865 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
26866 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26867 --
26868 --
26869 l_result BOOLEAN := TRUE;
26870 l_rows NUMBER := 1000;
26871 l_event_type_name VARCHAR2(80) := 'Logical PO Delivery Adjustment';
26872 l_event_class_name VARCHAR2(80) := 'PO Delivery into Inventory';
26873 l_description VARCHAR2(4000);
26874 l_transaction_reversal NUMBER;
26875 l_ae_header_id NUMBER;
26876 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
26877 l_log_module VARCHAR2(240);
26878 --
26879 l_acct_reversal_source VARCHAR2(30);
26880 l_trx_reversal_source VARCHAR2(30);
26881
26882 l_continue_with_lines BOOLEAN := TRUE;
26883 --
26884 l_acc_rev_gl_date_source DATE; -- 4262811
26885 --
26886 type t_array_event_id is table of number index by binary_integer;
26887
26888 l_rec_array_event t_rec_array_event;
26889 l_null_rec_array_event t_rec_array_event;
26890 l_array_ae_header_id xla_number_array_type;
26891 l_actual_flag VARCHAR2(1) := NULL;
26892 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
26893 l_balance_type_code VARCHAR2(1) :=NULL;
26894 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
26895
26896 --
26897 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
26898 --
26899
26900 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSACTION_ID%TYPE INDEX BY BINARY_INTEGER;
26901 TYPE t_array_source_2 IS TABLE OF CST_XLA_INV_SYSTEM_ITEMS_REF_V.ITEM_CONCATENATED_SEGMENTS%TYPE INDEX BY BINARY_INTEGER;
26902 TYPE t_array_source_3 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_QUANTITY%TYPE INDEX BY BINARY_INTEGER;
26903 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_UOM%TYPE INDEX BY BINARY_INTEGER;
26904 TYPE t_array_source_5 IS TABLE OF CST_XLA_INV_TXN_TYPES_REF_V.INV_TXN_TYPE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
26905 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
26906 TYPE t_array_source_16 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
26907 TYPE t_array_source_17 IS TABLE OF CST_XLA_INV_ORG_PARAMS_REF_V.ENCUMBRANCE_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
26908 TYPE t_array_source_19 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
26909 TYPE t_array_source_20 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
26910 TYPE t_array_source_21 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
26911 TYPE t_array_source_22 IS TABLE OF CST_XLA_INV_REF_V.TXN_PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
26912 TYPE t_array_source_23 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
26913 TYPE t_array_source_24 IS TABLE OF PO_DISTS_REF_V.PO_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
26914 TYPE t_array_source_25 IS TABLE OF CST_XLA_INV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
26915 TYPE t_array_source_26 IS TABLE OF CST_XLA_INV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
26916 TYPE t_array_source_27 IS TABLE OF PSA_CST_XLA_UPG_V.CST_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
26917 TYPE t_array_source_28 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
26918 TYPE t_array_source_31 IS TABLE OF PO_DISTS_REF_V.RESERVED_FLAG%TYPE INDEX BY BINARY_INTEGER;
26919 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
26920
26921 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
26922 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
26923 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
26924
26925 l_array_source_1 t_array_source_1;
26926 l_array_source_2 t_array_source_2;
26927 l_array_source_3 t_array_source_3;
26928 l_array_source_4 t_array_source_4;
26929 l_array_source_5 t_array_source_5;
26930 l_array_source_9 t_array_source_9;
26931 l_array_source_9_meaning t_array_lookup_meaning;
26932 l_array_source_16 t_array_source_16;
26933 l_array_source_17 t_array_source_17;
26934 l_array_source_19 t_array_source_19;
26935 l_array_source_20 t_array_source_20;
26936 l_array_source_21 t_array_source_21;
26937 l_array_source_22 t_array_source_22;
26938 l_array_source_23 t_array_source_23;
26939 l_array_source_24 t_array_source_24;
26940 l_array_source_25 t_array_source_25;
26941 l_array_source_26 t_array_source_26;
26942 l_array_source_27 t_array_source_27;
26943 l_array_source_28 t_array_source_28;
26944 l_array_source_31 t_array_source_31;
26945 l_array_source_42 t_array_source_42;
26946 l_array_source_42_meaning t_array_lookup_meaning;
26947
26948 l_array_source_7 t_array_source_7;
26949 l_array_source_8 t_array_source_8;
26950 l_array_source_11 t_array_source_11;
26951
26952 --
26953 CURSOR header_cur
26954 IS
26955 SELECT /*+ leading(xet) cardinality(xet,1) */
26956 -- Event Type Code: LOG_PO_DEL_ADJ
26957 -- Event Class Code: PURCHASE_ORDER
26958 xet.entity_id
26959 , xet.legal_entity_id
26960 , xet.entity_code
26961 , xet.transaction_number
26962 , xet.event_id
26963 , xet.event_class_code
26964 , xet.event_type_code
26965 , xet.event_number
26966 , xet.event_date
26967 , xet.transaction_date
26968 , xet.reference_num_1
26969 , xet.reference_num_2
26970 , xet.reference_num_3
26971 , xet.reference_num_4
26972 , xet.reference_char_1
26973 , xet.reference_char_2
26974 , xet.reference_char_3
26975 , xet.reference_char_4
26976 , xet.reference_date_1
26977 , xet.reference_date_2
26978 , xet.reference_date_3
26979 , xet.reference_date_4
26980 , xet.event_created_by
26981 , xet.budgetary_control_flag
26982 , h1.TRANSACTION_ID source_1
26983 , h5.ITEM_CONCATENATED_SEGMENTS source_2
26984 , h4.TRANSACTION_QUANTITY source_3
26985 , h4.TRANSACTION_UOM source_4
26986 , h6.INV_TXN_TYPE_DESCRIPTION source_5
26987 , h1.DISTRIBUTION_TYPE source_9
26988 , fvl9.meaning source_9_meaning
26989 , h8.PURCH_ENCUMBRANCE_FLAG source_16
26990 , h3.ENCUMBRANCE_REVERSAL_FLAG source_17
26991 , h4.APPLIED_TO_APPL_ID source_19
26992 , h4.APPLIED_TO_DIST_LINK_TYPE source_20
26993 , h4.APPLIED_TO_ENTITY_CODE source_21
26994 , h4.TXN_PO_DISTRIBUTION_ID source_22
26995 , h4.APPLIED_TO_PO_DOC_ID source_23
26996 , h7.PO_BUDGET_ACCOUNT source_24
26997 , h4.ENCUM_REVERSAL_AMOUNT_ENTERED source_25
26998 , h4.ENCUMBRANCE_REVERSAL_AMOUNT source_26
26999 , h9.CST_ENCUM_UPG_OPTION source_27
27000 , h8.PURCH_ENCUMBRANCE_TYPE_ID source_28
27001 , h7.RESERVED_FLAG source_31
27002 , h1.TRANSFER_TO_GL_INDICATOR source_42
27003 , fvl42.meaning source_42_meaning
27004 FROM xla_events_gt xet
27005 , CST_XLA_INV_HEADERS_V h1
27006 , CST_XLA_INV_ORG_PARAMS_REF_V h3
27007 , CST_XLA_INV_REF_V h4
27008 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
27009 , CST_XLA_INV_TXN_TYPES_REF_V h6
27010 , PO_DISTS_REF_V h7
27011 , PO_HEADERS_REF_V h8
27012 , PSA_CST_XLA_UPG_V h9
27013 , fnd_lookup_values fvl9
27014 , fnd_lookup_values fvl42
27015 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
27016 and xet.event_type_code = C_EVENT_TYPE_CODE
27017 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
27018 AND h3.INV_ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h4.ref_transaction_id = h1.transaction_id AND h5.INVENTORY_ITEM_ID (+) = h1.INVENTORY_ITEM_ID AND h5.ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h6.INV_TRANSACTION_TYPE_ID = h1.TRANSACTION_TYPE_ID AND h4.txn_po_header_id = h7.po_header_id (+) AND h4.txn_po_distribution_id = h7.po_distribution_id (+) AND h4.txn_po_header_id = h8.po_header_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) =
27019 'CST_DISTRIBUTION_TYPE'
27020 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
27021 AND fvl9.view_application_id(+) = 700
27022 AND fvl9.language(+) = USERENV('LANG')
27023 AND fvl42.lookup_type(+) = 'YES_NO'
27024 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
27025 AND fvl42.view_application_id(+) = 0
27026 AND fvl42.language(+) = USERENV('LANG')
27027
27028 ORDER BY event_id
27029 ;
27030
27031
27032 --
27033 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
27034 IS
27035 SELECT /*+ leading(xet) cardinality(xet,1) */
27036 -- Event Type Code: LOG_PO_DEL_ADJ
27037 -- Event Class Code: PURCHASE_ORDER
27038 xet.entity_id
27039 ,xet.legal_entity_id
27040 ,xet.entity_code
27041 ,xet.transaction_number
27042 ,xet.event_id
27043 ,xet.event_class_code
27044 ,xet.event_type_code
27045 ,xet.event_number
27046 ,xet.event_date
27047 ,xet.transaction_date
27048 ,xet.reference_num_1
27049 ,xet.reference_num_2
27050 ,xet.reference_num_3
27051 ,xet.reference_num_4
27052 ,xet.reference_char_1
27053 ,xet.reference_char_2
27054 ,xet.reference_char_3
27055 ,xet.reference_char_4
27056 ,xet.reference_date_1
27057 ,xet.reference_date_2
27058 ,xet.reference_date_3
27059 ,xet.reference_date_4
27060 ,xet.event_created_by
27061 ,xet.budgetary_control_flag , l2.LINE_NUMBER
27062 , l2.ACCOUNTING_LINE_TYPE_CODE source_7
27063 , l2.DISTRIBUTION_IDENTIFIER source_8
27064 , l2.CURRENCY_CODE source_11
27065 FROM xla_events_gt xet
27066 , CST_XLA_INV_LINES_V l2
27067 WHERE xet.event_id between x_first_event_id and x_last_event_id
27068 and xet.event_date between p_pad_start_date and p_pad_end_date
27069 and xet.event_type_code = C_EVENT_TYPE_CODE
27070 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
27071 ;
27072
27073 --
27074 BEGIN
27075 IF g_log_enabled THEN
27076 l_log_module := C_DEFAULT_MODULE||'.EventType_37';
27077 END IF;
27078 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27079 trace
27080 (p_msg => 'BEGIN of EventType_37'
27081 ,p_level => C_LEVEL_PROCEDURE
27082 ,p_module => l_log_module);
27083 END IF;
27084
27085 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
27086 trace
27087 (p_msg => 'p_application_id = '||p_application_id||
27088 ' - p_base_ledger_id = '||p_base_ledger_id||
27089 ' - p_target_ledger_id = '||p_target_ledger_id||
27090 ' - p_language = '||p_language||
27091 ' - p_currency_code = '||p_currency_code||
27092 ' - p_sla_ledger_id = '||p_sla_ledger_id
27093 ,p_level => C_LEVEL_STATEMENT
27094 ,p_module => l_log_module);
27095 END IF;
27096 --
27097 -- initialze arrays
27098 --
27099 g_array_event.DELETE;
27100 l_rec_array_event := l_null_rec_array_event;
27101 --
27102 --------------------------------------
27103 -- 4262811 Initialze MPA Line Number
27104 --------------------------------------
27105 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
27106
27107 --
27108
27109 --
27110 OPEN header_cur;
27111 --
27112 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
27113 trace
27114 (p_msg => 'SQL - FETCH header_cur'
27115 ,p_level => C_LEVEL_STATEMENT
27116 ,p_module => l_log_module);
27117 END IF;
27118 --
27119 LOOP
27120 FETCH header_cur BULK COLLECT INTO
27121 l_array_entity_id
27122 , l_array_legal_entity_id
27123 , l_array_entity_code
27124 , l_array_transaction_num
27125 , l_array_event_id
27126 , l_array_class_code
27127 , l_array_event_type
27128 , l_array_event_number
27129 , l_array_event_date
27130 , l_array_transaction_date
27131 , l_array_reference_num_1
27132 , l_array_reference_num_2
27133 , l_array_reference_num_3
27134 , l_array_reference_num_4
27135 , l_array_reference_char_1
27136 , l_array_reference_char_2
27137 , l_array_reference_char_3
27138 , l_array_reference_char_4
27139 , l_array_reference_date_1
27140 , l_array_reference_date_2
27141 , l_array_reference_date_3
27142 , l_array_reference_date_4
27143 , l_array_event_created_by
27144 , l_array_budgetary_control_flag
27145 , l_array_source_1
27146 , l_array_source_2
27147 , l_array_source_3
27148 , l_array_source_4
27149 , l_array_source_5
27150 , l_array_source_9
27151 , l_array_source_9_meaning
27152 , l_array_source_16
27153 , l_array_source_17
27154 , l_array_source_19
27155 , l_array_source_20
27156 , l_array_source_21
27157 , l_array_source_22
27158 , l_array_source_23
27159 , l_array_source_24
27160 , l_array_source_25
27161 , l_array_source_26
27162 , l_array_source_27
27163 , l_array_source_28
27164 , l_array_source_31
27165 , l_array_source_42
27166 , l_array_source_42_meaning
27167 LIMIT l_rows;
27168 --
27169 IF (C_LEVEL_EVENT >= g_log_level) THEN
27170 trace
27171 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
27172 ,p_level => C_LEVEL_EVENT
27173 ,p_module => l_log_module);
27174 END IF;
27175 --
27176 EXIT WHEN l_array_entity_id.COUNT = 0;
27177
27178 -- initialize arrays
27179 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
27180 XLA_AE_LINES_PKG.g_rec_lines := NULL;
27181
27182 --
27183 -- Bug 4458708
27184 --
27185 XLA_AE_LINES_PKG.g_LineNumber := 0;
27186
27187
27188 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
27189 g_last_hdr_idx := l_array_event_id.LAST;
27190 --
27191 -- loop for the headers. Each iteration is for each header extract row
27192 -- fetched in header cursor
27193 --
27194 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
27195
27196 --
27197 -- set event info as cache for other routines to refer event attributes
27198 --
27199 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
27200 (p_application_id => p_application_id
27201 ,p_primary_ledger_id => p_primary_ledger_id
27202 ,p_base_ledger_id => p_base_ledger_id
27203 ,p_target_ledger_id => p_target_ledger_id
27204 ,p_entity_id => l_array_entity_id(hdr_idx)
27205 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
27206 ,p_entity_code => l_array_entity_code(hdr_idx)
27207 ,p_transaction_num => l_array_transaction_num(hdr_idx)
27208 ,p_event_id => l_array_event_id(hdr_idx)
27209 ,p_event_class_code => l_array_class_code(hdr_idx)
27210 ,p_event_type_code => l_array_event_type(hdr_idx)
27211 ,p_event_number => l_array_event_number(hdr_idx)
27212 ,p_event_date => l_array_event_date(hdr_idx)
27213 ,p_transaction_date => l_array_transaction_date(hdr_idx)
27214 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
27215 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
27216 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
27217 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
27218 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
27219 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
27220 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
27221 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
27222 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
27223 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
27224 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
27225 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
27226 ,p_event_created_by => l_array_event_created_by(hdr_idx)
27227 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
27228
27229 --
27230 -- set the status of entry to C_VALID (0)
27231 --
27232 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
27233
27234 --
27235 -- initialize a row for ae header
27236 --
27237 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
27238
27239 l_event_id := l_array_event_id(hdr_idx);
27240
27241 --
27242 -- storing the hdr_idx for event. May be used by line cursor.
27243 --
27244 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
27245
27246 --
27247 -- store sources from header extract. This can be improved to
27248 -- store only those sources from header extract that may be used in lines
27249 --
27250
27251 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
27252 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
27253 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
27254 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
27255 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
27256 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
27257 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
27258 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
27259 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
27260 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
27261 g_array_event(l_event_id).array_value_char('source_20') := l_array_source_20(hdr_idx);
27262 g_array_event(l_event_id).array_value_char('source_21') := l_array_source_21(hdr_idx);
27263 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
27264 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
27265 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
27266 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
27267 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
27268 g_array_event(l_event_id).array_value_char('source_27') := l_array_source_27(hdr_idx);
27269 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
27270 g_array_event(l_event_id).array_value_char('source_31') := l_array_source_31(hdr_idx);
27271 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
27272 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
27273
27274 --
27275 -- initilaize the status of ae headers for diffrent balance types
27276 -- the status is initialised to C_NOT_CREATED (2)
27277 --
27278 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
27279 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
27280 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
27281
27282 --
27283 -- call api to validate and store accounting attributes for header
27284 --
27285
27286 ------------------------------------------------------------
27287 -- Accrual Reversal : to get date for Standard Source (NONE)
27288 ------------------------------------------------------------
27289 l_acc_rev_gl_date_source := NULL;
27290
27291 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
27292 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_28');
27293 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
27294 l_rec_acct_attrs.array_date_value(2) :=
27295 xla_ae_sources_pkg.GetSystemSourceDate(
27296 p_source_code => 'XLA_REFERENCE_DATE_1'
27297 , p_source_type_code => 'Y'
27298 , p_source_application_id => 602
27299 );
27300 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
27301 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_42');
27302
27303
27304 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
27305
27306 XLA_AE_HEADER_PKG.SetJeCategoryName;
27307
27308 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
27309 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
27310 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
27311 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
27312 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
27313
27314
27315 --
27316 xla_ae_header_pkg.SetHdrDescription(
27317 p_description => Description_1 (
27318 p_application_id => p_application_id
27319 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
27320 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
27321 , p_source_3 => g_array_event(l_event_id).array_value_num('source_3')
27322 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
27323 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
27324 )
27325 );
27326 --
27327
27328 -- No header level analytical criteria
27329
27330 --
27331 --accounting attribute enhancement, bug 3612931
27332 --
27333 l_trx_reversal_source := SUBSTR(NULL, 1,30);
27334
27335 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
27336 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
27337
27338 xla_accounting_err_pkg.build_message
27339 (p_appli_s_name => 'XLA'
27340 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
27341 ,p_token_1 => 'ACCT_ATTR_NAME'
27342 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
27343 ,p_token_2 => 'PRODUCT_NAME'
27344 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
27345 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
27346 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
27347 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
27348
27349 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
27350 --
27351 -- following sets the accounting attributes needed to reverse
27352 -- accounting for a distributeion
27353 --
27354 xla_ae_lines_pkg.SetTrxReversalAttrs
27355 (p_event_id => l_event_id
27356 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
27357 ,p_trx_reversal_source => l_trx_reversal_source);
27358
27359 END IF;
27360
27361
27362 ----------------------------------------------------------------
27363 -- 4262811 - update the header statuses to invalid in need be
27364 ----------------------------------------------------------------
27365 --
27366 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
27367
27368
27369 -----------------------------------------------
27370 -- No accrual reversal for the event class/type
27371 -----------------------------------------------
27372 ----------------------------------------------------------------
27373
27374 --
27375 -- this ends the header loop iteration for one bulk fetch
27376 --
27377 END LOOP;
27378
27379 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
27380 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
27381
27382 --
27383 -- insert dummy rows into lines gt table that were created due to
27384 -- transaction reversals
27385 --
27386 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
27387 l_result := XLA_AE_LINES_PKG.InsertLines;
27388 END IF;
27389
27390 --
27391 -- reset the temp_line_num for each set of events fetched from header
27392 -- cursor rather than doing it for each new event in line cursor
27393 -- Bug 3939231
27394 --
27395 xla_ae_lines_pkg.g_temp_line_num := 0;
27396
27397
27398
27399 --
27400 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
27401 --
27402 --
27403 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
27404
27405 trace
27406 (p_msg => 'SQL - FETCH line_cur'
27407 ,p_level => C_LEVEL_STATEMENT
27408 ,p_module => l_log_module);
27409
27410 END IF;
27411 --
27412 --
27413 LOOP
27414 --
27415 FETCH line_cur BULK COLLECT INTO
27416 l_array_entity_id
27417 , l_array_legal_entity_id
27418 , l_array_entity_code
27419 , l_array_transaction_num
27420 , l_array_event_id
27421 , l_array_class_code
27422 , l_array_event_type
27423 , l_array_event_number
27424 , l_array_event_date
27425 , l_array_transaction_date
27426 , l_array_reference_num_1
27427 , l_array_reference_num_2
27428 , l_array_reference_num_3
27429 , l_array_reference_num_4
27430 , l_array_reference_char_1
27431 , l_array_reference_char_2
27432 , l_array_reference_char_3
27433 , l_array_reference_char_4
27434 , l_array_reference_date_1
27435 , l_array_reference_date_2
27436 , l_array_reference_date_3
27437 , l_array_reference_date_4
27438 , l_array_event_created_by
27439 , l_array_budgetary_control_flag
27440 , l_array_extract_line_num
27441 , l_array_source_7
27442 , l_array_source_8
27443 , l_array_source_11
27444 LIMIT l_rows;
27445
27446 --
27447 IF (C_LEVEL_EVENT >= g_log_level) THEN
27448 trace
27449 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
27450 ,p_level => C_LEVEL_EVENT
27451 ,p_module => l_log_module);
27452 END IF;
27453 --
27454 EXIT WHEN l_array_entity_id.count = 0;
27455
27456 XLA_AE_LINES_PKG.g_rec_lines := null;
27457
27458 --
27459 -- Bug 4458708
27460 --
27461 XLA_AE_LINES_PKG.g_LineNumber := 0;
27462 --
27463 --
27464
27465 FOR Idx IN 1..l_array_event_id.count LOOP
27466 --
27467 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
27468 --
27469 l_event_id := l_array_event_id(idx); -- 5648433
27470
27471 --
27472 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
27473 --
27474
27475 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
27476 (g_array_event(l_event_id).array_value_num('header_index'))
27477 ,'N'
27478 ) <> 'Y'
27479 THEN
27480 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
27481 trace
27482 (p_msg => 'Trancaction revesal option is not Y '
27483 ,p_level => C_LEVEL_STATEMENT
27484 ,p_module => l_log_module);
27485 END IF;
27486
27487 --
27488 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
27489 --
27490 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
27491 --
27492 -- set event info as cache for other routines to refer event attributes
27493 --
27494
27495 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
27496 l_previous_event_id := l_event_id;
27497
27498 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
27499 (p_application_id => p_application_id
27500 ,p_primary_ledger_id => p_primary_ledger_id
27501 ,p_base_ledger_id => p_base_ledger_id
27502 ,p_target_ledger_id => p_target_ledger_id
27503 ,p_entity_id => l_array_entity_id(Idx)
27504 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
27505 ,p_entity_code => l_array_entity_code(Idx)
27506 ,p_transaction_num => l_array_transaction_num(Idx)
27507 ,p_event_id => l_array_event_id(Idx)
27508 ,p_event_class_code => l_array_class_code(Idx)
27509 ,p_event_type_code => l_array_event_type(Idx)
27510 ,p_event_number => l_array_event_number(Idx)
27511 ,p_event_date => l_array_event_date(Idx)
27512 ,p_transaction_date => l_array_transaction_date(Idx)
27513 ,p_reference_num_1 => l_array_reference_num_1(Idx)
27514 ,p_reference_num_2 => l_array_reference_num_2(Idx)
27515 ,p_reference_num_3 => l_array_reference_num_3(Idx)
27516 ,p_reference_num_4 => l_array_reference_num_4(Idx)
27517 ,p_reference_char_1 => l_array_reference_char_1(Idx)
27518 ,p_reference_char_2 => l_array_reference_char_2(Idx)
27519 ,p_reference_char_3 => l_array_reference_char_3(Idx)
27520 ,p_reference_char_4 => l_array_reference_char_4(Idx)
27521 ,p_reference_date_1 => l_array_reference_date_1(Idx)
27522 ,p_reference_date_2 => l_array_reference_date_2(Idx)
27523 ,p_reference_date_3 => l_array_reference_date_3(Idx)
27524 ,p_reference_date_4 => l_array_reference_date_4(Idx)
27525 ,p_event_created_by => l_array_event_created_by(Idx)
27526 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
27527 --
27528 END IF;
27529
27530
27531
27532 --
27533 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
27534
27535 l_acct_reversal_source := SUBSTR(NULL, 1,30);
27536
27537 IF l_continue_with_lines THEN
27538 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
27539 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
27540
27541 xla_accounting_err_pkg.build_message
27542 (p_appli_s_name => 'XLA'
27543 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
27544 ,p_token_1 => 'LINE_NUMBER'
27545 ,p_value_1 => l_array_extract_line_num(Idx)
27546 ,p_token_2 => 'PRODUCT_NAME'
27547 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
27548 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
27549 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
27550 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
27551
27552 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
27553 --
27554 -- following sets the accounting attributes needed to reverse
27555 -- accounting for a distributeion
27556 --
27557
27558 --
27559 -- 5217187
27560 --
27561 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
27562 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
27563 g_array_event(l_event_id).array_value_num('header_index'));
27564 --
27565 --
27566
27567 -- No reversal code generated
27568
27569 xla_ae_lines_pkg.SetAcctReversalAttrs
27570 (p_event_id => l_event_id
27571 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
27572 ,p_calculate_acctd_flag => l_calculate_acctd_flag
27573 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
27574 END IF;
27575
27576 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
27577 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
27578
27579 --
27580 AcctLineType_9 (
27581 p_application_id => p_application_id
27582 ,p_event_id => l_event_id
27583 ,p_calculate_acctd_flag => l_calculate_acctd_flag
27584 ,p_calculate_g_l_flag => l_calculate_g_l_flag
27585 ,p_actual_flag => l_actual_flag
27586 ,p_balance_type_code => l_balance_type_code
27587 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
27588
27589 , p_source_8 => l_array_source_8(Idx)
27590 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
27591 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
27592 , p_source_11 => l_array_source_11(Idx)
27593 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
27594 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
27595 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
27596 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
27597 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
27598 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
27599 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
27600 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
27601 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
27602 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
27603 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
27604 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
27605 );
27606 If(l_balance_type_code = 'A') THEN
27607 l_actual_gain_loss_ref := l_gain_or_loss_ref;
27608 END IF;
27609
27610 --
27611
27612
27613 --
27614 AcctLineType_18 (
27615 p_application_id => p_application_id
27616 ,p_event_id => l_event_id
27617 ,p_calculate_acctd_flag => l_calculate_acctd_flag
27618 ,p_calculate_g_l_flag => l_calculate_g_l_flag
27619 ,p_actual_flag => l_actual_flag
27620 ,p_balance_type_code => l_balance_type_code
27621 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
27622
27623 , p_source_7 => l_array_source_7(Idx)
27624 , p_source_8 => l_array_source_8(Idx)
27625 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
27626 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
27627 , p_source_11 => l_array_source_11(Idx)
27628 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
27629 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
27630 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
27631 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
27632 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
27633 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
27634 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
27635 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
27636 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
27637 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
27638 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
27639 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
27640 , p_source_31 => g_array_event(l_event_id).array_value_char('source_31')
27641 );
27642 If(l_balance_type_code = 'A') THEN
27643 l_actual_gain_loss_ref := l_gain_or_loss_ref;
27644 END IF;
27645
27646 --
27647
27648 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
27649 -- or secondary ledger that has different currency with primary
27650 -- or alc that is calculated by sla
27651 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
27652 (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'))
27653
27654 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
27655 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
27656 AND (l_actual_flag = 'A')) THEN
27657 XLA_AE_LINES_PKG.CreateGainOrLossLines(
27658 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
27659 ,p_application_id => p_application_id
27660 ,p_amb_context_code => 'DEFAULT'
27661 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
27662 ,p_event_class_code => C_EVENT_CLASS_CODE
27663 ,p_event_type_code => C_EVENT_TYPE_CODE
27664
27665 ,p_gain_ccid => -1
27666 ,p_loss_ccid => -1
27667
27668 ,p_actual_flag => l_actual_flag
27669 ,p_enc_flag => null
27670 ,p_actual_g_l_ref => l_actual_gain_loss_ref
27671 ,p_enc_g_l_ref => null
27672 );
27673 END IF;
27674 END IF;
27675 END IF;
27676
27677 ELSE
27678 --
27679 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
27680 --
27681 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
27682 trace
27683 (p_msg => 'Trancaction revesal option is Y'
27684 ,p_level => C_LEVEL_STATEMENT
27685 ,p_module => l_log_module);
27686 END IF;
27687 END IF;
27688
27689 END LOOP;
27690 l_result := XLA_AE_LINES_PKG.InsertLines ;
27691 end loop;
27692 close line_cur;
27693
27694
27695 --
27696 -- insert headers into xla_ae_headers_gt table
27697 --
27698 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
27699
27700 -- insert into errors table here.
27701
27702 END LOOP;
27703
27704 --
27705 -- 4865292
27706 --
27707 -- Compare g_hdr_extract_count with event count in
27708 -- CreateHeadersAndLines.
27709 --
27710 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
27711
27712 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
27713 trace (p_msg => '# rows extracted from header extract objects '
27714 || ' (running total): '
27715 || g_hdr_extract_count
27716 ,p_level => C_LEVEL_STATEMENT
27717 ,p_module => l_log_module);
27718 END IF;
27719
27720 CLOSE header_cur;
27721 --
27722
27723 --
27724 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27725 trace
27726 (p_msg => 'END of EventType_37'
27727 ,p_level => C_LEVEL_PROCEDURE
27728 ,p_module => l_log_module);
27729 END IF;
27730 --
27731 RETURN l_result;
27732 EXCEPTION
27733 WHEN xla_exceptions_pkg.application_exception THEN
27734
27735 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
27736
27737
27738 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
27739
27740 RAISE;
27741
27742 WHEN NO_DATA_FOUND THEN
27743
27744 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
27745 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
27746
27747 FOR header_record IN header_cur
27748 LOOP
27749 l_array_header_events(header_record.event_id) := header_record.event_id;
27750 END LOOP;
27751
27752 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
27753 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
27754
27755 fnd_file.put_line(fnd_file.LOG, ' ');
27756 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
27757 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
27758 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
27759
27760 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
27761 LOOP
27762 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
27763 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
27764 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
27765 END IF;
27766 END LOOP;
27767
27768 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
27769 fnd_file.put_line(fnd_file.LOG, ' ');
27770
27771
27772 xla_exceptions_pkg.raise_message
27773 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_37');
27774
27775
27776 WHEN OTHERS THEN
27777 xla_exceptions_pkg.raise_message
27778 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_37');
27779 END EventType_37;
27780 --
27781
27782 ---------------------------------------
27783 --
27784 -- PRIVATE PROCEDURE
27785 -- insert_sources_38
27786 --
27787 ----------------------------------------
27788 --
27789 PROCEDURE insert_sources_38(
27790 p_target_ledger_id IN NUMBER
27791 , p_language IN VARCHAR2
27792 , p_sla_ledger_id IN NUMBER
27793 , p_pad_start_date IN DATE
27794 , p_pad_end_date IN DATE
27795 )
27796 IS
27797
27798 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LOG_PO_DEL_INV';
27799 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER';
27800 p_apps_owner VARCHAR2(30);
27801 l_log_module VARCHAR2(240);
27802 BEGIN
27803 IF g_log_enabled THEN
27804 l_log_module := C_DEFAULT_MODULE||'.insert_sources_38';
27805 END IF;
27806 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27807
27808 trace
27809 (p_msg => 'BEGIN of insert_sources_38'
27810 ,p_level => C_LEVEL_PROCEDURE
27811 ,p_module => l_log_module);
27812
27813 END IF;
27814
27815 -- select APPS owner
27816 SELECT oracle_username
27817 INTO p_apps_owner
27818 FROM fnd_oracle_userid
27819 WHERE read_only_flag = 'U'
27820 ;
27821
27822 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
27823 trace
27824 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
27825 ' - p_language = '||p_language||
27826 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
27827 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
27828 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
27829 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
27830 ,p_level => C_LEVEL_STATEMENT
27831 ,p_module => l_log_module);
27832 END IF;
27833
27834
27835 --
27836 INSERT INTO xla_diag_sources --hdr1
27837 (
27838 event_id
27839 , ledger_id
27840 , sla_ledger_id
27841 , description_language
27842 , object_name
27843 , object_type_code
27844 , line_number
27845 , source_application_id
27846 , source_type_code
27847 , source_code
27848 , source_value
27849 , source_meaning
27850 , created_by
27851 , creation_date
27852 , last_update_date
27853 , last_updated_by
27854 , last_update_login
27855 , program_update_date
27856 , program_application_id
27857 , program_id
27858 , request_id
27859 )
27860 SELECT
27861 event_id
27862 , p_target_ledger_id
27863 , p_sla_ledger_id
27864 , p_language
27865 , object_name
27866 , object_type_code
27867 , line_number
27868 , source_application_id
27869 , source_type_code
27870 , source_code
27871 , SUBSTR(source_value ,1,1996)
27872 , SUBSTR(source_meaning,1,200)
27873 , xla_environment_pkg.g_Usr_Id
27874 , TRUNC(SYSDATE)
27875 , TRUNC(SYSDATE)
27876 , xla_environment_pkg.g_Usr_Id
27877 , xla_environment_pkg.g_Login_Id
27878 , TRUNC(SYSDATE)
27879 , xla_environment_pkg.g_Prog_Appl_Id
27880 , xla_environment_pkg.g_Prog_Id
27881 , xla_environment_pkg.g_Req_Id
27882 FROM (
27883 SELECT xet.event_id event_id
27884 , 0 line_number
27885 , CASE r
27886 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
27887 WHEN 2 THEN 'CST_XLA_INV_SYSTEM_ITEMS_REF_V'
27888 WHEN 3 THEN 'CST_XLA_INV_REF_V'
27889 WHEN 4 THEN 'CST_XLA_INV_REF_V'
27890 WHEN 5 THEN 'CST_XLA_INV_TXN_TYPES_REF_V'
27891 WHEN 6 THEN 'CST_XLA_INV_HEADERS_V'
27892 WHEN 7 THEN 'PO_HEADERS_REF_V'
27893 WHEN 8 THEN 'CST_XLA_INV_ORG_PARAMS_REF_V'
27894 WHEN 9 THEN 'CST_XLA_INV_REF_V'
27895 WHEN 10 THEN 'CST_XLA_INV_REF_V'
27896 WHEN 11 THEN 'CST_XLA_INV_REF_V'
27897 WHEN 12 THEN 'CST_XLA_INV_REF_V'
27898 WHEN 13 THEN 'CST_XLA_INV_REF_V'
27899 WHEN 14 THEN 'PO_DISTS_REF_V'
27900 WHEN 15 THEN 'CST_XLA_INV_REF_V'
27901 WHEN 16 THEN 'CST_XLA_INV_REF_V'
27902 WHEN 17 THEN 'PSA_CST_XLA_UPG_V'
27903 WHEN 18 THEN 'PO_HEADERS_REF_V'
27904 WHEN 19 THEN 'PO_DISTS_REF_V'
27905 WHEN 20 THEN 'CST_XLA_INV_HEADERS_V'
27906
27907 ELSE null
27908 END object_name
27909 , CASE r
27910 WHEN 1 THEN 'HEADER'
27911 WHEN 2 THEN 'HEADER'
27912 WHEN 3 THEN 'HEADER'
27913 WHEN 4 THEN 'HEADER'
27914 WHEN 5 THEN 'HEADER'
27915 WHEN 6 THEN 'HEADER'
27916 WHEN 7 THEN 'HEADER'
27917 WHEN 8 THEN 'HEADER'
27918 WHEN 9 THEN 'HEADER'
27919 WHEN 10 THEN 'HEADER'
27920 WHEN 11 THEN 'HEADER'
27921 WHEN 12 THEN 'HEADER'
27922 WHEN 13 THEN 'HEADER'
27923 WHEN 14 THEN 'HEADER'
27924 WHEN 15 THEN 'HEADER'
27925 WHEN 16 THEN 'HEADER'
27926 WHEN 17 THEN 'HEADER'
27927 WHEN 18 THEN 'HEADER'
27928 WHEN 19 THEN 'HEADER'
27929 WHEN 20 THEN 'HEADER'
27930
27931 ELSE null
27932 END object_type_code
27933 , CASE r
27934 WHEN 1 THEN '707'
27935 WHEN 2 THEN '707'
27936 WHEN 3 THEN '707'
27937 WHEN 4 THEN '707'
27938 WHEN 5 THEN '707'
27939 WHEN 6 THEN '707'
27940 WHEN 7 THEN '201'
27941 WHEN 8 THEN '707'
27942 WHEN 9 THEN '707'
27943 WHEN 10 THEN '707'
27944 WHEN 11 THEN '707'
27945 WHEN 12 THEN '707'
27946 WHEN 13 THEN '707'
27947 WHEN 14 THEN '201'
27948 WHEN 15 THEN '707'
27949 WHEN 16 THEN '707'
27950 WHEN 17 THEN '707'
27951 WHEN 18 THEN '201'
27952 WHEN 19 THEN '201'
27953 WHEN 20 THEN '707'
27954
27955 ELSE null
27956 END source_application_id
27957 , 'S' source_type_code
27958 , CASE r
27959 WHEN 1 THEN 'TRANSACTION_ID'
27960 WHEN 2 THEN 'ITEM_CONCATENATED_SEGMENTS'
27961 WHEN 3 THEN 'TRANSACTION_QUANTITY'
27962 WHEN 4 THEN 'TRANSACTION_UOM'
27963 WHEN 5 THEN 'INV_TXN_TYPE_DESCRIPTION'
27964 WHEN 6 THEN 'DISTRIBUTION_TYPE'
27965 WHEN 7 THEN 'PURCH_ENCUMBRANCE_FLAG'
27966 WHEN 8 THEN 'ENCUMBRANCE_REVERSAL_FLAG'
27967 WHEN 9 THEN 'APPLIED_TO_APPL_ID'
27968 WHEN 10 THEN 'APPLIED_TO_DIST_LINK_TYPE'
27969 WHEN 11 THEN 'APPLIED_TO_ENTITY_CODE'
27970 WHEN 12 THEN 'TXN_PO_DISTRIBUTION_ID'
27971 WHEN 13 THEN 'APPLIED_TO_PO_DOC_ID'
27972 WHEN 14 THEN 'PO_BUDGET_ACCOUNT'
27973 WHEN 15 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
27974 WHEN 16 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
27975 WHEN 17 THEN 'CST_ENCUM_UPG_OPTION'
27976 WHEN 18 THEN 'PURCH_ENCUMBRANCE_TYPE_ID'
27977 WHEN 19 THEN 'RESERVED_FLAG'
27978 WHEN 20 THEN 'TRANSFER_TO_GL_INDICATOR'
27979
27980 ELSE null
27981 END source_code
27982 , CASE r
27983 WHEN 1 THEN TO_CHAR(h1.TRANSACTION_ID)
27984 WHEN 2 THEN TO_CHAR(h5.ITEM_CONCATENATED_SEGMENTS)
27985 WHEN 3 THEN TO_CHAR(h4.TRANSACTION_QUANTITY)
27986 WHEN 4 THEN TO_CHAR(h4.TRANSACTION_UOM)
27987 WHEN 5 THEN TO_CHAR(h6.INV_TXN_TYPE_DESCRIPTION)
27988 WHEN 6 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
27989 WHEN 7 THEN TO_CHAR(h8.PURCH_ENCUMBRANCE_FLAG)
27990 WHEN 8 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_FLAG)
27991 WHEN 9 THEN TO_CHAR(h4.APPLIED_TO_APPL_ID)
27992 WHEN 10 THEN TO_CHAR(h4.APPLIED_TO_DIST_LINK_TYPE)
27993 WHEN 11 THEN TO_CHAR(h4.APPLIED_TO_ENTITY_CODE)
27994 WHEN 12 THEN TO_CHAR(h4.TXN_PO_DISTRIBUTION_ID)
27995 WHEN 13 THEN TO_CHAR(h4.APPLIED_TO_PO_DOC_ID)
27996 WHEN 14 THEN TO_CHAR(h7.PO_BUDGET_ACCOUNT)
27997 WHEN 15 THEN TO_CHAR(h4.ENCUM_REVERSAL_AMOUNT_ENTERED)
27998 WHEN 16 THEN TO_CHAR(h4.ENCUMBRANCE_REVERSAL_AMOUNT)
27999 WHEN 17 THEN TO_CHAR(h9.CST_ENCUM_UPG_OPTION)
28000 WHEN 18 THEN TO_CHAR(h8.PURCH_ENCUMBRANCE_TYPE_ID)
28001 WHEN 19 THEN TO_CHAR(h7.RESERVED_FLAG)
28002 WHEN 20 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
28003
28004 ELSE null
28005 END source_value
28006 , CASE r
28007 WHEN 6 THEN fvl9.meaning
28008 WHEN 20 THEN fvl42.meaning
28009
28010 ELSE null
28011 END source_meaning
28012 FROM xla_events_gt xet
28013 , CST_XLA_INV_HEADERS_V h1
28014 , CST_XLA_INV_ORG_PARAMS_REF_V h3
28015 , CST_XLA_INV_REF_V h4
28016 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
28017 , CST_XLA_INV_TXN_TYPES_REF_V h6
28018 , PO_DISTS_REF_V h7
28019 , PO_HEADERS_REF_V h8
28020 , PSA_CST_XLA_UPG_V h9
28021 , fnd_lookup_values fvl9
28022 , fnd_lookup_values fvl42
28023 ,(select rownum r from all_objects where rownum <= 20 and owner = p_apps_owner)
28024 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
28025 AND xet.event_type_code = C_EVENT_TYPE_CODE
28026 AND h1.event_id = xet.event_id
28027 AND h3.inv_organization_id (+) = h1.organization_id AND h4.ref_transaction_id = h1.transaction_id AND h5.inventory_item_id (+) = h1.inventory_item_id and h5.organization_id (+) = h1.organization_id AND h6.inv_transaction_type_id = h1.transaction_type_id AND h4.txn_po_header_id = h7.po_header_id (+) and h4.txn_po_distribution_id = h7.po_distribution_id (+) AND h4.txn_po_header_id = h8.po_header_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) =
28028 'CST_DISTRIBUTION_TYPE'
28029 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
28030 AND fvl9.view_application_id(+) = 700
28031 AND fvl9.language(+) = USERENV('LANG')
28032 AND fvl42.lookup_type(+) = 'YES_NO'
28033 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
28034 AND fvl42.view_application_id(+) = 0
28035 AND fvl42.language(+) = USERENV('LANG')
28036
28037 )
28038 ;
28039 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
28040
28041 trace
28042 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
28043 ,p_level => C_LEVEL_STATEMENT
28044 ,p_module => l_log_module);
28045
28046 END IF;
28047 --
28048
28049
28050
28051 --
28052 INSERT INTO xla_diag_sources --line1
28053 (
28054 event_id
28055 , ledger_id
28056 , sla_ledger_id
28057 , description_language
28058 , object_name
28059 , object_type_code
28060 , line_number
28061 , source_application_id
28062 , source_type_code
28063 , source_code
28064 , source_value
28065 , source_meaning
28066 , created_by
28067 , creation_date
28068 , last_update_date
28069 , last_updated_by
28070 , last_update_login
28071 , program_update_date
28072 , program_application_id
28073 , program_id
28074 , request_id
28075 )
28076 SELECT event_id
28077 , p_target_ledger_id
28078 , p_sla_ledger_id
28079 , p_language
28080 , object_name
28081 , object_type_code
28082 , line_number
28083 , source_application_id
28084 , source_type_code
28085 , source_code
28086 , SUBSTR(source_value,1,1996)
28087 , SUBSTR(source_meaning,1,200)
28088 , xla_environment_pkg.g_Usr_Id
28089 , TRUNC(SYSDATE)
28090 , TRUNC(SYSDATE)
28091 , xla_environment_pkg.g_Usr_Id
28092 , xla_environment_pkg.g_Login_Id
28093 , TRUNC(SYSDATE)
28094 , xla_environment_pkg.g_Prog_Appl_Id
28095 , xla_environment_pkg.g_Prog_Id
28096 , xla_environment_pkg.g_Req_Id
28097 FROM (
28098 SELECT xet.event_id event_id
28099 , l2.line_number line_number
28100 , CASE r
28101 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
28102 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
28103 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
28104
28105 ELSE null
28106 END object_name
28107 , CASE r
28108 WHEN 1 THEN 'LINE'
28109 WHEN 2 THEN 'LINE'
28110 WHEN 3 THEN 'LINE'
28111
28112 ELSE null
28113 END object_type_code
28114 , CASE r
28115 WHEN 1 THEN '707'
28116 WHEN 2 THEN '707'
28117 WHEN 3 THEN '707'
28118
28119 ELSE null
28120 END source_application_id
28121 , 'S' source_type_code
28122 , CASE r
28123 WHEN 1 THEN 'ACCOUNTING_LINE_TYPE_CODE'
28124 WHEN 2 THEN 'DISTRIBUTION_IDENTIFIER'
28125 WHEN 3 THEN 'CURRENCY_CODE'
28126
28127 ELSE null
28128 END source_code
28129 , CASE r
28130 WHEN 1 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
28131 WHEN 2 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
28132 WHEN 3 THEN TO_CHAR(l2.CURRENCY_CODE)
28133
28134 ELSE null
28135 END source_value
28136 , null source_meaning
28137 FROM xla_events_gt xet
28138 , CST_XLA_INV_LINES_V l2
28139 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
28140 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
28141 AND xet.event_type_code = C_EVENT_TYPE_CODE
28142 AND l2.event_id = xet.event_id
28143
28144 )
28145 ;
28146 --
28147 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
28148
28149 trace
28150 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
28151 ,p_level => C_LEVEL_STATEMENT
28152 ,p_module => l_log_module);
28153
28154 END IF;
28155
28156
28157 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28158 trace
28159 (p_msg => 'END of insert_sources_38'
28160 ,p_level => C_LEVEL_PROCEDURE
28161 ,p_module => l_log_module);
28162 END IF;
28163 EXCEPTION
28164 WHEN xla_exceptions_pkg.application_exception THEN
28165 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
28166 trace
28167 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
28168 ,p_level => C_LEVEL_EXCEPTION
28169 ,p_module => l_log_module);
28170 END IF;
28171 RAISE;
28172 WHEN OTHERS THEN
28173 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
28174 trace
28175 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
28176 ,p_level => C_LEVEL_EXCEPTION
28177 ,p_module => l_log_module);
28178 END IF;
28179 xla_exceptions_pkg.raise_message
28180 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_38');
28181 END insert_sources_38;
28182 --
28183
28184 ---------------------------------------
28185 --
28186 -- PRIVATE FUNCTION
28187 -- EventType_38
28188 --
28189 ----------------------------------------
28190 --
28191 FUNCTION EventType_38
28192 (p_application_id IN NUMBER
28193 ,p_base_ledger_id IN NUMBER
28194 ,p_target_ledger_id IN NUMBER
28195 ,p_language IN VARCHAR2
28196 ,p_currency_code IN VARCHAR2
28197 ,p_sla_ledger_id IN NUMBER
28198 ,p_pad_start_date IN DATE
28199 ,p_pad_end_date IN DATE
28200 ,p_primary_ledger_id IN NUMBER)
28201 RETURN BOOLEAN IS
28202 --
28203 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LOG_PO_DEL_INV';
28204 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER';
28205
28206 l_calculate_acctd_flag VARCHAR2(1) :='N';
28207 l_calculate_g_l_flag VARCHAR2(1) :='N';
28208 --
28209 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
28210 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
28211 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
28212 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
28213 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
28214 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
28215 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
28216 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
28217 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
28218 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
28219 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
28220 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
28221 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
28222 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
28223 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
28224 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
28225 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
28226 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
28227 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
28228 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
28229 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
28230 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
28231 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
28232 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
28233 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
28234 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
28235
28236 l_event_id NUMBER;
28237 l_previous_event_id NUMBER;
28238 l_first_event_id NUMBER;
28239 l_last_event_id NUMBER;
28240
28241 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
28242 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28243 --
28244 --
28245 l_result BOOLEAN := TRUE;
28246 l_rows NUMBER := 1000;
28247 l_event_type_name VARCHAR2(80) := 'Logical PO Delivery into Inventory';
28248 l_event_class_name VARCHAR2(80) := 'PO Delivery into Inventory';
28249 l_description VARCHAR2(4000);
28250 l_transaction_reversal NUMBER;
28251 l_ae_header_id NUMBER;
28252 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
28253 l_log_module VARCHAR2(240);
28254 --
28255 l_acct_reversal_source VARCHAR2(30);
28256 l_trx_reversal_source VARCHAR2(30);
28257
28258 l_continue_with_lines BOOLEAN := TRUE;
28259 --
28260 l_acc_rev_gl_date_source DATE; -- 4262811
28261 --
28262 type t_array_event_id is table of number index by binary_integer;
28263
28264 l_rec_array_event t_rec_array_event;
28265 l_null_rec_array_event t_rec_array_event;
28266 l_array_ae_header_id xla_number_array_type;
28267 l_actual_flag VARCHAR2(1) := NULL;
28268 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
28269 l_balance_type_code VARCHAR2(1) :=NULL;
28270 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
28271
28272 --
28273 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
28274 --
28275
28276 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSACTION_ID%TYPE INDEX BY BINARY_INTEGER;
28277 TYPE t_array_source_2 IS TABLE OF CST_XLA_INV_SYSTEM_ITEMS_REF_V.ITEM_CONCATENATED_SEGMENTS%TYPE INDEX BY BINARY_INTEGER;
28278 TYPE t_array_source_3 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_QUANTITY%TYPE INDEX BY BINARY_INTEGER;
28279 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_UOM%TYPE INDEX BY BINARY_INTEGER;
28280 TYPE t_array_source_5 IS TABLE OF CST_XLA_INV_TXN_TYPES_REF_V.INV_TXN_TYPE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
28281 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
28282 TYPE t_array_source_16 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
28283 TYPE t_array_source_17 IS TABLE OF CST_XLA_INV_ORG_PARAMS_REF_V.ENCUMBRANCE_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
28284 TYPE t_array_source_19 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
28285 TYPE t_array_source_20 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
28286 TYPE t_array_source_21 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
28287 TYPE t_array_source_22 IS TABLE OF CST_XLA_INV_REF_V.TXN_PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
28288 TYPE t_array_source_23 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
28289 TYPE t_array_source_24 IS TABLE OF PO_DISTS_REF_V.PO_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
28290 TYPE t_array_source_25 IS TABLE OF CST_XLA_INV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
28291 TYPE t_array_source_26 IS TABLE OF CST_XLA_INV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
28292 TYPE t_array_source_27 IS TABLE OF PSA_CST_XLA_UPG_V.CST_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
28293 TYPE t_array_source_28 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
28294 TYPE t_array_source_31 IS TABLE OF PO_DISTS_REF_V.RESERVED_FLAG%TYPE INDEX BY BINARY_INTEGER;
28295 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
28296
28297 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
28298 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
28299 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
28300
28301 l_array_source_1 t_array_source_1;
28302 l_array_source_2 t_array_source_2;
28303 l_array_source_3 t_array_source_3;
28304 l_array_source_4 t_array_source_4;
28305 l_array_source_5 t_array_source_5;
28306 l_array_source_9 t_array_source_9;
28307 l_array_source_9_meaning t_array_lookup_meaning;
28308 l_array_source_16 t_array_source_16;
28309 l_array_source_17 t_array_source_17;
28310 l_array_source_19 t_array_source_19;
28311 l_array_source_20 t_array_source_20;
28312 l_array_source_21 t_array_source_21;
28313 l_array_source_22 t_array_source_22;
28314 l_array_source_23 t_array_source_23;
28315 l_array_source_24 t_array_source_24;
28316 l_array_source_25 t_array_source_25;
28317 l_array_source_26 t_array_source_26;
28318 l_array_source_27 t_array_source_27;
28319 l_array_source_28 t_array_source_28;
28320 l_array_source_31 t_array_source_31;
28321 l_array_source_42 t_array_source_42;
28322 l_array_source_42_meaning t_array_lookup_meaning;
28323
28324 l_array_source_7 t_array_source_7;
28325 l_array_source_8 t_array_source_8;
28326 l_array_source_11 t_array_source_11;
28327
28328 --
28329 CURSOR header_cur
28330 IS
28331 SELECT /*+ leading(xet) cardinality(xet,1) */
28332 -- Event Type Code: LOG_PO_DEL_INV
28333 -- Event Class Code: PURCHASE_ORDER
28334 xet.entity_id
28335 , xet.legal_entity_id
28336 , xet.entity_code
28337 , xet.transaction_number
28338 , xet.event_id
28339 , xet.event_class_code
28340 , xet.event_type_code
28341 , xet.event_number
28342 , xet.event_date
28343 , xet.transaction_date
28344 , xet.reference_num_1
28345 , xet.reference_num_2
28346 , xet.reference_num_3
28347 , xet.reference_num_4
28348 , xet.reference_char_1
28349 , xet.reference_char_2
28350 , xet.reference_char_3
28351 , xet.reference_char_4
28352 , xet.reference_date_1
28353 , xet.reference_date_2
28354 , xet.reference_date_3
28355 , xet.reference_date_4
28356 , xet.event_created_by
28357 , xet.budgetary_control_flag
28358 , h1.TRANSACTION_ID source_1
28359 , h5.ITEM_CONCATENATED_SEGMENTS source_2
28360 , h4.TRANSACTION_QUANTITY source_3
28361 , h4.TRANSACTION_UOM source_4
28362 , h6.INV_TXN_TYPE_DESCRIPTION source_5
28363 , h1.DISTRIBUTION_TYPE source_9
28364 , fvl9.meaning source_9_meaning
28365 , h8.PURCH_ENCUMBRANCE_FLAG source_16
28366 , h3.ENCUMBRANCE_REVERSAL_FLAG source_17
28367 , h4.APPLIED_TO_APPL_ID source_19
28368 , h4.APPLIED_TO_DIST_LINK_TYPE source_20
28369 , h4.APPLIED_TO_ENTITY_CODE source_21
28370 , h4.TXN_PO_DISTRIBUTION_ID source_22
28371 , h4.APPLIED_TO_PO_DOC_ID source_23
28372 , h7.PO_BUDGET_ACCOUNT source_24
28373 , h4.ENCUM_REVERSAL_AMOUNT_ENTERED source_25
28374 , h4.ENCUMBRANCE_REVERSAL_AMOUNT source_26
28375 , h9.CST_ENCUM_UPG_OPTION source_27
28376 , h8.PURCH_ENCUMBRANCE_TYPE_ID source_28
28377 , h7.RESERVED_FLAG source_31
28378 , h1.TRANSFER_TO_GL_INDICATOR source_42
28379 , fvl42.meaning source_42_meaning
28380 FROM xla_events_gt xet
28381 , CST_XLA_INV_HEADERS_V h1
28382 , CST_XLA_INV_ORG_PARAMS_REF_V h3
28383 , CST_XLA_INV_REF_V h4
28384 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
28385 , CST_XLA_INV_TXN_TYPES_REF_V h6
28386 , PO_DISTS_REF_V h7
28387 , PO_HEADERS_REF_V h8
28388 , PSA_CST_XLA_UPG_V h9
28389 , fnd_lookup_values fvl9
28390 , fnd_lookup_values fvl42
28391 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
28392 and xet.event_type_code = C_EVENT_TYPE_CODE
28393 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
28394 AND h3.INV_ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h4.ref_transaction_id = h1.transaction_id AND h5.INVENTORY_ITEM_ID (+) = h1.INVENTORY_ITEM_ID AND h5.ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h6.INV_TRANSACTION_TYPE_ID = h1.TRANSACTION_TYPE_ID AND h4.txn_po_header_id = h7.po_header_id (+) AND h4.txn_po_distribution_id = h7.po_distribution_id (+) AND h4.txn_po_header_id = h8.po_header_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) =
28395 'CST_DISTRIBUTION_TYPE'
28396 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
28397 AND fvl9.view_application_id(+) = 700
28398 AND fvl9.language(+) = USERENV('LANG')
28399 AND fvl42.lookup_type(+) = 'YES_NO'
28400 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
28401 AND fvl42.view_application_id(+) = 0
28402 AND fvl42.language(+) = USERENV('LANG')
28403
28404 ORDER BY event_id
28405 ;
28406
28407
28408 --
28409 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
28410 IS
28411 SELECT /*+ leading(xet) cardinality(xet,1) */
28412 -- Event Type Code: LOG_PO_DEL_INV
28413 -- Event Class Code: PURCHASE_ORDER
28414 xet.entity_id
28415 ,xet.legal_entity_id
28416 ,xet.entity_code
28417 ,xet.transaction_number
28418 ,xet.event_id
28419 ,xet.event_class_code
28420 ,xet.event_type_code
28421 ,xet.event_number
28422 ,xet.event_date
28423 ,xet.transaction_date
28424 ,xet.reference_num_1
28425 ,xet.reference_num_2
28426 ,xet.reference_num_3
28427 ,xet.reference_num_4
28428 ,xet.reference_char_1
28429 ,xet.reference_char_2
28430 ,xet.reference_char_3
28431 ,xet.reference_char_4
28432 ,xet.reference_date_1
28433 ,xet.reference_date_2
28434 ,xet.reference_date_3
28435 ,xet.reference_date_4
28436 ,xet.event_created_by
28437 ,xet.budgetary_control_flag , l2.LINE_NUMBER
28438 , l2.ACCOUNTING_LINE_TYPE_CODE source_7
28439 , l2.DISTRIBUTION_IDENTIFIER source_8
28440 , l2.CURRENCY_CODE source_11
28441 FROM xla_events_gt xet
28442 , CST_XLA_INV_LINES_V l2
28443 WHERE xet.event_id between x_first_event_id and x_last_event_id
28444 and xet.event_date between p_pad_start_date and p_pad_end_date
28445 and xet.event_type_code = C_EVENT_TYPE_CODE
28446 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
28447 ;
28448
28449 --
28450 BEGIN
28451 IF g_log_enabled THEN
28452 l_log_module := C_DEFAULT_MODULE||'.EventType_38';
28453 END IF;
28454 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28455 trace
28456 (p_msg => 'BEGIN of EventType_38'
28457 ,p_level => C_LEVEL_PROCEDURE
28458 ,p_module => l_log_module);
28459 END IF;
28460
28461 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
28462 trace
28463 (p_msg => 'p_application_id = '||p_application_id||
28464 ' - p_base_ledger_id = '||p_base_ledger_id||
28465 ' - p_target_ledger_id = '||p_target_ledger_id||
28466 ' - p_language = '||p_language||
28467 ' - p_currency_code = '||p_currency_code||
28468 ' - p_sla_ledger_id = '||p_sla_ledger_id
28469 ,p_level => C_LEVEL_STATEMENT
28470 ,p_module => l_log_module);
28471 END IF;
28472 --
28473 -- initialze arrays
28474 --
28475 g_array_event.DELETE;
28476 l_rec_array_event := l_null_rec_array_event;
28477 --
28478 --------------------------------------
28479 -- 4262811 Initialze MPA Line Number
28480 --------------------------------------
28481 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
28482
28483 --
28484
28485 --
28486 OPEN header_cur;
28487 --
28488 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
28489 trace
28490 (p_msg => 'SQL - FETCH header_cur'
28491 ,p_level => C_LEVEL_STATEMENT
28492 ,p_module => l_log_module);
28493 END IF;
28494 --
28495 LOOP
28496 FETCH header_cur BULK COLLECT INTO
28497 l_array_entity_id
28498 , l_array_legal_entity_id
28499 , l_array_entity_code
28500 , l_array_transaction_num
28501 , l_array_event_id
28502 , l_array_class_code
28503 , l_array_event_type
28504 , l_array_event_number
28505 , l_array_event_date
28506 , l_array_transaction_date
28507 , l_array_reference_num_1
28508 , l_array_reference_num_2
28509 , l_array_reference_num_3
28510 , l_array_reference_num_4
28511 , l_array_reference_char_1
28512 , l_array_reference_char_2
28513 , l_array_reference_char_3
28514 , l_array_reference_char_4
28515 , l_array_reference_date_1
28516 , l_array_reference_date_2
28517 , l_array_reference_date_3
28518 , l_array_reference_date_4
28519 , l_array_event_created_by
28520 , l_array_budgetary_control_flag
28521 , l_array_source_1
28522 , l_array_source_2
28523 , l_array_source_3
28524 , l_array_source_4
28525 , l_array_source_5
28526 , l_array_source_9
28527 , l_array_source_9_meaning
28528 , l_array_source_16
28529 , l_array_source_17
28530 , l_array_source_19
28531 , l_array_source_20
28532 , l_array_source_21
28533 , l_array_source_22
28534 , l_array_source_23
28535 , l_array_source_24
28536 , l_array_source_25
28537 , l_array_source_26
28538 , l_array_source_27
28539 , l_array_source_28
28540 , l_array_source_31
28541 , l_array_source_42
28542 , l_array_source_42_meaning
28543 LIMIT l_rows;
28544 --
28545 IF (C_LEVEL_EVENT >= g_log_level) THEN
28546 trace
28547 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
28548 ,p_level => C_LEVEL_EVENT
28549 ,p_module => l_log_module);
28550 END IF;
28551 --
28552 EXIT WHEN l_array_entity_id.COUNT = 0;
28553
28554 -- initialize arrays
28555 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
28556 XLA_AE_LINES_PKG.g_rec_lines := NULL;
28557
28558 --
28559 -- Bug 4458708
28560 --
28561 XLA_AE_LINES_PKG.g_LineNumber := 0;
28562
28563
28564 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
28565 g_last_hdr_idx := l_array_event_id.LAST;
28566 --
28567 -- loop for the headers. Each iteration is for each header extract row
28568 -- fetched in header cursor
28569 --
28570 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
28571
28572 --
28573 -- set event info as cache for other routines to refer event attributes
28574 --
28575 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
28576 (p_application_id => p_application_id
28577 ,p_primary_ledger_id => p_primary_ledger_id
28578 ,p_base_ledger_id => p_base_ledger_id
28579 ,p_target_ledger_id => p_target_ledger_id
28580 ,p_entity_id => l_array_entity_id(hdr_idx)
28581 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
28582 ,p_entity_code => l_array_entity_code(hdr_idx)
28583 ,p_transaction_num => l_array_transaction_num(hdr_idx)
28584 ,p_event_id => l_array_event_id(hdr_idx)
28585 ,p_event_class_code => l_array_class_code(hdr_idx)
28586 ,p_event_type_code => l_array_event_type(hdr_idx)
28587 ,p_event_number => l_array_event_number(hdr_idx)
28588 ,p_event_date => l_array_event_date(hdr_idx)
28589 ,p_transaction_date => l_array_transaction_date(hdr_idx)
28590 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
28591 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
28592 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
28593 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
28594 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
28595 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
28596 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
28597 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
28598 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
28599 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
28600 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
28601 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
28602 ,p_event_created_by => l_array_event_created_by(hdr_idx)
28603 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
28604
28605 --
28606 -- set the status of entry to C_VALID (0)
28607 --
28608 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
28609
28610 --
28611 -- initialize a row for ae header
28612 --
28613 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
28614
28615 l_event_id := l_array_event_id(hdr_idx);
28616
28617 --
28618 -- storing the hdr_idx for event. May be used by line cursor.
28619 --
28620 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
28621
28622 --
28623 -- store sources from header extract. This can be improved to
28624 -- store only those sources from header extract that may be used in lines
28625 --
28626
28627 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
28628 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
28629 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
28630 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
28631 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
28632 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
28633 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
28634 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
28635 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
28636 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
28637 g_array_event(l_event_id).array_value_char('source_20') := l_array_source_20(hdr_idx);
28638 g_array_event(l_event_id).array_value_char('source_21') := l_array_source_21(hdr_idx);
28639 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
28640 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
28641 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
28642 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
28643 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
28644 g_array_event(l_event_id).array_value_char('source_27') := l_array_source_27(hdr_idx);
28645 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
28646 g_array_event(l_event_id).array_value_char('source_31') := l_array_source_31(hdr_idx);
28647 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
28648 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
28649
28650 --
28651 -- initilaize the status of ae headers for diffrent balance types
28652 -- the status is initialised to C_NOT_CREATED (2)
28653 --
28654 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
28655 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
28656 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
28657
28658 --
28659 -- call api to validate and store accounting attributes for header
28660 --
28661
28662 ------------------------------------------------------------
28663 -- Accrual Reversal : to get date for Standard Source (NONE)
28664 ------------------------------------------------------------
28665 l_acc_rev_gl_date_source := NULL;
28666
28667 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
28668 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_28');
28669 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
28670 l_rec_acct_attrs.array_date_value(2) :=
28671 xla_ae_sources_pkg.GetSystemSourceDate(
28672 p_source_code => 'XLA_REFERENCE_DATE_1'
28673 , p_source_type_code => 'Y'
28674 , p_source_application_id => 602
28675 );
28676 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
28677 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_42');
28678
28679
28680 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
28681
28682 XLA_AE_HEADER_PKG.SetJeCategoryName;
28683
28684 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
28685 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
28686 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
28687 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
28688 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
28689
28690
28691 --
28692 xla_ae_header_pkg.SetHdrDescription(
28693 p_description => Description_1 (
28694 p_application_id => p_application_id
28695 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
28696 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
28697 , p_source_3 => g_array_event(l_event_id).array_value_num('source_3')
28698 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
28699 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
28700 )
28701 );
28702 --
28703
28704 -- No header level analytical criteria
28705
28706 --
28707 --accounting attribute enhancement, bug 3612931
28708 --
28709 l_trx_reversal_source := SUBSTR(NULL, 1,30);
28710
28711 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
28712 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
28713
28714 xla_accounting_err_pkg.build_message
28715 (p_appli_s_name => 'XLA'
28716 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
28717 ,p_token_1 => 'ACCT_ATTR_NAME'
28718 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
28719 ,p_token_2 => 'PRODUCT_NAME'
28720 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
28721 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
28722 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
28723 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
28724
28725 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
28726 --
28727 -- following sets the accounting attributes needed to reverse
28728 -- accounting for a distributeion
28729 --
28730 xla_ae_lines_pkg.SetTrxReversalAttrs
28731 (p_event_id => l_event_id
28732 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
28733 ,p_trx_reversal_source => l_trx_reversal_source);
28734
28735 END IF;
28736
28737
28738 ----------------------------------------------------------------
28739 -- 4262811 - update the header statuses to invalid in need be
28740 ----------------------------------------------------------------
28741 --
28742 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
28743
28744
28745 -----------------------------------------------
28746 -- No accrual reversal for the event class/type
28747 -----------------------------------------------
28748 ----------------------------------------------------------------
28749
28750 --
28751 -- this ends the header loop iteration for one bulk fetch
28752 --
28753 END LOOP;
28754
28755 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
28756 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
28757
28758 --
28759 -- insert dummy rows into lines gt table that were created due to
28760 -- transaction reversals
28761 --
28762 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
28763 l_result := XLA_AE_LINES_PKG.InsertLines;
28764 END IF;
28765
28766 --
28767 -- reset the temp_line_num for each set of events fetched from header
28768 -- cursor rather than doing it for each new event in line cursor
28769 -- Bug 3939231
28770 --
28771 xla_ae_lines_pkg.g_temp_line_num := 0;
28772
28773
28774
28775 --
28776 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
28777 --
28778 --
28779 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
28780
28781 trace
28782 (p_msg => 'SQL - FETCH line_cur'
28783 ,p_level => C_LEVEL_STATEMENT
28784 ,p_module => l_log_module);
28785
28786 END IF;
28787 --
28788 --
28789 LOOP
28790 --
28791 FETCH line_cur BULK COLLECT INTO
28792 l_array_entity_id
28793 , l_array_legal_entity_id
28794 , l_array_entity_code
28795 , l_array_transaction_num
28796 , l_array_event_id
28797 , l_array_class_code
28798 , l_array_event_type
28799 , l_array_event_number
28800 , l_array_event_date
28801 , l_array_transaction_date
28802 , l_array_reference_num_1
28803 , l_array_reference_num_2
28804 , l_array_reference_num_3
28805 , l_array_reference_num_4
28806 , l_array_reference_char_1
28807 , l_array_reference_char_2
28808 , l_array_reference_char_3
28809 , l_array_reference_char_4
28810 , l_array_reference_date_1
28811 , l_array_reference_date_2
28812 , l_array_reference_date_3
28813 , l_array_reference_date_4
28814 , l_array_event_created_by
28815 , l_array_budgetary_control_flag
28816 , l_array_extract_line_num
28817 , l_array_source_7
28818 , l_array_source_8
28819 , l_array_source_11
28820 LIMIT l_rows;
28821
28822 --
28823 IF (C_LEVEL_EVENT >= g_log_level) THEN
28824 trace
28825 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
28826 ,p_level => C_LEVEL_EVENT
28827 ,p_module => l_log_module);
28828 END IF;
28829 --
28830 EXIT WHEN l_array_entity_id.count = 0;
28831
28832 XLA_AE_LINES_PKG.g_rec_lines := null;
28833
28834 --
28835 -- Bug 4458708
28836 --
28837 XLA_AE_LINES_PKG.g_LineNumber := 0;
28838 --
28839 --
28840
28841 FOR Idx IN 1..l_array_event_id.count LOOP
28842 --
28843 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
28844 --
28845 l_event_id := l_array_event_id(idx); -- 5648433
28846
28847 --
28848 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
28849 --
28850
28851 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
28852 (g_array_event(l_event_id).array_value_num('header_index'))
28853 ,'N'
28854 ) <> 'Y'
28855 THEN
28856 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
28857 trace
28858 (p_msg => 'Trancaction revesal option is not Y '
28859 ,p_level => C_LEVEL_STATEMENT
28860 ,p_module => l_log_module);
28861 END IF;
28862
28863 --
28864 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
28865 --
28866 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
28867 --
28868 -- set event info as cache for other routines to refer event attributes
28869 --
28870
28871 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
28872 l_previous_event_id := l_event_id;
28873
28874 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
28875 (p_application_id => p_application_id
28876 ,p_primary_ledger_id => p_primary_ledger_id
28877 ,p_base_ledger_id => p_base_ledger_id
28878 ,p_target_ledger_id => p_target_ledger_id
28879 ,p_entity_id => l_array_entity_id(Idx)
28880 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
28881 ,p_entity_code => l_array_entity_code(Idx)
28882 ,p_transaction_num => l_array_transaction_num(Idx)
28883 ,p_event_id => l_array_event_id(Idx)
28884 ,p_event_class_code => l_array_class_code(Idx)
28885 ,p_event_type_code => l_array_event_type(Idx)
28886 ,p_event_number => l_array_event_number(Idx)
28887 ,p_event_date => l_array_event_date(Idx)
28888 ,p_transaction_date => l_array_transaction_date(Idx)
28889 ,p_reference_num_1 => l_array_reference_num_1(Idx)
28890 ,p_reference_num_2 => l_array_reference_num_2(Idx)
28891 ,p_reference_num_3 => l_array_reference_num_3(Idx)
28892 ,p_reference_num_4 => l_array_reference_num_4(Idx)
28893 ,p_reference_char_1 => l_array_reference_char_1(Idx)
28894 ,p_reference_char_2 => l_array_reference_char_2(Idx)
28895 ,p_reference_char_3 => l_array_reference_char_3(Idx)
28896 ,p_reference_char_4 => l_array_reference_char_4(Idx)
28897 ,p_reference_date_1 => l_array_reference_date_1(Idx)
28898 ,p_reference_date_2 => l_array_reference_date_2(Idx)
28899 ,p_reference_date_3 => l_array_reference_date_3(Idx)
28900 ,p_reference_date_4 => l_array_reference_date_4(Idx)
28901 ,p_event_created_by => l_array_event_created_by(Idx)
28902 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
28903 --
28904 END IF;
28905
28906
28907
28908 --
28909 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
28910
28911 l_acct_reversal_source := SUBSTR(NULL, 1,30);
28912
28913 IF l_continue_with_lines THEN
28914 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
28915 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
28916
28917 xla_accounting_err_pkg.build_message
28918 (p_appli_s_name => 'XLA'
28919 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
28920 ,p_token_1 => 'LINE_NUMBER'
28921 ,p_value_1 => l_array_extract_line_num(Idx)
28922 ,p_token_2 => 'PRODUCT_NAME'
28923 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
28924 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
28925 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
28926 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
28927
28928 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
28929 --
28930 -- following sets the accounting attributes needed to reverse
28931 -- accounting for a distributeion
28932 --
28933
28934 --
28935 -- 5217187
28936 --
28937 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
28938 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
28939 g_array_event(l_event_id).array_value_num('header_index'));
28940 --
28941 --
28942
28943 -- No reversal code generated
28944
28945 xla_ae_lines_pkg.SetAcctReversalAttrs
28946 (p_event_id => l_event_id
28947 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
28948 ,p_calculate_acctd_flag => l_calculate_acctd_flag
28949 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
28950 END IF;
28951
28952 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
28953 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
28954
28955 --
28956 AcctLineType_7 (
28957 p_application_id => p_application_id
28958 ,p_event_id => l_event_id
28959 ,p_calculate_acctd_flag => l_calculate_acctd_flag
28960 ,p_calculate_g_l_flag => l_calculate_g_l_flag
28961 ,p_actual_flag => l_actual_flag
28962 ,p_balance_type_code => l_balance_type_code
28963 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
28964
28965 , p_source_8 => l_array_source_8(Idx)
28966 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
28967 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
28968 , p_source_11 => l_array_source_11(Idx)
28969 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
28970 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
28971 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
28972 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
28973 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
28974 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
28975 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
28976 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
28977 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
28978 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
28979 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
28980 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
28981 );
28982 If(l_balance_type_code = 'A') THEN
28983 l_actual_gain_loss_ref := l_gain_or_loss_ref;
28984 END IF;
28985
28986 --
28987
28988
28989 --
28990 AcctLineType_16 (
28991 p_application_id => p_application_id
28992 ,p_event_id => l_event_id
28993 ,p_calculate_acctd_flag => l_calculate_acctd_flag
28994 ,p_calculate_g_l_flag => l_calculate_g_l_flag
28995 ,p_actual_flag => l_actual_flag
28996 ,p_balance_type_code => l_balance_type_code
28997 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
28998
28999 , p_source_7 => l_array_source_7(Idx)
29000 , p_source_8 => l_array_source_8(Idx)
29001 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
29002 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
29003 , p_source_11 => l_array_source_11(Idx)
29004 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
29005 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
29006 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
29007 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
29008 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
29009 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
29010 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
29011 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
29012 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
29013 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
29014 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
29015 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
29016 , p_source_31 => g_array_event(l_event_id).array_value_char('source_31')
29017 );
29018 If(l_balance_type_code = 'A') THEN
29019 l_actual_gain_loss_ref := l_gain_or_loss_ref;
29020 END IF;
29021
29022 --
29023
29024 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
29025 -- or secondary ledger that has different currency with primary
29026 -- or alc that is calculated by sla
29027 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
29028 (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'))
29029
29030 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
29031 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
29032 AND (l_actual_flag = 'A')) THEN
29033 XLA_AE_LINES_PKG.CreateGainOrLossLines(
29034 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
29035 ,p_application_id => p_application_id
29036 ,p_amb_context_code => 'DEFAULT'
29037 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
29038 ,p_event_class_code => C_EVENT_CLASS_CODE
29039 ,p_event_type_code => C_EVENT_TYPE_CODE
29040
29041 ,p_gain_ccid => -1
29042 ,p_loss_ccid => -1
29043
29044 ,p_actual_flag => l_actual_flag
29045 ,p_enc_flag => null
29046 ,p_actual_g_l_ref => l_actual_gain_loss_ref
29047 ,p_enc_g_l_ref => null
29048 );
29049 END IF;
29050 END IF;
29051 END IF;
29052
29053 ELSE
29054 --
29055 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
29056 --
29057 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
29058 trace
29059 (p_msg => 'Trancaction revesal option is Y'
29060 ,p_level => C_LEVEL_STATEMENT
29061 ,p_module => l_log_module);
29062 END IF;
29063 END IF;
29064
29065 END LOOP;
29066 l_result := XLA_AE_LINES_PKG.InsertLines ;
29067 end loop;
29068 close line_cur;
29069
29070
29071 --
29072 -- insert headers into xla_ae_headers_gt table
29073 --
29074 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
29075
29076 -- insert into errors table here.
29077
29078 END LOOP;
29079
29080 --
29081 -- 4865292
29082 --
29083 -- Compare g_hdr_extract_count with event count in
29084 -- CreateHeadersAndLines.
29085 --
29086 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
29087
29088 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
29089 trace (p_msg => '# rows extracted from header extract objects '
29090 || ' (running total): '
29091 || g_hdr_extract_count
29092 ,p_level => C_LEVEL_STATEMENT
29093 ,p_module => l_log_module);
29094 END IF;
29095
29096 CLOSE header_cur;
29097 --
29098
29099 --
29100 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29101 trace
29102 (p_msg => 'END of EventType_38'
29103 ,p_level => C_LEVEL_PROCEDURE
29104 ,p_module => l_log_module);
29105 END IF;
29106 --
29107 RETURN l_result;
29108 EXCEPTION
29109 WHEN xla_exceptions_pkg.application_exception THEN
29110
29111 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
29112
29113
29114 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
29115
29116 RAISE;
29117
29118 WHEN NO_DATA_FOUND THEN
29119
29120 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
29121 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
29122
29123 FOR header_record IN header_cur
29124 LOOP
29125 l_array_header_events(header_record.event_id) := header_record.event_id;
29126 END LOOP;
29127
29128 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
29129 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
29130
29131 fnd_file.put_line(fnd_file.LOG, ' ');
29132 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
29133 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
29134 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
29135
29136 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
29137 LOOP
29138 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
29139 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
29140 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
29141 END IF;
29142 END LOOP;
29143
29144 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
29145 fnd_file.put_line(fnd_file.LOG, ' ');
29146
29147
29148 xla_exceptions_pkg.raise_message
29149 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_38');
29150
29151
29152 WHEN OTHERS THEN
29153 xla_exceptions_pkg.raise_message
29154 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_38');
29155 END EventType_38;
29156 --
29157
29158 ---------------------------------------
29159 --
29160 -- PRIVATE PROCEDURE
29161 -- insert_sources_39
29162 --
29163 ----------------------------------------
29164 --
29165 PROCEDURE insert_sources_39(
29166 p_target_ledger_id IN NUMBER
29167 , p_language IN VARCHAR2
29168 , p_sla_ledger_id IN NUMBER
29169 , p_pad_start_date IN DATE
29170 , p_pad_end_date IN DATE
29171 )
29172 IS
29173
29174 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LOG_RET_RI_INV';
29175 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER';
29176 p_apps_owner VARCHAR2(30);
29177 l_log_module VARCHAR2(240);
29178 BEGIN
29179 IF g_log_enabled THEN
29180 l_log_module := C_DEFAULT_MODULE||'.insert_sources_39';
29181 END IF;
29182 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29183
29184 trace
29185 (p_msg => 'BEGIN of insert_sources_39'
29186 ,p_level => C_LEVEL_PROCEDURE
29187 ,p_module => l_log_module);
29188
29189 END IF;
29190
29191 -- select APPS owner
29192 SELECT oracle_username
29193 INTO p_apps_owner
29194 FROM fnd_oracle_userid
29195 WHERE read_only_flag = 'U'
29196 ;
29197
29198 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
29199 trace
29200 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
29201 ' - p_language = '||p_language||
29202 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
29203 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
29204 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
29205 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
29206 ,p_level => C_LEVEL_STATEMENT
29207 ,p_module => l_log_module);
29208 END IF;
29209
29210
29211 --
29212 INSERT INTO xla_diag_sources --hdr1
29213 (
29214 event_id
29215 , ledger_id
29216 , sla_ledger_id
29217 , description_language
29218 , object_name
29219 , object_type_code
29220 , line_number
29221 , source_application_id
29222 , source_type_code
29223 , source_code
29224 , source_value
29225 , source_meaning
29226 , created_by
29227 , creation_date
29228 , last_update_date
29229 , last_updated_by
29230 , last_update_login
29231 , program_update_date
29232 , program_application_id
29233 , program_id
29234 , request_id
29235 )
29236 SELECT
29237 event_id
29238 , p_target_ledger_id
29239 , p_sla_ledger_id
29240 , p_language
29241 , object_name
29242 , object_type_code
29243 , line_number
29244 , source_application_id
29245 , source_type_code
29246 , source_code
29247 , SUBSTR(source_value ,1,1996)
29248 , SUBSTR(source_meaning,1,200)
29249 , xla_environment_pkg.g_Usr_Id
29250 , TRUNC(SYSDATE)
29251 , TRUNC(SYSDATE)
29252 , xla_environment_pkg.g_Usr_Id
29253 , xla_environment_pkg.g_Login_Id
29254 , TRUNC(SYSDATE)
29255 , xla_environment_pkg.g_Prog_Appl_Id
29256 , xla_environment_pkg.g_Prog_Id
29257 , xla_environment_pkg.g_Req_Id
29258 FROM (
29259 SELECT xet.event_id event_id
29260 , 0 line_number
29261 , CASE r
29262 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
29263 WHEN 2 THEN 'CST_XLA_INV_SYSTEM_ITEMS_REF_V'
29264 WHEN 3 THEN 'CST_XLA_INV_REF_V'
29265 WHEN 4 THEN 'CST_XLA_INV_REF_V'
29266 WHEN 5 THEN 'CST_XLA_INV_TXN_TYPES_REF_V'
29267 WHEN 6 THEN 'CST_XLA_INV_HEADERS_V'
29268 WHEN 7 THEN 'PO_HEADERS_REF_V'
29269 WHEN 8 THEN 'CST_XLA_INV_ORG_PARAMS_REF_V'
29270 WHEN 9 THEN 'CST_XLA_INV_REF_V'
29271 WHEN 10 THEN 'CST_XLA_INV_REF_V'
29272 WHEN 11 THEN 'CST_XLA_INV_REF_V'
29273 WHEN 12 THEN 'CST_XLA_INV_REF_V'
29274 WHEN 13 THEN 'CST_XLA_INV_REF_V'
29275 WHEN 14 THEN 'PO_DISTS_REF_V'
29276 WHEN 15 THEN 'CST_XLA_INV_REF_V'
29277 WHEN 16 THEN 'CST_XLA_INV_REF_V'
29278 WHEN 17 THEN 'PSA_CST_XLA_UPG_V'
29279 WHEN 18 THEN 'PO_HEADERS_REF_V'
29280 WHEN 19 THEN 'PO_DISTS_REF_V'
29281 WHEN 20 THEN 'CST_XLA_INV_HEADERS_V'
29282
29283 ELSE null
29284 END object_name
29285 , CASE r
29286 WHEN 1 THEN 'HEADER'
29287 WHEN 2 THEN 'HEADER'
29288 WHEN 3 THEN 'HEADER'
29289 WHEN 4 THEN 'HEADER'
29290 WHEN 5 THEN 'HEADER'
29291 WHEN 6 THEN 'HEADER'
29292 WHEN 7 THEN 'HEADER'
29293 WHEN 8 THEN 'HEADER'
29294 WHEN 9 THEN 'HEADER'
29295 WHEN 10 THEN 'HEADER'
29296 WHEN 11 THEN 'HEADER'
29297 WHEN 12 THEN 'HEADER'
29298 WHEN 13 THEN 'HEADER'
29299 WHEN 14 THEN 'HEADER'
29300 WHEN 15 THEN 'HEADER'
29301 WHEN 16 THEN 'HEADER'
29302 WHEN 17 THEN 'HEADER'
29303 WHEN 18 THEN 'HEADER'
29304 WHEN 19 THEN 'HEADER'
29305 WHEN 20 THEN 'HEADER'
29306
29307 ELSE null
29308 END object_type_code
29309 , CASE r
29310 WHEN 1 THEN '707'
29311 WHEN 2 THEN '707'
29312 WHEN 3 THEN '707'
29313 WHEN 4 THEN '707'
29314 WHEN 5 THEN '707'
29315 WHEN 6 THEN '707'
29316 WHEN 7 THEN '201'
29317 WHEN 8 THEN '707'
29318 WHEN 9 THEN '707'
29319 WHEN 10 THEN '707'
29320 WHEN 11 THEN '707'
29321 WHEN 12 THEN '707'
29322 WHEN 13 THEN '707'
29323 WHEN 14 THEN '201'
29324 WHEN 15 THEN '707'
29325 WHEN 16 THEN '707'
29326 WHEN 17 THEN '707'
29327 WHEN 18 THEN '201'
29328 WHEN 19 THEN '201'
29329 WHEN 20 THEN '707'
29330
29331 ELSE null
29332 END source_application_id
29333 , 'S' source_type_code
29334 , CASE r
29335 WHEN 1 THEN 'TRANSACTION_ID'
29336 WHEN 2 THEN 'ITEM_CONCATENATED_SEGMENTS'
29337 WHEN 3 THEN 'TRANSACTION_QUANTITY'
29338 WHEN 4 THEN 'TRANSACTION_UOM'
29339 WHEN 5 THEN 'INV_TXN_TYPE_DESCRIPTION'
29340 WHEN 6 THEN 'DISTRIBUTION_TYPE'
29341 WHEN 7 THEN 'PURCH_ENCUMBRANCE_FLAG'
29342 WHEN 8 THEN 'ENCUMBRANCE_REVERSAL_FLAG'
29343 WHEN 9 THEN 'APPLIED_TO_APPL_ID'
29344 WHEN 10 THEN 'APPLIED_TO_DIST_LINK_TYPE'
29345 WHEN 11 THEN 'APPLIED_TO_ENTITY_CODE'
29346 WHEN 12 THEN 'TXN_PO_DISTRIBUTION_ID'
29347 WHEN 13 THEN 'APPLIED_TO_PO_DOC_ID'
29348 WHEN 14 THEN 'PO_BUDGET_ACCOUNT'
29349 WHEN 15 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
29350 WHEN 16 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
29351 WHEN 17 THEN 'CST_ENCUM_UPG_OPTION'
29352 WHEN 18 THEN 'PURCH_ENCUMBRANCE_TYPE_ID'
29353 WHEN 19 THEN 'RESERVED_FLAG'
29354 WHEN 20 THEN 'TRANSFER_TO_GL_INDICATOR'
29355
29356 ELSE null
29357 END source_code
29358 , CASE r
29359 WHEN 1 THEN TO_CHAR(h1.TRANSACTION_ID)
29360 WHEN 2 THEN TO_CHAR(h5.ITEM_CONCATENATED_SEGMENTS)
29361 WHEN 3 THEN TO_CHAR(h4.TRANSACTION_QUANTITY)
29362 WHEN 4 THEN TO_CHAR(h4.TRANSACTION_UOM)
29363 WHEN 5 THEN TO_CHAR(h6.INV_TXN_TYPE_DESCRIPTION)
29364 WHEN 6 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
29365 WHEN 7 THEN TO_CHAR(h8.PURCH_ENCUMBRANCE_FLAG)
29366 WHEN 8 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_FLAG)
29367 WHEN 9 THEN TO_CHAR(h4.APPLIED_TO_APPL_ID)
29368 WHEN 10 THEN TO_CHAR(h4.APPLIED_TO_DIST_LINK_TYPE)
29369 WHEN 11 THEN TO_CHAR(h4.APPLIED_TO_ENTITY_CODE)
29370 WHEN 12 THEN TO_CHAR(h4.TXN_PO_DISTRIBUTION_ID)
29371 WHEN 13 THEN TO_CHAR(h4.APPLIED_TO_PO_DOC_ID)
29372 WHEN 14 THEN TO_CHAR(h7.PO_BUDGET_ACCOUNT)
29373 WHEN 15 THEN TO_CHAR(h4.ENCUM_REVERSAL_AMOUNT_ENTERED)
29374 WHEN 16 THEN TO_CHAR(h4.ENCUMBRANCE_REVERSAL_AMOUNT)
29375 WHEN 17 THEN TO_CHAR(h9.CST_ENCUM_UPG_OPTION)
29376 WHEN 18 THEN TO_CHAR(h8.PURCH_ENCUMBRANCE_TYPE_ID)
29377 WHEN 19 THEN TO_CHAR(h7.RESERVED_FLAG)
29378 WHEN 20 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
29379
29380 ELSE null
29381 END source_value
29382 , CASE r
29383 WHEN 6 THEN fvl9.meaning
29384 WHEN 20 THEN fvl42.meaning
29385
29386 ELSE null
29387 END source_meaning
29388 FROM xla_events_gt xet
29389 , CST_XLA_INV_HEADERS_V h1
29390 , CST_XLA_INV_ORG_PARAMS_REF_V h3
29391 , CST_XLA_INV_REF_V h4
29392 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
29393 , CST_XLA_INV_TXN_TYPES_REF_V h6
29394 , PO_DISTS_REF_V h7
29395 , PO_HEADERS_REF_V h8
29396 , PSA_CST_XLA_UPG_V h9
29397 , fnd_lookup_values fvl9
29398 , fnd_lookup_values fvl42
29399 ,(select rownum r from all_objects where rownum <= 20 and owner = p_apps_owner)
29400 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
29401 AND xet.event_type_code = C_EVENT_TYPE_CODE
29402 AND h1.event_id = xet.event_id
29403 AND h3.inv_organization_id (+) = h1.organization_id AND h4.ref_transaction_id = h1.transaction_id AND h5.inventory_item_id (+) = h1.inventory_item_id and h5.organization_id (+) = h1.organization_id AND h6.inv_transaction_type_id = h1.transaction_type_id AND h4.txn_po_header_id = h7.po_header_id (+) and h4.txn_po_distribution_id = h7.po_distribution_id (+) AND h4.txn_po_header_id = h8.po_header_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) =
29404 'CST_DISTRIBUTION_TYPE'
29405 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
29406 AND fvl9.view_application_id(+) = 700
29407 AND fvl9.language(+) = USERENV('LANG')
29408 AND fvl42.lookup_type(+) = 'YES_NO'
29409 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
29410 AND fvl42.view_application_id(+) = 0
29411 AND fvl42.language(+) = USERENV('LANG')
29412
29413 )
29414 ;
29415 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
29416
29417 trace
29418 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
29419 ,p_level => C_LEVEL_STATEMENT
29420 ,p_module => l_log_module);
29421
29422 END IF;
29423 --
29424
29425
29426
29427 --
29428 INSERT INTO xla_diag_sources --line1
29429 (
29430 event_id
29431 , ledger_id
29432 , sla_ledger_id
29433 , description_language
29434 , object_name
29435 , object_type_code
29436 , line_number
29437 , source_application_id
29438 , source_type_code
29439 , source_code
29440 , source_value
29441 , source_meaning
29442 , created_by
29443 , creation_date
29444 , last_update_date
29445 , last_updated_by
29446 , last_update_login
29447 , program_update_date
29448 , program_application_id
29449 , program_id
29450 , request_id
29451 )
29452 SELECT event_id
29453 , p_target_ledger_id
29454 , p_sla_ledger_id
29455 , p_language
29456 , object_name
29457 , object_type_code
29458 , line_number
29459 , source_application_id
29460 , source_type_code
29461 , source_code
29462 , SUBSTR(source_value,1,1996)
29463 , SUBSTR(source_meaning,1,200)
29464 , xla_environment_pkg.g_Usr_Id
29465 , TRUNC(SYSDATE)
29466 , TRUNC(SYSDATE)
29467 , xla_environment_pkg.g_Usr_Id
29468 , xla_environment_pkg.g_Login_Id
29469 , TRUNC(SYSDATE)
29470 , xla_environment_pkg.g_Prog_Appl_Id
29471 , xla_environment_pkg.g_Prog_Id
29472 , xla_environment_pkg.g_Req_Id
29473 FROM (
29474 SELECT xet.event_id event_id
29475 , l2.line_number line_number
29476 , CASE r
29477 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
29478 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
29479 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
29480
29481 ELSE null
29482 END object_name
29483 , CASE r
29484 WHEN 1 THEN 'LINE'
29485 WHEN 2 THEN 'LINE'
29486 WHEN 3 THEN 'LINE'
29487
29488 ELSE null
29489 END object_type_code
29490 , CASE r
29491 WHEN 1 THEN '707'
29492 WHEN 2 THEN '707'
29493 WHEN 3 THEN '707'
29494
29495 ELSE null
29496 END source_application_id
29497 , 'S' source_type_code
29498 , CASE r
29499 WHEN 1 THEN 'ACCOUNTING_LINE_TYPE_CODE'
29500 WHEN 2 THEN 'DISTRIBUTION_IDENTIFIER'
29501 WHEN 3 THEN 'CURRENCY_CODE'
29502
29503 ELSE null
29504 END source_code
29505 , CASE r
29506 WHEN 1 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
29507 WHEN 2 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
29508 WHEN 3 THEN TO_CHAR(l2.CURRENCY_CODE)
29509
29510 ELSE null
29511 END source_value
29512 , null source_meaning
29513 FROM xla_events_gt xet
29514 , CST_XLA_INV_LINES_V l2
29515 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
29516 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
29517 AND xet.event_type_code = C_EVENT_TYPE_CODE
29518 AND l2.event_id = xet.event_id
29519
29520 )
29521 ;
29522 --
29523 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
29524
29525 trace
29526 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
29527 ,p_level => C_LEVEL_STATEMENT
29528 ,p_module => l_log_module);
29529
29530 END IF;
29531
29532
29533 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29534 trace
29535 (p_msg => 'END of insert_sources_39'
29536 ,p_level => C_LEVEL_PROCEDURE
29537 ,p_module => l_log_module);
29538 END IF;
29539 EXCEPTION
29540 WHEN xla_exceptions_pkg.application_exception THEN
29541 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
29542 trace
29543 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
29544 ,p_level => C_LEVEL_EXCEPTION
29545 ,p_module => l_log_module);
29546 END IF;
29547 RAISE;
29548 WHEN OTHERS THEN
29549 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
29550 trace
29551 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
29552 ,p_level => C_LEVEL_EXCEPTION
29553 ,p_module => l_log_module);
29554 END IF;
29555 xla_exceptions_pkg.raise_message
29556 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_39');
29557 END insert_sources_39;
29558 --
29559
29560 ---------------------------------------
29561 --
29562 -- PRIVATE FUNCTION
29563 -- EventType_39
29564 --
29565 ----------------------------------------
29566 --
29567 FUNCTION EventType_39
29568 (p_application_id IN NUMBER
29569 ,p_base_ledger_id IN NUMBER
29570 ,p_target_ledger_id IN NUMBER
29571 ,p_language IN VARCHAR2
29572 ,p_currency_code IN VARCHAR2
29573 ,p_sla_ledger_id IN NUMBER
29574 ,p_pad_start_date IN DATE
29575 ,p_pad_end_date IN DATE
29576 ,p_primary_ledger_id IN NUMBER)
29577 RETURN BOOLEAN IS
29578 --
29579 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LOG_RET_RI_INV';
29580 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER';
29581
29582 l_calculate_acctd_flag VARCHAR2(1) :='N';
29583 l_calculate_g_l_flag VARCHAR2(1) :='N';
29584 --
29585 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
29586 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
29587 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
29588 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
29589 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
29590 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
29591 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
29592 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
29593 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
29594 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
29595 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
29596 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
29597 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
29598 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
29599 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
29600 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
29601 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
29602 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
29603 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
29604 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
29605 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
29606 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
29607 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
29608 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
29609 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
29610 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
29611
29612 l_event_id NUMBER;
29613 l_previous_event_id NUMBER;
29614 l_first_event_id NUMBER;
29615 l_last_event_id NUMBER;
29616
29617 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
29618 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29619 --
29620 --
29621 l_result BOOLEAN := TRUE;
29622 l_rows NUMBER := 1000;
29623 l_event_type_name VARCHAR2(80) := 'Logical Return to Receiving Inspection from Inventory';
29624 l_event_class_name VARCHAR2(80) := 'PO Delivery into Inventory';
29625 l_description VARCHAR2(4000);
29626 l_transaction_reversal NUMBER;
29627 l_ae_header_id NUMBER;
29628 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
29629 l_log_module VARCHAR2(240);
29630 --
29631 l_acct_reversal_source VARCHAR2(30);
29632 l_trx_reversal_source VARCHAR2(30);
29633
29634 l_continue_with_lines BOOLEAN := TRUE;
29635 --
29636 l_acc_rev_gl_date_source DATE; -- 4262811
29637 --
29638 type t_array_event_id is table of number index by binary_integer;
29639
29640 l_rec_array_event t_rec_array_event;
29641 l_null_rec_array_event t_rec_array_event;
29642 l_array_ae_header_id xla_number_array_type;
29643 l_actual_flag VARCHAR2(1) := NULL;
29644 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
29645 l_balance_type_code VARCHAR2(1) :=NULL;
29646 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
29647
29648 --
29649 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
29650 --
29651
29652 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSACTION_ID%TYPE INDEX BY BINARY_INTEGER;
29653 TYPE t_array_source_2 IS TABLE OF CST_XLA_INV_SYSTEM_ITEMS_REF_V.ITEM_CONCATENATED_SEGMENTS%TYPE INDEX BY BINARY_INTEGER;
29654 TYPE t_array_source_3 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_QUANTITY%TYPE INDEX BY BINARY_INTEGER;
29655 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_UOM%TYPE INDEX BY BINARY_INTEGER;
29656 TYPE t_array_source_5 IS TABLE OF CST_XLA_INV_TXN_TYPES_REF_V.INV_TXN_TYPE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
29657 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
29658 TYPE t_array_source_16 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
29659 TYPE t_array_source_17 IS TABLE OF CST_XLA_INV_ORG_PARAMS_REF_V.ENCUMBRANCE_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
29660 TYPE t_array_source_19 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
29661 TYPE t_array_source_20 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
29662 TYPE t_array_source_21 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
29663 TYPE t_array_source_22 IS TABLE OF CST_XLA_INV_REF_V.TXN_PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
29664 TYPE t_array_source_23 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
29665 TYPE t_array_source_24 IS TABLE OF PO_DISTS_REF_V.PO_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
29666 TYPE t_array_source_25 IS TABLE OF CST_XLA_INV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
29667 TYPE t_array_source_26 IS TABLE OF CST_XLA_INV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
29668 TYPE t_array_source_27 IS TABLE OF PSA_CST_XLA_UPG_V.CST_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
29669 TYPE t_array_source_28 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
29670 TYPE t_array_source_31 IS TABLE OF PO_DISTS_REF_V.RESERVED_FLAG%TYPE INDEX BY BINARY_INTEGER;
29671 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
29672
29673 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
29674 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
29675 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
29676
29677 l_array_source_1 t_array_source_1;
29678 l_array_source_2 t_array_source_2;
29679 l_array_source_3 t_array_source_3;
29680 l_array_source_4 t_array_source_4;
29681 l_array_source_5 t_array_source_5;
29682 l_array_source_9 t_array_source_9;
29683 l_array_source_9_meaning t_array_lookup_meaning;
29684 l_array_source_16 t_array_source_16;
29685 l_array_source_17 t_array_source_17;
29686 l_array_source_19 t_array_source_19;
29687 l_array_source_20 t_array_source_20;
29688 l_array_source_21 t_array_source_21;
29689 l_array_source_22 t_array_source_22;
29690 l_array_source_23 t_array_source_23;
29691 l_array_source_24 t_array_source_24;
29692 l_array_source_25 t_array_source_25;
29693 l_array_source_26 t_array_source_26;
29694 l_array_source_27 t_array_source_27;
29695 l_array_source_28 t_array_source_28;
29696 l_array_source_31 t_array_source_31;
29697 l_array_source_42 t_array_source_42;
29698 l_array_source_42_meaning t_array_lookup_meaning;
29699
29700 l_array_source_7 t_array_source_7;
29701 l_array_source_8 t_array_source_8;
29702 l_array_source_11 t_array_source_11;
29703
29704 --
29705 CURSOR header_cur
29706 IS
29707 SELECT /*+ leading(xet) cardinality(xet,1) */
29708 -- Event Type Code: LOG_RET_RI_INV
29709 -- Event Class Code: PURCHASE_ORDER
29710 xet.entity_id
29711 , xet.legal_entity_id
29712 , xet.entity_code
29713 , xet.transaction_number
29714 , xet.event_id
29715 , xet.event_class_code
29716 , xet.event_type_code
29717 , xet.event_number
29718 , xet.event_date
29719 , xet.transaction_date
29720 , xet.reference_num_1
29721 , xet.reference_num_2
29722 , xet.reference_num_3
29723 , xet.reference_num_4
29724 , xet.reference_char_1
29725 , xet.reference_char_2
29726 , xet.reference_char_3
29727 , xet.reference_char_4
29728 , xet.reference_date_1
29729 , xet.reference_date_2
29730 , xet.reference_date_3
29731 , xet.reference_date_4
29732 , xet.event_created_by
29733 , xet.budgetary_control_flag
29734 , h1.TRANSACTION_ID source_1
29735 , h5.ITEM_CONCATENATED_SEGMENTS source_2
29736 , h4.TRANSACTION_QUANTITY source_3
29737 , h4.TRANSACTION_UOM source_4
29738 , h6.INV_TXN_TYPE_DESCRIPTION source_5
29739 , h1.DISTRIBUTION_TYPE source_9
29740 , fvl9.meaning source_9_meaning
29741 , h8.PURCH_ENCUMBRANCE_FLAG source_16
29742 , h3.ENCUMBRANCE_REVERSAL_FLAG source_17
29743 , h4.APPLIED_TO_APPL_ID source_19
29744 , h4.APPLIED_TO_DIST_LINK_TYPE source_20
29745 , h4.APPLIED_TO_ENTITY_CODE source_21
29746 , h4.TXN_PO_DISTRIBUTION_ID source_22
29747 , h4.APPLIED_TO_PO_DOC_ID source_23
29748 , h7.PO_BUDGET_ACCOUNT source_24
29749 , h4.ENCUM_REVERSAL_AMOUNT_ENTERED source_25
29750 , h4.ENCUMBRANCE_REVERSAL_AMOUNT source_26
29751 , h9.CST_ENCUM_UPG_OPTION source_27
29752 , h8.PURCH_ENCUMBRANCE_TYPE_ID source_28
29753 , h7.RESERVED_FLAG source_31
29754 , h1.TRANSFER_TO_GL_INDICATOR source_42
29755 , fvl42.meaning source_42_meaning
29756 FROM xla_events_gt xet
29757 , CST_XLA_INV_HEADERS_V h1
29758 , CST_XLA_INV_ORG_PARAMS_REF_V h3
29759 , CST_XLA_INV_REF_V h4
29760 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
29761 , CST_XLA_INV_TXN_TYPES_REF_V h6
29762 , PO_DISTS_REF_V h7
29763 , PO_HEADERS_REF_V h8
29764 , PSA_CST_XLA_UPG_V h9
29765 , fnd_lookup_values fvl9
29766 , fnd_lookup_values fvl42
29767 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
29768 and xet.event_type_code = C_EVENT_TYPE_CODE
29769 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
29770 AND h3.INV_ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h4.ref_transaction_id = h1.transaction_id AND h5.INVENTORY_ITEM_ID (+) = h1.INVENTORY_ITEM_ID AND h5.ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h6.INV_TRANSACTION_TYPE_ID = h1.TRANSACTION_TYPE_ID AND h4.txn_po_header_id = h7.po_header_id (+) AND h4.txn_po_distribution_id = h7.po_distribution_id (+) AND h4.txn_po_header_id = h8.po_header_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) =
29771 'CST_DISTRIBUTION_TYPE'
29772 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
29773 AND fvl9.view_application_id(+) = 700
29774 AND fvl9.language(+) = USERENV('LANG')
29775 AND fvl42.lookup_type(+) = 'YES_NO'
29776 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
29777 AND fvl42.view_application_id(+) = 0
29778 AND fvl42.language(+) = USERENV('LANG')
29779
29780 ORDER BY event_id
29781 ;
29782
29783
29784 --
29785 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
29786 IS
29787 SELECT /*+ leading(xet) cardinality(xet,1) */
29788 -- Event Type Code: LOG_RET_RI_INV
29789 -- Event Class Code: PURCHASE_ORDER
29790 xet.entity_id
29791 ,xet.legal_entity_id
29792 ,xet.entity_code
29793 ,xet.transaction_number
29794 ,xet.event_id
29795 ,xet.event_class_code
29796 ,xet.event_type_code
29797 ,xet.event_number
29798 ,xet.event_date
29799 ,xet.transaction_date
29800 ,xet.reference_num_1
29801 ,xet.reference_num_2
29802 ,xet.reference_num_3
29803 ,xet.reference_num_4
29804 ,xet.reference_char_1
29805 ,xet.reference_char_2
29806 ,xet.reference_char_3
29807 ,xet.reference_char_4
29808 ,xet.reference_date_1
29809 ,xet.reference_date_2
29810 ,xet.reference_date_3
29811 ,xet.reference_date_4
29812 ,xet.event_created_by
29813 ,xet.budgetary_control_flag , l2.LINE_NUMBER
29814 , l2.ACCOUNTING_LINE_TYPE_CODE source_7
29815 , l2.DISTRIBUTION_IDENTIFIER source_8
29816 , l2.CURRENCY_CODE source_11
29817 FROM xla_events_gt xet
29818 , CST_XLA_INV_LINES_V l2
29819 WHERE xet.event_id between x_first_event_id and x_last_event_id
29820 and xet.event_date between p_pad_start_date and p_pad_end_date
29821 and xet.event_type_code = C_EVENT_TYPE_CODE
29822 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
29823 ;
29824
29825 --
29826 BEGIN
29827 IF g_log_enabled THEN
29828 l_log_module := C_DEFAULT_MODULE||'.EventType_39';
29829 END IF;
29830 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29831 trace
29832 (p_msg => 'BEGIN of EventType_39'
29833 ,p_level => C_LEVEL_PROCEDURE
29834 ,p_module => l_log_module);
29835 END IF;
29836
29837 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
29838 trace
29839 (p_msg => 'p_application_id = '||p_application_id||
29840 ' - p_base_ledger_id = '||p_base_ledger_id||
29841 ' - p_target_ledger_id = '||p_target_ledger_id||
29842 ' - p_language = '||p_language||
29843 ' - p_currency_code = '||p_currency_code||
29844 ' - p_sla_ledger_id = '||p_sla_ledger_id
29845 ,p_level => C_LEVEL_STATEMENT
29846 ,p_module => l_log_module);
29847 END IF;
29848 --
29849 -- initialze arrays
29850 --
29851 g_array_event.DELETE;
29852 l_rec_array_event := l_null_rec_array_event;
29853 --
29854 --------------------------------------
29855 -- 4262811 Initialze MPA Line Number
29856 --------------------------------------
29857 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
29858
29859 --
29860
29861 --
29862 OPEN header_cur;
29863 --
29864 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
29865 trace
29866 (p_msg => 'SQL - FETCH header_cur'
29867 ,p_level => C_LEVEL_STATEMENT
29868 ,p_module => l_log_module);
29869 END IF;
29870 --
29871 LOOP
29872 FETCH header_cur BULK COLLECT INTO
29873 l_array_entity_id
29874 , l_array_legal_entity_id
29875 , l_array_entity_code
29876 , l_array_transaction_num
29877 , l_array_event_id
29878 , l_array_class_code
29879 , l_array_event_type
29880 , l_array_event_number
29881 , l_array_event_date
29882 , l_array_transaction_date
29883 , l_array_reference_num_1
29884 , l_array_reference_num_2
29885 , l_array_reference_num_3
29886 , l_array_reference_num_4
29887 , l_array_reference_char_1
29888 , l_array_reference_char_2
29889 , l_array_reference_char_3
29890 , l_array_reference_char_4
29891 , l_array_reference_date_1
29892 , l_array_reference_date_2
29893 , l_array_reference_date_3
29894 , l_array_reference_date_4
29895 , l_array_event_created_by
29896 , l_array_budgetary_control_flag
29897 , l_array_source_1
29898 , l_array_source_2
29899 , l_array_source_3
29900 , l_array_source_4
29901 , l_array_source_5
29902 , l_array_source_9
29903 , l_array_source_9_meaning
29904 , l_array_source_16
29905 , l_array_source_17
29906 , l_array_source_19
29907 , l_array_source_20
29908 , l_array_source_21
29909 , l_array_source_22
29910 , l_array_source_23
29911 , l_array_source_24
29912 , l_array_source_25
29913 , l_array_source_26
29914 , l_array_source_27
29915 , l_array_source_28
29916 , l_array_source_31
29917 , l_array_source_42
29918 , l_array_source_42_meaning
29919 LIMIT l_rows;
29920 --
29921 IF (C_LEVEL_EVENT >= g_log_level) THEN
29922 trace
29923 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
29924 ,p_level => C_LEVEL_EVENT
29925 ,p_module => l_log_module);
29926 END IF;
29927 --
29928 EXIT WHEN l_array_entity_id.COUNT = 0;
29929
29930 -- initialize arrays
29931 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
29932 XLA_AE_LINES_PKG.g_rec_lines := NULL;
29933
29934 --
29935 -- Bug 4458708
29936 --
29937 XLA_AE_LINES_PKG.g_LineNumber := 0;
29938
29939
29940 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
29941 g_last_hdr_idx := l_array_event_id.LAST;
29942 --
29943 -- loop for the headers. Each iteration is for each header extract row
29944 -- fetched in header cursor
29945 --
29946 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
29947
29948 --
29949 -- set event info as cache for other routines to refer event attributes
29950 --
29951 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
29952 (p_application_id => p_application_id
29953 ,p_primary_ledger_id => p_primary_ledger_id
29954 ,p_base_ledger_id => p_base_ledger_id
29955 ,p_target_ledger_id => p_target_ledger_id
29956 ,p_entity_id => l_array_entity_id(hdr_idx)
29957 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
29958 ,p_entity_code => l_array_entity_code(hdr_idx)
29959 ,p_transaction_num => l_array_transaction_num(hdr_idx)
29960 ,p_event_id => l_array_event_id(hdr_idx)
29961 ,p_event_class_code => l_array_class_code(hdr_idx)
29962 ,p_event_type_code => l_array_event_type(hdr_idx)
29963 ,p_event_number => l_array_event_number(hdr_idx)
29964 ,p_event_date => l_array_event_date(hdr_idx)
29965 ,p_transaction_date => l_array_transaction_date(hdr_idx)
29966 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
29967 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
29968 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
29969 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
29970 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
29971 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
29972 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
29973 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
29974 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
29975 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
29976 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
29977 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
29978 ,p_event_created_by => l_array_event_created_by(hdr_idx)
29979 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
29980
29981 --
29982 -- set the status of entry to C_VALID (0)
29983 --
29984 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
29985
29986 --
29987 -- initialize a row for ae header
29988 --
29989 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
29990
29991 l_event_id := l_array_event_id(hdr_idx);
29992
29993 --
29994 -- storing the hdr_idx for event. May be used by line cursor.
29995 --
29996 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
29997
29998 --
29999 -- store sources from header extract. This can be improved to
30000 -- store only those sources from header extract that may be used in lines
30001 --
30002
30003 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
30004 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
30005 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
30006 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
30007 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
30008 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
30009 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
30010 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
30011 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
30012 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
30013 g_array_event(l_event_id).array_value_char('source_20') := l_array_source_20(hdr_idx);
30014 g_array_event(l_event_id).array_value_char('source_21') := l_array_source_21(hdr_idx);
30015 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
30016 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
30017 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
30018 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
30019 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
30020 g_array_event(l_event_id).array_value_char('source_27') := l_array_source_27(hdr_idx);
30021 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
30022 g_array_event(l_event_id).array_value_char('source_31') := l_array_source_31(hdr_idx);
30023 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
30024 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
30025
30026 --
30027 -- initilaize the status of ae headers for diffrent balance types
30028 -- the status is initialised to C_NOT_CREATED (2)
30029 --
30030 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
30031 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
30032 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
30033
30034 --
30035 -- call api to validate and store accounting attributes for header
30036 --
30037
30038 ------------------------------------------------------------
30039 -- Accrual Reversal : to get date for Standard Source (NONE)
30040 ------------------------------------------------------------
30041 l_acc_rev_gl_date_source := NULL;
30042
30043 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
30044 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_28');
30045 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
30046 l_rec_acct_attrs.array_date_value(2) :=
30047 xla_ae_sources_pkg.GetSystemSourceDate(
30048 p_source_code => 'XLA_REFERENCE_DATE_1'
30049 , p_source_type_code => 'Y'
30050 , p_source_application_id => 602
30051 );
30052 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
30053 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_42');
30054
30055
30056 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
30057
30058 XLA_AE_HEADER_PKG.SetJeCategoryName;
30059
30060 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
30061 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
30062 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
30063 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
30064 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
30065
30066
30067 --
30068 xla_ae_header_pkg.SetHdrDescription(
30069 p_description => Description_1 (
30070 p_application_id => p_application_id
30071 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
30072 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
30073 , p_source_3 => g_array_event(l_event_id).array_value_num('source_3')
30074 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
30075 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
30076 )
30077 );
30078 --
30079
30080 -- No header level analytical criteria
30081
30082 --
30083 --accounting attribute enhancement, bug 3612931
30084 --
30085 l_trx_reversal_source := SUBSTR(NULL, 1,30);
30086
30087 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
30088 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
30089
30090 xla_accounting_err_pkg.build_message
30091 (p_appli_s_name => 'XLA'
30092 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
30093 ,p_token_1 => 'ACCT_ATTR_NAME'
30094 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
30095 ,p_token_2 => 'PRODUCT_NAME'
30096 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
30097 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
30098 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
30099 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
30100
30101 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
30102 --
30103 -- following sets the accounting attributes needed to reverse
30104 -- accounting for a distributeion
30105 --
30106 xla_ae_lines_pkg.SetTrxReversalAttrs
30107 (p_event_id => l_event_id
30108 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
30109 ,p_trx_reversal_source => l_trx_reversal_source);
30110
30111 END IF;
30112
30113
30114 ----------------------------------------------------------------
30115 -- 4262811 - update the header statuses to invalid in need be
30116 ----------------------------------------------------------------
30117 --
30118 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
30119
30120
30121 -----------------------------------------------
30122 -- No accrual reversal for the event class/type
30123 -----------------------------------------------
30124 ----------------------------------------------------------------
30125
30126 --
30127 -- this ends the header loop iteration for one bulk fetch
30128 --
30129 END LOOP;
30130
30131 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
30132 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
30133
30134 --
30135 -- insert dummy rows into lines gt table that were created due to
30136 -- transaction reversals
30137 --
30138 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
30139 l_result := XLA_AE_LINES_PKG.InsertLines;
30140 END IF;
30141
30142 --
30143 -- reset the temp_line_num for each set of events fetched from header
30144 -- cursor rather than doing it for each new event in line cursor
30145 -- Bug 3939231
30146 --
30147 xla_ae_lines_pkg.g_temp_line_num := 0;
30148
30149
30150
30151 --
30152 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
30153 --
30154 --
30155 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
30156
30157 trace
30158 (p_msg => 'SQL - FETCH line_cur'
30159 ,p_level => C_LEVEL_STATEMENT
30160 ,p_module => l_log_module);
30161
30162 END IF;
30163 --
30164 --
30165 LOOP
30166 --
30167 FETCH line_cur BULK COLLECT INTO
30168 l_array_entity_id
30169 , l_array_legal_entity_id
30170 , l_array_entity_code
30171 , l_array_transaction_num
30172 , l_array_event_id
30173 , l_array_class_code
30174 , l_array_event_type
30175 , l_array_event_number
30176 , l_array_event_date
30177 , l_array_transaction_date
30178 , l_array_reference_num_1
30179 , l_array_reference_num_2
30180 , l_array_reference_num_3
30181 , l_array_reference_num_4
30182 , l_array_reference_char_1
30183 , l_array_reference_char_2
30184 , l_array_reference_char_3
30185 , l_array_reference_char_4
30186 , l_array_reference_date_1
30187 , l_array_reference_date_2
30188 , l_array_reference_date_3
30189 , l_array_reference_date_4
30190 , l_array_event_created_by
30191 , l_array_budgetary_control_flag
30192 , l_array_extract_line_num
30193 , l_array_source_7
30194 , l_array_source_8
30195 , l_array_source_11
30196 LIMIT l_rows;
30197
30198 --
30199 IF (C_LEVEL_EVENT >= g_log_level) THEN
30200 trace
30201 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
30202 ,p_level => C_LEVEL_EVENT
30203 ,p_module => l_log_module);
30204 END IF;
30205 --
30206 EXIT WHEN l_array_entity_id.count = 0;
30207
30208 XLA_AE_LINES_PKG.g_rec_lines := null;
30209
30210 --
30211 -- Bug 4458708
30212 --
30213 XLA_AE_LINES_PKG.g_LineNumber := 0;
30214 --
30215 --
30216
30217 FOR Idx IN 1..l_array_event_id.count LOOP
30218 --
30219 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
30220 --
30221 l_event_id := l_array_event_id(idx); -- 5648433
30222
30223 --
30224 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
30225 --
30226
30227 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
30228 (g_array_event(l_event_id).array_value_num('header_index'))
30229 ,'N'
30230 ) <> 'Y'
30231 THEN
30232 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
30233 trace
30234 (p_msg => 'Trancaction revesal option is not Y '
30235 ,p_level => C_LEVEL_STATEMENT
30236 ,p_module => l_log_module);
30237 END IF;
30238
30239 --
30240 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
30241 --
30242 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
30243 --
30244 -- set event info as cache for other routines to refer event attributes
30245 --
30246
30247 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
30248 l_previous_event_id := l_event_id;
30249
30250 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
30251 (p_application_id => p_application_id
30252 ,p_primary_ledger_id => p_primary_ledger_id
30253 ,p_base_ledger_id => p_base_ledger_id
30254 ,p_target_ledger_id => p_target_ledger_id
30255 ,p_entity_id => l_array_entity_id(Idx)
30256 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
30257 ,p_entity_code => l_array_entity_code(Idx)
30258 ,p_transaction_num => l_array_transaction_num(Idx)
30259 ,p_event_id => l_array_event_id(Idx)
30260 ,p_event_class_code => l_array_class_code(Idx)
30261 ,p_event_type_code => l_array_event_type(Idx)
30262 ,p_event_number => l_array_event_number(Idx)
30263 ,p_event_date => l_array_event_date(Idx)
30264 ,p_transaction_date => l_array_transaction_date(Idx)
30265 ,p_reference_num_1 => l_array_reference_num_1(Idx)
30266 ,p_reference_num_2 => l_array_reference_num_2(Idx)
30267 ,p_reference_num_3 => l_array_reference_num_3(Idx)
30268 ,p_reference_num_4 => l_array_reference_num_4(Idx)
30269 ,p_reference_char_1 => l_array_reference_char_1(Idx)
30270 ,p_reference_char_2 => l_array_reference_char_2(Idx)
30271 ,p_reference_char_3 => l_array_reference_char_3(Idx)
30272 ,p_reference_char_4 => l_array_reference_char_4(Idx)
30273 ,p_reference_date_1 => l_array_reference_date_1(Idx)
30274 ,p_reference_date_2 => l_array_reference_date_2(Idx)
30275 ,p_reference_date_3 => l_array_reference_date_3(Idx)
30276 ,p_reference_date_4 => l_array_reference_date_4(Idx)
30277 ,p_event_created_by => l_array_event_created_by(Idx)
30278 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
30279 --
30280 END IF;
30281
30282
30283
30284 --
30285 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
30286
30287 l_acct_reversal_source := SUBSTR(NULL, 1,30);
30288
30289 IF l_continue_with_lines THEN
30290 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
30291 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
30292
30293 xla_accounting_err_pkg.build_message
30294 (p_appli_s_name => 'XLA'
30295 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
30296 ,p_token_1 => 'LINE_NUMBER'
30297 ,p_value_1 => l_array_extract_line_num(Idx)
30298 ,p_token_2 => 'PRODUCT_NAME'
30299 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
30300 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
30301 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
30302 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
30303
30304 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
30305 --
30306 -- following sets the accounting attributes needed to reverse
30307 -- accounting for a distributeion
30308 --
30309
30310 --
30311 -- 5217187
30312 --
30313 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
30314 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
30315 g_array_event(l_event_id).array_value_num('header_index'));
30316 --
30317 --
30318
30319 -- No reversal code generated
30320
30321 xla_ae_lines_pkg.SetAcctReversalAttrs
30322 (p_event_id => l_event_id
30323 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
30324 ,p_calculate_acctd_flag => l_calculate_acctd_flag
30325 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
30326 END IF;
30327
30328 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
30329 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
30330
30331 --
30332 AcctLineType_11 (
30333 p_application_id => p_application_id
30334 ,p_event_id => l_event_id
30335 ,p_calculate_acctd_flag => l_calculate_acctd_flag
30336 ,p_calculate_g_l_flag => l_calculate_g_l_flag
30337 ,p_actual_flag => l_actual_flag
30338 ,p_balance_type_code => l_balance_type_code
30339 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
30340
30341 , p_source_8 => l_array_source_8(Idx)
30342 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
30343 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
30344 , p_source_11 => l_array_source_11(Idx)
30345 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
30346 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
30347 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
30348 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
30349 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
30350 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
30351 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
30352 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
30353 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
30354 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
30355 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
30356 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
30357 );
30358 If(l_balance_type_code = 'A') THEN
30359 l_actual_gain_loss_ref := l_gain_or_loss_ref;
30360 END IF;
30361
30362 --
30363
30364
30365 --
30366 AcctLineType_17 (
30367 p_application_id => p_application_id
30368 ,p_event_id => l_event_id
30369 ,p_calculate_acctd_flag => l_calculate_acctd_flag
30370 ,p_calculate_g_l_flag => l_calculate_g_l_flag
30371 ,p_actual_flag => l_actual_flag
30372 ,p_balance_type_code => l_balance_type_code
30373 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
30374
30375 , p_source_7 => l_array_source_7(Idx)
30376 , p_source_8 => l_array_source_8(Idx)
30377 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
30378 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
30379 , p_source_11 => l_array_source_11(Idx)
30380 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
30381 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
30382 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
30383 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
30384 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
30385 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
30386 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
30387 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
30388 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
30389 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
30390 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
30391 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
30392 , p_source_31 => g_array_event(l_event_id).array_value_char('source_31')
30393 );
30394 If(l_balance_type_code = 'A') THEN
30395 l_actual_gain_loss_ref := l_gain_or_loss_ref;
30396 END IF;
30397
30398 --
30399
30400 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
30401 -- or secondary ledger that has different currency with primary
30402 -- or alc that is calculated by sla
30403 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
30404 (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'))
30405
30406 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
30407 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
30408 AND (l_actual_flag = 'A')) THEN
30409 XLA_AE_LINES_PKG.CreateGainOrLossLines(
30410 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
30411 ,p_application_id => p_application_id
30412 ,p_amb_context_code => 'DEFAULT'
30413 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
30414 ,p_event_class_code => C_EVENT_CLASS_CODE
30415 ,p_event_type_code => C_EVENT_TYPE_CODE
30416
30417 ,p_gain_ccid => -1
30418 ,p_loss_ccid => -1
30419
30420 ,p_actual_flag => l_actual_flag
30421 ,p_enc_flag => null
30422 ,p_actual_g_l_ref => l_actual_gain_loss_ref
30423 ,p_enc_g_l_ref => null
30424 );
30425 END IF;
30426 END IF;
30427 END IF;
30428
30429 ELSE
30430 --
30431 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
30432 --
30433 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
30434 trace
30435 (p_msg => 'Trancaction revesal option is Y'
30436 ,p_level => C_LEVEL_STATEMENT
30437 ,p_module => l_log_module);
30438 END IF;
30439 END IF;
30440
30441 END LOOP;
30442 l_result := XLA_AE_LINES_PKG.InsertLines ;
30443 end loop;
30444 close line_cur;
30445
30446
30447 --
30448 -- insert headers into xla_ae_headers_gt table
30449 --
30450 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
30451
30452 -- insert into errors table here.
30453
30454 END LOOP;
30455
30456 --
30457 -- 4865292
30458 --
30459 -- Compare g_hdr_extract_count with event count in
30460 -- CreateHeadersAndLines.
30461 --
30462 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
30463
30464 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
30465 trace (p_msg => '# rows extracted from header extract objects '
30466 || ' (running total): '
30467 || g_hdr_extract_count
30468 ,p_level => C_LEVEL_STATEMENT
30469 ,p_module => l_log_module);
30470 END IF;
30471
30472 CLOSE header_cur;
30473 --
30474
30475 --
30476 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30477 trace
30478 (p_msg => 'END of EventType_39'
30479 ,p_level => C_LEVEL_PROCEDURE
30480 ,p_module => l_log_module);
30481 END IF;
30482 --
30483 RETURN l_result;
30484 EXCEPTION
30485 WHEN xla_exceptions_pkg.application_exception THEN
30486
30487 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
30488
30489
30490 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
30491
30492 RAISE;
30493
30494 WHEN NO_DATA_FOUND THEN
30495
30496 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
30497 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
30498
30499 FOR header_record IN header_cur
30500 LOOP
30501 l_array_header_events(header_record.event_id) := header_record.event_id;
30502 END LOOP;
30503
30504 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
30505 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
30506
30507 fnd_file.put_line(fnd_file.LOG, ' ');
30508 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
30509 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
30510 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
30511
30512 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
30513 LOOP
30514 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
30515 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
30516 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
30517 END IF;
30518 END LOOP;
30519
30520 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
30521 fnd_file.put_line(fnd_file.LOG, ' ');
30522
30523
30524 xla_exceptions_pkg.raise_message
30525 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_39');
30526
30527
30528 WHEN OTHERS THEN
30529 xla_exceptions_pkg.raise_message
30530 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_39');
30531 END EventType_39;
30532 --
30533
30534 ---------------------------------------
30535 --
30536 -- PRIVATE PROCEDURE
30537 -- insert_sources_40
30538 --
30539 ----------------------------------------
30540 --
30541 PROCEDURE insert_sources_40(
30542 p_target_ledger_id IN NUMBER
30543 , p_language IN VARCHAR2
30544 , p_sla_ledger_id IN NUMBER
30545 , p_pad_start_date IN DATE
30546 , p_pad_end_date IN DATE
30547 )
30548 IS
30549
30550 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PERIOD_END_ACCRUAL_ALL';
30551 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PERIOD_END_ACCRUAL';
30552 p_apps_owner VARCHAR2(30);
30553 l_log_module VARCHAR2(240);
30554 BEGIN
30555 IF g_log_enabled THEN
30556 l_log_module := C_DEFAULT_MODULE||'.insert_sources_40';
30557 END IF;
30558 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30559
30560 trace
30561 (p_msg => 'BEGIN of insert_sources_40'
30562 ,p_level => C_LEVEL_PROCEDURE
30563 ,p_module => l_log_module);
30564
30565 END IF;
30566
30567 -- select APPS owner
30568 SELECT oracle_username
30569 INTO p_apps_owner
30570 FROM fnd_oracle_userid
30571 WHERE read_only_flag = 'U'
30572 ;
30573
30574 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
30575 trace
30576 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
30577 ' - p_language = '||p_language||
30578 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
30579 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
30580 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
30581 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
30582 ,p_level => C_LEVEL_STATEMENT
30583 ,p_module => l_log_module);
30584 END IF;
30585
30586
30587 --
30588 INSERT INTO xla_diag_sources --hdr2
30589 (
30590 event_id
30591 , ledger_id
30592 , sla_ledger_id
30593 , description_language
30594 , object_name
30595 , object_type_code
30596 , line_number
30597 , source_application_id
30598 , source_type_code
30599 , source_code
30600 , source_value
30601 , source_meaning
30602 , created_by
30603 , creation_date
30604 , last_update_date
30605 , last_updated_by
30606 , last_update_login
30607 , program_update_date
30608 , program_application_id
30609 , program_id
30610 , request_id
30611 )
30612 SELECT
30613 event_id
30614 , p_target_ledger_id
30615 , p_sla_ledger_id
30616 , p_language
30617 , object_name
30618 , object_type_code
30619 , line_number
30620 , source_application_id
30621 , source_type_code
30622 , source_code
30623 , SUBSTR(source_value ,1,1996)
30624 , SUBSTR(source_meaning ,1,200)
30625 , xla_environment_pkg.g_Usr_Id
30626 , TRUNC(SYSDATE)
30627 , TRUNC(SYSDATE)
30628 , xla_environment_pkg.g_Usr_Id
30629 , xla_environment_pkg.g_Login_Id
30630 , TRUNC(SYSDATE)
30631 , xla_environment_pkg.g_Prog_Appl_Id
30632 , xla_environment_pkg.g_Prog_Id
30633 , xla_environment_pkg.g_Req_Id
30634 FROM (
30635 SELECT xet.event_id event_id
30636 , 0 line_number
30637 , CASE r
30638 WHEN 1 THEN 'CST_XLA_RCV_HEADERS_V'
30639 WHEN 2 THEN 'CST_XLA_RCV_HEADERS_V'
30640 WHEN 3 THEN 'PO_HEADERS_REF_V'
30641 WHEN 4 THEN 'CST_XLA_RCV_REF_V'
30642 WHEN 5 THEN 'CST_XLA_RCV_REF_V'
30643 WHEN 6 THEN 'CST_XLA_RCV_REF_V'
30644 WHEN 7 THEN 'CST_XLA_RCV_REF_V'
30645 WHEN 8 THEN 'PO_DISTS_REF_V'
30646 WHEN 9 THEN 'CST_XLA_RCV_REF_V'
30647 WHEN 10 THEN 'CST_XLA_RCV_REF_V'
30648 WHEN 11 THEN 'PO_HEADERS_REF_V'
30649 WHEN 12 THEN 'CST_XLA_RCV_REF_V'
30650 WHEN 13 THEN 'PSA_CST_XLA_PEA_UPG_V'
30651 WHEN 14 THEN 'CST_XLA_RCV_HEADERS_V'
30652
30653 ELSE null
30654 END object_name
30655 , CASE r
30656 WHEN 1 THEN 'HEADER'
30657 WHEN 2 THEN 'HEADER'
30658 WHEN 3 THEN 'HEADER'
30659 WHEN 4 THEN 'HEADER'
30660 WHEN 5 THEN 'HEADER'
30661 WHEN 6 THEN 'HEADER'
30662 WHEN 7 THEN 'HEADER'
30663 WHEN 8 THEN 'HEADER'
30664 WHEN 9 THEN 'HEADER'
30665 WHEN 10 THEN 'HEADER'
30666 WHEN 11 THEN 'HEADER'
30667 WHEN 12 THEN 'HEADER'
30668 WHEN 13 THEN 'HEADER'
30669 WHEN 14 THEN 'HEADER'
30670
30671 ELSE null
30672 END object_type_code
30673 , CASE r
30674 WHEN 1 THEN '707'
30675 WHEN 2 THEN '707'
30676 WHEN 3 THEN '201'
30677 WHEN 4 THEN '707'
30678 WHEN 5 THEN '707'
30679 WHEN 6 THEN '707'
30680 WHEN 7 THEN '707'
30681 WHEN 8 THEN '201'
30682 WHEN 9 THEN '707'
30683 WHEN 10 THEN '707'
30684 WHEN 11 THEN '201'
30685 WHEN 12 THEN '707'
30686 WHEN 13 THEN '707'
30687 WHEN 14 THEN '707'
30688
30689 ELSE null
30690 END source_application_id
30691 , 'S' source_type_code
30692 , CASE r
30693 WHEN 1 THEN 'DISTRIBUTION_TYPE'
30694 WHEN 2 THEN 'CURRENCY_CODE'
30695 WHEN 3 THEN 'PURCH_ENCUMBRANCE_FLAG'
30696 WHEN 4 THEN 'APPLIED_TO_APPL_ID'
30697 WHEN 5 THEN 'APPLIED_TO_DIST_LINK_TYPE'
30698 WHEN 6 THEN 'APPLIED_TO_ENTITY_CODE'
30699 WHEN 7 THEN 'APPLIED_TO_PO_DOC_ID'
30700 WHEN 8 THEN 'PO_BUDGET_ACCOUNT'
30701 WHEN 9 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
30702 WHEN 10 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
30703 WHEN 11 THEN 'PURCH_ENCUMBRANCE_TYPE_ID'
30704 WHEN 12 THEN 'PO_DISTRIBUTION_ID'
30705 WHEN 13 THEN 'CST_PEA_ENC_UPG_OPTION'
30706 WHEN 14 THEN 'TRANSFER_TO_GL_INDICATOR'
30707
30708 ELSE null
30709 END source_code
30710 , CASE r
30711 WHEN 1 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
30712 WHEN 2 THEN TO_CHAR(h1.CURRENCY_CODE)
30713 WHEN 3 THEN TO_CHAR(h5.PURCH_ENCUMBRANCE_FLAG)
30714 WHEN 4 THEN TO_CHAR(h3.APPLIED_TO_APPL_ID)
30715 WHEN 5 THEN TO_CHAR(h3.APPLIED_TO_DIST_LINK_TYPE)
30716 WHEN 6 THEN TO_CHAR(h3.APPLIED_TO_ENTITY_CODE)
30717 WHEN 7 THEN TO_CHAR(h3.APPLIED_TO_PO_DOC_ID)
30718 WHEN 8 THEN TO_CHAR(h4.PO_BUDGET_ACCOUNT)
30719 WHEN 9 THEN TO_CHAR(h3.ENCUM_REVERSAL_AMOUNT_ENTERED)
30720 WHEN 10 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_AMOUNT)
30721 WHEN 11 THEN TO_CHAR(h5.PURCH_ENCUMBRANCE_TYPE_ID)
30722 WHEN 12 THEN TO_CHAR(h3.PO_DISTRIBUTION_ID)
30723 WHEN 13 THEN TO_CHAR(h6.CST_PEA_ENC_UPG_OPTION)
30724 WHEN 14 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
30725
30726 ELSE null
30727 END source_value
30728 , CASE r
30729 WHEN 1 THEN fvl9.meaning
30730 WHEN 14 THEN fvl42.meaning
30731
30732 ELSE null
30733 END source_meaning
30734 FROM xla_events_gt xet
30735 , CST_XLA_RCV_HEADERS_V h1
30736 , CST_XLA_RCV_REF_V h3
30737 , PO_DISTS_REF_V h4
30738 , PO_HEADERS_REF_V h5
30739 , PSA_CST_XLA_PEA_UPG_V h6
30740 , fnd_lookup_values fvl9
30741 , fnd_lookup_values fvl42
30742 ,(select rownum r from all_objects where rownum <= 14 and owner = p_apps_owner)
30743 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
30744 AND xet.event_class_code = C_EVENT_CLASS_CODE
30745 AND h1.event_id = xet.event_id
30746 AND h3.ref_rcv_accounting_event_id = h1.rcv_accounting_event_id AND h3.po_header_id = h4.po_header_id (+) and h3.po_distribution_id = h4.po_distribution_id (+) AND h3.po_header_id = h5.po_header_id (+) AND h3.ref_rcv_accounting_event_id = h6.accounting_event_id (+) AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
30747 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
30748 AND fvl9.view_application_id(+) = 700
30749 AND fvl9.language(+) = USERENV('LANG')
30750 AND fvl42.lookup_type(+) = 'YES_NO'
30751 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
30752 AND fvl42.view_application_id(+) = 0
30753 AND fvl42.language(+) = USERENV('LANG')
30754
30755 )
30756 ;
30757 --
30758 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
30759
30760 trace
30761 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
30762 ,p_level => C_LEVEL_STATEMENT
30763 ,p_module => l_log_module);
30764
30765 END IF;
30766 --
30767
30768
30769
30770 --
30771 INSERT INTO xla_diag_sources --line2
30772 (
30773 event_id
30774 , ledger_id
30775 , sla_ledger_id
30776 , description_language
30777 , object_name
30778 , object_type_code
30779 , line_number
30780 , source_application_id
30781 , source_type_code
30782 , source_code
30783 , source_value
30784 , source_meaning
30785 , created_by
30786 , creation_date
30787 , last_update_date
30788 , last_updated_by
30789 , last_update_login
30790 , program_update_date
30791 , program_application_id
30792 , program_id
30793 , request_id
30794 )
30795 SELECT event_id
30796 , p_target_ledger_id
30797 , p_sla_ledger_id
30798 , p_language
30799 , object_name
30800 , object_type_code
30801 , line_number
30802 , source_application_id
30803 , source_type_code
30804 , source_code
30805 , SUBSTR(source_value,1,1996)
30806 , SUBSTR(source_meaning ,1,200)
30807 , xla_environment_pkg.g_Usr_Id
30808 , TRUNC(SYSDATE)
30809 , TRUNC(SYSDATE)
30810 , xla_environment_pkg.g_Usr_Id
30811 , xla_environment_pkg.g_Login_Id
30812 , TRUNC(SYSDATE)
30813 , xla_environment_pkg.g_Prog_Appl_Id
30814 , xla_environment_pkg.g_Prog_Id
30815 , xla_environment_pkg.g_Req_Id
30816 FROM (
30817 SELECT xet.event_id event_id
30818 , l2.line_number line_number
30819 , CASE r
30820 WHEN 1 THEN 'CST_XLA_RCV_LINES_V'
30821 WHEN 2 THEN 'CST_XLA_RCV_LINES_V'
30822
30823 ELSE null
30824 END object_name
30825 , CASE r
30826 WHEN 1 THEN 'LINE'
30827 WHEN 2 THEN 'LINE'
30828
30829 ELSE null
30830 END object_type_code
30831 , CASE r
30832 WHEN 1 THEN '707'
30833 WHEN 2 THEN '707'
30834
30835 ELSE null
30836 END source_application_id
30837 , 'S' source_type_code
30838 , CASE r
30839 WHEN 1 THEN 'DISTRIBUTION_IDENTIFIER'
30840 WHEN 2 THEN 'RCV_ACCOUNTING_LINE_TYPE'
30841
30842 ELSE null
30843 END source_code
30844 , CASE r
30845 WHEN 1 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
30846 WHEN 2 THEN TO_CHAR(l2.RCV_ACCOUNTING_LINE_TYPE)
30847
30848 ELSE null
30849 END source_value
30850 , null source_meaning
30851 FROM xla_events_gt xet
30852 , CST_XLA_RCV_LINES_V l2
30853 , (select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
30854 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
30855 AND xet.event_class_code = C_EVENT_CLASS_CODE
30856 AND l2.event_id = xet.event_id
30857
30858 )
30859 ;
30860 --
30861 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
30862
30863 trace
30864 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
30865 ,p_level => C_LEVEL_STATEMENT
30866 ,p_module => l_log_module);
30867
30868 END IF;
30869
30870
30871 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30872 trace
30873 (p_msg => 'END of insert_sources_40'
30874 ,p_level => C_LEVEL_PROCEDURE
30875 ,p_module => l_log_module);
30876 END IF;
30877 EXCEPTION
30878 WHEN xla_exceptions_pkg.application_exception THEN
30879 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
30880 trace
30881 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
30882 ,p_level => C_LEVEL_EXCEPTION
30883 ,p_module => l_log_module);
30884 END IF;
30885 RAISE;
30886 WHEN OTHERS THEN
30887 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
30888 trace
30889 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
30890 ,p_level => C_LEVEL_EXCEPTION
30891 ,p_module => l_log_module);
30892 END IF;
30893 xla_exceptions_pkg.raise_message
30894 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_40');
30895 END insert_sources_40;
30896 --
30897
30898 ---------------------------------------
30899 --
30900 -- PRIVATE FUNCTION
30901 -- EventClass_40
30902 --
30903 ----------------------------------------
30904 --
30905 FUNCTION EventClass_40
30906 (p_application_id IN NUMBER
30907 ,p_base_ledger_id IN NUMBER
30908 ,p_target_ledger_id IN NUMBER
30909 ,p_language IN VARCHAR2
30910 ,p_currency_code IN VARCHAR2
30911 ,p_sla_ledger_id IN NUMBER
30912 ,p_pad_start_date IN DATE
30913 ,p_pad_end_date IN DATE
30914 ,p_primary_ledger_id IN NUMBER)
30915 RETURN BOOLEAN IS
30916 --
30917 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PERIOD_END_ACCRUAL_ALL';
30918 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PERIOD_END_ACCRUAL';
30919
30920 l_calculate_acctd_flag VARCHAR2(1) :='N';
30921 l_calculate_g_l_flag VARCHAR2(1) :='N';
30922 --
30923 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
30924 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
30925 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
30926 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
30927 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
30928 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
30929 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
30930 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
30931 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
30932 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
30933 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
30934 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
30935 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
30936 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
30937 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
30938 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
30939 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
30940 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
30941 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
30942 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
30943 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
30944 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
30945 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
30946 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
30947 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
30948 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
30949
30950 l_event_id NUMBER;
30951 l_previous_event_id NUMBER;
30952 l_first_event_id NUMBER;
30953 l_last_event_id NUMBER;
30954
30955 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
30956 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30957 --
30958 --
30959 l_result BOOLEAN := TRUE;
30960 l_rows NUMBER := 1000;
30961 l_event_type_name VARCHAR2(80) := 'All';
30962 l_event_class_name VARCHAR2(80) := 'Period End Accrual';
30963 l_description VARCHAR2(4000);
30964 l_transaction_reversal NUMBER;
30965 l_ae_header_id NUMBER;
30966 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
30967 l_log_module VARCHAR2(240);
30968 --
30969 l_acct_reversal_source VARCHAR2(30);
30970 l_trx_reversal_source VARCHAR2(30);
30971
30972 l_continue_with_lines BOOLEAN := TRUE;
30973 --
30974 l_acc_rev_gl_date_source DATE; -- 4262811
30975 --
30976 type t_array_event_id is table of number index by binary_integer;
30977
30978 l_rec_array_event t_rec_array_event;
30979 l_null_rec_array_event t_rec_array_event;
30980 l_array_ae_header_id xla_number_array_type;
30981 l_actual_flag VARCHAR2(1) := NULL;
30982 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
30983 l_balance_type_code VARCHAR2(1) :=NULL;
30984 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
30985
30986 --
30987 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
30988 --
30989
30990 TYPE t_array_source_9 IS TABLE OF CST_XLA_RCV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
30991 TYPE t_array_source_11 IS TABLE OF CST_XLA_RCV_HEADERS_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
30992 TYPE t_array_source_16 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
30993 TYPE t_array_source_19 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
30994 TYPE t_array_source_20 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
30995 TYPE t_array_source_21 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
30996 TYPE t_array_source_23 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
30997 TYPE t_array_source_24 IS TABLE OF PO_DISTS_REF_V.PO_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
30998 TYPE t_array_source_25 IS TABLE OF CST_XLA_RCV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
30999 TYPE t_array_source_26 IS TABLE OF CST_XLA_RCV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
31000 TYPE t_array_source_28 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
31001 TYPE t_array_source_30 IS TABLE OF CST_XLA_RCV_REF_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
31002 TYPE t_array_source_32 IS TABLE OF PSA_CST_XLA_PEA_UPG_V.CST_PEA_ENC_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
31003 TYPE t_array_source_42 IS TABLE OF CST_XLA_RCV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
31004
31005 TYPE t_array_source_8 IS TABLE OF CST_XLA_RCV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
31006 TYPE t_array_source_29 IS TABLE OF CST_XLA_RCV_LINES_V.RCV_ACCOUNTING_LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
31007
31008 l_array_source_9 t_array_source_9;
31009 l_array_source_9_meaning t_array_lookup_meaning;
31010 l_array_source_11 t_array_source_11;
31011 l_array_source_16 t_array_source_16;
31012 l_array_source_19 t_array_source_19;
31013 l_array_source_20 t_array_source_20;
31014 l_array_source_21 t_array_source_21;
31015 l_array_source_23 t_array_source_23;
31016 l_array_source_24 t_array_source_24;
31017 l_array_source_25 t_array_source_25;
31018 l_array_source_26 t_array_source_26;
31019 l_array_source_28 t_array_source_28;
31020 l_array_source_30 t_array_source_30;
31021 l_array_source_32 t_array_source_32;
31022 l_array_source_42 t_array_source_42;
31023 l_array_source_42_meaning t_array_lookup_meaning;
31024
31025 l_array_source_8 t_array_source_8;
31026 l_array_source_29 t_array_source_29;
31027
31028 --
31029 CURSOR header_cur
31030 IS
31031 SELECT /*+ leading(xet) cardinality(xet,1) */
31032 -- Event Class Code: PERIOD_END_ACCRUAL
31033 xet.entity_id
31034 ,xet.legal_entity_id
31035 ,xet.entity_code
31036 ,xet.transaction_number
31037 ,xet.event_id
31038 ,xet.event_class_code
31039 ,xet.event_type_code
31040 ,xet.event_number
31041 ,xet.event_date
31042 ,xet.transaction_date
31043 ,xet.reference_num_1
31044 ,xet.reference_num_2
31045 ,xet.reference_num_3
31046 ,xet.reference_num_4
31047 ,xet.reference_char_1
31048 ,xet.reference_char_2
31049 ,xet.reference_char_3
31050 ,xet.reference_char_4
31051 ,xet.reference_date_1
31052 ,xet.reference_date_2
31053 ,xet.reference_date_3
31054 ,xet.reference_date_4
31055 ,xet.event_created_by
31056 ,xet.budgetary_control_flag
31057 , h1.DISTRIBUTION_TYPE source_9
31058 , fvl9.meaning source_9_meaning
31059 , h1.CURRENCY_CODE source_11
31060 , h5.PURCH_ENCUMBRANCE_FLAG source_16
31061 , h3.APPLIED_TO_APPL_ID source_19
31062 , h3.APPLIED_TO_DIST_LINK_TYPE source_20
31063 , h3.APPLIED_TO_ENTITY_CODE source_21
31064 , h3.APPLIED_TO_PO_DOC_ID source_23
31065 , h4.PO_BUDGET_ACCOUNT source_24
31066 , h3.ENCUM_REVERSAL_AMOUNT_ENTERED source_25
31067 , h3.ENCUMBRANCE_REVERSAL_AMOUNT source_26
31068 , h5.PURCH_ENCUMBRANCE_TYPE_ID source_28
31069 , h3.PO_DISTRIBUTION_ID source_30
31070 , h6.CST_PEA_ENC_UPG_OPTION source_32
31071 , h1.TRANSFER_TO_GL_INDICATOR source_42
31072 , fvl42.meaning source_42_meaning
31073 FROM xla_events_gt xet
31074 , CST_XLA_RCV_HEADERS_V h1
31075 , CST_XLA_RCV_REF_V h3
31076 , PO_DISTS_REF_V h4
31077 , PO_HEADERS_REF_V h5
31078 , PSA_CST_XLA_PEA_UPG_V h6
31079 , fnd_lookup_values fvl9
31080 , fnd_lookup_values fvl42
31081 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
31082 and xet.event_class_code = C_EVENT_CLASS_CODE
31083 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
31084 AND h3.REF_RCV_ACCOUNTING_EVENT_ID = h1.RCV_ACCOUNTING_EVENT_ID AND h3.po_header_id = h4.po_header_id (+) AND h3.po_distribution_id = h4.po_distribution_id (+) AND h3.po_header_id = h5.po_header_id (+) AND h3.ref_rcv_accounting_event_id = h6.accounting_event_id (+) AND fvl9.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
31085 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
31086 AND fvl9.view_application_id(+) = 700
31087 AND fvl9.language(+) = USERENV('LANG')
31088 AND fvl42.lookup_type(+) = 'YES_NO'
31089 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
31090 AND fvl42.view_application_id(+) = 0
31091 AND fvl42.language(+) = USERENV('LANG')
31092
31093 ORDER BY event_id
31094 ;
31095
31096
31097 --
31098 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
31099 IS
31100 SELECT /*+ leading(xet) cardinality(xet,1) */
31101 -- Event Class Code: PERIOD_END_ACCRUAL
31102 xet.entity_id
31103 ,xet.legal_entity_id
31104 ,xet.entity_code
31105 ,xet.transaction_number
31106 ,xet.event_id
31107 ,xet.event_class_code
31108 ,xet.event_type_code
31109 ,xet.event_number
31110 ,xet.event_date
31111 ,xet.transaction_date
31112 ,xet.reference_num_1
31113 ,xet.reference_num_2
31114 ,xet.reference_num_3
31115 ,xet.reference_num_4
31116 ,xet.reference_char_1
31117 ,xet.reference_char_2
31118 ,xet.reference_char_3
31119 ,xet.reference_char_4
31120 ,xet.reference_date_1
31121 ,xet.reference_date_2
31122 ,xet.reference_date_3
31123 ,xet.reference_date_4
31124 ,xet.event_created_by
31125 ,xet.budgetary_control_flag
31126 , l2.LINE_NUMBER
31127 , l2.DISTRIBUTION_IDENTIFIER source_8
31128 , l2.RCV_ACCOUNTING_LINE_TYPE source_29
31129 FROM xla_events_gt xet
31130 , CST_XLA_RCV_LINES_V l2
31131 WHERE xet.event_id between x_first_event_id and x_last_event_id
31132 and xet.event_date between p_pad_start_date and p_pad_end_date
31133 and xet.event_class_code = C_EVENT_CLASS_CODE
31134 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
31135 ;
31136
31137 --
31138 BEGIN
31139 IF g_log_enabled THEN
31140 l_log_module := C_DEFAULT_MODULE||'.EventClass_40';
31141 END IF;
31142 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31143 trace
31144 (p_msg => 'BEGIN of EventClass_40'
31145 ,p_level => C_LEVEL_PROCEDURE
31146 ,p_module => l_log_module);
31147 END IF;
31148
31149 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
31150 trace
31151 (p_msg => 'p_application_id = '||p_application_id||
31152 ' - p_base_ledger_id = '||p_base_ledger_id||
31153 ' - p_target_ledger_id = '||p_target_ledger_id||
31154 ' - p_language = '||p_language||
31155 ' - p_currency_code = '||p_currency_code||
31156 ' - p_sla_ledger_id = '||p_sla_ledger_id
31157 ,p_level => C_LEVEL_STATEMENT
31158 ,p_module => l_log_module);
31159 END IF;
31160 --
31161 -- initialze arrays
31162 --
31163 g_array_event.DELETE;
31164 l_rec_array_event := l_null_rec_array_event;
31165 --
31166 --------------------------------------
31167 -- 4262811 Initialze MPA Line Number
31168 --------------------------------------
31169 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
31170
31171 --
31172
31173 --
31174 OPEN header_cur;
31175 --
31176 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
31177 trace
31178 (p_msg => 'SQL - FETCH header_cur'
31179 ,p_level => C_LEVEL_STATEMENT
31180 ,p_module => l_log_module);
31181 END IF;
31182 --
31183 LOOP
31184 FETCH header_cur BULK COLLECT INTO
31185 l_array_entity_id
31186 , l_array_legal_entity_id
31187 , l_array_entity_code
31188 , l_array_transaction_num
31189 , l_array_event_id
31190 , l_array_class_code
31191 , l_array_event_type
31192 , l_array_event_number
31193 , l_array_event_date
31194 , l_array_transaction_date
31195 , l_array_reference_num_1
31196 , l_array_reference_num_2
31197 , l_array_reference_num_3
31198 , l_array_reference_num_4
31199 , l_array_reference_char_1
31200 , l_array_reference_char_2
31201 , l_array_reference_char_3
31202 , l_array_reference_char_4
31203 , l_array_reference_date_1
31204 , l_array_reference_date_2
31205 , l_array_reference_date_3
31206 , l_array_reference_date_4
31207 , l_array_event_created_by
31208 , l_array_budgetary_control_flag
31209 , l_array_source_9
31210 , l_array_source_9_meaning
31211 , l_array_source_11
31212 , l_array_source_16
31213 , l_array_source_19
31214 , l_array_source_20
31215 , l_array_source_21
31216 , l_array_source_23
31217 , l_array_source_24
31218 , l_array_source_25
31219 , l_array_source_26
31220 , l_array_source_28
31221 , l_array_source_30
31222 , l_array_source_32
31223 , l_array_source_42
31224 , l_array_source_42_meaning
31225 LIMIT l_rows;
31226 --
31227 IF (C_LEVEL_EVENT >= g_log_level) THEN
31228 trace
31229 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
31230 ,p_level => C_LEVEL_EVENT
31231 ,p_module => l_log_module);
31232 END IF;
31233 --
31234 EXIT WHEN l_array_entity_id.COUNT = 0;
31235
31236 -- initialize arrays
31237 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
31238 XLA_AE_LINES_PKG.g_rec_lines := NULL;
31239
31240 --
31241 -- Bug 4458708
31242 --
31243 XLA_AE_LINES_PKG.g_LineNumber := 0;
31244
31245
31246 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
31247 g_last_hdr_idx := l_array_event_id.LAST;
31248 --
31249 -- loop for the headers. Each iteration is for each header extract row
31250 -- fetched in header cursor
31251 --
31252 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
31253
31254 --
31255 -- set event info as cache for other routines to refer event attributes
31256 --
31257 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
31258 (p_application_id => p_application_id
31259 ,p_primary_ledger_id => p_primary_ledger_id
31260 ,p_base_ledger_id => p_base_ledger_id
31261 ,p_target_ledger_id => p_target_ledger_id
31262 ,p_entity_id => l_array_entity_id(hdr_idx)
31263 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
31264 ,p_entity_code => l_array_entity_code(hdr_idx)
31265 ,p_transaction_num => l_array_transaction_num(hdr_idx)
31266 ,p_event_id => l_array_event_id(hdr_idx)
31267 ,p_event_class_code => l_array_class_code(hdr_idx)
31268 ,p_event_type_code => l_array_event_type(hdr_idx)
31269 ,p_event_number => l_array_event_number(hdr_idx)
31270 ,p_event_date => l_array_event_date(hdr_idx)
31271 ,p_transaction_date => l_array_transaction_date(hdr_idx)
31272 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
31273 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
31274 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
31275 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
31276 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
31277 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
31278 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
31279 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
31280 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
31281 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
31282 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
31283 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
31284 ,p_event_created_by => l_array_event_created_by(hdr_idx)
31285 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
31286
31287 --
31288 -- set the status of entry to C_VALID (0)
31289 --
31290 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
31291
31292 --
31293 -- initialize a row for ae header
31294 --
31295 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
31296
31297 l_event_id := l_array_event_id(hdr_idx);
31298
31299 --
31300 -- storing the hdr_idx for event. May be used by line cursor.
31301 --
31302 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
31303
31304 --
31305 -- store sources from header extract. This can be improved to
31306 -- store only those sources from header extract that may be used in lines
31307 --
31308
31309 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
31310 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
31311 g_array_event(l_event_id).array_value_char('source_11') := l_array_source_11(hdr_idx);
31312 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
31313 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
31314 g_array_event(l_event_id).array_value_char('source_20') := l_array_source_20(hdr_idx);
31315 g_array_event(l_event_id).array_value_char('source_21') := l_array_source_21(hdr_idx);
31316 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
31317 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
31318 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
31319 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
31320 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
31321 g_array_event(l_event_id).array_value_num('source_30') := l_array_source_30(hdr_idx);
31322 g_array_event(l_event_id).array_value_char('source_32') := l_array_source_32(hdr_idx);
31323 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
31324 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
31325
31326 --
31327 -- initilaize the status of ae headers for diffrent balance types
31328 -- the status is initialised to C_NOT_CREATED (2)
31329 --
31330 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
31331 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
31332 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
31333
31334 --
31335 -- call api to validate and store accounting attributes for header
31336 --
31337
31338 ------------------------------------------------------------
31339 -- Accrual Reversal : to get date for Standard Source (NONE)
31340 ------------------------------------------------------------
31341 l_acc_rev_gl_date_source := NULL;
31342
31343 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
31344 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_28');
31345 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
31346 l_rec_acct_attrs.array_date_value(2) :=
31347 xla_ae_sources_pkg.GetSystemSourceDate(
31348 p_source_code => 'XLA_REFERENCE_DATE_1'
31349 , p_source_type_code => 'Y'
31350 , p_source_application_id => 602
31351 );
31352 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
31353 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_42');
31354
31355
31356 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
31357
31358 XLA_AE_HEADER_PKG.SetJeCategoryName;
31359
31360 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
31361 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
31362 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
31363 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
31364 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
31365
31366
31367 -- No header level analytical criteria
31368
31369 --
31370 --accounting attribute enhancement, bug 3612931
31371 --
31372 l_trx_reversal_source := SUBSTR(NULL, 1,30);
31373
31374 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
31375 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
31376
31377 xla_accounting_err_pkg.build_message
31378 (p_appli_s_name => 'XLA'
31379 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
31380 ,p_token_1 => 'ACCT_ATTR_NAME'
31381 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
31382 ,p_token_2 => 'PRODUCT_NAME'
31383 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
31384 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
31385 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
31386 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
31387
31388 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
31389 --
31390 -- following sets the accounting attributes needed to reverse
31391 -- accounting for a distributeion
31392 --
31393 xla_ae_lines_pkg.SetTrxReversalAttrs
31394 (p_event_id => l_event_id
31395 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
31396 ,p_trx_reversal_source => l_trx_reversal_source);
31397
31398 END IF;
31399
31400
31401 ----------------------------------------------------------------
31402 -- 4262811 - update the header statuses to invalid in need be
31403 ----------------------------------------------------------------
31404 --
31405 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
31406
31407
31408 --
31409 -- Generate the accrual reversal headers
31410 --
31411 IF NVL(l_trx_reversal_source, 'N') = 'N' THEN
31412
31413
31414
31415 -- indicate that the accrual entry has a reversal entry
31416 XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag(hdr_idx) := 'Y';
31417
31418 --
31419 -- initialize a row for ae header
31420 --
31421 g_last_hdr_idx := g_last_hdr_idx + 1;
31422 XLA_AE_HEADER_PKG.CopyHeaderInfo (p_parent_hdr_idx => hdr_idx,
31423 p_hdr_idx => g_last_hdr_idx) ;
31424 XLA_AE_HEADER_PKG.g_rec_header_new.array_header_num (g_last_hdr_idx) := 1;
31425 XLA_AE_HEADER_PKG.g_rec_header_new.array_parent_header_id(g_last_hdr_idx) :=
31426 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx);
31427
31428 --
31429 -- record the index for the reversal entry, it will be used by the journal
31430 -- line creation
31431 --
31432 g_array_event(l_event_id).array_value_num('acc_rev_header_index') := g_last_hdr_idx;
31433
31434 --
31435 -- Populate the GL Date and override the GL date defined in the
31436 -- SetHdrAcctAttrs if necessary
31437 --
31438
31439 ---------------------- XLA_FIRST_DAY_NEXT_GL_PERIOD ----------------------
31440 XLA_AE_HEADER_PKG.g_rec_header_new.array_acc_rev_gl_date_option(g_last_hdr_idx) := 'XLA_FIRST_DAY_NEXT_GL_PERIOD';
31441 XLA_AE_HEADER_PKG.GetAccrualRevDate(g_last_hdr_idx
31442 ,XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(g_last_hdr_idx)
31443 ,XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
31444 ,XLA_AE_HEADER_PKG.g_rec_header_new.array_acc_rev_gl_date_option(g_last_hdr_idx));
31445
31446
31447 --
31448 -- Update the header status
31449 --
31450 XLA_AE_JOURNAL_ENTRY_PKG.updateJournalEntryStatus (p_hdr_idx => g_last_hdr_idx);
31451
31452
31453
31454 END IF;
31455
31456
31457 ----------------------------------------------------------------
31458
31459 --
31460 -- this ends the header loop iteration for one bulk fetch
31461 --
31462 END LOOP;
31463
31464 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
31465 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
31466
31467 --
31468 -- insert dummy rows into lines gt table that were created due to
31469 -- transaction reversals
31470 --
31471 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
31472 l_result := XLA_AE_LINES_PKG.InsertLines;
31473 END IF;
31474
31475 --
31476 -- reset the temp_line_num for each set of events fetched from header
31477 -- cursor rather than doing it for each new event in line cursor
31478 -- Bug 3939231
31479 --
31480 xla_ae_lines_pkg.g_temp_line_num := 0;
31481
31482
31483
31484 --
31485 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
31486 --
31487 --
31488 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
31489
31490 trace
31491 (p_msg => 'SQL - FETCH line_cur'
31492 ,p_level => C_LEVEL_STATEMENT
31493 ,p_module => l_log_module);
31494
31495 END IF;
31496 --
31497 --
31498 LOOP
31499 --
31500 FETCH line_cur BULK COLLECT INTO
31501 l_array_entity_id
31502 , l_array_legal_entity_id
31503 , l_array_entity_code
31504 , l_array_transaction_num
31505 , l_array_event_id
31506 , l_array_class_code
31507 , l_array_event_type
31508 , l_array_event_number
31509 , l_array_event_date
31510 , l_array_transaction_date
31511 , l_array_reference_num_1
31512 , l_array_reference_num_2
31513 , l_array_reference_num_3
31514 , l_array_reference_num_4
31515 , l_array_reference_char_1
31516 , l_array_reference_char_2
31517 , l_array_reference_char_3
31518 , l_array_reference_char_4
31519 , l_array_reference_date_1
31520 , l_array_reference_date_2
31521 , l_array_reference_date_3
31522 , l_array_reference_date_4
31523 , l_array_event_created_by
31524 , l_array_budgetary_control_flag
31525 , l_array_extract_line_num
31526 , l_array_source_8
31527 , l_array_source_29
31528 LIMIT l_rows;
31529
31530 --
31531 IF (C_LEVEL_EVENT >= g_log_level) THEN
31532 trace
31533 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
31534 ,p_level => C_LEVEL_EVENT
31535 ,p_module => l_log_module);
31536 END IF;
31537 --
31538 EXIT WHEN l_array_entity_id.count = 0;
31539
31540 XLA_AE_LINES_PKG.g_rec_lines := null;
31541
31542 --
31543 -- Bug 4458708
31544 --
31545 XLA_AE_LINES_PKG.g_LineNumber := 0;
31546 --
31547 --
31548
31549 FOR Idx IN 1..l_array_event_id.count LOOP
31550 --
31551 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
31552 --
31553 l_event_id := l_array_event_id(idx); -- 5648433
31554
31555 --
31556 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
31557 --
31558
31559 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
31560 (g_array_event(l_event_id).array_value_num('header_index'))
31561 ,'N'
31562 ) <> 'Y'
31563 THEN
31564 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
31565 trace
31566 (p_msg => 'Trancaction revesal option is not Y '
31567 ,p_level => C_LEVEL_STATEMENT
31568 ,p_module => l_log_module);
31569 END IF;
31570
31571 --
31572 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
31573 --
31574 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
31575 --
31576 -- set event info as cache for other routines to refer event attributes
31577 --
31578
31579 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
31580 l_previous_event_id := l_event_id;
31581
31582 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
31583 (p_application_id => p_application_id
31584 ,p_primary_ledger_id => p_primary_ledger_id
31585 ,p_base_ledger_id => p_base_ledger_id
31586 ,p_target_ledger_id => p_target_ledger_id
31587 ,p_entity_id => l_array_entity_id(Idx)
31588 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
31589 ,p_entity_code => l_array_entity_code(Idx)
31590 ,p_transaction_num => l_array_transaction_num(Idx)
31591 ,p_event_id => l_array_event_id(Idx)
31592 ,p_event_class_code => l_array_class_code(Idx)
31593 ,p_event_type_code => l_array_event_type(Idx)
31594 ,p_event_number => l_array_event_number(Idx)
31595 ,p_event_date => l_array_event_date(Idx)
31596 ,p_transaction_date => l_array_transaction_date(Idx)
31597 ,p_reference_num_1 => l_array_reference_num_1(Idx)
31598 ,p_reference_num_2 => l_array_reference_num_2(Idx)
31599 ,p_reference_num_3 => l_array_reference_num_3(Idx)
31600 ,p_reference_num_4 => l_array_reference_num_4(Idx)
31601 ,p_reference_char_1 => l_array_reference_char_1(Idx)
31602 ,p_reference_char_2 => l_array_reference_char_2(Idx)
31603 ,p_reference_char_3 => l_array_reference_char_3(Idx)
31604 ,p_reference_char_4 => l_array_reference_char_4(Idx)
31605 ,p_reference_date_1 => l_array_reference_date_1(Idx)
31606 ,p_reference_date_2 => l_array_reference_date_2(Idx)
31607 ,p_reference_date_3 => l_array_reference_date_3(Idx)
31608 ,p_reference_date_4 => l_array_reference_date_4(Idx)
31609 ,p_event_created_by => l_array_event_created_by(Idx)
31610 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
31611 --
31612 END IF;
31613
31614
31615
31616 --
31617 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
31618
31619 l_acct_reversal_source := SUBSTR(NULL, 1,30);
31620
31621 IF l_continue_with_lines THEN
31622 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
31623 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
31624
31625 xla_accounting_err_pkg.build_message
31626 (p_appli_s_name => 'XLA'
31627 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
31628 ,p_token_1 => 'LINE_NUMBER'
31629 ,p_value_1 => l_array_extract_line_num(Idx)
31630 ,p_token_2 => 'PRODUCT_NAME'
31631 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
31632 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
31633 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
31634 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
31635
31636 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
31637 --
31638 -- following sets the accounting attributes needed to reverse
31639 -- accounting for a distributeion
31640 --
31641
31642 --
31643 -- 5217187
31644 --
31645 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
31646 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
31647 g_array_event(l_event_id).array_value_num('header_index'));
31648 --
31649 --
31650
31651 -- No reversal code generated
31652
31653 xla_ae_lines_pkg.SetAcctReversalAttrs
31654 (p_event_id => l_event_id
31655 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
31656 ,p_calculate_acctd_flag => l_calculate_acctd_flag
31657 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
31658 END IF;
31659
31660 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
31661 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
31662
31663 --
31664 AcctLineType_21 (
31665 p_application_id => p_application_id
31666 ,p_event_id => l_event_id
31667 ,p_calculate_acctd_flag => l_calculate_acctd_flag
31668 ,p_calculate_g_l_flag => l_calculate_g_l_flag
31669 ,p_actual_flag => l_actual_flag
31670 ,p_balance_type_code => l_balance_type_code
31671 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
31672
31673 , p_source_8 => l_array_source_8(Idx)
31674 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
31675 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
31676 , p_source_11 => g_array_event(l_event_id).array_value_char('source_11')
31677 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
31678 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
31679 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
31680 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
31681 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
31682 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
31683 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
31684 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
31685 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
31686 , p_source_29 => l_array_source_29(Idx)
31687 , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
31688 , p_source_32 => g_array_event(l_event_id).array_value_char('source_32')
31689 );
31690 If(l_balance_type_code = 'A') THEN
31691 l_actual_gain_loss_ref := l_gain_or_loss_ref;
31692 END IF;
31693
31694 --
31695
31696 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
31697 -- or secondary ledger that has different currency with primary
31698 -- or alc that is calculated by sla
31699 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
31700 (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'))
31701
31702 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
31703 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
31704 AND (l_actual_flag = 'A')) THEN
31705 XLA_AE_LINES_PKG.CreateGainOrLossLines(
31706 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
31707 ,p_application_id => p_application_id
31708 ,p_amb_context_code => 'DEFAULT'
31709 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
31710 ,p_event_class_code => C_EVENT_CLASS_CODE
31711 ,p_event_type_code => C_EVENT_TYPE_CODE
31712
31713 ,p_gain_ccid => -1
31714 ,p_loss_ccid => -1
31715
31716 ,p_actual_flag => l_actual_flag
31717 ,p_enc_flag => null
31718 ,p_actual_g_l_ref => l_actual_gain_loss_ref
31719 ,p_enc_g_l_ref => null
31720 );
31721 END IF;
31722 END IF;
31723 END IF;
31724
31725 ELSE
31726 --
31727 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
31728 --
31729 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
31730 trace
31731 (p_msg => 'Trancaction revesal option is Y'
31732 ,p_level => C_LEVEL_STATEMENT
31733 ,p_module => l_log_module);
31734 END IF;
31735 END IF;
31736
31737 END LOOP;
31738 l_result := XLA_AE_LINES_PKG.InsertLines ;
31739 end loop;
31740 close line_cur;
31741
31742
31743 --
31744 -- insert headers into xla_ae_headers_gt table
31745 --
31746 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
31747
31748 -- insert into errors table here.
31749
31750 END LOOP;
31751
31752 --
31753 -- 4865292
31754 --
31755 -- Compare g_hdr_extract_count with event count in
31756 -- CreateHeadersAndLines.
31757 --
31758 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
31759
31760 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
31761 trace (p_msg => '# rows extracted from header extract objects '
31762 || ' (running total): '
31763 || g_hdr_extract_count
31764 ,p_level => C_LEVEL_STATEMENT
31765 ,p_module => l_log_module);
31766 END IF;
31767
31768 CLOSE header_cur;
31769 --
31770
31771 --
31772 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31773 trace
31774 (p_msg => 'END of EventClass_40'
31775 ,p_level => C_LEVEL_PROCEDURE
31776 ,p_module => l_log_module);
31777 END IF;
31778 --
31779 RETURN l_result;
31780 EXCEPTION
31781 WHEN xla_exceptions_pkg.application_exception THEN
31782
31783 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
31784
31785
31786 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
31787
31788 RAISE;
31789
31790 WHEN NO_DATA_FOUND THEN
31791
31792 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
31793 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
31794
31795 FOR header_record IN header_cur
31796 LOOP
31797 l_array_header_events(header_record.event_id) := header_record.event_id;
31798 END LOOP;
31799
31800 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
31801 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
31802
31803 fnd_file.put_line(fnd_file.LOG, ' ');
31804 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
31805 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
31806 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
31807
31808 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
31809 LOOP
31810 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
31811 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
31812 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
31813 END IF;
31814 END LOOP;
31815
31816 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
31817 fnd_file.put_line(fnd_file.LOG, ' ');
31818
31819
31820 xla_exceptions_pkg.raise_message
31821 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventClass_40');
31822
31823
31824 WHEN OTHERS THEN
31825 xla_exceptions_pkg.raise_message
31826 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventClass_40');
31827 END EventClass_40;
31828 --
31829
31830 ---------------------------------------
31831 --
31832 -- PRIVATE PROCEDURE
31833 -- insert_sources_41
31834 --
31835 ----------------------------------------
31836 --
31837 PROCEDURE insert_sources_41(
31838 p_target_ledger_id IN NUMBER
31839 , p_language IN VARCHAR2
31840 , p_sla_ledger_id IN NUMBER
31841 , p_pad_start_date IN DATE
31842 , p_pad_end_date IN DATE
31843 )
31844 IS
31845
31846 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PO_DEL_ADJ';
31847 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER';
31848 p_apps_owner VARCHAR2(30);
31849 l_log_module VARCHAR2(240);
31850 BEGIN
31851 IF g_log_enabled THEN
31852 l_log_module := C_DEFAULT_MODULE||'.insert_sources_41';
31853 END IF;
31854 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31855
31856 trace
31857 (p_msg => 'BEGIN of insert_sources_41'
31858 ,p_level => C_LEVEL_PROCEDURE
31859 ,p_module => l_log_module);
31860
31861 END IF;
31862
31863 -- select APPS owner
31864 SELECT oracle_username
31865 INTO p_apps_owner
31866 FROM fnd_oracle_userid
31867 WHERE read_only_flag = 'U'
31868 ;
31869
31870 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
31871 trace
31872 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
31873 ' - p_language = '||p_language||
31874 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
31875 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
31876 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
31877 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
31878 ,p_level => C_LEVEL_STATEMENT
31879 ,p_module => l_log_module);
31880 END IF;
31881
31882
31883 --
31884 INSERT INTO xla_diag_sources --hdr1
31885 (
31886 event_id
31887 , ledger_id
31888 , sla_ledger_id
31889 , description_language
31890 , object_name
31891 , object_type_code
31892 , line_number
31893 , source_application_id
31894 , source_type_code
31895 , source_code
31896 , source_value
31897 , source_meaning
31898 , created_by
31899 , creation_date
31900 , last_update_date
31901 , last_updated_by
31902 , last_update_login
31903 , program_update_date
31904 , program_application_id
31905 , program_id
31906 , request_id
31907 )
31908 SELECT
31909 event_id
31910 , p_target_ledger_id
31911 , p_sla_ledger_id
31912 , p_language
31913 , object_name
31914 , object_type_code
31915 , line_number
31916 , source_application_id
31917 , source_type_code
31918 , source_code
31919 , SUBSTR(source_value ,1,1996)
31920 , SUBSTR(source_meaning,1,200)
31921 , xla_environment_pkg.g_Usr_Id
31922 , TRUNC(SYSDATE)
31923 , TRUNC(SYSDATE)
31924 , xla_environment_pkg.g_Usr_Id
31925 , xla_environment_pkg.g_Login_Id
31926 , TRUNC(SYSDATE)
31927 , xla_environment_pkg.g_Prog_Appl_Id
31928 , xla_environment_pkg.g_Prog_Id
31929 , xla_environment_pkg.g_Req_Id
31930 FROM (
31931 SELECT xet.event_id event_id
31932 , 0 line_number
31933 , CASE r
31934 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
31935 WHEN 2 THEN 'CST_XLA_INV_SYSTEM_ITEMS_REF_V'
31936 WHEN 3 THEN 'CST_XLA_INV_REF_V'
31937 WHEN 4 THEN 'CST_XLA_INV_REF_V'
31938 WHEN 5 THEN 'CST_XLA_INV_TXN_TYPES_REF_V'
31939 WHEN 6 THEN 'CST_XLA_INV_HEADERS_V'
31940 WHEN 7 THEN 'PO_HEADERS_REF_V'
31941 WHEN 8 THEN 'CST_XLA_INV_ORG_PARAMS_REF_V'
31942 WHEN 9 THEN 'CST_XLA_INV_REF_V'
31943 WHEN 10 THEN 'CST_XLA_INV_REF_V'
31944 WHEN 11 THEN 'CST_XLA_INV_REF_V'
31945 WHEN 12 THEN 'CST_XLA_INV_REF_V'
31946 WHEN 13 THEN 'CST_XLA_INV_REF_V'
31947 WHEN 14 THEN 'PO_DISTS_REF_V'
31948 WHEN 15 THEN 'CST_XLA_INV_REF_V'
31949 WHEN 16 THEN 'CST_XLA_INV_REF_V'
31950 WHEN 17 THEN 'PSA_CST_XLA_UPG_V'
31951 WHEN 18 THEN 'PO_HEADERS_REF_V'
31952 WHEN 19 THEN 'PO_DISTS_REF_V'
31953 WHEN 20 THEN 'CST_XLA_INV_HEADERS_V'
31954
31955 ELSE null
31956 END object_name
31957 , CASE r
31958 WHEN 1 THEN 'HEADER'
31959 WHEN 2 THEN 'HEADER'
31960 WHEN 3 THEN 'HEADER'
31961 WHEN 4 THEN 'HEADER'
31962 WHEN 5 THEN 'HEADER'
31963 WHEN 6 THEN 'HEADER'
31964 WHEN 7 THEN 'HEADER'
31965 WHEN 8 THEN 'HEADER'
31966 WHEN 9 THEN 'HEADER'
31967 WHEN 10 THEN 'HEADER'
31968 WHEN 11 THEN 'HEADER'
31969 WHEN 12 THEN 'HEADER'
31970 WHEN 13 THEN 'HEADER'
31971 WHEN 14 THEN 'HEADER'
31972 WHEN 15 THEN 'HEADER'
31973 WHEN 16 THEN 'HEADER'
31974 WHEN 17 THEN 'HEADER'
31975 WHEN 18 THEN 'HEADER'
31976 WHEN 19 THEN 'HEADER'
31977 WHEN 20 THEN 'HEADER'
31978
31979 ELSE null
31980 END object_type_code
31981 , CASE r
31982 WHEN 1 THEN '707'
31983 WHEN 2 THEN '707'
31984 WHEN 3 THEN '707'
31985 WHEN 4 THEN '707'
31986 WHEN 5 THEN '707'
31987 WHEN 6 THEN '707'
31988 WHEN 7 THEN '201'
31989 WHEN 8 THEN '707'
31990 WHEN 9 THEN '707'
31991 WHEN 10 THEN '707'
31992 WHEN 11 THEN '707'
31993 WHEN 12 THEN '707'
31994 WHEN 13 THEN '707'
31995 WHEN 14 THEN '201'
31996 WHEN 15 THEN '707'
31997 WHEN 16 THEN '707'
31998 WHEN 17 THEN '707'
31999 WHEN 18 THEN '201'
32000 WHEN 19 THEN '201'
32001 WHEN 20 THEN '707'
32002
32003 ELSE null
32004 END source_application_id
32005 , 'S' source_type_code
32006 , CASE r
32007 WHEN 1 THEN 'TRANSACTION_ID'
32008 WHEN 2 THEN 'ITEM_CONCATENATED_SEGMENTS'
32009 WHEN 3 THEN 'TRANSACTION_QUANTITY'
32010 WHEN 4 THEN 'TRANSACTION_UOM'
32011 WHEN 5 THEN 'INV_TXN_TYPE_DESCRIPTION'
32012 WHEN 6 THEN 'DISTRIBUTION_TYPE'
32013 WHEN 7 THEN 'PURCH_ENCUMBRANCE_FLAG'
32014 WHEN 8 THEN 'ENCUMBRANCE_REVERSAL_FLAG'
32015 WHEN 9 THEN 'APPLIED_TO_APPL_ID'
32016 WHEN 10 THEN 'APPLIED_TO_DIST_LINK_TYPE'
32017 WHEN 11 THEN 'APPLIED_TO_ENTITY_CODE'
32018 WHEN 12 THEN 'TXN_PO_DISTRIBUTION_ID'
32019 WHEN 13 THEN 'APPLIED_TO_PO_DOC_ID'
32020 WHEN 14 THEN 'PO_BUDGET_ACCOUNT'
32021 WHEN 15 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
32022 WHEN 16 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
32023 WHEN 17 THEN 'CST_ENCUM_UPG_OPTION'
32024 WHEN 18 THEN 'PURCH_ENCUMBRANCE_TYPE_ID'
32025 WHEN 19 THEN 'RESERVED_FLAG'
32026 WHEN 20 THEN 'TRANSFER_TO_GL_INDICATOR'
32027
32028 ELSE null
32029 END source_code
32030 , CASE r
32031 WHEN 1 THEN TO_CHAR(h1.TRANSACTION_ID)
32032 WHEN 2 THEN TO_CHAR(h5.ITEM_CONCATENATED_SEGMENTS)
32033 WHEN 3 THEN TO_CHAR(h4.TRANSACTION_QUANTITY)
32034 WHEN 4 THEN TO_CHAR(h4.TRANSACTION_UOM)
32035 WHEN 5 THEN TO_CHAR(h6.INV_TXN_TYPE_DESCRIPTION)
32036 WHEN 6 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
32037 WHEN 7 THEN TO_CHAR(h8.PURCH_ENCUMBRANCE_FLAG)
32038 WHEN 8 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_FLAG)
32039 WHEN 9 THEN TO_CHAR(h4.APPLIED_TO_APPL_ID)
32040 WHEN 10 THEN TO_CHAR(h4.APPLIED_TO_DIST_LINK_TYPE)
32041 WHEN 11 THEN TO_CHAR(h4.APPLIED_TO_ENTITY_CODE)
32042 WHEN 12 THEN TO_CHAR(h4.TXN_PO_DISTRIBUTION_ID)
32043 WHEN 13 THEN TO_CHAR(h4.APPLIED_TO_PO_DOC_ID)
32044 WHEN 14 THEN TO_CHAR(h7.PO_BUDGET_ACCOUNT)
32045 WHEN 15 THEN TO_CHAR(h4.ENCUM_REVERSAL_AMOUNT_ENTERED)
32046 WHEN 16 THEN TO_CHAR(h4.ENCUMBRANCE_REVERSAL_AMOUNT)
32047 WHEN 17 THEN TO_CHAR(h9.CST_ENCUM_UPG_OPTION)
32048 WHEN 18 THEN TO_CHAR(h8.PURCH_ENCUMBRANCE_TYPE_ID)
32049 WHEN 19 THEN TO_CHAR(h7.RESERVED_FLAG)
32050 WHEN 20 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
32051
32052 ELSE null
32053 END source_value
32054 , CASE r
32055 WHEN 6 THEN fvl9.meaning
32056 WHEN 20 THEN fvl42.meaning
32057
32058 ELSE null
32059 END source_meaning
32060 FROM xla_events_gt xet
32061 , CST_XLA_INV_HEADERS_V h1
32062 , CST_XLA_INV_ORG_PARAMS_REF_V h3
32063 , CST_XLA_INV_REF_V h4
32064 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
32065 , CST_XLA_INV_TXN_TYPES_REF_V h6
32066 , PO_DISTS_REF_V h7
32067 , PO_HEADERS_REF_V h8
32068 , PSA_CST_XLA_UPG_V h9
32069 , fnd_lookup_values fvl9
32070 , fnd_lookup_values fvl42
32071 ,(select rownum r from all_objects where rownum <= 20 and owner = p_apps_owner)
32072 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
32073 AND xet.event_type_code = C_EVENT_TYPE_CODE
32074 AND h1.event_id = xet.event_id
32075 AND h3.inv_organization_id (+) = h1.organization_id AND h4.ref_transaction_id = h1.transaction_id AND h5.inventory_item_id (+) = h1.inventory_item_id and h5.organization_id (+) = h1.organization_id AND h6.inv_transaction_type_id = h1.transaction_type_id AND h4.txn_po_header_id = h7.po_header_id (+) and h4.txn_po_distribution_id = h7.po_distribution_id (+) AND h4.txn_po_header_id = h8.po_header_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) =
32076 'CST_DISTRIBUTION_TYPE'
32077 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
32078 AND fvl9.view_application_id(+) = 700
32079 AND fvl9.language(+) = USERENV('LANG')
32080 AND fvl42.lookup_type(+) = 'YES_NO'
32081 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
32082 AND fvl42.view_application_id(+) = 0
32083 AND fvl42.language(+) = USERENV('LANG')
32084
32085 )
32086 ;
32087 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
32088
32089 trace
32090 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
32091 ,p_level => C_LEVEL_STATEMENT
32092 ,p_module => l_log_module);
32093
32094 END IF;
32095 --
32096
32097
32098
32099 --
32100 INSERT INTO xla_diag_sources --line1
32101 (
32102 event_id
32103 , ledger_id
32104 , sla_ledger_id
32105 , description_language
32106 , object_name
32107 , object_type_code
32108 , line_number
32109 , source_application_id
32110 , source_type_code
32111 , source_code
32112 , source_value
32113 , source_meaning
32114 , created_by
32115 , creation_date
32116 , last_update_date
32117 , last_updated_by
32118 , last_update_login
32119 , program_update_date
32120 , program_application_id
32121 , program_id
32122 , request_id
32123 )
32124 SELECT event_id
32125 , p_target_ledger_id
32126 , p_sla_ledger_id
32127 , p_language
32128 , object_name
32129 , object_type_code
32130 , line_number
32131 , source_application_id
32132 , source_type_code
32133 , source_code
32134 , SUBSTR(source_value,1,1996)
32135 , SUBSTR(source_meaning,1,200)
32136 , xla_environment_pkg.g_Usr_Id
32137 , TRUNC(SYSDATE)
32138 , TRUNC(SYSDATE)
32139 , xla_environment_pkg.g_Usr_Id
32140 , xla_environment_pkg.g_Login_Id
32141 , TRUNC(SYSDATE)
32142 , xla_environment_pkg.g_Prog_Appl_Id
32143 , xla_environment_pkg.g_Prog_Id
32144 , xla_environment_pkg.g_Req_Id
32145 FROM (
32146 SELECT xet.event_id event_id
32147 , l2.line_number line_number
32148 , CASE r
32149 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
32150 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
32151 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
32152
32153 ELSE null
32154 END object_name
32155 , CASE r
32156 WHEN 1 THEN 'LINE'
32157 WHEN 2 THEN 'LINE'
32158 WHEN 3 THEN 'LINE'
32159
32160 ELSE null
32161 END object_type_code
32162 , CASE r
32163 WHEN 1 THEN '707'
32164 WHEN 2 THEN '707'
32165 WHEN 3 THEN '707'
32166
32167 ELSE null
32168 END source_application_id
32169 , 'S' source_type_code
32170 , CASE r
32171 WHEN 1 THEN 'ACCOUNTING_LINE_TYPE_CODE'
32172 WHEN 2 THEN 'DISTRIBUTION_IDENTIFIER'
32173 WHEN 3 THEN 'CURRENCY_CODE'
32174
32175 ELSE null
32176 END source_code
32177 , CASE r
32178 WHEN 1 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
32179 WHEN 2 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
32180 WHEN 3 THEN TO_CHAR(l2.CURRENCY_CODE)
32181
32182 ELSE null
32183 END source_value
32184 , null source_meaning
32185 FROM xla_events_gt xet
32186 , CST_XLA_INV_LINES_V l2
32187 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
32188 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
32189 AND xet.event_type_code = C_EVENT_TYPE_CODE
32190 AND l2.event_id = xet.event_id
32191
32192 )
32193 ;
32194 --
32195 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
32196
32197 trace
32198 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
32199 ,p_level => C_LEVEL_STATEMENT
32200 ,p_module => l_log_module);
32201
32202 END IF;
32203
32204
32205 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32206 trace
32207 (p_msg => 'END of insert_sources_41'
32208 ,p_level => C_LEVEL_PROCEDURE
32209 ,p_module => l_log_module);
32210 END IF;
32211 EXCEPTION
32212 WHEN xla_exceptions_pkg.application_exception THEN
32213 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
32214 trace
32215 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
32216 ,p_level => C_LEVEL_EXCEPTION
32217 ,p_module => l_log_module);
32218 END IF;
32219 RAISE;
32220 WHEN OTHERS THEN
32221 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
32222 trace
32223 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
32224 ,p_level => C_LEVEL_EXCEPTION
32225 ,p_module => l_log_module);
32226 END IF;
32227 xla_exceptions_pkg.raise_message
32228 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_41');
32229 END insert_sources_41;
32230 --
32231
32232 ---------------------------------------
32233 --
32234 -- PRIVATE FUNCTION
32235 -- EventType_41
32236 --
32237 ----------------------------------------
32238 --
32239 FUNCTION EventType_41
32240 (p_application_id IN NUMBER
32241 ,p_base_ledger_id IN NUMBER
32242 ,p_target_ledger_id IN NUMBER
32243 ,p_language IN VARCHAR2
32244 ,p_currency_code IN VARCHAR2
32245 ,p_sla_ledger_id IN NUMBER
32246 ,p_pad_start_date IN DATE
32247 ,p_pad_end_date IN DATE
32248 ,p_primary_ledger_id IN NUMBER)
32249 RETURN BOOLEAN IS
32250 --
32251 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PO_DEL_ADJ';
32252 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER';
32253
32254 l_calculate_acctd_flag VARCHAR2(1) :='N';
32255 l_calculate_g_l_flag VARCHAR2(1) :='N';
32256 --
32257 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
32258 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
32259 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
32260 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
32261 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
32262 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
32263 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
32264 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
32265 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
32266 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
32267 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
32268 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
32269 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
32270 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
32271 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
32272 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
32273 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
32274 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
32275 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
32276 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
32277 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
32278 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
32279 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
32280 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
32281 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
32282 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
32283
32284 l_event_id NUMBER;
32285 l_previous_event_id NUMBER;
32286 l_first_event_id NUMBER;
32287 l_last_event_id NUMBER;
32288
32289 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
32290 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32291 --
32292 --
32293 l_result BOOLEAN := TRUE;
32294 l_rows NUMBER := 1000;
32295 l_event_type_name VARCHAR2(80) := 'PO Delivery Adjustment';
32296 l_event_class_name VARCHAR2(80) := 'PO Delivery into Inventory';
32297 l_description VARCHAR2(4000);
32298 l_transaction_reversal NUMBER;
32299 l_ae_header_id NUMBER;
32300 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
32301 l_log_module VARCHAR2(240);
32302 --
32303 l_acct_reversal_source VARCHAR2(30);
32304 l_trx_reversal_source VARCHAR2(30);
32305
32306 l_continue_with_lines BOOLEAN := TRUE;
32307 --
32308 l_acc_rev_gl_date_source DATE; -- 4262811
32309 --
32310 type t_array_event_id is table of number index by binary_integer;
32311
32312 l_rec_array_event t_rec_array_event;
32313 l_null_rec_array_event t_rec_array_event;
32314 l_array_ae_header_id xla_number_array_type;
32315 l_actual_flag VARCHAR2(1) := NULL;
32316 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
32317 l_balance_type_code VARCHAR2(1) :=NULL;
32318 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
32319
32320 --
32321 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
32322 --
32323
32324 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSACTION_ID%TYPE INDEX BY BINARY_INTEGER;
32325 TYPE t_array_source_2 IS TABLE OF CST_XLA_INV_SYSTEM_ITEMS_REF_V.ITEM_CONCATENATED_SEGMENTS%TYPE INDEX BY BINARY_INTEGER;
32326 TYPE t_array_source_3 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_QUANTITY%TYPE INDEX BY BINARY_INTEGER;
32327 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_UOM%TYPE INDEX BY BINARY_INTEGER;
32328 TYPE t_array_source_5 IS TABLE OF CST_XLA_INV_TXN_TYPES_REF_V.INV_TXN_TYPE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
32329 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
32330 TYPE t_array_source_16 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
32331 TYPE t_array_source_17 IS TABLE OF CST_XLA_INV_ORG_PARAMS_REF_V.ENCUMBRANCE_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
32332 TYPE t_array_source_19 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
32333 TYPE t_array_source_20 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
32334 TYPE t_array_source_21 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
32335 TYPE t_array_source_22 IS TABLE OF CST_XLA_INV_REF_V.TXN_PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
32336 TYPE t_array_source_23 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
32337 TYPE t_array_source_24 IS TABLE OF PO_DISTS_REF_V.PO_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
32338 TYPE t_array_source_25 IS TABLE OF CST_XLA_INV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
32339 TYPE t_array_source_26 IS TABLE OF CST_XLA_INV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
32340 TYPE t_array_source_27 IS TABLE OF PSA_CST_XLA_UPG_V.CST_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
32341 TYPE t_array_source_28 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
32342 TYPE t_array_source_31 IS TABLE OF PO_DISTS_REF_V.RESERVED_FLAG%TYPE INDEX BY BINARY_INTEGER;
32343 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
32344
32345 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
32346 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
32347 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
32348
32349 l_array_source_1 t_array_source_1;
32350 l_array_source_2 t_array_source_2;
32351 l_array_source_3 t_array_source_3;
32352 l_array_source_4 t_array_source_4;
32353 l_array_source_5 t_array_source_5;
32354 l_array_source_9 t_array_source_9;
32355 l_array_source_9_meaning t_array_lookup_meaning;
32356 l_array_source_16 t_array_source_16;
32357 l_array_source_17 t_array_source_17;
32358 l_array_source_19 t_array_source_19;
32359 l_array_source_20 t_array_source_20;
32360 l_array_source_21 t_array_source_21;
32361 l_array_source_22 t_array_source_22;
32362 l_array_source_23 t_array_source_23;
32363 l_array_source_24 t_array_source_24;
32364 l_array_source_25 t_array_source_25;
32365 l_array_source_26 t_array_source_26;
32366 l_array_source_27 t_array_source_27;
32367 l_array_source_28 t_array_source_28;
32368 l_array_source_31 t_array_source_31;
32369 l_array_source_42 t_array_source_42;
32370 l_array_source_42_meaning t_array_lookup_meaning;
32371
32372 l_array_source_7 t_array_source_7;
32373 l_array_source_8 t_array_source_8;
32374 l_array_source_11 t_array_source_11;
32375
32376 --
32377 CURSOR header_cur
32378 IS
32379 SELECT /*+ leading(xet) cardinality(xet,1) */
32380 -- Event Type Code: PO_DEL_ADJ
32381 -- Event Class Code: PURCHASE_ORDER
32382 xet.entity_id
32383 , xet.legal_entity_id
32384 , xet.entity_code
32385 , xet.transaction_number
32386 , xet.event_id
32387 , xet.event_class_code
32388 , xet.event_type_code
32389 , xet.event_number
32390 , xet.event_date
32391 , xet.transaction_date
32392 , xet.reference_num_1
32393 , xet.reference_num_2
32394 , xet.reference_num_3
32395 , xet.reference_num_4
32396 , xet.reference_char_1
32397 , xet.reference_char_2
32398 , xet.reference_char_3
32399 , xet.reference_char_4
32400 , xet.reference_date_1
32401 , xet.reference_date_2
32402 , xet.reference_date_3
32403 , xet.reference_date_4
32404 , xet.event_created_by
32405 , xet.budgetary_control_flag
32406 , h1.TRANSACTION_ID source_1
32407 , h5.ITEM_CONCATENATED_SEGMENTS source_2
32408 , h4.TRANSACTION_QUANTITY source_3
32409 , h4.TRANSACTION_UOM source_4
32410 , h6.INV_TXN_TYPE_DESCRIPTION source_5
32411 , h1.DISTRIBUTION_TYPE source_9
32412 , fvl9.meaning source_9_meaning
32413 , h8.PURCH_ENCUMBRANCE_FLAG source_16
32414 , h3.ENCUMBRANCE_REVERSAL_FLAG source_17
32415 , h4.APPLIED_TO_APPL_ID source_19
32416 , h4.APPLIED_TO_DIST_LINK_TYPE source_20
32417 , h4.APPLIED_TO_ENTITY_CODE source_21
32418 , h4.TXN_PO_DISTRIBUTION_ID source_22
32419 , h4.APPLIED_TO_PO_DOC_ID source_23
32420 , h7.PO_BUDGET_ACCOUNT source_24
32421 , h4.ENCUM_REVERSAL_AMOUNT_ENTERED source_25
32422 , h4.ENCUMBRANCE_REVERSAL_AMOUNT source_26
32423 , h9.CST_ENCUM_UPG_OPTION source_27
32424 , h8.PURCH_ENCUMBRANCE_TYPE_ID source_28
32425 , h7.RESERVED_FLAG source_31
32426 , h1.TRANSFER_TO_GL_INDICATOR source_42
32427 , fvl42.meaning source_42_meaning
32428 FROM xla_events_gt xet
32429 , CST_XLA_INV_HEADERS_V h1
32430 , CST_XLA_INV_ORG_PARAMS_REF_V h3
32431 , CST_XLA_INV_REF_V h4
32432 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
32433 , CST_XLA_INV_TXN_TYPES_REF_V h6
32434 , PO_DISTS_REF_V h7
32435 , PO_HEADERS_REF_V h8
32436 , PSA_CST_XLA_UPG_V h9
32437 , fnd_lookup_values fvl9
32438 , fnd_lookup_values fvl42
32439 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
32440 and xet.event_type_code = C_EVENT_TYPE_CODE
32441 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
32442 AND h3.INV_ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h4.ref_transaction_id = h1.transaction_id AND h5.INVENTORY_ITEM_ID (+) = h1.INVENTORY_ITEM_ID AND h5.ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h6.INV_TRANSACTION_TYPE_ID = h1.TRANSACTION_TYPE_ID AND h4.txn_po_header_id = h7.po_header_id (+) AND h4.txn_po_distribution_id = h7.po_distribution_id (+) AND h4.txn_po_header_id = h8.po_header_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) =
32443 'CST_DISTRIBUTION_TYPE'
32444 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
32445 AND fvl9.view_application_id(+) = 700
32446 AND fvl9.language(+) = USERENV('LANG')
32447 AND fvl42.lookup_type(+) = 'YES_NO'
32448 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
32449 AND fvl42.view_application_id(+) = 0
32450 AND fvl42.language(+) = USERENV('LANG')
32451
32452 ORDER BY event_id
32453 ;
32454
32455
32456 --
32457 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
32458 IS
32459 SELECT /*+ leading(xet) cardinality(xet,1) */
32460 -- Event Type Code: PO_DEL_ADJ
32461 -- Event Class Code: PURCHASE_ORDER
32462 xet.entity_id
32463 ,xet.legal_entity_id
32464 ,xet.entity_code
32465 ,xet.transaction_number
32466 ,xet.event_id
32467 ,xet.event_class_code
32468 ,xet.event_type_code
32469 ,xet.event_number
32470 ,xet.event_date
32471 ,xet.transaction_date
32472 ,xet.reference_num_1
32473 ,xet.reference_num_2
32474 ,xet.reference_num_3
32475 ,xet.reference_num_4
32476 ,xet.reference_char_1
32477 ,xet.reference_char_2
32478 ,xet.reference_char_3
32479 ,xet.reference_char_4
32480 ,xet.reference_date_1
32481 ,xet.reference_date_2
32482 ,xet.reference_date_3
32483 ,xet.reference_date_4
32484 ,xet.event_created_by
32485 ,xet.budgetary_control_flag , l2.LINE_NUMBER
32486 , l2.ACCOUNTING_LINE_TYPE_CODE source_7
32487 , l2.DISTRIBUTION_IDENTIFIER source_8
32488 , l2.CURRENCY_CODE source_11
32489 FROM xla_events_gt xet
32490 , CST_XLA_INV_LINES_V l2
32491 WHERE xet.event_id between x_first_event_id and x_last_event_id
32492 and xet.event_date between p_pad_start_date and p_pad_end_date
32493 and xet.event_type_code = C_EVENT_TYPE_CODE
32494 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
32495 ;
32496
32497 --
32498 BEGIN
32499 IF g_log_enabled THEN
32500 l_log_module := C_DEFAULT_MODULE||'.EventType_41';
32501 END IF;
32502 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32503 trace
32504 (p_msg => 'BEGIN of EventType_41'
32505 ,p_level => C_LEVEL_PROCEDURE
32506 ,p_module => l_log_module);
32507 END IF;
32508
32509 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
32510 trace
32511 (p_msg => 'p_application_id = '||p_application_id||
32512 ' - p_base_ledger_id = '||p_base_ledger_id||
32513 ' - p_target_ledger_id = '||p_target_ledger_id||
32514 ' - p_language = '||p_language||
32515 ' - p_currency_code = '||p_currency_code||
32516 ' - p_sla_ledger_id = '||p_sla_ledger_id
32517 ,p_level => C_LEVEL_STATEMENT
32518 ,p_module => l_log_module);
32519 END IF;
32520 --
32521 -- initialze arrays
32522 --
32523 g_array_event.DELETE;
32524 l_rec_array_event := l_null_rec_array_event;
32525 --
32526 --------------------------------------
32527 -- 4262811 Initialze MPA Line Number
32528 --------------------------------------
32529 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
32530
32531 --
32532
32533 --
32534 OPEN header_cur;
32535 --
32536 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
32537 trace
32538 (p_msg => 'SQL - FETCH header_cur'
32539 ,p_level => C_LEVEL_STATEMENT
32540 ,p_module => l_log_module);
32541 END IF;
32542 --
32543 LOOP
32544 FETCH header_cur BULK COLLECT INTO
32545 l_array_entity_id
32546 , l_array_legal_entity_id
32547 , l_array_entity_code
32548 , l_array_transaction_num
32549 , l_array_event_id
32550 , l_array_class_code
32551 , l_array_event_type
32552 , l_array_event_number
32553 , l_array_event_date
32554 , l_array_transaction_date
32555 , l_array_reference_num_1
32556 , l_array_reference_num_2
32557 , l_array_reference_num_3
32558 , l_array_reference_num_4
32559 , l_array_reference_char_1
32560 , l_array_reference_char_2
32561 , l_array_reference_char_3
32562 , l_array_reference_char_4
32563 , l_array_reference_date_1
32564 , l_array_reference_date_2
32565 , l_array_reference_date_3
32566 , l_array_reference_date_4
32567 , l_array_event_created_by
32568 , l_array_budgetary_control_flag
32569 , l_array_source_1
32570 , l_array_source_2
32571 , l_array_source_3
32572 , l_array_source_4
32573 , l_array_source_5
32574 , l_array_source_9
32575 , l_array_source_9_meaning
32576 , l_array_source_16
32577 , l_array_source_17
32578 , l_array_source_19
32579 , l_array_source_20
32580 , l_array_source_21
32581 , l_array_source_22
32582 , l_array_source_23
32583 , l_array_source_24
32584 , l_array_source_25
32585 , l_array_source_26
32586 , l_array_source_27
32587 , l_array_source_28
32588 , l_array_source_31
32589 , l_array_source_42
32590 , l_array_source_42_meaning
32591 LIMIT l_rows;
32592 --
32593 IF (C_LEVEL_EVENT >= g_log_level) THEN
32594 trace
32595 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
32596 ,p_level => C_LEVEL_EVENT
32597 ,p_module => l_log_module);
32598 END IF;
32599 --
32600 EXIT WHEN l_array_entity_id.COUNT = 0;
32601
32602 -- initialize arrays
32603 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
32604 XLA_AE_LINES_PKG.g_rec_lines := NULL;
32605
32606 --
32607 -- Bug 4458708
32608 --
32609 XLA_AE_LINES_PKG.g_LineNumber := 0;
32610
32611
32612 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
32613 g_last_hdr_idx := l_array_event_id.LAST;
32614 --
32615 -- loop for the headers. Each iteration is for each header extract row
32616 -- fetched in header cursor
32617 --
32618 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
32619
32620 --
32621 -- set event info as cache for other routines to refer event attributes
32622 --
32623 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
32624 (p_application_id => p_application_id
32625 ,p_primary_ledger_id => p_primary_ledger_id
32626 ,p_base_ledger_id => p_base_ledger_id
32627 ,p_target_ledger_id => p_target_ledger_id
32628 ,p_entity_id => l_array_entity_id(hdr_idx)
32629 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
32630 ,p_entity_code => l_array_entity_code(hdr_idx)
32631 ,p_transaction_num => l_array_transaction_num(hdr_idx)
32632 ,p_event_id => l_array_event_id(hdr_idx)
32633 ,p_event_class_code => l_array_class_code(hdr_idx)
32634 ,p_event_type_code => l_array_event_type(hdr_idx)
32635 ,p_event_number => l_array_event_number(hdr_idx)
32636 ,p_event_date => l_array_event_date(hdr_idx)
32637 ,p_transaction_date => l_array_transaction_date(hdr_idx)
32638 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
32639 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
32640 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
32641 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
32642 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
32643 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
32644 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
32645 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
32646 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
32647 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
32648 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
32649 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
32650 ,p_event_created_by => l_array_event_created_by(hdr_idx)
32651 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
32652
32653 --
32654 -- set the status of entry to C_VALID (0)
32655 --
32656 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
32657
32658 --
32659 -- initialize a row for ae header
32660 --
32661 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
32662
32663 l_event_id := l_array_event_id(hdr_idx);
32664
32665 --
32666 -- storing the hdr_idx for event. May be used by line cursor.
32667 --
32668 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
32669
32670 --
32671 -- store sources from header extract. This can be improved to
32672 -- store only those sources from header extract that may be used in lines
32673 --
32674
32675 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
32676 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
32677 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
32678 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
32679 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
32680 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
32681 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
32682 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
32683 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
32684 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
32685 g_array_event(l_event_id).array_value_char('source_20') := l_array_source_20(hdr_idx);
32686 g_array_event(l_event_id).array_value_char('source_21') := l_array_source_21(hdr_idx);
32687 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
32688 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
32689 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
32690 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
32691 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
32692 g_array_event(l_event_id).array_value_char('source_27') := l_array_source_27(hdr_idx);
32693 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
32694 g_array_event(l_event_id).array_value_char('source_31') := l_array_source_31(hdr_idx);
32695 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
32696 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
32697
32698 --
32699 -- initilaize the status of ae headers for diffrent balance types
32700 -- the status is initialised to C_NOT_CREATED (2)
32701 --
32702 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
32703 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
32704 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
32705
32706 --
32707 -- call api to validate and store accounting attributes for header
32708 --
32709
32710 ------------------------------------------------------------
32711 -- Accrual Reversal : to get date for Standard Source (NONE)
32712 ------------------------------------------------------------
32713 l_acc_rev_gl_date_source := NULL;
32714
32715 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
32716 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_28');
32717 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
32718 l_rec_acct_attrs.array_date_value(2) :=
32719 xla_ae_sources_pkg.GetSystemSourceDate(
32720 p_source_code => 'XLA_REFERENCE_DATE_1'
32721 , p_source_type_code => 'Y'
32722 , p_source_application_id => 602
32723 );
32724 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
32725 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_42');
32726
32727
32728 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
32729
32730 XLA_AE_HEADER_PKG.SetJeCategoryName;
32731
32732 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
32733 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
32734 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
32735 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
32736 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
32737
32738
32739 --
32740 xla_ae_header_pkg.SetHdrDescription(
32741 p_description => Description_1 (
32742 p_application_id => p_application_id
32743 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
32744 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
32745 , p_source_3 => g_array_event(l_event_id).array_value_num('source_3')
32746 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
32747 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
32748 )
32749 );
32750 --
32751
32752 -- No header level analytical criteria
32753
32754 --
32755 --accounting attribute enhancement, bug 3612931
32756 --
32757 l_trx_reversal_source := SUBSTR(NULL, 1,30);
32758
32759 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
32760 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
32761
32762 xla_accounting_err_pkg.build_message
32763 (p_appli_s_name => 'XLA'
32764 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
32765 ,p_token_1 => 'ACCT_ATTR_NAME'
32766 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
32767 ,p_token_2 => 'PRODUCT_NAME'
32768 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
32769 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
32770 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
32771 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
32772
32773 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
32774 --
32775 -- following sets the accounting attributes needed to reverse
32776 -- accounting for a distributeion
32777 --
32778 xla_ae_lines_pkg.SetTrxReversalAttrs
32779 (p_event_id => l_event_id
32780 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
32781 ,p_trx_reversal_source => l_trx_reversal_source);
32782
32783 END IF;
32784
32785
32786 ----------------------------------------------------------------
32787 -- 4262811 - update the header statuses to invalid in need be
32788 ----------------------------------------------------------------
32789 --
32790 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
32791
32792
32793 -----------------------------------------------
32794 -- No accrual reversal for the event class/type
32795 -----------------------------------------------
32796 ----------------------------------------------------------------
32797
32798 --
32799 -- this ends the header loop iteration for one bulk fetch
32800 --
32801 END LOOP;
32802
32803 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
32804 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
32805
32806 --
32807 -- insert dummy rows into lines gt table that were created due to
32808 -- transaction reversals
32809 --
32810 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
32811 l_result := XLA_AE_LINES_PKG.InsertLines;
32812 END IF;
32813
32814 --
32815 -- reset the temp_line_num for each set of events fetched from header
32816 -- cursor rather than doing it for each new event in line cursor
32817 -- Bug 3939231
32818 --
32819 xla_ae_lines_pkg.g_temp_line_num := 0;
32820
32821
32822
32823 --
32824 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
32825 --
32826 --
32827 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
32828
32829 trace
32830 (p_msg => 'SQL - FETCH line_cur'
32831 ,p_level => C_LEVEL_STATEMENT
32832 ,p_module => l_log_module);
32833
32834 END IF;
32835 --
32836 --
32837 LOOP
32838 --
32839 FETCH line_cur BULK COLLECT INTO
32840 l_array_entity_id
32841 , l_array_legal_entity_id
32842 , l_array_entity_code
32843 , l_array_transaction_num
32844 , l_array_event_id
32845 , l_array_class_code
32846 , l_array_event_type
32847 , l_array_event_number
32848 , l_array_event_date
32849 , l_array_transaction_date
32850 , l_array_reference_num_1
32851 , l_array_reference_num_2
32852 , l_array_reference_num_3
32853 , l_array_reference_num_4
32854 , l_array_reference_char_1
32855 , l_array_reference_char_2
32856 , l_array_reference_char_3
32857 , l_array_reference_char_4
32858 , l_array_reference_date_1
32859 , l_array_reference_date_2
32860 , l_array_reference_date_3
32861 , l_array_reference_date_4
32862 , l_array_event_created_by
32863 , l_array_budgetary_control_flag
32864 , l_array_extract_line_num
32865 , l_array_source_7
32866 , l_array_source_8
32867 , l_array_source_11
32868 LIMIT l_rows;
32869
32870 --
32871 IF (C_LEVEL_EVENT >= g_log_level) THEN
32872 trace
32873 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
32874 ,p_level => C_LEVEL_EVENT
32875 ,p_module => l_log_module);
32876 END IF;
32877 --
32878 EXIT WHEN l_array_entity_id.count = 0;
32879
32880 XLA_AE_LINES_PKG.g_rec_lines := null;
32881
32882 --
32883 -- Bug 4458708
32884 --
32885 XLA_AE_LINES_PKG.g_LineNumber := 0;
32886 --
32887 --
32888
32889 FOR Idx IN 1..l_array_event_id.count LOOP
32890 --
32891 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
32892 --
32893 l_event_id := l_array_event_id(idx); -- 5648433
32894
32895 --
32896 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
32897 --
32898
32899 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
32900 (g_array_event(l_event_id).array_value_num('header_index'))
32901 ,'N'
32902 ) <> 'Y'
32903 THEN
32904 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
32905 trace
32906 (p_msg => 'Trancaction revesal option is not Y '
32907 ,p_level => C_LEVEL_STATEMENT
32908 ,p_module => l_log_module);
32909 END IF;
32910
32911 --
32912 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
32913 --
32914 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
32915 --
32916 -- set event info as cache for other routines to refer event attributes
32917 --
32918
32919 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
32920 l_previous_event_id := l_event_id;
32921
32922 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
32923 (p_application_id => p_application_id
32924 ,p_primary_ledger_id => p_primary_ledger_id
32925 ,p_base_ledger_id => p_base_ledger_id
32926 ,p_target_ledger_id => p_target_ledger_id
32927 ,p_entity_id => l_array_entity_id(Idx)
32928 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
32929 ,p_entity_code => l_array_entity_code(Idx)
32930 ,p_transaction_num => l_array_transaction_num(Idx)
32931 ,p_event_id => l_array_event_id(Idx)
32932 ,p_event_class_code => l_array_class_code(Idx)
32933 ,p_event_type_code => l_array_event_type(Idx)
32934 ,p_event_number => l_array_event_number(Idx)
32935 ,p_event_date => l_array_event_date(Idx)
32936 ,p_transaction_date => l_array_transaction_date(Idx)
32937 ,p_reference_num_1 => l_array_reference_num_1(Idx)
32938 ,p_reference_num_2 => l_array_reference_num_2(Idx)
32939 ,p_reference_num_3 => l_array_reference_num_3(Idx)
32940 ,p_reference_num_4 => l_array_reference_num_4(Idx)
32941 ,p_reference_char_1 => l_array_reference_char_1(Idx)
32942 ,p_reference_char_2 => l_array_reference_char_2(Idx)
32943 ,p_reference_char_3 => l_array_reference_char_3(Idx)
32944 ,p_reference_char_4 => l_array_reference_char_4(Idx)
32945 ,p_reference_date_1 => l_array_reference_date_1(Idx)
32946 ,p_reference_date_2 => l_array_reference_date_2(Idx)
32947 ,p_reference_date_3 => l_array_reference_date_3(Idx)
32948 ,p_reference_date_4 => l_array_reference_date_4(Idx)
32949 ,p_event_created_by => l_array_event_created_by(Idx)
32950 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
32951 --
32952 END IF;
32953
32954
32955
32956 --
32957 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
32958
32959 l_acct_reversal_source := SUBSTR(NULL, 1,30);
32960
32961 IF l_continue_with_lines THEN
32962 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
32963 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
32964
32965 xla_accounting_err_pkg.build_message
32966 (p_appli_s_name => 'XLA'
32967 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
32968 ,p_token_1 => 'LINE_NUMBER'
32969 ,p_value_1 => l_array_extract_line_num(Idx)
32970 ,p_token_2 => 'PRODUCT_NAME'
32971 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
32972 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
32973 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
32974 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
32975
32976 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
32977 --
32978 -- following sets the accounting attributes needed to reverse
32979 -- accounting for a distributeion
32980 --
32981
32982 --
32983 -- 5217187
32984 --
32985 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
32986 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
32987 g_array_event(l_event_id).array_value_num('header_index'));
32988 --
32989 --
32990
32991 -- No reversal code generated
32992
32993 xla_ae_lines_pkg.SetAcctReversalAttrs
32994 (p_event_id => l_event_id
32995 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
32996 ,p_calculate_acctd_flag => l_calculate_acctd_flag
32997 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
32998 END IF;
32999
33000 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
33001 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
33002
33003 --
33004 AcctLineType_8 (
33005 p_application_id => p_application_id
33006 ,p_event_id => l_event_id
33007 ,p_calculate_acctd_flag => l_calculate_acctd_flag
33008 ,p_calculate_g_l_flag => l_calculate_g_l_flag
33009 ,p_actual_flag => l_actual_flag
33010 ,p_balance_type_code => l_balance_type_code
33011 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
33012
33013 , p_source_8 => l_array_source_8(Idx)
33014 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
33015 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
33016 , p_source_11 => l_array_source_11(Idx)
33017 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
33018 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
33019 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
33020 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
33021 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
33022 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
33023 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
33024 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
33025 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
33026 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
33027 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
33028 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
33029 );
33030 If(l_balance_type_code = 'A') THEN
33031 l_actual_gain_loss_ref := l_gain_or_loss_ref;
33032 END IF;
33033
33034 --
33035
33036
33037 --
33038 AcctLineType_15 (
33039 p_application_id => p_application_id
33040 ,p_event_id => l_event_id
33041 ,p_calculate_acctd_flag => l_calculate_acctd_flag
33042 ,p_calculate_g_l_flag => l_calculate_g_l_flag
33043 ,p_actual_flag => l_actual_flag
33044 ,p_balance_type_code => l_balance_type_code
33045 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
33046
33047 , p_source_7 => l_array_source_7(Idx)
33048 , p_source_8 => l_array_source_8(Idx)
33049 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
33050 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
33051 , p_source_11 => l_array_source_11(Idx)
33052 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
33053 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
33054 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
33055 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
33056 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
33057 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
33058 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
33059 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
33060 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
33061 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
33062 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
33063 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
33064 , p_source_31 => g_array_event(l_event_id).array_value_char('source_31')
33065 );
33066 If(l_balance_type_code = 'A') THEN
33067 l_actual_gain_loss_ref := l_gain_or_loss_ref;
33068 END IF;
33069
33070 --
33071
33072 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
33073 -- or secondary ledger that has different currency with primary
33074 -- or alc that is calculated by sla
33075 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
33076 (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'))
33077
33078 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
33079 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
33080 AND (l_actual_flag = 'A')) THEN
33081 XLA_AE_LINES_PKG.CreateGainOrLossLines(
33082 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
33083 ,p_application_id => p_application_id
33084 ,p_amb_context_code => 'DEFAULT'
33085 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
33086 ,p_event_class_code => C_EVENT_CLASS_CODE
33087 ,p_event_type_code => C_EVENT_TYPE_CODE
33088
33089 ,p_gain_ccid => -1
33090 ,p_loss_ccid => -1
33091
33092 ,p_actual_flag => l_actual_flag
33093 ,p_enc_flag => null
33094 ,p_actual_g_l_ref => l_actual_gain_loss_ref
33095 ,p_enc_g_l_ref => null
33096 );
33097 END IF;
33098 END IF;
33099 END IF;
33100
33101 ELSE
33102 --
33103 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
33104 --
33105 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
33106 trace
33107 (p_msg => 'Trancaction revesal option is Y'
33108 ,p_level => C_LEVEL_STATEMENT
33109 ,p_module => l_log_module);
33110 END IF;
33111 END IF;
33112
33113 END LOOP;
33114 l_result := XLA_AE_LINES_PKG.InsertLines ;
33115 end loop;
33116 close line_cur;
33117
33118
33119 --
33120 -- insert headers into xla_ae_headers_gt table
33121 --
33122 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
33123
33124 -- insert into errors table here.
33125
33126 END LOOP;
33127
33128 --
33129 -- 4865292
33130 --
33131 -- Compare g_hdr_extract_count with event count in
33132 -- CreateHeadersAndLines.
33133 --
33134 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
33135
33136 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
33137 trace (p_msg => '# rows extracted from header extract objects '
33138 || ' (running total): '
33139 || g_hdr_extract_count
33140 ,p_level => C_LEVEL_STATEMENT
33141 ,p_module => l_log_module);
33142 END IF;
33143
33144 CLOSE header_cur;
33145 --
33146
33147 --
33148 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33149 trace
33150 (p_msg => 'END of EventType_41'
33151 ,p_level => C_LEVEL_PROCEDURE
33152 ,p_module => l_log_module);
33153 END IF;
33154 --
33155 RETURN l_result;
33156 EXCEPTION
33157 WHEN xla_exceptions_pkg.application_exception THEN
33158
33159 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
33160
33161
33162 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
33163
33164 RAISE;
33165
33166 WHEN NO_DATA_FOUND THEN
33167
33168 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
33169 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
33170
33171 FOR header_record IN header_cur
33172 LOOP
33173 l_array_header_events(header_record.event_id) := header_record.event_id;
33174 END LOOP;
33175
33176 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
33177 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
33178
33179 fnd_file.put_line(fnd_file.LOG, ' ');
33180 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
33181 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
33182 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
33183
33184 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
33185 LOOP
33186 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
33187 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
33188 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
33189 END IF;
33190 END LOOP;
33191
33192 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
33193 fnd_file.put_line(fnd_file.LOG, ' ');
33194
33195
33196 xla_exceptions_pkg.raise_message
33197 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_41');
33198
33199
33200 WHEN OTHERS THEN
33201 xla_exceptions_pkg.raise_message
33202 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_41');
33203 END EventType_41;
33204 --
33205
33206 ---------------------------------------
33207 --
33208 -- PRIVATE PROCEDURE
33209 -- insert_sources_42
33210 --
33211 ----------------------------------------
33212 --
33213 PROCEDURE insert_sources_42(
33214 p_target_ledger_id IN NUMBER
33215 , p_language IN VARCHAR2
33216 , p_sla_ledger_id IN NUMBER
33217 , p_pad_start_date IN DATE
33218 , p_pad_end_date IN DATE
33219 )
33220 IS
33221
33222 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PO_DEL_INV';
33223 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER';
33224 p_apps_owner VARCHAR2(30);
33225 l_log_module VARCHAR2(240);
33226 BEGIN
33227 IF g_log_enabled THEN
33228 l_log_module := C_DEFAULT_MODULE||'.insert_sources_42';
33229 END IF;
33230 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33231
33232 trace
33233 (p_msg => 'BEGIN of insert_sources_42'
33234 ,p_level => C_LEVEL_PROCEDURE
33235 ,p_module => l_log_module);
33236
33237 END IF;
33238
33239 -- select APPS owner
33240 SELECT oracle_username
33241 INTO p_apps_owner
33242 FROM fnd_oracle_userid
33243 WHERE read_only_flag = 'U'
33244 ;
33245
33246 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
33247 trace
33248 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
33249 ' - p_language = '||p_language||
33250 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
33251 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
33252 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
33253 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
33254 ,p_level => C_LEVEL_STATEMENT
33255 ,p_module => l_log_module);
33256 END IF;
33257
33258
33259 --
33260 INSERT INTO xla_diag_sources --hdr1
33261 (
33262 event_id
33263 , ledger_id
33264 , sla_ledger_id
33265 , description_language
33266 , object_name
33267 , object_type_code
33268 , line_number
33269 , source_application_id
33270 , source_type_code
33271 , source_code
33272 , source_value
33273 , source_meaning
33274 , created_by
33275 , creation_date
33276 , last_update_date
33277 , last_updated_by
33278 , last_update_login
33279 , program_update_date
33280 , program_application_id
33281 , program_id
33282 , request_id
33283 )
33284 SELECT
33285 event_id
33286 , p_target_ledger_id
33287 , p_sla_ledger_id
33288 , p_language
33289 , object_name
33290 , object_type_code
33291 , line_number
33292 , source_application_id
33293 , source_type_code
33294 , source_code
33295 , SUBSTR(source_value ,1,1996)
33296 , SUBSTR(source_meaning,1,200)
33297 , xla_environment_pkg.g_Usr_Id
33298 , TRUNC(SYSDATE)
33299 , TRUNC(SYSDATE)
33300 , xla_environment_pkg.g_Usr_Id
33301 , xla_environment_pkg.g_Login_Id
33302 , TRUNC(SYSDATE)
33303 , xla_environment_pkg.g_Prog_Appl_Id
33304 , xla_environment_pkg.g_Prog_Id
33305 , xla_environment_pkg.g_Req_Id
33306 FROM (
33307 SELECT xet.event_id event_id
33308 , 0 line_number
33309 , CASE r
33310 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
33311 WHEN 2 THEN 'CST_XLA_INV_SYSTEM_ITEMS_REF_V'
33312 WHEN 3 THEN 'CST_XLA_INV_REF_V'
33313 WHEN 4 THEN 'CST_XLA_INV_REF_V'
33314 WHEN 5 THEN 'CST_XLA_INV_TXN_TYPES_REF_V'
33315 WHEN 6 THEN 'CST_XLA_INV_HEADERS_V'
33316 WHEN 7 THEN 'PO_HEADERS_REF_V'
33317 WHEN 8 THEN 'CST_XLA_INV_ORG_PARAMS_REF_V'
33318 WHEN 9 THEN 'CST_XLA_INV_REF_V'
33319 WHEN 10 THEN 'CST_XLA_INV_REF_V'
33320 WHEN 11 THEN 'CST_XLA_INV_REF_V'
33321 WHEN 12 THEN 'CST_XLA_INV_REF_V'
33322 WHEN 13 THEN 'CST_XLA_INV_REF_V'
33323 WHEN 14 THEN 'PO_DISTS_REF_V'
33324 WHEN 15 THEN 'CST_XLA_INV_REF_V'
33325 WHEN 16 THEN 'CST_XLA_INV_REF_V'
33326 WHEN 17 THEN 'PSA_CST_XLA_UPG_V'
33327 WHEN 18 THEN 'PO_HEADERS_REF_V'
33328 WHEN 19 THEN 'PO_DISTS_REF_V'
33329 WHEN 20 THEN 'CST_XLA_INV_HEADERS_V'
33330
33331 ELSE null
33332 END object_name
33333 , CASE r
33334 WHEN 1 THEN 'HEADER'
33335 WHEN 2 THEN 'HEADER'
33336 WHEN 3 THEN 'HEADER'
33337 WHEN 4 THEN 'HEADER'
33338 WHEN 5 THEN 'HEADER'
33339 WHEN 6 THEN 'HEADER'
33340 WHEN 7 THEN 'HEADER'
33341 WHEN 8 THEN 'HEADER'
33342 WHEN 9 THEN 'HEADER'
33343 WHEN 10 THEN 'HEADER'
33344 WHEN 11 THEN 'HEADER'
33345 WHEN 12 THEN 'HEADER'
33346 WHEN 13 THEN 'HEADER'
33347 WHEN 14 THEN 'HEADER'
33348 WHEN 15 THEN 'HEADER'
33349 WHEN 16 THEN 'HEADER'
33350 WHEN 17 THEN 'HEADER'
33351 WHEN 18 THEN 'HEADER'
33352 WHEN 19 THEN 'HEADER'
33353 WHEN 20 THEN 'HEADER'
33354
33355 ELSE null
33356 END object_type_code
33357 , CASE r
33358 WHEN 1 THEN '707'
33359 WHEN 2 THEN '707'
33360 WHEN 3 THEN '707'
33361 WHEN 4 THEN '707'
33362 WHEN 5 THEN '707'
33363 WHEN 6 THEN '707'
33364 WHEN 7 THEN '201'
33365 WHEN 8 THEN '707'
33366 WHEN 9 THEN '707'
33367 WHEN 10 THEN '707'
33368 WHEN 11 THEN '707'
33369 WHEN 12 THEN '707'
33370 WHEN 13 THEN '707'
33371 WHEN 14 THEN '201'
33372 WHEN 15 THEN '707'
33373 WHEN 16 THEN '707'
33374 WHEN 17 THEN '707'
33375 WHEN 18 THEN '201'
33376 WHEN 19 THEN '201'
33377 WHEN 20 THEN '707'
33378
33379 ELSE null
33380 END source_application_id
33381 , 'S' source_type_code
33382 , CASE r
33383 WHEN 1 THEN 'TRANSACTION_ID'
33384 WHEN 2 THEN 'ITEM_CONCATENATED_SEGMENTS'
33385 WHEN 3 THEN 'TRANSACTION_QUANTITY'
33386 WHEN 4 THEN 'TRANSACTION_UOM'
33387 WHEN 5 THEN 'INV_TXN_TYPE_DESCRIPTION'
33388 WHEN 6 THEN 'DISTRIBUTION_TYPE'
33389 WHEN 7 THEN 'PURCH_ENCUMBRANCE_FLAG'
33390 WHEN 8 THEN 'ENCUMBRANCE_REVERSAL_FLAG'
33391 WHEN 9 THEN 'APPLIED_TO_APPL_ID'
33392 WHEN 10 THEN 'APPLIED_TO_DIST_LINK_TYPE'
33393 WHEN 11 THEN 'APPLIED_TO_ENTITY_CODE'
33394 WHEN 12 THEN 'TXN_PO_DISTRIBUTION_ID'
33395 WHEN 13 THEN 'APPLIED_TO_PO_DOC_ID'
33396 WHEN 14 THEN 'PO_BUDGET_ACCOUNT'
33397 WHEN 15 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
33398 WHEN 16 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
33399 WHEN 17 THEN 'CST_ENCUM_UPG_OPTION'
33400 WHEN 18 THEN 'PURCH_ENCUMBRANCE_TYPE_ID'
33401 WHEN 19 THEN 'RESERVED_FLAG'
33402 WHEN 20 THEN 'TRANSFER_TO_GL_INDICATOR'
33403
33404 ELSE null
33405 END source_code
33406 , CASE r
33407 WHEN 1 THEN TO_CHAR(h1.TRANSACTION_ID)
33408 WHEN 2 THEN TO_CHAR(h5.ITEM_CONCATENATED_SEGMENTS)
33409 WHEN 3 THEN TO_CHAR(h4.TRANSACTION_QUANTITY)
33410 WHEN 4 THEN TO_CHAR(h4.TRANSACTION_UOM)
33411 WHEN 5 THEN TO_CHAR(h6.INV_TXN_TYPE_DESCRIPTION)
33412 WHEN 6 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
33413 WHEN 7 THEN TO_CHAR(h8.PURCH_ENCUMBRANCE_FLAG)
33414 WHEN 8 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_FLAG)
33415 WHEN 9 THEN TO_CHAR(h4.APPLIED_TO_APPL_ID)
33416 WHEN 10 THEN TO_CHAR(h4.APPLIED_TO_DIST_LINK_TYPE)
33417 WHEN 11 THEN TO_CHAR(h4.APPLIED_TO_ENTITY_CODE)
33418 WHEN 12 THEN TO_CHAR(h4.TXN_PO_DISTRIBUTION_ID)
33419 WHEN 13 THEN TO_CHAR(h4.APPLIED_TO_PO_DOC_ID)
33420 WHEN 14 THEN TO_CHAR(h7.PO_BUDGET_ACCOUNT)
33421 WHEN 15 THEN TO_CHAR(h4.ENCUM_REVERSAL_AMOUNT_ENTERED)
33422 WHEN 16 THEN TO_CHAR(h4.ENCUMBRANCE_REVERSAL_AMOUNT)
33423 WHEN 17 THEN TO_CHAR(h9.CST_ENCUM_UPG_OPTION)
33424 WHEN 18 THEN TO_CHAR(h8.PURCH_ENCUMBRANCE_TYPE_ID)
33425 WHEN 19 THEN TO_CHAR(h7.RESERVED_FLAG)
33426 WHEN 20 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
33427
33428 ELSE null
33429 END source_value
33430 , CASE r
33431 WHEN 6 THEN fvl9.meaning
33432 WHEN 20 THEN fvl42.meaning
33433
33434 ELSE null
33435 END source_meaning
33436 FROM xla_events_gt xet
33437 , CST_XLA_INV_HEADERS_V h1
33438 , CST_XLA_INV_ORG_PARAMS_REF_V h3
33439 , CST_XLA_INV_REF_V h4
33440 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
33441 , CST_XLA_INV_TXN_TYPES_REF_V h6
33442 , PO_DISTS_REF_V h7
33443 , PO_HEADERS_REF_V h8
33444 , PSA_CST_XLA_UPG_V h9
33445 , fnd_lookup_values fvl9
33446 , fnd_lookup_values fvl42
33447 ,(select rownum r from all_objects where rownum <= 20 and owner = p_apps_owner)
33448 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
33449 AND xet.event_type_code = C_EVENT_TYPE_CODE
33450 AND h1.event_id = xet.event_id
33451 AND h3.inv_organization_id (+) = h1.organization_id AND h4.ref_transaction_id = h1.transaction_id AND h5.inventory_item_id (+) = h1.inventory_item_id and h5.organization_id (+) = h1.organization_id AND h6.inv_transaction_type_id = h1.transaction_type_id AND h4.txn_po_header_id = h7.po_header_id (+) and h4.txn_po_distribution_id = h7.po_distribution_id (+) AND h4.txn_po_header_id = h8.po_header_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) =
33452 'CST_DISTRIBUTION_TYPE'
33453 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
33454 AND fvl9.view_application_id(+) = 700
33455 AND fvl9.language(+) = USERENV('LANG')
33456 AND fvl42.lookup_type(+) = 'YES_NO'
33457 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
33458 AND fvl42.view_application_id(+) = 0
33459 AND fvl42.language(+) = USERENV('LANG')
33460
33461 )
33462 ;
33463 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
33464
33465 trace
33466 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
33467 ,p_level => C_LEVEL_STATEMENT
33468 ,p_module => l_log_module);
33469
33470 END IF;
33471 --
33472
33473
33474
33475 --
33476 INSERT INTO xla_diag_sources --line1
33477 (
33478 event_id
33479 , ledger_id
33480 , sla_ledger_id
33481 , description_language
33482 , object_name
33483 , object_type_code
33484 , line_number
33485 , source_application_id
33486 , source_type_code
33487 , source_code
33488 , source_value
33489 , source_meaning
33490 , created_by
33491 , creation_date
33492 , last_update_date
33493 , last_updated_by
33494 , last_update_login
33495 , program_update_date
33496 , program_application_id
33497 , program_id
33498 , request_id
33499 )
33500 SELECT event_id
33501 , p_target_ledger_id
33502 , p_sla_ledger_id
33503 , p_language
33504 , object_name
33505 , object_type_code
33506 , line_number
33507 , source_application_id
33508 , source_type_code
33509 , source_code
33510 , SUBSTR(source_value,1,1996)
33511 , SUBSTR(source_meaning,1,200)
33512 , xla_environment_pkg.g_Usr_Id
33513 , TRUNC(SYSDATE)
33514 , TRUNC(SYSDATE)
33515 , xla_environment_pkg.g_Usr_Id
33516 , xla_environment_pkg.g_Login_Id
33517 , TRUNC(SYSDATE)
33518 , xla_environment_pkg.g_Prog_Appl_Id
33519 , xla_environment_pkg.g_Prog_Id
33520 , xla_environment_pkg.g_Req_Id
33521 FROM (
33522 SELECT xet.event_id event_id
33523 , l2.line_number line_number
33524 , CASE r
33525 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
33526 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
33527 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
33528
33529 ELSE null
33530 END object_name
33531 , CASE r
33532 WHEN 1 THEN 'LINE'
33533 WHEN 2 THEN 'LINE'
33534 WHEN 3 THEN 'LINE'
33535
33536 ELSE null
33537 END object_type_code
33538 , CASE r
33539 WHEN 1 THEN '707'
33540 WHEN 2 THEN '707'
33541 WHEN 3 THEN '707'
33542
33543 ELSE null
33544 END source_application_id
33545 , 'S' source_type_code
33546 , CASE r
33547 WHEN 1 THEN 'ACCOUNTING_LINE_TYPE_CODE'
33548 WHEN 2 THEN 'DISTRIBUTION_IDENTIFIER'
33549 WHEN 3 THEN 'CURRENCY_CODE'
33550
33551 ELSE null
33552 END source_code
33553 , CASE r
33554 WHEN 1 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
33555 WHEN 2 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
33556 WHEN 3 THEN TO_CHAR(l2.CURRENCY_CODE)
33557
33558 ELSE null
33559 END source_value
33560 , null source_meaning
33561 FROM xla_events_gt xet
33562 , CST_XLA_INV_LINES_V l2
33563 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
33564 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
33565 AND xet.event_type_code = C_EVENT_TYPE_CODE
33566 AND l2.event_id = xet.event_id
33567
33568 )
33569 ;
33570 --
33571 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
33572
33573 trace
33574 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
33575 ,p_level => C_LEVEL_STATEMENT
33576 ,p_module => l_log_module);
33577
33578 END IF;
33579
33580
33581 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33582 trace
33583 (p_msg => 'END of insert_sources_42'
33584 ,p_level => C_LEVEL_PROCEDURE
33585 ,p_module => l_log_module);
33586 END IF;
33587 EXCEPTION
33588 WHEN xla_exceptions_pkg.application_exception THEN
33589 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
33590 trace
33591 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
33592 ,p_level => C_LEVEL_EXCEPTION
33593 ,p_module => l_log_module);
33594 END IF;
33595 RAISE;
33596 WHEN OTHERS THEN
33597 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
33598 trace
33599 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
33600 ,p_level => C_LEVEL_EXCEPTION
33601 ,p_module => l_log_module);
33602 END IF;
33603 xla_exceptions_pkg.raise_message
33604 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_42');
33605 END insert_sources_42;
33606 --
33607
33608 ---------------------------------------
33609 --
33610 -- PRIVATE FUNCTION
33611 -- EventType_42
33612 --
33613 ----------------------------------------
33614 --
33615 FUNCTION EventType_42
33616 (p_application_id IN NUMBER
33617 ,p_base_ledger_id IN NUMBER
33618 ,p_target_ledger_id IN NUMBER
33619 ,p_language IN VARCHAR2
33620 ,p_currency_code IN VARCHAR2
33621 ,p_sla_ledger_id IN NUMBER
33622 ,p_pad_start_date IN DATE
33623 ,p_pad_end_date IN DATE
33624 ,p_primary_ledger_id IN NUMBER)
33625 RETURN BOOLEAN IS
33626 --
33627 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PO_DEL_INV';
33628 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER';
33629
33630 l_calculate_acctd_flag VARCHAR2(1) :='N';
33631 l_calculate_g_l_flag VARCHAR2(1) :='N';
33632 --
33633 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
33634 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
33635 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
33636 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
33637 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
33638 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
33639 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
33640 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
33641 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
33642 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
33643 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
33644 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
33645 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
33646 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
33647 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
33648 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
33649 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
33650 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
33651 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
33652 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
33653 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
33654 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
33655 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
33656 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
33657 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
33658 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
33659
33660 l_event_id NUMBER;
33661 l_previous_event_id NUMBER;
33662 l_first_event_id NUMBER;
33663 l_last_event_id NUMBER;
33664
33665 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
33666 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33667 --
33668 --
33669 l_result BOOLEAN := TRUE;
33670 l_rows NUMBER := 1000;
33671 l_event_type_name VARCHAR2(80) := 'PO Delivery into Inventory';
33672 l_event_class_name VARCHAR2(80) := 'PO Delivery into Inventory';
33673 l_description VARCHAR2(4000);
33674 l_transaction_reversal NUMBER;
33675 l_ae_header_id NUMBER;
33676 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
33677 l_log_module VARCHAR2(240);
33678 --
33679 l_acct_reversal_source VARCHAR2(30);
33680 l_trx_reversal_source VARCHAR2(30);
33681
33682 l_continue_with_lines BOOLEAN := TRUE;
33683 --
33684 l_acc_rev_gl_date_source DATE; -- 4262811
33685 --
33686 type t_array_event_id is table of number index by binary_integer;
33687
33688 l_rec_array_event t_rec_array_event;
33689 l_null_rec_array_event t_rec_array_event;
33690 l_array_ae_header_id xla_number_array_type;
33691 l_actual_flag VARCHAR2(1) := NULL;
33692 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
33693 l_balance_type_code VARCHAR2(1) :=NULL;
33694 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
33695
33696 --
33697 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
33698 --
33699
33700 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSACTION_ID%TYPE INDEX BY BINARY_INTEGER;
33701 TYPE t_array_source_2 IS TABLE OF CST_XLA_INV_SYSTEM_ITEMS_REF_V.ITEM_CONCATENATED_SEGMENTS%TYPE INDEX BY BINARY_INTEGER;
33702 TYPE t_array_source_3 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_QUANTITY%TYPE INDEX BY BINARY_INTEGER;
33703 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_UOM%TYPE INDEX BY BINARY_INTEGER;
33704 TYPE t_array_source_5 IS TABLE OF CST_XLA_INV_TXN_TYPES_REF_V.INV_TXN_TYPE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
33705 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
33706 TYPE t_array_source_16 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
33707 TYPE t_array_source_17 IS TABLE OF CST_XLA_INV_ORG_PARAMS_REF_V.ENCUMBRANCE_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
33708 TYPE t_array_source_19 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
33709 TYPE t_array_source_20 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
33710 TYPE t_array_source_21 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
33711 TYPE t_array_source_22 IS TABLE OF CST_XLA_INV_REF_V.TXN_PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
33712 TYPE t_array_source_23 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
33713 TYPE t_array_source_24 IS TABLE OF PO_DISTS_REF_V.PO_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
33714 TYPE t_array_source_25 IS TABLE OF CST_XLA_INV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
33715 TYPE t_array_source_26 IS TABLE OF CST_XLA_INV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
33716 TYPE t_array_source_27 IS TABLE OF PSA_CST_XLA_UPG_V.CST_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
33717 TYPE t_array_source_28 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
33718 TYPE t_array_source_31 IS TABLE OF PO_DISTS_REF_V.RESERVED_FLAG%TYPE INDEX BY BINARY_INTEGER;
33719 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
33720
33721 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
33722 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
33723 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
33724
33725 l_array_source_1 t_array_source_1;
33726 l_array_source_2 t_array_source_2;
33727 l_array_source_3 t_array_source_3;
33728 l_array_source_4 t_array_source_4;
33729 l_array_source_5 t_array_source_5;
33730 l_array_source_9 t_array_source_9;
33731 l_array_source_9_meaning t_array_lookup_meaning;
33732 l_array_source_16 t_array_source_16;
33733 l_array_source_17 t_array_source_17;
33734 l_array_source_19 t_array_source_19;
33735 l_array_source_20 t_array_source_20;
33736 l_array_source_21 t_array_source_21;
33737 l_array_source_22 t_array_source_22;
33738 l_array_source_23 t_array_source_23;
33739 l_array_source_24 t_array_source_24;
33740 l_array_source_25 t_array_source_25;
33741 l_array_source_26 t_array_source_26;
33742 l_array_source_27 t_array_source_27;
33743 l_array_source_28 t_array_source_28;
33744 l_array_source_31 t_array_source_31;
33745 l_array_source_42 t_array_source_42;
33746 l_array_source_42_meaning t_array_lookup_meaning;
33747
33748 l_array_source_7 t_array_source_7;
33749 l_array_source_8 t_array_source_8;
33750 l_array_source_11 t_array_source_11;
33751
33752 --
33753 CURSOR header_cur
33754 IS
33755 SELECT /*+ leading(xet) cardinality(xet,1) */
33756 -- Event Type Code: PO_DEL_INV
33757 -- Event Class Code: PURCHASE_ORDER
33758 xet.entity_id
33759 , xet.legal_entity_id
33760 , xet.entity_code
33761 , xet.transaction_number
33762 , xet.event_id
33763 , xet.event_class_code
33764 , xet.event_type_code
33765 , xet.event_number
33766 , xet.event_date
33767 , xet.transaction_date
33768 , xet.reference_num_1
33769 , xet.reference_num_2
33770 , xet.reference_num_3
33771 , xet.reference_num_4
33772 , xet.reference_char_1
33773 , xet.reference_char_2
33774 , xet.reference_char_3
33775 , xet.reference_char_4
33776 , xet.reference_date_1
33777 , xet.reference_date_2
33778 , xet.reference_date_3
33779 , xet.reference_date_4
33780 , xet.event_created_by
33781 , xet.budgetary_control_flag
33782 , h1.TRANSACTION_ID source_1
33783 , h5.ITEM_CONCATENATED_SEGMENTS source_2
33784 , h4.TRANSACTION_QUANTITY source_3
33785 , h4.TRANSACTION_UOM source_4
33786 , h6.INV_TXN_TYPE_DESCRIPTION source_5
33787 , h1.DISTRIBUTION_TYPE source_9
33788 , fvl9.meaning source_9_meaning
33789 , h8.PURCH_ENCUMBRANCE_FLAG source_16
33790 , h3.ENCUMBRANCE_REVERSAL_FLAG source_17
33791 , h4.APPLIED_TO_APPL_ID source_19
33792 , h4.APPLIED_TO_DIST_LINK_TYPE source_20
33793 , h4.APPLIED_TO_ENTITY_CODE source_21
33794 , h4.TXN_PO_DISTRIBUTION_ID source_22
33795 , h4.APPLIED_TO_PO_DOC_ID source_23
33796 , h7.PO_BUDGET_ACCOUNT source_24
33797 , h4.ENCUM_REVERSAL_AMOUNT_ENTERED source_25
33798 , h4.ENCUMBRANCE_REVERSAL_AMOUNT source_26
33799 , h9.CST_ENCUM_UPG_OPTION source_27
33800 , h8.PURCH_ENCUMBRANCE_TYPE_ID source_28
33801 , h7.RESERVED_FLAG source_31
33802 , h1.TRANSFER_TO_GL_INDICATOR source_42
33803 , fvl42.meaning source_42_meaning
33804 FROM xla_events_gt xet
33805 , CST_XLA_INV_HEADERS_V h1
33806 , CST_XLA_INV_ORG_PARAMS_REF_V h3
33807 , CST_XLA_INV_REF_V h4
33808 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
33809 , CST_XLA_INV_TXN_TYPES_REF_V h6
33810 , PO_DISTS_REF_V h7
33811 , PO_HEADERS_REF_V h8
33812 , PSA_CST_XLA_UPG_V h9
33813 , fnd_lookup_values fvl9
33814 , fnd_lookup_values fvl42
33815 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
33816 and xet.event_type_code = C_EVENT_TYPE_CODE
33817 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
33818 AND h3.INV_ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h4.ref_transaction_id = h1.transaction_id AND h5.INVENTORY_ITEM_ID (+) = h1.INVENTORY_ITEM_ID AND h5.ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h6.INV_TRANSACTION_TYPE_ID = h1.TRANSACTION_TYPE_ID AND h4.txn_po_header_id = h7.po_header_id (+) AND h4.txn_po_distribution_id = h7.po_distribution_id (+) AND h4.txn_po_header_id = h8.po_header_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) =
33819 'CST_DISTRIBUTION_TYPE'
33820 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
33821 AND fvl9.view_application_id(+) = 700
33822 AND fvl9.language(+) = USERENV('LANG')
33823 AND fvl42.lookup_type(+) = 'YES_NO'
33824 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
33825 AND fvl42.view_application_id(+) = 0
33826 AND fvl42.language(+) = USERENV('LANG')
33827
33828 ORDER BY event_id
33829 ;
33830
33831
33832 --
33833 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
33834 IS
33835 SELECT /*+ leading(xet) cardinality(xet,1) */
33836 -- Event Type Code: PO_DEL_INV
33837 -- Event Class Code: PURCHASE_ORDER
33838 xet.entity_id
33839 ,xet.legal_entity_id
33840 ,xet.entity_code
33841 ,xet.transaction_number
33842 ,xet.event_id
33843 ,xet.event_class_code
33844 ,xet.event_type_code
33845 ,xet.event_number
33846 ,xet.event_date
33847 ,xet.transaction_date
33848 ,xet.reference_num_1
33849 ,xet.reference_num_2
33850 ,xet.reference_num_3
33851 ,xet.reference_num_4
33852 ,xet.reference_char_1
33853 ,xet.reference_char_2
33854 ,xet.reference_char_3
33855 ,xet.reference_char_4
33856 ,xet.reference_date_1
33857 ,xet.reference_date_2
33858 ,xet.reference_date_3
33859 ,xet.reference_date_4
33860 ,xet.event_created_by
33861 ,xet.budgetary_control_flag , l2.LINE_NUMBER
33862 , l2.ACCOUNTING_LINE_TYPE_CODE source_7
33863 , l2.DISTRIBUTION_IDENTIFIER source_8
33864 , l2.CURRENCY_CODE source_11
33865 FROM xla_events_gt xet
33866 , CST_XLA_INV_LINES_V l2
33867 WHERE xet.event_id between x_first_event_id and x_last_event_id
33868 and xet.event_date between p_pad_start_date and p_pad_end_date
33869 and xet.event_type_code = C_EVENT_TYPE_CODE
33870 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
33871 ;
33872
33873 --
33874 BEGIN
33875 IF g_log_enabled THEN
33876 l_log_module := C_DEFAULT_MODULE||'.EventType_42';
33877 END IF;
33878 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33879 trace
33880 (p_msg => 'BEGIN of EventType_42'
33881 ,p_level => C_LEVEL_PROCEDURE
33882 ,p_module => l_log_module);
33883 END IF;
33884
33885 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
33886 trace
33887 (p_msg => 'p_application_id = '||p_application_id||
33888 ' - p_base_ledger_id = '||p_base_ledger_id||
33889 ' - p_target_ledger_id = '||p_target_ledger_id||
33890 ' - p_language = '||p_language||
33891 ' - p_currency_code = '||p_currency_code||
33892 ' - p_sla_ledger_id = '||p_sla_ledger_id
33893 ,p_level => C_LEVEL_STATEMENT
33894 ,p_module => l_log_module);
33895 END IF;
33896 --
33897 -- initialze arrays
33898 --
33899 g_array_event.DELETE;
33900 l_rec_array_event := l_null_rec_array_event;
33901 --
33902 --------------------------------------
33903 -- 4262811 Initialze MPA Line Number
33904 --------------------------------------
33905 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
33906
33907 --
33908
33909 --
33910 OPEN header_cur;
33911 --
33912 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
33913 trace
33914 (p_msg => 'SQL - FETCH header_cur'
33915 ,p_level => C_LEVEL_STATEMENT
33916 ,p_module => l_log_module);
33917 END IF;
33918 --
33919 LOOP
33920 FETCH header_cur BULK COLLECT INTO
33921 l_array_entity_id
33922 , l_array_legal_entity_id
33923 , l_array_entity_code
33924 , l_array_transaction_num
33925 , l_array_event_id
33926 , l_array_class_code
33927 , l_array_event_type
33928 , l_array_event_number
33929 , l_array_event_date
33930 , l_array_transaction_date
33931 , l_array_reference_num_1
33932 , l_array_reference_num_2
33933 , l_array_reference_num_3
33934 , l_array_reference_num_4
33935 , l_array_reference_char_1
33936 , l_array_reference_char_2
33937 , l_array_reference_char_3
33938 , l_array_reference_char_4
33939 , l_array_reference_date_1
33940 , l_array_reference_date_2
33941 , l_array_reference_date_3
33942 , l_array_reference_date_4
33943 , l_array_event_created_by
33944 , l_array_budgetary_control_flag
33945 , l_array_source_1
33946 , l_array_source_2
33947 , l_array_source_3
33948 , l_array_source_4
33949 , l_array_source_5
33950 , l_array_source_9
33951 , l_array_source_9_meaning
33952 , l_array_source_16
33953 , l_array_source_17
33954 , l_array_source_19
33955 , l_array_source_20
33956 , l_array_source_21
33957 , l_array_source_22
33958 , l_array_source_23
33959 , l_array_source_24
33960 , l_array_source_25
33961 , l_array_source_26
33962 , l_array_source_27
33963 , l_array_source_28
33964 , l_array_source_31
33965 , l_array_source_42
33966 , l_array_source_42_meaning
33967 LIMIT l_rows;
33968 --
33969 IF (C_LEVEL_EVENT >= g_log_level) THEN
33970 trace
33971 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
33972 ,p_level => C_LEVEL_EVENT
33973 ,p_module => l_log_module);
33974 END IF;
33975 --
33976 EXIT WHEN l_array_entity_id.COUNT = 0;
33977
33978 -- initialize arrays
33979 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
33980 XLA_AE_LINES_PKG.g_rec_lines := NULL;
33981
33982 --
33983 -- Bug 4458708
33984 --
33985 XLA_AE_LINES_PKG.g_LineNumber := 0;
33986
33987
33988 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
33989 g_last_hdr_idx := l_array_event_id.LAST;
33990 --
33991 -- loop for the headers. Each iteration is for each header extract row
33992 -- fetched in header cursor
33993 --
33994 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
33995
33996 --
33997 -- set event info as cache for other routines to refer event attributes
33998 --
33999 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
34000 (p_application_id => p_application_id
34001 ,p_primary_ledger_id => p_primary_ledger_id
34002 ,p_base_ledger_id => p_base_ledger_id
34003 ,p_target_ledger_id => p_target_ledger_id
34004 ,p_entity_id => l_array_entity_id(hdr_idx)
34005 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
34006 ,p_entity_code => l_array_entity_code(hdr_idx)
34007 ,p_transaction_num => l_array_transaction_num(hdr_idx)
34008 ,p_event_id => l_array_event_id(hdr_idx)
34009 ,p_event_class_code => l_array_class_code(hdr_idx)
34010 ,p_event_type_code => l_array_event_type(hdr_idx)
34011 ,p_event_number => l_array_event_number(hdr_idx)
34012 ,p_event_date => l_array_event_date(hdr_idx)
34013 ,p_transaction_date => l_array_transaction_date(hdr_idx)
34014 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
34015 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
34016 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
34017 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
34018 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
34019 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
34020 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
34021 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
34022 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
34023 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
34024 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
34025 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
34026 ,p_event_created_by => l_array_event_created_by(hdr_idx)
34027 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
34028
34029 --
34030 -- set the status of entry to C_VALID (0)
34031 --
34032 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
34033
34034 --
34035 -- initialize a row for ae header
34036 --
34037 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
34038
34039 l_event_id := l_array_event_id(hdr_idx);
34040
34041 --
34042 -- storing the hdr_idx for event. May be used by line cursor.
34043 --
34044 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
34045
34046 --
34047 -- store sources from header extract. This can be improved to
34048 -- store only those sources from header extract that may be used in lines
34049 --
34050
34051 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
34052 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
34053 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
34054 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
34055 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
34056 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
34057 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
34058 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
34059 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
34060 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
34061 g_array_event(l_event_id).array_value_char('source_20') := l_array_source_20(hdr_idx);
34062 g_array_event(l_event_id).array_value_char('source_21') := l_array_source_21(hdr_idx);
34063 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
34064 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
34065 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
34066 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
34067 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
34068 g_array_event(l_event_id).array_value_char('source_27') := l_array_source_27(hdr_idx);
34069 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
34070 g_array_event(l_event_id).array_value_char('source_31') := l_array_source_31(hdr_idx);
34071 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
34072 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
34073
34074 --
34075 -- initilaize the status of ae headers for diffrent balance types
34076 -- the status is initialised to C_NOT_CREATED (2)
34077 --
34078 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
34079 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
34080 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
34081
34082 --
34083 -- call api to validate and store accounting attributes for header
34084 --
34085
34086 ------------------------------------------------------------
34087 -- Accrual Reversal : to get date for Standard Source (NONE)
34088 ------------------------------------------------------------
34089 l_acc_rev_gl_date_source := NULL;
34090
34091 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
34092 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_28');
34093 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
34094 l_rec_acct_attrs.array_date_value(2) :=
34095 xla_ae_sources_pkg.GetSystemSourceDate(
34096 p_source_code => 'XLA_REFERENCE_DATE_1'
34097 , p_source_type_code => 'Y'
34098 , p_source_application_id => 602
34099 );
34100 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
34101 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_42');
34102
34103
34104 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
34105
34106 XLA_AE_HEADER_PKG.SetJeCategoryName;
34107
34108 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
34109 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
34110 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
34111 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
34112 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
34113
34114
34115 --
34116 xla_ae_header_pkg.SetHdrDescription(
34117 p_description => Description_1 (
34118 p_application_id => p_application_id
34119 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
34120 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
34121 , p_source_3 => g_array_event(l_event_id).array_value_num('source_3')
34122 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
34123 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
34124 )
34125 );
34126 --
34127
34128 -- No header level analytical criteria
34129
34130 --
34131 --accounting attribute enhancement, bug 3612931
34132 --
34133 l_trx_reversal_source := SUBSTR(NULL, 1,30);
34134
34135 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
34136 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
34137
34138 xla_accounting_err_pkg.build_message
34139 (p_appli_s_name => 'XLA'
34140 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
34141 ,p_token_1 => 'ACCT_ATTR_NAME'
34142 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
34143 ,p_token_2 => 'PRODUCT_NAME'
34144 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
34145 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
34146 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
34147 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
34148
34149 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
34150 --
34151 -- following sets the accounting attributes needed to reverse
34152 -- accounting for a distributeion
34153 --
34154 xla_ae_lines_pkg.SetTrxReversalAttrs
34155 (p_event_id => l_event_id
34156 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
34157 ,p_trx_reversal_source => l_trx_reversal_source);
34158
34159 END IF;
34160
34161
34162 ----------------------------------------------------------------
34163 -- 4262811 - update the header statuses to invalid in need be
34164 ----------------------------------------------------------------
34165 --
34166 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
34167
34168
34169 -----------------------------------------------
34170 -- No accrual reversal for the event class/type
34171 -----------------------------------------------
34172 ----------------------------------------------------------------
34173
34174 --
34175 -- this ends the header loop iteration for one bulk fetch
34176 --
34177 END LOOP;
34178
34179 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
34180 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
34181
34182 --
34183 -- insert dummy rows into lines gt table that were created due to
34184 -- transaction reversals
34185 --
34186 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
34187 l_result := XLA_AE_LINES_PKG.InsertLines;
34188 END IF;
34189
34190 --
34191 -- reset the temp_line_num for each set of events fetched from header
34192 -- cursor rather than doing it for each new event in line cursor
34193 -- Bug 3939231
34194 --
34195 xla_ae_lines_pkg.g_temp_line_num := 0;
34196
34197
34198
34199 --
34200 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
34201 --
34202 --
34203 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
34204
34205 trace
34206 (p_msg => 'SQL - FETCH line_cur'
34207 ,p_level => C_LEVEL_STATEMENT
34208 ,p_module => l_log_module);
34209
34210 END IF;
34211 --
34212 --
34213 LOOP
34214 --
34215 FETCH line_cur BULK COLLECT INTO
34216 l_array_entity_id
34217 , l_array_legal_entity_id
34218 , l_array_entity_code
34219 , l_array_transaction_num
34220 , l_array_event_id
34221 , l_array_class_code
34222 , l_array_event_type
34223 , l_array_event_number
34224 , l_array_event_date
34225 , l_array_transaction_date
34226 , l_array_reference_num_1
34227 , l_array_reference_num_2
34228 , l_array_reference_num_3
34229 , l_array_reference_num_4
34230 , l_array_reference_char_1
34231 , l_array_reference_char_2
34232 , l_array_reference_char_3
34233 , l_array_reference_char_4
34234 , l_array_reference_date_1
34235 , l_array_reference_date_2
34236 , l_array_reference_date_3
34237 , l_array_reference_date_4
34238 , l_array_event_created_by
34239 , l_array_budgetary_control_flag
34240 , l_array_extract_line_num
34241 , l_array_source_7
34242 , l_array_source_8
34243 , l_array_source_11
34244 LIMIT l_rows;
34245
34246 --
34247 IF (C_LEVEL_EVENT >= g_log_level) THEN
34248 trace
34249 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
34250 ,p_level => C_LEVEL_EVENT
34251 ,p_module => l_log_module);
34252 END IF;
34253 --
34254 EXIT WHEN l_array_entity_id.count = 0;
34255
34256 XLA_AE_LINES_PKG.g_rec_lines := null;
34257
34258 --
34259 -- Bug 4458708
34260 --
34261 XLA_AE_LINES_PKG.g_LineNumber := 0;
34262 --
34263 --
34264
34265 FOR Idx IN 1..l_array_event_id.count LOOP
34266 --
34267 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
34268 --
34269 l_event_id := l_array_event_id(idx); -- 5648433
34270
34271 --
34272 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
34273 --
34274
34275 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
34276 (g_array_event(l_event_id).array_value_num('header_index'))
34277 ,'N'
34278 ) <> 'Y'
34279 THEN
34280 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
34281 trace
34282 (p_msg => 'Trancaction revesal option is not Y '
34283 ,p_level => C_LEVEL_STATEMENT
34284 ,p_module => l_log_module);
34285 END IF;
34286
34287 --
34288 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
34289 --
34290 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
34291 --
34292 -- set event info as cache for other routines to refer event attributes
34293 --
34294
34295 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
34296 l_previous_event_id := l_event_id;
34297
34298 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
34299 (p_application_id => p_application_id
34300 ,p_primary_ledger_id => p_primary_ledger_id
34301 ,p_base_ledger_id => p_base_ledger_id
34302 ,p_target_ledger_id => p_target_ledger_id
34303 ,p_entity_id => l_array_entity_id(Idx)
34304 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
34305 ,p_entity_code => l_array_entity_code(Idx)
34306 ,p_transaction_num => l_array_transaction_num(Idx)
34307 ,p_event_id => l_array_event_id(Idx)
34308 ,p_event_class_code => l_array_class_code(Idx)
34309 ,p_event_type_code => l_array_event_type(Idx)
34310 ,p_event_number => l_array_event_number(Idx)
34311 ,p_event_date => l_array_event_date(Idx)
34312 ,p_transaction_date => l_array_transaction_date(Idx)
34313 ,p_reference_num_1 => l_array_reference_num_1(Idx)
34314 ,p_reference_num_2 => l_array_reference_num_2(Idx)
34315 ,p_reference_num_3 => l_array_reference_num_3(Idx)
34316 ,p_reference_num_4 => l_array_reference_num_4(Idx)
34317 ,p_reference_char_1 => l_array_reference_char_1(Idx)
34318 ,p_reference_char_2 => l_array_reference_char_2(Idx)
34319 ,p_reference_char_3 => l_array_reference_char_3(Idx)
34320 ,p_reference_char_4 => l_array_reference_char_4(Idx)
34321 ,p_reference_date_1 => l_array_reference_date_1(Idx)
34322 ,p_reference_date_2 => l_array_reference_date_2(Idx)
34323 ,p_reference_date_3 => l_array_reference_date_3(Idx)
34324 ,p_reference_date_4 => l_array_reference_date_4(Idx)
34325 ,p_event_created_by => l_array_event_created_by(Idx)
34326 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
34327 --
34328 END IF;
34329
34330
34331
34332 --
34333 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
34334
34335 l_acct_reversal_source := SUBSTR(NULL, 1,30);
34336
34337 IF l_continue_with_lines THEN
34338 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
34339 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
34340
34341 xla_accounting_err_pkg.build_message
34342 (p_appli_s_name => 'XLA'
34343 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
34344 ,p_token_1 => 'LINE_NUMBER'
34345 ,p_value_1 => l_array_extract_line_num(Idx)
34346 ,p_token_2 => 'PRODUCT_NAME'
34347 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
34348 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
34349 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
34350 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
34351
34352 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
34353 --
34354 -- following sets the accounting attributes needed to reverse
34355 -- accounting for a distributeion
34356 --
34357
34358 --
34359 -- 5217187
34360 --
34361 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
34362 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
34363 g_array_event(l_event_id).array_value_num('header_index'));
34364 --
34365 --
34366
34367 -- No reversal code generated
34368
34369 xla_ae_lines_pkg.SetAcctReversalAttrs
34370 (p_event_id => l_event_id
34371 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
34372 ,p_calculate_acctd_flag => l_calculate_acctd_flag
34373 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
34374 END IF;
34375
34376 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
34377 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
34378
34379 --
34380 AcctLineType_12 (
34381 p_application_id => p_application_id
34382 ,p_event_id => l_event_id
34383 ,p_calculate_acctd_flag => l_calculate_acctd_flag
34384 ,p_calculate_g_l_flag => l_calculate_g_l_flag
34385 ,p_actual_flag => l_actual_flag
34386 ,p_balance_type_code => l_balance_type_code
34387 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
34388
34389 , p_source_8 => l_array_source_8(Idx)
34390 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
34391 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
34392 , p_source_11 => l_array_source_11(Idx)
34393 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
34394 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
34395 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
34396 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
34397 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
34398 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
34399 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
34400 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
34401 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
34402 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
34403 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
34404 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
34405 );
34406 If(l_balance_type_code = 'A') THEN
34407 l_actual_gain_loss_ref := l_gain_or_loss_ref;
34408 END IF;
34409
34410 --
34411
34412
34413 --
34414 AcctLineType_19 (
34415 p_application_id => p_application_id
34416 ,p_event_id => l_event_id
34417 ,p_calculate_acctd_flag => l_calculate_acctd_flag
34418 ,p_calculate_g_l_flag => l_calculate_g_l_flag
34419 ,p_actual_flag => l_actual_flag
34420 ,p_balance_type_code => l_balance_type_code
34421 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
34422
34423 , p_source_7 => l_array_source_7(Idx)
34424 , p_source_8 => l_array_source_8(Idx)
34425 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
34426 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
34427 , p_source_11 => l_array_source_11(Idx)
34428 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
34429 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
34430 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
34431 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
34432 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
34433 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
34434 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
34435 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
34436 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
34437 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
34438 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
34439 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
34440 , p_source_31 => g_array_event(l_event_id).array_value_char('source_31')
34441 );
34442 If(l_balance_type_code = 'A') THEN
34443 l_actual_gain_loss_ref := l_gain_or_loss_ref;
34444 END IF;
34445
34446 --
34447
34448 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
34449 -- or secondary ledger that has different currency with primary
34450 -- or alc that is calculated by sla
34451 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
34452 (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'))
34453
34454 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
34455 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
34456 AND (l_actual_flag = 'A')) THEN
34457 XLA_AE_LINES_PKG.CreateGainOrLossLines(
34458 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
34459 ,p_application_id => p_application_id
34460 ,p_amb_context_code => 'DEFAULT'
34461 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
34462 ,p_event_class_code => C_EVENT_CLASS_CODE
34463 ,p_event_type_code => C_EVENT_TYPE_CODE
34464
34465 ,p_gain_ccid => -1
34466 ,p_loss_ccid => -1
34467
34468 ,p_actual_flag => l_actual_flag
34469 ,p_enc_flag => null
34470 ,p_actual_g_l_ref => l_actual_gain_loss_ref
34471 ,p_enc_g_l_ref => null
34472 );
34473 END IF;
34474 END IF;
34475 END IF;
34476
34477 ELSE
34478 --
34479 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
34480 --
34481 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
34482 trace
34483 (p_msg => 'Trancaction revesal option is Y'
34484 ,p_level => C_LEVEL_STATEMENT
34485 ,p_module => l_log_module);
34486 END IF;
34487 END IF;
34488
34489 END LOOP;
34490 l_result := XLA_AE_LINES_PKG.InsertLines ;
34491 end loop;
34492 close line_cur;
34493
34494
34495 --
34496 -- insert headers into xla_ae_headers_gt table
34497 --
34498 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
34499
34500 -- insert into errors table here.
34501
34502 END LOOP;
34503
34504 --
34505 -- 4865292
34506 --
34507 -- Compare g_hdr_extract_count with event count in
34508 -- CreateHeadersAndLines.
34509 --
34510 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
34511
34512 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
34513 trace (p_msg => '# rows extracted from header extract objects '
34514 || ' (running total): '
34515 || g_hdr_extract_count
34516 ,p_level => C_LEVEL_STATEMENT
34517 ,p_module => l_log_module);
34518 END IF;
34519
34520 CLOSE header_cur;
34521 --
34522
34523 --
34524 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34525 trace
34526 (p_msg => 'END of EventType_42'
34527 ,p_level => C_LEVEL_PROCEDURE
34528 ,p_module => l_log_module);
34529 END IF;
34530 --
34531 RETURN l_result;
34532 EXCEPTION
34533 WHEN xla_exceptions_pkg.application_exception THEN
34534
34535 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
34536
34537
34538 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
34539
34540 RAISE;
34541
34542 WHEN NO_DATA_FOUND THEN
34543
34544 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
34545 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
34546
34547 FOR header_record IN header_cur
34548 LOOP
34549 l_array_header_events(header_record.event_id) := header_record.event_id;
34550 END LOOP;
34551
34552 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
34553 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
34554
34555 fnd_file.put_line(fnd_file.LOG, ' ');
34556 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
34557 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
34558 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
34559
34560 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
34561 LOOP
34562 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
34563 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
34564 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
34565 END IF;
34566 END LOOP;
34567
34568 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
34569 fnd_file.put_line(fnd_file.LOG, ' ');
34570
34571
34572 xla_exceptions_pkg.raise_message
34573 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_42');
34574
34575
34576 WHEN OTHERS THEN
34577 xla_exceptions_pkg.raise_message
34578 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_42');
34579 END EventType_42;
34580 --
34581
34582 ---------------------------------------
34583 --
34584 -- PRIVATE PROCEDURE
34585 -- insert_sources_43
34586 --
34587 ----------------------------------------
34588 --
34589 PROCEDURE insert_sources_43(
34590 p_target_ledger_id IN NUMBER
34591 , p_language IN VARCHAR2
34592 , p_sla_ledger_id IN NUMBER
34593 , p_pad_start_date IN DATE
34594 , p_pad_end_date IN DATE
34595 )
34596 IS
34597
34598 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RET_RI_INV';
34599 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER';
34600 p_apps_owner VARCHAR2(30);
34601 l_log_module VARCHAR2(240);
34602 BEGIN
34603 IF g_log_enabled THEN
34604 l_log_module := C_DEFAULT_MODULE||'.insert_sources_43';
34605 END IF;
34606 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34607
34608 trace
34609 (p_msg => 'BEGIN of insert_sources_43'
34610 ,p_level => C_LEVEL_PROCEDURE
34611 ,p_module => l_log_module);
34612
34613 END IF;
34614
34615 -- select APPS owner
34616 SELECT oracle_username
34617 INTO p_apps_owner
34618 FROM fnd_oracle_userid
34619 WHERE read_only_flag = 'U'
34620 ;
34621
34622 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
34623 trace
34624 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
34625 ' - p_language = '||p_language||
34626 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
34627 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
34628 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
34629 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
34630 ,p_level => C_LEVEL_STATEMENT
34631 ,p_module => l_log_module);
34632 END IF;
34633
34634
34635 --
34636 INSERT INTO xla_diag_sources --hdr1
34637 (
34638 event_id
34639 , ledger_id
34640 , sla_ledger_id
34641 , description_language
34642 , object_name
34643 , object_type_code
34644 , line_number
34645 , source_application_id
34646 , source_type_code
34647 , source_code
34648 , source_value
34649 , source_meaning
34650 , created_by
34651 , creation_date
34652 , last_update_date
34653 , last_updated_by
34654 , last_update_login
34655 , program_update_date
34656 , program_application_id
34657 , program_id
34658 , request_id
34659 )
34660 SELECT
34661 event_id
34662 , p_target_ledger_id
34663 , p_sla_ledger_id
34664 , p_language
34665 , object_name
34666 , object_type_code
34667 , line_number
34668 , source_application_id
34669 , source_type_code
34670 , source_code
34671 , SUBSTR(source_value ,1,1996)
34672 , SUBSTR(source_meaning,1,200)
34673 , xla_environment_pkg.g_Usr_Id
34674 , TRUNC(SYSDATE)
34675 , TRUNC(SYSDATE)
34676 , xla_environment_pkg.g_Usr_Id
34677 , xla_environment_pkg.g_Login_Id
34678 , TRUNC(SYSDATE)
34679 , xla_environment_pkg.g_Prog_Appl_Id
34680 , xla_environment_pkg.g_Prog_Id
34681 , xla_environment_pkg.g_Req_Id
34682 FROM (
34683 SELECT xet.event_id event_id
34684 , 0 line_number
34685 , CASE r
34686 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
34687 WHEN 2 THEN 'CST_XLA_INV_SYSTEM_ITEMS_REF_V'
34688 WHEN 3 THEN 'CST_XLA_INV_REF_V'
34689 WHEN 4 THEN 'CST_XLA_INV_REF_V'
34690 WHEN 5 THEN 'CST_XLA_INV_TXN_TYPES_REF_V'
34691 WHEN 6 THEN 'CST_XLA_INV_HEADERS_V'
34692 WHEN 7 THEN 'PO_HEADERS_REF_V'
34693 WHEN 8 THEN 'CST_XLA_INV_ORG_PARAMS_REF_V'
34694 WHEN 9 THEN 'CST_XLA_INV_REF_V'
34695 WHEN 10 THEN 'CST_XLA_INV_REF_V'
34696 WHEN 11 THEN 'CST_XLA_INV_REF_V'
34697 WHEN 12 THEN 'CST_XLA_INV_REF_V'
34698 WHEN 13 THEN 'CST_XLA_INV_REF_V'
34699 WHEN 14 THEN 'PO_DISTS_REF_V'
34700 WHEN 15 THEN 'CST_XLA_INV_REF_V'
34701 WHEN 16 THEN 'CST_XLA_INV_REF_V'
34702 WHEN 17 THEN 'PSA_CST_XLA_UPG_V'
34703 WHEN 18 THEN 'PO_HEADERS_REF_V'
34704 WHEN 19 THEN 'PO_DISTS_REF_V'
34705 WHEN 20 THEN 'CST_XLA_INV_HEADERS_V'
34706
34707 ELSE null
34708 END object_name
34709 , CASE r
34710 WHEN 1 THEN 'HEADER'
34711 WHEN 2 THEN 'HEADER'
34712 WHEN 3 THEN 'HEADER'
34713 WHEN 4 THEN 'HEADER'
34714 WHEN 5 THEN 'HEADER'
34715 WHEN 6 THEN 'HEADER'
34716 WHEN 7 THEN 'HEADER'
34717 WHEN 8 THEN 'HEADER'
34718 WHEN 9 THEN 'HEADER'
34719 WHEN 10 THEN 'HEADER'
34720 WHEN 11 THEN 'HEADER'
34721 WHEN 12 THEN 'HEADER'
34722 WHEN 13 THEN 'HEADER'
34723 WHEN 14 THEN 'HEADER'
34724 WHEN 15 THEN 'HEADER'
34725 WHEN 16 THEN 'HEADER'
34726 WHEN 17 THEN 'HEADER'
34727 WHEN 18 THEN 'HEADER'
34728 WHEN 19 THEN 'HEADER'
34729 WHEN 20 THEN 'HEADER'
34730
34731 ELSE null
34732 END object_type_code
34733 , CASE r
34734 WHEN 1 THEN '707'
34735 WHEN 2 THEN '707'
34736 WHEN 3 THEN '707'
34737 WHEN 4 THEN '707'
34738 WHEN 5 THEN '707'
34739 WHEN 6 THEN '707'
34740 WHEN 7 THEN '201'
34741 WHEN 8 THEN '707'
34742 WHEN 9 THEN '707'
34743 WHEN 10 THEN '707'
34744 WHEN 11 THEN '707'
34745 WHEN 12 THEN '707'
34746 WHEN 13 THEN '707'
34747 WHEN 14 THEN '201'
34748 WHEN 15 THEN '707'
34749 WHEN 16 THEN '707'
34750 WHEN 17 THEN '707'
34751 WHEN 18 THEN '201'
34752 WHEN 19 THEN '201'
34753 WHEN 20 THEN '707'
34754
34755 ELSE null
34756 END source_application_id
34757 , 'S' source_type_code
34758 , CASE r
34759 WHEN 1 THEN 'TRANSACTION_ID'
34760 WHEN 2 THEN 'ITEM_CONCATENATED_SEGMENTS'
34761 WHEN 3 THEN 'TRANSACTION_QUANTITY'
34762 WHEN 4 THEN 'TRANSACTION_UOM'
34763 WHEN 5 THEN 'INV_TXN_TYPE_DESCRIPTION'
34764 WHEN 6 THEN 'DISTRIBUTION_TYPE'
34765 WHEN 7 THEN 'PURCH_ENCUMBRANCE_FLAG'
34766 WHEN 8 THEN 'ENCUMBRANCE_REVERSAL_FLAG'
34767 WHEN 9 THEN 'APPLIED_TO_APPL_ID'
34768 WHEN 10 THEN 'APPLIED_TO_DIST_LINK_TYPE'
34769 WHEN 11 THEN 'APPLIED_TO_ENTITY_CODE'
34770 WHEN 12 THEN 'TXN_PO_DISTRIBUTION_ID'
34771 WHEN 13 THEN 'APPLIED_TO_PO_DOC_ID'
34772 WHEN 14 THEN 'PO_BUDGET_ACCOUNT'
34773 WHEN 15 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
34774 WHEN 16 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
34775 WHEN 17 THEN 'CST_ENCUM_UPG_OPTION'
34776 WHEN 18 THEN 'PURCH_ENCUMBRANCE_TYPE_ID'
34777 WHEN 19 THEN 'RESERVED_FLAG'
34778 WHEN 20 THEN 'TRANSFER_TO_GL_INDICATOR'
34779
34780 ELSE null
34781 END source_code
34782 , CASE r
34783 WHEN 1 THEN TO_CHAR(h1.TRANSACTION_ID)
34784 WHEN 2 THEN TO_CHAR(h5.ITEM_CONCATENATED_SEGMENTS)
34785 WHEN 3 THEN TO_CHAR(h4.TRANSACTION_QUANTITY)
34786 WHEN 4 THEN TO_CHAR(h4.TRANSACTION_UOM)
34787 WHEN 5 THEN TO_CHAR(h6.INV_TXN_TYPE_DESCRIPTION)
34788 WHEN 6 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
34789 WHEN 7 THEN TO_CHAR(h8.PURCH_ENCUMBRANCE_FLAG)
34790 WHEN 8 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_FLAG)
34791 WHEN 9 THEN TO_CHAR(h4.APPLIED_TO_APPL_ID)
34792 WHEN 10 THEN TO_CHAR(h4.APPLIED_TO_DIST_LINK_TYPE)
34793 WHEN 11 THEN TO_CHAR(h4.APPLIED_TO_ENTITY_CODE)
34794 WHEN 12 THEN TO_CHAR(h4.TXN_PO_DISTRIBUTION_ID)
34795 WHEN 13 THEN TO_CHAR(h4.APPLIED_TO_PO_DOC_ID)
34796 WHEN 14 THEN TO_CHAR(h7.PO_BUDGET_ACCOUNT)
34797 WHEN 15 THEN TO_CHAR(h4.ENCUM_REVERSAL_AMOUNT_ENTERED)
34798 WHEN 16 THEN TO_CHAR(h4.ENCUMBRANCE_REVERSAL_AMOUNT)
34799 WHEN 17 THEN TO_CHAR(h9.CST_ENCUM_UPG_OPTION)
34800 WHEN 18 THEN TO_CHAR(h8.PURCH_ENCUMBRANCE_TYPE_ID)
34801 WHEN 19 THEN TO_CHAR(h7.RESERVED_FLAG)
34802 WHEN 20 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
34803
34804 ELSE null
34805 END source_value
34806 , CASE r
34807 WHEN 6 THEN fvl9.meaning
34808 WHEN 20 THEN fvl42.meaning
34809
34810 ELSE null
34811 END source_meaning
34812 FROM xla_events_gt xet
34813 , CST_XLA_INV_HEADERS_V h1
34814 , CST_XLA_INV_ORG_PARAMS_REF_V h3
34815 , CST_XLA_INV_REF_V h4
34816 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
34817 , CST_XLA_INV_TXN_TYPES_REF_V h6
34818 , PO_DISTS_REF_V h7
34819 , PO_HEADERS_REF_V h8
34820 , PSA_CST_XLA_UPG_V h9
34821 , fnd_lookup_values fvl9
34822 , fnd_lookup_values fvl42
34823 ,(select rownum r from all_objects where rownum <= 20 and owner = p_apps_owner)
34824 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
34825 AND xet.event_type_code = C_EVENT_TYPE_CODE
34826 AND h1.event_id = xet.event_id
34827 AND h3.inv_organization_id (+) = h1.organization_id AND h4.ref_transaction_id = h1.transaction_id AND h5.inventory_item_id (+) = h1.inventory_item_id and h5.organization_id (+) = h1.organization_id AND h6.inv_transaction_type_id = h1.transaction_type_id AND h4.txn_po_header_id = h7.po_header_id (+) and h4.txn_po_distribution_id = h7.po_distribution_id (+) AND h4.txn_po_header_id = h8.po_header_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) =
34828 'CST_DISTRIBUTION_TYPE'
34829 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
34830 AND fvl9.view_application_id(+) = 700
34831 AND fvl9.language(+) = USERENV('LANG')
34832 AND fvl42.lookup_type(+) = 'YES_NO'
34833 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
34834 AND fvl42.view_application_id(+) = 0
34835 AND fvl42.language(+) = USERENV('LANG')
34836
34837 )
34838 ;
34839 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
34840
34841 trace
34842 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
34843 ,p_level => C_LEVEL_STATEMENT
34844 ,p_module => l_log_module);
34845
34846 END IF;
34847 --
34848
34849
34850
34851 --
34852 INSERT INTO xla_diag_sources --line1
34853 (
34854 event_id
34855 , ledger_id
34856 , sla_ledger_id
34857 , description_language
34858 , object_name
34859 , object_type_code
34860 , line_number
34861 , source_application_id
34862 , source_type_code
34863 , source_code
34864 , source_value
34865 , source_meaning
34866 , created_by
34867 , creation_date
34868 , last_update_date
34869 , last_updated_by
34870 , last_update_login
34871 , program_update_date
34872 , program_application_id
34873 , program_id
34874 , request_id
34875 )
34876 SELECT event_id
34877 , p_target_ledger_id
34878 , p_sla_ledger_id
34879 , p_language
34880 , object_name
34881 , object_type_code
34882 , line_number
34883 , source_application_id
34884 , source_type_code
34885 , source_code
34886 , SUBSTR(source_value,1,1996)
34887 , SUBSTR(source_meaning,1,200)
34888 , xla_environment_pkg.g_Usr_Id
34889 , TRUNC(SYSDATE)
34890 , TRUNC(SYSDATE)
34891 , xla_environment_pkg.g_Usr_Id
34892 , xla_environment_pkg.g_Login_Id
34893 , TRUNC(SYSDATE)
34894 , xla_environment_pkg.g_Prog_Appl_Id
34895 , xla_environment_pkg.g_Prog_Id
34896 , xla_environment_pkg.g_Req_Id
34897 FROM (
34898 SELECT xet.event_id event_id
34899 , l2.line_number line_number
34900 , CASE r
34901 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
34902 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
34903 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
34904
34905 ELSE null
34906 END object_name
34907 , CASE r
34908 WHEN 1 THEN 'LINE'
34909 WHEN 2 THEN 'LINE'
34910 WHEN 3 THEN 'LINE'
34911
34912 ELSE null
34913 END object_type_code
34914 , CASE r
34915 WHEN 1 THEN '707'
34916 WHEN 2 THEN '707'
34917 WHEN 3 THEN '707'
34918
34919 ELSE null
34920 END source_application_id
34921 , 'S' source_type_code
34922 , CASE r
34923 WHEN 1 THEN 'ACCOUNTING_LINE_TYPE_CODE'
34924 WHEN 2 THEN 'DISTRIBUTION_IDENTIFIER'
34925 WHEN 3 THEN 'CURRENCY_CODE'
34926
34927 ELSE null
34928 END source_code
34929 , CASE r
34930 WHEN 1 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
34931 WHEN 2 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
34932 WHEN 3 THEN TO_CHAR(l2.CURRENCY_CODE)
34933
34934 ELSE null
34935 END source_value
34936 , null source_meaning
34937 FROM xla_events_gt xet
34938 , CST_XLA_INV_LINES_V l2
34939 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
34940 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
34941 AND xet.event_type_code = C_EVENT_TYPE_CODE
34942 AND l2.event_id = xet.event_id
34943
34944 )
34945 ;
34946 --
34947 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
34948
34949 trace
34950 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
34951 ,p_level => C_LEVEL_STATEMENT
34952 ,p_module => l_log_module);
34953
34954 END IF;
34955
34956
34957 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34958 trace
34959 (p_msg => 'END of insert_sources_43'
34960 ,p_level => C_LEVEL_PROCEDURE
34961 ,p_module => l_log_module);
34962 END IF;
34963 EXCEPTION
34964 WHEN xla_exceptions_pkg.application_exception THEN
34965 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
34966 trace
34967 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
34968 ,p_level => C_LEVEL_EXCEPTION
34969 ,p_module => l_log_module);
34970 END IF;
34971 RAISE;
34972 WHEN OTHERS THEN
34973 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
34974 trace
34975 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
34976 ,p_level => C_LEVEL_EXCEPTION
34977 ,p_module => l_log_module);
34978 END IF;
34979 xla_exceptions_pkg.raise_message
34980 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.insert_sources_43');
34981 END insert_sources_43;
34982 --
34983
34984 ---------------------------------------
34985 --
34986 -- PRIVATE FUNCTION
34987 -- EventType_43
34988 --
34989 ----------------------------------------
34990 --
34991 FUNCTION EventType_43
34992 (p_application_id IN NUMBER
34993 ,p_base_ledger_id IN NUMBER
34994 ,p_target_ledger_id IN NUMBER
34995 ,p_language IN VARCHAR2
34996 ,p_currency_code IN VARCHAR2
34997 ,p_sla_ledger_id IN NUMBER
34998 ,p_pad_start_date IN DATE
34999 ,p_pad_end_date IN DATE
35000 ,p_primary_ledger_id IN NUMBER)
35001 RETURN BOOLEAN IS
35002 --
35003 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RET_RI_INV';
35004 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER';
35005
35006 l_calculate_acctd_flag VARCHAR2(1) :='N';
35007 l_calculate_g_l_flag VARCHAR2(1) :='N';
35008 --
35009 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
35010 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
35011 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
35012 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
35013 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
35014 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
35015 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
35016 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
35017 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
35018 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
35019 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
35020 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
35021 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
35022 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
35023 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
35024 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
35025 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
35026 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
35027 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
35028 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
35029 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
35030 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
35031 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
35032 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
35033 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
35034 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
35035
35036 l_event_id NUMBER;
35037 l_previous_event_id NUMBER;
35038 l_first_event_id NUMBER;
35039 l_last_event_id NUMBER;
35040
35041 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
35042 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35043 --
35044 --
35045 l_result BOOLEAN := TRUE;
35046 l_rows NUMBER := 1000;
35047 l_event_type_name VARCHAR2(80) := 'Return to Receiving Inspection from Inventory';
35048 l_event_class_name VARCHAR2(80) := 'PO Delivery into Inventory';
35049 l_description VARCHAR2(4000);
35050 l_transaction_reversal NUMBER;
35051 l_ae_header_id NUMBER;
35052 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
35053 l_log_module VARCHAR2(240);
35054 --
35055 l_acct_reversal_source VARCHAR2(30);
35056 l_trx_reversal_source VARCHAR2(30);
35057
35058 l_continue_with_lines BOOLEAN := TRUE;
35059 --
35060 l_acc_rev_gl_date_source DATE; -- 4262811
35061 --
35062 type t_array_event_id is table of number index by binary_integer;
35063
35064 l_rec_array_event t_rec_array_event;
35065 l_null_rec_array_event t_rec_array_event;
35066 l_array_ae_header_id xla_number_array_type;
35067 l_actual_flag VARCHAR2(1) := NULL;
35068 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
35069 l_balance_type_code VARCHAR2(1) :=NULL;
35070 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
35071
35072 --
35073 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
35074 --
35075
35076 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSACTION_ID%TYPE INDEX BY BINARY_INTEGER;
35077 TYPE t_array_source_2 IS TABLE OF CST_XLA_INV_SYSTEM_ITEMS_REF_V.ITEM_CONCATENATED_SEGMENTS%TYPE INDEX BY BINARY_INTEGER;
35078 TYPE t_array_source_3 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_QUANTITY%TYPE INDEX BY BINARY_INTEGER;
35079 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_REF_V.TRANSACTION_UOM%TYPE INDEX BY BINARY_INTEGER;
35080 TYPE t_array_source_5 IS TABLE OF CST_XLA_INV_TXN_TYPES_REF_V.INV_TXN_TYPE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
35081 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
35082 TYPE t_array_source_16 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
35083 TYPE t_array_source_17 IS TABLE OF CST_XLA_INV_ORG_PARAMS_REF_V.ENCUMBRANCE_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
35084 TYPE t_array_source_19 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
35085 TYPE t_array_source_20 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
35086 TYPE t_array_source_21 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
35087 TYPE t_array_source_22 IS TABLE OF CST_XLA_INV_REF_V.TXN_PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
35088 TYPE t_array_source_23 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
35089 TYPE t_array_source_24 IS TABLE OF PO_DISTS_REF_V.PO_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
35090 TYPE t_array_source_25 IS TABLE OF CST_XLA_INV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
35091 TYPE t_array_source_26 IS TABLE OF CST_XLA_INV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
35092 TYPE t_array_source_27 IS TABLE OF PSA_CST_XLA_UPG_V.CST_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
35093 TYPE t_array_source_28 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
35094 TYPE t_array_source_31 IS TABLE OF PO_DISTS_REF_V.RESERVED_FLAG%TYPE INDEX BY BINARY_INTEGER;
35095 TYPE t_array_source_42 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
35096
35097 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
35098 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
35099 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
35100
35101 l_array_source_1 t_array_source_1;
35102 l_array_source_2 t_array_source_2;
35103 l_array_source_3 t_array_source_3;
35104 l_array_source_4 t_array_source_4;
35105 l_array_source_5 t_array_source_5;
35106 l_array_source_9 t_array_source_9;
35107 l_array_source_9_meaning t_array_lookup_meaning;
35108 l_array_source_16 t_array_source_16;
35109 l_array_source_17 t_array_source_17;
35110 l_array_source_19 t_array_source_19;
35111 l_array_source_20 t_array_source_20;
35112 l_array_source_21 t_array_source_21;
35113 l_array_source_22 t_array_source_22;
35114 l_array_source_23 t_array_source_23;
35115 l_array_source_24 t_array_source_24;
35116 l_array_source_25 t_array_source_25;
35117 l_array_source_26 t_array_source_26;
35118 l_array_source_27 t_array_source_27;
35119 l_array_source_28 t_array_source_28;
35120 l_array_source_31 t_array_source_31;
35121 l_array_source_42 t_array_source_42;
35122 l_array_source_42_meaning t_array_lookup_meaning;
35123
35124 l_array_source_7 t_array_source_7;
35125 l_array_source_8 t_array_source_8;
35126 l_array_source_11 t_array_source_11;
35127
35128 --
35129 CURSOR header_cur
35130 IS
35131 SELECT /*+ leading(xet) cardinality(xet,1) */
35132 -- Event Type Code: RET_RI_INV
35133 -- Event Class Code: PURCHASE_ORDER
35134 xet.entity_id
35135 , xet.legal_entity_id
35136 , xet.entity_code
35137 , xet.transaction_number
35138 , xet.event_id
35139 , xet.event_class_code
35140 , xet.event_type_code
35141 , xet.event_number
35142 , xet.event_date
35143 , xet.transaction_date
35144 , xet.reference_num_1
35145 , xet.reference_num_2
35146 , xet.reference_num_3
35147 , xet.reference_num_4
35148 , xet.reference_char_1
35149 , xet.reference_char_2
35150 , xet.reference_char_3
35151 , xet.reference_char_4
35152 , xet.reference_date_1
35153 , xet.reference_date_2
35154 , xet.reference_date_3
35155 , xet.reference_date_4
35156 , xet.event_created_by
35157 , xet.budgetary_control_flag
35158 , h1.TRANSACTION_ID source_1
35159 , h5.ITEM_CONCATENATED_SEGMENTS source_2
35160 , h4.TRANSACTION_QUANTITY source_3
35161 , h4.TRANSACTION_UOM source_4
35162 , h6.INV_TXN_TYPE_DESCRIPTION source_5
35163 , h1.DISTRIBUTION_TYPE source_9
35164 , fvl9.meaning source_9_meaning
35165 , h8.PURCH_ENCUMBRANCE_FLAG source_16
35166 , h3.ENCUMBRANCE_REVERSAL_FLAG source_17
35167 , h4.APPLIED_TO_APPL_ID source_19
35168 , h4.APPLIED_TO_DIST_LINK_TYPE source_20
35169 , h4.APPLIED_TO_ENTITY_CODE source_21
35170 , h4.TXN_PO_DISTRIBUTION_ID source_22
35171 , h4.APPLIED_TO_PO_DOC_ID source_23
35172 , h7.PO_BUDGET_ACCOUNT source_24
35173 , h4.ENCUM_REVERSAL_AMOUNT_ENTERED source_25
35174 , h4.ENCUMBRANCE_REVERSAL_AMOUNT source_26
35175 , h9.CST_ENCUM_UPG_OPTION source_27
35176 , h8.PURCH_ENCUMBRANCE_TYPE_ID source_28
35177 , h7.RESERVED_FLAG source_31
35178 , h1.TRANSFER_TO_GL_INDICATOR source_42
35179 , fvl42.meaning source_42_meaning
35180 FROM xla_events_gt xet
35181 , CST_XLA_INV_HEADERS_V h1
35182 , CST_XLA_INV_ORG_PARAMS_REF_V h3
35183 , CST_XLA_INV_REF_V h4
35184 , CST_XLA_INV_SYSTEM_ITEMS_REF_V h5
35185 , CST_XLA_INV_TXN_TYPES_REF_V h6
35186 , PO_DISTS_REF_V h7
35187 , PO_HEADERS_REF_V h8
35188 , PSA_CST_XLA_UPG_V h9
35189 , fnd_lookup_values fvl9
35190 , fnd_lookup_values fvl42
35191 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
35192 and xet.event_type_code = C_EVENT_TYPE_CODE
35193 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
35194 AND h3.INV_ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h4.ref_transaction_id = h1.transaction_id AND h5.INVENTORY_ITEM_ID (+) = h1.INVENTORY_ITEM_ID AND h5.ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h6.INV_TRANSACTION_TYPE_ID = h1.TRANSACTION_TYPE_ID AND h4.txn_po_header_id = h7.po_header_id (+) AND h4.txn_po_distribution_id = h7.po_distribution_id (+) AND h4.txn_po_header_id = h8.po_header_id (+) AND h4.rcv_transaction_id = h9.transaction_id (+) AND fvl9.lookup_type(+) =
35195 'CST_DISTRIBUTION_TYPE'
35196 AND fvl9.lookup_code(+) = h1.DISTRIBUTION_TYPE
35197 AND fvl9.view_application_id(+) = 700
35198 AND fvl9.language(+) = USERENV('LANG')
35199 AND fvl42.lookup_type(+) = 'YES_NO'
35200 AND fvl42.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
35201 AND fvl42.view_application_id(+) = 0
35202 AND fvl42.language(+) = USERENV('LANG')
35203
35204 ORDER BY event_id
35205 ;
35206
35207
35208 --
35209 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
35210 IS
35211 SELECT /*+ leading(xet) cardinality(xet,1) */
35212 -- Event Type Code: RET_RI_INV
35213 -- Event Class Code: PURCHASE_ORDER
35214 xet.entity_id
35215 ,xet.legal_entity_id
35216 ,xet.entity_code
35217 ,xet.transaction_number
35218 ,xet.event_id
35219 ,xet.event_class_code
35220 ,xet.event_type_code
35221 ,xet.event_number
35222 ,xet.event_date
35223 ,xet.transaction_date
35224 ,xet.reference_num_1
35225 ,xet.reference_num_2
35226 ,xet.reference_num_3
35227 ,xet.reference_num_4
35228 ,xet.reference_char_1
35229 ,xet.reference_char_2
35230 ,xet.reference_char_3
35231 ,xet.reference_char_4
35232 ,xet.reference_date_1
35233 ,xet.reference_date_2
35234 ,xet.reference_date_3
35235 ,xet.reference_date_4
35236 ,xet.event_created_by
35237 ,xet.budgetary_control_flag , l2.LINE_NUMBER
35238 , l2.ACCOUNTING_LINE_TYPE_CODE source_7
35239 , l2.DISTRIBUTION_IDENTIFIER source_8
35240 , l2.CURRENCY_CODE source_11
35241 FROM xla_events_gt xet
35242 , CST_XLA_INV_LINES_V l2
35243 WHERE xet.event_id between x_first_event_id and x_last_event_id
35244 and xet.event_date between p_pad_start_date and p_pad_end_date
35245 and xet.event_type_code = C_EVENT_TYPE_CODE
35246 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
35247 ;
35248
35249 --
35250 BEGIN
35251 IF g_log_enabled THEN
35252 l_log_module := C_DEFAULT_MODULE||'.EventType_43';
35253 END IF;
35254 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35255 trace
35256 (p_msg => 'BEGIN of EventType_43'
35257 ,p_level => C_LEVEL_PROCEDURE
35258 ,p_module => l_log_module);
35259 END IF;
35260
35261 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
35262 trace
35263 (p_msg => 'p_application_id = '||p_application_id||
35264 ' - p_base_ledger_id = '||p_base_ledger_id||
35265 ' - p_target_ledger_id = '||p_target_ledger_id||
35266 ' - p_language = '||p_language||
35267 ' - p_currency_code = '||p_currency_code||
35268 ' - p_sla_ledger_id = '||p_sla_ledger_id
35269 ,p_level => C_LEVEL_STATEMENT
35270 ,p_module => l_log_module);
35271 END IF;
35272 --
35273 -- initialze arrays
35274 --
35275 g_array_event.DELETE;
35276 l_rec_array_event := l_null_rec_array_event;
35277 --
35278 --------------------------------------
35279 -- 4262811 Initialze MPA Line Number
35280 --------------------------------------
35281 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
35282
35283 --
35284
35285 --
35286 OPEN header_cur;
35287 --
35288 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
35289 trace
35290 (p_msg => 'SQL - FETCH header_cur'
35291 ,p_level => C_LEVEL_STATEMENT
35292 ,p_module => l_log_module);
35293 END IF;
35294 --
35295 LOOP
35296 FETCH header_cur BULK COLLECT INTO
35297 l_array_entity_id
35298 , l_array_legal_entity_id
35299 , l_array_entity_code
35300 , l_array_transaction_num
35301 , l_array_event_id
35302 , l_array_class_code
35303 , l_array_event_type
35304 , l_array_event_number
35305 , l_array_event_date
35306 , l_array_transaction_date
35307 , l_array_reference_num_1
35308 , l_array_reference_num_2
35309 , l_array_reference_num_3
35310 , l_array_reference_num_4
35311 , l_array_reference_char_1
35312 , l_array_reference_char_2
35313 , l_array_reference_char_3
35314 , l_array_reference_char_4
35315 , l_array_reference_date_1
35316 , l_array_reference_date_2
35317 , l_array_reference_date_3
35318 , l_array_reference_date_4
35319 , l_array_event_created_by
35320 , l_array_budgetary_control_flag
35321 , l_array_source_1
35322 , l_array_source_2
35323 , l_array_source_3
35324 , l_array_source_4
35325 , l_array_source_5
35326 , l_array_source_9
35327 , l_array_source_9_meaning
35328 , l_array_source_16
35329 , l_array_source_17
35330 , l_array_source_19
35331 , l_array_source_20
35332 , l_array_source_21
35333 , l_array_source_22
35334 , l_array_source_23
35335 , l_array_source_24
35336 , l_array_source_25
35337 , l_array_source_26
35338 , l_array_source_27
35339 , l_array_source_28
35340 , l_array_source_31
35341 , l_array_source_42
35342 , l_array_source_42_meaning
35343 LIMIT l_rows;
35344 --
35345 IF (C_LEVEL_EVENT >= g_log_level) THEN
35346 trace
35347 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
35348 ,p_level => C_LEVEL_EVENT
35349 ,p_module => l_log_module);
35350 END IF;
35351 --
35352 EXIT WHEN l_array_entity_id.COUNT = 0;
35353
35354 -- initialize arrays
35355 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
35356 XLA_AE_LINES_PKG.g_rec_lines := NULL;
35357
35358 --
35359 -- Bug 4458708
35360 --
35361 XLA_AE_LINES_PKG.g_LineNumber := 0;
35362
35363
35364 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
35365 g_last_hdr_idx := l_array_event_id.LAST;
35366 --
35367 -- loop for the headers. Each iteration is for each header extract row
35368 -- fetched in header cursor
35369 --
35370 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
35371
35372 --
35373 -- set event info as cache for other routines to refer event attributes
35374 --
35375 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
35376 (p_application_id => p_application_id
35377 ,p_primary_ledger_id => p_primary_ledger_id
35378 ,p_base_ledger_id => p_base_ledger_id
35379 ,p_target_ledger_id => p_target_ledger_id
35380 ,p_entity_id => l_array_entity_id(hdr_idx)
35381 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
35382 ,p_entity_code => l_array_entity_code(hdr_idx)
35383 ,p_transaction_num => l_array_transaction_num(hdr_idx)
35384 ,p_event_id => l_array_event_id(hdr_idx)
35385 ,p_event_class_code => l_array_class_code(hdr_idx)
35386 ,p_event_type_code => l_array_event_type(hdr_idx)
35387 ,p_event_number => l_array_event_number(hdr_idx)
35388 ,p_event_date => l_array_event_date(hdr_idx)
35389 ,p_transaction_date => l_array_transaction_date(hdr_idx)
35390 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
35391 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
35392 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
35393 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
35394 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
35395 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
35396 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
35397 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
35398 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
35399 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
35400 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
35401 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
35402 ,p_event_created_by => l_array_event_created_by(hdr_idx)
35403 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
35404
35405 --
35406 -- set the status of entry to C_VALID (0)
35407 --
35408 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
35409
35410 --
35411 -- initialize a row for ae header
35412 --
35413 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
35414
35415 l_event_id := l_array_event_id(hdr_idx);
35416
35417 --
35418 -- storing the hdr_idx for event. May be used by line cursor.
35419 --
35420 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
35421
35422 --
35423 -- store sources from header extract. This can be improved to
35424 -- store only those sources from header extract that may be used in lines
35425 --
35426
35427 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
35428 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
35429 g_array_event(l_event_id).array_value_num('source_3') := l_array_source_3(hdr_idx);
35430 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
35431 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
35432 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
35433 g_array_event(l_event_id).array_value_char('source_9_meaning') := l_array_source_9_meaning(hdr_idx);
35434 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
35435 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
35436 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
35437 g_array_event(l_event_id).array_value_char('source_20') := l_array_source_20(hdr_idx);
35438 g_array_event(l_event_id).array_value_char('source_21') := l_array_source_21(hdr_idx);
35439 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
35440 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
35441 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
35442 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
35443 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
35444 g_array_event(l_event_id).array_value_char('source_27') := l_array_source_27(hdr_idx);
35445 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
35446 g_array_event(l_event_id).array_value_char('source_31') := l_array_source_31(hdr_idx);
35447 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
35448 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
35449
35450 --
35451 -- initilaize the status of ae headers for diffrent balance types
35452 -- the status is initialised to C_NOT_CREATED (2)
35453 --
35454 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
35455 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
35456 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
35457
35458 --
35459 -- call api to validate and store accounting attributes for header
35460 --
35461
35462 ------------------------------------------------------------
35463 -- Accrual Reversal : to get date for Standard Source (NONE)
35464 ------------------------------------------------------------
35465 l_acc_rev_gl_date_source := NULL;
35466
35467 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
35468 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_28');
35469 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
35470 l_rec_acct_attrs.array_date_value(2) :=
35471 xla_ae_sources_pkg.GetSystemSourceDate(
35472 p_source_code => 'XLA_REFERENCE_DATE_1'
35473 , p_source_type_code => 'Y'
35474 , p_source_application_id => 602
35475 );
35476 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
35477 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_42');
35478
35479
35480 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
35481
35482 XLA_AE_HEADER_PKG.SetJeCategoryName;
35483
35484 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
35485 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
35486 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
35487 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
35488 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
35489
35490
35491 --
35492 xla_ae_header_pkg.SetHdrDescription(
35493 p_description => Description_1 (
35494 p_application_id => p_application_id
35495 , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
35496 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
35497 , p_source_3 => g_array_event(l_event_id).array_value_num('source_3')
35498 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
35499 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
35500 )
35501 );
35502 --
35503
35504 -- No header level analytical criteria
35505
35506 --
35507 --accounting attribute enhancement, bug 3612931
35508 --
35509 l_trx_reversal_source := SUBSTR(NULL, 1,30);
35510
35511 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
35512 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
35513
35514 xla_accounting_err_pkg.build_message
35515 (p_appli_s_name => 'XLA'
35516 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
35517 ,p_token_1 => 'ACCT_ATTR_NAME'
35518 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
35519 ,p_token_2 => 'PRODUCT_NAME'
35520 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
35521 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
35522 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
35523 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
35524
35525 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
35526 --
35527 -- following sets the accounting attributes needed to reverse
35528 -- accounting for a distributeion
35529 --
35530 xla_ae_lines_pkg.SetTrxReversalAttrs
35531 (p_event_id => l_event_id
35532 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
35533 ,p_trx_reversal_source => l_trx_reversal_source);
35534
35535 END IF;
35536
35537
35538 ----------------------------------------------------------------
35539 -- 4262811 - update the header statuses to invalid in need be
35540 ----------------------------------------------------------------
35541 --
35542 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
35543
35544
35545 -----------------------------------------------
35546 -- No accrual reversal for the event class/type
35547 -----------------------------------------------
35548 ----------------------------------------------------------------
35549
35550 --
35551 -- this ends the header loop iteration for one bulk fetch
35552 --
35553 END LOOP;
35554
35555 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
35556 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
35557
35558 --
35559 -- insert dummy rows into lines gt table that were created due to
35560 -- transaction reversals
35561 --
35562 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
35563 l_result := XLA_AE_LINES_PKG.InsertLines;
35564 END IF;
35565
35566 --
35567 -- reset the temp_line_num for each set of events fetched from header
35568 -- cursor rather than doing it for each new event in line cursor
35569 -- Bug 3939231
35570 --
35571 xla_ae_lines_pkg.g_temp_line_num := 0;
35572
35573
35574
35575 --
35576 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
35577 --
35578 --
35579 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
35580
35581 trace
35582 (p_msg => 'SQL - FETCH line_cur'
35583 ,p_level => C_LEVEL_STATEMENT
35584 ,p_module => l_log_module);
35585
35586 END IF;
35587 --
35588 --
35589 LOOP
35590 --
35591 FETCH line_cur BULK COLLECT INTO
35592 l_array_entity_id
35593 , l_array_legal_entity_id
35594 , l_array_entity_code
35595 , l_array_transaction_num
35596 , l_array_event_id
35597 , l_array_class_code
35598 , l_array_event_type
35599 , l_array_event_number
35600 , l_array_event_date
35601 , l_array_transaction_date
35602 , l_array_reference_num_1
35603 , l_array_reference_num_2
35604 , l_array_reference_num_3
35605 , l_array_reference_num_4
35606 , l_array_reference_char_1
35607 , l_array_reference_char_2
35608 , l_array_reference_char_3
35609 , l_array_reference_char_4
35610 , l_array_reference_date_1
35611 , l_array_reference_date_2
35612 , l_array_reference_date_3
35613 , l_array_reference_date_4
35614 , l_array_event_created_by
35615 , l_array_budgetary_control_flag
35616 , l_array_extract_line_num
35617 , l_array_source_7
35618 , l_array_source_8
35619 , l_array_source_11
35620 LIMIT l_rows;
35621
35622 --
35623 IF (C_LEVEL_EVENT >= g_log_level) THEN
35624 trace
35625 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
35626 ,p_level => C_LEVEL_EVENT
35627 ,p_module => l_log_module);
35628 END IF;
35629 --
35630 EXIT WHEN l_array_entity_id.count = 0;
35631
35632 XLA_AE_LINES_PKG.g_rec_lines := null;
35633
35634 --
35635 -- Bug 4458708
35636 --
35637 XLA_AE_LINES_PKG.g_LineNumber := 0;
35638 --
35639 --
35640
35641 FOR Idx IN 1..l_array_event_id.count LOOP
35642 --
35643 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
35644 --
35645 l_event_id := l_array_event_id(idx); -- 5648433
35646
35647 --
35648 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
35649 --
35650
35651 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
35652 (g_array_event(l_event_id).array_value_num('header_index'))
35653 ,'N'
35654 ) <> 'Y'
35655 THEN
35656 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
35657 trace
35658 (p_msg => 'Trancaction revesal option is not Y '
35659 ,p_level => C_LEVEL_STATEMENT
35660 ,p_module => l_log_module);
35661 END IF;
35662
35663 --
35664 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
35665 --
35666 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
35667 --
35668 -- set event info as cache for other routines to refer event attributes
35669 --
35670
35671 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
35672 l_previous_event_id := l_event_id;
35673
35674 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
35675 (p_application_id => p_application_id
35676 ,p_primary_ledger_id => p_primary_ledger_id
35677 ,p_base_ledger_id => p_base_ledger_id
35678 ,p_target_ledger_id => p_target_ledger_id
35679 ,p_entity_id => l_array_entity_id(Idx)
35680 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
35681 ,p_entity_code => l_array_entity_code(Idx)
35682 ,p_transaction_num => l_array_transaction_num(Idx)
35683 ,p_event_id => l_array_event_id(Idx)
35684 ,p_event_class_code => l_array_class_code(Idx)
35685 ,p_event_type_code => l_array_event_type(Idx)
35686 ,p_event_number => l_array_event_number(Idx)
35687 ,p_event_date => l_array_event_date(Idx)
35688 ,p_transaction_date => l_array_transaction_date(Idx)
35689 ,p_reference_num_1 => l_array_reference_num_1(Idx)
35690 ,p_reference_num_2 => l_array_reference_num_2(Idx)
35691 ,p_reference_num_3 => l_array_reference_num_3(Idx)
35692 ,p_reference_num_4 => l_array_reference_num_4(Idx)
35693 ,p_reference_char_1 => l_array_reference_char_1(Idx)
35694 ,p_reference_char_2 => l_array_reference_char_2(Idx)
35695 ,p_reference_char_3 => l_array_reference_char_3(Idx)
35696 ,p_reference_char_4 => l_array_reference_char_4(Idx)
35697 ,p_reference_date_1 => l_array_reference_date_1(Idx)
35698 ,p_reference_date_2 => l_array_reference_date_2(Idx)
35699 ,p_reference_date_3 => l_array_reference_date_3(Idx)
35700 ,p_reference_date_4 => l_array_reference_date_4(Idx)
35701 ,p_event_created_by => l_array_event_created_by(Idx)
35702 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
35703 --
35704 END IF;
35705
35706
35707
35708 --
35709 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
35710
35711 l_acct_reversal_source := SUBSTR(NULL, 1,30);
35712
35713 IF l_continue_with_lines THEN
35714 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
35715 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
35716
35717 xla_accounting_err_pkg.build_message
35718 (p_appli_s_name => 'XLA'
35719 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
35720 ,p_token_1 => 'LINE_NUMBER'
35721 ,p_value_1 => l_array_extract_line_num(Idx)
35722 ,p_token_2 => 'PRODUCT_NAME'
35723 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
35724 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
35725 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
35726 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
35727
35728 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
35729 --
35730 -- following sets the accounting attributes needed to reverse
35731 -- accounting for a distributeion
35732 --
35733
35734 --
35735 -- 5217187
35736 --
35737 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
35738 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
35739 g_array_event(l_event_id).array_value_num('header_index'));
35740 --
35741 --
35742
35743 -- No reversal code generated
35744
35745 xla_ae_lines_pkg.SetAcctReversalAttrs
35746 (p_event_id => l_event_id
35747 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
35748 ,p_calculate_acctd_flag => l_calculate_acctd_flag
35749 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
35750 END IF;
35751
35752 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
35753 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
35754
35755 --
35756 AcctLineType_10 (
35757 p_application_id => p_application_id
35758 ,p_event_id => l_event_id
35759 ,p_calculate_acctd_flag => l_calculate_acctd_flag
35760 ,p_calculate_g_l_flag => l_calculate_g_l_flag
35761 ,p_actual_flag => l_actual_flag
35762 ,p_balance_type_code => l_balance_type_code
35763 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
35764
35765 , p_source_8 => l_array_source_8(Idx)
35766 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
35767 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
35768 , p_source_11 => l_array_source_11(Idx)
35769 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
35770 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
35771 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
35772 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
35773 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
35774 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
35775 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
35776 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
35777 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
35778 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
35779 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
35780 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
35781 );
35782 If(l_balance_type_code = 'A') THEN
35783 l_actual_gain_loss_ref := l_gain_or_loss_ref;
35784 END IF;
35785
35786 --
35787
35788
35789 --
35790 AcctLineType_20 (
35791 p_application_id => p_application_id
35792 ,p_event_id => l_event_id
35793 ,p_calculate_acctd_flag => l_calculate_acctd_flag
35794 ,p_calculate_g_l_flag => l_calculate_g_l_flag
35795 ,p_actual_flag => l_actual_flag
35796 ,p_balance_type_code => l_balance_type_code
35797 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
35798
35799 , p_source_7 => l_array_source_7(Idx)
35800 , p_source_8 => l_array_source_8(Idx)
35801 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
35802 , p_source_9_meaning => g_array_event(l_event_id).array_value_char('source_9_meaning')
35803 , p_source_11 => l_array_source_11(Idx)
35804 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
35805 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
35806 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
35807 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
35808 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
35809 , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
35810 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
35811 , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
35812 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
35813 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
35814 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
35815 , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
35816 , p_source_31 => g_array_event(l_event_id).array_value_char('source_31')
35817 );
35818 If(l_balance_type_code = 'A') THEN
35819 l_actual_gain_loss_ref := l_gain_or_loss_ref;
35820 END IF;
35821
35822 --
35823
35824 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
35825 -- or secondary ledger that has different currency with primary
35826 -- or alc that is calculated by sla
35827 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
35828 (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'))
35829
35830 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
35831 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
35832 AND (l_actual_flag = 'A')) THEN
35833 XLA_AE_LINES_PKG.CreateGainOrLossLines(
35834 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
35835 ,p_application_id => p_application_id
35836 ,p_amb_context_code => 'DEFAULT'
35837 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
35838 ,p_event_class_code => C_EVENT_CLASS_CODE
35839 ,p_event_type_code => C_EVENT_TYPE_CODE
35840
35841 ,p_gain_ccid => -1
35842 ,p_loss_ccid => -1
35843
35844 ,p_actual_flag => l_actual_flag
35845 ,p_enc_flag => null
35846 ,p_actual_g_l_ref => l_actual_gain_loss_ref
35847 ,p_enc_g_l_ref => null
35848 );
35849 END IF;
35850 END IF;
35851 END IF;
35852
35853 ELSE
35854 --
35855 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
35856 --
35857 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
35858 trace
35859 (p_msg => 'Trancaction revesal option is Y'
35860 ,p_level => C_LEVEL_STATEMENT
35861 ,p_module => l_log_module);
35862 END IF;
35863 END IF;
35864
35865 END LOOP;
35866 l_result := XLA_AE_LINES_PKG.InsertLines ;
35867 end loop;
35868 close line_cur;
35869
35870
35871 --
35872 -- insert headers into xla_ae_headers_gt table
35873 --
35874 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
35875
35876 -- insert into errors table here.
35877
35878 END LOOP;
35879
35880 --
35881 -- 4865292
35882 --
35883 -- Compare g_hdr_extract_count with event count in
35884 -- CreateHeadersAndLines.
35885 --
35886 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
35887
35888 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
35889 trace (p_msg => '# rows extracted from header extract objects '
35890 || ' (running total): '
35891 || g_hdr_extract_count
35892 ,p_level => C_LEVEL_STATEMENT
35893 ,p_module => l_log_module);
35894 END IF;
35895
35896 CLOSE header_cur;
35897 --
35898
35899 --
35900 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35901 trace
35902 (p_msg => 'END of EventType_43'
35903 ,p_level => C_LEVEL_PROCEDURE
35904 ,p_module => l_log_module);
35905 END IF;
35906 --
35907 RETURN l_result;
35908 EXCEPTION
35909 WHEN xla_exceptions_pkg.application_exception THEN
35910
35911 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
35912
35913
35914 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
35915
35916 RAISE;
35917
35918 WHEN NO_DATA_FOUND THEN
35919
35920 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
35921 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
35922
35923 FOR header_record IN header_cur
35924 LOOP
35925 l_array_header_events(header_record.event_id) := header_record.event_id;
35926 END LOOP;
35927
35928 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
35929 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
35930
35931 fnd_file.put_line(fnd_file.LOG, ' ');
35932 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
35933 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
35934 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
35935
35936 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
35937 LOOP
35938 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
35939 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
35940 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
35941 END IF;
35942 END LOOP;
35943
35944 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
35945 fnd_file.put_line(fnd_file.LOG, ' ');
35946
35947
35948 xla_exceptions_pkg.raise_message
35949 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_43');
35950
35951
35952 WHEN OTHERS THEN
35953 xla_exceptions_pkg.raise_message
35954 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.EventType_43');
35955 END EventType_43;
35956 --
35957
35958 --
35959 --+============================================+
35960 --| |
35961 --| PRIVATE FUNCTION |
35962 --| |
35963 --+============================================+
35964 --
35965 FUNCTION CreateHeadersAndLines
35966 (p_application_id IN NUMBER
35967 ,p_base_ledger_id IN NUMBER
35968 ,p_target_ledger_id IN NUMBER
35969 ,p_pad_start_date IN DATE
35970 ,p_pad_end_date IN DATE
35971 ,p_primary_ledger_id IN NUMBER)
35972 RETURN BOOLEAN IS
35973 l_created BOOLEAN:=FALSE;
35974 l_event_id NUMBER;
35975 l_event_date DATE;
35976 l_language VARCHAR2(30);
35977 l_currency_code VARCHAR2(30);
35978 l_sla_ledger_id NUMBER;
35979 l_log_module VARCHAR2(240);
35980
35981 BEGIN
35982 --
35983 IF g_log_enabled THEN
35984 l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
35985 END IF;
35986 --
35987 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35988 trace
35989 (p_msg => 'BEGIN of CreateHeadersAndLines'
35990 ,p_level => C_LEVEL_PROCEDURE
35991 ,p_module => l_log_module);
35992 END IF;
35993
35994 l_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
35995 l_currency_code := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
35996 l_sla_ledger_id := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
35997
35998 --
35999 -- initialize array of lines with NULL
36000 --
36001 xla_ae_lines_pkg.SetNullLine;
36002
36003 --
36004 -- initialize header extract count -- Bug 4865292
36005 --
36006 g_hdr_extract_count:= 0;
36007
36008
36009 l_created := EventClass_27(
36010 p_application_id => p_application_id
36011 , p_base_ledger_id => p_base_ledger_id
36012 , p_target_ledger_id => p_target_ledger_id
36013 , p_language => l_language
36014 , p_currency_code => l_currency_code
36015 , p_sla_ledger_id => l_sla_ledger_id
36016 , p_pad_start_date => p_pad_start_date
36017 , p_pad_end_date => p_pad_end_date
36018 , p_primary_ledger_id => p_primary_ledger_id
36019 );
36020
36021
36022
36023 IF ( g_diagnostics_mode ='Y' ) THEN
36024
36025 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36026 trace
36027 (p_msg => 'CALL Transaction Objects Diagnostics'
36028 ,p_level => C_LEVEL_STATEMENT
36029 ,p_module => l_log_module);
36030
36031 END IF;
36032
36033 insert_sources_27(
36034 p_target_ledger_id => p_target_ledger_id
36035 , p_language => l_language
36036 , p_sla_ledger_id => l_sla_ledger_id
36037 , p_pad_start_date => p_pad_start_date
36038 , p_pad_end_date => p_pad_end_date
36039 );
36040
36041 END IF;
36042
36043 l_created := EventClass_28(
36044 p_application_id => p_application_id
36045 , p_base_ledger_id => p_base_ledger_id
36046 , p_target_ledger_id => p_target_ledger_id
36047 , p_language => l_language
36048 , p_currency_code => l_currency_code
36049 , p_sla_ledger_id => l_sla_ledger_id
36050 , p_pad_start_date => p_pad_start_date
36051 , p_pad_end_date => p_pad_end_date
36052 , p_primary_ledger_id => p_primary_ledger_id
36053 );
36054
36055
36056
36057 IF ( g_diagnostics_mode ='Y' ) THEN
36058
36059 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36060 trace
36061 (p_msg => 'CALL Transaction Objects Diagnostics'
36062 ,p_level => C_LEVEL_STATEMENT
36063 ,p_module => l_log_module);
36064
36065 END IF;
36066
36067 insert_sources_28(
36068 p_target_ledger_id => p_target_ledger_id
36069 , p_language => l_language
36070 , p_sla_ledger_id => l_sla_ledger_id
36071 , p_pad_start_date => p_pad_start_date
36072 , p_pad_end_date => p_pad_end_date
36073 );
36074
36075 END IF;
36076
36077 l_created := EventType_29(
36078 p_application_id => p_application_id
36079 , p_base_ledger_id => p_base_ledger_id
36080 , p_target_ledger_id => p_target_ledger_id
36081 , p_language => l_language
36082 , p_currency_code => l_currency_code
36083 , p_sla_ledger_id => l_sla_ledger_id
36084 , p_pad_start_date => p_pad_start_date
36085 , p_pad_end_date => p_pad_end_date
36086 , p_primary_ledger_id => p_primary_ledger_id
36087 );
36088
36089
36090
36091 IF ( g_diagnostics_mode ='Y' ) THEN
36092
36093 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36094 trace
36095 (p_msg => 'CALL Transaction Objects Diagnostics'
36096 ,p_level => C_LEVEL_STATEMENT
36097 ,p_module => l_log_module);
36098
36099 END IF;
36100
36101 insert_sources_29(
36102 p_target_ledger_id => p_target_ledger_id
36103 , p_language => l_language
36104 , p_sla_ledger_id => l_sla_ledger_id
36105 , p_pad_start_date => p_pad_start_date
36106 , p_pad_end_date => p_pad_end_date
36107 );
36108
36109 END IF;
36110
36111 l_created := EventType_30(
36112 p_application_id => p_application_id
36113 , p_base_ledger_id => p_base_ledger_id
36114 , p_target_ledger_id => p_target_ledger_id
36115 , p_language => l_language
36116 , p_currency_code => l_currency_code
36117 , p_sla_ledger_id => l_sla_ledger_id
36118 , p_pad_start_date => p_pad_start_date
36119 , p_pad_end_date => p_pad_end_date
36120 , p_primary_ledger_id => p_primary_ledger_id
36121 );
36122
36123
36124
36125 IF ( g_diagnostics_mode ='Y' ) THEN
36126
36127 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36128 trace
36129 (p_msg => 'CALL Transaction Objects Diagnostics'
36130 ,p_level => C_LEVEL_STATEMENT
36131 ,p_module => l_log_module);
36132
36133 END IF;
36134
36135 insert_sources_30(
36136 p_target_ledger_id => p_target_ledger_id
36137 , p_language => l_language
36138 , p_sla_ledger_id => l_sla_ledger_id
36139 , p_pad_start_date => p_pad_start_date
36140 , p_pad_end_date => p_pad_end_date
36141 );
36142
36143 END IF;
36144
36145 l_created := EventType_31(
36146 p_application_id => p_application_id
36147 , p_base_ledger_id => p_base_ledger_id
36148 , p_target_ledger_id => p_target_ledger_id
36149 , p_language => l_language
36150 , p_currency_code => l_currency_code
36151 , p_sla_ledger_id => l_sla_ledger_id
36152 , p_pad_start_date => p_pad_start_date
36153 , p_pad_end_date => p_pad_end_date
36154 , p_primary_ledger_id => p_primary_ledger_id
36155 );
36156
36157
36158
36159 IF ( g_diagnostics_mode ='Y' ) THEN
36160
36161 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36162 trace
36163 (p_msg => 'CALL Transaction Objects Diagnostics'
36164 ,p_level => C_LEVEL_STATEMENT
36165 ,p_module => l_log_module);
36166
36167 END IF;
36168
36169 insert_sources_31(
36170 p_target_ledger_id => p_target_ledger_id
36171 , p_language => l_language
36172 , p_sla_ledger_id => l_sla_ledger_id
36173 , p_pad_start_date => p_pad_start_date
36174 , p_pad_end_date => p_pad_end_date
36175 );
36176
36177 END IF;
36178
36179 l_created := EventType_32(
36180 p_application_id => p_application_id
36181 , p_base_ledger_id => p_base_ledger_id
36182 , p_target_ledger_id => p_target_ledger_id
36183 , p_language => l_language
36184 , p_currency_code => l_currency_code
36185 , p_sla_ledger_id => l_sla_ledger_id
36186 , p_pad_start_date => p_pad_start_date
36187 , p_pad_end_date => p_pad_end_date
36188 , p_primary_ledger_id => p_primary_ledger_id
36189 );
36190
36191
36192
36193 IF ( g_diagnostics_mode ='Y' ) THEN
36194
36195 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36196 trace
36197 (p_msg => 'CALL Transaction Objects Diagnostics'
36198 ,p_level => C_LEVEL_STATEMENT
36199 ,p_module => l_log_module);
36200
36201 END IF;
36202
36203 insert_sources_32(
36204 p_target_ledger_id => p_target_ledger_id
36205 , p_language => l_language
36206 , p_sla_ledger_id => l_sla_ledger_id
36207 , p_pad_start_date => p_pad_start_date
36208 , p_pad_end_date => p_pad_end_date
36209 );
36210
36211 END IF;
36212
36213 l_created := EventType_33(
36214 p_application_id => p_application_id
36215 , p_base_ledger_id => p_base_ledger_id
36216 , p_target_ledger_id => p_target_ledger_id
36217 , p_language => l_language
36218 , p_currency_code => l_currency_code
36219 , p_sla_ledger_id => l_sla_ledger_id
36220 , p_pad_start_date => p_pad_start_date
36221 , p_pad_end_date => p_pad_end_date
36222 , p_primary_ledger_id => p_primary_ledger_id
36223 );
36224
36225
36226
36227 IF ( g_diagnostics_mode ='Y' ) THEN
36228
36229 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36230 trace
36231 (p_msg => 'CALL Transaction Objects Diagnostics'
36232 ,p_level => C_LEVEL_STATEMENT
36233 ,p_module => l_log_module);
36234
36235 END IF;
36236
36237 insert_sources_33(
36238 p_target_ledger_id => p_target_ledger_id
36239 , p_language => l_language
36240 , p_sla_ledger_id => l_sla_ledger_id
36241 , p_pad_start_date => p_pad_start_date
36242 , p_pad_end_date => p_pad_end_date
36243 );
36244
36245 END IF;
36246
36247 l_created := EventType_34(
36248 p_application_id => p_application_id
36249 , p_base_ledger_id => p_base_ledger_id
36250 , p_target_ledger_id => p_target_ledger_id
36251 , p_language => l_language
36252 , p_currency_code => l_currency_code
36253 , p_sla_ledger_id => l_sla_ledger_id
36254 , p_pad_start_date => p_pad_start_date
36255 , p_pad_end_date => p_pad_end_date
36256 , p_primary_ledger_id => p_primary_ledger_id
36257 );
36258
36259
36260
36261 IF ( g_diagnostics_mode ='Y' ) THEN
36262
36263 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36264 trace
36265 (p_msg => 'CALL Transaction Objects Diagnostics'
36266 ,p_level => C_LEVEL_STATEMENT
36267 ,p_module => l_log_module);
36268
36269 END IF;
36270
36271 insert_sources_34(
36272 p_target_ledger_id => p_target_ledger_id
36273 , p_language => l_language
36274 , p_sla_ledger_id => l_sla_ledger_id
36275 , p_pad_start_date => p_pad_start_date
36276 , p_pad_end_date => p_pad_end_date
36277 );
36278
36279 END IF;
36280
36281 l_created := EventType_35(
36282 p_application_id => p_application_id
36283 , p_base_ledger_id => p_base_ledger_id
36284 , p_target_ledger_id => p_target_ledger_id
36285 , p_language => l_language
36286 , p_currency_code => l_currency_code
36287 , p_sla_ledger_id => l_sla_ledger_id
36288 , p_pad_start_date => p_pad_start_date
36289 , p_pad_end_date => p_pad_end_date
36290 , p_primary_ledger_id => p_primary_ledger_id
36291 );
36292
36293
36294
36295 IF ( g_diagnostics_mode ='Y' ) THEN
36296
36297 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36298 trace
36299 (p_msg => 'CALL Transaction Objects Diagnostics'
36300 ,p_level => C_LEVEL_STATEMENT
36301 ,p_module => l_log_module);
36302
36303 END IF;
36304
36305 insert_sources_35(
36306 p_target_ledger_id => p_target_ledger_id
36307 , p_language => l_language
36308 , p_sla_ledger_id => l_sla_ledger_id
36309 , p_pad_start_date => p_pad_start_date
36310 , p_pad_end_date => p_pad_end_date
36311 );
36312
36313 END IF;
36314
36315 l_created := EventType_36(
36316 p_application_id => p_application_id
36317 , p_base_ledger_id => p_base_ledger_id
36318 , p_target_ledger_id => p_target_ledger_id
36319 , p_language => l_language
36320 , p_currency_code => l_currency_code
36321 , p_sla_ledger_id => l_sla_ledger_id
36322 , p_pad_start_date => p_pad_start_date
36323 , p_pad_end_date => p_pad_end_date
36324 , p_primary_ledger_id => p_primary_ledger_id
36325 );
36326
36327
36328
36329 IF ( g_diagnostics_mode ='Y' ) THEN
36330
36331 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36332 trace
36333 (p_msg => 'CALL Transaction Objects Diagnostics'
36334 ,p_level => C_LEVEL_STATEMENT
36335 ,p_module => l_log_module);
36336
36337 END IF;
36338
36339 insert_sources_36(
36340 p_target_ledger_id => p_target_ledger_id
36341 , p_language => l_language
36342 , p_sla_ledger_id => l_sla_ledger_id
36343 , p_pad_start_date => p_pad_start_date
36344 , p_pad_end_date => p_pad_end_date
36345 );
36346
36347 END IF;
36348
36349 l_created := EventType_37(
36350 p_application_id => p_application_id
36351 , p_base_ledger_id => p_base_ledger_id
36352 , p_target_ledger_id => p_target_ledger_id
36353 , p_language => l_language
36354 , p_currency_code => l_currency_code
36355 , p_sla_ledger_id => l_sla_ledger_id
36356 , p_pad_start_date => p_pad_start_date
36357 , p_pad_end_date => p_pad_end_date
36358 , p_primary_ledger_id => p_primary_ledger_id
36359 );
36360
36361
36362
36363 IF ( g_diagnostics_mode ='Y' ) THEN
36364
36365 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36366 trace
36367 (p_msg => 'CALL Transaction Objects Diagnostics'
36368 ,p_level => C_LEVEL_STATEMENT
36369 ,p_module => l_log_module);
36370
36371 END IF;
36372
36373 insert_sources_37(
36374 p_target_ledger_id => p_target_ledger_id
36375 , p_language => l_language
36376 , p_sla_ledger_id => l_sla_ledger_id
36377 , p_pad_start_date => p_pad_start_date
36378 , p_pad_end_date => p_pad_end_date
36379 );
36380
36381 END IF;
36382
36383 l_created := EventType_38(
36384 p_application_id => p_application_id
36385 , p_base_ledger_id => p_base_ledger_id
36386 , p_target_ledger_id => p_target_ledger_id
36387 , p_language => l_language
36388 , p_currency_code => l_currency_code
36389 , p_sla_ledger_id => l_sla_ledger_id
36390 , p_pad_start_date => p_pad_start_date
36391 , p_pad_end_date => p_pad_end_date
36392 , p_primary_ledger_id => p_primary_ledger_id
36393 );
36394
36395
36396
36397 IF ( g_diagnostics_mode ='Y' ) THEN
36398
36399 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36400 trace
36401 (p_msg => 'CALL Transaction Objects Diagnostics'
36402 ,p_level => C_LEVEL_STATEMENT
36403 ,p_module => l_log_module);
36404
36405 END IF;
36406
36407 insert_sources_38(
36408 p_target_ledger_id => p_target_ledger_id
36409 , p_language => l_language
36410 , p_sla_ledger_id => l_sla_ledger_id
36411 , p_pad_start_date => p_pad_start_date
36412 , p_pad_end_date => p_pad_end_date
36413 );
36414
36415 END IF;
36416
36417 l_created := EventType_39(
36418 p_application_id => p_application_id
36419 , p_base_ledger_id => p_base_ledger_id
36420 , p_target_ledger_id => p_target_ledger_id
36421 , p_language => l_language
36422 , p_currency_code => l_currency_code
36423 , p_sla_ledger_id => l_sla_ledger_id
36424 , p_pad_start_date => p_pad_start_date
36425 , p_pad_end_date => p_pad_end_date
36426 , p_primary_ledger_id => p_primary_ledger_id
36427 );
36428
36429
36430
36431 IF ( g_diagnostics_mode ='Y' ) THEN
36432
36433 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36434 trace
36435 (p_msg => 'CALL Transaction Objects Diagnostics'
36436 ,p_level => C_LEVEL_STATEMENT
36437 ,p_module => l_log_module);
36438
36439 END IF;
36440
36441 insert_sources_39(
36442 p_target_ledger_id => p_target_ledger_id
36443 , p_language => l_language
36444 , p_sla_ledger_id => l_sla_ledger_id
36445 , p_pad_start_date => p_pad_start_date
36446 , p_pad_end_date => p_pad_end_date
36447 );
36448
36449 END IF;
36450
36451 l_created := EventClass_40(
36452 p_application_id => p_application_id
36453 , p_base_ledger_id => p_base_ledger_id
36454 , p_target_ledger_id => p_target_ledger_id
36455 , p_language => l_language
36456 , p_currency_code => l_currency_code
36457 , p_sla_ledger_id => l_sla_ledger_id
36458 , p_pad_start_date => p_pad_start_date
36459 , p_pad_end_date => p_pad_end_date
36460 , p_primary_ledger_id => p_primary_ledger_id
36461 );
36462
36463
36464
36465 IF ( g_diagnostics_mode ='Y' ) THEN
36466
36467 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36468 trace
36469 (p_msg => 'CALL Transaction Objects Diagnostics'
36470 ,p_level => C_LEVEL_STATEMENT
36471 ,p_module => l_log_module);
36472
36473 END IF;
36474
36475 insert_sources_40(
36476 p_target_ledger_id => p_target_ledger_id
36477 , p_language => l_language
36478 , p_sla_ledger_id => l_sla_ledger_id
36479 , p_pad_start_date => p_pad_start_date
36480 , p_pad_end_date => p_pad_end_date
36481 );
36482
36483 END IF;
36484
36485 l_created := EventType_41(
36486 p_application_id => p_application_id
36487 , p_base_ledger_id => p_base_ledger_id
36488 , p_target_ledger_id => p_target_ledger_id
36489 , p_language => l_language
36490 , p_currency_code => l_currency_code
36491 , p_sla_ledger_id => l_sla_ledger_id
36492 , p_pad_start_date => p_pad_start_date
36493 , p_pad_end_date => p_pad_end_date
36494 , p_primary_ledger_id => p_primary_ledger_id
36495 );
36496
36497
36498
36499 IF ( g_diagnostics_mode ='Y' ) THEN
36500
36501 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36502 trace
36503 (p_msg => 'CALL Transaction Objects Diagnostics'
36504 ,p_level => C_LEVEL_STATEMENT
36505 ,p_module => l_log_module);
36506
36507 END IF;
36508
36509 insert_sources_41(
36510 p_target_ledger_id => p_target_ledger_id
36511 , p_language => l_language
36512 , p_sla_ledger_id => l_sla_ledger_id
36513 , p_pad_start_date => p_pad_start_date
36514 , p_pad_end_date => p_pad_end_date
36515 );
36516
36517 END IF;
36518
36519 l_created := EventType_42(
36520 p_application_id => p_application_id
36521 , p_base_ledger_id => p_base_ledger_id
36522 , p_target_ledger_id => p_target_ledger_id
36523 , p_language => l_language
36524 , p_currency_code => l_currency_code
36525 , p_sla_ledger_id => l_sla_ledger_id
36526 , p_pad_start_date => p_pad_start_date
36527 , p_pad_end_date => p_pad_end_date
36528 , p_primary_ledger_id => p_primary_ledger_id
36529 );
36530
36531
36532
36533 IF ( g_diagnostics_mode ='Y' ) THEN
36534
36535 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36536 trace
36537 (p_msg => 'CALL Transaction Objects Diagnostics'
36538 ,p_level => C_LEVEL_STATEMENT
36539 ,p_module => l_log_module);
36540
36541 END IF;
36542
36543 insert_sources_42(
36544 p_target_ledger_id => p_target_ledger_id
36545 , p_language => l_language
36546 , p_sla_ledger_id => l_sla_ledger_id
36547 , p_pad_start_date => p_pad_start_date
36548 , p_pad_end_date => p_pad_end_date
36549 );
36550
36551 END IF;
36552
36553 l_created := EventType_43(
36554 p_application_id => p_application_id
36555 , p_base_ledger_id => p_base_ledger_id
36556 , p_target_ledger_id => p_target_ledger_id
36557 , p_language => l_language
36558 , p_currency_code => l_currency_code
36559 , p_sla_ledger_id => l_sla_ledger_id
36560 , p_pad_start_date => p_pad_start_date
36561 , p_pad_end_date => p_pad_end_date
36562 , p_primary_ledger_id => p_primary_ledger_id
36563 );
36564
36565
36566
36567 IF ( g_diagnostics_mode ='Y' ) THEN
36568
36569 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36570 trace
36571 (p_msg => 'CALL Transaction Objects Diagnostics'
36572 ,p_level => C_LEVEL_STATEMENT
36573 ,p_module => l_log_module);
36574
36575 END IF;
36576
36577 insert_sources_43(
36578 p_target_ledger_id => p_target_ledger_id
36579 , p_language => l_language
36580 , p_sla_ledger_id => l_sla_ledger_id
36581 , p_pad_start_date => p_pad_start_date
36582 , p_pad_end_date => p_pad_end_date
36583 );
36584
36585 END IF;
36586
36587
36588 --
36589 -- Bug 4865292
36590 -- When the number of events and that of header extract do not match,
36591 -- set the no header extract flag to indicate there are some issues
36592 -- in header extract.
36593 --
36594 -- Event count context is set in xla_accounting_pkg.unit_processor.
36595 -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
36596 -- to report it as a general error.
36597 --
36598 IF xla_context_pkg.get_event_count_context <> g_hdr_extract_count
36599 AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
36600
36601 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36602 trace
36603 (p_msg => '# of extracted headers and events does not match'
36604 ,p_level => C_LEVEL_STATEMENT
36605 ,p_module => l_log_module);
36606
36607 trace
36608 (p_msg => '# of extracted headers: '
36609 ||g_hdr_extract_count
36610 ,p_level => C_LEVEL_STATEMENT
36611 ,p_module => l_log_module);
36612
36613 trace
36614 (p_msg => '# of events in xla_events_gt: '
36615 ||xla_context_pkg.get_event_count_context
36616 ,p_level => C_LEVEL_STATEMENT
36617 ,p_module => l_log_module);
36618
36619 trace
36620 (p_msg => 'Event No Header Extract Context: '
36621 ||xla_context_pkg.get_event_nohdr_context
36622 ,p_level => C_LEVEL_STATEMENT
36623 ,p_module => l_log_module);
36624
36625 END IF;
36626
36627
36628 xla_context_pkg.set_event_nohdr_context
36629 (p_nohdr_extract_flag => 'Y'
36630 ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
36631
36632 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36633 trace
36634 (p_msg => 'No Header Extract Flag is set to Y'
36635 ,p_level => C_LEVEL_STATEMENT
36636 ,p_module => l_log_module);
36637 END IF;
36638
36639 END IF;
36640
36641 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36642 trace
36643 (p_msg => 'END of CreateHeadersAndLines'
36644 ,p_level => C_LEVEL_PROCEDURE
36645 ,p_module => l_log_module);
36646 END IF;
36647
36648 RETURN l_created;
36649 EXCEPTION
36650 WHEN xla_exceptions_pkg.application_exception THEN
36651 RAISE;
36652 WHEN OTHERS THEN
36653 xla_exceptions_pkg.raise_message
36654 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.CreateHeadersAndLines');
36655 END CreateHeadersAndLines;
36656 --
36657 --
36658
36659 --
36660 --+============================================+
36661 --| |
36662 --| PUBLIC FUNCTION |
36663 --| |
36664 --+============================================+
36665 --
36666 FUNCTION CreateJournalEntries
36667 (p_application_id IN NUMBER
36668 ,p_base_ledger_id IN NUMBER
36669 ,p_pad_start_date IN DATE
36670 ,p_pad_end_date IN DATE
36671 ,p_primary_ledger_id IN NUMBER)
36672 RETURN NUMBER IS
36673 l_log_module VARCHAR2(240);
36674 l_array_ledgers xla_accounting_cache_pkg.t_array_ledger_id;
36675 l_temp_result BOOLEAN;
36676 l_result NUMBER;
36677 BEGIN
36678 --
36679 IF g_log_enabled THEN
36680 l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
36681 END IF;
36682 --
36683 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36684 trace
36685 (p_msg => 'BEGIN of CreateJournalEntries'||
36686 ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
36687 ,p_level => C_LEVEL_PROCEDURE
36688 ,p_module => l_log_module);
36689
36690 END IF;
36691
36692 --
36693 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
36694
36695 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36696 trace
36697 (p_msg => 'g_diagnostics_mode = '||g_diagnostics_mode
36698 ,p_level => C_LEVEL_STATEMENT
36699 ,p_module => l_log_module);
36700 END IF;
36701 --
36702 xla_ae_journal_entry_pkg.SetProductAcctDefinition
36703 (p_product_rule_code => 'PI_COST_MANAGEMENT_ENC'
36704 ,p_product_rule_type_code => 'S'
36705 ,p_product_rule_version => ''
36706 ,p_product_rule_name => 'Permanent Inventory Cost Management Encumbrance'
36707 ,p_amb_context_code => 'DEFAULT'
36708 );
36709
36710 l_array_ledgers :=
36711 xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
36712 (p_base_ledger_id => p_base_ledger_id);
36713
36714 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
36715 l_temp_result :=
36716 XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
36717 (p_application_id => p_application_id
36718 ,p_base_ledger_id => p_base_ledger_id
36719 ,p_target_ledger_id => l_array_ledgers(Idx)
36720 ,p_primary_ledger_id => p_primary_ledger_id
36721 ,p_pad_start_date => p_pad_start_date
36722 ,p_pad_end_date => p_pad_end_date);
36723
36724 l_temp_result :=
36725 l_temp_result AND
36726 CreateHeadersAndLines
36727 (p_application_id => p_application_id
36728 ,p_base_ledger_id => p_base_ledger_id
36729 ,p_target_ledger_id => l_array_ledgers(Idx)
36730 ,p_pad_start_date => p_pad_start_date
36731 ,p_pad_end_date => p_pad_end_date
36732 ,p_primary_ledger_id => p_primary_ledger_id
36733 );
36734 END LOOP;
36735
36736
36737 IF (g_diagnostics_mode = 'Y' AND
36738 C_LEVEL_UNEXPECTED >= g_log_level AND
36739 xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
36740
36741 xla_accounting_dump_pkg.acctg_event_extract_log(
36742 p_application_id => p_application_id
36743 ,p_request_id => xla_environment_pkg.g_Req_Id
36744 );
36745
36746 END IF;
36747
36748 CASE l_temp_result
36749 WHEN TRUE THEN l_result := 0;
36750 ELSE l_result := 2;
36751 END CASE;
36752
36753 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36754 trace
36755 (p_msg => 'return value. = '||TO_CHAR(l_result)
36756 ,p_level => C_LEVEL_PROCEDURE
36757 ,p_module => l_log_module);
36758 trace
36759 (p_msg => 'END of CreateJournalEntries '
36760 ,p_level => C_LEVEL_PROCEDURE
36761 ,p_module => l_log_module);
36762 END IF;
36763
36764 RETURN l_result;
36765 EXCEPTION
36766 WHEN xla_exceptions_pkg.application_exception THEN
36767 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36768 trace
36769 (p_msg => 'ERROR. = '||sqlerrm
36770 ,p_level => C_LEVEL_PROCEDURE
36771 ,p_module => l_log_module);
36772 END IF;
36773 RAISE;
36774 WHEN OTHERS THEN
36775 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36776 trace
36777 (p_msg => 'ERROR. = '||sqlerrm
36778 ,p_level => C_LEVEL_PROCEDURE
36779 ,p_module => l_log_module);
36780 END IF;
36781 xla_exceptions_pkg.raise_message
36782 (p_location => 'XLA_00707_AAD_S_000020_BC_PKG.CreateJournalEntries');
36783 END CreateJournalEntries;
36784 --
36785 --=============================================================================
36786 --
36787 --
36788 --
36789 --
36790 --
36791 --
36792 --
36793 --
36794 --
36795 --
36796 --
36797 --
36798 --
36799 --
36800 --
36801 --
36802 --
36803 --
36804 --
36805 --
36806 --
36807 --
36808 --=============================================================================
36809 --=============================================================================
36810 -- *********** Initialization routine **********
36811 --=============================================================================
36812
36813 BEGIN
36814 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
36815 g_log_enabled := fnd_log.test
36816 (log_level => g_log_level
36817 ,module => C_DEFAULT_MODULE);
36818
36819 IF NOT g_log_enabled THEN
36820 g_log_level := C_LEVEL_LOG_DISABLED;
36821 END IF;
36822 --
36823 END XLA_00707_AAD_S_000020_BC_PKG;
36824 --