[Home] [Help]
PACKAGE BODY: APPS.XLA_00707_AAD_S_000005_BC_PKG
Source
1 PACKAGE BODY XLA_00707_AAD_S_000005_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_000005_BC_PKG |
10 | |
11 | DESCRIPTION |
12 | Package generated From Product Accounting Definition |
13 | Name : Cost Management Encumbrance Application Accounting Defi|
14 | Code : COST_MANAGEMENT_ENCUMBRANCE |
15 | Owner : PRODUCT |
16 | Version : |
17 | AMB Context Code: DEFAULT |
18 | HISTORY |
19 | Generated at 30-03-2009 at 05:03:44 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_000005_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_000005_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_000005_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_000005_BC_PKG.GetMeaning');
228 END GetMeaning;
229 --
230
231 ---------------------------------------
232 --
233 -- PRIVATE FUNCTION
234 -- AcctDerRule_1
235 --
236 ---------------------------------------
237 FUNCTION AcctDerRule_1 (
238 p_application_id IN NUMBER
239 , p_ae_header_id IN NUMBER
240 , p_side IN VARCHAR2
241 --Cost Management Default Account
242 , p_source_1 IN NUMBER
243 , x_transaction_coa_id OUT NOCOPY NUMBER
244 , x_accounting_coa_id OUT NOCOPY NUMBER
245 , x_value_type_code OUT NOCOPY VARCHAR2
246 )
247 RETURN NUMBER
248 IS
249 l_component_type VARCHAR2(80) ;
250 l_component_code VARCHAR2(30) ;
251 l_component_type_code VARCHAR2(1) ;
252 l_component_appl_id INTEGER ;
253 l_amb_context_code VARCHAR2(30) ;
254 l_log_module VARCHAR2(240) ;
255 l_output_value NUMBER ;
256 BEGIN
257 IF g_log_enabled THEN
258 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_1';
259 END IF;
260 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
261 trace
262 (p_msg => 'BEGIN of AcctDerRule_1'
263 ,p_level => C_LEVEL_PROCEDURE
264 ,p_module => l_log_module);
265 END IF;
266 --
267 l_component_type := 'AMB_ADR';
268 l_component_code := 'CST_DEFAULT';
269 l_component_type_code := 'S';
270 l_component_appl_id := 707;
271 l_amb_context_code := 'DEFAULT';
272 x_transaction_coa_id := null;
273 x_accounting_coa_id := null;
274 --
275
276 --
277 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
278 trace
279 (p_msg => 'END of AcctDerRule_1'
280 ,p_level => C_LEVEL_PROCEDURE
281 ,p_module => l_log_module);
282 END IF;
283 x_value_type_code := 'S';
284 l_output_value := TO_NUMBER(TO_NUMBER(p_source_1));
285 RETURN l_output_value;
286
287 --
288 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
289 trace
290 (p_msg => 'END of AcctDerRule_1(invalid)'
291 ,p_level => C_LEVEL_PROCEDURE
292 ,p_module => l_log_module);
293 END IF;
294 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
295 x_value_type_code := null;
296 l_output_value := null;
297 xla_accounting_err_pkg.build_message
298 (p_appli_s_name => 'XLA'
299 ,p_msg_name => 'XLA_AP_INVALID_ADR'
300 ,p_token_1 => 'COMPONENT_NAME'
301 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
302 l_component_type
303 , l_component_code
304 , l_component_type_code
305 , l_component_appl_id
306 , l_amb_context_code
307 )
308 ,p_token_2 => 'OWNER'
312 )
309 ,p_value_2 => xla_lookups_pkg.get_meaning(
310 'XLA_OWNER_TYPE'
311 ,l_component_type_code
313 ,p_token_3 => 'PAD_NAME'
314 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
315 ,p_token_4 => 'PAD_OWNER'
316 ,p_value_4 => xla_lookups_pkg.get_meaning(
317 'XLA_OWNER_TYPE'
318 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
319 )
320 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
321 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
322 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
323 ,p_ae_header_id => NULL
324 );
325 RETURN l_output_value;
326 EXCEPTION
327 WHEN xla_exceptions_pkg.application_exception THEN
328 RAISE;
329 WHEN OTHERS THEN
330 xla_exceptions_pkg.raise_message
331 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.AcctDerRule_1');
332 END AcctDerRule_1;
333 --
334
335 ---------------------------------------
336 --
337 -- PRIVATE FUNCTION
338 -- AcctLineType_2
339 --
340 ---------------------------------------
341 PROCEDURE AcctLineType_2 (
342 p_application_id IN NUMBER
343 ,p_event_id IN NUMBER
344 ,p_calculate_acctd_flag IN VARCHAR2
345 ,p_calculate_g_l_flag IN VARCHAR2
346 ,p_actual_flag IN OUT VARCHAR2
347 ,p_balance_type_code OUT VARCHAR2
348 ,p_gain_or_loss_ref OUT VARCHAR2
349
350 --Purchasing Encumbrance Flag
351 , p_source_2 IN VARCHAR2
352 --Reserved Flag
353 , p_source_3 IN VARCHAR2
354 --Organization Encumbrance Reversal Indicator
355 , p_source_4 IN VARCHAR2
356 --Accounting Line Type
357 , p_source_6 IN NUMBER
358 --Applied to Application ID
359 , p_source_7 IN NUMBER
360 --Applied to Distribution Link Type
361 , p_source_8 IN VARCHAR2
362 --Applied to Entity Code
363 , p_source_9 IN VARCHAR2
364 --TXN_PO_DISTRIBUTION_ID
365 , p_source_10 IN NUMBER
366 --Applied To Purchase Document Identifier
367 , p_source_11 IN NUMBER
368 --DISTRIBUTION_IDENTIFIER
369 , p_source_12 IN NUMBER
370 --Distribution Type
371 , p_source_13 IN VARCHAR2
372 , p_source_13_meaning IN VARCHAR2
373 --PO Budget Account
374 , p_source_14 IN NUMBER
375 --Encumbrance Reversal Amount Entered
376 , p_source_15 IN NUMBER
377 --Entered Currency Code
378 , p_source_16 IN VARCHAR2
379 --Transaction Encumbrance Reversal Amount
380 , p_source_17 IN NUMBER
381 --Costing Encumbrance Upgrade Option
382 , p_source_18 IN VARCHAR2
383 --Purchasing Encumbrance Type Identifier
384 , p_source_19 IN NUMBER
385 )
386 IS
387
388 l_component_type VARCHAR2(80);
389 l_component_code VARCHAR2(30);
390 l_component_type_code VARCHAR2(1);
391 l_component_appl_id INTEGER;
392 l_amb_context_code VARCHAR2(30);
393 l_entity_code VARCHAR2(30);
394 l_event_class_code VARCHAR2(30);
395 l_ae_header_id NUMBER;
396 l_event_type_code VARCHAR2(30);
397 l_line_definition_code VARCHAR2(30);
398 l_line_definition_owner_code VARCHAR2(1);
399 --
400 -- adr variables
401 l_segment VARCHAR2(30);
402 l_ccid NUMBER;
403 l_adr_transaction_coa_id NUMBER;
404 l_adr_accounting_coa_id NUMBER;
405 l_adr_flexfield_segment_code VARCHAR2(30);
406 l_adr_flex_value_set_id NUMBER;
407 l_adr_value_type_code VARCHAR2(30);
408 l_adr_value_combination_id NUMBER;
409 l_adr_value_segment_code VARCHAR2(30);
410
411 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
412 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
413 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
414 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
415
416 -- 4262811 Variables ------------------------------------------------------------------------------------------
417 l_entered_amt_idx NUMBER;
418 l_accted_amt_idx NUMBER;
419 l_acc_rev_flag VARCHAR2(1);
420 l_accrual_line_num NUMBER;
421 l_tmp_amt NUMBER;
422 l_acc_rev_natural_side_code VARCHAR2(1);
423
424 l_num_entries NUMBER;
425 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
426 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
427 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
428 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
432 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
429 l_recog_line_1 NUMBER;
430 l_recog_line_2 NUMBER;
431
433 l_bflow_applied_to_amt NUMBER; -- 5132302
434 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
435
436 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
437
438 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
439 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
440
441 ---------------------------------------------------------------------------------------------------------------
442
443
444 --
445 -- bulk performance
446 --
447 l_balance_type_code VARCHAR2(1);
448 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
449 l_log_module VARCHAR2(240);
450
451 --
452 -- Upgrade strategy
453 --
454 l_actual_upg_option VARCHAR2(1);
455 l_enc_upg_option VARCHAR2(1);
456
457 --
458 BEGIN
459 --
460 IF g_log_enabled THEN
461 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_2';
462 END IF;
463 --
464 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
465
466 trace
467 (p_msg => 'BEGIN of AcctLineType_2'
468 ,p_level => C_LEVEL_PROCEDURE
469 ,p_module => l_log_module);
470
471 END IF;
472 --
473 l_component_type := 'AMB_JLT';
474 l_component_code := 'ADJUST_PO_ENC_DTI';
475 l_component_type_code := 'S';
476 l_component_appl_id := 707;
477 l_amb_context_code := 'DEFAULT';
478 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
479 l_event_class_code := 'PURCHASE_ORDER';
480 l_event_type_code := 'PURCHASE_ORDER_ALL';
481 l_line_definition_owner_code := 'S';
482 l_line_definition_code := 'PO_ENCUM_FOR_DEL_TO_INV';
483 --
484 l_balance_type_code := 'E';
485 l_segment := NULL;
486 l_ccid := NULL;
487 l_adr_transaction_coa_id := NULL;
488 l_adr_accounting_coa_id := NULL;
489 l_adr_flexfield_segment_code := NULL;
490 l_adr_flex_value_set_id := NULL;
491 l_adr_value_type_code := NULL;
492 l_adr_value_combination_id := NULL;
493 l_adr_value_segment_code := NULL;
494
495 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
496 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
497 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
498 l_budgetary_control_flag := 'Y';
499
500 l_bflow_applied_to_amt_idx := NULL; -- 5132302
501 l_bflow_applied_to_amt := NULL; -- 5132302
502 l_entered_amt_idx := NULL; -- 4262811
503 l_accted_amt_idx := NULL; -- 4262811
504 l_acc_rev_flag := NULL; -- 4262811
505 l_accrual_line_num := NULL; -- 4262811
506 l_tmp_amt := NULL; -- 4262811
507 --
508
509 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
510 l_balance_type_code <> 'B' THEN
511 IF NVL(p_source_2,'
512 ') = 'Y' AND
513 NVL(p_source_3,'
514 ') = 'Y' AND
515 NVL(p_source_4,'
516 ') = 'Y' AND
517 NVL(
518 xla_ae_sources_pkg.GetSystemSourceChar(
519 p_source_code => 'XLA_EVENT_TYPE_CODE'
520 , p_source_type_code => 'Y'
521 , p_source_application_id => 602
522 ),'
523 ') = 'PO_DEL_ADJ' AND
524 NVL(p_source_6,9E125) = 1
525 THEN
526
527 --
528 XLA_AE_LINES_PKG.SetNewLine;
529
530 p_balance_type_code := l_balance_type_code;
531 -- set the flag so later we will know whether the gain loss line needs to be created
532
533 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
534 p_actual_flag :='A';
535 END IF;
536
537 --
538 -- bulk performance
539 --
540 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
541 p_header_num => 0); -- 4262811
542 --
543 -- set accounting line options
544 --
545 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
546 p_natural_side_code => 'C'
547 , p_gain_or_loss_flag => 'N'
548 , p_gl_transfer_mode_code => 'S'
549 , p_acct_entry_type_code => 'E'
550 , p_switch_side_flag => 'Y'
551 , p_merge_duplicate_code => 'N'
552 );
553 --
554 l_acc_rev_natural_side_code := 'D'; -- 4262811
555 --
556 --
557 -- set accounting line type info
558 --
559 xla_ae_lines_pkg.SetAcctLineType
560 (p_component_type => l_component_type
561 ,p_event_type_code => l_event_type_code
562 ,p_line_definition_owner_code => l_line_definition_owner_code
563 ,p_line_definition_code => l_line_definition_code
564 ,p_accounting_line_code => l_component_code
568 ,p_entity_code => l_entity_code
565 ,p_accounting_line_type_code => l_component_type_code
566 ,p_accounting_line_appl_id => l_component_appl_id
567 ,p_amb_context_code => l_amb_context_code
569 ,p_event_class_code => l_event_class_code);
570 --
571 -- set accounting class
572 --
573 xla_ae_lines_pkg.SetAcctClass(
574 p_accounting_class_code => 'PURCHASE_ORDER'
575 , p_ae_header_id => l_ae_header_id
576 );
577
578 --
579 -- set rounding class
580 --
581 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
582 'PURCHASE_ORDER';
583
584 --
585 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
586 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
587 --
588 -- bulk performance
589 --
590 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
591
592 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
593 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
594
595 -- 4955764
596 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
597 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
598
599 -- 4458381 Public Sector Enh
600
601 --
602 -- set accounting attributes for the line type
603 --
604 l_entered_amt_idx := 17;
605 l_accted_amt_idx := 19;
606 l_bflow_applied_to_amt_idx := NULL; -- 5132302
607 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
608 l_rec_acct_attrs.array_num_value(1) := p_source_7;
609 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
610 l_rec_acct_attrs.array_char_value(2) := p_source_8;
611 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
612 l_rec_acct_attrs.array_char_value(3) := p_source_9;
613 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
614 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_10);
615 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
616 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_11);
617 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
618 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_12);
619 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
620 l_rec_acct_attrs.array_char_value(7) := p_source_13;
621 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
622 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_14);
623 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
624 l_rec_acct_attrs.array_num_value(9) := p_source_15;
625 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
626 l_rec_acct_attrs.array_char_value(10) := p_source_16;
627 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
628 l_rec_acct_attrs.array_num_value(11) := p_source_17;
629 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
630 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_14);
631 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
632 l_rec_acct_attrs.array_num_value(13) := p_source_15;
633 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
634 l_rec_acct_attrs.array_char_value(14) := p_source_16;
635 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
636 l_rec_acct_attrs.array_num_value(15) := p_source_17;
637 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
638 l_rec_acct_attrs.array_char_value(16) := p_source_18;
639 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
640 l_rec_acct_attrs.array_num_value(17) := p_source_15;
641 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
642 l_rec_acct_attrs.array_char_value(18) := p_source_16;
643 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
644 l_rec_acct_attrs.array_num_value(19) := p_source_17;
645 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
646 l_rec_acct_attrs.array_num_value(20) := p_source_19;
647 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
648 l_rec_acct_attrs.array_num_value(21) := p_source_19;
649
650 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
651 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
652
653 ---------------------------------------------------------------------------------------------------------------
654 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
655 ---------------------------------------------------------------------------------------------------------------
656 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
657
658 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
659 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
660
661 IF xla_accounting_cache_pkg.GetValueChar
662 (p_source_code => 'LEDGER_CATEGORY_CODE'
666 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
663 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
664 AND l_bflow_method_code = 'PRIOR_ENTRY'
665 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
667 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
668 )
669 THEN
670 xla_ae_lines_pkg.BflowUpgEntry
671 (p_business_method_code => l_bflow_method_code
672 ,p_business_class_code => l_bflow_class_code
673 ,p_balance_type => l_balance_type_code);
674 ELSE
675 NULL;
676 XLA_AE_LINES_PKG.business_flow_validation(
677 p_business_method_code => l_bflow_method_code
678 ,p_business_class_code => l_bflow_class_code
679 ,p_inherit_description_flag => l_inherit_desc_flag);
680 END IF;
681
682 --
683 -- call analytical criteria
684 --
685 -- Inherited Analytical Criteria for business flow method of Prior Entry.
686 --
687 -- call description
688 --
689 -- No description or it is inherited.
690 --
691 -- call ADRs
692 -- Bug 4922099
693 --
694 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
695 (NVL(l_actual_upg_option, 'N') = 'O') OR
696 (NVL(l_enc_upg_option, 'N') = 'O')
697 )
698 THEN
699 NULL;
700 --
701 --
702
703 --
704 --
705 END IF;
706 --
707 -- Bug 4922099
708 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
709 (NVL(l_enc_upg_option, 'N') = 'O')
710 ) AND
711 (l_bflow_method_code = 'PRIOR_ENTRY')
712 )
713 THEN
714 IF
715 --
716 1 = 1
717 --
718 THEN
719 xla_accounting_err_pkg.build_message
720 (p_appli_s_name => 'XLA'
721 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
722 ,p_token_1 => 'LINE_NUMBER'
723 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
724 ,p_token_2 => 'LINE_TYPE_NAME'
725 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
726 l_component_type
727 ,l_component_code
728 ,l_component_type_code
729 ,l_component_appl_id
730 ,l_amb_context_code
731 ,l_entity_code
732 ,l_event_class_code
733 )
734 ,p_token_3 => 'OWNER'
735 ,p_value_3 => xla_lookups_pkg.get_meaning(
736 p_lookup_type => 'XLA_OWNER_TYPE'
737 ,p_lookup_code => l_component_type_code
738 )
739 ,p_token_4 => 'PRODUCT_NAME'
740 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
741 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
742 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
743 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
744 ,p_ae_header_id => NULL
745 );
746
747 IF (C_LEVEL_ERROR>= g_log_level) THEN
748 trace
749 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
750 ,p_level => C_LEVEL_ERROR
751 ,p_module => l_log_module);
752 END IF;
753 END IF;
754 END IF;
755 --
756 --
757 ------------------------------------------------------------------------------------------------
758 -- 4219869 Business Flow
759 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
760 -- Prior Entry. Currently, the following code is always generated.
761 ------------------------------------------------------------------------------------------------
762 -- No ValidateCurrentLine for business flow method of Prior Entry
763
764 ------------------------------------------------------------------------------------
765 -- 4219869 Business Flow
766 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
770 ----------------------------------------------------------------------------------
767 ------------------------------------------------------------------------------------
768 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
769
771 -- 4219869 Business Flow
772 -- Update journal entry status -- Need to generate this within IF <condition>
773 ----------------------------------------------------------------------------------
774 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
775 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
776 ,p_balance_type_code => l_balance_type_code
777 );
778
779 -------------------------------------------------------------------------------------------
780 -- 4262811 - Generate the Accrual Reversal lines
781 -------------------------------------------------------------------------------------------
782 BEGIN
783 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
784 (g_array_event(p_event_id).array_value_num('header_index'));
785 IF l_acc_rev_flag IS NULL THEN
786 l_acc_rev_flag := 'N';
787 END IF;
788 EXCEPTION
789 WHEN OTHERS THEN
790 l_acc_rev_flag := 'N';
791 END;
792 --
793 IF (l_acc_rev_flag = 'Y') THEN
794
795 -- 4645092 ------------------------------------------------------------------------------
796 -- To allow MPA report to determine if it should generate report process
797 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
798 ------------------------------------------------------------------------------------------
799
800 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
801 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
802 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
803 -- call ADRs
804 -- Bug 4922099
805 --
806 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
807 (NVL(l_actual_upg_option, 'N') = 'O') OR
808 (NVL(l_enc_upg_option, 'N') = 'O')
809 )
810 THEN
811 NULL;
812 --
813 --
814
815 --
816 --
817 END IF;
818
819 --
820 -- Update the line information that should be overwritten
821 --
822 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
823 p_header_num => 1);
824 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
825
826 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
827
828 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
829 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
830 END IF;
831
832 --
833 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
834 --
835 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
836 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
837 ELSE
838 ---------------------------------------------------------------------------------------------------
839 -- 4262811a Switch Sign
840 ---------------------------------------------------------------------------------------------------
841 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
842 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
843 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
844 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
845 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
846 -- 5132302
847 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
848 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
849
850 END IF;
851
852 -- 4955764
853 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
854 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
855
856
857 XLA_AE_LINES_PKG.ValidateCurrentLine;
858 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
859
860 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
861 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
862 ,p_balance_type_code => l_balance_type_code);
863
864 END IF;
865
866 -----------------------------------------------------------------------------------------
867 -- 4262811 Multiperiod Accounting
868 -----------------------------------------------------------------------------------------
869 -- No MPA option is assigned.
870
871
872 END IF;
873 END IF;
874 --
875
876 --
877 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
878 trace
879 (p_msg => 'END of AcctLineType_2'
880 ,p_level => C_LEVEL_PROCEDURE
881 ,p_module => l_log_module);
882 END IF;
883 --
884 EXCEPTION
888 xla_exceptions_pkg.raise_message
885 WHEN xla_exceptions_pkg.application_exception THEN
886 RAISE;
887 WHEN OTHERS THEN
889 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.AcctLineType_2');
890 END AcctLineType_2;
891 --
892
893 ---------------------------------------
894 --
895 -- PRIVATE FUNCTION
896 -- AcctLineType_3
897 --
898 ---------------------------------------
899 PROCEDURE AcctLineType_3 (
900 p_application_id IN NUMBER
901 ,p_event_id IN NUMBER
902 ,p_calculate_acctd_flag IN VARCHAR2
903 ,p_calculate_g_l_flag IN VARCHAR2
904 ,p_actual_flag IN OUT VARCHAR2
905 ,p_balance_type_code OUT VARCHAR2
906 ,p_gain_or_loss_ref OUT VARCHAR2
907
908 --Cost Management Default Account
909 , p_source_1 IN NUMBER
910 --Accounting Line Type
911 , p_source_6 IN NUMBER
912 --DISTRIBUTION_IDENTIFIER
913 , p_source_12 IN NUMBER
914 --Distribution Type
915 , p_source_13 IN VARCHAR2
916 , p_source_13_meaning IN VARCHAR2
917 --Entered Currency Code
918 , p_source_16 IN VARCHAR2
919 --Entered Amount
920 , p_source_20 IN NUMBER
921 --Currency Conversion Date
922 , p_source_21 IN DATE
923 --Currency Conversion Rate
924 , p_source_22 IN NUMBER
925 --Currency Conversion Type
926 , p_source_23 IN VARCHAR2
927 --Accounted Amount
928 , p_source_24 IN NUMBER
929 )
930 IS
931
932 l_component_type VARCHAR2(80);
933 l_component_code VARCHAR2(30);
934 l_component_type_code VARCHAR2(1);
935 l_component_appl_id INTEGER;
936 l_amb_context_code VARCHAR2(30);
937 l_entity_code VARCHAR2(30);
938 l_event_class_code VARCHAR2(30);
939 l_ae_header_id NUMBER;
940 l_event_type_code VARCHAR2(30);
941 l_line_definition_code VARCHAR2(30);
942 l_line_definition_owner_code VARCHAR2(1);
943 --
944 -- adr variables
945 l_segment VARCHAR2(30);
946 l_ccid NUMBER;
947 l_adr_transaction_coa_id NUMBER;
948 l_adr_accounting_coa_id NUMBER;
949 l_adr_flexfield_segment_code VARCHAR2(30);
950 l_adr_flex_value_set_id NUMBER;
951 l_adr_value_type_code VARCHAR2(30);
952 l_adr_value_combination_id NUMBER;
953 l_adr_value_segment_code VARCHAR2(30);
954
955 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
956 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
957 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
958 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
959
960 -- 4262811 Variables ------------------------------------------------------------------------------------------
961 l_entered_amt_idx NUMBER;
962 l_accted_amt_idx NUMBER;
963 l_acc_rev_flag VARCHAR2(1);
964 l_accrual_line_num NUMBER;
965 l_tmp_amt NUMBER;
966 l_acc_rev_natural_side_code VARCHAR2(1);
967
968 l_num_entries NUMBER;
969 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
970 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
971 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
972 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
973 l_recog_line_1 NUMBER;
974 l_recog_line_2 NUMBER;
975
976 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
977 l_bflow_applied_to_amt NUMBER; -- 5132302
978 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
979
980 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
981
982 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
983 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
984
985 ---------------------------------------------------------------------------------------------------------------
986
987
988 --
989 -- bulk performance
990 --
991 l_balance_type_code VARCHAR2(1);
992 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
993 l_log_module VARCHAR2(240);
994
995 --
996 -- Upgrade strategy
997 --
998 l_actual_upg_option VARCHAR2(1);
999 l_enc_upg_option VARCHAR2(1);
1000
1001 --
1002 BEGIN
1003 --
1004 IF g_log_enabled THEN
1005 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_3';
1006 END IF;
1007 --
1008 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1009
1010 trace
1011 (p_msg => 'BEGIN of AcctLineType_3'
1012 ,p_level => C_LEVEL_PROCEDURE
1013 ,p_module => l_log_module);
1014
1015 END IF;
1016 --
1017 l_component_type := 'AMB_JLT';
1018 l_component_code := 'INTERNAL_ORDER_ENC_RELIEVE';
1019 l_component_type_code := 'S';
1020 l_component_appl_id := 707;
1024 l_event_type_code := 'INT_ORDER_TO_EXP_ALL';
1021 l_amb_context_code := 'DEFAULT';
1022 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
1023 l_event_class_code := 'INT_ORDER_TO_EXP';
1025 l_line_definition_owner_code := 'S';
1026 l_line_definition_code := 'INTERNAL_ORDER_ENC_RELIEVE';
1027 --
1028 l_balance_type_code := 'E';
1029 l_segment := NULL;
1030 l_ccid := NULL;
1031 l_adr_transaction_coa_id := NULL;
1032 l_adr_accounting_coa_id := NULL;
1033 l_adr_flexfield_segment_code := NULL;
1034 l_adr_flex_value_set_id := NULL;
1035 l_adr_value_type_code := NULL;
1036 l_adr_value_combination_id := NULL;
1037 l_adr_value_segment_code := NULL;
1038
1039 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
1040 l_bflow_class_code := ''; -- 4219869 Business Flow
1041 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
1042 l_budgetary_control_flag := 'Y';
1043
1044 l_bflow_applied_to_amt_idx := NULL; -- 5132302
1045 l_bflow_applied_to_amt := NULL; -- 5132302
1046 l_entered_amt_idx := NULL; -- 4262811
1047 l_accted_amt_idx := NULL; -- 4262811
1048 l_acc_rev_flag := NULL; -- 4262811
1049 l_accrual_line_num := NULL; -- 4262811
1050 l_tmp_amt := NULL; -- 4262811
1051 --
1052
1053 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
1054 l_balance_type_code <> 'B' THEN
1055 IF NVL(p_source_6,9E125) = 15
1056 THEN
1057
1058 --
1059 XLA_AE_LINES_PKG.SetNewLine;
1060
1061 p_balance_type_code := l_balance_type_code;
1062 -- set the flag so later we will know whether the gain loss line needs to be created
1063
1064 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
1065 p_actual_flag :='A';
1066 END IF;
1067
1068 --
1069 -- bulk performance
1070 --
1071 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
1072 p_header_num => 0); -- 4262811
1073 --
1074 -- set accounting line options
1075 --
1076 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
1077 p_natural_side_code => 'D'
1078 , p_gain_or_loss_flag => 'N'
1079 , p_gl_transfer_mode_code => 'S'
1080 , p_acct_entry_type_code => 'E'
1081 , p_switch_side_flag => 'Y'
1082 , p_merge_duplicate_code => 'N'
1083 );
1084 --
1085 l_acc_rev_natural_side_code := 'C'; -- 4262811
1086 --
1087 --
1088 -- set accounting line type info
1089 --
1090 xla_ae_lines_pkg.SetAcctLineType
1091 (p_component_type => l_component_type
1092 ,p_event_type_code => l_event_type_code
1093 ,p_line_definition_owner_code => l_line_definition_owner_code
1094 ,p_line_definition_code => l_line_definition_code
1095 ,p_accounting_line_code => l_component_code
1096 ,p_accounting_line_type_code => l_component_type_code
1097 ,p_accounting_line_appl_id => l_component_appl_id
1098 ,p_amb_context_code => l_amb_context_code
1099 ,p_entity_code => l_entity_code
1100 ,p_event_class_code => l_event_class_code);
1101 --
1102 -- set accounting class
1103 --
1104 xla_ae_lines_pkg.SetAcctClass(
1105 p_accounting_class_code => 'REQUISITION'
1106 , p_ae_header_id => l_ae_header_id
1107 );
1108
1109 --
1110 -- set rounding class
1111 --
1112 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
1113 'REQUISITION';
1114
1115 --
1116 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
1117 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
1118 --
1119 -- bulk performance
1120 --
1121 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
1122
1123 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
1124 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
1125
1126 -- 4955764
1127 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
1128 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
1129
1130 -- 4458381 Public Sector Enh
1131 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
1132 --
1133 -- set accounting attributes for the line type
1134 --
1135 l_entered_amt_idx := 3;
1136 l_accted_amt_idx := 8;
1137 l_bflow_applied_to_amt_idx := NULL; -- 5132302
1138 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
1139 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_12);
1140 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
1141 l_rec_acct_attrs.array_char_value(2) := p_source_13;
1142 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
1143 l_rec_acct_attrs.array_num_value(3) := p_source_20;
1147 l_rec_acct_attrs.array_date_value(5) := p_source_21;
1144 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
1145 l_rec_acct_attrs.array_char_value(4) := p_source_16;
1146 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
1148 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
1149 l_rec_acct_attrs.array_num_value(6) := p_source_22;
1150 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
1151 l_rec_acct_attrs.array_char_value(7) := p_source_23;
1152 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
1153 l_rec_acct_attrs.array_num_value(8) := p_source_24;
1154
1155 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
1156 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
1157
1158 ---------------------------------------------------------------------------------------------------------------
1159 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
1160 ---------------------------------------------------------------------------------------------------------------
1161 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
1162
1163 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
1164 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
1165
1166 IF xla_accounting_cache_pkg.GetValueChar
1167 (p_source_code => 'LEDGER_CATEGORY_CODE'
1168 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
1169 AND l_bflow_method_code = 'PRIOR_ENTRY'
1170 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
1171 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
1172 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
1173 )
1174 THEN
1175 xla_ae_lines_pkg.BflowUpgEntry
1176 (p_business_method_code => l_bflow_method_code
1177 ,p_business_class_code => l_bflow_class_code
1178 ,p_balance_type => l_balance_type_code);
1179 ELSE
1180 NULL;
1181 -- No business flow processing for business flow method of NONE.
1182 END IF;
1183
1184 --
1185 -- call analytical criteria
1186 --
1187
1188 --
1189 -- call description
1190 --
1191 -- No description or it is inherited.
1192 --
1193 -- call ADRs
1194 -- Bug 4922099
1195 --
1196 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
1197 (NVL(l_actual_upg_option, 'N') = 'O') OR
1198 (NVL(l_enc_upg_option, 'N') = 'O')
1199 )
1200 THEN
1201 NULL;
1202 --
1203 --
1204
1205 l_ccid := AcctDerRule_1(
1206 p_application_id => p_application_id
1207 , p_ae_header_id => l_ae_header_id
1208 , p_source_1 => p_source_1
1209 , x_transaction_coa_id => l_adr_transaction_coa_id
1210 , x_accounting_coa_id => l_adr_accounting_coa_id
1211 , x_value_type_code => l_adr_value_type_code
1212 , p_side => 'NA'
1213 );
1214
1215 xla_ae_lines_pkg.set_ccid(
1216 p_code_combination_id => l_ccid
1217 , p_value_type_code => l_adr_value_type_code
1218 , p_transaction_coa_id => l_adr_transaction_coa_id
1219 , p_accounting_coa_id => l_adr_accounting_coa_id
1220 , p_adr_code => 'CST_DEFAULT'
1221 , p_adr_type_code => 'S'
1222 , p_component_type => l_component_type
1223 , p_component_code => l_component_code
1224 , p_component_type_code => l_component_type_code
1225 , p_component_appl_id => l_component_appl_id
1226 , p_amb_context_code => l_amb_context_code
1227 , p_side => 'NA'
1228 );
1229
1230
1231 --
1232 --
1233 END IF;
1234 --
1235 -- Bug 4922099
1236 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
1237 (NVL(l_enc_upg_option, 'N') = 'O')
1238 ) AND
1239 (l_bflow_method_code = 'PRIOR_ENTRY')
1240 )
1241 THEN
1242 IF
1243 --
1244 1 = 2
1245 --
1246 THEN
1247 xla_accounting_err_pkg.build_message
1248 (p_appli_s_name => 'XLA'
1249 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
1250 ,p_token_1 => 'LINE_NUMBER'
1251 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
1252 ,p_token_2 => 'LINE_TYPE_NAME'
1253 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
1254 l_component_type
1255 ,l_component_code
1256 ,l_component_type_code
1257 ,l_component_appl_id
1258 ,l_amb_context_code
1262 ,p_token_3 => 'OWNER'
1259 ,l_entity_code
1260 ,l_event_class_code
1261 )
1263 ,p_value_3 => xla_lookups_pkg.get_meaning(
1264 p_lookup_type => 'XLA_OWNER_TYPE'
1265 ,p_lookup_code => l_component_type_code
1266 )
1267 ,p_token_4 => 'PRODUCT_NAME'
1268 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
1269 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
1270 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
1271 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
1272 ,p_ae_header_id => NULL
1273 );
1274
1275 IF (C_LEVEL_ERROR>= g_log_level) THEN
1276 trace
1277 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
1278 ,p_level => C_LEVEL_ERROR
1279 ,p_module => l_log_module);
1280 END IF;
1281 END IF;
1282 END IF;
1283 --
1284 --
1285 ------------------------------------------------------------------------------------------------
1286 -- 4219869 Business Flow
1287 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
1288 -- Prior Entry. Currently, the following code is always generated.
1289 ------------------------------------------------------------------------------------------------
1290 XLA_AE_LINES_PKG.ValidateCurrentLine;
1291
1292 ------------------------------------------------------------------------------------
1293 -- 4219869 Business Flow
1294 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
1295 ------------------------------------------------------------------------------------
1296 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
1297
1298 ----------------------------------------------------------------------------------
1299 -- 4219869 Business Flow
1300 -- Update journal entry status -- Need to generate this within IF <condition>
1301 ----------------------------------------------------------------------------------
1302 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
1303 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
1304 ,p_balance_type_code => l_balance_type_code
1305 );
1306
1307 -------------------------------------------------------------------------------------------
1308 -- 4262811 - Generate the Accrual Reversal lines
1309 -------------------------------------------------------------------------------------------
1310 BEGIN
1311 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
1312 (g_array_event(p_event_id).array_value_num('header_index'));
1313 IF l_acc_rev_flag IS NULL THEN
1314 l_acc_rev_flag := 'N';
1315 END IF;
1316 EXCEPTION
1317 WHEN OTHERS THEN
1318 l_acc_rev_flag := 'N';
1319 END;
1320 --
1321 IF (l_acc_rev_flag = 'Y') THEN
1322
1323 -- 4645092 ------------------------------------------------------------------------------
1324 -- To allow MPA report to determine if it should generate report process
1325 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
1326 ------------------------------------------------------------------------------------------
1327
1328 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
1329 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
1330 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
1331 -- call ADRs
1332 -- Bug 4922099
1333 --
1334 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
1335 (NVL(l_actual_upg_option, 'N') = 'O') OR
1336 (NVL(l_enc_upg_option, 'N') = 'O')
1337 )
1338 THEN
1339 NULL;
1340 --
1341 --
1342
1343 l_ccid := AcctDerRule_1(
1344 p_application_id => p_application_id
1345 , p_ae_header_id => l_ae_header_id
1346 , p_source_1 => p_source_1
1347 , x_transaction_coa_id => l_adr_transaction_coa_id
1348 , x_accounting_coa_id => l_adr_accounting_coa_id
1349 , x_value_type_code => l_adr_value_type_code
1350 , p_side => 'NA'
1351 );
1352
1353 xla_ae_lines_pkg.set_ccid(
1354 p_code_combination_id => l_ccid
1355 , p_value_type_code => l_adr_value_type_code
1356 , p_transaction_coa_id => l_adr_transaction_coa_id
1357 , p_accounting_coa_id => l_adr_accounting_coa_id
1358 , p_adr_code => 'CST_DEFAULT'
1359 , p_adr_type_code => 'S'
1363 , p_component_appl_id => l_component_appl_id
1360 , p_component_type => l_component_type
1361 , p_component_code => l_component_code
1362 , p_component_type_code => l_component_type_code
1364 , p_amb_context_code => l_amb_context_code
1365 , p_side => 'NA'
1366 );
1367
1368
1369 --
1370 --
1371 END IF;
1372
1373 --
1374 -- Update the line information that should be overwritten
1375 --
1376 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
1377 p_header_num => 1);
1378 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
1379
1380 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
1381
1382 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
1383 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
1384 END IF;
1385
1386 --
1387 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
1388 --
1389 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
1390 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
1391 ELSE
1392 ---------------------------------------------------------------------------------------------------
1393 -- 4262811a Switch Sign
1394 ---------------------------------------------------------------------------------------------------
1395 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
1396 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
1397 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1398 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
1399 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1400 -- 5132302
1401 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
1402 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1403
1404 END IF;
1405
1406 -- 4955764
1407 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
1408 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
1409
1410
1411 XLA_AE_LINES_PKG.ValidateCurrentLine;
1412 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
1413
1414 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
1415 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
1416 ,p_balance_type_code => l_balance_type_code);
1417
1418 END IF;
1419
1420 -----------------------------------------------------------------------------------------
1421 -- 4262811 Multiperiod Accounting
1422 -----------------------------------------------------------------------------------------
1423 -- No MPA option is assigned.
1424
1425
1426 END IF;
1427 END IF;
1428 --
1429
1430 --
1431 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1432 trace
1433 (p_msg => 'END of AcctLineType_3'
1434 ,p_level => C_LEVEL_PROCEDURE
1435 ,p_module => l_log_module);
1436 END IF;
1437 --
1438 EXCEPTION
1439 WHEN xla_exceptions_pkg.application_exception THEN
1440 RAISE;
1441 WHEN OTHERS THEN
1442 xla_exceptions_pkg.raise_message
1443 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.AcctLineType_3');
1444 END AcctLineType_3;
1445 --
1446
1447 ---------------------------------------
1448 --
1449 -- PRIVATE FUNCTION
1450 -- AcctLineType_4
1451 --
1452 ---------------------------------------
1453 PROCEDURE AcctLineType_4 (
1454 p_application_id IN NUMBER
1455 ,p_event_id IN NUMBER
1456 ,p_calculate_acctd_flag IN VARCHAR2
1457 ,p_calculate_g_l_flag IN VARCHAR2
1458 ,p_actual_flag IN OUT VARCHAR2
1459 ,p_balance_type_code OUT VARCHAR2
1460 ,p_gain_or_loss_ref OUT VARCHAR2
1461
1462 --Purchasing Encumbrance Flag
1463 , p_source_2 IN VARCHAR2
1464 --Organization Encumbrance Reversal Indicator
1465 , p_source_4 IN VARCHAR2
1466 --Applied to Application ID
1467 , p_source_7 IN NUMBER
1468 --Applied to Distribution Link Type
1469 , p_source_8 IN VARCHAR2
1470 --Applied to Entity Code
1471 , p_source_9 IN VARCHAR2
1472 --TXN_PO_DISTRIBUTION_ID
1473 , p_source_10 IN NUMBER
1474 --Applied To Purchase Document Identifier
1475 , p_source_11 IN NUMBER
1476 --DISTRIBUTION_IDENTIFIER
1477 , p_source_12 IN NUMBER
1478 --Distribution Type
1479 , p_source_13 IN VARCHAR2
1480 , p_source_13_meaning IN VARCHAR2
1481 --PO Budget Account
1482 , p_source_14 IN NUMBER
1483 --Encumbrance Reversal Amount Entered
1484 , p_source_15 IN NUMBER
1485 --Entered Currency Code
1486 , p_source_16 IN VARCHAR2
1490 , p_source_18 IN VARCHAR2
1487 --Transaction Encumbrance Reversal Amount
1488 , p_source_17 IN NUMBER
1489 --Costing Encumbrance Upgrade Option
1491 --Purchasing Encumbrance Type Identifier
1492 , p_source_19 IN NUMBER
1493 )
1494 IS
1495
1496 l_component_type VARCHAR2(80);
1497 l_component_code VARCHAR2(30);
1498 l_component_type_code VARCHAR2(1);
1499 l_component_appl_id INTEGER;
1500 l_amb_context_code VARCHAR2(30);
1501 l_entity_code VARCHAR2(30);
1502 l_event_class_code VARCHAR2(30);
1503 l_ae_header_id NUMBER;
1504 l_event_type_code VARCHAR2(30);
1505 l_line_definition_code VARCHAR2(30);
1506 l_line_definition_owner_code VARCHAR2(1);
1507 --
1508 -- adr variables
1509 l_segment VARCHAR2(30);
1510 l_ccid NUMBER;
1511 l_adr_transaction_coa_id NUMBER;
1512 l_adr_accounting_coa_id NUMBER;
1513 l_adr_flexfield_segment_code VARCHAR2(30);
1514 l_adr_flex_value_set_id NUMBER;
1515 l_adr_value_type_code VARCHAR2(30);
1516 l_adr_value_combination_id NUMBER;
1517 l_adr_value_segment_code VARCHAR2(30);
1518
1519 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
1520 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
1521 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
1522 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
1523
1524 -- 4262811 Variables ------------------------------------------------------------------------------------------
1525 l_entered_amt_idx NUMBER;
1526 l_accted_amt_idx NUMBER;
1527 l_acc_rev_flag VARCHAR2(1);
1528 l_accrual_line_num NUMBER;
1529 l_tmp_amt NUMBER;
1530 l_acc_rev_natural_side_code VARCHAR2(1);
1531
1532 l_num_entries NUMBER;
1533 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
1534 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
1535 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
1536 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
1537 l_recog_line_1 NUMBER;
1538 l_recog_line_2 NUMBER;
1539
1540 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
1541 l_bflow_applied_to_amt NUMBER; -- 5132302
1542 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
1543
1544 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
1545
1546 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
1547 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
1548
1549 ---------------------------------------------------------------------------------------------------------------
1550
1551
1552 --
1553 -- bulk performance
1554 --
1555 l_balance_type_code VARCHAR2(1);
1556 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
1557 l_log_module VARCHAR2(240);
1558
1559 --
1560 -- Upgrade strategy
1561 --
1562 l_actual_upg_option VARCHAR2(1);
1563 l_enc_upg_option VARCHAR2(1);
1564
1565 --
1566 BEGIN
1567 --
1568 IF g_log_enabled THEN
1569 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_4';
1570 END IF;
1571 --
1572 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1573
1574 trace
1575 (p_msg => 'BEGIN of AcctLineType_4'
1576 ,p_level => C_LEVEL_PROCEDURE
1577 ,p_module => l_log_module);
1578
1579 END IF;
1580 --
1581 l_component_type := 'AMB_JLT';
1582 l_component_code := 'REINSTATE_PO_ENC_ON_RFI';
1583 l_component_type_code := 'S';
1584 l_component_appl_id := 707;
1585 l_amb_context_code := 'DEFAULT';
1586 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
1587 l_event_class_code := 'PURCHASE_ORDER';
1588 l_event_type_code := 'PURCHASE_ORDER_ALL';
1589 l_line_definition_owner_code := 'S';
1590 l_line_definition_code := 'PO_ENCUM_FOR_DEL_TO_INV';
1591 --
1592 l_balance_type_code := 'E';
1593 l_segment := NULL;
1594 l_ccid := NULL;
1595 l_adr_transaction_coa_id := NULL;
1596 l_adr_accounting_coa_id := NULL;
1597 l_adr_flexfield_segment_code := NULL;
1598 l_adr_flex_value_set_id := NULL;
1599 l_adr_value_type_code := NULL;
1600 l_adr_value_combination_id := NULL;
1601 l_adr_value_segment_code := NULL;
1602
1603 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
1604 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
1605 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
1606 l_budgetary_control_flag := 'Y';
1607
1608 l_bflow_applied_to_amt_idx := NULL; -- 5132302
1609 l_bflow_applied_to_amt := NULL; -- 5132302
1610 l_entered_amt_idx := NULL; -- 4262811
1611 l_accted_amt_idx := NULL; -- 4262811
1615 --
1612 l_acc_rev_flag := NULL; -- 4262811
1613 l_accrual_line_num := NULL; -- 4262811
1614 l_tmp_amt := NULL; -- 4262811
1616
1617 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
1618 l_balance_type_code <> 'B' THEN
1619 IF NVL(p_source_2,'
1620 ') = 'Y' AND
1621 NVL(p_source_4,'
1622 ') = 'Y' AND
1623 NVL(
1624 xla_ae_sources_pkg.GetSystemSourceChar(
1625 p_source_code => 'XLA_EVENT_TYPE_CODE'
1626 , p_source_type_code => 'Y'
1627 , p_source_application_id => 602
1628 ),'
1629 ') = 'RET_RI_INV'
1630 THEN
1631
1632 --
1633 XLA_AE_LINES_PKG.SetNewLine;
1634
1635 p_balance_type_code := l_balance_type_code;
1636 -- set the flag so later we will know whether the gain loss line needs to be created
1637
1638 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
1639 p_actual_flag :='A';
1640 END IF;
1641
1642 --
1643 -- bulk performance
1644 --
1645 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
1646 p_header_num => 0); -- 4262811
1647 --
1648 -- set accounting line options
1649 --
1650 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
1651 p_natural_side_code => 'D'
1652 , p_gain_or_loss_flag => 'N'
1653 , p_gl_transfer_mode_code => 'S'
1654 , p_acct_entry_type_code => 'E'
1655 , p_switch_side_flag => 'N'
1656 , p_merge_duplicate_code => 'N'
1657 );
1658 --
1659 l_acc_rev_natural_side_code := 'C'; -- 4262811
1660 --
1661 --
1662 -- set accounting line type info
1663 --
1664 xla_ae_lines_pkg.SetAcctLineType
1665 (p_component_type => l_component_type
1666 ,p_event_type_code => l_event_type_code
1667 ,p_line_definition_owner_code => l_line_definition_owner_code
1668 ,p_line_definition_code => l_line_definition_code
1669 ,p_accounting_line_code => l_component_code
1670 ,p_accounting_line_type_code => l_component_type_code
1671 ,p_accounting_line_appl_id => l_component_appl_id
1672 ,p_amb_context_code => l_amb_context_code
1673 ,p_entity_code => l_entity_code
1674 ,p_event_class_code => l_event_class_code);
1675 --
1676 -- set accounting class
1677 --
1678 xla_ae_lines_pkg.SetAcctClass(
1679 p_accounting_class_code => 'PURCHASE_ORDER'
1680 , p_ae_header_id => l_ae_header_id
1681 );
1682
1683 --
1684 -- set rounding class
1685 --
1686 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
1687 'PURCHASE_ORDER';
1688
1689 --
1690 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
1691 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
1692 --
1693 -- bulk performance
1694 --
1695 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
1696
1697 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
1698 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
1699
1700 -- 4955764
1701 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
1702 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
1703
1704 -- 4458381 Public Sector Enh
1705
1706 --
1707 -- set accounting attributes for the line type
1708 --
1709 l_entered_amt_idx := 17;
1710 l_accted_amt_idx := 19;
1711 l_bflow_applied_to_amt_idx := NULL; -- 5132302
1712 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
1713 l_rec_acct_attrs.array_num_value(1) := p_source_7;
1714 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
1715 l_rec_acct_attrs.array_char_value(2) := p_source_8;
1716 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
1717 l_rec_acct_attrs.array_char_value(3) := p_source_9;
1718 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
1719 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_10);
1720 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
1721 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_11);
1722 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
1723 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_12);
1724 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
1725 l_rec_acct_attrs.array_char_value(7) := p_source_13;
1726 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
1727 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_14);
1728 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
1729 l_rec_acct_attrs.array_num_value(9) := p_source_15;
1730 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
1731 l_rec_acct_attrs.array_char_value(10) := p_source_16;
1732 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
1733 l_rec_acct_attrs.array_num_value(11) := p_source_17;
1737 l_rec_acct_attrs.array_num_value(13) := p_source_15;
1734 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
1735 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_14);
1736 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
1738 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
1739 l_rec_acct_attrs.array_char_value(14) := p_source_16;
1740 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
1741 l_rec_acct_attrs.array_num_value(15) := p_source_17;
1742 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
1743 l_rec_acct_attrs.array_char_value(16) := p_source_18;
1744 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
1745 l_rec_acct_attrs.array_num_value(17) := p_source_15;
1746 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
1747 l_rec_acct_attrs.array_char_value(18) := p_source_16;
1748 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
1749 l_rec_acct_attrs.array_num_value(19) := p_source_17;
1750 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
1751 l_rec_acct_attrs.array_num_value(20) := p_source_19;
1752 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
1753 l_rec_acct_attrs.array_num_value(21) := p_source_19;
1754
1755 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
1756 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
1757
1758 ---------------------------------------------------------------------------------------------------------------
1759 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
1760 ---------------------------------------------------------------------------------------------------------------
1761 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
1762
1763 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
1764 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
1765
1766 IF xla_accounting_cache_pkg.GetValueChar
1767 (p_source_code => 'LEDGER_CATEGORY_CODE'
1768 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
1769 AND l_bflow_method_code = 'PRIOR_ENTRY'
1770 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
1771 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
1772 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
1773 )
1774 THEN
1775 xla_ae_lines_pkg.BflowUpgEntry
1776 (p_business_method_code => l_bflow_method_code
1777 ,p_business_class_code => l_bflow_class_code
1778 ,p_balance_type => l_balance_type_code);
1779 ELSE
1780 NULL;
1781 XLA_AE_LINES_PKG.business_flow_validation(
1782 p_business_method_code => l_bflow_method_code
1783 ,p_business_class_code => l_bflow_class_code
1784 ,p_inherit_description_flag => l_inherit_desc_flag);
1785 END IF;
1786
1787 --
1788 -- call analytical criteria
1789 --
1790 -- Inherited Analytical Criteria for business flow method of Prior Entry.
1791 --
1792 -- call description
1793 --
1794 -- No description or it is inherited.
1795 --
1796 -- call ADRs
1797 -- Bug 4922099
1798 --
1799 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
1800 (NVL(l_actual_upg_option, 'N') = 'O') OR
1801 (NVL(l_enc_upg_option, 'N') = 'O')
1802 )
1803 THEN
1804 NULL;
1805 --
1806 --
1807
1808 --
1809 --
1810 END IF;
1811 --
1812 -- Bug 4922099
1813 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
1814 (NVL(l_enc_upg_option, 'N') = 'O')
1815 ) AND
1816 (l_bflow_method_code = 'PRIOR_ENTRY')
1817 )
1818 THEN
1819 IF
1820 --
1821 1 = 1
1822 --
1823 THEN
1824 xla_accounting_err_pkg.build_message
1825 (p_appli_s_name => 'XLA'
1826 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
1827 ,p_token_1 => 'LINE_NUMBER'
1828 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
1829 ,p_token_2 => 'LINE_TYPE_NAME'
1830 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
1831 l_component_type
1832 ,l_component_code
1833 ,l_component_type_code
1834 ,l_component_appl_id
1835 ,l_amb_context_code
1836 ,l_entity_code
1837 ,l_event_class_code
1841 p_lookup_type => 'XLA_OWNER_TYPE'
1838 )
1839 ,p_token_3 => 'OWNER'
1840 ,p_value_3 => xla_lookups_pkg.get_meaning(
1842 ,p_lookup_code => l_component_type_code
1843 )
1844 ,p_token_4 => 'PRODUCT_NAME'
1845 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
1846 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
1847 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
1848 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
1849 ,p_ae_header_id => NULL
1850 );
1851
1852 IF (C_LEVEL_ERROR>= g_log_level) THEN
1853 trace
1854 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
1855 ,p_level => C_LEVEL_ERROR
1856 ,p_module => l_log_module);
1857 END IF;
1858 END IF;
1859 END IF;
1860 --
1861 --
1862 ------------------------------------------------------------------------------------------------
1863 -- 4219869 Business Flow
1864 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
1865 -- Prior Entry. Currently, the following code is always generated.
1866 ------------------------------------------------------------------------------------------------
1867 -- No ValidateCurrentLine for business flow method of Prior Entry
1868
1869 ------------------------------------------------------------------------------------
1870 -- 4219869 Business Flow
1871 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
1872 ------------------------------------------------------------------------------------
1873 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
1874
1875 ----------------------------------------------------------------------------------
1876 -- 4219869 Business Flow
1877 -- Update journal entry status -- Need to generate this within IF <condition>
1878 ----------------------------------------------------------------------------------
1879 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
1880 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
1881 ,p_balance_type_code => l_balance_type_code
1882 );
1883
1884 -------------------------------------------------------------------------------------------
1885 -- 4262811 - Generate the Accrual Reversal lines
1886 -------------------------------------------------------------------------------------------
1887 BEGIN
1888 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
1889 (g_array_event(p_event_id).array_value_num('header_index'));
1890 IF l_acc_rev_flag IS NULL THEN
1891 l_acc_rev_flag := 'N';
1892 END IF;
1893 EXCEPTION
1894 WHEN OTHERS THEN
1895 l_acc_rev_flag := 'N';
1896 END;
1897 --
1898 IF (l_acc_rev_flag = 'Y') THEN
1899
1900 -- 4645092 ------------------------------------------------------------------------------
1901 -- To allow MPA report to determine if it should generate report process
1902 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
1903 ------------------------------------------------------------------------------------------
1904
1905 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
1906 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
1907 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
1908 -- call ADRs
1909 -- Bug 4922099
1910 --
1911 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
1912 (NVL(l_actual_upg_option, 'N') = 'O') OR
1913 (NVL(l_enc_upg_option, 'N') = 'O')
1914 )
1915 THEN
1916 NULL;
1917 --
1918 --
1919
1920 --
1921 --
1922 END IF;
1923
1924 --
1925 -- Update the line information that should be overwritten
1926 --
1927 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
1928 p_header_num => 1);
1929 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
1930
1931 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
1932
1933 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
1934 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
1935 END IF;
1936
1937 --
1938 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
1939 --
1940 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
1941 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
1942 ELSE
1946 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
1943 ---------------------------------------------------------------------------------------------------
1944 -- 4262811a Switch Sign
1945 ---------------------------------------------------------------------------------------------------
1947 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
1948 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1949 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
1950 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1951 -- 5132302
1952 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
1953 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1954
1955 END IF;
1956
1957 -- 4955764
1958 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
1959 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
1960
1961
1962 XLA_AE_LINES_PKG.ValidateCurrentLine;
1963 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
1964
1965 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
1966 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
1967 ,p_balance_type_code => l_balance_type_code);
1968
1969 END IF;
1970
1971 -----------------------------------------------------------------------------------------
1972 -- 4262811 Multiperiod Accounting
1973 -----------------------------------------------------------------------------------------
1974 -- No MPA option is assigned.
1975
1976
1977 END IF;
1978 END IF;
1979 --
1980
1981 --
1982 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1983 trace
1984 (p_msg => 'END of AcctLineType_4'
1985 ,p_level => C_LEVEL_PROCEDURE
1986 ,p_module => l_log_module);
1987 END IF;
1988 --
1989 EXCEPTION
1990 WHEN xla_exceptions_pkg.application_exception THEN
1991 RAISE;
1992 WHEN OTHERS THEN
1993 xla_exceptions_pkg.raise_message
1994 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.AcctLineType_4');
1995 END AcctLineType_4;
1996 --
1997
1998 ---------------------------------------
1999 --
2000 -- PRIVATE FUNCTION
2001 -- AcctLineType_5
2002 --
2003 ---------------------------------------
2004 PROCEDURE AcctLineType_5 (
2005 p_application_id IN NUMBER
2006 ,p_event_id IN NUMBER
2007 ,p_calculate_acctd_flag IN VARCHAR2
2008 ,p_calculate_g_l_flag IN VARCHAR2
2009 ,p_actual_flag IN OUT VARCHAR2
2010 ,p_balance_type_code OUT VARCHAR2
2011 ,p_gain_or_loss_ref OUT VARCHAR2
2012
2013 --Purchasing Encumbrance Flag
2014 , p_source_2 IN VARCHAR2
2015 --Applied to Application ID
2016 , p_source_7 IN NUMBER
2017 --Applied to Distribution Link Type
2018 , p_source_8 IN VARCHAR2
2019 --Applied to Entity Code
2020 , p_source_9 IN VARCHAR2
2021 --Applied To Purchase Document Identifier
2022 , p_source_11 IN NUMBER
2023 --DISTRIBUTION_IDENTIFIER
2024 , p_source_12 IN NUMBER
2025 --Distribution Type
2026 , p_source_13 IN VARCHAR2
2027 , p_source_13_meaning IN VARCHAR2
2028 --PO Budget Account
2029 , p_source_14 IN NUMBER
2030 --Encumbrance Reversal Amount Entered
2031 , p_source_15 IN NUMBER
2032 --Entered Currency Code
2033 , p_source_16 IN VARCHAR2
2034 --Transaction Encumbrance Reversal Amount
2035 , p_source_17 IN NUMBER
2036 --Costing Encumbrance Upgrade Option
2037 , p_source_18 IN VARCHAR2
2038 --Purchasing Encumbrance Type Identifier
2039 , p_source_19 IN NUMBER
2040 --Receiving Accounting Line Type
2041 , p_source_25 IN VARCHAR2
2042 --PO_DISTRIBUTION_ID
2043 , p_source_26 IN NUMBER
2044 )
2045 IS
2046
2047 l_component_type VARCHAR2(80);
2048 l_component_code VARCHAR2(30);
2049 l_component_type_code VARCHAR2(1);
2050 l_component_appl_id INTEGER;
2051 l_amb_context_code VARCHAR2(30);
2052 l_entity_code VARCHAR2(30);
2053 l_event_class_code VARCHAR2(30);
2054 l_ae_header_id NUMBER;
2055 l_event_type_code VARCHAR2(30);
2056 l_line_definition_code VARCHAR2(30);
2057 l_line_definition_owner_code VARCHAR2(1);
2058 --
2059 -- adr variables
2060 l_segment VARCHAR2(30);
2061 l_ccid NUMBER;
2062 l_adr_transaction_coa_id NUMBER;
2063 l_adr_accounting_coa_id NUMBER;
2064 l_adr_flexfield_segment_code VARCHAR2(30);
2065 l_adr_flex_value_set_id NUMBER;
2066 l_adr_value_type_code VARCHAR2(30);
2067 l_adr_value_combination_id NUMBER;
2068 l_adr_value_segment_code VARCHAR2(30);
2069
2070 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
2071 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
2075 -- 4262811 Variables ------------------------------------------------------------------------------------------
2072 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
2073 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
2074
2076 l_entered_amt_idx NUMBER;
2077 l_accted_amt_idx NUMBER;
2078 l_acc_rev_flag VARCHAR2(1);
2079 l_accrual_line_num NUMBER;
2080 l_tmp_amt NUMBER;
2081 l_acc_rev_natural_side_code VARCHAR2(1);
2082
2083 l_num_entries NUMBER;
2084 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
2085 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
2086 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
2087 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
2088 l_recog_line_1 NUMBER;
2089 l_recog_line_2 NUMBER;
2090
2091 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
2092 l_bflow_applied_to_amt NUMBER; -- 5132302
2093 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
2094
2095 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
2096
2097 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
2098 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
2099
2100 ---------------------------------------------------------------------------------------------------------------
2101
2102
2103 --
2104 -- bulk performance
2105 --
2106 l_balance_type_code VARCHAR2(1);
2107 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
2108 l_log_module VARCHAR2(240);
2109
2110 --
2111 -- Upgrade strategy
2112 --
2113 l_actual_upg_option VARCHAR2(1);
2114 l_enc_upg_option VARCHAR2(1);
2115
2116 --
2117 BEGIN
2118 --
2119 IF g_log_enabled THEN
2120 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_5';
2121 END IF;
2122 --
2123 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2124
2125 trace
2126 (p_msg => 'BEGIN of AcctLineType_5'
2127 ,p_level => C_LEVEL_PROCEDURE
2128 ,p_module => l_log_module);
2129
2130 END IF;
2131 --
2132 l_component_type := 'AMB_JLT';
2133 l_component_code := 'REINSTATE_PO_ENC_ON_RTR';
2134 l_component_type_code := 'S';
2135 l_component_appl_id := 707;
2136 l_amb_context_code := 'DEFAULT';
2137 l_entity_code := 'RCV_ACCOUNTING_EVENTS';
2138 l_event_class_code := 'DELIVER_EXPENSE';
2139 l_event_type_code := 'DELIVER_EXPENSE_ALL';
2140 l_line_definition_owner_code := 'S';
2141 l_line_definition_code := 'PO_ENCUM_FOR_DEL_TO_EXP';
2142 --
2143 l_balance_type_code := 'E';
2144 l_segment := NULL;
2145 l_ccid := NULL;
2146 l_adr_transaction_coa_id := NULL;
2147 l_adr_accounting_coa_id := NULL;
2148 l_adr_flexfield_segment_code := NULL;
2149 l_adr_flex_value_set_id := NULL;
2150 l_adr_value_type_code := NULL;
2151 l_adr_value_combination_id := NULL;
2152 l_adr_value_segment_code := NULL;
2153
2154 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
2155 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
2156 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
2157 l_budgetary_control_flag := 'Y';
2158
2159 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2160 l_bflow_applied_to_amt := NULL; -- 5132302
2161 l_entered_amt_idx := NULL; -- 4262811
2162 l_accted_amt_idx := NULL; -- 4262811
2163 l_acc_rev_flag := NULL; -- 4262811
2164 l_accrual_line_num := NULL; -- 4262811
2165 l_tmp_amt := NULL; -- 4262811
2166 --
2167
2168 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
2169 l_balance_type_code <> 'B' THEN
2170 IF NVL(p_source_2,'
2171 ') = 'Y' AND
2172 NVL(
2173 xla_ae_sources_pkg.GetSystemSourceChar(
2174 p_source_code => 'XLA_EVENT_TYPE_CODE'
2175 , p_source_type_code => 'Y'
2176 , p_source_application_id => 602
2177 ),'
2178 ') = 'RETURN_TO_RECEIVING' AND
2179 NVL(p_source_25,'
2180 ') = 'Charge'
2181 THEN
2182
2183 --
2184 XLA_AE_LINES_PKG.SetNewLine;
2185
2186 p_balance_type_code := l_balance_type_code;
2187 -- set the flag so later we will know whether the gain loss line needs to be created
2188
2189 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
2190 p_actual_flag :='A';
2191 END IF;
2192
2193 --
2194 -- bulk performance
2195 --
2196 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
2197 p_header_num => 0); -- 4262811
2198 --
2199 -- set accounting line options
2200 --
2201 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
2202 p_natural_side_code => 'D'
2206 , p_switch_side_flag => 'Y'
2203 , p_gain_or_loss_flag => 'N'
2204 , p_gl_transfer_mode_code => 'S'
2205 , p_acct_entry_type_code => 'E'
2207 , p_merge_duplicate_code => 'N'
2208 );
2209 --
2210 l_acc_rev_natural_side_code := 'C'; -- 4262811
2211 --
2212 --
2213 -- set accounting line type info
2214 --
2215 xla_ae_lines_pkg.SetAcctLineType
2216 (p_component_type => l_component_type
2217 ,p_event_type_code => l_event_type_code
2218 ,p_line_definition_owner_code => l_line_definition_owner_code
2219 ,p_line_definition_code => l_line_definition_code
2220 ,p_accounting_line_code => l_component_code
2221 ,p_accounting_line_type_code => l_component_type_code
2222 ,p_accounting_line_appl_id => l_component_appl_id
2223 ,p_amb_context_code => l_amb_context_code
2224 ,p_entity_code => l_entity_code
2225 ,p_event_class_code => l_event_class_code);
2226 --
2227 -- set accounting class
2228 --
2229 xla_ae_lines_pkg.SetAcctClass(
2230 p_accounting_class_code => 'PURCHASE_ORDER'
2231 , p_ae_header_id => l_ae_header_id
2232 );
2233
2234 --
2235 -- set rounding class
2236 --
2237 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
2238 'PURCHASE_ORDER';
2239
2240 --
2241 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
2242 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
2243 --
2244 -- bulk performance
2245 --
2246 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
2247
2248 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
2249 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
2250
2251 -- 4955764
2252 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2253 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
2254
2255 -- 4458381 Public Sector Enh
2256
2257 --
2258 -- set accounting attributes for the line type
2259 --
2260 l_entered_amt_idx := 17;
2261 l_accted_amt_idx := 19;
2262 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2263 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
2264 l_rec_acct_attrs.array_num_value(1) := p_source_7;
2265 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
2266 l_rec_acct_attrs.array_char_value(2) := p_source_8;
2267 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
2268 l_rec_acct_attrs.array_char_value(3) := p_source_9;
2269 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
2270 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_26);
2271 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
2272 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_11);
2273 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
2274 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_12);
2275 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
2276 l_rec_acct_attrs.array_char_value(7) := p_source_13;
2277 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
2278 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_14);
2279 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
2280 l_rec_acct_attrs.array_num_value(9) := p_source_15;
2281 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
2282 l_rec_acct_attrs.array_char_value(10) := p_source_16;
2283 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
2284 l_rec_acct_attrs.array_num_value(11) := p_source_17;
2285 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
2286 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_14);
2287 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
2288 l_rec_acct_attrs.array_num_value(13) := p_source_15;
2289 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
2290 l_rec_acct_attrs.array_char_value(14) := p_source_16;
2291 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
2292 l_rec_acct_attrs.array_num_value(15) := p_source_17;
2293 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
2294 l_rec_acct_attrs.array_char_value(16) := p_source_18;
2295 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
2296 l_rec_acct_attrs.array_num_value(17) := p_source_15;
2297 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
2298 l_rec_acct_attrs.array_char_value(18) := p_source_16;
2299 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
2300 l_rec_acct_attrs.array_num_value(19) := p_source_17;
2301 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
2302 l_rec_acct_attrs.array_num_value(20) := p_source_19;
2303 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
2304 l_rec_acct_attrs.array_num_value(21) := p_source_19;
2305
2306 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
2307 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
2308
2309 ---------------------------------------------------------------------------------------------------------------
2313
2310 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
2311 ---------------------------------------------------------------------------------------------------------------
2312 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
2314 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2315 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2316
2317 IF xla_accounting_cache_pkg.GetValueChar
2318 (p_source_code => 'LEDGER_CATEGORY_CODE'
2319 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
2320 AND l_bflow_method_code = 'PRIOR_ENTRY'
2321 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
2322 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
2323 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
2324 )
2325 THEN
2326 xla_ae_lines_pkg.BflowUpgEntry
2327 (p_business_method_code => l_bflow_method_code
2328 ,p_business_class_code => l_bflow_class_code
2329 ,p_balance_type => l_balance_type_code);
2330 ELSE
2331 NULL;
2332 XLA_AE_LINES_PKG.business_flow_validation(
2333 p_business_method_code => l_bflow_method_code
2334 ,p_business_class_code => l_bflow_class_code
2335 ,p_inherit_description_flag => l_inherit_desc_flag);
2336 END IF;
2337
2338 --
2339 -- call analytical criteria
2340 --
2341 -- Inherited Analytical Criteria for business flow method of Prior Entry.
2342 --
2343 -- call description
2344 --
2345 -- No description or it is inherited.
2346 --
2347 -- call ADRs
2348 -- Bug 4922099
2349 --
2350 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2351 (NVL(l_actual_upg_option, 'N') = 'O') OR
2352 (NVL(l_enc_upg_option, 'N') = 'O')
2353 )
2354 THEN
2355 NULL;
2356 --
2357 --
2358
2359 --
2360 --
2361 END IF;
2362 --
2363 -- Bug 4922099
2364 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
2365 (NVL(l_enc_upg_option, 'N') = 'O')
2366 ) AND
2367 (l_bflow_method_code = 'PRIOR_ENTRY')
2368 )
2369 THEN
2370 IF
2371 --
2372 1 = 1
2373 --
2374 THEN
2375 xla_accounting_err_pkg.build_message
2376 (p_appli_s_name => 'XLA'
2377 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2378 ,p_token_1 => 'LINE_NUMBER'
2379 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
2380 ,p_token_2 => 'LINE_TYPE_NAME'
2381 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
2382 l_component_type
2383 ,l_component_code
2384 ,l_component_type_code
2385 ,l_component_appl_id
2386 ,l_amb_context_code
2387 ,l_entity_code
2388 ,l_event_class_code
2389 )
2390 ,p_token_3 => 'OWNER'
2391 ,p_value_3 => xla_lookups_pkg.get_meaning(
2392 p_lookup_type => 'XLA_OWNER_TYPE'
2393 ,p_lookup_code => l_component_type_code
2394 )
2395 ,p_token_4 => 'PRODUCT_NAME'
2396 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
2397 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2398 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2399 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2400 ,p_ae_header_id => NULL
2401 );
2402
2403 IF (C_LEVEL_ERROR>= g_log_level) THEN
2404 trace
2405 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2406 ,p_level => C_LEVEL_ERROR
2407 ,p_module => l_log_module);
2408 END IF;
2409 END IF;
2410 END IF;
2411 --
2412 --
2413 ------------------------------------------------------------------------------------------------
2414 -- 4219869 Business Flow
2418 -- No ValidateCurrentLine for business flow method of Prior Entry
2415 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
2416 -- Prior Entry. Currently, the following code is always generated.
2417 ------------------------------------------------------------------------------------------------
2419
2420 ------------------------------------------------------------------------------------
2421 -- 4219869 Business Flow
2422 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
2423 ------------------------------------------------------------------------------------
2424 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2425
2426 ----------------------------------------------------------------------------------
2427 -- 4219869 Business Flow
2428 -- Update journal entry status -- Need to generate this within IF <condition>
2429 ----------------------------------------------------------------------------------
2430 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2431 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
2432 ,p_balance_type_code => l_balance_type_code
2433 );
2434
2435 -------------------------------------------------------------------------------------------
2436 -- 4262811 - Generate the Accrual Reversal lines
2437 -------------------------------------------------------------------------------------------
2438 BEGIN
2439 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
2440 (g_array_event(p_event_id).array_value_num('header_index'));
2441 IF l_acc_rev_flag IS NULL THEN
2442 l_acc_rev_flag := 'N';
2443 END IF;
2444 EXCEPTION
2445 WHEN OTHERS THEN
2446 l_acc_rev_flag := 'N';
2447 END;
2448 --
2449 IF (l_acc_rev_flag = 'Y') THEN
2450
2451 -- 4645092 ------------------------------------------------------------------------------
2452 -- To allow MPA report to determine if it should generate report process
2453 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
2454 ------------------------------------------------------------------------------------------
2455
2456 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
2457 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
2458 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
2459 -- call ADRs
2460 -- Bug 4922099
2461 --
2462 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2463 (NVL(l_actual_upg_option, 'N') = 'O') OR
2464 (NVL(l_enc_upg_option, 'N') = 'O')
2465 )
2466 THEN
2467 NULL;
2468 --
2469 --
2470
2471 --
2472 --
2473 END IF;
2474
2475 --
2476 -- Update the line information that should be overwritten
2477 --
2478 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
2479 p_header_num => 1);
2480 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
2481
2482 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
2483
2484 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
2485 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
2486 END IF;
2487
2488 --
2489 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
2490 --
2491 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
2492 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
2493 ELSE
2494 ---------------------------------------------------------------------------------------------------
2495 -- 4262811a Switch Sign
2496 ---------------------------------------------------------------------------------------------------
2497 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
2498 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
2499 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2500 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
2501 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2502 -- 5132302
2503 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
2504 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2505
2506 END IF;
2507
2508 -- 4955764
2509 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2510 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
2511
2512
2513 XLA_AE_LINES_PKG.ValidateCurrentLine;
2514 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2515
2516 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2517 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
2518 ,p_balance_type_code => l_balance_type_code);
2519
2523 -- 4262811 Multiperiod Accounting
2520 END IF;
2521
2522 -----------------------------------------------------------------------------------------
2524 -----------------------------------------------------------------------------------------
2525 -- No MPA option is assigned.
2526
2527
2528 END IF;
2529 END IF;
2530 --
2531
2532 --
2533 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2534 trace
2535 (p_msg => 'END of AcctLineType_5'
2536 ,p_level => C_LEVEL_PROCEDURE
2537 ,p_module => l_log_module);
2538 END IF;
2539 --
2540 EXCEPTION
2541 WHEN xla_exceptions_pkg.application_exception THEN
2542 RAISE;
2543 WHEN OTHERS THEN
2544 xla_exceptions_pkg.raise_message
2545 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.AcctLineType_5');
2546 END AcctLineType_5;
2547 --
2548
2549 ---------------------------------------
2550 --
2551 -- PRIVATE FUNCTION
2552 -- AcctLineType_6
2553 --
2554 ---------------------------------------
2555 PROCEDURE AcctLineType_6 (
2556 p_application_id IN NUMBER
2557 ,p_event_id IN NUMBER
2558 ,p_calculate_acctd_flag IN VARCHAR2
2559 ,p_calculate_g_l_flag IN VARCHAR2
2560 ,p_actual_flag IN OUT VARCHAR2
2561 ,p_balance_type_code OUT VARCHAR2
2562 ,p_gain_or_loss_ref OUT VARCHAR2
2563
2564 --Purchasing Encumbrance Flag
2565 , p_source_2 IN VARCHAR2
2566 --Reserved Flag
2567 , p_source_3 IN VARCHAR2
2568 --Applied to Application ID
2569 , p_source_7 IN NUMBER
2570 --Applied to Distribution Link Type
2571 , p_source_8 IN VARCHAR2
2572 --Applied to Entity Code
2573 , p_source_9 IN VARCHAR2
2574 --Applied To Purchase Document Identifier
2575 , p_source_11 IN NUMBER
2576 --DISTRIBUTION_IDENTIFIER
2577 , p_source_12 IN NUMBER
2578 --Distribution Type
2579 , p_source_13 IN VARCHAR2
2580 , p_source_13_meaning IN VARCHAR2
2581 --PO Budget Account
2582 , p_source_14 IN NUMBER
2583 --Encumbrance Reversal Amount Entered
2584 , p_source_15 IN NUMBER
2585 --Entered Currency Code
2586 , p_source_16 IN VARCHAR2
2587 --Transaction Encumbrance Reversal Amount
2588 , p_source_17 IN NUMBER
2589 --Costing Encumbrance Upgrade Option
2590 , p_source_18 IN VARCHAR2
2591 --Purchasing Encumbrance Type Identifier
2592 , p_source_19 IN NUMBER
2593 --Receiving Accounting Line Type
2594 , p_source_25 IN VARCHAR2
2595 --PO_DISTRIBUTION_ID
2596 , p_source_26 IN NUMBER
2597 )
2598 IS
2599
2600 l_component_type VARCHAR2(80);
2601 l_component_code VARCHAR2(30);
2602 l_component_type_code VARCHAR2(1);
2603 l_component_appl_id INTEGER;
2604 l_amb_context_code VARCHAR2(30);
2605 l_entity_code VARCHAR2(30);
2606 l_event_class_code VARCHAR2(30);
2607 l_ae_header_id NUMBER;
2608 l_event_type_code VARCHAR2(30);
2609 l_line_definition_code VARCHAR2(30);
2610 l_line_definition_owner_code VARCHAR2(1);
2611 --
2612 -- adr variables
2613 l_segment VARCHAR2(30);
2614 l_ccid NUMBER;
2615 l_adr_transaction_coa_id NUMBER;
2616 l_adr_accounting_coa_id NUMBER;
2617 l_adr_flexfield_segment_code VARCHAR2(30);
2618 l_adr_flex_value_set_id NUMBER;
2619 l_adr_value_type_code VARCHAR2(30);
2620 l_adr_value_combination_id NUMBER;
2621 l_adr_value_segment_code VARCHAR2(30);
2622
2623 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
2624 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
2625 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
2626 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
2627
2628 -- 4262811 Variables ------------------------------------------------------------------------------------------
2629 l_entered_amt_idx NUMBER;
2630 l_accted_amt_idx NUMBER;
2631 l_acc_rev_flag VARCHAR2(1);
2632 l_accrual_line_num NUMBER;
2633 l_tmp_amt NUMBER;
2634 l_acc_rev_natural_side_code VARCHAR2(1);
2635
2636 l_num_entries NUMBER;
2637 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
2638 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
2639 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
2640 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
2641 l_recog_line_1 NUMBER;
2642 l_recog_line_2 NUMBER;
2643
2644 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
2645 l_bflow_applied_to_amt NUMBER; -- 5132302
2646 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
2647
2648 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
2649
2650 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
2651 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
2652
2656 --
2653 ---------------------------------------------------------------------------------------------------------------
2654
2655
2657 -- bulk performance
2658 --
2659 l_balance_type_code VARCHAR2(1);
2660 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
2661 l_log_module VARCHAR2(240);
2662
2663 --
2664 -- Upgrade strategy
2665 --
2666 l_actual_upg_option VARCHAR2(1);
2667 l_enc_upg_option VARCHAR2(1);
2668
2669 --
2670 BEGIN
2671 --
2672 IF g_log_enabled THEN
2673 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_6';
2674 END IF;
2675 --
2676 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2677
2678 trace
2679 (p_msg => 'BEGIN of AcctLineType_6'
2680 ,p_level => C_LEVEL_PROCEDURE
2681 ,p_module => l_log_module);
2682
2683 END IF;
2684 --
2685 l_component_type := 'AMB_JLT';
2686 l_component_code := 'RELIEVE_PO_ENC_ON_DTE';
2687 l_component_type_code := 'S';
2688 l_component_appl_id := 707;
2689 l_amb_context_code := 'DEFAULT';
2690 l_entity_code := 'RCV_ACCOUNTING_EVENTS';
2691 l_event_class_code := 'DELIVER_EXPENSE';
2692 l_event_type_code := 'DELIVER_EXPENSE_ALL';
2693 l_line_definition_owner_code := 'S';
2694 l_line_definition_code := 'PO_ENCUM_FOR_DEL_TO_EXP';
2695 --
2696 l_balance_type_code := 'E';
2697 l_segment := NULL;
2698 l_ccid := NULL;
2699 l_adr_transaction_coa_id := NULL;
2700 l_adr_accounting_coa_id := NULL;
2701 l_adr_flexfield_segment_code := NULL;
2702 l_adr_flex_value_set_id := NULL;
2703 l_adr_value_type_code := NULL;
2704 l_adr_value_combination_id := NULL;
2705 l_adr_value_segment_code := NULL;
2706
2707 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
2708 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
2709 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
2710 l_budgetary_control_flag := 'Y';
2711
2712 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2713 l_bflow_applied_to_amt := NULL; -- 5132302
2714 l_entered_amt_idx := NULL; -- 4262811
2715 l_accted_amt_idx := NULL; -- 4262811
2716 l_acc_rev_flag := NULL; -- 4262811
2717 l_accrual_line_num := NULL; -- 4262811
2718 l_tmp_amt := NULL; -- 4262811
2719 --
2720
2721 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
2722 l_balance_type_code <> 'B' THEN
2723 IF NVL(p_source_2,'
2724 ') = 'Y' AND
2725 NVL(p_source_3,'
2726 ') = 'Y' AND
2727 NVL(
2728 xla_ae_sources_pkg.GetSystemSourceChar(
2729 p_source_code => 'XLA_EVENT_TYPE_CODE'
2730 , p_source_type_code => 'Y'
2731 , p_source_application_id => 602
2732 ),'
2733 ') = 'DELIVER_EXPENSE' AND
2734 NVL(p_source_25,'
2735 ') = 'Charge'
2736 THEN
2737
2738 --
2739 XLA_AE_LINES_PKG.SetNewLine;
2740
2741 p_balance_type_code := l_balance_type_code;
2742 -- set the flag so later we will know whether the gain loss line needs to be created
2743
2744 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
2745 p_actual_flag :='A';
2746 END IF;
2747
2748 --
2749 -- bulk performance
2750 --
2751 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
2752 p_header_num => 0); -- 4262811
2753 --
2754 -- set accounting line options
2755 --
2756 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
2757 p_natural_side_code => 'D'
2758 , p_gain_or_loss_flag => 'N'
2759 , p_gl_transfer_mode_code => 'S'
2760 , p_acct_entry_type_code => 'E'
2761 , p_switch_side_flag => 'Y'
2762 , p_merge_duplicate_code => 'N'
2763 );
2764 --
2765 l_acc_rev_natural_side_code := 'C'; -- 4262811
2766 --
2767 --
2768 -- set accounting line type info
2769 --
2770 xla_ae_lines_pkg.SetAcctLineType
2771 (p_component_type => l_component_type
2772 ,p_event_type_code => l_event_type_code
2773 ,p_line_definition_owner_code => l_line_definition_owner_code
2774 ,p_line_definition_code => l_line_definition_code
2775 ,p_accounting_line_code => l_component_code
2776 ,p_accounting_line_type_code => l_component_type_code
2777 ,p_accounting_line_appl_id => l_component_appl_id
2778 ,p_amb_context_code => l_amb_context_code
2779 ,p_entity_code => l_entity_code
2780 ,p_event_class_code => l_event_class_code);
2781 --
2782 -- set accounting class
2783 --
2784 xla_ae_lines_pkg.SetAcctClass(
2785 p_accounting_class_code => 'PURCHASE_ORDER'
2786 , p_ae_header_id => l_ae_header_id
2787 );
2788
2789 --
2790 -- set rounding class
2791 --
2792 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
2796 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
2793 'PURCHASE_ORDER';
2794
2795 --
2797 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
2798 --
2799 -- bulk performance
2800 --
2801 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
2802
2803 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
2804 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
2805
2806 -- 4955764
2807 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2808 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
2809
2810 -- 4458381 Public Sector Enh
2811
2812 --
2813 -- set accounting attributes for the line type
2814 --
2815 l_entered_amt_idx := 17;
2816 l_accted_amt_idx := 19;
2817 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2818 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
2819 l_rec_acct_attrs.array_num_value(1) := p_source_7;
2820 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
2821 l_rec_acct_attrs.array_char_value(2) := p_source_8;
2822 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
2823 l_rec_acct_attrs.array_char_value(3) := p_source_9;
2824 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
2825 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_26);
2826 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
2827 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_11);
2828 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
2829 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_12);
2830 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
2831 l_rec_acct_attrs.array_char_value(7) := p_source_13;
2832 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
2833 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_14);
2834 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
2835 l_rec_acct_attrs.array_num_value(9) := p_source_15;
2836 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
2837 l_rec_acct_attrs.array_char_value(10) := p_source_16;
2838 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
2839 l_rec_acct_attrs.array_num_value(11) := p_source_17;
2840 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
2841 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_14);
2842 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
2843 l_rec_acct_attrs.array_num_value(13) := p_source_15;
2844 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
2845 l_rec_acct_attrs.array_char_value(14) := p_source_16;
2846 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
2847 l_rec_acct_attrs.array_num_value(15) := p_source_17;
2848 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
2849 l_rec_acct_attrs.array_char_value(16) := p_source_18;
2850 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
2851 l_rec_acct_attrs.array_num_value(17) := p_source_15;
2852 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
2853 l_rec_acct_attrs.array_char_value(18) := p_source_16;
2854 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
2855 l_rec_acct_attrs.array_num_value(19) := p_source_17;
2856 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
2857 l_rec_acct_attrs.array_num_value(20) := p_source_19;
2858 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
2859 l_rec_acct_attrs.array_num_value(21) := p_source_19;
2860
2861 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
2862 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
2863
2864 ---------------------------------------------------------------------------------------------------------------
2865 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
2866 ---------------------------------------------------------------------------------------------------------------
2867 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
2868
2869 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2870 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2871
2872 IF xla_accounting_cache_pkg.GetValueChar
2873 (p_source_code => 'LEDGER_CATEGORY_CODE'
2874 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
2875 AND l_bflow_method_code = 'PRIOR_ENTRY'
2876 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
2877 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
2878 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
2879 )
2880 THEN
2881 xla_ae_lines_pkg.BflowUpgEntry
2882 (p_business_method_code => l_bflow_method_code
2883 ,p_business_class_code => l_bflow_class_code
2884 ,p_balance_type => l_balance_type_code);
2885 ELSE
2886 NULL;
2887 XLA_AE_LINES_PKG.business_flow_validation(
2891 END IF;
2888 p_business_method_code => l_bflow_method_code
2889 ,p_business_class_code => l_bflow_class_code
2890 ,p_inherit_description_flag => l_inherit_desc_flag);
2892
2893 --
2894 -- call analytical criteria
2895 --
2896 -- Inherited Analytical Criteria for business flow method of Prior Entry.
2897 --
2898 -- call description
2899 --
2900 -- No description or it is inherited.
2901 --
2902 -- call ADRs
2903 -- Bug 4922099
2904 --
2905 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2906 (NVL(l_actual_upg_option, 'N') = 'O') OR
2907 (NVL(l_enc_upg_option, 'N') = 'O')
2908 )
2909 THEN
2910 NULL;
2911 --
2912 --
2913
2914 --
2915 --
2916 END IF;
2917 --
2918 -- Bug 4922099
2919 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
2920 (NVL(l_enc_upg_option, 'N') = 'O')
2921 ) AND
2922 (l_bflow_method_code = 'PRIOR_ENTRY')
2923 )
2924 THEN
2925 IF
2926 --
2927 1 = 1
2928 --
2929 THEN
2930 xla_accounting_err_pkg.build_message
2931 (p_appli_s_name => 'XLA'
2932 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2933 ,p_token_1 => 'LINE_NUMBER'
2934 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
2935 ,p_token_2 => 'LINE_TYPE_NAME'
2936 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
2937 l_component_type
2938 ,l_component_code
2939 ,l_component_type_code
2940 ,l_component_appl_id
2941 ,l_amb_context_code
2942 ,l_entity_code
2943 ,l_event_class_code
2944 )
2945 ,p_token_3 => 'OWNER'
2946 ,p_value_3 => xla_lookups_pkg.get_meaning(
2947 p_lookup_type => 'XLA_OWNER_TYPE'
2948 ,p_lookup_code => l_component_type_code
2949 )
2950 ,p_token_4 => 'PRODUCT_NAME'
2951 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
2952 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2953 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2954 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2955 ,p_ae_header_id => NULL
2956 );
2957
2958 IF (C_LEVEL_ERROR>= g_log_level) THEN
2959 trace
2960 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2961 ,p_level => C_LEVEL_ERROR
2962 ,p_module => l_log_module);
2963 END IF;
2964 END IF;
2965 END IF;
2966 --
2967 --
2968 ------------------------------------------------------------------------------------------------
2969 -- 4219869 Business Flow
2970 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
2971 -- Prior Entry. Currently, the following code is always generated.
2972 ------------------------------------------------------------------------------------------------
2973 -- No ValidateCurrentLine for business flow method of Prior Entry
2974
2975 ------------------------------------------------------------------------------------
2976 -- 4219869 Business Flow
2977 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
2978 ------------------------------------------------------------------------------------
2979 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2980
2981 ----------------------------------------------------------------------------------
2982 -- 4219869 Business Flow
2983 -- Update journal entry status -- Need to generate this within IF <condition>
2984 ----------------------------------------------------------------------------------
2985 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2986 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
2987 ,p_balance_type_code => l_balance_type_code
2988 );
2989
2990 -------------------------------------------------------------------------------------------
2994 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
2991 -- 4262811 - Generate the Accrual Reversal lines
2992 -------------------------------------------------------------------------------------------
2993 BEGIN
2995 (g_array_event(p_event_id).array_value_num('header_index'));
2996 IF l_acc_rev_flag IS NULL THEN
2997 l_acc_rev_flag := 'N';
2998 END IF;
2999 EXCEPTION
3000 WHEN OTHERS THEN
3001 l_acc_rev_flag := 'N';
3002 END;
3003 --
3004 IF (l_acc_rev_flag = 'Y') THEN
3005
3006 -- 4645092 ------------------------------------------------------------------------------
3007 -- To allow MPA report to determine if it should generate report process
3008 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3009 ------------------------------------------------------------------------------------------
3010
3011 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3012 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3013 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
3014 -- call ADRs
3015 -- Bug 4922099
3016 --
3017 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3018 (NVL(l_actual_upg_option, 'N') = 'O') OR
3019 (NVL(l_enc_upg_option, 'N') = 'O')
3020 )
3021 THEN
3022 NULL;
3023 --
3024 --
3025
3026 --
3027 --
3028 END IF;
3029
3030 --
3031 -- Update the line information that should be overwritten
3032 --
3033 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3034 p_header_num => 1);
3035 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3036
3037 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3038
3039 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3040 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3041 END IF;
3042
3043 --
3044 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3045 --
3046 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3047 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3048 ELSE
3049 ---------------------------------------------------------------------------------------------------
3050 -- 4262811a Switch Sign
3051 ---------------------------------------------------------------------------------------------------
3052 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3053 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3054 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3055 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3056 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3057 -- 5132302
3058 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3059 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3060
3061 END IF;
3062
3063 -- 4955764
3064 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3065 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3066
3067
3068 XLA_AE_LINES_PKG.ValidateCurrentLine;
3069 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3070
3071 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3072 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3073 ,p_balance_type_code => l_balance_type_code);
3074
3075 END IF;
3076
3077 -----------------------------------------------------------------------------------------
3078 -- 4262811 Multiperiod Accounting
3079 -----------------------------------------------------------------------------------------
3080 -- No MPA option is assigned.
3081
3082
3083 END IF;
3084 END IF;
3085 --
3086
3087 --
3088 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3089 trace
3090 (p_msg => 'END of AcctLineType_6'
3091 ,p_level => C_LEVEL_PROCEDURE
3092 ,p_module => l_log_module);
3093 END IF;
3094 --
3095 EXCEPTION
3096 WHEN xla_exceptions_pkg.application_exception THEN
3097 RAISE;
3098 WHEN OTHERS THEN
3099 xla_exceptions_pkg.raise_message
3100 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.AcctLineType_6');
3101 END AcctLineType_6;
3102 --
3103
3104 ---------------------------------------
3105 --
3106 -- PRIVATE FUNCTION
3107 -- AcctLineType_7
3108 --
3109 ---------------------------------------
3110 PROCEDURE AcctLineType_7 (
3111 p_application_id IN NUMBER
3112 ,p_event_id IN NUMBER
3113 ,p_calculate_acctd_flag IN VARCHAR2
3114 ,p_calculate_g_l_flag IN VARCHAR2
3115 ,p_actual_flag IN OUT VARCHAR2
3119 --Purchasing Encumbrance Flag
3116 ,p_balance_type_code OUT VARCHAR2
3117 ,p_gain_or_loss_ref OUT VARCHAR2
3118
3120 , p_source_2 IN VARCHAR2
3121 --Reserved Flag
3122 , p_source_3 IN VARCHAR2
3123 --Organization Encumbrance Reversal Indicator
3124 , p_source_4 IN VARCHAR2
3125 --Accounting Line Type
3126 , p_source_6 IN NUMBER
3127 --Applied to Application ID
3128 , p_source_7 IN NUMBER
3129 --Applied to Distribution Link Type
3130 , p_source_8 IN VARCHAR2
3131 --Applied to Entity Code
3132 , p_source_9 IN VARCHAR2
3133 --TXN_PO_DISTRIBUTION_ID
3134 , p_source_10 IN NUMBER
3135 --Applied To Purchase Document Identifier
3136 , p_source_11 IN NUMBER
3137 --DISTRIBUTION_IDENTIFIER
3138 , p_source_12 IN NUMBER
3139 --Distribution Type
3140 , p_source_13 IN VARCHAR2
3141 , p_source_13_meaning IN VARCHAR2
3142 --PO Budget Account
3143 , p_source_14 IN NUMBER
3144 --Encumbrance Reversal Amount Entered
3145 , p_source_15 IN NUMBER
3146 --Entered Currency Code
3147 , p_source_16 IN VARCHAR2
3148 --Transaction Encumbrance Reversal Amount
3149 , p_source_17 IN NUMBER
3150 --Costing Encumbrance Upgrade Option
3151 , p_source_18 IN VARCHAR2
3152 --Purchasing Encumbrance Type Identifier
3153 , p_source_19 IN NUMBER
3154 )
3155 IS
3156
3157 l_component_type VARCHAR2(80);
3158 l_component_code VARCHAR2(30);
3159 l_component_type_code VARCHAR2(1);
3160 l_component_appl_id INTEGER;
3161 l_amb_context_code VARCHAR2(30);
3162 l_entity_code VARCHAR2(30);
3163 l_event_class_code VARCHAR2(30);
3164 l_ae_header_id NUMBER;
3165 l_event_type_code VARCHAR2(30);
3166 l_line_definition_code VARCHAR2(30);
3167 l_line_definition_owner_code VARCHAR2(1);
3168 --
3169 -- adr variables
3170 l_segment VARCHAR2(30);
3171 l_ccid NUMBER;
3172 l_adr_transaction_coa_id NUMBER;
3173 l_adr_accounting_coa_id NUMBER;
3174 l_adr_flexfield_segment_code VARCHAR2(30);
3175 l_adr_flex_value_set_id NUMBER;
3176 l_adr_value_type_code VARCHAR2(30);
3177 l_adr_value_combination_id NUMBER;
3178 l_adr_value_segment_code VARCHAR2(30);
3179
3180 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3181 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3182 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3183 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3184
3185 -- 4262811 Variables ------------------------------------------------------------------------------------------
3186 l_entered_amt_idx NUMBER;
3187 l_accted_amt_idx NUMBER;
3188 l_acc_rev_flag VARCHAR2(1);
3189 l_accrual_line_num NUMBER;
3190 l_tmp_amt NUMBER;
3191 l_acc_rev_natural_side_code VARCHAR2(1);
3192
3193 l_num_entries NUMBER;
3194 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3195 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3196 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3197 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3198 l_recog_line_1 NUMBER;
3199 l_recog_line_2 NUMBER;
3200
3201 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3202 l_bflow_applied_to_amt NUMBER; -- 5132302
3203 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3204
3205 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3206
3207 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3208 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3209
3210 ---------------------------------------------------------------------------------------------------------------
3211
3212
3213 --
3214 -- bulk performance
3215 --
3216 l_balance_type_code VARCHAR2(1);
3217 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3218 l_log_module VARCHAR2(240);
3219
3220 --
3221 -- Upgrade strategy
3222 --
3223 l_actual_upg_option VARCHAR2(1);
3224 l_enc_upg_option VARCHAR2(1);
3225
3226 --
3227 BEGIN
3228 --
3229 IF g_log_enabled THEN
3230 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_7';
3231 END IF;
3232 --
3233 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3234
3235 trace
3236 (p_msg => 'BEGIN of AcctLineType_7'
3237 ,p_level => C_LEVEL_PROCEDURE
3238 ,p_module => l_log_module);
3239
3240 END IF;
3241 --
3242 l_component_type := 'AMB_JLT';
3243 l_component_code := 'RELIEVE_PO_ENC_ON_DTI';
3244 l_component_type_code := 'S';
3245 l_component_appl_id := 707;
3246 l_amb_context_code := 'DEFAULT';
3247 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
3251 l_line_definition_code := 'PO_ENCUM_FOR_DEL_TO_INV';
3248 l_event_class_code := 'PURCHASE_ORDER';
3249 l_event_type_code := 'PURCHASE_ORDER_ALL';
3250 l_line_definition_owner_code := 'S';
3252 --
3253 l_balance_type_code := 'E';
3254 l_segment := NULL;
3255 l_ccid := NULL;
3256 l_adr_transaction_coa_id := NULL;
3257 l_adr_accounting_coa_id := NULL;
3258 l_adr_flexfield_segment_code := NULL;
3259 l_adr_flex_value_set_id := NULL;
3260 l_adr_value_type_code := NULL;
3261 l_adr_value_combination_id := NULL;
3262 l_adr_value_segment_code := NULL;
3263
3264 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
3265 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
3266 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
3267 l_budgetary_control_flag := 'Y';
3268
3269 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3270 l_bflow_applied_to_amt := NULL; -- 5132302
3271 l_entered_amt_idx := NULL; -- 4262811
3272 l_accted_amt_idx := NULL; -- 4262811
3273 l_acc_rev_flag := NULL; -- 4262811
3274 l_accrual_line_num := NULL; -- 4262811
3275 l_tmp_amt := NULL; -- 4262811
3276 --
3277
3278 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3279 l_balance_type_code <> 'B' THEN
3280 IF NVL(p_source_2,'
3281 ') = 'Y' AND
3282 NVL(p_source_3,'
3283 ') = 'Y' AND
3284 NVL(p_source_4,'
3285 ') = 'Y' AND
3286 NVL(
3287 xla_ae_sources_pkg.GetSystemSourceChar(
3288 p_source_code => 'XLA_EVENT_TYPE_CODE'
3289 , p_source_type_code => 'Y'
3290 , p_source_application_id => 602
3291 ),'
3292 ') = 'PO_DEL_INV' AND
3293 NVL(p_source_6,9E125) = 15
3294 THEN
3295
3296 --
3297 XLA_AE_LINES_PKG.SetNewLine;
3298
3299 p_balance_type_code := l_balance_type_code;
3300 -- set the flag so later we will know whether the gain loss line needs to be created
3301
3302 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
3303 p_actual_flag :='A';
3304 END IF;
3305
3306 --
3307 -- bulk performance
3308 --
3309 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3310 p_header_num => 0); -- 4262811
3311 --
3312 -- set accounting line options
3313 --
3314 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3315 p_natural_side_code => 'C'
3316 , p_gain_or_loss_flag => 'N'
3317 , p_gl_transfer_mode_code => 'S'
3318 , p_acct_entry_type_code => 'E'
3319 , p_switch_side_flag => 'N'
3320 , p_merge_duplicate_code => 'N'
3321 );
3322 --
3323 l_acc_rev_natural_side_code := 'D'; -- 4262811
3324 --
3325 --
3326 -- set accounting line type info
3327 --
3328 xla_ae_lines_pkg.SetAcctLineType
3329 (p_component_type => l_component_type
3330 ,p_event_type_code => l_event_type_code
3331 ,p_line_definition_owner_code => l_line_definition_owner_code
3332 ,p_line_definition_code => l_line_definition_code
3333 ,p_accounting_line_code => l_component_code
3334 ,p_accounting_line_type_code => l_component_type_code
3335 ,p_accounting_line_appl_id => l_component_appl_id
3336 ,p_amb_context_code => l_amb_context_code
3337 ,p_entity_code => l_entity_code
3338 ,p_event_class_code => l_event_class_code);
3339 --
3340 -- set accounting class
3341 --
3342 xla_ae_lines_pkg.SetAcctClass(
3343 p_accounting_class_code => 'PURCHASE_ORDER'
3344 , p_ae_header_id => l_ae_header_id
3345 );
3346
3347 --
3348 -- set rounding class
3349 --
3350 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3351 'PURCHASE_ORDER';
3352
3353 --
3354 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3355 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3356 --
3357 -- bulk performance
3358 --
3359 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3360
3361 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3362 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3363
3364 -- 4955764
3365 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3366 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
3367
3368 -- 4458381 Public Sector Enh
3369
3370 --
3371 -- set accounting attributes for the line type
3372 --
3373 l_entered_amt_idx := 17;
3374 l_accted_amt_idx := 19;
3375 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3376 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
3377 l_rec_acct_attrs.array_num_value(1) := p_source_7;
3378 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
3382 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
3379 l_rec_acct_attrs.array_char_value(2) := p_source_8;
3380 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
3381 l_rec_acct_attrs.array_char_value(3) := p_source_9;
3383 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_10);
3384 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
3385 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_11);
3386 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
3387 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_12);
3388 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
3389 l_rec_acct_attrs.array_char_value(7) := p_source_13;
3390 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
3391 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_14);
3392 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
3393 l_rec_acct_attrs.array_num_value(9) := p_source_15;
3394 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
3395 l_rec_acct_attrs.array_char_value(10) := p_source_16;
3396 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
3397 l_rec_acct_attrs.array_num_value(11) := p_source_17;
3398 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
3399 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_14);
3400 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
3401 l_rec_acct_attrs.array_num_value(13) := p_source_15;
3402 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
3403 l_rec_acct_attrs.array_char_value(14) := p_source_16;
3404 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
3405 l_rec_acct_attrs.array_num_value(15) := p_source_17;
3406 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
3407 l_rec_acct_attrs.array_char_value(16) := p_source_18;
3408 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
3409 l_rec_acct_attrs.array_num_value(17) := p_source_15;
3410 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
3411 l_rec_acct_attrs.array_char_value(18) := p_source_16;
3412 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
3413 l_rec_acct_attrs.array_num_value(19) := p_source_17;
3414 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
3415 l_rec_acct_attrs.array_num_value(20) := p_source_19;
3416 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
3417 l_rec_acct_attrs.array_num_value(21) := p_source_19;
3418
3419 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
3420 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
3421
3422 ---------------------------------------------------------------------------------------------------------------
3423 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
3424 ---------------------------------------------------------------------------------------------------------------
3425 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
3426
3427 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3428 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3429
3430 IF xla_accounting_cache_pkg.GetValueChar
3431 (p_source_code => 'LEDGER_CATEGORY_CODE'
3432 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
3433 AND l_bflow_method_code = 'PRIOR_ENTRY'
3434 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
3435 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
3436 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
3437 )
3438 THEN
3439 xla_ae_lines_pkg.BflowUpgEntry
3440 (p_business_method_code => l_bflow_method_code
3441 ,p_business_class_code => l_bflow_class_code
3442 ,p_balance_type => l_balance_type_code);
3443 ELSE
3444 NULL;
3445 XLA_AE_LINES_PKG.business_flow_validation(
3446 p_business_method_code => l_bflow_method_code
3447 ,p_business_class_code => l_bflow_class_code
3448 ,p_inherit_description_flag => l_inherit_desc_flag);
3449 END IF;
3450
3451 --
3452 -- call analytical criteria
3453 --
3454 -- Inherited Analytical Criteria for business flow method of Prior Entry.
3455 --
3456 -- call description
3457 --
3458 -- No description or it is inherited.
3459 --
3460 -- call ADRs
3461 -- Bug 4922099
3462 --
3463 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3464 (NVL(l_actual_upg_option, 'N') = 'O') OR
3465 (NVL(l_enc_upg_option, 'N') = 'O')
3466 )
3467 THEN
3468 NULL;
3469 --
3470 --
3471
3472 --
3473 --
3474 END IF;
3475 --
3476 -- Bug 4922099
3477 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
3478 (NVL(l_enc_upg_option, 'N') = 'O')
3479 ) AND
3480 (l_bflow_method_code = 'PRIOR_ENTRY')
3481 )
3482 THEN
3483 IF
3484 --
3485 1 = 1
3486 --
3487 THEN
3488 xla_accounting_err_pkg.build_message
3492 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
3489 (p_appli_s_name => 'XLA'
3490 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3491 ,p_token_1 => 'LINE_NUMBER'
3493 ,p_token_2 => 'LINE_TYPE_NAME'
3494 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
3495 l_component_type
3496 ,l_component_code
3497 ,l_component_type_code
3498 ,l_component_appl_id
3499 ,l_amb_context_code
3500 ,l_entity_code
3501 ,l_event_class_code
3502 )
3503 ,p_token_3 => 'OWNER'
3504 ,p_value_3 => xla_lookups_pkg.get_meaning(
3505 p_lookup_type => 'XLA_OWNER_TYPE'
3506 ,p_lookup_code => l_component_type_code
3507 )
3508 ,p_token_4 => 'PRODUCT_NAME'
3509 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
3510 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
3511 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
3512 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
3513 ,p_ae_header_id => NULL
3514 );
3515
3516 IF (C_LEVEL_ERROR>= g_log_level) THEN
3517 trace
3518 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3519 ,p_level => C_LEVEL_ERROR
3520 ,p_module => l_log_module);
3521 END IF;
3522 END IF;
3523 END IF;
3524 --
3525 --
3526 ------------------------------------------------------------------------------------------------
3527 -- 4219869 Business Flow
3528 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
3529 -- Prior Entry. Currently, the following code is always generated.
3530 ------------------------------------------------------------------------------------------------
3531 -- No ValidateCurrentLine for business flow method of Prior Entry
3532
3533 ------------------------------------------------------------------------------------
3534 -- 4219869 Business Flow
3535 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
3536 ------------------------------------------------------------------------------------
3537 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3538
3539 ----------------------------------------------------------------------------------
3540 -- 4219869 Business Flow
3541 -- Update journal entry status -- Need to generate this within IF <condition>
3542 ----------------------------------------------------------------------------------
3543 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3544 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
3545 ,p_balance_type_code => l_balance_type_code
3546 );
3547
3548 -------------------------------------------------------------------------------------------
3549 -- 4262811 - Generate the Accrual Reversal lines
3550 -------------------------------------------------------------------------------------------
3551 BEGIN
3552 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
3553 (g_array_event(p_event_id).array_value_num('header_index'));
3554 IF l_acc_rev_flag IS NULL THEN
3555 l_acc_rev_flag := 'N';
3556 END IF;
3557 EXCEPTION
3558 WHEN OTHERS THEN
3559 l_acc_rev_flag := 'N';
3560 END;
3561 --
3562 IF (l_acc_rev_flag = 'Y') THEN
3563
3564 -- 4645092 ------------------------------------------------------------------------------
3565 -- To allow MPA report to determine if it should generate report process
3566 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3567 ------------------------------------------------------------------------------------------
3568
3569 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3570 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3571 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
3572 -- call ADRs
3573 -- Bug 4922099
3574 --
3575 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3576 (NVL(l_actual_upg_option, 'N') = 'O') OR
3580 NULL;
3577 (NVL(l_enc_upg_option, 'N') = 'O')
3578 )
3579 THEN
3581 --
3582 --
3583
3584 --
3585 --
3586 END IF;
3587
3588 --
3589 -- Update the line information that should be overwritten
3590 --
3591 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3592 p_header_num => 1);
3593 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3594
3595 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3596
3597 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3598 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3599 END IF;
3600
3601 --
3602 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3603 --
3604 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3605 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3606 ELSE
3607 ---------------------------------------------------------------------------------------------------
3608 -- 4262811a Switch Sign
3609 ---------------------------------------------------------------------------------------------------
3610 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3611 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3612 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3613 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3614 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3615 -- 5132302
3616 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3617 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3618
3619 END IF;
3620
3621 -- 4955764
3622 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3623 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3624
3625
3626 XLA_AE_LINES_PKG.ValidateCurrentLine;
3627 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3628
3629 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3630 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3631 ,p_balance_type_code => l_balance_type_code);
3632
3633 END IF;
3634
3635 -----------------------------------------------------------------------------------------
3636 -- 4262811 Multiperiod Accounting
3637 -----------------------------------------------------------------------------------------
3638 -- No MPA option is assigned.
3639
3640
3641 END IF;
3642 END IF;
3643 --
3644
3645 --
3646 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3647 trace
3648 (p_msg => 'END of AcctLineType_7'
3649 ,p_level => C_LEVEL_PROCEDURE
3650 ,p_module => l_log_module);
3651 END IF;
3652 --
3653 EXCEPTION
3654 WHEN xla_exceptions_pkg.application_exception THEN
3655 RAISE;
3656 WHEN OTHERS THEN
3657 xla_exceptions_pkg.raise_message
3658 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.AcctLineType_7');
3659 END AcctLineType_7;
3660 --
3661
3662 ---------------------------------------
3663 --
3664 -- PRIVATE FUNCTION
3665 -- AcctLineType_8
3666 --
3667 ---------------------------------------
3668 PROCEDURE AcctLineType_8 (
3669 p_application_id IN NUMBER
3670 ,p_event_id IN NUMBER
3671 ,p_calculate_acctd_flag IN VARCHAR2
3672 ,p_calculate_g_l_flag IN VARCHAR2
3673 ,p_actual_flag IN OUT VARCHAR2
3674 ,p_balance_type_code OUT VARCHAR2
3675 ,p_gain_or_loss_ref OUT VARCHAR2
3676
3677 --Purchasing Encumbrance Flag
3678 , p_source_2 IN VARCHAR2
3679 --Applied to Application ID
3680 , p_source_7 IN NUMBER
3681 --Applied to Distribution Link Type
3682 , p_source_8 IN VARCHAR2
3683 --Applied to Entity Code
3684 , p_source_9 IN VARCHAR2
3685 --Applied To Purchase Document Identifier
3686 , p_source_11 IN NUMBER
3687 --DISTRIBUTION_IDENTIFIER
3688 , p_source_12 IN NUMBER
3689 --Distribution Type
3690 , p_source_13 IN VARCHAR2
3691 , p_source_13_meaning IN VARCHAR2
3692 --PO Budget Account
3693 , p_source_14 IN NUMBER
3694 --Encumbrance Reversal Amount Entered
3695 , p_source_15 IN NUMBER
3696 --Entered Currency Code
3697 , p_source_16 IN VARCHAR2
3698 --Transaction Encumbrance Reversal Amount
3699 , p_source_17 IN NUMBER
3700 --Purchasing Encumbrance Type Identifier
3701 , p_source_19 IN NUMBER
3702 --Receiving Accounting Line Type
3703 , p_source_25 IN VARCHAR2
3704 --PO_DISTRIBUTION_ID
3705 , p_source_26 IN NUMBER
3709 IS
3706 --Costing Period End Accrual Encumbrance Upgrade Option
3707 , p_source_27 IN VARCHAR2
3708 )
3710
3711 l_component_type VARCHAR2(80);
3712 l_component_code VARCHAR2(30);
3713 l_component_type_code VARCHAR2(1);
3714 l_component_appl_id INTEGER;
3715 l_amb_context_code VARCHAR2(30);
3716 l_entity_code VARCHAR2(30);
3717 l_event_class_code VARCHAR2(30);
3718 l_ae_header_id NUMBER;
3719 l_event_type_code VARCHAR2(30);
3720 l_line_definition_code VARCHAR2(30);
3721 l_line_definition_owner_code VARCHAR2(1);
3722 --
3723 -- adr variables
3724 l_segment VARCHAR2(30);
3725 l_ccid NUMBER;
3726 l_adr_transaction_coa_id NUMBER;
3727 l_adr_accounting_coa_id NUMBER;
3728 l_adr_flexfield_segment_code VARCHAR2(30);
3729 l_adr_flex_value_set_id NUMBER;
3730 l_adr_value_type_code VARCHAR2(30);
3731 l_adr_value_combination_id NUMBER;
3732 l_adr_value_segment_code VARCHAR2(30);
3733
3734 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3735 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3736 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3737 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3738
3739 -- 4262811 Variables ------------------------------------------------------------------------------------------
3740 l_entered_amt_idx NUMBER;
3741 l_accted_amt_idx NUMBER;
3742 l_acc_rev_flag VARCHAR2(1);
3743 l_accrual_line_num NUMBER;
3744 l_tmp_amt NUMBER;
3745 l_acc_rev_natural_side_code VARCHAR2(1);
3746
3747 l_num_entries NUMBER;
3748 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3749 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3750 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3751 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3752 l_recog_line_1 NUMBER;
3753 l_recog_line_2 NUMBER;
3754
3755 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3756 l_bflow_applied_to_amt NUMBER; -- 5132302
3757 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3758
3759 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3760
3761 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3762 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3763
3764 ---------------------------------------------------------------------------------------------------------------
3765
3766
3767 --
3768 -- bulk performance
3769 --
3770 l_balance_type_code VARCHAR2(1);
3771 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3772 l_log_module VARCHAR2(240);
3773
3774 --
3775 -- Upgrade strategy
3776 --
3777 l_actual_upg_option VARCHAR2(1);
3778 l_enc_upg_option VARCHAR2(1);
3779
3780 --
3781 BEGIN
3782 --
3783 IF g_log_enabled THEN
3784 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_8';
3785 END IF;
3786 --
3787 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3788
3789 trace
3790 (p_msg => 'BEGIN of AcctLineType_8'
3791 ,p_level => C_LEVEL_PROCEDURE
3792 ,p_module => l_log_module);
3793
3794 END IF;
3795 --
3796 l_component_type := 'AMB_JLT';
3797 l_component_code := 'RELIEVE_PO_ENC_ON_PEA';
3798 l_component_type_code := 'S';
3799 l_component_appl_id := 707;
3800 l_amb_context_code := 'DEFAULT';
3801 l_entity_code := 'RCV_ACCOUNTING_EVENTS';
3802 l_event_class_code := 'PERIOD_END_ACCRUAL';
3803 l_event_type_code := 'PERIOD_END_ACCRUAL_ALL';
3804 l_line_definition_owner_code := 'S';
3805 l_line_definition_code := 'PO_ENCUM_FOR_PERIOD_END_ACCR';
3806 --
3807 l_balance_type_code := 'E';
3808 l_segment := NULL;
3809 l_ccid := NULL;
3810 l_adr_transaction_coa_id := NULL;
3811 l_adr_accounting_coa_id := NULL;
3812 l_adr_flexfield_segment_code := NULL;
3813 l_adr_flex_value_set_id := NULL;
3814 l_adr_value_type_code := NULL;
3815 l_adr_value_combination_id := NULL;
3816 l_adr_value_segment_code := NULL;
3817
3818 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
3819 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
3820 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
3821 l_budgetary_control_flag := 'Y';
3822
3823 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3824 l_bflow_applied_to_amt := NULL; -- 5132302
3825 l_entered_amt_idx := NULL; -- 4262811
3826 l_accted_amt_idx := NULL; -- 4262811
3827 l_acc_rev_flag := NULL; -- 4262811
3828 l_accrual_line_num := NULL; -- 4262811
3829 l_tmp_amt := NULL; -- 4262811
3830 --
3831
3835 ') = 'Y' AND
3832 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3833 l_balance_type_code <> 'B' THEN
3834 IF NVL(p_source_2,'
3836 NVL(
3837 xla_ae_sources_pkg.GetSystemSourceChar(
3838 p_source_code => 'XLA_EVENT_TYPE_CODE'
3839 , p_source_type_code => 'Y'
3840 , p_source_application_id => 602
3841 ),'
3842 ') = 'PERIOD_END_ACCRUAL' AND
3843 NVL(p_source_25,'
3844 ') = 'Charge'
3845 THEN
3846
3847 --
3848 XLA_AE_LINES_PKG.SetNewLine;
3849
3850 p_balance_type_code := l_balance_type_code;
3851 -- set the flag so later we will know whether the gain loss line needs to be created
3852
3853 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
3854 p_actual_flag :='A';
3855 END IF;
3856
3857 --
3858 -- bulk performance
3859 --
3860 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3861 p_header_num => 0); -- 4262811
3862 --
3863 -- set accounting line options
3864 --
3865 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3866 p_natural_side_code => 'D'
3867 , p_gain_or_loss_flag => 'N'
3868 , p_gl_transfer_mode_code => 'S'
3869 , p_acct_entry_type_code => 'E'
3870 , p_switch_side_flag => 'Y'
3871 , p_merge_duplicate_code => 'N'
3872 );
3873 --
3874 l_acc_rev_natural_side_code := 'C'; -- 4262811
3875 --
3876 --
3877 -- set accounting line type info
3878 --
3879 xla_ae_lines_pkg.SetAcctLineType
3880 (p_component_type => l_component_type
3881 ,p_event_type_code => l_event_type_code
3882 ,p_line_definition_owner_code => l_line_definition_owner_code
3883 ,p_line_definition_code => l_line_definition_code
3884 ,p_accounting_line_code => l_component_code
3885 ,p_accounting_line_type_code => l_component_type_code
3886 ,p_accounting_line_appl_id => l_component_appl_id
3887 ,p_amb_context_code => l_amb_context_code
3888 ,p_entity_code => l_entity_code
3889 ,p_event_class_code => l_event_class_code);
3890 --
3891 -- set accounting class
3892 --
3893 xla_ae_lines_pkg.SetAcctClass(
3894 p_accounting_class_code => 'PURCHASE_ORDER'
3895 , p_ae_header_id => l_ae_header_id
3896 );
3897
3898 --
3899 -- set rounding class
3900 --
3901 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3902 'PURCHASE_ORDER';
3903
3904 --
3905 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3906 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3907 --
3908 -- bulk performance
3909 --
3910 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3911
3912 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3913 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3914
3915 -- 4955764
3916 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3917 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
3918
3919 -- 4458381 Public Sector Enh
3920
3921 --
3922 -- set accounting attributes for the line type
3923 --
3924 l_entered_amt_idx := 17;
3925 l_accted_amt_idx := 19;
3926 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3927 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
3928 l_rec_acct_attrs.array_num_value(1) := p_source_7;
3929 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
3930 l_rec_acct_attrs.array_char_value(2) := p_source_8;
3931 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
3932 l_rec_acct_attrs.array_char_value(3) := p_source_9;
3933 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
3934 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_26);
3935 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
3936 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_11);
3937 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
3938 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_12);
3939 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
3940 l_rec_acct_attrs.array_char_value(7) := p_source_13;
3941 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
3942 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_14);
3943 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
3944 l_rec_acct_attrs.array_num_value(9) := p_source_15;
3945 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
3946 l_rec_acct_attrs.array_char_value(10) := p_source_16;
3947 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
3948 l_rec_acct_attrs.array_num_value(11) := p_source_17;
3949 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
3950 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_14);
3954 l_rec_acct_attrs.array_char_value(14) := p_source_16;
3951 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
3952 l_rec_acct_attrs.array_num_value(13) := p_source_15;
3953 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
3955 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
3956 l_rec_acct_attrs.array_num_value(15) := p_source_17;
3957 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
3958 l_rec_acct_attrs.array_char_value(16) := p_source_27;
3959 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
3960 l_rec_acct_attrs.array_num_value(17) := p_source_15;
3961 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
3962 l_rec_acct_attrs.array_char_value(18) := p_source_16;
3963 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
3964 l_rec_acct_attrs.array_num_value(19) := p_source_17;
3965 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
3966 l_rec_acct_attrs.array_num_value(20) := p_source_19;
3967 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
3968 l_rec_acct_attrs.array_num_value(21) := p_source_19;
3969
3970 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
3971 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
3972
3973 ---------------------------------------------------------------------------------------------------------------
3974 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
3975 ---------------------------------------------------------------------------------------------------------------
3976 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
3977
3978 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3979 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3980
3981 IF xla_accounting_cache_pkg.GetValueChar
3982 (p_source_code => 'LEDGER_CATEGORY_CODE'
3983 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
3984 AND l_bflow_method_code = 'PRIOR_ENTRY'
3985 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
3986 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
3987 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
3988 )
3989 THEN
3990 xla_ae_lines_pkg.BflowUpgEntry
3991 (p_business_method_code => l_bflow_method_code
3992 ,p_business_class_code => l_bflow_class_code
3993 ,p_balance_type => l_balance_type_code);
3994 ELSE
3995 NULL;
3996 XLA_AE_LINES_PKG.business_flow_validation(
3997 p_business_method_code => l_bflow_method_code
3998 ,p_business_class_code => l_bflow_class_code
3999 ,p_inherit_description_flag => l_inherit_desc_flag);
4000 END IF;
4001
4002 --
4003 -- call analytical criteria
4004 --
4005 -- Inherited Analytical Criteria for business flow method of Prior Entry.
4006 --
4007 -- call description
4008 --
4009 -- No description or it is inherited.
4010 --
4011 -- call ADRs
4012 -- Bug 4922099
4013 --
4014 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4015 (NVL(l_actual_upg_option, 'N') = 'O') OR
4016 (NVL(l_enc_upg_option, 'N') = 'O')
4017 )
4018 THEN
4019 NULL;
4020 --
4021 --
4022
4023 --
4024 --
4025 END IF;
4026 --
4027 -- Bug 4922099
4028 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4029 (NVL(l_enc_upg_option, 'N') = 'O')
4030 ) AND
4031 (l_bflow_method_code = 'PRIOR_ENTRY')
4032 )
4033 THEN
4034 IF
4035 --
4036 1 = 1
4037 --
4038 THEN
4039 xla_accounting_err_pkg.build_message
4040 (p_appli_s_name => 'XLA'
4041 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4042 ,p_token_1 => 'LINE_NUMBER'
4043 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4044 ,p_token_2 => 'LINE_TYPE_NAME'
4045 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4046 l_component_type
4047 ,l_component_code
4048 ,l_component_type_code
4049 ,l_component_appl_id
4050 ,l_amb_context_code
4051 ,l_entity_code
4052 ,l_event_class_code
4053 )
4054 ,p_token_3 => 'OWNER'
4058 )
4055 ,p_value_3 => xla_lookups_pkg.get_meaning(
4056 p_lookup_type => 'XLA_OWNER_TYPE'
4057 ,p_lookup_code => l_component_type_code
4059 ,p_token_4 => 'PRODUCT_NAME'
4060 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4061 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4062 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4063 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4064 ,p_ae_header_id => NULL
4065 );
4066
4067 IF (C_LEVEL_ERROR>= g_log_level) THEN
4068 trace
4069 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4070 ,p_level => C_LEVEL_ERROR
4071 ,p_module => l_log_module);
4072 END IF;
4073 END IF;
4074 END IF;
4075 --
4076 --
4077 ------------------------------------------------------------------------------------------------
4078 -- 4219869 Business Flow
4079 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4080 -- Prior Entry. Currently, the following code is always generated.
4081 ------------------------------------------------------------------------------------------------
4082 -- No ValidateCurrentLine for business flow method of Prior Entry
4083
4084 ------------------------------------------------------------------------------------
4085 -- 4219869 Business Flow
4086 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4087 ------------------------------------------------------------------------------------
4088 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4089
4090 ----------------------------------------------------------------------------------
4091 -- 4219869 Business Flow
4092 -- Update journal entry status -- Need to generate this within IF <condition>
4093 ----------------------------------------------------------------------------------
4094 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4095 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4096 ,p_balance_type_code => l_balance_type_code
4097 );
4098
4099 -------------------------------------------------------------------------------------------
4100 -- 4262811 - Generate the Accrual Reversal lines
4101 -------------------------------------------------------------------------------------------
4102 BEGIN
4103 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4104 (g_array_event(p_event_id).array_value_num('header_index'));
4105 IF l_acc_rev_flag IS NULL THEN
4106 l_acc_rev_flag := 'N';
4107 END IF;
4108 EXCEPTION
4109 WHEN OTHERS THEN
4110 l_acc_rev_flag := 'N';
4111 END;
4112 --
4113 IF (l_acc_rev_flag = 'Y') THEN
4114
4115 -- 4645092 ------------------------------------------------------------------------------
4116 -- To allow MPA report to determine if it should generate report process
4117 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4118 ------------------------------------------------------------------------------------------
4119
4120 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4121 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4122 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
4123 -- call ADRs
4124 -- Bug 4922099
4125 --
4126 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4127 (NVL(l_actual_upg_option, 'N') = 'O') OR
4128 (NVL(l_enc_upg_option, 'N') = 'O')
4129 )
4130 THEN
4131 NULL;
4132 --
4133 --
4134
4135 --
4136 --
4137 END IF;
4138
4139 --
4140 -- Update the line information that should be overwritten
4141 --
4142 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4143 p_header_num => 1);
4144 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4145
4146 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4147
4148 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4149 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4150 END IF;
4151
4152 --
4153 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4154 --
4155 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4156 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4157 ELSE
4158 ---------------------------------------------------------------------------------------------------
4162 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4159 -- 4262811a Switch Sign
4160 ---------------------------------------------------------------------------------------------------
4161 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4163 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4164 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4165 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4166 -- 5132302
4167 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4168 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4169
4170 END IF;
4171
4172 -- 4955764
4173 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4174 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4175
4176
4177 XLA_AE_LINES_PKG.ValidateCurrentLine;
4178 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4179
4180 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4181 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4182 ,p_balance_type_code => l_balance_type_code);
4183
4184 END IF;
4185
4186 -----------------------------------------------------------------------------------------
4187 -- 4262811 Multiperiod Accounting
4188 -----------------------------------------------------------------------------------------
4189 -- No MPA option is assigned.
4190
4191
4192 END IF;
4193 END IF;
4194 --
4195
4196 --
4197 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4198 trace
4199 (p_msg => 'END of AcctLineType_8'
4200 ,p_level => C_LEVEL_PROCEDURE
4201 ,p_module => l_log_module);
4202 END IF;
4203 --
4204 EXCEPTION
4205 WHEN xla_exceptions_pkg.application_exception THEN
4206 RAISE;
4207 WHEN OTHERS THEN
4208 xla_exceptions_pkg.raise_message
4209 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.AcctLineType_8');
4210 END AcctLineType_8;
4211 --
4212
4213 ---------------------------------------
4214 --
4215 -- PRIVATE FUNCTION
4216 -- AcctLineType_9
4217 --
4218 ---------------------------------------
4219 PROCEDURE AcctLineType_9 (
4220 p_application_id IN NUMBER
4221 ,p_event_id IN NUMBER
4222 ,p_calculate_acctd_flag IN VARCHAR2
4223 ,p_calculate_g_l_flag IN VARCHAR2
4224 ,p_actual_flag IN OUT VARCHAR2
4225 ,p_balance_type_code OUT VARCHAR2
4226 ,p_gain_or_loss_ref OUT VARCHAR2
4227
4228 --Organization Encumbrance Reversal Indicator
4229 , p_source_4 IN VARCHAR2
4230 --Applied to Application ID
4231 , p_source_7 IN NUMBER
4232 --DISTRIBUTION_IDENTIFIER
4233 , p_source_12 IN NUMBER
4234 --Distribution Type
4235 , p_source_13 IN VARCHAR2
4236 , p_source_13_meaning IN VARCHAR2
4237 --Encumbrance Reversal Amount Entered
4238 , p_source_15 IN NUMBER
4239 --Entered Currency Code
4240 , p_source_16 IN VARCHAR2
4241 --Transaction Encumbrance Reversal Amount
4242 , p_source_17 IN NUMBER
4243 --Costing Encumbrance Upgrade Option
4244 , p_source_18 IN VARCHAR2
4245 --Requisition Encumbrance Flag
4246 , p_source_28 IN VARCHAR2
4247 --Requisition Reserved Flag
4248 , p_source_29 IN VARCHAR2
4249 --Business Flow Requisition Distribution Type
4250 , p_source_30 IN VARCHAR2
4251 --Business Flow Requisition Entity Code
4252 , p_source_31 IN VARCHAR2
4253 --Business Flow Requisition Distribution Identifier
4254 , p_source_32 IN NUMBER
4255 --Business Flow Requisition Identifier
4256 , p_source_33 IN NUMBER
4257 --Requisition Budget Account
4258 , p_source_34 IN NUMBER
4259 --Requisition Encumbrance Type Identifier
4260 , p_source_35 IN NUMBER
4261 )
4262 IS
4263
4264 l_component_type VARCHAR2(80);
4265 l_component_code VARCHAR2(30);
4266 l_component_type_code VARCHAR2(1);
4267 l_component_appl_id INTEGER;
4268 l_amb_context_code VARCHAR2(30);
4269 l_entity_code VARCHAR2(30);
4270 l_event_class_code VARCHAR2(30);
4271 l_ae_header_id NUMBER;
4272 l_event_type_code VARCHAR2(30);
4273 l_line_definition_code VARCHAR2(30);
4274 l_line_definition_owner_code VARCHAR2(1);
4275 --
4276 -- adr variables
4277 l_segment VARCHAR2(30);
4278 l_ccid NUMBER;
4279 l_adr_transaction_coa_id NUMBER;
4280 l_adr_accounting_coa_id NUMBER;
4281 l_adr_flexfield_segment_code VARCHAR2(30);
4282 l_adr_flex_value_set_id NUMBER;
4283 l_adr_value_type_code VARCHAR2(30);
4284 l_adr_value_combination_id NUMBER;
4285 l_adr_value_segment_code VARCHAR2(30);
4286
4287 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4291
4288 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4289 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4290 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4292 -- 4262811 Variables ------------------------------------------------------------------------------------------
4293 l_entered_amt_idx NUMBER;
4294 l_accted_amt_idx NUMBER;
4295 l_acc_rev_flag VARCHAR2(1);
4296 l_accrual_line_num NUMBER;
4297 l_tmp_amt NUMBER;
4298 l_acc_rev_natural_side_code VARCHAR2(1);
4299
4300 l_num_entries NUMBER;
4301 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4302 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4303 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4304 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4305 l_recog_line_1 NUMBER;
4306 l_recog_line_2 NUMBER;
4307
4308 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4309 l_bflow_applied_to_amt NUMBER; -- 5132302
4310 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4311
4312 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4313
4314 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4315 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4316
4317 ---------------------------------------------------------------------------------------------------------------
4318
4319
4320 --
4321 -- bulk performance
4322 --
4323 l_balance_type_code VARCHAR2(1);
4324 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4325 l_log_module VARCHAR2(240);
4326
4327 --
4328 -- Upgrade strategy
4329 --
4330 l_actual_upg_option VARCHAR2(1);
4331 l_enc_upg_option VARCHAR2(1);
4332
4333 --
4334 BEGIN
4335 --
4336 IF g_log_enabled THEN
4337 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_9';
4338 END IF;
4339 --
4340 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4341
4342 trace
4343 (p_msg => 'BEGIN of AcctLineType_9'
4344 ,p_level => C_LEVEL_PROCEDURE
4345 ,p_module => l_log_module);
4346
4347 END IF;
4348 --
4349 l_component_type := 'AMB_JLT';
4350 l_component_code := 'RELIEVE_REQ_ENC_ON_DIR';
4351 l_component_type_code := 'S';
4352 l_component_appl_id := 707;
4353 l_amb_context_code := 'DEFAULT';
4354 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
4355 l_event_class_code := 'DIR_INTERORG_RCPT';
4356 l_event_type_code := 'DIR_INTERORG_RCPT_ALL';
4357 l_line_definition_owner_code := 'S';
4358 l_line_definition_code := 'REQ_ENCUM_ON_DIR';
4359 --
4360 l_balance_type_code := 'E';
4361 l_segment := NULL;
4362 l_ccid := NULL;
4363 l_adr_transaction_coa_id := NULL;
4364 l_adr_accounting_coa_id := NULL;
4365 l_adr_flexfield_segment_code := NULL;
4366 l_adr_flex_value_set_id := NULL;
4367 l_adr_value_type_code := NULL;
4368 l_adr_value_combination_id := NULL;
4369 l_adr_value_segment_code := NULL;
4370
4371 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
4372 l_bflow_class_code := 'REQ_ENCUMBRANCE'; -- 4219869 Business Flow
4373 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
4374 l_budgetary_control_flag := 'Y';
4375
4376 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4377 l_bflow_applied_to_amt := NULL; -- 5132302
4378 l_entered_amt_idx := NULL; -- 4262811
4379 l_accted_amt_idx := NULL; -- 4262811
4380 l_acc_rev_flag := NULL; -- 4262811
4381 l_accrual_line_num := NULL; -- 4262811
4382 l_tmp_amt := NULL; -- 4262811
4383 --
4384
4385 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4386 l_balance_type_code <> 'B' THEN
4387 IF NVL(p_source_28,'
4388 ') = 'Y' AND
4389 NVL(p_source_4,'
4390 ') = 'Y' AND
4391 NVL(p_source_29,'
4392 ') = 'Y'
4393 THEN
4394
4395 --
4396 XLA_AE_LINES_PKG.SetNewLine;
4397
4398 p_balance_type_code := l_balance_type_code;
4399 -- set the flag so later we will know whether the gain loss line needs to be created
4400
4401 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
4402 p_actual_flag :='A';
4403 END IF;
4404
4405 --
4406 -- bulk performance
4407 --
4408 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4409 p_header_num => 0); -- 4262811
4410 --
4411 -- set accounting line options
4412 --
4413 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4414 p_natural_side_code => 'C'
4415 , p_gain_or_loss_flag => 'N'
4416 , p_gl_transfer_mode_code => 'S'
4417 , p_acct_entry_type_code => 'E'
4418 , p_switch_side_flag => 'N'
4419 , p_merge_duplicate_code => 'N'
4420 );
4421 --
4422 l_acc_rev_natural_side_code := 'D'; -- 4262811
4426 --
4423 --
4424 --
4425 -- set accounting line type info
4427 xla_ae_lines_pkg.SetAcctLineType
4428 (p_component_type => l_component_type
4429 ,p_event_type_code => l_event_type_code
4430 ,p_line_definition_owner_code => l_line_definition_owner_code
4431 ,p_line_definition_code => l_line_definition_code
4432 ,p_accounting_line_code => l_component_code
4433 ,p_accounting_line_type_code => l_component_type_code
4434 ,p_accounting_line_appl_id => l_component_appl_id
4435 ,p_amb_context_code => l_amb_context_code
4436 ,p_entity_code => l_entity_code
4437 ,p_event_class_code => l_event_class_code);
4438 --
4439 -- set accounting class
4440 --
4441 xla_ae_lines_pkg.SetAcctClass(
4442 p_accounting_class_code => 'REQUISITION'
4443 , p_ae_header_id => l_ae_header_id
4444 );
4445
4446 --
4447 -- set rounding class
4448 --
4449 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
4450 'REQUISITION';
4451
4452 --
4453 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
4454 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
4455 --
4456 -- bulk performance
4457 --
4458 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
4459
4460 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
4461 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
4462
4463 -- 4955764
4464 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4465 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4466
4467 -- 4458381 Public Sector Enh
4468
4469 --
4470 -- set accounting attributes for the line type
4471 --
4472 l_entered_amt_idx := 17;
4473 l_accted_amt_idx := 19;
4474 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4475 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
4476 l_rec_acct_attrs.array_num_value(1) := p_source_7;
4477 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
4478 l_rec_acct_attrs.array_char_value(2) := p_source_30;
4479 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
4480 l_rec_acct_attrs.array_char_value(3) := p_source_31;
4481 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
4482 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_32);
4483 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
4484 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_33);
4485 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
4486 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_12);
4487 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
4488 l_rec_acct_attrs.array_char_value(7) := p_source_13;
4489 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
4490 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_34);
4491 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
4492 l_rec_acct_attrs.array_num_value(9) := p_source_15;
4493 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
4494 l_rec_acct_attrs.array_char_value(10) := p_source_16;
4495 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
4496 l_rec_acct_attrs.array_num_value(11) := p_source_17;
4497 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
4498 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_34);
4499 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
4500 l_rec_acct_attrs.array_num_value(13) := p_source_15;
4501 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
4502 l_rec_acct_attrs.array_char_value(14) := p_source_16;
4503 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
4504 l_rec_acct_attrs.array_num_value(15) := p_source_17;
4505 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
4506 l_rec_acct_attrs.array_char_value(16) := p_source_18;
4507 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
4508 l_rec_acct_attrs.array_num_value(17) := p_source_15;
4509 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
4510 l_rec_acct_attrs.array_char_value(18) := p_source_16;
4511 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
4512 l_rec_acct_attrs.array_num_value(19) := p_source_17;
4513 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
4514 l_rec_acct_attrs.array_num_value(20) := p_source_35;
4515 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
4516 l_rec_acct_attrs.array_num_value(21) := p_source_35;
4517
4518 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4519 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4520
4521 ---------------------------------------------------------------------------------------------------------------
4522 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4526 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4523 ---------------------------------------------------------------------------------------------------------------
4524 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4525
4527 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4528
4529 IF xla_accounting_cache_pkg.GetValueChar
4530 (p_source_code => 'LEDGER_CATEGORY_CODE'
4531 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4532 AND l_bflow_method_code = 'PRIOR_ENTRY'
4533 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4534 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4535 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4536 )
4537 THEN
4538 xla_ae_lines_pkg.BflowUpgEntry
4539 (p_business_method_code => l_bflow_method_code
4540 ,p_business_class_code => l_bflow_class_code
4541 ,p_balance_type => l_balance_type_code);
4542 ELSE
4543 NULL;
4544 XLA_AE_LINES_PKG.business_flow_validation(
4545 p_business_method_code => l_bflow_method_code
4546 ,p_business_class_code => l_bflow_class_code
4547 ,p_inherit_description_flag => l_inherit_desc_flag);
4548 END IF;
4549
4550 --
4551 -- call analytical criteria
4552 --
4553 -- Inherited Analytical Criteria for business flow method of Prior Entry.
4554 --
4555 -- call description
4556 --
4557 -- No description or it is inherited.
4558 --
4559 -- call ADRs
4560 -- Bug 4922099
4561 --
4562 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4563 (NVL(l_actual_upg_option, 'N') = 'O') OR
4564 (NVL(l_enc_upg_option, 'N') = 'O')
4565 )
4566 THEN
4567 NULL;
4568 --
4569 --
4570
4571 --
4572 --
4573 END IF;
4574 --
4575 -- Bug 4922099
4576 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4577 (NVL(l_enc_upg_option, 'N') = 'O')
4578 ) AND
4579 (l_bflow_method_code = 'PRIOR_ENTRY')
4580 )
4581 THEN
4582 IF
4583 --
4584 1 = 1
4585 --
4586 THEN
4587 xla_accounting_err_pkg.build_message
4588 (p_appli_s_name => 'XLA'
4589 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4590 ,p_token_1 => 'LINE_NUMBER'
4591 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4592 ,p_token_2 => 'LINE_TYPE_NAME'
4593 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4594 l_component_type
4595 ,l_component_code
4596 ,l_component_type_code
4597 ,l_component_appl_id
4598 ,l_amb_context_code
4599 ,l_entity_code
4600 ,l_event_class_code
4601 )
4602 ,p_token_3 => 'OWNER'
4603 ,p_value_3 => xla_lookups_pkg.get_meaning(
4604 p_lookup_type => 'XLA_OWNER_TYPE'
4605 ,p_lookup_code => l_component_type_code
4606 )
4607 ,p_token_4 => 'PRODUCT_NAME'
4608 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4609 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4610 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4611 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4612 ,p_ae_header_id => NULL
4613 );
4614
4615 IF (C_LEVEL_ERROR>= g_log_level) THEN
4616 trace
4617 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4618 ,p_level => C_LEVEL_ERROR
4619 ,p_module => l_log_module);
4620 END IF;
4621 END IF;
4622 END IF;
4623 --
4624 --
4625 ------------------------------------------------------------------------------------------------
4626 -- 4219869 Business Flow
4630 -- No ValidateCurrentLine for business flow method of Prior Entry
4627 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4628 -- Prior Entry. Currently, the following code is always generated.
4629 ------------------------------------------------------------------------------------------------
4631
4632 ------------------------------------------------------------------------------------
4633 -- 4219869 Business Flow
4634 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4635 ------------------------------------------------------------------------------------
4636 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4637
4638 ----------------------------------------------------------------------------------
4639 -- 4219869 Business Flow
4640 -- Update journal entry status -- Need to generate this within IF <condition>
4641 ----------------------------------------------------------------------------------
4642 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4643 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4644 ,p_balance_type_code => l_balance_type_code
4645 );
4646
4647 -------------------------------------------------------------------------------------------
4648 -- 4262811 - Generate the Accrual Reversal lines
4649 -------------------------------------------------------------------------------------------
4650 BEGIN
4651 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4652 (g_array_event(p_event_id).array_value_num('header_index'));
4653 IF l_acc_rev_flag IS NULL THEN
4654 l_acc_rev_flag := 'N';
4655 END IF;
4656 EXCEPTION
4657 WHEN OTHERS THEN
4658 l_acc_rev_flag := 'N';
4659 END;
4660 --
4661 IF (l_acc_rev_flag = 'Y') THEN
4662
4663 -- 4645092 ------------------------------------------------------------------------------
4664 -- To allow MPA report to determine if it should generate report process
4665 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4666 ------------------------------------------------------------------------------------------
4667
4668 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4669 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4670 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
4671 -- call ADRs
4672 -- Bug 4922099
4673 --
4674 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4675 (NVL(l_actual_upg_option, 'N') = 'O') OR
4676 (NVL(l_enc_upg_option, 'N') = 'O')
4677 )
4678 THEN
4679 NULL;
4680 --
4681 --
4682
4683 --
4684 --
4685 END IF;
4686
4687 --
4688 -- Update the line information that should be overwritten
4689 --
4690 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4691 p_header_num => 1);
4692 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4693
4694 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4695
4696 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4697 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4698 END IF;
4699
4700 --
4701 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4702 --
4703 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4704 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4705 ELSE
4706 ---------------------------------------------------------------------------------------------------
4707 -- 4262811a Switch Sign
4708 ---------------------------------------------------------------------------------------------------
4709 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4710 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4711 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4712 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4713 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4714 -- 5132302
4715 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4716 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4717
4718 END IF;
4719
4720 -- 4955764
4721 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4722 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4723
4724
4725 XLA_AE_LINES_PKG.ValidateCurrentLine;
4726 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4727
4728 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4732 END IF;
4729 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4730 ,p_balance_type_code => l_balance_type_code);
4731
4733
4734 -----------------------------------------------------------------------------------------
4735 -- 4262811 Multiperiod Accounting
4736 -----------------------------------------------------------------------------------------
4737 -- No MPA option is assigned.
4738
4739
4740 END IF;
4741 END IF;
4742 --
4743
4744 --
4745 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4746 trace
4747 (p_msg => 'END of AcctLineType_9'
4748 ,p_level => C_LEVEL_PROCEDURE
4749 ,p_module => l_log_module);
4750 END IF;
4751 --
4752 EXCEPTION
4753 WHEN xla_exceptions_pkg.application_exception THEN
4754 RAISE;
4755 WHEN OTHERS THEN
4756 xla_exceptions_pkg.raise_message
4757 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.AcctLineType_9');
4758 END AcctLineType_9;
4759 --
4760
4761 ---------------------------------------
4762 --
4763 -- PRIVATE FUNCTION
4764 -- AcctLineType_10
4765 --
4766 ---------------------------------------
4767 PROCEDURE AcctLineType_10 (
4768 p_application_id IN NUMBER
4769 ,p_event_id IN NUMBER
4770 ,p_calculate_acctd_flag IN VARCHAR2
4771 ,p_calculate_g_l_flag IN VARCHAR2
4772 ,p_actual_flag IN OUT VARCHAR2
4773 ,p_balance_type_code OUT VARCHAR2
4774 ,p_gain_or_loss_ref OUT VARCHAR2
4775
4776 --Organization Encumbrance Reversal Indicator
4777 , p_source_4 IN VARCHAR2
4778 --Accounting Line Type
4779 , p_source_6 IN NUMBER
4780 --Applied to Application ID
4781 , p_source_7 IN NUMBER
4782 --DISTRIBUTION_IDENTIFIER
4783 , p_source_12 IN NUMBER
4784 --Distribution Type
4785 , p_source_13 IN VARCHAR2
4786 , p_source_13_meaning IN VARCHAR2
4787 --Encumbrance Reversal Amount Entered
4788 , p_source_15 IN NUMBER
4789 --Entered Currency Code
4790 , p_source_16 IN VARCHAR2
4791 --Transaction Encumbrance Reversal Amount
4792 , p_source_17 IN NUMBER
4793 --Costing Encumbrance Upgrade Option
4794 , p_source_18 IN VARCHAR2
4795 --Requisition Encumbrance Flag
4796 , p_source_28 IN VARCHAR2
4797 --Requisition Reserved Flag
4798 , p_source_29 IN VARCHAR2
4799 --Business Flow Requisition Distribution Type
4800 , p_source_30 IN VARCHAR2
4801 --Business Flow Requisition Entity Code
4802 , p_source_31 IN VARCHAR2
4803 --Business Flow Requisition Distribution Identifier
4804 , p_source_32 IN NUMBER
4805 --Business Flow Requisition Identifier
4806 , p_source_33 IN NUMBER
4807 --Requisition Budget Account
4808 , p_source_34 IN NUMBER
4809 --Requisition Encumbrance Type Identifier
4810 , p_source_35 IN NUMBER
4811 )
4812 IS
4813
4814 l_component_type VARCHAR2(80);
4815 l_component_code VARCHAR2(30);
4816 l_component_type_code VARCHAR2(1);
4817 l_component_appl_id INTEGER;
4818 l_amb_context_code VARCHAR2(30);
4819 l_entity_code VARCHAR2(30);
4820 l_event_class_code VARCHAR2(30);
4821 l_ae_header_id NUMBER;
4822 l_event_type_code VARCHAR2(30);
4823 l_line_definition_code VARCHAR2(30);
4824 l_line_definition_owner_code VARCHAR2(1);
4825 --
4826 -- adr variables
4827 l_segment VARCHAR2(30);
4828 l_ccid NUMBER;
4829 l_adr_transaction_coa_id NUMBER;
4830 l_adr_accounting_coa_id NUMBER;
4831 l_adr_flexfield_segment_code VARCHAR2(30);
4832 l_adr_flex_value_set_id NUMBER;
4833 l_adr_value_type_code VARCHAR2(30);
4834 l_adr_value_combination_id NUMBER;
4835 l_adr_value_segment_code VARCHAR2(30);
4836
4837 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4838 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4839 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4840 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4841
4842 -- 4262811 Variables ------------------------------------------------------------------------------------------
4843 l_entered_amt_idx NUMBER;
4844 l_accted_amt_idx NUMBER;
4845 l_acc_rev_flag VARCHAR2(1);
4846 l_accrual_line_num NUMBER;
4847 l_tmp_amt NUMBER;
4848 l_acc_rev_natural_side_code VARCHAR2(1);
4849
4850 l_num_entries NUMBER;
4851 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4852 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4853 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4854 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4855 l_recog_line_1 NUMBER;
4856 l_recog_line_2 NUMBER;
4857
4858 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4859 l_bflow_applied_to_amt NUMBER; -- 5132302
4860 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4861
4862 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4863
4867 ---------------------------------------------------------------------------------------------------------------
4864 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4865 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4866
4868
4869
4870 --
4871 -- bulk performance
4872 --
4873 l_balance_type_code VARCHAR2(1);
4874 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4875 l_log_module VARCHAR2(240);
4876
4877 --
4878 -- Upgrade strategy
4879 --
4880 l_actual_upg_option VARCHAR2(1);
4881 l_enc_upg_option VARCHAR2(1);
4882
4883 --
4884 BEGIN
4885 --
4886 IF g_log_enabled THEN
4887 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_10';
4888 END IF;
4889 --
4890 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4891
4892 trace
4893 (p_msg => 'BEGIN of AcctLineType_10'
4894 ,p_level => C_LEVEL_PROCEDURE
4895 ,p_module => l_log_module);
4896
4897 END IF;
4898 --
4899 l_component_type := 'AMB_JLT';
4900 l_component_code := 'RELIEVE_REQ_ENC_ON_REC_IIRFOBR';
4901 l_component_type_code := 'S';
4902 l_component_appl_id := 707;
4903 l_amb_context_code := 'DEFAULT';
4904 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
4905 l_event_class_code := 'FOB_RCPT_RECIPIENT_RCPT';
4906 l_event_type_code := 'FOB_RCPT_RECIPIENT_RCPT_ALL';
4907 l_line_definition_owner_code := 'S';
4908 l_line_definition_code := 'REQ_ENCUM_ON_REC_IIRFOBR';
4909 --
4910 l_balance_type_code := 'E';
4911 l_segment := NULL;
4912 l_ccid := NULL;
4913 l_adr_transaction_coa_id := NULL;
4914 l_adr_accounting_coa_id := NULL;
4915 l_adr_flexfield_segment_code := NULL;
4916 l_adr_flex_value_set_id := NULL;
4917 l_adr_value_type_code := NULL;
4918 l_adr_value_combination_id := NULL;
4919 l_adr_value_segment_code := NULL;
4920
4921 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
4922 l_bflow_class_code := 'REQ_ENCUMBRANCE'; -- 4219869 Business Flow
4923 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
4924 l_budgetary_control_flag := 'Y';
4925
4926 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4927 l_bflow_applied_to_amt := NULL; -- 5132302
4928 l_entered_amt_idx := NULL; -- 4262811
4929 l_accted_amt_idx := NULL; -- 4262811
4930 l_acc_rev_flag := NULL; -- 4262811
4931 l_accrual_line_num := NULL; -- 4262811
4932 l_tmp_amt := NULL; -- 4262811
4933 --
4934
4935 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4936 l_balance_type_code <> 'B' THEN
4937 IF NVL(p_source_28,'
4938 ') = 'Y' AND
4939 NVL(p_source_4,'
4940 ') = 'Y' AND
4941 NVL(p_source_29,'
4942 ') = 'Y' AND
4943 NVL(p_source_6,9E125) = 15
4944 THEN
4945
4946 --
4947 XLA_AE_LINES_PKG.SetNewLine;
4948
4949 p_balance_type_code := l_balance_type_code;
4950 -- set the flag so later we will know whether the gain loss line needs to be created
4951
4952 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
4953 p_actual_flag :='A';
4954 END IF;
4955
4956 --
4957 -- bulk performance
4958 --
4959 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4960 p_header_num => 0); -- 4262811
4961 --
4962 -- set accounting line options
4963 --
4964 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4965 p_natural_side_code => 'C'
4966 , p_gain_or_loss_flag => 'N'
4967 , p_gl_transfer_mode_code => 'S'
4968 , p_acct_entry_type_code => 'E'
4969 , p_switch_side_flag => 'N'
4970 , p_merge_duplicate_code => 'N'
4971 );
4972 --
4973 l_acc_rev_natural_side_code := 'D'; -- 4262811
4974 --
4975 --
4976 -- set accounting line type info
4977 --
4978 xla_ae_lines_pkg.SetAcctLineType
4979 (p_component_type => l_component_type
4980 ,p_event_type_code => l_event_type_code
4981 ,p_line_definition_owner_code => l_line_definition_owner_code
4982 ,p_line_definition_code => l_line_definition_code
4983 ,p_accounting_line_code => l_component_code
4984 ,p_accounting_line_type_code => l_component_type_code
4985 ,p_accounting_line_appl_id => l_component_appl_id
4986 ,p_amb_context_code => l_amb_context_code
4987 ,p_entity_code => l_entity_code
4988 ,p_event_class_code => l_event_class_code);
4989 --
4990 -- set accounting class
4991 --
4992 xla_ae_lines_pkg.SetAcctClass(
4993 p_accounting_class_code => 'REQUISITION'
4994 , p_ae_header_id => l_ae_header_id
4995 );
4996
4997 --
4998 -- set rounding class
4999 --
5000 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5004 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5001 'REQUISITION';
5002
5003 --
5005 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5006 --
5007 -- bulk performance
5008 --
5009 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5010
5011 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5012 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5013
5014 -- 4955764
5015 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5016 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5017
5018 -- 4458381 Public Sector Enh
5019
5020 --
5021 -- set accounting attributes for the line type
5022 --
5023 l_entered_amt_idx := 17;
5024 l_accted_amt_idx := 19;
5025 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5026 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
5027 l_rec_acct_attrs.array_num_value(1) := p_source_7;
5028 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5029 l_rec_acct_attrs.array_char_value(2) := p_source_30;
5030 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
5031 l_rec_acct_attrs.array_char_value(3) := p_source_31;
5032 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
5033 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_32);
5034 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5035 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_33);
5036 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
5037 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_12);
5038 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
5039 l_rec_acct_attrs.array_char_value(7) := p_source_13;
5040 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_CCID';
5041 l_rec_acct_attrs.array_num_value(8) := TO_NUMBER(p_source_34);
5042 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_AMT';
5043 l_rec_acct_attrs.array_num_value(9) := p_source_15;
5044 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_ENTERED_CURR';
5045 l_rec_acct_attrs.array_char_value(10) := p_source_16;
5046 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_CR_LEDGER_AMT';
5047 l_rec_acct_attrs.array_num_value(11) := p_source_17;
5048 l_rec_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
5049 l_rec_acct_attrs.array_num_value(12) := TO_NUMBER(p_source_34);
5050 l_rec_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
5051 l_rec_acct_attrs.array_num_value(13) := p_source_15;
5052 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
5053 l_rec_acct_attrs.array_char_value(14) := p_source_16;
5054 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
5055 l_rec_acct_attrs.array_num_value(15) := p_source_17;
5056 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
5057 l_rec_acct_attrs.array_char_value(16) := p_source_18;
5058 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENTERED_CURRENCY_AMOUNT';
5059 l_rec_acct_attrs.array_num_value(17) := p_source_15;
5060 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENTERED_CURRENCY_CODE';
5061 l_rec_acct_attrs.array_char_value(18) := p_source_16;
5062 l_rec_acct_attrs.array_acct_attr_code(19) := 'LEDGER_AMOUNT';
5063 l_rec_acct_attrs.array_num_value(19) := p_source_17;
5064 l_rec_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
5065 l_rec_acct_attrs.array_num_value(20) := p_source_35;
5066 l_rec_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
5067 l_rec_acct_attrs.array_num_value(21) := p_source_35;
5068
5069 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5070 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5071
5072 ---------------------------------------------------------------------------------------------------------------
5073 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5074 ---------------------------------------------------------------------------------------------------------------
5075 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5076
5077 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5078 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5079
5080 IF xla_accounting_cache_pkg.GetValueChar
5081 (p_source_code => 'LEDGER_CATEGORY_CODE'
5082 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5083 AND l_bflow_method_code = 'PRIOR_ENTRY'
5084 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5085 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5086 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5087 )
5088 THEN
5089 xla_ae_lines_pkg.BflowUpgEntry
5090 (p_business_method_code => l_bflow_method_code
5091 ,p_business_class_code => l_bflow_class_code
5092 ,p_balance_type => l_balance_type_code);
5093 ELSE
5094 NULL;
5095 XLA_AE_LINES_PKG.business_flow_validation(
5099 END IF;
5096 p_business_method_code => l_bflow_method_code
5097 ,p_business_class_code => l_bflow_class_code
5098 ,p_inherit_description_flag => l_inherit_desc_flag);
5100
5101 --
5102 -- call analytical criteria
5103 --
5104 -- Inherited Analytical Criteria for business flow method of Prior Entry.
5105 --
5106 -- call description
5107 --
5108 -- No description or it is inherited.
5109 --
5110 -- call ADRs
5111 -- Bug 4922099
5112 --
5113 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5114 (NVL(l_actual_upg_option, 'N') = 'O') OR
5115 (NVL(l_enc_upg_option, 'N') = 'O')
5116 )
5117 THEN
5118 NULL;
5119 --
5120 --
5121
5122 --
5123 --
5124 END IF;
5125 --
5126 -- Bug 4922099
5127 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5128 (NVL(l_enc_upg_option, 'N') = 'O')
5129 ) AND
5130 (l_bflow_method_code = 'PRIOR_ENTRY')
5131 )
5132 THEN
5133 IF
5134 --
5135 1 = 1
5136 --
5137 THEN
5138 xla_accounting_err_pkg.build_message
5139 (p_appli_s_name => 'XLA'
5140 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5141 ,p_token_1 => 'LINE_NUMBER'
5142 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5143 ,p_token_2 => 'LINE_TYPE_NAME'
5144 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5145 l_component_type
5146 ,l_component_code
5147 ,l_component_type_code
5148 ,l_component_appl_id
5149 ,l_amb_context_code
5150 ,l_entity_code
5151 ,l_event_class_code
5152 )
5153 ,p_token_3 => 'OWNER'
5154 ,p_value_3 => xla_lookups_pkg.get_meaning(
5155 p_lookup_type => 'XLA_OWNER_TYPE'
5156 ,p_lookup_code => l_component_type_code
5157 )
5158 ,p_token_4 => 'PRODUCT_NAME'
5159 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5160 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5161 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5162 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5163 ,p_ae_header_id => NULL
5164 );
5165
5166 IF (C_LEVEL_ERROR>= g_log_level) THEN
5167 trace
5168 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5169 ,p_level => C_LEVEL_ERROR
5170 ,p_module => l_log_module);
5171 END IF;
5172 END IF;
5173 END IF;
5174 --
5175 --
5176 ------------------------------------------------------------------------------------------------
5177 -- 4219869 Business Flow
5178 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5179 -- Prior Entry. Currently, the following code is always generated.
5180 ------------------------------------------------------------------------------------------------
5181 -- No ValidateCurrentLine for business flow method of Prior Entry
5182
5183 ------------------------------------------------------------------------------------
5184 -- 4219869 Business Flow
5185 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5186 ------------------------------------------------------------------------------------
5187 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5188
5189 ----------------------------------------------------------------------------------
5190 -- 4219869 Business Flow
5191 -- Update journal entry status -- Need to generate this within IF <condition>
5192 ----------------------------------------------------------------------------------
5193 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5194 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5195 ,p_balance_type_code => l_balance_type_code
5196 );
5197
5198 -------------------------------------------------------------------------------------------
5202 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5199 -- 4262811 - Generate the Accrual Reversal lines
5200 -------------------------------------------------------------------------------------------
5201 BEGIN
5203 (g_array_event(p_event_id).array_value_num('header_index'));
5204 IF l_acc_rev_flag IS NULL THEN
5205 l_acc_rev_flag := 'N';
5206 END IF;
5207 EXCEPTION
5208 WHEN OTHERS THEN
5209 l_acc_rev_flag := 'N';
5210 END;
5211 --
5212 IF (l_acc_rev_flag = 'Y') THEN
5213
5214 -- 4645092 ------------------------------------------------------------------------------
5215 -- To allow MPA report to determine if it should generate report process
5216 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5217 ------------------------------------------------------------------------------------------
5218
5219 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5220 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5221 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
5222 -- call ADRs
5223 -- Bug 4922099
5224 --
5225 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5226 (NVL(l_actual_upg_option, 'N') = 'O') OR
5227 (NVL(l_enc_upg_option, 'N') = 'O')
5228 )
5229 THEN
5230 NULL;
5231 --
5232 --
5233
5234 --
5235 --
5236 END IF;
5237
5238 --
5239 -- Update the line information that should be overwritten
5240 --
5241 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5242 p_header_num => 1);
5243 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5244
5245 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5246
5247 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5248 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5249 END IF;
5250
5251 --
5252 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5253 --
5254 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5255 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5256 ELSE
5257 ---------------------------------------------------------------------------------------------------
5258 -- 4262811a Switch Sign
5259 ---------------------------------------------------------------------------------------------------
5260 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5261 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5262 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5263 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5264 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5265 -- 5132302
5266 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5267 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5268
5269 END IF;
5270
5271 -- 4955764
5272 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5273 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5274
5275
5276 XLA_AE_LINES_PKG.ValidateCurrentLine;
5277 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5278
5279 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5280 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5281 ,p_balance_type_code => l_balance_type_code);
5282
5283 END IF;
5284
5285 -----------------------------------------------------------------------------------------
5286 -- 4262811 Multiperiod Accounting
5287 -----------------------------------------------------------------------------------------
5288 -- No MPA option is assigned.
5289
5290
5291 END IF;
5292 END IF;
5293 --
5294
5295 --
5296 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5297 trace
5298 (p_msg => 'END of AcctLineType_10'
5299 ,p_level => C_LEVEL_PROCEDURE
5300 ,p_module => l_log_module);
5301 END IF;
5302 --
5303 EXCEPTION
5304 WHEN xla_exceptions_pkg.application_exception THEN
5305 RAISE;
5306 WHEN OTHERS THEN
5307 xla_exceptions_pkg.raise_message
5308 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.AcctLineType_10');
5309 END AcctLineType_10;
5310 --
5311
5312 ---------------------------------------
5313 --
5314 -- PRIVATE FUNCTION
5315 -- AcctLineType_11
5316 --
5317 ---------------------------------------
5318 PROCEDURE AcctLineType_11 (
5319 p_application_id IN NUMBER
5320 ,p_event_id IN NUMBER
5321 ,p_calculate_acctd_flag IN VARCHAR2
5325 ,p_gain_or_loss_ref OUT VARCHAR2
5322 ,p_calculate_g_l_flag IN VARCHAR2
5323 ,p_actual_flag IN OUT VARCHAR2
5324 ,p_balance_type_code OUT VARCHAR2
5326
5327 --Cost Management Default Account
5328 , p_source_1 IN NUMBER
5329 --Accounting Line Type
5330 , p_source_6 IN NUMBER
5331 --DISTRIBUTION_IDENTIFIER
5332 , p_source_12 IN NUMBER
5333 --Distribution Type
5334 , p_source_13 IN VARCHAR2
5335 , p_source_13_meaning IN VARCHAR2
5336 --Entered Currency Code
5337 , p_source_16 IN VARCHAR2
5338 --Entered Amount
5339 , p_source_20 IN NUMBER
5340 --Currency Conversion Date
5341 , p_source_21 IN DATE
5342 --Currency Conversion Rate
5343 , p_source_22 IN NUMBER
5344 --Currency Conversion Type
5345 , p_source_23 IN VARCHAR2
5346 --Accounted Amount
5347 , p_source_24 IN NUMBER
5348 )
5349 IS
5350
5351 l_component_type VARCHAR2(80);
5352 l_component_code VARCHAR2(30);
5353 l_component_type_code VARCHAR2(1);
5354 l_component_appl_id INTEGER;
5355 l_amb_context_code VARCHAR2(30);
5356 l_entity_code VARCHAR2(30);
5357 l_event_class_code VARCHAR2(30);
5358 l_ae_header_id NUMBER;
5359 l_event_type_code VARCHAR2(30);
5360 l_line_definition_code VARCHAR2(30);
5361 l_line_definition_owner_code VARCHAR2(1);
5362 --
5363 -- adr variables
5364 l_segment VARCHAR2(30);
5365 l_ccid NUMBER;
5366 l_adr_transaction_coa_id NUMBER;
5367 l_adr_accounting_coa_id NUMBER;
5368 l_adr_flexfield_segment_code VARCHAR2(30);
5369 l_adr_flex_value_set_id NUMBER;
5370 l_adr_value_type_code VARCHAR2(30);
5371 l_adr_value_combination_id NUMBER;
5372 l_adr_value_segment_code VARCHAR2(30);
5373
5374 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5375 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5376 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5377 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5378
5379 -- 4262811 Variables ------------------------------------------------------------------------------------------
5380 l_entered_amt_idx NUMBER;
5381 l_accted_amt_idx NUMBER;
5382 l_acc_rev_flag VARCHAR2(1);
5383 l_accrual_line_num NUMBER;
5384 l_tmp_amt NUMBER;
5385 l_acc_rev_natural_side_code VARCHAR2(1);
5386
5387 l_num_entries NUMBER;
5388 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5389 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5390 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5391 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5392 l_recog_line_1 NUMBER;
5393 l_recog_line_2 NUMBER;
5394
5395 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5396 l_bflow_applied_to_amt NUMBER; -- 5132302
5397 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5398
5399 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5400
5401 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5402 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5403
5404 ---------------------------------------------------------------------------------------------------------------
5405
5406
5407 --
5408 -- bulk performance
5409 --
5410 l_balance_type_code VARCHAR2(1);
5411 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5412 l_log_module VARCHAR2(240);
5413
5414 --
5415 -- Upgrade strategy
5416 --
5417 l_actual_upg_option VARCHAR2(1);
5418 l_enc_upg_option VARCHAR2(1);
5419
5420 --
5421 BEGIN
5422 --
5423 IF g_log_enabled THEN
5424 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_11';
5425 END IF;
5426 --
5427 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5428
5429 trace
5430 (p_msg => 'BEGIN of AcctLineType_11'
5431 ,p_level => C_LEVEL_PROCEDURE
5432 ,p_module => l_log_module);
5433
5434 END IF;
5435 --
5436 l_component_type := 'AMB_JLT';
5437 l_component_code := 'RELIEVE_REQ_ENC_ON_REC_IIRFOBS';
5438 l_component_type_code := 'S';
5439 l_component_appl_id := 707;
5440 l_amb_context_code := 'DEFAULT';
5441 l_entity_code := 'MTL_ACCOUNTING_EVENTS';
5442 l_event_class_code := 'FOB_SHIP_SENDER_SHIP';
5443 l_event_type_code := 'FOB_SHIP_SENDER_SHIP_ALL';
5444 l_line_definition_owner_code := 'S';
5445 l_line_definition_code := 'REQ_ENCUM_ON_REC_IIRFOBS';
5446 --
5447 l_balance_type_code := 'E';
5448 l_segment := NULL;
5449 l_ccid := NULL;
5450 l_adr_transaction_coa_id := NULL;
5451 l_adr_accounting_coa_id := NULL;
5452 l_adr_flexfield_segment_code := NULL;
5453 l_adr_flex_value_set_id := NULL;
5454 l_adr_value_type_code := NULL;
5455 l_adr_value_combination_id := NULL;
5456 l_adr_value_segment_code := NULL;
5457
5461 l_budgetary_control_flag := 'Y';
5458 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
5459 l_bflow_class_code := ''; -- 4219869 Business Flow
5460 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
5462
5463 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5464 l_bflow_applied_to_amt := NULL; -- 5132302
5465 l_entered_amt_idx := NULL; -- 4262811
5466 l_accted_amt_idx := NULL; -- 4262811
5467 l_acc_rev_flag := NULL; -- 4262811
5468 l_accrual_line_num := NULL; -- 4262811
5469 l_tmp_amt := NULL; -- 4262811
5470 --
5471
5472 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5473 l_balance_type_code <> 'B' THEN
5474 IF NVL(p_source_6,9E125) = 15
5475 THEN
5476
5477 --
5478 XLA_AE_LINES_PKG.SetNewLine;
5479
5480 p_balance_type_code := l_balance_type_code;
5481 -- set the flag so later we will know whether the gain loss line needs to be created
5482
5483 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5484 p_actual_flag :='A';
5485 END IF;
5486
5487 --
5488 -- bulk performance
5489 --
5490 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5491 p_header_num => 0); -- 4262811
5492 --
5493 -- set accounting line options
5494 --
5495 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5496 p_natural_side_code => 'D'
5497 , p_gain_or_loss_flag => 'N'
5498 , p_gl_transfer_mode_code => 'S'
5499 , p_acct_entry_type_code => 'E'
5500 , p_switch_side_flag => 'Y'
5501 , p_merge_duplicate_code => 'N'
5502 );
5503 --
5504 l_acc_rev_natural_side_code := 'C'; -- 4262811
5505 --
5506 --
5507 -- set accounting line type info
5508 --
5509 xla_ae_lines_pkg.SetAcctLineType
5510 (p_component_type => l_component_type
5511 ,p_event_type_code => l_event_type_code
5512 ,p_line_definition_owner_code => l_line_definition_owner_code
5513 ,p_line_definition_code => l_line_definition_code
5514 ,p_accounting_line_code => l_component_code
5515 ,p_accounting_line_type_code => l_component_type_code
5516 ,p_accounting_line_appl_id => l_component_appl_id
5517 ,p_amb_context_code => l_amb_context_code
5518 ,p_entity_code => l_entity_code
5519 ,p_event_class_code => l_event_class_code);
5520 --
5521 -- set accounting class
5522 --
5523 xla_ae_lines_pkg.SetAcctClass(
5524 p_accounting_class_code => 'REQUISITION'
5525 , p_ae_header_id => l_ae_header_id
5526 );
5527
5528 --
5529 -- set rounding class
5530 --
5531 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5532 'REQUISITION';
5533
5534 --
5535 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5536 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5537 --
5538 -- bulk performance
5539 --
5540 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5541
5542 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5543 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5544
5545 -- 4955764
5546 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5547 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5548
5549 -- 4458381 Public Sector Enh
5550 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
5551 --
5552 -- set accounting attributes for the line type
5553 --
5554 l_entered_amt_idx := 3;
5555 l_accted_amt_idx := 8;
5556 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5557 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
5558 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_12);
5559 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
5560 l_rec_acct_attrs.array_char_value(2) := p_source_13;
5561 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
5562 l_rec_acct_attrs.array_num_value(3) := p_source_20;
5563 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
5564 l_rec_acct_attrs.array_char_value(4) := p_source_16;
5565 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
5566 l_rec_acct_attrs.array_date_value(5) := p_source_21;
5567 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
5568 l_rec_acct_attrs.array_num_value(6) := p_source_22;
5569 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
5570 l_rec_acct_attrs.array_char_value(7) := p_source_23;
5571 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
5572 l_rec_acct_attrs.array_num_value(8) := p_source_24;
5573
5574 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5575 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5576
5580 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5577 ---------------------------------------------------------------------------------------------------------------
5578 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5579 ---------------------------------------------------------------------------------------------------------------
5581
5582 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5583 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5584
5585 IF xla_accounting_cache_pkg.GetValueChar
5586 (p_source_code => 'LEDGER_CATEGORY_CODE'
5587 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5588 AND l_bflow_method_code = 'PRIOR_ENTRY'
5589 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5590 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5591 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5592 )
5593 THEN
5594 xla_ae_lines_pkg.BflowUpgEntry
5595 (p_business_method_code => l_bflow_method_code
5596 ,p_business_class_code => l_bflow_class_code
5597 ,p_balance_type => l_balance_type_code);
5598 ELSE
5599 NULL;
5600 -- No business flow processing for business flow method of NONE.
5601 END IF;
5602
5603 --
5604 -- call analytical criteria
5605 --
5606
5607 --
5608 -- call description
5609 --
5610 -- No description or it is inherited.
5611 --
5612 -- call ADRs
5613 -- Bug 4922099
5614 --
5615 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5616 (NVL(l_actual_upg_option, 'N') = 'O') OR
5617 (NVL(l_enc_upg_option, 'N') = 'O')
5618 )
5619 THEN
5620 NULL;
5621 --
5622 --
5623
5624 l_ccid := AcctDerRule_1(
5625 p_application_id => p_application_id
5626 , p_ae_header_id => l_ae_header_id
5627 , p_source_1 => p_source_1
5628 , x_transaction_coa_id => l_adr_transaction_coa_id
5629 , x_accounting_coa_id => l_adr_accounting_coa_id
5630 , x_value_type_code => l_adr_value_type_code
5631 , p_side => 'NA'
5632 );
5633
5634 xla_ae_lines_pkg.set_ccid(
5635 p_code_combination_id => l_ccid
5636 , p_value_type_code => l_adr_value_type_code
5637 , p_transaction_coa_id => l_adr_transaction_coa_id
5638 , p_accounting_coa_id => l_adr_accounting_coa_id
5639 , p_adr_code => 'CST_DEFAULT'
5640 , p_adr_type_code => 'S'
5641 , p_component_type => l_component_type
5642 , p_component_code => l_component_code
5643 , p_component_type_code => l_component_type_code
5644 , p_component_appl_id => l_component_appl_id
5645 , p_amb_context_code => l_amb_context_code
5646 , p_side => 'NA'
5647 );
5648
5649
5650 --
5651 --
5652 END IF;
5653 --
5654 -- Bug 4922099
5655 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5656 (NVL(l_enc_upg_option, 'N') = 'O')
5657 ) AND
5658 (l_bflow_method_code = 'PRIOR_ENTRY')
5659 )
5660 THEN
5661 IF
5662 --
5663 1 = 2
5664 --
5665 THEN
5666 xla_accounting_err_pkg.build_message
5667 (p_appli_s_name => 'XLA'
5668 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5669 ,p_token_1 => 'LINE_NUMBER'
5670 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5671 ,p_token_2 => 'LINE_TYPE_NAME'
5672 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5673 l_component_type
5674 ,l_component_code
5675 ,l_component_type_code
5676 ,l_component_appl_id
5677 ,l_amb_context_code
5678 ,l_entity_code
5679 ,l_event_class_code
5680 )
5681 ,p_token_3 => 'OWNER'
5682 ,p_value_3 => xla_lookups_pkg.get_meaning(
5683 p_lookup_type => 'XLA_OWNER_TYPE'
5684 ,p_lookup_code => l_component_type_code
5685 )
5686 ,p_token_4 => 'PRODUCT_NAME'
5690 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5687 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5688 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5689 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5691 ,p_ae_header_id => NULL
5692 );
5693
5694 IF (C_LEVEL_ERROR>= g_log_level) THEN
5695 trace
5696 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5697 ,p_level => C_LEVEL_ERROR
5698 ,p_module => l_log_module);
5699 END IF;
5700 END IF;
5701 END IF;
5702 --
5703 --
5704 ------------------------------------------------------------------------------------------------
5705 -- 4219869 Business Flow
5706 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5707 -- Prior Entry. Currently, the following code is always generated.
5708 ------------------------------------------------------------------------------------------------
5709 XLA_AE_LINES_PKG.ValidateCurrentLine;
5710
5711 ------------------------------------------------------------------------------------
5712 -- 4219869 Business Flow
5713 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5714 ------------------------------------------------------------------------------------
5715 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5716
5717 ----------------------------------------------------------------------------------
5718 -- 4219869 Business Flow
5719 -- Update journal entry status -- Need to generate this within IF <condition>
5720 ----------------------------------------------------------------------------------
5721 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5722 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5723 ,p_balance_type_code => l_balance_type_code
5724 );
5725
5726 -------------------------------------------------------------------------------------------
5727 -- 4262811 - Generate the Accrual Reversal lines
5728 -------------------------------------------------------------------------------------------
5729 BEGIN
5730 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5731 (g_array_event(p_event_id).array_value_num('header_index'));
5732 IF l_acc_rev_flag IS NULL THEN
5733 l_acc_rev_flag := 'N';
5734 END IF;
5735 EXCEPTION
5736 WHEN OTHERS THEN
5737 l_acc_rev_flag := 'N';
5738 END;
5739 --
5740 IF (l_acc_rev_flag = 'Y') THEN
5741
5742 -- 4645092 ------------------------------------------------------------------------------
5743 -- To allow MPA report to determine if it should generate report process
5744 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5745 ------------------------------------------------------------------------------------------
5746
5747 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5748 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5749 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
5750 -- call ADRs
5751 -- Bug 4922099
5752 --
5753 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5754 (NVL(l_actual_upg_option, 'N') = 'O') OR
5755 (NVL(l_enc_upg_option, 'N') = 'O')
5756 )
5757 THEN
5758 NULL;
5759 --
5760 --
5761
5762 l_ccid := AcctDerRule_1(
5763 p_application_id => p_application_id
5764 , p_ae_header_id => l_ae_header_id
5765 , p_source_1 => p_source_1
5766 , x_transaction_coa_id => l_adr_transaction_coa_id
5767 , x_accounting_coa_id => l_adr_accounting_coa_id
5768 , x_value_type_code => l_adr_value_type_code
5769 , p_side => 'NA'
5770 );
5771
5772 xla_ae_lines_pkg.set_ccid(
5773 p_code_combination_id => l_ccid
5774 , p_value_type_code => l_adr_value_type_code
5775 , p_transaction_coa_id => l_adr_transaction_coa_id
5776 , p_accounting_coa_id => l_adr_accounting_coa_id
5777 , p_adr_code => 'CST_DEFAULT'
5778 , p_adr_type_code => 'S'
5779 , p_component_type => l_component_type
5780 , p_component_code => l_component_code
5781 , p_component_type_code => l_component_type_code
5782 , p_component_appl_id => l_component_appl_id
5783 , p_amb_context_code => l_amb_context_code
5784 , p_side => 'NA'
5785 );
5786
5787
5788 --
5789 --
5790 END IF;
5791
5792 --
5793 -- Update the line information that should be overwritten
5794 --
5795 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5796 p_header_num => 1);
5797 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5798
5802 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5799 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5800
5801 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5803 END IF;
5804
5805 --
5806 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5807 --
5808 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5809 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5810 ELSE
5811 ---------------------------------------------------------------------------------------------------
5812 -- 4262811a Switch Sign
5813 ---------------------------------------------------------------------------------------------------
5814 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5815 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5816 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5817 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5818 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5819 -- 5132302
5820 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5821 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5822
5823 END IF;
5824
5825 -- 4955764
5826 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5827 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5828
5829
5830 XLA_AE_LINES_PKG.ValidateCurrentLine;
5831 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5832
5833 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5834 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5835 ,p_balance_type_code => l_balance_type_code);
5836
5837 END IF;
5838
5839 -----------------------------------------------------------------------------------------
5840 -- 4262811 Multiperiod Accounting
5841 -----------------------------------------------------------------------------------------
5842 -- No MPA option is assigned.
5843
5844
5845 END IF;
5846 END IF;
5847 --
5848
5849 --
5850 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5851 trace
5852 (p_msg => 'END of AcctLineType_11'
5853 ,p_level => C_LEVEL_PROCEDURE
5854 ,p_module => l_log_module);
5855 END IF;
5856 --
5857 EXCEPTION
5858 WHEN xla_exceptions_pkg.application_exception THEN
5859 RAISE;
5860 WHEN OTHERS THEN
5861 xla_exceptions_pkg.raise_message
5862 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.AcctLineType_11');
5863 END AcctLineType_11;
5864 --
5865
5866 ---------------------------------------
5867 --
5868 -- PRIVATE PROCEDURE
5869 -- insert_sources_12
5870 --
5871 ----------------------------------------
5872 --
5873 PROCEDURE insert_sources_12(
5874 p_target_ledger_id IN NUMBER
5875 , p_language IN VARCHAR2
5876 , p_sla_ledger_id IN NUMBER
5877 , p_pad_start_date IN DATE
5878 , p_pad_end_date IN DATE
5879 )
5880 IS
5881
5882 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DELIVER_EXPENSE_ALL';
5883 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DELIVER_EXPENSE';
5884 p_apps_owner VARCHAR2(30);
5885 l_log_module VARCHAR2(240);
5886 BEGIN
5887 IF g_log_enabled THEN
5888 l_log_module := C_DEFAULT_MODULE||'.insert_sources_12';
5889 END IF;
5890 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5891
5892 trace
5893 (p_msg => 'BEGIN of insert_sources_12'
5894 ,p_level => C_LEVEL_PROCEDURE
5895 ,p_module => l_log_module);
5896
5897 END IF;
5898
5899 -- select APPS owner
5900 SELECT oracle_username
5901 INTO p_apps_owner
5902 FROM fnd_oracle_userid
5903 WHERE read_only_flag = 'U'
5904 ;
5905
5906 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
5907 trace
5908 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
5909 ' - p_language = '||p_language||
5910 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
5911 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
5912 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
5913 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
5914 ,p_level => C_LEVEL_STATEMENT
5915 ,p_module => l_log_module);
5916 END IF;
5917
5918
5919 --
5920 INSERT INTO xla_diag_sources --hdr2
5921 (
5922 event_id
5923 , ledger_id
5924 , sla_ledger_id
5925 , description_language
5929 , source_application_id
5926 , object_name
5927 , object_type_code
5928 , line_number
5930 , source_type_code
5931 , source_code
5932 , source_value
5933 , source_meaning
5934 , created_by
5935 , creation_date
5936 , last_update_date
5937 , last_updated_by
5938 , last_update_login
5939 , program_update_date
5940 , program_application_id
5941 , program_id
5942 , request_id
5943 )
5944 SELECT
5945 event_id
5946 , p_target_ledger_id
5947 , p_sla_ledger_id
5948 , p_language
5949 , object_name
5950 , object_type_code
5951 , line_number
5952 , source_application_id
5953 , source_type_code
5954 , source_code
5955 , SUBSTR(source_value ,1,1996)
5956 , SUBSTR(source_meaning ,1,200)
5957 , xla_environment_pkg.g_Usr_Id
5958 , TRUNC(SYSDATE)
5959 , TRUNC(SYSDATE)
5960 , xla_environment_pkg.g_Usr_Id
5961 , xla_environment_pkg.g_Login_Id
5962 , TRUNC(SYSDATE)
5963 , xla_environment_pkg.g_Prog_Appl_Id
5964 , xla_environment_pkg.g_Prog_Id
5965 , xla_environment_pkg.g_Req_Id
5966 FROM (
5967 SELECT xet.event_id event_id
5968 , 0 line_number
5969 , CASE r
5970 WHEN 1 THEN 'PO_HEADERS_REF_V'
5971 WHEN 2 THEN 'PO_DISTS_REF_V'
5972 WHEN 3 THEN 'CST_XLA_RCV_REF_V'
5973 WHEN 4 THEN 'CST_XLA_RCV_REF_V'
5974 WHEN 5 THEN 'CST_XLA_RCV_REF_V'
5975 WHEN 6 THEN 'CST_XLA_RCV_REF_V'
5976 WHEN 7 THEN 'CST_XLA_RCV_HEADERS_V'
5977 WHEN 8 THEN 'PO_DISTS_REF_V'
5978 WHEN 9 THEN 'CST_XLA_RCV_REF_V'
5979 WHEN 10 THEN 'CST_XLA_RCV_HEADERS_V'
5980 WHEN 11 THEN 'CST_XLA_RCV_REF_V'
5981 WHEN 12 THEN 'PSA_CST_XLA_UPG_V'
5982 WHEN 13 THEN 'PO_HEADERS_REF_V'
5983 WHEN 14 THEN 'CST_XLA_RCV_REF_V'
5984 WHEN 15 THEN 'CST_XLA_RCV_HEADERS_V'
5985
5986 ELSE null
5987 END object_name
5988 , CASE r
5989 WHEN 1 THEN 'HEADER'
5990 WHEN 2 THEN 'HEADER'
5991 WHEN 3 THEN 'HEADER'
5992 WHEN 4 THEN 'HEADER'
5993 WHEN 5 THEN 'HEADER'
5994 WHEN 6 THEN 'HEADER'
5995 WHEN 7 THEN 'HEADER'
5996 WHEN 8 THEN 'HEADER'
5997 WHEN 9 THEN 'HEADER'
5998 WHEN 10 THEN 'HEADER'
5999 WHEN 11 THEN 'HEADER'
6000 WHEN 12 THEN 'HEADER'
6001 WHEN 13 THEN 'HEADER'
6002 WHEN 14 THEN 'HEADER'
6003 WHEN 15 THEN 'HEADER'
6004
6005 ELSE null
6006 END object_type_code
6007 , CASE r
6008 WHEN 1 THEN '201'
6009 WHEN 2 THEN '201'
6010 WHEN 3 THEN '707'
6011 WHEN 4 THEN '707'
6012 WHEN 5 THEN '707'
6013 WHEN 6 THEN '707'
6014 WHEN 7 THEN '707'
6015 WHEN 8 THEN '201'
6016 WHEN 9 THEN '707'
6017 WHEN 10 THEN '707'
6018 WHEN 11 THEN '707'
6019 WHEN 12 THEN '707'
6020 WHEN 13 THEN '201'
6021 WHEN 14 THEN '707'
6022 WHEN 15 THEN '707'
6023
6024 ELSE null
6025 END source_application_id
6026 , 'S' source_type_code
6027 , CASE r
6028 WHEN 1 THEN 'PURCH_ENCUMBRANCE_FLAG'
6029 WHEN 2 THEN 'RESERVED_FLAG'
6030 WHEN 3 THEN 'APPLIED_TO_APPL_ID'
6031 WHEN 4 THEN 'APPLIED_TO_DIST_LINK_TYPE'
6032 WHEN 5 THEN 'APPLIED_TO_ENTITY_CODE'
6033 WHEN 6 THEN 'APPLIED_TO_PO_DOC_ID'
6034 WHEN 7 THEN 'DISTRIBUTION_TYPE'
6035 WHEN 8 THEN 'PO_BUDGET_ACCOUNT'
6036 WHEN 9 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
6037 WHEN 10 THEN 'CURRENCY_CODE'
6038 WHEN 11 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
6039 WHEN 12 THEN 'CST_ENCUM_UPG_OPTION'
6040 WHEN 13 THEN 'PURCH_ENCUMBRANCE_TYPE_ID'
6041 WHEN 14 THEN 'PO_DISTRIBUTION_ID'
6042 WHEN 15 THEN 'TRANSFER_TO_GL_INDICATOR'
6043
6044 ELSE null
6045 END source_code
6046 , CASE r
6047 WHEN 1 THEN TO_CHAR(h5.PURCH_ENCUMBRANCE_FLAG)
6048 WHEN 2 THEN TO_CHAR(h4.RESERVED_FLAG)
6049 WHEN 3 THEN TO_CHAR(h3.APPLIED_TO_APPL_ID)
6050 WHEN 4 THEN TO_CHAR(h3.APPLIED_TO_DIST_LINK_TYPE)
6051 WHEN 5 THEN TO_CHAR(h3.APPLIED_TO_ENTITY_CODE)
6052 WHEN 6 THEN TO_CHAR(h3.APPLIED_TO_PO_DOC_ID)
6053 WHEN 7 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
6054 WHEN 8 THEN TO_CHAR(h4.PO_BUDGET_ACCOUNT)
6055 WHEN 9 THEN TO_CHAR(h3.ENCUM_REVERSAL_AMOUNT_ENTERED)
6059 WHEN 13 THEN TO_CHAR(h5.PURCH_ENCUMBRANCE_TYPE_ID)
6056 WHEN 10 THEN TO_CHAR(h1.CURRENCY_CODE)
6057 WHEN 11 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_AMOUNT)
6058 WHEN 12 THEN TO_CHAR(h6.CST_ENCUM_UPG_OPTION)
6060 WHEN 14 THEN TO_CHAR(h3.PO_DISTRIBUTION_ID)
6061 WHEN 15 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
6062
6063 ELSE null
6064 END source_value
6065 , CASE r
6066 WHEN 7 THEN fvl13.meaning
6067 WHEN 15 THEN fvl37.meaning
6068
6069 ELSE null
6070 END source_meaning
6071 FROM xla_events_gt xet
6072 , CST_XLA_RCV_HEADERS_V h1
6073 , CST_XLA_RCV_REF_V h3
6074 , PO_DISTS_REF_V h4
6075 , PO_HEADERS_REF_V h5
6076 , PSA_CST_XLA_UPG_V h6
6077 , fnd_lookup_values fvl13
6078 , fnd_lookup_values fvl37
6079 ,(select rownum r from all_objects where rownum <= 15 and owner = p_apps_owner)
6080 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
6081 AND xet.event_class_code = C_EVENT_CLASS_CODE
6082 AND h1.event_id = xet.event_id
6083 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 fvl13.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
6084 AND fvl13.lookup_code(+) = h1.DISTRIBUTION_TYPE
6085 AND fvl13.view_application_id(+) = 700
6086 AND fvl13.language(+) = USERENV('LANG')
6087 AND fvl37.lookup_type(+) = 'YES_NO'
6088 AND fvl37.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
6089 AND fvl37.view_application_id(+) = 0
6090 AND fvl37.language(+) = USERENV('LANG')
6091
6092 )
6093 ;
6094 --
6095 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6096
6097 trace
6098 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
6099 ,p_level => C_LEVEL_STATEMENT
6100 ,p_module => l_log_module);
6101
6102 END IF;
6103 --
6104
6105
6106
6107 --
6108 INSERT INTO xla_diag_sources --line2
6109 (
6110 event_id
6111 , ledger_id
6112 , sla_ledger_id
6113 , description_language
6114 , object_name
6115 , object_type_code
6116 , line_number
6117 , source_application_id
6118 , source_type_code
6119 , source_code
6120 , source_value
6121 , source_meaning
6122 , created_by
6123 , creation_date
6124 , last_update_date
6125 , last_updated_by
6126 , last_update_login
6127 , program_update_date
6128 , program_application_id
6129 , program_id
6130 , request_id
6131 )
6132 SELECT event_id
6133 , p_target_ledger_id
6134 , p_sla_ledger_id
6135 , p_language
6136 , object_name
6137 , object_type_code
6138 , line_number
6139 , source_application_id
6140 , source_type_code
6141 , source_code
6142 , SUBSTR(source_value,1,1996)
6143 , SUBSTR(source_meaning ,1,200)
6144 , xla_environment_pkg.g_Usr_Id
6145 , TRUNC(SYSDATE)
6146 , TRUNC(SYSDATE)
6147 , xla_environment_pkg.g_Usr_Id
6148 , xla_environment_pkg.g_Login_Id
6149 , TRUNC(SYSDATE)
6150 , xla_environment_pkg.g_Prog_Appl_Id
6151 , xla_environment_pkg.g_Prog_Id
6152 , xla_environment_pkg.g_Req_Id
6153 FROM (
6154 SELECT xet.event_id event_id
6155 , l2.line_number line_number
6156 , CASE r
6157 WHEN 1 THEN 'CST_XLA_RCV_LINES_V'
6158 WHEN 2 THEN 'CST_XLA_RCV_LINES_V'
6159
6160 ELSE null
6161 END object_name
6162 , CASE r
6163 WHEN 1 THEN 'LINE'
6164 WHEN 2 THEN 'LINE'
6165
6166 ELSE null
6167 END object_type_code
6168 , CASE r
6169 WHEN 1 THEN '707'
6170 WHEN 2 THEN '707'
6171
6172 ELSE null
6173 END source_application_id
6174 , 'S' source_type_code
6175 , CASE r
6176 WHEN 1 THEN 'DISTRIBUTION_IDENTIFIER'
6177 WHEN 2 THEN 'RCV_ACCOUNTING_LINE_TYPE'
6178
6179 ELSE null
6180 END source_code
6181 , CASE r
6182 WHEN 1 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
6183 WHEN 2 THEN TO_CHAR(l2.RCV_ACCOUNTING_LINE_TYPE)
6184
6185 ELSE null
6186 END source_value
6187 , null source_meaning
6188 FROM xla_events_gt xet
6189 , CST_XLA_RCV_LINES_V l2
6193 AND l2.event_id = xet.event_id
6190 , (select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
6191 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
6192 AND xet.event_class_code = C_EVENT_CLASS_CODE
6194
6195 )
6196 ;
6197 --
6198 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6199
6200 trace
6201 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
6202 ,p_level => C_LEVEL_STATEMENT
6203 ,p_module => l_log_module);
6204
6205 END IF;
6206
6207
6208 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6209 trace
6210 (p_msg => 'END of insert_sources_12'
6211 ,p_level => C_LEVEL_PROCEDURE
6212 ,p_module => l_log_module);
6213 END IF;
6214 EXCEPTION
6215 WHEN xla_exceptions_pkg.application_exception THEN
6216 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
6217 trace
6218 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
6219 ,p_level => C_LEVEL_EXCEPTION
6220 ,p_module => l_log_module);
6221 END IF;
6222 RAISE;
6223 WHEN OTHERS THEN
6224 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
6225 trace
6226 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
6227 ,p_level => C_LEVEL_EXCEPTION
6228 ,p_module => l_log_module);
6229 END IF;
6230 xla_exceptions_pkg.raise_message
6231 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.insert_sources_12');
6232 END insert_sources_12;
6233 --
6234
6235 ---------------------------------------
6236 --
6237 -- PRIVATE FUNCTION
6238 -- EventClass_12
6239 --
6240 ----------------------------------------
6241 --
6242 FUNCTION EventClass_12
6243 (p_application_id IN NUMBER
6244 ,p_base_ledger_id IN NUMBER
6245 ,p_target_ledger_id IN NUMBER
6246 ,p_language IN VARCHAR2
6247 ,p_currency_code IN VARCHAR2
6248 ,p_sla_ledger_id IN NUMBER
6249 ,p_pad_start_date IN DATE
6250 ,p_pad_end_date IN DATE
6251 ,p_primary_ledger_id IN NUMBER)
6252 RETURN BOOLEAN IS
6253 --
6254 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DELIVER_EXPENSE_ALL';
6255 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DELIVER_EXPENSE';
6256
6257 l_calculate_acctd_flag VARCHAR2(1) :='N';
6258 l_calculate_g_l_flag VARCHAR2(1) :='N';
6259 --
6260 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6261 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6262 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
6263 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
6264 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6265 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
6266 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
6267 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6268 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
6269 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
6270 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6271 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6272 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6273 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
6274 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
6275 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
6276 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
6277 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
6278 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
6279 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
6280 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
6281 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
6282 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
6283 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
6284 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
6285 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
6286
6287 l_event_id NUMBER;
6288 l_previous_event_id NUMBER;
6289 l_first_event_id NUMBER;
6290 l_last_event_id NUMBER;
6291
6292 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
6293 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6294 --
6295 --
6296 l_result BOOLEAN := TRUE;
6297 l_rows NUMBER := 1000;
6298 l_event_type_name VARCHAR2(80) := 'All';
6299 l_event_class_name VARCHAR2(80) := 'Delivery to Expense Destination';
6300 l_description VARCHAR2(4000);
6301 l_transaction_reversal NUMBER;
6302 l_ae_header_id NUMBER;
6303 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
6304 l_log_module VARCHAR2(240);
6305 --
6309 l_continue_with_lines BOOLEAN := TRUE;
6306 l_acct_reversal_source VARCHAR2(30);
6307 l_trx_reversal_source VARCHAR2(30);
6308
6310 --
6311 l_acc_rev_gl_date_source DATE; -- 4262811
6312 --
6313 type t_array_event_id is table of number index by binary_integer;
6314
6315 l_rec_array_event t_rec_array_event;
6316 l_null_rec_array_event t_rec_array_event;
6317 l_array_ae_header_id xla_number_array_type;
6318 l_actual_flag VARCHAR2(1) := NULL;
6319 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
6320 l_balance_type_code VARCHAR2(1) :=NULL;
6321 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
6322
6323 --
6324 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
6325 --
6326
6327 TYPE t_array_source_2 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
6328 TYPE t_array_source_3 IS TABLE OF PO_DISTS_REF_V.RESERVED_FLAG%TYPE INDEX BY BINARY_INTEGER;
6329 TYPE t_array_source_7 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
6330 TYPE t_array_source_8 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
6331 TYPE t_array_source_9 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
6332 TYPE t_array_source_11 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
6333 TYPE t_array_source_13 IS TABLE OF CST_XLA_RCV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
6334 TYPE t_array_source_14 IS TABLE OF PO_DISTS_REF_V.PO_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
6335 TYPE t_array_source_15 IS TABLE OF CST_XLA_RCV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
6336 TYPE t_array_source_16 IS TABLE OF CST_XLA_RCV_HEADERS_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
6337 TYPE t_array_source_17 IS TABLE OF CST_XLA_RCV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
6338 TYPE t_array_source_18 IS TABLE OF PSA_CST_XLA_UPG_V.CST_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
6339 TYPE t_array_source_19 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
6340 TYPE t_array_source_26 IS TABLE OF CST_XLA_RCV_REF_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
6341 TYPE t_array_source_37 IS TABLE OF CST_XLA_RCV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
6342
6343 TYPE t_array_source_12 IS TABLE OF CST_XLA_RCV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
6344 TYPE t_array_source_25 IS TABLE OF CST_XLA_RCV_LINES_V.RCV_ACCOUNTING_LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
6345
6346 l_array_source_2 t_array_source_2;
6347 l_array_source_3 t_array_source_3;
6348 l_array_source_7 t_array_source_7;
6349 l_array_source_8 t_array_source_8;
6350 l_array_source_9 t_array_source_9;
6351 l_array_source_11 t_array_source_11;
6352 l_array_source_13 t_array_source_13;
6353 l_array_source_13_meaning t_array_lookup_meaning;
6354 l_array_source_14 t_array_source_14;
6355 l_array_source_15 t_array_source_15;
6356 l_array_source_16 t_array_source_16;
6357 l_array_source_17 t_array_source_17;
6358 l_array_source_18 t_array_source_18;
6359 l_array_source_19 t_array_source_19;
6360 l_array_source_26 t_array_source_26;
6361 l_array_source_37 t_array_source_37;
6362 l_array_source_37_meaning t_array_lookup_meaning;
6363
6364 l_array_source_12 t_array_source_12;
6365 l_array_source_25 t_array_source_25;
6366
6367 --
6368 CURSOR header_cur
6369 IS
6370 SELECT /*+ leading(xet) cardinality(xet,1) */
6371 -- Event Class Code: DELIVER_EXPENSE
6372 xet.entity_id
6373 ,xet.legal_entity_id
6374 ,xet.entity_code
6375 ,xet.transaction_number
6376 ,xet.event_id
6377 ,xet.event_class_code
6378 ,xet.event_type_code
6379 ,xet.event_number
6380 ,xet.event_date
6381 ,xet.transaction_date
6382 ,xet.reference_num_1
6383 ,xet.reference_num_2
6384 ,xet.reference_num_3
6385 ,xet.reference_num_4
6386 ,xet.reference_char_1
6387 ,xet.reference_char_2
6388 ,xet.reference_char_3
6389 ,xet.reference_char_4
6390 ,xet.reference_date_1
6391 ,xet.reference_date_2
6392 ,xet.reference_date_3
6393 ,xet.reference_date_4
6394 ,xet.event_created_by
6395 ,xet.budgetary_control_flag
6396 , h5.PURCH_ENCUMBRANCE_FLAG source_2
6397 , h4.RESERVED_FLAG source_3
6398 , h3.APPLIED_TO_APPL_ID source_7
6399 , h3.APPLIED_TO_DIST_LINK_TYPE source_8
6400 , h3.APPLIED_TO_ENTITY_CODE source_9
6401 , h3.APPLIED_TO_PO_DOC_ID source_11
6402 , h1.DISTRIBUTION_TYPE source_13
6403 , fvl13.meaning source_13_meaning
6404 , h4.PO_BUDGET_ACCOUNT source_14
6405 , h3.ENCUM_REVERSAL_AMOUNT_ENTERED source_15
6406 , h1.CURRENCY_CODE source_16
6407 , h3.ENCUMBRANCE_REVERSAL_AMOUNT source_17
6408 , h6.CST_ENCUM_UPG_OPTION source_18
6409 , h5.PURCH_ENCUMBRANCE_TYPE_ID source_19
6410 , h3.PO_DISTRIBUTION_ID source_26
6411 , h1.TRANSFER_TO_GL_INDICATOR source_37
6412 , fvl37.meaning source_37_meaning
6413 FROM xla_events_gt xet
6414 , CST_XLA_RCV_HEADERS_V h1
6415 , CST_XLA_RCV_REF_V h3
6416 , PO_DISTS_REF_V h4
6417 , PO_HEADERS_REF_V h5
6421 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
6418 , PSA_CST_XLA_UPG_V h6
6419 , fnd_lookup_values fvl13
6420 , fnd_lookup_values fvl37
6422 and xet.event_class_code = C_EVENT_CLASS_CODE
6423 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
6424 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 fvl13.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
6425 AND fvl13.lookup_code(+) = h1.DISTRIBUTION_TYPE
6426 AND fvl13.view_application_id(+) = 700
6427 AND fvl13.language(+) = USERENV('LANG')
6428 AND fvl37.lookup_type(+) = 'YES_NO'
6429 AND fvl37.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
6430 AND fvl37.view_application_id(+) = 0
6431 AND fvl37.language(+) = USERENV('LANG')
6432
6433 ORDER BY event_id
6434 ;
6435
6436
6437 --
6438 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
6439 IS
6440 SELECT /*+ leading(xet) cardinality(xet,1) */
6441 -- Event Class Code: DELIVER_EXPENSE
6442 xet.entity_id
6443 ,xet.legal_entity_id
6444 ,xet.entity_code
6445 ,xet.transaction_number
6446 ,xet.event_id
6447 ,xet.event_class_code
6448 ,xet.event_type_code
6449 ,xet.event_number
6450 ,xet.event_date
6451 ,xet.transaction_date
6452 ,xet.reference_num_1
6453 ,xet.reference_num_2
6454 ,xet.reference_num_3
6455 ,xet.reference_num_4
6456 ,xet.reference_char_1
6457 ,xet.reference_char_2
6458 ,xet.reference_char_3
6459 ,xet.reference_char_4
6460 ,xet.reference_date_1
6461 ,xet.reference_date_2
6462 ,xet.reference_date_3
6463 ,xet.reference_date_4
6464 ,xet.event_created_by
6465 ,xet.budgetary_control_flag
6466 , l2.LINE_NUMBER
6467 , l2.DISTRIBUTION_IDENTIFIER source_12
6468 , l2.RCV_ACCOUNTING_LINE_TYPE source_25
6469 FROM xla_events_gt xet
6470 , CST_XLA_RCV_LINES_V l2
6471 WHERE xet.event_id between x_first_event_id and x_last_event_id
6472 and xet.event_date between p_pad_start_date and p_pad_end_date
6473 and xet.event_class_code = C_EVENT_CLASS_CODE
6474 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
6475 ;
6476
6477 --
6478 BEGIN
6479 IF g_log_enabled THEN
6480 l_log_module := C_DEFAULT_MODULE||'.EventClass_12';
6481 END IF;
6482 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6483 trace
6484 (p_msg => 'BEGIN of EventClass_12'
6485 ,p_level => C_LEVEL_PROCEDURE
6486 ,p_module => l_log_module);
6487 END IF;
6488
6489 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6490 trace
6491 (p_msg => 'p_application_id = '||p_application_id||
6492 ' - p_base_ledger_id = '||p_base_ledger_id||
6493 ' - p_target_ledger_id = '||p_target_ledger_id||
6494 ' - p_language = '||p_language||
6495 ' - p_currency_code = '||p_currency_code||
6496 ' - p_sla_ledger_id = '||p_sla_ledger_id
6497 ,p_level => C_LEVEL_STATEMENT
6498 ,p_module => l_log_module);
6499 END IF;
6500 --
6501 -- initialze arrays
6502 --
6503 g_array_event.DELETE;
6504 l_rec_array_event := l_null_rec_array_event;
6505 --
6506 --------------------------------------
6507 -- 4262811 Initialze MPA Line Number
6508 --------------------------------------
6509 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
6510
6511 --
6512
6513 --
6514 OPEN header_cur;
6515 --
6516 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6517 trace
6518 (p_msg => 'SQL - FETCH header_cur'
6519 ,p_level => C_LEVEL_STATEMENT
6520 ,p_module => l_log_module);
6521 END IF;
6522 --
6523 LOOP
6524 FETCH header_cur BULK COLLECT INTO
6525 l_array_entity_id
6526 , l_array_legal_entity_id
6527 , l_array_entity_code
6528 , l_array_transaction_num
6529 , l_array_event_id
6530 , l_array_class_code
6531 , l_array_event_type
6532 , l_array_event_number
6533 , l_array_event_date
6534 , l_array_transaction_date
6535 , l_array_reference_num_1
6536 , l_array_reference_num_2
6537 , l_array_reference_num_3
6538 , l_array_reference_num_4
6539 , l_array_reference_char_1
6540 , l_array_reference_char_2
6541 , l_array_reference_char_3
6542 , l_array_reference_char_4
6543 , l_array_reference_date_1
6544 , l_array_reference_date_2
6545 , l_array_reference_date_3
6546 , l_array_reference_date_4
6547 , l_array_event_created_by
6548 , l_array_budgetary_control_flag
6549 , l_array_source_2
6550 , l_array_source_3
6551 , l_array_source_7
6552 , l_array_source_8
6553 , l_array_source_9
6554 , l_array_source_11
6555 , l_array_source_13
6556 , l_array_source_13_meaning
6557 , l_array_source_14
6558 , l_array_source_15
6559 , l_array_source_16
6560 , l_array_source_17
6561 , l_array_source_18
6562 , l_array_source_19
6563 , l_array_source_26
6567 --
6564 , l_array_source_37
6565 , l_array_source_37_meaning
6566 LIMIT l_rows;
6568 IF (C_LEVEL_EVENT >= g_log_level) THEN
6569 trace
6570 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
6571 ,p_level => C_LEVEL_EVENT
6572 ,p_module => l_log_module);
6573 END IF;
6574 --
6575 EXIT WHEN l_array_entity_id.COUNT = 0;
6576
6577 -- initialize arrays
6578 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
6579 XLA_AE_LINES_PKG.g_rec_lines := NULL;
6580
6581 --
6582 -- Bug 4458708
6583 --
6584 XLA_AE_LINES_PKG.g_LineNumber := 0;
6585
6586
6587 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
6588 g_last_hdr_idx := l_array_event_id.LAST;
6589 --
6590 -- loop for the headers. Each iteration is for each header extract row
6591 -- fetched in header cursor
6592 --
6593 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
6594
6595 --
6596 -- set event info as cache for other routines to refer event attributes
6597 --
6598 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
6599 (p_application_id => p_application_id
6600 ,p_primary_ledger_id => p_primary_ledger_id
6601 ,p_base_ledger_id => p_base_ledger_id
6602 ,p_target_ledger_id => p_target_ledger_id
6603 ,p_entity_id => l_array_entity_id(hdr_idx)
6604 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
6605 ,p_entity_code => l_array_entity_code(hdr_idx)
6606 ,p_transaction_num => l_array_transaction_num(hdr_idx)
6607 ,p_event_id => l_array_event_id(hdr_idx)
6608 ,p_event_class_code => l_array_class_code(hdr_idx)
6609 ,p_event_type_code => l_array_event_type(hdr_idx)
6610 ,p_event_number => l_array_event_number(hdr_idx)
6611 ,p_event_date => l_array_event_date(hdr_idx)
6612 ,p_transaction_date => l_array_transaction_date(hdr_idx)
6613 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
6614 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
6615 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
6616 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
6617 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
6618 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
6619 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
6620 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
6621 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
6622 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
6623 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
6624 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
6625 ,p_event_created_by => l_array_event_created_by(hdr_idx)
6626 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
6627
6628 --
6629 -- set the status of entry to C_VALID (0)
6630 --
6631 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
6632
6633 --
6634 -- initialize a row for ae header
6635 --
6636 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
6637
6638 l_event_id := l_array_event_id(hdr_idx);
6639
6640 --
6641 -- storing the hdr_idx for event. May be used by line cursor.
6642 --
6643 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
6644
6645 --
6646 -- store sources from header extract. This can be improved to
6647 -- store only those sources from header extract that may be used in lines
6648 --
6649
6650 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
6651 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
6652 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
6653 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
6654 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
6655 g_array_event(l_event_id).array_value_num('source_11') := l_array_source_11(hdr_idx);
6656 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
6657 g_array_event(l_event_id).array_value_char('source_13_meaning') := l_array_source_13_meaning(hdr_idx);
6658 g_array_event(l_event_id).array_value_num('source_14') := l_array_source_14(hdr_idx);
6659 g_array_event(l_event_id).array_value_num('source_15') := l_array_source_15(hdr_idx);
6660 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
6661 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
6662 g_array_event(l_event_id).array_value_char('source_18') := l_array_source_18(hdr_idx);
6663 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
6664 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
6665 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
6666 g_array_event(l_event_id).array_value_char('source_37_meaning') := l_array_source_37_meaning(hdr_idx);
6667
6668 --
6669 -- initilaize the status of ae headers for diffrent balance types
6670 -- the status is initialised to C_NOT_CREATED (2)
6671 --
6672 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
6673 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
6677 -- call api to validate and store accounting attributes for header
6674 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
6675
6676 --
6678 --
6679
6680 ------------------------------------------------------------
6681 -- Accrual Reversal : to get date for Standard Source (NONE)
6682 ------------------------------------------------------------
6683 l_acc_rev_gl_date_source := NULL;
6684
6685 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
6686 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_19');
6687 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
6688 l_rec_acct_attrs.array_date_value(2) :=
6689 xla_ae_sources_pkg.GetSystemSourceDate(
6690 p_source_code => 'XLA_REFERENCE_DATE_1'
6691 , p_source_type_code => 'Y'
6692 , p_source_application_id => 602
6693 );
6694 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
6695 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_37');
6696
6697
6698 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
6699
6700 XLA_AE_HEADER_PKG.SetJeCategoryName;
6701
6702 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
6703 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
6704 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
6705 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
6706 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
6707
6708
6709 -- No header level analytical criteria
6710
6711 --
6712 --accounting attribute enhancement, bug 3612931
6713 --
6714 l_trx_reversal_source := SUBSTR(NULL, 1,30);
6715
6716 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
6717 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
6718
6719 xla_accounting_err_pkg.build_message
6720 (p_appli_s_name => 'XLA'
6721 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
6722 ,p_token_1 => 'ACCT_ATTR_NAME'
6723 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
6724 ,p_token_2 => 'PRODUCT_NAME'
6725 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
6726 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6727 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
6728 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
6729
6730 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
6731 --
6732 -- following sets the accounting attributes needed to reverse
6733 -- accounting for a distributeion
6734 --
6735 xla_ae_lines_pkg.SetTrxReversalAttrs
6736 (p_event_id => l_event_id
6737 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
6738 ,p_trx_reversal_source => l_trx_reversal_source);
6739
6740 END IF;
6741
6742
6743 ----------------------------------------------------------------
6744 -- 4262811 - update the header statuses to invalid in need be
6745 ----------------------------------------------------------------
6746 --
6747 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
6748
6749
6750 -----------------------------------------------
6751 -- No accrual reversal for the event class/type
6752 -----------------------------------------------
6753 ----------------------------------------------------------------
6754
6755 --
6756 -- this ends the header loop iteration for one bulk fetch
6757 --
6758 END LOOP;
6759
6760 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
6761 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
6762
6763 --
6764 -- insert dummy rows into lines gt table that were created due to
6765 -- transaction reversals
6766 --
6767 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
6768 l_result := XLA_AE_LINES_PKG.InsertLines;
6769 END IF;
6770
6771 --
6772 -- reset the temp_line_num for each set of events fetched from header
6773 -- cursor rather than doing it for each new event in line cursor
6774 -- Bug 3939231
6775 --
6776 xla_ae_lines_pkg.g_temp_line_num := 0;
6777
6778
6779
6780 --
6781 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
6782 --
6783 --
6784 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6785
6786 trace
6787 (p_msg => 'SQL - FETCH line_cur'
6788 ,p_level => C_LEVEL_STATEMENT
6789 ,p_module => l_log_module);
6790
6791 END IF;
6792 --
6793 --
6794 LOOP
6795 --
6796 FETCH line_cur BULK COLLECT INTO
6797 l_array_entity_id
6798 , l_array_legal_entity_id
6799 , l_array_entity_code
6800 , l_array_transaction_num
6801 , l_array_event_id
6802 , l_array_class_code
6803 , l_array_event_type
6804 , l_array_event_number
6808 , l_array_reference_num_2
6805 , l_array_event_date
6806 , l_array_transaction_date
6807 , l_array_reference_num_1
6809 , l_array_reference_num_3
6810 , l_array_reference_num_4
6811 , l_array_reference_char_1
6812 , l_array_reference_char_2
6813 , l_array_reference_char_3
6814 , l_array_reference_char_4
6815 , l_array_reference_date_1
6816 , l_array_reference_date_2
6817 , l_array_reference_date_3
6818 , l_array_reference_date_4
6819 , l_array_event_created_by
6820 , l_array_budgetary_control_flag
6821 , l_array_extract_line_num
6822 , l_array_source_12
6823 , l_array_source_25
6824 LIMIT l_rows;
6825
6826 --
6827 IF (C_LEVEL_EVENT >= g_log_level) THEN
6828 trace
6829 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
6830 ,p_level => C_LEVEL_EVENT
6831 ,p_module => l_log_module);
6832 END IF;
6833 --
6834 EXIT WHEN l_array_entity_id.count = 0;
6835
6836 XLA_AE_LINES_PKG.g_rec_lines := null;
6837
6838 --
6839 -- Bug 4458708
6840 --
6841 XLA_AE_LINES_PKG.g_LineNumber := 0;
6842 --
6843 --
6844
6845 FOR Idx IN 1..l_array_event_id.count LOOP
6846 --
6847 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
6848 --
6849 l_event_id := l_array_event_id(idx); -- 5648433
6850
6851 --
6852 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
6853 --
6854
6855 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
6856 (g_array_event(l_event_id).array_value_num('header_index'))
6857 ,'N'
6858 ) <> 'Y'
6859 THEN
6860 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6861 trace
6862 (p_msg => 'Trancaction revesal option is not Y '
6863 ,p_level => C_LEVEL_STATEMENT
6864 ,p_module => l_log_module);
6865 END IF;
6866
6867 --
6868 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
6869 --
6870 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
6871 --
6872 -- set event info as cache for other routines to refer event attributes
6873 --
6874
6875 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
6876 l_previous_event_id := l_event_id;
6877
6878 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
6879 (p_application_id => p_application_id
6880 ,p_primary_ledger_id => p_primary_ledger_id
6881 ,p_base_ledger_id => p_base_ledger_id
6882 ,p_target_ledger_id => p_target_ledger_id
6883 ,p_entity_id => l_array_entity_id(Idx)
6884 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
6885 ,p_entity_code => l_array_entity_code(Idx)
6886 ,p_transaction_num => l_array_transaction_num(Idx)
6887 ,p_event_id => l_array_event_id(Idx)
6888 ,p_event_class_code => l_array_class_code(Idx)
6889 ,p_event_type_code => l_array_event_type(Idx)
6890 ,p_event_number => l_array_event_number(Idx)
6891 ,p_event_date => l_array_event_date(Idx)
6892 ,p_transaction_date => l_array_transaction_date(Idx)
6893 ,p_reference_num_1 => l_array_reference_num_1(Idx)
6894 ,p_reference_num_2 => l_array_reference_num_2(Idx)
6895 ,p_reference_num_3 => l_array_reference_num_3(Idx)
6896 ,p_reference_num_4 => l_array_reference_num_4(Idx)
6897 ,p_reference_char_1 => l_array_reference_char_1(Idx)
6898 ,p_reference_char_2 => l_array_reference_char_2(Idx)
6899 ,p_reference_char_3 => l_array_reference_char_3(Idx)
6900 ,p_reference_char_4 => l_array_reference_char_4(Idx)
6901 ,p_reference_date_1 => l_array_reference_date_1(Idx)
6902 ,p_reference_date_2 => l_array_reference_date_2(Idx)
6903 ,p_reference_date_3 => l_array_reference_date_3(Idx)
6904 ,p_reference_date_4 => l_array_reference_date_4(Idx)
6905 ,p_event_created_by => l_array_event_created_by(Idx)
6906 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
6907 --
6908 END IF;
6909
6910
6911
6912 --
6913 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
6914
6915 l_acct_reversal_source := SUBSTR(NULL, 1,30);
6916
6917 IF l_continue_with_lines THEN
6918 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
6919 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
6920
6921 xla_accounting_err_pkg.build_message
6922 (p_appli_s_name => 'XLA'
6923 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
6924 ,p_token_1 => 'LINE_NUMBER'
6925 ,p_value_1 => l_array_extract_line_num(Idx)
6926 ,p_token_2 => 'PRODUCT_NAME'
6927 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
6928 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6929 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
6933 --
6930 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
6931
6932 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
6934 -- following sets the accounting attributes needed to reverse
6935 -- accounting for a distributeion
6936 --
6937
6938 --
6939 -- 5217187
6940 --
6941 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
6942 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
6943 g_array_event(l_event_id).array_value_num('header_index'));
6944 --
6945 --
6946
6947 -- No reversal code generated
6948
6949 xla_ae_lines_pkg.SetAcctReversalAttrs
6950 (p_event_id => l_event_id
6951 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
6952 ,p_calculate_acctd_flag => l_calculate_acctd_flag
6953 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
6954 END IF;
6955
6956 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
6957 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
6958
6959 --
6960 AcctLineType_5 (
6961 p_application_id => p_application_id
6962 ,p_event_id => l_event_id
6963 ,p_calculate_acctd_flag => l_calculate_acctd_flag
6964 ,p_calculate_g_l_flag => l_calculate_g_l_flag
6965 ,p_actual_flag => l_actual_flag
6966 ,p_balance_type_code => l_balance_type_code
6967 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
6968
6969 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
6970 , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
6971 , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
6972 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
6973 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
6974 , p_source_12 => l_array_source_12(Idx)
6975 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
6976 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
6977 , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
6978 , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
6979 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
6980 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
6981 , p_source_18 => g_array_event(l_event_id).array_value_char('source_18')
6982 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
6983 , p_source_25 => l_array_source_25(Idx)
6984 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
6985 );
6986 If(l_balance_type_code = 'A') THEN
6987 l_actual_gain_loss_ref := l_gain_or_loss_ref;
6988 END IF;
6989
6990 --
6991
6992
6993 --
6994 AcctLineType_6 (
6995 p_application_id => p_application_id
6996 ,p_event_id => l_event_id
6997 ,p_calculate_acctd_flag => l_calculate_acctd_flag
6998 ,p_calculate_g_l_flag => l_calculate_g_l_flag
6999 ,p_actual_flag => l_actual_flag
7000 ,p_balance_type_code => l_balance_type_code
7001 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
7002
7003 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
7004 , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
7005 , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
7006 , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
7007 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
7008 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
7009 , p_source_12 => l_array_source_12(Idx)
7010 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
7011 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
7012 , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
7013 , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
7014 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
7015 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
7016 , p_source_18 => g_array_event(l_event_id).array_value_char('source_18')
7017 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
7018 , p_source_25 => l_array_source_25(Idx)
7019 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
7020 );
7021 If(l_balance_type_code = 'A') THEN
7022 l_actual_gain_loss_ref := l_gain_or_loss_ref;
7023 END IF;
7024
7025 --
7026
7027 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
7028 -- or secondary ledger that has different currency with primary
7029 -- or alc that is calculated by sla
7030 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
7031 (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'))
7032
7033 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
7034 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
7035 AND (l_actual_flag = 'A')) THEN
7036 XLA_AE_LINES_PKG.CreateGainOrLossLines(
7037 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
7041 ,p_event_class_code => C_EVENT_CLASS_CODE
7038 ,p_application_id => p_application_id
7039 ,p_amb_context_code => 'DEFAULT'
7040 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
7042 ,p_event_type_code => C_EVENT_TYPE_CODE
7043
7044 ,p_gain_ccid => -1
7045 ,p_loss_ccid => -1
7046
7047 ,p_actual_flag => l_actual_flag
7048 ,p_enc_flag => null
7049 ,p_actual_g_l_ref => l_actual_gain_loss_ref
7050 ,p_enc_g_l_ref => null
7051 );
7052 END IF;
7053 END IF;
7054 END IF;
7055
7056 ELSE
7057 --
7058 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
7059 --
7060 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7061 trace
7062 (p_msg => 'Trancaction revesal option is Y'
7063 ,p_level => C_LEVEL_STATEMENT
7064 ,p_module => l_log_module);
7065 END IF;
7066 END IF;
7067
7068 END LOOP;
7069 l_result := XLA_AE_LINES_PKG.InsertLines ;
7070 end loop;
7071 close line_cur;
7072
7073
7074 --
7075 -- insert headers into xla_ae_headers_gt table
7076 --
7077 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
7078
7079 -- insert into errors table here.
7080
7081 END LOOP;
7082
7083 --
7084 -- 4865292
7085 --
7086 -- Compare g_hdr_extract_count with event count in
7087 -- CreateHeadersAndLines.
7088 --
7089 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
7090
7091 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7092 trace (p_msg => '# rows extracted from header extract objects '
7093 || ' (running total): '
7094 || g_hdr_extract_count
7095 ,p_level => C_LEVEL_STATEMENT
7096 ,p_module => l_log_module);
7097 END IF;
7098
7099 CLOSE header_cur;
7100 --
7101
7102 --
7103 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7104 trace
7105 (p_msg => 'END of EventClass_12'
7106 ,p_level => C_LEVEL_PROCEDURE
7107 ,p_module => l_log_module);
7108 END IF;
7109 --
7110 RETURN l_result;
7111 EXCEPTION
7112 WHEN xla_exceptions_pkg.application_exception THEN
7113
7114 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
7115
7116
7117 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
7118
7119 RAISE;
7120
7121 WHEN NO_DATA_FOUND THEN
7122
7123 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
7124 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
7125
7126 FOR header_record IN header_cur
7127 LOOP
7128 l_array_header_events(header_record.event_id) := header_record.event_id;
7129 END LOOP;
7130
7131 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
7132 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
7133
7134 fnd_file.put_line(fnd_file.LOG, ' ');
7135 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
7136 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
7137 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
7138
7139 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
7140 LOOP
7141 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
7142 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
7143 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
7144 END IF;
7145 END LOOP;
7146
7147 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
7148 fnd_file.put_line(fnd_file.LOG, ' ');
7149
7150
7151 xla_exceptions_pkg.raise_message
7152 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.EventClass_12');
7153
7154
7155 WHEN OTHERS THEN
7156 xla_exceptions_pkg.raise_message
7157 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.EventClass_12');
7158 END EventClass_12;
7159 --
7160
7161 ---------------------------------------
7162 --
7163 -- PRIVATE PROCEDURE
7164 -- insert_sources_13
7165 --
7166 ----------------------------------------
7167 --
7168 PROCEDURE insert_sources_13(
7169 p_target_ledger_id IN NUMBER
7170 , p_language IN VARCHAR2
7171 , p_sla_ledger_id IN NUMBER
7172 , p_pad_start_date IN DATE
7173 , p_pad_end_date IN DATE
7174 )
7175 IS
7176
7177 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DIR_INTERORG_RCPT_ALL';
7178 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DIR_INTERORG_RCPT';
7179 p_apps_owner VARCHAR2(30);
7180 l_log_module VARCHAR2(240);
7181 BEGIN
7182 IF g_log_enabled THEN
7183 l_log_module := C_DEFAULT_MODULE||'.insert_sources_13';
7184 END IF;
7185 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7186
7187 trace
7191
7188 (p_msg => 'BEGIN of insert_sources_13'
7189 ,p_level => C_LEVEL_PROCEDURE
7190 ,p_module => l_log_module);
7192 END IF;
7193
7194 -- select APPS owner
7195 SELECT oracle_username
7196 INTO p_apps_owner
7197 FROM fnd_oracle_userid
7198 WHERE read_only_flag = 'U'
7199 ;
7200
7201 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7202 trace
7203 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
7204 ' - p_language = '||p_language||
7205 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
7206 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
7207 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
7208 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
7209 ,p_level => C_LEVEL_STATEMENT
7210 ,p_module => l_log_module);
7211 END IF;
7212
7213
7214 --
7215 INSERT INTO xla_diag_sources --hdr2
7216 (
7217 event_id
7218 , ledger_id
7219 , sla_ledger_id
7220 , description_language
7221 , object_name
7222 , object_type_code
7223 , line_number
7224 , source_application_id
7225 , source_type_code
7226 , source_code
7227 , source_value
7228 , source_meaning
7229 , created_by
7230 , creation_date
7231 , last_update_date
7232 , last_updated_by
7233 , last_update_login
7234 , program_update_date
7235 , program_application_id
7236 , program_id
7237 , request_id
7238 )
7239 SELECT
7240 event_id
7241 , p_target_ledger_id
7242 , p_sla_ledger_id
7243 , p_language
7244 , object_name
7245 , object_type_code
7246 , line_number
7247 , source_application_id
7248 , source_type_code
7249 , source_code
7250 , SUBSTR(source_value ,1,1996)
7251 , SUBSTR(source_meaning ,1,200)
7252 , xla_environment_pkg.g_Usr_Id
7253 , TRUNC(SYSDATE)
7254 , TRUNC(SYSDATE)
7255 , xla_environment_pkg.g_Usr_Id
7256 , xla_environment_pkg.g_Login_Id
7257 , TRUNC(SYSDATE)
7258 , xla_environment_pkg.g_Prog_Appl_Id
7259 , xla_environment_pkg.g_Prog_Id
7260 , xla_environment_pkg.g_Req_Id
7261 FROM (
7262 SELECT xet.event_id event_id
7263 , 0 line_number
7264 , CASE r
7265 WHEN 1 THEN 'CST_XLA_INV_ORG_PARAMS_REF_V'
7266 WHEN 2 THEN 'CST_XLA_INV_REF_V'
7267 WHEN 3 THEN 'CST_XLA_INV_HEADERS_V'
7268 WHEN 4 THEN 'CST_XLA_INV_REF_V'
7269 WHEN 5 THEN 'CST_XLA_INV_REF_V'
7270 WHEN 6 THEN 'PSA_CST_XLA_UPG_V'
7271 WHEN 7 THEN 'PO_REQ_HEADERS_REF_V'
7272 WHEN 8 THEN 'PO_REQ_DISTS_REF_V'
7273 WHEN 9 THEN 'CST_XLA_INV_REF_V'
7274 WHEN 10 THEN 'CST_XLA_INV_REF_V'
7275 WHEN 11 THEN 'CST_XLA_INV_REF_V'
7276 WHEN 12 THEN 'CST_XLA_INV_REF_V'
7277 WHEN 13 THEN 'PO_REQ_DISTS_REF_V'
7278 WHEN 14 THEN 'PO_REQ_HEADERS_REF_V'
7279 WHEN 15 THEN 'CST_XLA_INV_HEADERS_V'
7280
7281 ELSE null
7282 END object_name
7283 , CASE r
7284 WHEN 1 THEN 'HEADER'
7285 WHEN 2 THEN 'HEADER'
7286 WHEN 3 THEN 'HEADER'
7287 WHEN 4 THEN 'HEADER'
7288 WHEN 5 THEN 'HEADER'
7289 WHEN 6 THEN 'HEADER'
7290 WHEN 7 THEN 'HEADER'
7291 WHEN 8 THEN 'HEADER'
7292 WHEN 9 THEN 'HEADER'
7293 WHEN 10 THEN 'HEADER'
7294 WHEN 11 THEN 'HEADER'
7295 WHEN 12 THEN 'HEADER'
7296 WHEN 13 THEN 'HEADER'
7297 WHEN 14 THEN 'HEADER'
7298 WHEN 15 THEN 'HEADER'
7299
7300 ELSE null
7301 END object_type_code
7302 , CASE r
7303 WHEN 1 THEN '707'
7304 WHEN 2 THEN '707'
7305 WHEN 3 THEN '707'
7306 WHEN 4 THEN '707'
7307 WHEN 5 THEN '707'
7308 WHEN 6 THEN '707'
7309 WHEN 7 THEN '201'
7310 WHEN 8 THEN '201'
7311 WHEN 9 THEN '707'
7312 WHEN 10 THEN '707'
7313 WHEN 11 THEN '707'
7314 WHEN 12 THEN '707'
7315 WHEN 13 THEN '201'
7316 WHEN 14 THEN '201'
7317 WHEN 15 THEN '707'
7318
7319 ELSE null
7320 END source_application_id
7321 , 'S' source_type_code
7322 , CASE r
7323 WHEN 1 THEN 'ENCUMBRANCE_REVERSAL_FLAG'
7324 WHEN 2 THEN 'APPLIED_TO_APPL_ID'
7325 WHEN 3 THEN 'DISTRIBUTION_TYPE'
7326 WHEN 4 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
7327 WHEN 5 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
7331 WHEN 9 THEN 'BUS_FLOW_REQ_DIST_TYPE'
7328 WHEN 6 THEN 'CST_ENCUM_UPG_OPTION'
7329 WHEN 7 THEN 'REQ_ENCUMBRANCE_FLAG'
7330 WHEN 8 THEN 'REQ_RESERVED_FLAG'
7332 WHEN 10 THEN 'BUS_FLOW_REQ_ENTITY_CODE'
7333 WHEN 11 THEN 'BUS_FLOW_REQ_DIST_ID'
7334 WHEN 12 THEN 'BUS_FLOW_REQ_ID'
7335 WHEN 13 THEN 'REQ_BUDGET_ACCOUNT'
7336 WHEN 14 THEN 'REQ_ENCUMBRANCE_TYPE_ID'
7337 WHEN 15 THEN 'TRANSFER_TO_GL_INDICATOR'
7338
7339 ELSE null
7340 END source_code
7341 , CASE r
7342 WHEN 1 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_FLAG)
7343 WHEN 2 THEN TO_CHAR(h4.APPLIED_TO_APPL_ID)
7344 WHEN 3 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
7345 WHEN 4 THEN TO_CHAR(h4.ENCUM_REVERSAL_AMOUNT_ENTERED)
7346 WHEN 5 THEN TO_CHAR(h4.ENCUMBRANCE_REVERSAL_AMOUNT)
7347 WHEN 6 THEN TO_CHAR(h7.CST_ENCUM_UPG_OPTION)
7348 WHEN 7 THEN TO_CHAR(h6.REQ_ENCUMBRANCE_FLAG)
7349 WHEN 8 THEN TO_CHAR(h5.REQ_RESERVED_FLAG)
7350 WHEN 9 THEN TO_CHAR(h4.BUS_FLOW_REQ_DIST_TYPE)
7351 WHEN 10 THEN TO_CHAR(h4.BUS_FLOW_REQ_ENTITY_CODE)
7352 WHEN 11 THEN TO_CHAR(h4.BUS_FLOW_REQ_DIST_ID)
7353 WHEN 12 THEN TO_CHAR(h4.BUS_FLOW_REQ_ID)
7354 WHEN 13 THEN TO_CHAR(h5.REQ_BUDGET_ACCOUNT)
7355 WHEN 14 THEN TO_CHAR(h6.REQ_ENCUMBRANCE_TYPE_ID)
7356 WHEN 15 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
7357
7358 ELSE null
7359 END source_value
7360 , CASE r
7361 WHEN 3 THEN fvl13.meaning
7362 WHEN 15 THEN fvl37.meaning
7363
7364 ELSE null
7365 END source_meaning
7366 FROM xla_events_gt xet
7367 , CST_XLA_INV_HEADERS_V h1
7368 , CST_XLA_INV_ORG_PARAMS_REF_V h3
7369 , CST_XLA_INV_REF_V h4
7370 , PO_REQ_DISTS_REF_V h5
7371 , PO_REQ_HEADERS_REF_V h6
7372 , PSA_CST_XLA_UPG_V h7
7373 , fnd_lookup_values fvl13
7374 , fnd_lookup_values fvl37
7375 ,(select rownum r from all_objects where rownum <= 15 and owner = p_apps_owner)
7376 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
7377 AND xet.event_class_code = C_EVENT_CLASS_CODE
7378 AND h1.event_id = xet.event_id
7379 AND h3.inv_organization_id (+) = h1.organization_id AND h4.ref_transaction_id = h1.transaction_id AND h4.bus_flow_req_dist_id=h5.req_distribution_id (+) AND h4.bus_flow_req_id = h6.req_id (+) AND h4.rcv_transaction_id = h7.transaction_id (+) AND fvl13.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
7380 AND fvl13.lookup_code(+) = h1.DISTRIBUTION_TYPE
7381 AND fvl13.view_application_id(+) = 700
7382 AND fvl13.language(+) = USERENV('LANG')
7383 AND fvl37.lookup_type(+) = 'YES_NO'
7384 AND fvl37.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
7385 AND fvl37.view_application_id(+) = 0
7386 AND fvl37.language(+) = USERENV('LANG')
7387
7388 )
7389 ;
7390 --
7391 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7392
7393 trace
7394 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
7395 ,p_level => C_LEVEL_STATEMENT
7396 ,p_module => l_log_module);
7397
7398 END IF;
7399 --
7400
7401
7402
7403 --
7404 INSERT INTO xla_diag_sources --line2
7405 (
7406 event_id
7407 , ledger_id
7408 , sla_ledger_id
7409 , description_language
7410 , object_name
7411 , object_type_code
7412 , line_number
7413 , source_application_id
7414 , source_type_code
7415 , source_code
7416 , source_value
7417 , source_meaning
7418 , created_by
7419 , creation_date
7420 , last_update_date
7421 , last_updated_by
7422 , last_update_login
7423 , program_update_date
7424 , program_application_id
7425 , program_id
7426 , request_id
7427 )
7428 SELECT event_id
7429 , p_target_ledger_id
7430 , p_sla_ledger_id
7431 , p_language
7432 , object_name
7433 , object_type_code
7434 , line_number
7435 , source_application_id
7436 , source_type_code
7437 , source_code
7438 , SUBSTR(source_value,1,1996)
7439 , SUBSTR(source_meaning ,1,200)
7440 , xla_environment_pkg.g_Usr_Id
7441 , TRUNC(SYSDATE)
7442 , TRUNC(SYSDATE)
7443 , xla_environment_pkg.g_Usr_Id
7444 , xla_environment_pkg.g_Login_Id
7445 , TRUNC(SYSDATE)
7446 , xla_environment_pkg.g_Prog_Appl_Id
7447 , xla_environment_pkg.g_Prog_Id
7448 , xla_environment_pkg.g_Req_Id
7449 FROM (
7450 SELECT xet.event_id event_id
7451 , l2.line_number line_number
7452 , CASE r
7453 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
7454 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
7455
7459 WHEN 1 THEN 'LINE'
7456 ELSE null
7457 END object_name
7458 , CASE r
7460 WHEN 2 THEN 'LINE'
7461
7462 ELSE null
7463 END object_type_code
7464 , CASE r
7465 WHEN 1 THEN '707'
7466 WHEN 2 THEN '707'
7467
7468 ELSE null
7469 END source_application_id
7470 , 'S' source_type_code
7471 , CASE r
7472 WHEN 1 THEN 'DISTRIBUTION_IDENTIFIER'
7473 WHEN 2 THEN 'CURRENCY_CODE'
7474
7475 ELSE null
7476 END source_code
7477 , CASE r
7478 WHEN 1 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
7479 WHEN 2 THEN TO_CHAR(l2.CURRENCY_CODE)
7480
7481 ELSE null
7482 END source_value
7483 , null source_meaning
7484 FROM xla_events_gt xet
7485 , CST_XLA_INV_LINES_V l2
7486 , (select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
7487 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
7488 AND xet.event_class_code = C_EVENT_CLASS_CODE
7489 AND l2.event_id = xet.event_id
7490
7491 )
7492 ;
7493 --
7494 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7495
7496 trace
7497 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
7498 ,p_level => C_LEVEL_STATEMENT
7499 ,p_module => l_log_module);
7500
7501 END IF;
7502
7503
7504 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7505 trace
7506 (p_msg => 'END of insert_sources_13'
7507 ,p_level => C_LEVEL_PROCEDURE
7508 ,p_module => l_log_module);
7509 END IF;
7510 EXCEPTION
7511 WHEN xla_exceptions_pkg.application_exception THEN
7512 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
7513 trace
7514 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
7515 ,p_level => C_LEVEL_EXCEPTION
7516 ,p_module => l_log_module);
7517 END IF;
7518 RAISE;
7519 WHEN OTHERS THEN
7520 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
7521 trace
7522 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
7523 ,p_level => C_LEVEL_EXCEPTION
7524 ,p_module => l_log_module);
7525 END IF;
7526 xla_exceptions_pkg.raise_message
7527 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.insert_sources_13');
7528 END insert_sources_13;
7529 --
7530
7531 ---------------------------------------
7532 --
7533 -- PRIVATE FUNCTION
7534 -- EventClass_13
7535 --
7536 ----------------------------------------
7537 --
7538 FUNCTION EventClass_13
7539 (p_application_id IN NUMBER
7540 ,p_base_ledger_id IN NUMBER
7541 ,p_target_ledger_id IN NUMBER
7542 ,p_language IN VARCHAR2
7543 ,p_currency_code IN VARCHAR2
7544 ,p_sla_ledger_id IN NUMBER
7545 ,p_pad_start_date IN DATE
7546 ,p_pad_end_date IN DATE
7547 ,p_primary_ledger_id IN NUMBER)
7548 RETURN BOOLEAN IS
7549 --
7550 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DIR_INTERORG_RCPT_ALL';
7551 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DIR_INTERORG_RCPT';
7552
7553 l_calculate_acctd_flag VARCHAR2(1) :='N';
7554 l_calculate_g_l_flag VARCHAR2(1) :='N';
7555 --
7556 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7557 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7558 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
7559 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
7560 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7561 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
7562 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
7563 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7564 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
7565 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
7566 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7567 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7568 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7569 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
7570 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
7571 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
7572 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
7573 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
7574 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
7575 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
7576 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
7580 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
7577 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
7578 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
7579 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
7581 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
7582
7583 l_event_id NUMBER;
7584 l_previous_event_id NUMBER;
7585 l_first_event_id NUMBER;
7586 l_last_event_id NUMBER;
7587
7588 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
7589 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7590 --
7591 --
7592 l_result BOOLEAN := TRUE;
7593 l_rows NUMBER := 1000;
7594 l_event_type_name VARCHAR2(80) := 'All';
7595 l_event_class_name VARCHAR2(80) := 'Direct Interorg Receipt';
7596 l_description VARCHAR2(4000);
7597 l_transaction_reversal NUMBER;
7598 l_ae_header_id NUMBER;
7599 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
7600 l_log_module VARCHAR2(240);
7601 --
7602 l_acct_reversal_source VARCHAR2(30);
7603 l_trx_reversal_source VARCHAR2(30);
7604
7605 l_continue_with_lines BOOLEAN := TRUE;
7606 --
7607 l_acc_rev_gl_date_source DATE; -- 4262811
7608 --
7609 type t_array_event_id is table of number index by binary_integer;
7610
7611 l_rec_array_event t_rec_array_event;
7612 l_null_rec_array_event t_rec_array_event;
7613 l_array_ae_header_id xla_number_array_type;
7614 l_actual_flag VARCHAR2(1) := NULL;
7615 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
7616 l_balance_type_code VARCHAR2(1) :=NULL;
7617 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
7618
7619 --
7620 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
7621 --
7622
7623 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_ORG_PARAMS_REF_V.ENCUMBRANCE_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
7624 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
7625 TYPE t_array_source_13 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
7626 TYPE t_array_source_15 IS TABLE OF CST_XLA_INV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
7627 TYPE t_array_source_17 IS TABLE OF CST_XLA_INV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
7628 TYPE t_array_source_18 IS TABLE OF PSA_CST_XLA_UPG_V.CST_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
7629 TYPE t_array_source_28 IS TABLE OF PO_REQ_HEADERS_REF_V.REQ_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
7630 TYPE t_array_source_29 IS TABLE OF PO_REQ_DISTS_REF_V.REQ_RESERVED_FLAG%TYPE INDEX BY BINARY_INTEGER;
7631 TYPE t_array_source_30 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
7632 TYPE t_array_source_31 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
7633 TYPE t_array_source_32 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
7634 TYPE t_array_source_33 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_ID%TYPE INDEX BY BINARY_INTEGER;
7635 TYPE t_array_source_34 IS TABLE OF PO_REQ_DISTS_REF_V.REQ_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
7636 TYPE t_array_source_35 IS TABLE OF PO_REQ_HEADERS_REF_V.REQ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
7637 TYPE t_array_source_37 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
7638
7639 TYPE t_array_source_12 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
7640 TYPE t_array_source_16 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
7641
7642 l_array_source_4 t_array_source_4;
7643 l_array_source_7 t_array_source_7;
7644 l_array_source_13 t_array_source_13;
7645 l_array_source_13_meaning t_array_lookup_meaning;
7646 l_array_source_15 t_array_source_15;
7647 l_array_source_17 t_array_source_17;
7648 l_array_source_18 t_array_source_18;
7649 l_array_source_28 t_array_source_28;
7650 l_array_source_29 t_array_source_29;
7651 l_array_source_30 t_array_source_30;
7652 l_array_source_31 t_array_source_31;
7653 l_array_source_32 t_array_source_32;
7654 l_array_source_33 t_array_source_33;
7655 l_array_source_34 t_array_source_34;
7656 l_array_source_35 t_array_source_35;
7657 l_array_source_37 t_array_source_37;
7658 l_array_source_37_meaning t_array_lookup_meaning;
7659
7660 l_array_source_12 t_array_source_12;
7661 l_array_source_16 t_array_source_16;
7662
7663 --
7664 CURSOR header_cur
7665 IS
7666 SELECT /*+ leading(xet) cardinality(xet,1) */
7667 -- Event Class Code: DIR_INTERORG_RCPT
7668 xet.entity_id
7669 ,xet.legal_entity_id
7670 ,xet.entity_code
7671 ,xet.transaction_number
7672 ,xet.event_id
7673 ,xet.event_class_code
7674 ,xet.event_type_code
7675 ,xet.event_number
7676 ,xet.event_date
7677 ,xet.transaction_date
7678 ,xet.reference_num_1
7679 ,xet.reference_num_2
7683 ,xet.reference_char_2
7680 ,xet.reference_num_3
7681 ,xet.reference_num_4
7682 ,xet.reference_char_1
7684 ,xet.reference_char_3
7685 ,xet.reference_char_4
7686 ,xet.reference_date_1
7687 ,xet.reference_date_2
7688 ,xet.reference_date_3
7689 ,xet.reference_date_4
7690 ,xet.event_created_by
7691 ,xet.budgetary_control_flag
7692 , h3.ENCUMBRANCE_REVERSAL_FLAG source_4
7693 , h4.APPLIED_TO_APPL_ID source_7
7694 , h1.DISTRIBUTION_TYPE source_13
7695 , fvl13.meaning source_13_meaning
7696 , h4.ENCUM_REVERSAL_AMOUNT_ENTERED source_15
7697 , h4.ENCUMBRANCE_REVERSAL_AMOUNT source_17
7698 , h7.CST_ENCUM_UPG_OPTION source_18
7699 , h6.REQ_ENCUMBRANCE_FLAG source_28
7700 , h5.REQ_RESERVED_FLAG source_29
7701 , h4.BUS_FLOW_REQ_DIST_TYPE source_30
7702 , h4.BUS_FLOW_REQ_ENTITY_CODE source_31
7703 , h4.BUS_FLOW_REQ_DIST_ID source_32
7704 , h4.BUS_FLOW_REQ_ID source_33
7705 , h5.REQ_BUDGET_ACCOUNT source_34
7706 , h6.REQ_ENCUMBRANCE_TYPE_ID source_35
7707 , h1.TRANSFER_TO_GL_INDICATOR source_37
7708 , fvl37.meaning source_37_meaning
7709 FROM xla_events_gt xet
7710 , CST_XLA_INV_HEADERS_V h1
7711 , CST_XLA_INV_ORG_PARAMS_REF_V h3
7712 , CST_XLA_INV_REF_V h4
7713 , PO_REQ_DISTS_REF_V h5
7714 , PO_REQ_HEADERS_REF_V h6
7715 , PSA_CST_XLA_UPG_V h7
7716 , fnd_lookup_values fvl13
7717 , fnd_lookup_values fvl37
7718 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
7719 and xet.event_class_code = C_EVENT_CLASS_CODE
7720 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
7721 AND h3.INV_ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h4.ref_transaction_id = h1.transaction_id AND h4.BUS_FLOW_REQ_DIST_ID=h5.REQ_DISTRIBUTION_ID (+) AND h4.BUS_FLOW_REQ_ID = h6.REQ_ID (+) AND h4.rcv_transaction_id = h7.transaction_id (+) AND fvl13.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
7722 AND fvl13.lookup_code(+) = h1.DISTRIBUTION_TYPE
7723 AND fvl13.view_application_id(+) = 700
7724 AND fvl13.language(+) = USERENV('LANG')
7725 AND fvl37.lookup_type(+) = 'YES_NO'
7726 AND fvl37.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
7727 AND fvl37.view_application_id(+) = 0
7728 AND fvl37.language(+) = USERENV('LANG')
7729
7730 ORDER BY event_id
7731 ;
7732
7733
7734 --
7735 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
7736 IS
7737 SELECT /*+ leading(xet) cardinality(xet,1) */
7738 -- Event Class Code: DIR_INTERORG_RCPT
7739 xet.entity_id
7740 ,xet.legal_entity_id
7741 ,xet.entity_code
7742 ,xet.transaction_number
7743 ,xet.event_id
7744 ,xet.event_class_code
7745 ,xet.event_type_code
7746 ,xet.event_number
7747 ,xet.event_date
7748 ,xet.transaction_date
7749 ,xet.reference_num_1
7750 ,xet.reference_num_2
7751 ,xet.reference_num_3
7752 ,xet.reference_num_4
7753 ,xet.reference_char_1
7754 ,xet.reference_char_2
7755 ,xet.reference_char_3
7756 ,xet.reference_char_4
7757 ,xet.reference_date_1
7758 ,xet.reference_date_2
7759 ,xet.reference_date_3
7760 ,xet.reference_date_4
7761 ,xet.event_created_by
7762 ,xet.budgetary_control_flag
7763 , l2.LINE_NUMBER
7764 , l2.DISTRIBUTION_IDENTIFIER source_12
7765 , l2.CURRENCY_CODE source_16
7766 FROM xla_events_gt xet
7767 , CST_XLA_INV_LINES_V l2
7768 WHERE xet.event_id between x_first_event_id and x_last_event_id
7769 and xet.event_date between p_pad_start_date and p_pad_end_date
7770 and xet.event_class_code = C_EVENT_CLASS_CODE
7771 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
7772 ;
7773
7774 --
7775 BEGIN
7776 IF g_log_enabled THEN
7777 l_log_module := C_DEFAULT_MODULE||'.EventClass_13';
7778 END IF;
7779 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7780 trace
7781 (p_msg => 'BEGIN of EventClass_13'
7782 ,p_level => C_LEVEL_PROCEDURE
7783 ,p_module => l_log_module);
7784 END IF;
7785
7786 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7787 trace
7788 (p_msg => 'p_application_id = '||p_application_id||
7789 ' - p_base_ledger_id = '||p_base_ledger_id||
7790 ' - p_target_ledger_id = '||p_target_ledger_id||
7791 ' - p_language = '||p_language||
7792 ' - p_currency_code = '||p_currency_code||
7793 ' - p_sla_ledger_id = '||p_sla_ledger_id
7794 ,p_level => C_LEVEL_STATEMENT
7795 ,p_module => l_log_module);
7796 END IF;
7797 --
7798 -- initialze arrays
7799 --
7800 g_array_event.DELETE;
7801 l_rec_array_event := l_null_rec_array_event;
7802 --
7803 --------------------------------------
7804 -- 4262811 Initialze MPA Line Number
7805 --------------------------------------
7806 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
7807
7808 --
7809
7810 --
7811 OPEN header_cur;
7812 --
7813 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7814 trace
7815 (p_msg => 'SQL - FETCH header_cur'
7816 ,p_level => C_LEVEL_STATEMENT
7817 ,p_module => l_log_module);
7818 END IF;
7819 --
7820 LOOP
7821 FETCH header_cur BULK COLLECT INTO
7825 , l_array_transaction_num
7822 l_array_entity_id
7823 , l_array_legal_entity_id
7824 , l_array_entity_code
7826 , l_array_event_id
7827 , l_array_class_code
7828 , l_array_event_type
7829 , l_array_event_number
7830 , l_array_event_date
7831 , l_array_transaction_date
7832 , l_array_reference_num_1
7833 , l_array_reference_num_2
7834 , l_array_reference_num_3
7835 , l_array_reference_num_4
7836 , l_array_reference_char_1
7837 , l_array_reference_char_2
7838 , l_array_reference_char_3
7839 , l_array_reference_char_4
7840 , l_array_reference_date_1
7841 , l_array_reference_date_2
7842 , l_array_reference_date_3
7843 , l_array_reference_date_4
7844 , l_array_event_created_by
7845 , l_array_budgetary_control_flag
7846 , l_array_source_4
7847 , l_array_source_7
7848 , l_array_source_13
7849 , l_array_source_13_meaning
7850 , l_array_source_15
7851 , l_array_source_17
7852 , l_array_source_18
7853 , l_array_source_28
7854 , l_array_source_29
7855 , l_array_source_30
7856 , l_array_source_31
7857 , l_array_source_32
7858 , l_array_source_33
7859 , l_array_source_34
7860 , l_array_source_35
7861 , l_array_source_37
7862 , l_array_source_37_meaning
7863 LIMIT l_rows;
7864 --
7865 IF (C_LEVEL_EVENT >= g_log_level) THEN
7866 trace
7867 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
7868 ,p_level => C_LEVEL_EVENT
7869 ,p_module => l_log_module);
7870 END IF;
7871 --
7872 EXIT WHEN l_array_entity_id.COUNT = 0;
7873
7874 -- initialize arrays
7875 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
7876 XLA_AE_LINES_PKG.g_rec_lines := NULL;
7877
7878 --
7879 -- Bug 4458708
7880 --
7881 XLA_AE_LINES_PKG.g_LineNumber := 0;
7882
7883
7884 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
7885 g_last_hdr_idx := l_array_event_id.LAST;
7886 --
7887 -- loop for the headers. Each iteration is for each header extract row
7888 -- fetched in header cursor
7889 --
7890 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
7891
7892 --
7893 -- set event info as cache for other routines to refer event attributes
7894 --
7895 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
7896 (p_application_id => p_application_id
7897 ,p_primary_ledger_id => p_primary_ledger_id
7898 ,p_base_ledger_id => p_base_ledger_id
7899 ,p_target_ledger_id => p_target_ledger_id
7900 ,p_entity_id => l_array_entity_id(hdr_idx)
7901 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
7902 ,p_entity_code => l_array_entity_code(hdr_idx)
7903 ,p_transaction_num => l_array_transaction_num(hdr_idx)
7904 ,p_event_id => l_array_event_id(hdr_idx)
7905 ,p_event_class_code => l_array_class_code(hdr_idx)
7906 ,p_event_type_code => l_array_event_type(hdr_idx)
7907 ,p_event_number => l_array_event_number(hdr_idx)
7908 ,p_event_date => l_array_event_date(hdr_idx)
7909 ,p_transaction_date => l_array_transaction_date(hdr_idx)
7910 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
7911 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
7912 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
7913 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
7914 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
7915 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
7916 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
7917 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
7918 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
7919 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
7920 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
7921 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
7922 ,p_event_created_by => l_array_event_created_by(hdr_idx)
7923 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
7924
7925 --
7926 -- set the status of entry to C_VALID (0)
7927 --
7928 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
7929
7930 --
7931 -- initialize a row for ae header
7932 --
7933 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
7934
7935 l_event_id := l_array_event_id(hdr_idx);
7936
7937 --
7938 -- storing the hdr_idx for event. May be used by line cursor.
7939 --
7940 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
7941
7942 --
7943 -- store sources from header extract. This can be improved to
7944 -- store only those sources from header extract that may be used in lines
7945 --
7946
7947 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
7948 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
7949 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
7950 g_array_event(l_event_id).array_value_char('source_13_meaning') := l_array_source_13_meaning(hdr_idx);
7951 g_array_event(l_event_id).array_value_num('source_15') := l_array_source_15(hdr_idx);
7955 g_array_event(l_event_id).array_value_char('source_29') := l_array_source_29(hdr_idx);
7952 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
7953 g_array_event(l_event_id).array_value_char('source_18') := l_array_source_18(hdr_idx);
7954 g_array_event(l_event_id).array_value_char('source_28') := l_array_source_28(hdr_idx);
7956 g_array_event(l_event_id).array_value_char('source_30') := l_array_source_30(hdr_idx);
7957 g_array_event(l_event_id).array_value_char('source_31') := l_array_source_31(hdr_idx);
7958 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
7959 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
7960 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
7961 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
7962 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
7963 g_array_event(l_event_id).array_value_char('source_37_meaning') := l_array_source_37_meaning(hdr_idx);
7964
7965 --
7966 -- initilaize the status of ae headers for diffrent balance types
7967 -- the status is initialised to C_NOT_CREATED (2)
7968 --
7969 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
7970 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
7971 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
7972
7973 --
7974 -- call api to validate and store accounting attributes for header
7975 --
7976
7977 ------------------------------------------------------------
7978 -- Accrual Reversal : to get date for Standard Source (NONE)
7979 ------------------------------------------------------------
7980 l_acc_rev_gl_date_source := NULL;
7981
7982 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
7983 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_35');
7984 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
7985 l_rec_acct_attrs.array_date_value(2) :=
7986 xla_ae_sources_pkg.GetSystemSourceDate(
7987 p_source_code => 'XLA_REFERENCE_DATE_1'
7988 , p_source_type_code => 'Y'
7989 , p_source_application_id => 602
7990 );
7991 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
7992 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_37');
7993
7994
7995 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
7996
7997 XLA_AE_HEADER_PKG.SetJeCategoryName;
7998
7999 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
8000 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
8001 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
8002 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
8003 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
8004
8005
8006 -- No header level analytical criteria
8007
8008 --
8009 --accounting attribute enhancement, bug 3612931
8010 --
8011 l_trx_reversal_source := SUBSTR(NULL, 1,30);
8012
8013 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
8014 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
8015
8016 xla_accounting_err_pkg.build_message
8017 (p_appli_s_name => 'XLA'
8018 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
8019 ,p_token_1 => 'ACCT_ATTR_NAME'
8020 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
8021 ,p_token_2 => 'PRODUCT_NAME'
8022 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
8023 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
8024 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
8025 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
8026
8027 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
8028 --
8029 -- following sets the accounting attributes needed to reverse
8030 -- accounting for a distributeion
8031 --
8032 xla_ae_lines_pkg.SetTrxReversalAttrs
8033 (p_event_id => l_event_id
8034 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
8035 ,p_trx_reversal_source => l_trx_reversal_source);
8036
8037 END IF;
8038
8039
8040 ----------------------------------------------------------------
8041 -- 4262811 - update the header statuses to invalid in need be
8042 ----------------------------------------------------------------
8043 --
8044 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
8045
8046
8047 -----------------------------------------------
8048 -- No accrual reversal for the event class/type
8049 -----------------------------------------------
8050 ----------------------------------------------------------------
8051
8052 --
8053 -- this ends the header loop iteration for one bulk fetch
8054 --
8055 END LOOP;
8056
8060 --
8057 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
8058 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
8059
8061 -- insert dummy rows into lines gt table that were created due to
8062 -- transaction reversals
8063 --
8064 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
8065 l_result := XLA_AE_LINES_PKG.InsertLines;
8066 END IF;
8067
8068 --
8069 -- reset the temp_line_num for each set of events fetched from header
8070 -- cursor rather than doing it for each new event in line cursor
8071 -- Bug 3939231
8072 --
8073 xla_ae_lines_pkg.g_temp_line_num := 0;
8074
8075
8076
8077 --
8078 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
8079 --
8080 --
8081 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8082
8083 trace
8084 (p_msg => 'SQL - FETCH line_cur'
8085 ,p_level => C_LEVEL_STATEMENT
8086 ,p_module => l_log_module);
8087
8088 END IF;
8089 --
8090 --
8091 LOOP
8092 --
8093 FETCH line_cur BULK COLLECT INTO
8094 l_array_entity_id
8095 , l_array_legal_entity_id
8096 , l_array_entity_code
8097 , l_array_transaction_num
8098 , l_array_event_id
8099 , l_array_class_code
8100 , l_array_event_type
8101 , l_array_event_number
8102 , l_array_event_date
8103 , l_array_transaction_date
8104 , l_array_reference_num_1
8105 , l_array_reference_num_2
8106 , l_array_reference_num_3
8107 , l_array_reference_num_4
8108 , l_array_reference_char_1
8109 , l_array_reference_char_2
8110 , l_array_reference_char_3
8111 , l_array_reference_char_4
8112 , l_array_reference_date_1
8113 , l_array_reference_date_2
8114 , l_array_reference_date_3
8115 , l_array_reference_date_4
8116 , l_array_event_created_by
8117 , l_array_budgetary_control_flag
8118 , l_array_extract_line_num
8119 , l_array_source_12
8120 , l_array_source_16
8121 LIMIT l_rows;
8122
8123 --
8124 IF (C_LEVEL_EVENT >= g_log_level) THEN
8125 trace
8126 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
8127 ,p_level => C_LEVEL_EVENT
8128 ,p_module => l_log_module);
8129 END IF;
8130 --
8131 EXIT WHEN l_array_entity_id.count = 0;
8132
8133 XLA_AE_LINES_PKG.g_rec_lines := null;
8134
8135 --
8136 -- Bug 4458708
8137 --
8138 XLA_AE_LINES_PKG.g_LineNumber := 0;
8139 --
8140 --
8141
8142 FOR Idx IN 1..l_array_event_id.count LOOP
8143 --
8144 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
8145 --
8146 l_event_id := l_array_event_id(idx); -- 5648433
8147
8148 --
8149 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
8150 --
8151
8152 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
8153 (g_array_event(l_event_id).array_value_num('header_index'))
8154 ,'N'
8155 ) <> 'Y'
8156 THEN
8157 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8158 trace
8159 (p_msg => 'Trancaction revesal option is not Y '
8160 ,p_level => C_LEVEL_STATEMENT
8161 ,p_module => l_log_module);
8162 END IF;
8163
8164 --
8165 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
8166 --
8167 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
8168 --
8169 -- set event info as cache for other routines to refer event attributes
8170 --
8171
8172 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
8173 l_previous_event_id := l_event_id;
8174
8175 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
8176 (p_application_id => p_application_id
8177 ,p_primary_ledger_id => p_primary_ledger_id
8178 ,p_base_ledger_id => p_base_ledger_id
8179 ,p_target_ledger_id => p_target_ledger_id
8180 ,p_entity_id => l_array_entity_id(Idx)
8181 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
8182 ,p_entity_code => l_array_entity_code(Idx)
8183 ,p_transaction_num => l_array_transaction_num(Idx)
8184 ,p_event_id => l_array_event_id(Idx)
8185 ,p_event_class_code => l_array_class_code(Idx)
8186 ,p_event_type_code => l_array_event_type(Idx)
8187 ,p_event_number => l_array_event_number(Idx)
8188 ,p_event_date => l_array_event_date(Idx)
8189 ,p_transaction_date => l_array_transaction_date(Idx)
8190 ,p_reference_num_1 => l_array_reference_num_1(Idx)
8191 ,p_reference_num_2 => l_array_reference_num_2(Idx)
8192 ,p_reference_num_3 => l_array_reference_num_3(Idx)
8193 ,p_reference_num_4 => l_array_reference_num_4(Idx)
8194 ,p_reference_char_1 => l_array_reference_char_1(Idx)
8195 ,p_reference_char_2 => l_array_reference_char_2(Idx)
8196 ,p_reference_char_3 => l_array_reference_char_3(Idx)
8197 ,p_reference_char_4 => l_array_reference_char_4(Idx)
8198 ,p_reference_date_1 => l_array_reference_date_1(Idx)
8202 ,p_event_created_by => l_array_event_created_by(Idx)
8199 ,p_reference_date_2 => l_array_reference_date_2(Idx)
8200 ,p_reference_date_3 => l_array_reference_date_3(Idx)
8201 ,p_reference_date_4 => l_array_reference_date_4(Idx)
8203 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
8204 --
8205 END IF;
8206
8207
8208
8209 --
8210 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
8211
8212 l_acct_reversal_source := SUBSTR(NULL, 1,30);
8213
8214 IF l_continue_with_lines THEN
8215 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
8216 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
8217
8218 xla_accounting_err_pkg.build_message
8219 (p_appli_s_name => 'XLA'
8220 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
8221 ,p_token_1 => 'LINE_NUMBER'
8222 ,p_value_1 => l_array_extract_line_num(Idx)
8223 ,p_token_2 => 'PRODUCT_NAME'
8224 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
8225 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
8226 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
8227 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
8228
8229 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
8230 --
8231 -- following sets the accounting attributes needed to reverse
8232 -- accounting for a distributeion
8233 --
8234
8235 --
8236 -- 5217187
8237 --
8238 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
8239 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
8240 g_array_event(l_event_id).array_value_num('header_index'));
8241 --
8242 --
8243
8244 -- No reversal code generated
8245
8246 xla_ae_lines_pkg.SetAcctReversalAttrs
8247 (p_event_id => l_event_id
8248 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
8249 ,p_calculate_acctd_flag => l_calculate_acctd_flag
8250 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
8251 END IF;
8252
8253 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
8254 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
8255
8256 --
8257 AcctLineType_9 (
8258 p_application_id => p_application_id
8259 ,p_event_id => l_event_id
8260 ,p_calculate_acctd_flag => l_calculate_acctd_flag
8261 ,p_calculate_g_l_flag => l_calculate_g_l_flag
8262 ,p_actual_flag => l_actual_flag
8263 ,p_balance_type_code => l_balance_type_code
8264 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
8265
8266 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
8267 , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
8268 , p_source_12 => l_array_source_12(Idx)
8269 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
8270 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
8271 , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
8272 , p_source_16 => l_array_source_16(Idx)
8273 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
8274 , p_source_18 => g_array_event(l_event_id).array_value_char('source_18')
8275 , p_source_28 => g_array_event(l_event_id).array_value_char('source_28')
8276 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
8277 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
8278 , p_source_31 => g_array_event(l_event_id).array_value_char('source_31')
8279 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
8280 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
8281 , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
8282 , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
8283 );
8284 If(l_balance_type_code = 'A') THEN
8285 l_actual_gain_loss_ref := l_gain_or_loss_ref;
8286 END IF;
8287
8288 --
8289
8290 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
8291 -- or secondary ledger that has different currency with primary
8292 -- or alc that is calculated by sla
8293 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
8294 (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'))
8295
8296 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
8297 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
8298 AND (l_actual_flag = 'A')) THEN
8299 XLA_AE_LINES_PKG.CreateGainOrLossLines(
8300 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
8301 ,p_application_id => p_application_id
8302 ,p_amb_context_code => 'DEFAULT'
8303 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
8304 ,p_event_class_code => C_EVENT_CLASS_CODE
8308 ,p_loss_ccid => -1
8305 ,p_event_type_code => C_EVENT_TYPE_CODE
8306
8307 ,p_gain_ccid => -1
8309
8310 ,p_actual_flag => l_actual_flag
8311 ,p_enc_flag => null
8312 ,p_actual_g_l_ref => l_actual_gain_loss_ref
8313 ,p_enc_g_l_ref => null
8314 );
8315 END IF;
8316 END IF;
8317 END IF;
8318
8319 ELSE
8320 --
8321 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
8322 --
8323 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8324 trace
8325 (p_msg => 'Trancaction revesal option is Y'
8326 ,p_level => C_LEVEL_STATEMENT
8327 ,p_module => l_log_module);
8328 END IF;
8329 END IF;
8330
8331 END LOOP;
8332 l_result := XLA_AE_LINES_PKG.InsertLines ;
8333 end loop;
8334 close line_cur;
8335
8336
8337 --
8338 -- insert headers into xla_ae_headers_gt table
8339 --
8340 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
8341
8342 -- insert into errors table here.
8343
8344 END LOOP;
8345
8346 --
8347 -- 4865292
8348 --
8349 -- Compare g_hdr_extract_count with event count in
8350 -- CreateHeadersAndLines.
8351 --
8352 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
8353
8354 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8355 trace (p_msg => '# rows extracted from header extract objects '
8356 || ' (running total): '
8357 || g_hdr_extract_count
8358 ,p_level => C_LEVEL_STATEMENT
8359 ,p_module => l_log_module);
8360 END IF;
8361
8362 CLOSE header_cur;
8363 --
8364
8365 --
8366 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8367 trace
8368 (p_msg => 'END of EventClass_13'
8369 ,p_level => C_LEVEL_PROCEDURE
8370 ,p_module => l_log_module);
8371 END IF;
8372 --
8373 RETURN l_result;
8374 EXCEPTION
8375 WHEN xla_exceptions_pkg.application_exception THEN
8376
8377 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
8378
8379
8380 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
8381
8382 RAISE;
8383
8384 WHEN NO_DATA_FOUND THEN
8385
8386 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
8387 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
8388
8389 FOR header_record IN header_cur
8390 LOOP
8391 l_array_header_events(header_record.event_id) := header_record.event_id;
8392 END LOOP;
8393
8394 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
8395 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
8396
8397 fnd_file.put_line(fnd_file.LOG, ' ');
8398 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
8399 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
8400 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
8401
8402 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
8403 LOOP
8404 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
8405 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
8406 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
8407 END IF;
8408 END LOOP;
8409
8410 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
8411 fnd_file.put_line(fnd_file.LOG, ' ');
8412
8413
8414 xla_exceptions_pkg.raise_message
8415 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.EventClass_13');
8416
8417
8418 WHEN OTHERS THEN
8419 xla_exceptions_pkg.raise_message
8420 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.EventClass_13');
8421 END EventClass_13;
8422 --
8423
8424 ---------------------------------------
8425 --
8426 -- PRIVATE PROCEDURE
8427 -- insert_sources_14
8428 --
8429 ----------------------------------------
8430 --
8431 PROCEDURE insert_sources_14(
8432 p_target_ledger_id IN NUMBER
8433 , p_language IN VARCHAR2
8434 , p_sla_ledger_id IN NUMBER
8435 , p_pad_start_date IN DATE
8436 , p_pad_end_date IN DATE
8437 )
8438 IS
8439
8440 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FOB_RCPT_RECIPIENT_RCPT_ALL';
8441 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FOB_RCPT_RECIPIENT_RCPT';
8442 p_apps_owner VARCHAR2(30);
8443 l_log_module VARCHAR2(240);
8444 BEGIN
8445 IF g_log_enabled THEN
8446 l_log_module := C_DEFAULT_MODULE||'.insert_sources_14';
8447 END IF;
8448 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8449
8450 trace
8451 (p_msg => 'BEGIN of insert_sources_14'
8452 ,p_level => C_LEVEL_PROCEDURE
8453 ,p_module => l_log_module);
8454
8455 END IF;
8456
8457 -- select APPS owner
8458 SELECT oracle_username
8459 INTO p_apps_owner
8460 FROM fnd_oracle_userid
8461 WHERE read_only_flag = 'U'
8465 trace
8462 ;
8463
8464 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8466 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
8467 ' - p_language = '||p_language||
8468 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
8469 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
8470 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
8471 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
8472 ,p_level => C_LEVEL_STATEMENT
8473 ,p_module => l_log_module);
8474 END IF;
8475
8476
8477 --
8478 INSERT INTO xla_diag_sources --hdr2
8479 (
8480 event_id
8481 , ledger_id
8482 , sla_ledger_id
8483 , description_language
8484 , object_name
8485 , object_type_code
8486 , line_number
8487 , source_application_id
8488 , source_type_code
8489 , source_code
8490 , source_value
8491 , source_meaning
8492 , created_by
8493 , creation_date
8494 , last_update_date
8495 , last_updated_by
8496 , last_update_login
8497 , program_update_date
8498 , program_application_id
8499 , program_id
8500 , request_id
8501 )
8502 SELECT
8503 event_id
8504 , p_target_ledger_id
8505 , p_sla_ledger_id
8506 , p_language
8507 , object_name
8508 , object_type_code
8509 , line_number
8510 , source_application_id
8511 , source_type_code
8512 , source_code
8513 , SUBSTR(source_value ,1,1996)
8514 , SUBSTR(source_meaning ,1,200)
8515 , xla_environment_pkg.g_Usr_Id
8516 , TRUNC(SYSDATE)
8517 , TRUNC(SYSDATE)
8518 , xla_environment_pkg.g_Usr_Id
8519 , xla_environment_pkg.g_Login_Id
8520 , TRUNC(SYSDATE)
8521 , xla_environment_pkg.g_Prog_Appl_Id
8522 , xla_environment_pkg.g_Prog_Id
8523 , xla_environment_pkg.g_Req_Id
8524 FROM (
8525 SELECT xet.event_id event_id
8526 , 0 line_number
8527 , CASE r
8528 WHEN 1 THEN 'CST_XLA_INV_ORG_PARAMS_REF_V'
8529 WHEN 2 THEN 'CST_XLA_INV_REF_V'
8530 WHEN 3 THEN 'CST_XLA_INV_HEADERS_V'
8531 WHEN 4 THEN 'CST_XLA_INV_REF_V'
8532 WHEN 5 THEN 'CST_XLA_INV_REF_V'
8533 WHEN 6 THEN 'PSA_CST_XLA_UPG_V'
8534 WHEN 7 THEN 'PO_REQ_HEADERS_REF_V'
8535 WHEN 8 THEN 'PO_REQ_DISTS_REF_V'
8536 WHEN 9 THEN 'CST_XLA_INV_REF_V'
8537 WHEN 10 THEN 'CST_XLA_INV_REF_V'
8538 WHEN 11 THEN 'CST_XLA_INV_REF_V'
8539 WHEN 12 THEN 'CST_XLA_INV_REF_V'
8540 WHEN 13 THEN 'PO_REQ_DISTS_REF_V'
8541 WHEN 14 THEN 'PO_REQ_HEADERS_REF_V'
8542 WHEN 15 THEN 'CST_XLA_INV_HEADERS_V'
8543
8544 ELSE null
8545 END object_name
8546 , CASE r
8547 WHEN 1 THEN 'HEADER'
8548 WHEN 2 THEN 'HEADER'
8549 WHEN 3 THEN 'HEADER'
8550 WHEN 4 THEN 'HEADER'
8551 WHEN 5 THEN 'HEADER'
8552 WHEN 6 THEN 'HEADER'
8553 WHEN 7 THEN 'HEADER'
8554 WHEN 8 THEN 'HEADER'
8555 WHEN 9 THEN 'HEADER'
8556 WHEN 10 THEN 'HEADER'
8557 WHEN 11 THEN 'HEADER'
8558 WHEN 12 THEN 'HEADER'
8559 WHEN 13 THEN 'HEADER'
8560 WHEN 14 THEN 'HEADER'
8561 WHEN 15 THEN 'HEADER'
8562
8563 ELSE null
8564 END object_type_code
8565 , CASE r
8566 WHEN 1 THEN '707'
8567 WHEN 2 THEN '707'
8568 WHEN 3 THEN '707'
8569 WHEN 4 THEN '707'
8570 WHEN 5 THEN '707'
8571 WHEN 6 THEN '707'
8572 WHEN 7 THEN '201'
8573 WHEN 8 THEN '201'
8574 WHEN 9 THEN '707'
8575 WHEN 10 THEN '707'
8576 WHEN 11 THEN '707'
8577 WHEN 12 THEN '707'
8578 WHEN 13 THEN '201'
8579 WHEN 14 THEN '201'
8580 WHEN 15 THEN '707'
8581
8582 ELSE null
8583 END source_application_id
8584 , 'S' source_type_code
8585 , CASE r
8586 WHEN 1 THEN 'ENCUMBRANCE_REVERSAL_FLAG'
8587 WHEN 2 THEN 'APPLIED_TO_APPL_ID'
8588 WHEN 3 THEN 'DISTRIBUTION_TYPE'
8589 WHEN 4 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
8590 WHEN 5 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
8591 WHEN 6 THEN 'CST_ENCUM_UPG_OPTION'
8592 WHEN 7 THEN 'REQ_ENCUMBRANCE_FLAG'
8593 WHEN 8 THEN 'REQ_RESERVED_FLAG'
8594 WHEN 9 THEN 'BUS_FLOW_REQ_DIST_TYPE'
8595 WHEN 10 THEN 'BUS_FLOW_REQ_ENTITY_CODE'
8596 WHEN 11 THEN 'BUS_FLOW_REQ_DIST_ID'
8597 WHEN 12 THEN 'BUS_FLOW_REQ_ID'
8601
8598 WHEN 13 THEN 'REQ_BUDGET_ACCOUNT'
8599 WHEN 14 THEN 'REQ_ENCUMBRANCE_TYPE_ID'
8600 WHEN 15 THEN 'TRANSFER_TO_GL_INDICATOR'
8602 ELSE null
8603 END source_code
8604 , CASE r
8605 WHEN 1 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_FLAG)
8606 WHEN 2 THEN TO_CHAR(h4.APPLIED_TO_APPL_ID)
8607 WHEN 3 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
8608 WHEN 4 THEN TO_CHAR(h4.ENCUM_REVERSAL_AMOUNT_ENTERED)
8609 WHEN 5 THEN TO_CHAR(h4.ENCUMBRANCE_REVERSAL_AMOUNT)
8610 WHEN 6 THEN TO_CHAR(h7.CST_ENCUM_UPG_OPTION)
8611 WHEN 7 THEN TO_CHAR(h6.REQ_ENCUMBRANCE_FLAG)
8612 WHEN 8 THEN TO_CHAR(h5.REQ_RESERVED_FLAG)
8613 WHEN 9 THEN TO_CHAR(h4.BUS_FLOW_REQ_DIST_TYPE)
8614 WHEN 10 THEN TO_CHAR(h4.BUS_FLOW_REQ_ENTITY_CODE)
8615 WHEN 11 THEN TO_CHAR(h4.BUS_FLOW_REQ_DIST_ID)
8616 WHEN 12 THEN TO_CHAR(h4.BUS_FLOW_REQ_ID)
8617 WHEN 13 THEN TO_CHAR(h5.REQ_BUDGET_ACCOUNT)
8618 WHEN 14 THEN TO_CHAR(h6.REQ_ENCUMBRANCE_TYPE_ID)
8619 WHEN 15 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
8620
8621 ELSE null
8622 END source_value
8623 , CASE r
8624 WHEN 3 THEN fvl13.meaning
8625 WHEN 15 THEN fvl37.meaning
8626
8627 ELSE null
8628 END source_meaning
8629 FROM xla_events_gt xet
8630 , CST_XLA_INV_HEADERS_V h1
8631 , CST_XLA_INV_ORG_PARAMS_REF_V h3
8632 , CST_XLA_INV_REF_V h4
8633 , PO_REQ_DISTS_REF_V h5
8634 , PO_REQ_HEADERS_REF_V h6
8635 , PSA_CST_XLA_UPG_V h7
8636 , fnd_lookup_values fvl13
8637 , fnd_lookup_values fvl37
8638 ,(select rownum r from all_objects where rownum <= 15 and owner = p_apps_owner)
8639 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
8640 AND xet.event_class_code = C_EVENT_CLASS_CODE
8641 AND h1.event_id = xet.event_id
8642 AND h3.inv_organization_id (+) = h1.organization_id AND h4.ref_transaction_id = h1.transaction_id AND h4.bus_flow_req_dist_id=h5.req_distribution_id (+) AND h4.bus_flow_req_id = h6.req_id (+) AND h4.rcv_transaction_id = h7.transaction_id (+) AND fvl13.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
8643 AND fvl13.lookup_code(+) = h1.DISTRIBUTION_TYPE
8644 AND fvl13.view_application_id(+) = 700
8645 AND fvl13.language(+) = USERENV('LANG')
8646 AND fvl37.lookup_type(+) = 'YES_NO'
8647 AND fvl37.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
8648 AND fvl37.view_application_id(+) = 0
8649 AND fvl37.language(+) = USERENV('LANG')
8650
8651 )
8652 ;
8653 --
8654 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8655
8656 trace
8657 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
8658 ,p_level => C_LEVEL_STATEMENT
8659 ,p_module => l_log_module);
8660
8661 END IF;
8662 --
8663
8664
8665
8666 --
8667 INSERT INTO xla_diag_sources --line2
8668 (
8669 event_id
8670 , ledger_id
8671 , sla_ledger_id
8672 , description_language
8673 , object_name
8674 , object_type_code
8675 , line_number
8676 , source_application_id
8677 , source_type_code
8678 , source_code
8679 , source_value
8680 , source_meaning
8681 , created_by
8682 , creation_date
8683 , last_update_date
8684 , last_updated_by
8685 , last_update_login
8686 , program_update_date
8687 , program_application_id
8688 , program_id
8689 , request_id
8690 )
8691 SELECT event_id
8692 , p_target_ledger_id
8693 , p_sla_ledger_id
8694 , p_language
8695 , object_name
8696 , object_type_code
8697 , line_number
8698 , source_application_id
8699 , source_type_code
8700 , source_code
8701 , SUBSTR(source_value,1,1996)
8702 , SUBSTR(source_meaning ,1,200)
8703 , xla_environment_pkg.g_Usr_Id
8704 , TRUNC(SYSDATE)
8705 , TRUNC(SYSDATE)
8706 , xla_environment_pkg.g_Usr_Id
8707 , xla_environment_pkg.g_Login_Id
8708 , TRUNC(SYSDATE)
8709 , xla_environment_pkg.g_Prog_Appl_Id
8710 , xla_environment_pkg.g_Prog_Id
8711 , xla_environment_pkg.g_Req_Id
8712 FROM (
8713 SELECT xet.event_id event_id
8714 , l2.line_number line_number
8715 , CASE r
8716 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
8717 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
8718 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
8719
8720 ELSE null
8721 END object_name
8722 , CASE r
8723 WHEN 1 THEN 'LINE'
8724 WHEN 2 THEN 'LINE'
8725 WHEN 3 THEN 'LINE'
8726
8727 ELSE null
8728 END object_type_code
8729 , CASE r
8733
8730 WHEN 1 THEN '707'
8731 WHEN 2 THEN '707'
8732 WHEN 3 THEN '707'
8734 ELSE null
8735 END source_application_id
8736 , 'S' source_type_code
8737 , CASE r
8738 WHEN 1 THEN 'ACCOUNTING_LINE_TYPE_CODE'
8739 WHEN 2 THEN 'DISTRIBUTION_IDENTIFIER'
8740 WHEN 3 THEN 'CURRENCY_CODE'
8741
8742 ELSE null
8743 END source_code
8744 , CASE r
8745 WHEN 1 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
8746 WHEN 2 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
8747 WHEN 3 THEN TO_CHAR(l2.CURRENCY_CODE)
8748
8749 ELSE null
8750 END source_value
8751 , null source_meaning
8752 FROM xla_events_gt xet
8753 , CST_XLA_INV_LINES_V l2
8754 , (select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
8755 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
8756 AND xet.event_class_code = C_EVENT_CLASS_CODE
8757 AND l2.event_id = xet.event_id
8758
8759 )
8760 ;
8761 --
8762 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8763
8764 trace
8765 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
8766 ,p_level => C_LEVEL_STATEMENT
8767 ,p_module => l_log_module);
8768
8769 END IF;
8770
8771
8772 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8773 trace
8774 (p_msg => 'END of insert_sources_14'
8775 ,p_level => C_LEVEL_PROCEDURE
8776 ,p_module => l_log_module);
8777 END IF;
8778 EXCEPTION
8779 WHEN xla_exceptions_pkg.application_exception THEN
8780 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
8781 trace
8782 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
8783 ,p_level => C_LEVEL_EXCEPTION
8784 ,p_module => l_log_module);
8785 END IF;
8786 RAISE;
8787 WHEN OTHERS THEN
8788 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
8789 trace
8790 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
8791 ,p_level => C_LEVEL_EXCEPTION
8792 ,p_module => l_log_module);
8793 END IF;
8794 xla_exceptions_pkg.raise_message
8795 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.insert_sources_14');
8796 END insert_sources_14;
8797 --
8798
8799 ---------------------------------------
8800 --
8801 -- PRIVATE FUNCTION
8802 -- EventClass_14
8803 --
8804 ----------------------------------------
8805 --
8806 FUNCTION EventClass_14
8807 (p_application_id IN NUMBER
8808 ,p_base_ledger_id IN NUMBER
8809 ,p_target_ledger_id IN NUMBER
8810 ,p_language IN VARCHAR2
8811 ,p_currency_code IN VARCHAR2
8812 ,p_sla_ledger_id IN NUMBER
8813 ,p_pad_start_date IN DATE
8814 ,p_pad_end_date IN DATE
8815 ,p_primary_ledger_id IN NUMBER)
8816 RETURN BOOLEAN IS
8817 --
8818 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FOB_RCPT_RECIPIENT_RCPT_ALL';
8819 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FOB_RCPT_RECIPIENT_RCPT';
8820
8821 l_calculate_acctd_flag VARCHAR2(1) :='N';
8822 l_calculate_g_l_flag VARCHAR2(1) :='N';
8823 --
8824 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
8825 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
8826 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
8827 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
8828 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
8829 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
8830 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
8831 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
8832 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
8833 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
8834 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
8835 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
8836 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
8837 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
8838 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
8839 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
8840 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
8841 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
8842 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
8843 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
8844 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
8845 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
8849 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
8846 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
8847 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
8848 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
8850
8851 l_event_id NUMBER;
8852 l_previous_event_id NUMBER;
8853 l_first_event_id NUMBER;
8854 l_last_event_id NUMBER;
8855
8856 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
8857 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8858 --
8859 --
8860 l_result BOOLEAN := TRUE;
8861 l_rows NUMBER := 1000;
8862 l_event_type_name VARCHAR2(80) := 'All';
8863 l_event_class_name VARCHAR2(80) := 'Recipient-side Intransit Interorg Receipt for FOB Receipt';
8864 l_description VARCHAR2(4000);
8865 l_transaction_reversal NUMBER;
8866 l_ae_header_id NUMBER;
8867 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
8868 l_log_module VARCHAR2(240);
8869 --
8870 l_acct_reversal_source VARCHAR2(30);
8871 l_trx_reversal_source VARCHAR2(30);
8872
8873 l_continue_with_lines BOOLEAN := TRUE;
8874 --
8875 l_acc_rev_gl_date_source DATE; -- 4262811
8876 --
8877 type t_array_event_id is table of number index by binary_integer;
8878
8879 l_rec_array_event t_rec_array_event;
8880 l_null_rec_array_event t_rec_array_event;
8881 l_array_ae_header_id xla_number_array_type;
8882 l_actual_flag VARCHAR2(1) := NULL;
8883 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
8884 l_balance_type_code VARCHAR2(1) :=NULL;
8885 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
8886
8887 --
8888 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
8889 --
8890
8891 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_ORG_PARAMS_REF_V.ENCUMBRANCE_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
8892 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
8893 TYPE t_array_source_13 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
8894 TYPE t_array_source_15 IS TABLE OF CST_XLA_INV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
8895 TYPE t_array_source_17 IS TABLE OF CST_XLA_INV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
8896 TYPE t_array_source_18 IS TABLE OF PSA_CST_XLA_UPG_V.CST_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
8897 TYPE t_array_source_28 IS TABLE OF PO_REQ_HEADERS_REF_V.REQ_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
8898 TYPE t_array_source_29 IS TABLE OF PO_REQ_DISTS_REF_V.REQ_RESERVED_FLAG%TYPE INDEX BY BINARY_INTEGER;
8899 TYPE t_array_source_30 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
8900 TYPE t_array_source_31 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
8901 TYPE t_array_source_32 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
8902 TYPE t_array_source_33 IS TABLE OF CST_XLA_INV_REF_V.BUS_FLOW_REQ_ID%TYPE INDEX BY BINARY_INTEGER;
8903 TYPE t_array_source_34 IS TABLE OF PO_REQ_DISTS_REF_V.REQ_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
8904 TYPE t_array_source_35 IS TABLE OF PO_REQ_HEADERS_REF_V.REQ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
8905 TYPE t_array_source_37 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
8906
8907 TYPE t_array_source_6 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
8908 TYPE t_array_source_12 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
8909 TYPE t_array_source_16 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
8910
8911 l_array_source_4 t_array_source_4;
8912 l_array_source_7 t_array_source_7;
8913 l_array_source_13 t_array_source_13;
8914 l_array_source_13_meaning t_array_lookup_meaning;
8915 l_array_source_15 t_array_source_15;
8916 l_array_source_17 t_array_source_17;
8917 l_array_source_18 t_array_source_18;
8918 l_array_source_28 t_array_source_28;
8919 l_array_source_29 t_array_source_29;
8920 l_array_source_30 t_array_source_30;
8921 l_array_source_31 t_array_source_31;
8922 l_array_source_32 t_array_source_32;
8923 l_array_source_33 t_array_source_33;
8924 l_array_source_34 t_array_source_34;
8925 l_array_source_35 t_array_source_35;
8926 l_array_source_37 t_array_source_37;
8927 l_array_source_37_meaning t_array_lookup_meaning;
8928
8929 l_array_source_6 t_array_source_6;
8930 l_array_source_12 t_array_source_12;
8931 l_array_source_16 t_array_source_16;
8932
8933 --
8934 CURSOR header_cur
8935 IS
8936 SELECT /*+ leading(xet) cardinality(xet,1) */
8937 -- Event Class Code: FOB_RCPT_RECIPIENT_RCPT
8938 xet.entity_id
8939 ,xet.legal_entity_id
8940 ,xet.entity_code
8941 ,xet.transaction_number
8942 ,xet.event_id
8943 ,xet.event_class_code
8944 ,xet.event_type_code
8945 ,xet.event_number
8946 ,xet.event_date
8950 ,xet.reference_num_3
8947 ,xet.transaction_date
8948 ,xet.reference_num_1
8949 ,xet.reference_num_2
8951 ,xet.reference_num_4
8952 ,xet.reference_char_1
8953 ,xet.reference_char_2
8954 ,xet.reference_char_3
8955 ,xet.reference_char_4
8956 ,xet.reference_date_1
8957 ,xet.reference_date_2
8958 ,xet.reference_date_3
8959 ,xet.reference_date_4
8960 ,xet.event_created_by
8961 ,xet.budgetary_control_flag
8962 , h3.ENCUMBRANCE_REVERSAL_FLAG source_4
8963 , h4.APPLIED_TO_APPL_ID source_7
8964 , h1.DISTRIBUTION_TYPE source_13
8965 , fvl13.meaning source_13_meaning
8966 , h4.ENCUM_REVERSAL_AMOUNT_ENTERED source_15
8967 , h4.ENCUMBRANCE_REVERSAL_AMOUNT source_17
8968 , h7.CST_ENCUM_UPG_OPTION source_18
8969 , h6.REQ_ENCUMBRANCE_FLAG source_28
8970 , h5.REQ_RESERVED_FLAG source_29
8971 , h4.BUS_FLOW_REQ_DIST_TYPE source_30
8972 , h4.BUS_FLOW_REQ_ENTITY_CODE source_31
8973 , h4.BUS_FLOW_REQ_DIST_ID source_32
8974 , h4.BUS_FLOW_REQ_ID source_33
8975 , h5.REQ_BUDGET_ACCOUNT source_34
8976 , h6.REQ_ENCUMBRANCE_TYPE_ID source_35
8977 , h1.TRANSFER_TO_GL_INDICATOR source_37
8978 , fvl37.meaning source_37_meaning
8979 FROM xla_events_gt xet
8980 , CST_XLA_INV_HEADERS_V h1
8981 , CST_XLA_INV_ORG_PARAMS_REF_V h3
8982 , CST_XLA_INV_REF_V h4
8983 , PO_REQ_DISTS_REF_V h5
8984 , PO_REQ_HEADERS_REF_V h6
8985 , PSA_CST_XLA_UPG_V h7
8986 , fnd_lookup_values fvl13
8987 , fnd_lookup_values fvl37
8988 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
8989 and xet.event_class_code = C_EVENT_CLASS_CODE
8990 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
8991 AND h3.INV_ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h4.ref_transaction_id = h1.transaction_id AND h4.BUS_FLOW_REQ_DIST_ID=h5.REQ_DISTRIBUTION_ID (+) AND h4.BUS_FLOW_REQ_ID = h6.REQ_ID (+) AND h4.rcv_transaction_id = h7.transaction_id (+) AND fvl13.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
8992 AND fvl13.lookup_code(+) = h1.DISTRIBUTION_TYPE
8993 AND fvl13.view_application_id(+) = 700
8994 AND fvl13.language(+) = USERENV('LANG')
8995 AND fvl37.lookup_type(+) = 'YES_NO'
8996 AND fvl37.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
8997 AND fvl37.view_application_id(+) = 0
8998 AND fvl37.language(+) = USERENV('LANG')
8999
9000 ORDER BY event_id
9001 ;
9002
9003
9004 --
9005 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
9006 IS
9007 SELECT /*+ leading(xet) cardinality(xet,1) */
9008 -- Event Class Code: FOB_RCPT_RECIPIENT_RCPT
9009 xet.entity_id
9010 ,xet.legal_entity_id
9011 ,xet.entity_code
9012 ,xet.transaction_number
9013 ,xet.event_id
9014 ,xet.event_class_code
9015 ,xet.event_type_code
9016 ,xet.event_number
9017 ,xet.event_date
9018 ,xet.transaction_date
9019 ,xet.reference_num_1
9020 ,xet.reference_num_2
9021 ,xet.reference_num_3
9022 ,xet.reference_num_4
9023 ,xet.reference_char_1
9024 ,xet.reference_char_2
9025 ,xet.reference_char_3
9026 ,xet.reference_char_4
9027 ,xet.reference_date_1
9028 ,xet.reference_date_2
9029 ,xet.reference_date_3
9030 ,xet.reference_date_4
9031 ,xet.event_created_by
9032 ,xet.budgetary_control_flag
9033 , l2.LINE_NUMBER
9034 , l2.ACCOUNTING_LINE_TYPE_CODE source_6
9035 , l2.DISTRIBUTION_IDENTIFIER source_12
9036 , l2.CURRENCY_CODE source_16
9037 FROM xla_events_gt xet
9038 , CST_XLA_INV_LINES_V l2
9039 WHERE xet.event_id between x_first_event_id and x_last_event_id
9040 and xet.event_date between p_pad_start_date and p_pad_end_date
9041 and xet.event_class_code = C_EVENT_CLASS_CODE
9042 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
9043 ;
9044
9045 --
9046 BEGIN
9047 IF g_log_enabled THEN
9048 l_log_module := C_DEFAULT_MODULE||'.EventClass_14';
9049 END IF;
9050 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9051 trace
9052 (p_msg => 'BEGIN of EventClass_14'
9053 ,p_level => C_LEVEL_PROCEDURE
9054 ,p_module => l_log_module);
9055 END IF;
9056
9057 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9058 trace
9059 (p_msg => 'p_application_id = '||p_application_id||
9060 ' - p_base_ledger_id = '||p_base_ledger_id||
9061 ' - p_target_ledger_id = '||p_target_ledger_id||
9062 ' - p_language = '||p_language||
9063 ' - p_currency_code = '||p_currency_code||
9064 ' - p_sla_ledger_id = '||p_sla_ledger_id
9065 ,p_level => C_LEVEL_STATEMENT
9066 ,p_module => l_log_module);
9067 END IF;
9068 --
9069 -- initialze arrays
9070 --
9071 g_array_event.DELETE;
9072 l_rec_array_event := l_null_rec_array_event;
9073 --
9074 --------------------------------------
9075 -- 4262811 Initialze MPA Line Number
9076 --------------------------------------
9077 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
9078
9079 --
9080
9081 --
9082 OPEN header_cur;
9083 --
9084 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9085 trace
9086 (p_msg => 'SQL - FETCH header_cur'
9087 ,p_level => C_LEVEL_STATEMENT
9088 ,p_module => l_log_module);
9089 END IF;
9090 --
9091 LOOP
9095 , l_array_entity_code
9092 FETCH header_cur BULK COLLECT INTO
9093 l_array_entity_id
9094 , l_array_legal_entity_id
9096 , l_array_transaction_num
9097 , l_array_event_id
9098 , l_array_class_code
9099 , l_array_event_type
9100 , l_array_event_number
9101 , l_array_event_date
9102 , l_array_transaction_date
9103 , l_array_reference_num_1
9104 , l_array_reference_num_2
9105 , l_array_reference_num_3
9106 , l_array_reference_num_4
9107 , l_array_reference_char_1
9108 , l_array_reference_char_2
9109 , l_array_reference_char_3
9110 , l_array_reference_char_4
9111 , l_array_reference_date_1
9112 , l_array_reference_date_2
9113 , l_array_reference_date_3
9114 , l_array_reference_date_4
9115 , l_array_event_created_by
9116 , l_array_budgetary_control_flag
9117 , l_array_source_4
9118 , l_array_source_7
9119 , l_array_source_13
9120 , l_array_source_13_meaning
9121 , l_array_source_15
9122 , l_array_source_17
9123 , l_array_source_18
9124 , l_array_source_28
9125 , l_array_source_29
9126 , l_array_source_30
9127 , l_array_source_31
9128 , l_array_source_32
9129 , l_array_source_33
9130 , l_array_source_34
9131 , l_array_source_35
9132 , l_array_source_37
9133 , l_array_source_37_meaning
9134 LIMIT l_rows;
9135 --
9136 IF (C_LEVEL_EVENT >= g_log_level) THEN
9137 trace
9138 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
9139 ,p_level => C_LEVEL_EVENT
9140 ,p_module => l_log_module);
9141 END IF;
9142 --
9143 EXIT WHEN l_array_entity_id.COUNT = 0;
9144
9145 -- initialize arrays
9146 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
9147 XLA_AE_LINES_PKG.g_rec_lines := NULL;
9148
9149 --
9150 -- Bug 4458708
9151 --
9152 XLA_AE_LINES_PKG.g_LineNumber := 0;
9153
9154
9155 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
9156 g_last_hdr_idx := l_array_event_id.LAST;
9157 --
9158 -- loop for the headers. Each iteration is for each header extract row
9159 -- fetched in header cursor
9160 --
9161 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
9162
9163 --
9164 -- set event info as cache for other routines to refer event attributes
9165 --
9166 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
9167 (p_application_id => p_application_id
9168 ,p_primary_ledger_id => p_primary_ledger_id
9169 ,p_base_ledger_id => p_base_ledger_id
9170 ,p_target_ledger_id => p_target_ledger_id
9171 ,p_entity_id => l_array_entity_id(hdr_idx)
9172 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
9173 ,p_entity_code => l_array_entity_code(hdr_idx)
9174 ,p_transaction_num => l_array_transaction_num(hdr_idx)
9175 ,p_event_id => l_array_event_id(hdr_idx)
9176 ,p_event_class_code => l_array_class_code(hdr_idx)
9177 ,p_event_type_code => l_array_event_type(hdr_idx)
9178 ,p_event_number => l_array_event_number(hdr_idx)
9179 ,p_event_date => l_array_event_date(hdr_idx)
9180 ,p_transaction_date => l_array_transaction_date(hdr_idx)
9181 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
9182 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
9183 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
9184 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
9185 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
9186 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
9187 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
9188 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
9189 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
9190 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
9191 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
9192 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
9193 ,p_event_created_by => l_array_event_created_by(hdr_idx)
9194 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
9195
9196 --
9197 -- set the status of entry to C_VALID (0)
9198 --
9199 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
9200
9201 --
9202 -- initialize a row for ae header
9203 --
9204 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
9205
9206 l_event_id := l_array_event_id(hdr_idx);
9207
9208 --
9209 -- storing the hdr_idx for event. May be used by line cursor.
9210 --
9211 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
9212
9213 --
9214 -- store sources from header extract. This can be improved to
9215 -- store only those sources from header extract that may be used in lines
9216 --
9217
9218 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
9219 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
9220 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
9221 g_array_event(l_event_id).array_value_char('source_13_meaning') := l_array_source_13_meaning(hdr_idx);
9225 g_array_event(l_event_id).array_value_char('source_28') := l_array_source_28(hdr_idx);
9222 g_array_event(l_event_id).array_value_num('source_15') := l_array_source_15(hdr_idx);
9223 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
9224 g_array_event(l_event_id).array_value_char('source_18') := l_array_source_18(hdr_idx);
9226 g_array_event(l_event_id).array_value_char('source_29') := l_array_source_29(hdr_idx);
9227 g_array_event(l_event_id).array_value_char('source_30') := l_array_source_30(hdr_idx);
9228 g_array_event(l_event_id).array_value_char('source_31') := l_array_source_31(hdr_idx);
9229 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
9230 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
9231 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
9232 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
9233 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
9234 g_array_event(l_event_id).array_value_char('source_37_meaning') := l_array_source_37_meaning(hdr_idx);
9235
9236 --
9237 -- initilaize the status of ae headers for diffrent balance types
9238 -- the status is initialised to C_NOT_CREATED (2)
9239 --
9240 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
9241 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
9242 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
9243
9244 --
9245 -- call api to validate and store accounting attributes for header
9246 --
9247
9248 ------------------------------------------------------------
9249 -- Accrual Reversal : to get date for Standard Source (NONE)
9250 ------------------------------------------------------------
9251 l_acc_rev_gl_date_source := NULL;
9252
9253 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
9254 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_35');
9255 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
9256 l_rec_acct_attrs.array_date_value(2) :=
9257 xla_ae_sources_pkg.GetSystemSourceDate(
9258 p_source_code => 'XLA_REFERENCE_DATE_1'
9259 , p_source_type_code => 'Y'
9260 , p_source_application_id => 602
9261 );
9262 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
9263 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_37');
9264
9265
9266 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
9267
9268 XLA_AE_HEADER_PKG.SetJeCategoryName;
9269
9270 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
9271 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
9272 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
9273 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
9274 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
9275
9276
9277 -- No header level analytical criteria
9278
9279 --
9280 --accounting attribute enhancement, bug 3612931
9281 --
9282 l_trx_reversal_source := SUBSTR(NULL, 1,30);
9283
9284 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
9285 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
9286
9287 xla_accounting_err_pkg.build_message
9288 (p_appli_s_name => 'XLA'
9289 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
9290 ,p_token_1 => 'ACCT_ATTR_NAME'
9291 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
9292 ,p_token_2 => 'PRODUCT_NAME'
9293 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
9294 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
9295 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
9296 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
9297
9298 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
9299 --
9300 -- following sets the accounting attributes needed to reverse
9301 -- accounting for a distributeion
9302 --
9303 xla_ae_lines_pkg.SetTrxReversalAttrs
9304 (p_event_id => l_event_id
9305 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
9306 ,p_trx_reversal_source => l_trx_reversal_source);
9307
9308 END IF;
9309
9310
9311 ----------------------------------------------------------------
9312 -- 4262811 - update the header statuses to invalid in need be
9313 ----------------------------------------------------------------
9314 --
9315 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
9316
9317
9318 -----------------------------------------------
9319 -- No accrual reversal for the event class/type
9320 -----------------------------------------------
9321 ----------------------------------------------------------------
9322
9323 --
9324 -- this ends the header loop iteration for one bulk fetch
9325 --
9326 END LOOP;
9327
9328 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
9332 -- insert dummy rows into lines gt table that were created due to
9329 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
9330
9331 --
9333 -- transaction reversals
9334 --
9335 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
9336 l_result := XLA_AE_LINES_PKG.InsertLines;
9337 END IF;
9338
9339 --
9340 -- reset the temp_line_num for each set of events fetched from header
9341 -- cursor rather than doing it for each new event in line cursor
9342 -- Bug 3939231
9343 --
9344 xla_ae_lines_pkg.g_temp_line_num := 0;
9345
9346
9347
9348 --
9349 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
9350 --
9351 --
9352 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9353
9354 trace
9355 (p_msg => 'SQL - FETCH line_cur'
9356 ,p_level => C_LEVEL_STATEMENT
9357 ,p_module => l_log_module);
9358
9359 END IF;
9360 --
9361 --
9362 LOOP
9363 --
9364 FETCH line_cur BULK COLLECT INTO
9365 l_array_entity_id
9366 , l_array_legal_entity_id
9367 , l_array_entity_code
9368 , l_array_transaction_num
9369 , l_array_event_id
9370 , l_array_class_code
9371 , l_array_event_type
9372 , l_array_event_number
9373 , l_array_event_date
9374 , l_array_transaction_date
9375 , l_array_reference_num_1
9376 , l_array_reference_num_2
9377 , l_array_reference_num_3
9378 , l_array_reference_num_4
9379 , l_array_reference_char_1
9380 , l_array_reference_char_2
9381 , l_array_reference_char_3
9382 , l_array_reference_char_4
9383 , l_array_reference_date_1
9384 , l_array_reference_date_2
9385 , l_array_reference_date_3
9386 , l_array_reference_date_4
9387 , l_array_event_created_by
9388 , l_array_budgetary_control_flag
9389 , l_array_extract_line_num
9390 , l_array_source_6
9391 , l_array_source_12
9392 , l_array_source_16
9393 LIMIT l_rows;
9394
9395 --
9396 IF (C_LEVEL_EVENT >= g_log_level) THEN
9397 trace
9398 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
9399 ,p_level => C_LEVEL_EVENT
9400 ,p_module => l_log_module);
9401 END IF;
9402 --
9403 EXIT WHEN l_array_entity_id.count = 0;
9404
9405 XLA_AE_LINES_PKG.g_rec_lines := null;
9406
9407 --
9408 -- Bug 4458708
9409 --
9410 XLA_AE_LINES_PKG.g_LineNumber := 0;
9411 --
9412 --
9413
9414 FOR Idx IN 1..l_array_event_id.count LOOP
9415 --
9416 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
9417 --
9418 l_event_id := l_array_event_id(idx); -- 5648433
9419
9420 --
9421 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
9422 --
9423
9424 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
9425 (g_array_event(l_event_id).array_value_num('header_index'))
9426 ,'N'
9427 ) <> 'Y'
9428 THEN
9429 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9430 trace
9431 (p_msg => 'Trancaction revesal option is not Y '
9432 ,p_level => C_LEVEL_STATEMENT
9433 ,p_module => l_log_module);
9434 END IF;
9435
9436 --
9437 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
9438 --
9439 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
9440 --
9441 -- set event info as cache for other routines to refer event attributes
9442 --
9443
9444 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
9445 l_previous_event_id := l_event_id;
9446
9447 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
9448 (p_application_id => p_application_id
9449 ,p_primary_ledger_id => p_primary_ledger_id
9450 ,p_base_ledger_id => p_base_ledger_id
9451 ,p_target_ledger_id => p_target_ledger_id
9452 ,p_entity_id => l_array_entity_id(Idx)
9453 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
9454 ,p_entity_code => l_array_entity_code(Idx)
9455 ,p_transaction_num => l_array_transaction_num(Idx)
9456 ,p_event_id => l_array_event_id(Idx)
9457 ,p_event_class_code => l_array_class_code(Idx)
9458 ,p_event_type_code => l_array_event_type(Idx)
9459 ,p_event_number => l_array_event_number(Idx)
9460 ,p_event_date => l_array_event_date(Idx)
9461 ,p_transaction_date => l_array_transaction_date(Idx)
9462 ,p_reference_num_1 => l_array_reference_num_1(Idx)
9463 ,p_reference_num_2 => l_array_reference_num_2(Idx)
9464 ,p_reference_num_3 => l_array_reference_num_3(Idx)
9465 ,p_reference_num_4 => l_array_reference_num_4(Idx)
9466 ,p_reference_char_1 => l_array_reference_char_1(Idx)
9467 ,p_reference_char_2 => l_array_reference_char_2(Idx)
9468 ,p_reference_char_3 => l_array_reference_char_3(Idx)
9469 ,p_reference_char_4 => l_array_reference_char_4(Idx)
9473 ,p_reference_date_4 => l_array_reference_date_4(Idx)
9470 ,p_reference_date_1 => l_array_reference_date_1(Idx)
9471 ,p_reference_date_2 => l_array_reference_date_2(Idx)
9472 ,p_reference_date_3 => l_array_reference_date_3(Idx)
9474 ,p_event_created_by => l_array_event_created_by(Idx)
9475 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
9476 --
9477 END IF;
9478
9479
9480
9481 --
9482 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
9483
9484 l_acct_reversal_source := SUBSTR(NULL, 1,30);
9485
9486 IF l_continue_with_lines THEN
9487 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
9488 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
9489
9490 xla_accounting_err_pkg.build_message
9491 (p_appli_s_name => 'XLA'
9492 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
9493 ,p_token_1 => 'LINE_NUMBER'
9494 ,p_value_1 => l_array_extract_line_num(Idx)
9495 ,p_token_2 => 'PRODUCT_NAME'
9496 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
9497 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
9498 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
9499 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
9500
9501 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
9502 --
9503 -- following sets the accounting attributes needed to reverse
9504 -- accounting for a distributeion
9505 --
9506
9507 --
9508 -- 5217187
9509 --
9510 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
9511 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
9512 g_array_event(l_event_id).array_value_num('header_index'));
9513 --
9514 --
9515
9516 -- No reversal code generated
9517
9518 xla_ae_lines_pkg.SetAcctReversalAttrs
9519 (p_event_id => l_event_id
9520 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
9521 ,p_calculate_acctd_flag => l_calculate_acctd_flag
9522 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
9523 END IF;
9524
9525 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
9526 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
9527
9528 --
9529 AcctLineType_10 (
9530 p_application_id => p_application_id
9531 ,p_event_id => l_event_id
9532 ,p_calculate_acctd_flag => l_calculate_acctd_flag
9533 ,p_calculate_g_l_flag => l_calculate_g_l_flag
9534 ,p_actual_flag => l_actual_flag
9535 ,p_balance_type_code => l_balance_type_code
9536 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
9537
9538 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
9539 , p_source_6 => l_array_source_6(Idx)
9540 , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
9541 , p_source_12 => l_array_source_12(Idx)
9542 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
9543 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
9544 , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
9545 , p_source_16 => l_array_source_16(Idx)
9546 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
9547 , p_source_18 => g_array_event(l_event_id).array_value_char('source_18')
9548 , p_source_28 => g_array_event(l_event_id).array_value_char('source_28')
9549 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
9550 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
9551 , p_source_31 => g_array_event(l_event_id).array_value_char('source_31')
9552 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
9553 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
9554 , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
9555 , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
9556 );
9557 If(l_balance_type_code = 'A') THEN
9558 l_actual_gain_loss_ref := l_gain_or_loss_ref;
9559 END IF;
9560
9561 --
9562
9563 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
9564 -- or secondary ledger that has different currency with primary
9565 -- or alc that is calculated by sla
9566 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
9567 (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'))
9568
9569 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
9570 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
9571 AND (l_actual_flag = 'A')) THEN
9572 XLA_AE_LINES_PKG.CreateGainOrLossLines(
9573 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
9574 ,p_application_id => p_application_id
9575 ,p_amb_context_code => 'DEFAULT'
9576 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
9577 ,p_event_class_code => C_EVENT_CLASS_CODE
9578 ,p_event_type_code => C_EVENT_TYPE_CODE
9579
9583 ,p_actual_flag => l_actual_flag
9580 ,p_gain_ccid => -1
9581 ,p_loss_ccid => -1
9582
9584 ,p_enc_flag => null
9585 ,p_actual_g_l_ref => l_actual_gain_loss_ref
9586 ,p_enc_g_l_ref => null
9587 );
9588 END IF;
9589 END IF;
9590 END IF;
9591
9592 ELSE
9593 --
9594 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
9595 --
9596 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9597 trace
9598 (p_msg => 'Trancaction revesal option is Y'
9599 ,p_level => C_LEVEL_STATEMENT
9600 ,p_module => l_log_module);
9601 END IF;
9602 END IF;
9603
9604 END LOOP;
9605 l_result := XLA_AE_LINES_PKG.InsertLines ;
9606 end loop;
9607 close line_cur;
9608
9609
9610 --
9611 -- insert headers into xla_ae_headers_gt table
9612 --
9613 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
9614
9615 -- insert into errors table here.
9616
9617 END LOOP;
9618
9619 --
9620 -- 4865292
9621 --
9622 -- Compare g_hdr_extract_count with event count in
9623 -- CreateHeadersAndLines.
9624 --
9625 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
9626
9627 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9628 trace (p_msg => '# rows extracted from header extract objects '
9629 || ' (running total): '
9630 || g_hdr_extract_count
9631 ,p_level => C_LEVEL_STATEMENT
9632 ,p_module => l_log_module);
9633 END IF;
9634
9635 CLOSE header_cur;
9636 --
9637
9638 --
9639 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9640 trace
9641 (p_msg => 'END of EventClass_14'
9642 ,p_level => C_LEVEL_PROCEDURE
9643 ,p_module => l_log_module);
9644 END IF;
9645 --
9646 RETURN l_result;
9647 EXCEPTION
9648 WHEN xla_exceptions_pkg.application_exception THEN
9649
9650 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
9651
9652
9653 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
9654
9655 RAISE;
9656
9657 WHEN NO_DATA_FOUND THEN
9658
9659 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
9660 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
9661
9662 FOR header_record IN header_cur
9663 LOOP
9664 l_array_header_events(header_record.event_id) := header_record.event_id;
9665 END LOOP;
9666
9667 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
9668 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
9669
9670 fnd_file.put_line(fnd_file.LOG, ' ');
9671 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
9672 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
9673 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
9674
9675 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
9676 LOOP
9677 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
9678 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
9679 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
9680 END IF;
9681 END LOOP;
9682
9683 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
9684 fnd_file.put_line(fnd_file.LOG, ' ');
9685
9686
9687 xla_exceptions_pkg.raise_message
9688 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.EventClass_14');
9689
9690
9691 WHEN OTHERS THEN
9692 xla_exceptions_pkg.raise_message
9693 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.EventClass_14');
9694 END EventClass_14;
9695 --
9696
9697 ---------------------------------------
9698 --
9699 -- PRIVATE PROCEDURE
9700 -- insert_sources_15
9701 --
9702 ----------------------------------------
9703 --
9704 PROCEDURE insert_sources_15(
9705 p_target_ledger_id IN NUMBER
9706 , p_language IN VARCHAR2
9707 , p_sla_ledger_id IN NUMBER
9708 , p_pad_start_date IN DATE
9709 , p_pad_end_date IN DATE
9710 )
9711 IS
9712
9713 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FOB_SHIP_SENDER_SHIP_ALL';
9714 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FOB_SHIP_SENDER_SHIP';
9715 p_apps_owner VARCHAR2(30);
9716 l_log_module VARCHAR2(240);
9717 BEGIN
9718 IF g_log_enabled THEN
9719 l_log_module := C_DEFAULT_MODULE||'.insert_sources_15';
9720 END IF;
9721 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9722
9723 trace
9724 (p_msg => 'BEGIN of insert_sources_15'
9725 ,p_level => C_LEVEL_PROCEDURE
9726 ,p_module => l_log_module);
9727
9728 END IF;
9729
9730 -- select APPS owner
9731 SELECT oracle_username
9732 INTO p_apps_owner
9733 FROM fnd_oracle_userid
9734 WHERE read_only_flag = 'U'
9735 ;
9736
9740 ' - p_language = '||p_language||
9737 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9738 trace
9739 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
9741 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
9742 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
9743 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
9744 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
9745 ,p_level => C_LEVEL_STATEMENT
9746 ,p_module => l_log_module);
9747 END IF;
9748
9749
9750 --
9751 INSERT INTO xla_diag_sources --hdr2
9752 (
9753 event_id
9754 , ledger_id
9755 , sla_ledger_id
9756 , description_language
9757 , object_name
9758 , object_type_code
9759 , line_number
9760 , source_application_id
9761 , source_type_code
9762 , source_code
9763 , source_value
9764 , source_meaning
9765 , created_by
9766 , creation_date
9767 , last_update_date
9768 , last_updated_by
9769 , last_update_login
9770 , program_update_date
9771 , program_application_id
9772 , program_id
9773 , request_id
9774 )
9775 SELECT
9776 event_id
9777 , p_target_ledger_id
9778 , p_sla_ledger_id
9779 , p_language
9780 , object_name
9781 , object_type_code
9782 , line_number
9783 , source_application_id
9784 , source_type_code
9785 , source_code
9786 , SUBSTR(source_value ,1,1996)
9787 , SUBSTR(source_meaning ,1,200)
9788 , xla_environment_pkg.g_Usr_Id
9789 , TRUNC(SYSDATE)
9790 , TRUNC(SYSDATE)
9791 , xla_environment_pkg.g_Usr_Id
9792 , xla_environment_pkg.g_Login_Id
9793 , TRUNC(SYSDATE)
9794 , xla_environment_pkg.g_Prog_Appl_Id
9795 , xla_environment_pkg.g_Prog_Id
9796 , xla_environment_pkg.g_Req_Id
9797 FROM (
9798 SELECT xet.event_id event_id
9799 , 0 line_number
9800 , CASE r
9801 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
9802 WHEN 2 THEN 'CST_XLA_INV_HEADERS_V'
9803
9804 ELSE null
9805 END object_name
9806 , CASE r
9807 WHEN 1 THEN 'HEADER'
9808 WHEN 2 THEN 'HEADER'
9809
9810 ELSE null
9811 END object_type_code
9812 , CASE r
9813 WHEN 1 THEN '707'
9814 WHEN 2 THEN '707'
9815
9816 ELSE null
9817 END source_application_id
9818 , 'S' source_type_code
9819 , CASE r
9820 WHEN 1 THEN 'DISTRIBUTION_TYPE'
9821 WHEN 2 THEN 'TRANSFER_TO_GL_INDICATOR'
9822
9823 ELSE null
9824 END source_code
9825 , CASE r
9826 WHEN 1 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
9827 WHEN 2 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
9828
9829 ELSE null
9830 END source_value
9831 , CASE r
9832 WHEN 1 THEN fvl13.meaning
9833 WHEN 2 THEN fvl37.meaning
9834
9835 ELSE null
9836 END source_meaning
9837 FROM xla_events_gt xet
9838 , CST_XLA_INV_HEADERS_V h1
9839 , fnd_lookup_values fvl13
9840 , fnd_lookup_values fvl37
9841 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
9842 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
9843 AND xet.event_class_code = C_EVENT_CLASS_CODE
9844 AND h1.event_id = xet.event_id
9845 AND fvl13.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
9846 AND fvl13.lookup_code(+) = h1.DISTRIBUTION_TYPE
9847 AND fvl13.view_application_id(+) = 700
9848 AND fvl13.language(+) = USERENV('LANG')
9849 AND fvl37.lookup_type(+) = 'YES_NO'
9850 AND fvl37.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
9851 AND fvl37.view_application_id(+) = 0
9852 AND fvl37.language(+) = USERENV('LANG')
9853
9854 )
9855 ;
9856 --
9857 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9858
9859 trace
9860 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
9861 ,p_level => C_LEVEL_STATEMENT
9862 ,p_module => l_log_module);
9863
9864 END IF;
9865 --
9866
9867
9868
9869 --
9870 INSERT INTO xla_diag_sources --line2
9871 (
9872 event_id
9873 , ledger_id
9874 , sla_ledger_id
9875 , description_language
9876 , object_name
9877 , object_type_code
9878 , line_number
9879 , source_application_id
9880 , source_type_code
9881 , source_code
9882 , source_value
9883 , source_meaning
9884 , created_by
9885 , creation_date
9886 , last_update_date
9890 , program_application_id
9887 , last_updated_by
9888 , last_update_login
9889 , program_update_date
9891 , program_id
9892 , request_id
9893 )
9894 SELECT event_id
9895 , p_target_ledger_id
9896 , p_sla_ledger_id
9897 , p_language
9898 , object_name
9899 , object_type_code
9900 , line_number
9901 , source_application_id
9902 , source_type_code
9903 , source_code
9904 , SUBSTR(source_value,1,1996)
9905 , SUBSTR(source_meaning ,1,200)
9906 , xla_environment_pkg.g_Usr_Id
9907 , TRUNC(SYSDATE)
9908 , TRUNC(SYSDATE)
9909 , xla_environment_pkg.g_Usr_Id
9910 , xla_environment_pkg.g_Login_Id
9911 , TRUNC(SYSDATE)
9912 , xla_environment_pkg.g_Prog_Appl_Id
9913 , xla_environment_pkg.g_Prog_Id
9914 , xla_environment_pkg.g_Req_Id
9915 FROM (
9916 SELECT xet.event_id event_id
9917 , l2.line_number line_number
9918 , CASE r
9919 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
9920 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
9921 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
9922 WHEN 4 THEN 'CST_XLA_INV_LINES_V'
9923 WHEN 5 THEN 'CST_XLA_INV_LINES_V'
9924 WHEN 6 THEN 'CST_XLA_INV_LINES_V'
9925 WHEN 7 THEN 'CST_XLA_INV_LINES_V'
9926 WHEN 8 THEN 'CST_XLA_INV_LINES_V'
9927 WHEN 9 THEN 'CST_XLA_INV_LINES_V'
9928
9929 ELSE null
9930 END object_name
9931 , CASE r
9932 WHEN 1 THEN 'LINE'
9933 WHEN 2 THEN 'LINE'
9934 WHEN 3 THEN 'LINE'
9935 WHEN 4 THEN 'LINE'
9936 WHEN 5 THEN 'LINE'
9937 WHEN 6 THEN 'LINE'
9938 WHEN 7 THEN 'LINE'
9939 WHEN 8 THEN 'LINE'
9940 WHEN 9 THEN 'LINE'
9941
9942 ELSE null
9943 END object_type_code
9944 , CASE r
9945 WHEN 1 THEN '707'
9946 WHEN 2 THEN '707'
9947 WHEN 3 THEN '707'
9948 WHEN 4 THEN '707'
9949 WHEN 5 THEN '707'
9950 WHEN 6 THEN '707'
9951 WHEN 7 THEN '707'
9952 WHEN 8 THEN '707'
9953 WHEN 9 THEN '707'
9954
9955 ELSE null
9956 END source_application_id
9957 , 'S' source_type_code
9958 , CASE r
9959 WHEN 1 THEN 'CODE_COMBINATION_ID'
9960 WHEN 2 THEN 'ACCOUNTING_LINE_TYPE_CODE'
9961 WHEN 3 THEN 'DISTRIBUTION_IDENTIFIER'
9962 WHEN 4 THEN 'CURRENCY_CODE'
9963 WHEN 5 THEN 'ENTERED_AMOUNT'
9964 WHEN 6 THEN 'CURRENCY_CONVERSION_DATE'
9965 WHEN 7 THEN 'CURRENCY_CONVERSION_RATE'
9966 WHEN 8 THEN 'CURRENCY_CONVERSION_TYPE'
9967 WHEN 9 THEN 'ACCOUNTED_AMOUNT'
9968
9969 ELSE null
9970 END source_code
9971 , CASE r
9972 WHEN 1 THEN TO_CHAR(l2.CODE_COMBINATION_ID)
9973 WHEN 2 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
9974 WHEN 3 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
9975 WHEN 4 THEN TO_CHAR(l2.CURRENCY_CODE)
9976 WHEN 5 THEN TO_CHAR(l2.ENTERED_AMOUNT)
9977 WHEN 6 THEN TO_CHAR(l2.CURRENCY_CONVERSION_DATE)
9978 WHEN 7 THEN TO_CHAR(l2.CURRENCY_CONVERSION_RATE)
9979 WHEN 8 THEN TO_CHAR(l2.CURRENCY_CONVERSION_TYPE)
9980 WHEN 9 THEN TO_CHAR(l2.ACCOUNTED_AMOUNT)
9981
9982 ELSE null
9983 END source_value
9984 , null source_meaning
9985 FROM xla_events_gt xet
9986 , CST_XLA_INV_LINES_V l2
9987 , (select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
9988 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
9989 AND xet.event_class_code = C_EVENT_CLASS_CODE
9990 AND l2.event_id = xet.event_id
9991
9992 )
9993 ;
9994 --
9995 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9996
9997 trace
9998 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
9999 ,p_level => C_LEVEL_STATEMENT
10000 ,p_module => l_log_module);
10001
10002 END IF;
10003
10004
10005 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10006 trace
10007 (p_msg => 'END of insert_sources_15'
10008 ,p_level => C_LEVEL_PROCEDURE
10009 ,p_module => l_log_module);
10010 END IF;
10011 EXCEPTION
10012 WHEN xla_exceptions_pkg.application_exception THEN
10013 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
10014 trace
10015 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
10016 ,p_level => C_LEVEL_EXCEPTION
10017 ,p_module => l_log_module);
10021 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
10018 END IF;
10019 RAISE;
10020 WHEN OTHERS THEN
10022 trace
10023 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
10024 ,p_level => C_LEVEL_EXCEPTION
10025 ,p_module => l_log_module);
10026 END IF;
10027 xla_exceptions_pkg.raise_message
10028 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.insert_sources_15');
10029 END insert_sources_15;
10030 --
10031
10032 ---------------------------------------
10033 --
10034 -- PRIVATE FUNCTION
10035 -- EventClass_15
10036 --
10037 ----------------------------------------
10038 --
10039 FUNCTION EventClass_15
10040 (p_application_id IN NUMBER
10041 ,p_base_ledger_id IN NUMBER
10042 ,p_target_ledger_id IN NUMBER
10043 ,p_language IN VARCHAR2
10044 ,p_currency_code IN VARCHAR2
10045 ,p_sla_ledger_id IN NUMBER
10046 ,p_pad_start_date IN DATE
10047 ,p_pad_end_date IN DATE
10048 ,p_primary_ledger_id IN NUMBER)
10049 RETURN BOOLEAN IS
10050 --
10051 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FOB_SHIP_SENDER_SHIP_ALL';
10052 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FOB_SHIP_SENDER_SHIP';
10053
10054 l_calculate_acctd_flag VARCHAR2(1) :='N';
10055 l_calculate_g_l_flag VARCHAR2(1) :='N';
10056 --
10057 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
10058 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
10059 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
10060 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
10061 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
10062 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
10063 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
10064 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
10065 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
10066 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
10067 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
10068 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
10069 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
10070 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
10071 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
10072 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
10073 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
10074 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
10075 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
10076 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
10077 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
10078 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
10079 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
10080 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
10081 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
10082 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
10083
10084 l_event_id NUMBER;
10085 l_previous_event_id NUMBER;
10086 l_first_event_id NUMBER;
10087 l_last_event_id NUMBER;
10088
10089 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
10090 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
10091 --
10092 --
10093 l_result BOOLEAN := TRUE;
10094 l_rows NUMBER := 1000;
10095 l_event_type_name VARCHAR2(80) := 'All';
10096 l_event_class_name VARCHAR2(80) := 'Sender-side Intransit Interorg Shipment for FOB Shipment';
10097 l_description VARCHAR2(4000);
10098 l_transaction_reversal NUMBER;
10099 l_ae_header_id NUMBER;
10100 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
10101 l_log_module VARCHAR2(240);
10102 --
10103 l_acct_reversal_source VARCHAR2(30);
10104 l_trx_reversal_source VARCHAR2(30);
10105
10106 l_continue_with_lines BOOLEAN := TRUE;
10107 --
10108 l_acc_rev_gl_date_source DATE; -- 4262811
10109 --
10110 type t_array_event_id is table of number index by binary_integer;
10111
10112 l_rec_array_event t_rec_array_event;
10113 l_null_rec_array_event t_rec_array_event;
10114 l_array_ae_header_id xla_number_array_type;
10115 l_actual_flag VARCHAR2(1) := NULL;
10116 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
10117 l_balance_type_code VARCHAR2(1) :=NULL;
10118 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
10119
10120 --
10121 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
10122 --
10123
10127 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_LINES_V.CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
10124 TYPE t_array_source_13 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
10125 TYPE t_array_source_37 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
10126
10128 TYPE t_array_source_6 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
10129 TYPE t_array_source_12 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
10130 TYPE t_array_source_16 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
10131 TYPE t_array_source_20 IS TABLE OF CST_XLA_INV_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
10132 TYPE t_array_source_21 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
10133 TYPE t_array_source_22 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
10134 TYPE t_array_source_23 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
10135 TYPE t_array_source_24 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
10136
10137 l_array_source_13 t_array_source_13;
10138 l_array_source_13_meaning t_array_lookup_meaning;
10139 l_array_source_37 t_array_source_37;
10140 l_array_source_37_meaning t_array_lookup_meaning;
10141
10142 l_array_source_1 t_array_source_1;
10143 l_array_source_6 t_array_source_6;
10144 l_array_source_12 t_array_source_12;
10145 l_array_source_16 t_array_source_16;
10146 l_array_source_20 t_array_source_20;
10147 l_array_source_21 t_array_source_21;
10148 l_array_source_22 t_array_source_22;
10149 l_array_source_23 t_array_source_23;
10150 l_array_source_24 t_array_source_24;
10151
10152 --
10153 CURSOR header_cur
10154 IS
10155 SELECT /*+ leading(xet) cardinality(xet,1) */
10156 -- Event Class Code: FOB_SHIP_SENDER_SHIP
10157 xet.entity_id
10158 ,xet.legal_entity_id
10159 ,xet.entity_code
10160 ,xet.transaction_number
10161 ,xet.event_id
10162 ,xet.event_class_code
10163 ,xet.event_type_code
10164 ,xet.event_number
10165 ,xet.event_date
10166 ,xet.transaction_date
10167 ,xet.reference_num_1
10168 ,xet.reference_num_2
10169 ,xet.reference_num_3
10170 ,xet.reference_num_4
10171 ,xet.reference_char_1
10172 ,xet.reference_char_2
10173 ,xet.reference_char_3
10174 ,xet.reference_char_4
10175 ,xet.reference_date_1
10176 ,xet.reference_date_2
10177 ,xet.reference_date_3
10178 ,xet.reference_date_4
10179 ,xet.event_created_by
10180 ,xet.budgetary_control_flag
10181 , h1.DISTRIBUTION_TYPE source_13
10182 , fvl13.meaning source_13_meaning
10183 , h1.TRANSFER_TO_GL_INDICATOR source_37
10184 , fvl37.meaning source_37_meaning
10185 FROM xla_events_gt xet
10186 , CST_XLA_INV_HEADERS_V h1
10187 , fnd_lookup_values fvl13
10188 , fnd_lookup_values fvl37
10189 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
10190 and xet.event_class_code = C_EVENT_CLASS_CODE
10191 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
10192 AND fvl13.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
10193 AND fvl13.lookup_code(+) = h1.DISTRIBUTION_TYPE
10194 AND fvl13.view_application_id(+) = 700
10195 AND fvl13.language(+) = USERENV('LANG')
10196 AND fvl37.lookup_type(+) = 'YES_NO'
10197 AND fvl37.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
10198 AND fvl37.view_application_id(+) = 0
10199 AND fvl37.language(+) = USERENV('LANG')
10200
10201 ORDER BY event_id
10202 ;
10203
10204
10205 --
10206 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
10207 IS
10208 SELECT /*+ leading(xet) cardinality(xet,1) */
10209 -- Event Class Code: FOB_SHIP_SENDER_SHIP
10210 xet.entity_id
10211 ,xet.legal_entity_id
10212 ,xet.entity_code
10213 ,xet.transaction_number
10214 ,xet.event_id
10215 ,xet.event_class_code
10216 ,xet.event_type_code
10217 ,xet.event_number
10218 ,xet.event_date
10219 ,xet.transaction_date
10220 ,xet.reference_num_1
10221 ,xet.reference_num_2
10222 ,xet.reference_num_3
10223 ,xet.reference_num_4
10224 ,xet.reference_char_1
10225 ,xet.reference_char_2
10226 ,xet.reference_char_3
10227 ,xet.reference_char_4
10228 ,xet.reference_date_1
10229 ,xet.reference_date_2
10230 ,xet.reference_date_3
10231 ,xet.reference_date_4
10232 ,xet.event_created_by
10233 ,xet.budgetary_control_flag
10234 , l2.LINE_NUMBER
10235 , l2.CODE_COMBINATION_ID source_1
10236 , l2.ACCOUNTING_LINE_TYPE_CODE source_6
10237 , l2.DISTRIBUTION_IDENTIFIER source_12
10238 , l2.CURRENCY_CODE source_16
10239 , l2.ENTERED_AMOUNT source_20
10240 , l2.CURRENCY_CONVERSION_DATE source_21
10241 , l2.CURRENCY_CONVERSION_RATE source_22
10242 , l2.CURRENCY_CONVERSION_TYPE source_23
10243 , l2.ACCOUNTED_AMOUNT source_24
10244 FROM xla_events_gt xet
10245 , CST_XLA_INV_LINES_V l2
10246 WHERE xet.event_id between x_first_event_id and x_last_event_id
10247 and xet.event_date between p_pad_start_date and p_pad_end_date
10248 and xet.event_class_code = C_EVENT_CLASS_CODE
10249 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
10250 ;
10251
10252 --
10253 BEGIN
10254 IF g_log_enabled THEN
10258 trace
10255 l_log_module := C_DEFAULT_MODULE||'.EventClass_15';
10256 END IF;
10257 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10259 (p_msg => 'BEGIN of EventClass_15'
10260 ,p_level => C_LEVEL_PROCEDURE
10261 ,p_module => l_log_module);
10262 END IF;
10263
10264 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
10265 trace
10266 (p_msg => 'p_application_id = '||p_application_id||
10267 ' - p_base_ledger_id = '||p_base_ledger_id||
10268 ' - p_target_ledger_id = '||p_target_ledger_id||
10269 ' - p_language = '||p_language||
10270 ' - p_currency_code = '||p_currency_code||
10271 ' - p_sla_ledger_id = '||p_sla_ledger_id
10272 ,p_level => C_LEVEL_STATEMENT
10273 ,p_module => l_log_module);
10274 END IF;
10275 --
10276 -- initialze arrays
10277 --
10278 g_array_event.DELETE;
10279 l_rec_array_event := l_null_rec_array_event;
10280 --
10281 --------------------------------------
10282 -- 4262811 Initialze MPA Line Number
10283 --------------------------------------
10284 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
10285
10286 --
10287
10288 --
10289 OPEN header_cur;
10290 --
10291 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
10292 trace
10293 (p_msg => 'SQL - FETCH header_cur'
10294 ,p_level => C_LEVEL_STATEMENT
10295 ,p_module => l_log_module);
10296 END IF;
10297 --
10298 LOOP
10299 FETCH header_cur BULK COLLECT INTO
10300 l_array_entity_id
10301 , l_array_legal_entity_id
10302 , l_array_entity_code
10303 , l_array_transaction_num
10304 , l_array_event_id
10305 , l_array_class_code
10306 , l_array_event_type
10307 , l_array_event_number
10308 , l_array_event_date
10309 , l_array_transaction_date
10310 , l_array_reference_num_1
10311 , l_array_reference_num_2
10312 , l_array_reference_num_3
10313 , l_array_reference_num_4
10314 , l_array_reference_char_1
10315 , l_array_reference_char_2
10316 , l_array_reference_char_3
10317 , l_array_reference_char_4
10318 , l_array_reference_date_1
10319 , l_array_reference_date_2
10320 , l_array_reference_date_3
10321 , l_array_reference_date_4
10322 , l_array_event_created_by
10323 , l_array_budgetary_control_flag
10324 , l_array_source_13
10325 , l_array_source_13_meaning
10326 , l_array_source_37
10327 , l_array_source_37_meaning
10328 LIMIT l_rows;
10329 --
10330 IF (C_LEVEL_EVENT >= g_log_level) THEN
10331 trace
10332 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
10333 ,p_level => C_LEVEL_EVENT
10334 ,p_module => l_log_module);
10335 END IF;
10336 --
10337 EXIT WHEN l_array_entity_id.COUNT = 0;
10338
10339 -- initialize arrays
10340 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
10341 XLA_AE_LINES_PKG.g_rec_lines := NULL;
10342
10343 --
10344 -- Bug 4458708
10345 --
10346 XLA_AE_LINES_PKG.g_LineNumber := 0;
10347
10348
10349 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
10350 g_last_hdr_idx := l_array_event_id.LAST;
10351 --
10352 -- loop for the headers. Each iteration is for each header extract row
10353 -- fetched in header cursor
10354 --
10355 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
10356
10357 --
10358 -- set event info as cache for other routines to refer event attributes
10359 --
10360 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
10361 (p_application_id => p_application_id
10362 ,p_primary_ledger_id => p_primary_ledger_id
10363 ,p_base_ledger_id => p_base_ledger_id
10364 ,p_target_ledger_id => p_target_ledger_id
10365 ,p_entity_id => l_array_entity_id(hdr_idx)
10366 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
10367 ,p_entity_code => l_array_entity_code(hdr_idx)
10368 ,p_transaction_num => l_array_transaction_num(hdr_idx)
10369 ,p_event_id => l_array_event_id(hdr_idx)
10370 ,p_event_class_code => l_array_class_code(hdr_idx)
10371 ,p_event_type_code => l_array_event_type(hdr_idx)
10372 ,p_event_number => l_array_event_number(hdr_idx)
10373 ,p_event_date => l_array_event_date(hdr_idx)
10374 ,p_transaction_date => l_array_transaction_date(hdr_idx)
10375 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
10376 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
10377 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
10378 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
10379 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
10380 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
10381 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
10382 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
10383 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
10384 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
10385 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
10386 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
10390 --
10387 ,p_event_created_by => l_array_event_created_by(hdr_idx)
10388 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
10389
10391 -- set the status of entry to C_VALID (0)
10392 --
10393 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
10394
10395 --
10396 -- initialize a row for ae header
10397 --
10398 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
10399
10400 l_event_id := l_array_event_id(hdr_idx);
10401
10402 --
10403 -- storing the hdr_idx for event. May be used by line cursor.
10404 --
10405 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
10406
10407 --
10408 -- store sources from header extract. This can be improved to
10409 -- store only those sources from header extract that may be used in lines
10410 --
10411
10412 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
10413 g_array_event(l_event_id).array_value_char('source_13_meaning') := l_array_source_13_meaning(hdr_idx);
10414 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
10415 g_array_event(l_event_id).array_value_char('source_37_meaning') := l_array_source_37_meaning(hdr_idx);
10416
10417 --
10418 -- initilaize the status of ae headers for diffrent balance types
10419 -- the status is initialised to C_NOT_CREATED (2)
10420 --
10421 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
10422 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
10423 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
10424
10425 --
10426 -- call api to validate and store accounting attributes for header
10427 --
10428
10429 ------------------------------------------------------------
10430 -- Accrual Reversal : to get date for Standard Source (NONE)
10431 ------------------------------------------------------------
10432 l_acc_rev_gl_date_source := NULL;
10433
10434 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
10435 l_rec_acct_attrs.array_date_value(1) :=
10436 xla_ae_sources_pkg.GetSystemSourceDate(
10437 p_source_code => 'XLA_REFERENCE_DATE_1'
10438 , p_source_type_code => 'Y'
10439 , p_source_application_id => 602
10440 );
10441 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_TRANSFER_FLAG';
10442 l_rec_acct_attrs.array_char_value(2) := g_array_event(l_event_id).array_value_char('source_37');
10443
10444
10445 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
10446
10447 XLA_AE_HEADER_PKG.SetJeCategoryName;
10448
10449 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
10450 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
10451 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
10452 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
10453 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
10454
10455
10456 -- No header level analytical criteria
10457
10458 --
10459 --accounting attribute enhancement, bug 3612931
10460 --
10461 l_trx_reversal_source := SUBSTR(NULL, 1,30);
10462
10463 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
10464 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
10465
10466 xla_accounting_err_pkg.build_message
10467 (p_appli_s_name => 'XLA'
10468 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
10469 ,p_token_1 => 'ACCT_ATTR_NAME'
10470 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
10471 ,p_token_2 => 'PRODUCT_NAME'
10472 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
10473 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
10474 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
10475 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
10476
10477 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
10478 --
10479 -- following sets the accounting attributes needed to reverse
10480 -- accounting for a distributeion
10481 --
10482 xla_ae_lines_pkg.SetTrxReversalAttrs
10483 (p_event_id => l_event_id
10484 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
10485 ,p_trx_reversal_source => l_trx_reversal_source);
10486
10487 END IF;
10488
10489
10490 ----------------------------------------------------------------
10491 -- 4262811 - update the header statuses to invalid in need be
10492 ----------------------------------------------------------------
10493 --
10494 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
10495
10496
10497 -----------------------------------------------
10498 -- No accrual reversal for the event class/type
10499 -----------------------------------------------
10500 ----------------------------------------------------------------
10501
10502 --
10503 -- this ends the header loop iteration for one bulk fetch
10504 --
10505 END LOOP;
10506
10510 --
10507 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
10508 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
10509
10511 -- insert dummy rows into lines gt table that were created due to
10512 -- transaction reversals
10513 --
10514 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
10515 l_result := XLA_AE_LINES_PKG.InsertLines;
10516 END IF;
10517
10518 --
10519 -- reset the temp_line_num for each set of events fetched from header
10520 -- cursor rather than doing it for each new event in line cursor
10521 -- Bug 3939231
10522 --
10523 xla_ae_lines_pkg.g_temp_line_num := 0;
10524
10525
10526
10527 --
10528 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
10529 --
10530 --
10531 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
10532
10533 trace
10534 (p_msg => 'SQL - FETCH line_cur'
10535 ,p_level => C_LEVEL_STATEMENT
10536 ,p_module => l_log_module);
10537
10538 END IF;
10539 --
10540 --
10541 LOOP
10542 --
10543 FETCH line_cur BULK COLLECT INTO
10544 l_array_entity_id
10545 , l_array_legal_entity_id
10546 , l_array_entity_code
10547 , l_array_transaction_num
10548 , l_array_event_id
10549 , l_array_class_code
10550 , l_array_event_type
10551 , l_array_event_number
10552 , l_array_event_date
10553 , l_array_transaction_date
10554 , l_array_reference_num_1
10555 , l_array_reference_num_2
10556 , l_array_reference_num_3
10557 , l_array_reference_num_4
10558 , l_array_reference_char_1
10559 , l_array_reference_char_2
10560 , l_array_reference_char_3
10561 , l_array_reference_char_4
10562 , l_array_reference_date_1
10563 , l_array_reference_date_2
10564 , l_array_reference_date_3
10565 , l_array_reference_date_4
10566 , l_array_event_created_by
10567 , l_array_budgetary_control_flag
10568 , l_array_extract_line_num
10569 , l_array_source_1
10570 , l_array_source_6
10571 , l_array_source_12
10572 , l_array_source_16
10573 , l_array_source_20
10574 , l_array_source_21
10575 , l_array_source_22
10576 , l_array_source_23
10577 , l_array_source_24
10578 LIMIT l_rows;
10579
10580 --
10581 IF (C_LEVEL_EVENT >= g_log_level) THEN
10582 trace
10583 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
10584 ,p_level => C_LEVEL_EVENT
10585 ,p_module => l_log_module);
10586 END IF;
10587 --
10588 EXIT WHEN l_array_entity_id.count = 0;
10589
10590 XLA_AE_LINES_PKG.g_rec_lines := null;
10591
10592 --
10593 -- Bug 4458708
10594 --
10595 XLA_AE_LINES_PKG.g_LineNumber := 0;
10596 --
10597 --
10598
10599 FOR Idx IN 1..l_array_event_id.count LOOP
10600 --
10601 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
10602 --
10603 l_event_id := l_array_event_id(idx); -- 5648433
10604
10605 --
10606 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
10607 --
10608
10609 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
10610 (g_array_event(l_event_id).array_value_num('header_index'))
10611 ,'N'
10612 ) <> 'Y'
10613 THEN
10614 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
10615 trace
10616 (p_msg => 'Trancaction revesal option is not Y '
10617 ,p_level => C_LEVEL_STATEMENT
10618 ,p_module => l_log_module);
10619 END IF;
10620
10621 --
10622 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
10623 --
10624 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
10625 --
10626 -- set event info as cache for other routines to refer event attributes
10627 --
10628
10629 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
10630 l_previous_event_id := l_event_id;
10631
10632 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
10633 (p_application_id => p_application_id
10634 ,p_primary_ledger_id => p_primary_ledger_id
10635 ,p_base_ledger_id => p_base_ledger_id
10636 ,p_target_ledger_id => p_target_ledger_id
10637 ,p_entity_id => l_array_entity_id(Idx)
10638 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
10639 ,p_entity_code => l_array_entity_code(Idx)
10640 ,p_transaction_num => l_array_transaction_num(Idx)
10641 ,p_event_id => l_array_event_id(Idx)
10642 ,p_event_class_code => l_array_class_code(Idx)
10643 ,p_event_type_code => l_array_event_type(Idx)
10644 ,p_event_number => l_array_event_number(Idx)
10645 ,p_event_date => l_array_event_date(Idx)
10646 ,p_transaction_date => l_array_transaction_date(Idx)
10647 ,p_reference_num_1 => l_array_reference_num_1(Idx)
10648 ,p_reference_num_2 => l_array_reference_num_2(Idx)
10652 ,p_reference_char_2 => l_array_reference_char_2(Idx)
10649 ,p_reference_num_3 => l_array_reference_num_3(Idx)
10650 ,p_reference_num_4 => l_array_reference_num_4(Idx)
10651 ,p_reference_char_1 => l_array_reference_char_1(Idx)
10653 ,p_reference_char_3 => l_array_reference_char_3(Idx)
10654 ,p_reference_char_4 => l_array_reference_char_4(Idx)
10655 ,p_reference_date_1 => l_array_reference_date_1(Idx)
10656 ,p_reference_date_2 => l_array_reference_date_2(Idx)
10657 ,p_reference_date_3 => l_array_reference_date_3(Idx)
10658 ,p_reference_date_4 => l_array_reference_date_4(Idx)
10659 ,p_event_created_by => l_array_event_created_by(Idx)
10660 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
10661 --
10662 END IF;
10663
10664
10665
10666 --
10667 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
10668
10669 l_acct_reversal_source := SUBSTR(NULL, 1,30);
10670
10671 IF l_continue_with_lines THEN
10672 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
10673 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
10674
10675 xla_accounting_err_pkg.build_message
10676 (p_appli_s_name => 'XLA'
10677 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
10678 ,p_token_1 => 'LINE_NUMBER'
10679 ,p_value_1 => l_array_extract_line_num(Idx)
10680 ,p_token_2 => 'PRODUCT_NAME'
10681 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
10682 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
10683 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
10684 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
10685
10686 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
10687 --
10688 -- following sets the accounting attributes needed to reverse
10689 -- accounting for a distributeion
10690 --
10691
10692 --
10693 -- 5217187
10694 --
10695 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
10696 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
10697 g_array_event(l_event_id).array_value_num('header_index'));
10698 --
10699 --
10700
10701 -- No reversal code generated
10702
10703 xla_ae_lines_pkg.SetAcctReversalAttrs
10704 (p_event_id => l_event_id
10705 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
10706 ,p_calculate_acctd_flag => l_calculate_acctd_flag
10707 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
10708 END IF;
10709
10710 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
10711 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
10712
10713 --
10714 AcctLineType_11 (
10715 p_application_id => p_application_id
10716 ,p_event_id => l_event_id
10717 ,p_calculate_acctd_flag => l_calculate_acctd_flag
10718 ,p_calculate_g_l_flag => l_calculate_g_l_flag
10719 ,p_actual_flag => l_actual_flag
10720 ,p_balance_type_code => l_balance_type_code
10721 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
10722
10723 , p_source_1 => l_array_source_1(Idx)
10724 , p_source_6 => l_array_source_6(Idx)
10725 , p_source_12 => l_array_source_12(Idx)
10726 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
10727 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
10728 , p_source_16 => l_array_source_16(Idx)
10729 , p_source_20 => l_array_source_20(Idx)
10730 , p_source_21 => l_array_source_21(Idx)
10731 , p_source_22 => l_array_source_22(Idx)
10732 , p_source_23 => l_array_source_23(Idx)
10733 , p_source_24 => l_array_source_24(Idx)
10734 );
10735 If(l_balance_type_code = 'A') THEN
10736 l_actual_gain_loss_ref := l_gain_or_loss_ref;
10737 END IF;
10738
10739 --
10740
10741 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
10742 -- or secondary ledger that has different currency with primary
10743 -- or alc that is calculated by sla
10744 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
10745 (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'))
10746
10747 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
10748 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
10749 AND (l_actual_flag = 'A')) THEN
10750 XLA_AE_LINES_PKG.CreateGainOrLossLines(
10751 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
10752 ,p_application_id => p_application_id
10753 ,p_amb_context_code => 'DEFAULT'
10754 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
10755 ,p_event_class_code => C_EVENT_CLASS_CODE
10756 ,p_event_type_code => C_EVENT_TYPE_CODE
10757
10758 ,p_gain_ccid => -1
10759 ,p_loss_ccid => -1
10760
10761 ,p_actual_flag => l_actual_flag
10765 );
10762 ,p_enc_flag => null
10763 ,p_actual_g_l_ref => l_actual_gain_loss_ref
10764 ,p_enc_g_l_ref => null
10766 END IF;
10767 END IF;
10768 END IF;
10769
10770 ELSE
10771 --
10772 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
10773 --
10774 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
10775 trace
10776 (p_msg => 'Trancaction revesal option is Y'
10777 ,p_level => C_LEVEL_STATEMENT
10778 ,p_module => l_log_module);
10779 END IF;
10780 END IF;
10781
10782 END LOOP;
10783 l_result := XLA_AE_LINES_PKG.InsertLines ;
10784 end loop;
10785 close line_cur;
10786
10787
10788 --
10789 -- insert headers into xla_ae_headers_gt table
10790 --
10791 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
10792
10793 -- insert into errors table here.
10794
10795 END LOOP;
10796
10797 --
10798 -- 4865292
10799 --
10800 -- Compare g_hdr_extract_count with event count in
10801 -- CreateHeadersAndLines.
10802 --
10803 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
10804
10805 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
10806 trace (p_msg => '# rows extracted from header extract objects '
10807 || ' (running total): '
10808 || g_hdr_extract_count
10809 ,p_level => C_LEVEL_STATEMENT
10810 ,p_module => l_log_module);
10811 END IF;
10812
10813 CLOSE header_cur;
10814 --
10815
10816 --
10817 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10818 trace
10819 (p_msg => 'END of EventClass_15'
10820 ,p_level => C_LEVEL_PROCEDURE
10821 ,p_module => l_log_module);
10822 END IF;
10823 --
10824 RETURN l_result;
10825 EXCEPTION
10826 WHEN xla_exceptions_pkg.application_exception THEN
10827
10828 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
10829
10830
10831 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
10832
10833 RAISE;
10834
10835 WHEN NO_DATA_FOUND THEN
10836
10837 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
10838 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
10839
10840 FOR header_record IN header_cur
10841 LOOP
10842 l_array_header_events(header_record.event_id) := header_record.event_id;
10843 END LOOP;
10844
10845 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
10846 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
10847
10848 fnd_file.put_line(fnd_file.LOG, ' ');
10849 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
10850 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
10851 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
10852
10853 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
10854 LOOP
10855 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
10856 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
10857 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
10858 END IF;
10859 END LOOP;
10860
10861 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
10862 fnd_file.put_line(fnd_file.LOG, ' ');
10863
10864
10865 xla_exceptions_pkg.raise_message
10866 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.EventClass_15');
10867
10868
10869 WHEN OTHERS THEN
10870 xla_exceptions_pkg.raise_message
10871 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.EventClass_15');
10872 END EventClass_15;
10873 --
10874
10875 ---------------------------------------
10876 --
10877 -- PRIVATE PROCEDURE
10878 -- insert_sources_16
10879 --
10880 ----------------------------------------
10881 --
10882 PROCEDURE insert_sources_16(
10883 p_target_ledger_id IN NUMBER
10884 , p_language IN VARCHAR2
10885 , p_sla_ledger_id IN NUMBER
10886 , p_pad_start_date IN DATE
10887 , p_pad_end_date IN DATE
10888 )
10889 IS
10890
10891 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_TO_EXP_ALL';
10892 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_TO_EXP';
10893 p_apps_owner VARCHAR2(30);
10894 l_log_module VARCHAR2(240);
10895 BEGIN
10896 IF g_log_enabled THEN
10897 l_log_module := C_DEFAULT_MODULE||'.insert_sources_16';
10898 END IF;
10899 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10900
10901 trace
10902 (p_msg => 'BEGIN of insert_sources_16'
10903 ,p_level => C_LEVEL_PROCEDURE
10904 ,p_module => l_log_module);
10905
10906 END IF;
10907
10908 -- select APPS owner
10909 SELECT oracle_username
10910 INTO p_apps_owner
10911 FROM fnd_oracle_userid
10912 WHERE read_only_flag = 'U'
10913 ;
10914
10915 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
10919 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
10916 trace
10917 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
10918 ' - p_language = '||p_language||
10920 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
10921 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
10922 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
10923 ,p_level => C_LEVEL_STATEMENT
10924 ,p_module => l_log_module);
10925 END IF;
10926
10927
10928 --
10929 INSERT INTO xla_diag_sources --hdr2
10930 (
10931 event_id
10932 , ledger_id
10933 , sla_ledger_id
10934 , description_language
10935 , object_name
10936 , object_type_code
10937 , line_number
10938 , source_application_id
10939 , source_type_code
10940 , source_code
10941 , source_value
10942 , source_meaning
10943 , created_by
10944 , creation_date
10945 , last_update_date
10946 , last_updated_by
10947 , last_update_login
10948 , program_update_date
10949 , program_application_id
10950 , program_id
10951 , request_id
10952 )
10953 SELECT
10954 event_id
10955 , p_target_ledger_id
10956 , p_sla_ledger_id
10957 , p_language
10958 , object_name
10959 , object_type_code
10960 , line_number
10961 , source_application_id
10962 , source_type_code
10963 , source_code
10964 , SUBSTR(source_value ,1,1996)
10965 , SUBSTR(source_meaning ,1,200)
10966 , xla_environment_pkg.g_Usr_Id
10967 , TRUNC(SYSDATE)
10968 , TRUNC(SYSDATE)
10969 , xla_environment_pkg.g_Usr_Id
10970 , xla_environment_pkg.g_Login_Id
10971 , TRUNC(SYSDATE)
10972 , xla_environment_pkg.g_Prog_Appl_Id
10973 , xla_environment_pkg.g_Prog_Id
10974 , xla_environment_pkg.g_Req_Id
10975 FROM (
10976 SELECT xet.event_id event_id
10977 , 0 line_number
10978 , CASE r
10979 WHEN 1 THEN 'CST_XLA_INV_HEADERS_V'
10980 WHEN 2 THEN 'CST_XLA_INV_HEADERS_V'
10981
10982 ELSE null
10983 END object_name
10984 , CASE r
10985 WHEN 1 THEN 'HEADER'
10986 WHEN 2 THEN 'HEADER'
10987
10988 ELSE null
10989 END object_type_code
10990 , CASE r
10991 WHEN 1 THEN '707'
10992 WHEN 2 THEN '707'
10993
10994 ELSE null
10995 END source_application_id
10996 , 'S' source_type_code
10997 , CASE r
10998 WHEN 1 THEN 'DISTRIBUTION_TYPE'
10999 WHEN 2 THEN 'TRANSFER_TO_GL_INDICATOR'
11000
11001 ELSE null
11002 END source_code
11003 , CASE r
11004 WHEN 1 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
11005 WHEN 2 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
11006
11007 ELSE null
11008 END source_value
11009 , CASE r
11010 WHEN 1 THEN fvl13.meaning
11011 WHEN 2 THEN fvl37.meaning
11012
11013 ELSE null
11014 END source_meaning
11015 FROM xla_events_gt xet
11016 , CST_XLA_INV_HEADERS_V h1
11017 , fnd_lookup_values fvl13
11018 , fnd_lookup_values fvl37
11019 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
11020 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
11021 AND xet.event_class_code = C_EVENT_CLASS_CODE
11022 AND h1.event_id = xet.event_id
11023 AND fvl13.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
11024 AND fvl13.lookup_code(+) = h1.DISTRIBUTION_TYPE
11025 AND fvl13.view_application_id(+) = 700
11026 AND fvl13.language(+) = USERENV('LANG')
11027 AND fvl37.lookup_type(+) = 'YES_NO'
11028 AND fvl37.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
11029 AND fvl37.view_application_id(+) = 0
11030 AND fvl37.language(+) = USERENV('LANG')
11031
11032 )
11033 ;
11034 --
11035 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
11036
11037 trace
11038 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
11039 ,p_level => C_LEVEL_STATEMENT
11040 ,p_module => l_log_module);
11041
11042 END IF;
11043 --
11044
11045
11046
11047 --
11048 INSERT INTO xla_diag_sources --line2
11049 (
11050 event_id
11051 , ledger_id
11052 , sla_ledger_id
11053 , description_language
11054 , object_name
11055 , object_type_code
11056 , line_number
11057 , source_application_id
11058 , source_type_code
11059 , source_code
11060 , source_value
11061 , source_meaning
11062 , created_by
11063 , creation_date
11067 , program_update_date
11064 , last_update_date
11065 , last_updated_by
11066 , last_update_login
11068 , program_application_id
11069 , program_id
11070 , request_id
11071 )
11072 SELECT event_id
11073 , p_target_ledger_id
11074 , p_sla_ledger_id
11075 , p_language
11076 , object_name
11077 , object_type_code
11078 , line_number
11079 , source_application_id
11080 , source_type_code
11081 , source_code
11082 , SUBSTR(source_value,1,1996)
11083 , SUBSTR(source_meaning ,1,200)
11084 , xla_environment_pkg.g_Usr_Id
11085 , TRUNC(SYSDATE)
11086 , TRUNC(SYSDATE)
11087 , xla_environment_pkg.g_Usr_Id
11088 , xla_environment_pkg.g_Login_Id
11089 , TRUNC(SYSDATE)
11090 , xla_environment_pkg.g_Prog_Appl_Id
11091 , xla_environment_pkg.g_Prog_Id
11092 , xla_environment_pkg.g_Req_Id
11093 FROM (
11094 SELECT xet.event_id event_id
11095 , l2.line_number line_number
11096 , CASE r
11097 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
11098 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
11099 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
11100 WHEN 4 THEN 'CST_XLA_INV_LINES_V'
11101 WHEN 5 THEN 'CST_XLA_INV_LINES_V'
11102 WHEN 6 THEN 'CST_XLA_INV_LINES_V'
11103 WHEN 7 THEN 'CST_XLA_INV_LINES_V'
11104 WHEN 8 THEN 'CST_XLA_INV_LINES_V'
11105 WHEN 9 THEN 'CST_XLA_INV_LINES_V'
11106
11107 ELSE null
11108 END object_name
11109 , CASE r
11110 WHEN 1 THEN 'LINE'
11111 WHEN 2 THEN 'LINE'
11112 WHEN 3 THEN 'LINE'
11113 WHEN 4 THEN 'LINE'
11114 WHEN 5 THEN 'LINE'
11115 WHEN 6 THEN 'LINE'
11116 WHEN 7 THEN 'LINE'
11117 WHEN 8 THEN 'LINE'
11118 WHEN 9 THEN 'LINE'
11119
11120 ELSE null
11121 END object_type_code
11122 , CASE r
11123 WHEN 1 THEN '707'
11124 WHEN 2 THEN '707'
11125 WHEN 3 THEN '707'
11126 WHEN 4 THEN '707'
11127 WHEN 5 THEN '707'
11128 WHEN 6 THEN '707'
11129 WHEN 7 THEN '707'
11130 WHEN 8 THEN '707'
11131 WHEN 9 THEN '707'
11132
11133 ELSE null
11134 END source_application_id
11135 , 'S' source_type_code
11136 , CASE r
11137 WHEN 1 THEN 'CODE_COMBINATION_ID'
11138 WHEN 2 THEN 'ACCOUNTING_LINE_TYPE_CODE'
11139 WHEN 3 THEN 'DISTRIBUTION_IDENTIFIER'
11140 WHEN 4 THEN 'CURRENCY_CODE'
11141 WHEN 5 THEN 'ENTERED_AMOUNT'
11142 WHEN 6 THEN 'CURRENCY_CONVERSION_DATE'
11143 WHEN 7 THEN 'CURRENCY_CONVERSION_RATE'
11144 WHEN 8 THEN 'CURRENCY_CONVERSION_TYPE'
11145 WHEN 9 THEN 'ACCOUNTED_AMOUNT'
11146
11147 ELSE null
11148 END source_code
11149 , CASE r
11150 WHEN 1 THEN TO_CHAR(l2.CODE_COMBINATION_ID)
11151 WHEN 2 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
11152 WHEN 3 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
11153 WHEN 4 THEN TO_CHAR(l2.CURRENCY_CODE)
11154 WHEN 5 THEN TO_CHAR(l2.ENTERED_AMOUNT)
11155 WHEN 6 THEN TO_CHAR(l2.CURRENCY_CONVERSION_DATE)
11156 WHEN 7 THEN TO_CHAR(l2.CURRENCY_CONVERSION_RATE)
11157 WHEN 8 THEN TO_CHAR(l2.CURRENCY_CONVERSION_TYPE)
11158 WHEN 9 THEN TO_CHAR(l2.ACCOUNTED_AMOUNT)
11159
11160 ELSE null
11161 END source_value
11162 , null source_meaning
11163 FROM xla_events_gt xet
11164 , CST_XLA_INV_LINES_V l2
11165 , (select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
11166 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
11167 AND xet.event_class_code = C_EVENT_CLASS_CODE
11168 AND l2.event_id = xet.event_id
11169
11170 )
11171 ;
11172 --
11173 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
11174
11175 trace
11176 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
11177 ,p_level => C_LEVEL_STATEMENT
11178 ,p_module => l_log_module);
11179
11180 END IF;
11181
11182
11183 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11184 trace
11185 (p_msg => 'END of insert_sources_16'
11186 ,p_level => C_LEVEL_PROCEDURE
11187 ,p_module => l_log_module);
11188 END IF;
11189 EXCEPTION
11190 WHEN xla_exceptions_pkg.application_exception THEN
11191 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
11192 trace
11196 END IF;
11193 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
11194 ,p_level => C_LEVEL_EXCEPTION
11195 ,p_module => l_log_module);
11197 RAISE;
11198 WHEN OTHERS THEN
11199 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
11200 trace
11201 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
11202 ,p_level => C_LEVEL_EXCEPTION
11203 ,p_module => l_log_module);
11204 END IF;
11205 xla_exceptions_pkg.raise_message
11206 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.insert_sources_16');
11207 END insert_sources_16;
11208 --
11209
11210 ---------------------------------------
11211 --
11212 -- PRIVATE FUNCTION
11213 -- EventClass_16
11214 --
11215 ----------------------------------------
11216 --
11217 FUNCTION EventClass_16
11218 (p_application_id IN NUMBER
11219 ,p_base_ledger_id IN NUMBER
11220 ,p_target_ledger_id IN NUMBER
11221 ,p_language IN VARCHAR2
11222 ,p_currency_code IN VARCHAR2
11223 ,p_sla_ledger_id IN NUMBER
11224 ,p_pad_start_date IN DATE
11225 ,p_pad_end_date IN DATE
11226 ,p_primary_ledger_id IN NUMBER)
11227 RETURN BOOLEAN IS
11228 --
11229 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_TO_EXP_ALL';
11230 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INT_ORDER_TO_EXP';
11231
11232 l_calculate_acctd_flag VARCHAR2(1) :='N';
11233 l_calculate_g_l_flag VARCHAR2(1) :='N';
11234 --
11235 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11236 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11237 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11238 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
11239 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11240 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11241 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11242 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11243 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
11244 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
11245 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11246 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11247 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11248 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11249 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
11250 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
11251 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
11252 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
11253 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
11254 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
11255 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
11256 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
11257 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
11258 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11259 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
11260 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
11261
11262 l_event_id NUMBER;
11263 l_previous_event_id NUMBER;
11264 l_first_event_id NUMBER;
11265 l_last_event_id NUMBER;
11266
11267 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
11268 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11269 --
11270 --
11271 l_result BOOLEAN := TRUE;
11272 l_rows NUMBER := 1000;
11273 l_event_type_name VARCHAR2(80) := 'All';
11274 l_event_class_name VARCHAR2(80) := 'Internal Order to Expense';
11275 l_description VARCHAR2(4000);
11276 l_transaction_reversal NUMBER;
11277 l_ae_header_id NUMBER;
11278 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
11279 l_log_module VARCHAR2(240);
11280 --
11281 l_acct_reversal_source VARCHAR2(30);
11282 l_trx_reversal_source VARCHAR2(30);
11283
11284 l_continue_with_lines BOOLEAN := TRUE;
11285 --
11286 l_acc_rev_gl_date_source DATE; -- 4262811
11287 --
11288 type t_array_event_id is table of number index by binary_integer;
11289
11290 l_rec_array_event t_rec_array_event;
11291 l_null_rec_array_event t_rec_array_event;
11292 l_array_ae_header_id xla_number_array_type;
11293 l_actual_flag VARCHAR2(1) := NULL;
11294 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
11295 l_balance_type_code VARCHAR2(1) :=NULL;
11296 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
11297
11298 --
11302 TYPE t_array_source_13 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
11299 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
11300 --
11301
11303 TYPE t_array_source_37 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
11304
11305 TYPE t_array_source_1 IS TABLE OF CST_XLA_INV_LINES_V.CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
11306 TYPE t_array_source_6 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
11307 TYPE t_array_source_12 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
11308 TYPE t_array_source_16 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
11309 TYPE t_array_source_20 IS TABLE OF CST_XLA_INV_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
11310 TYPE t_array_source_21 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
11311 TYPE t_array_source_22 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
11312 TYPE t_array_source_23 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
11313 TYPE t_array_source_24 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
11314
11315 l_array_source_13 t_array_source_13;
11316 l_array_source_13_meaning t_array_lookup_meaning;
11317 l_array_source_37 t_array_source_37;
11318 l_array_source_37_meaning t_array_lookup_meaning;
11319
11320 l_array_source_1 t_array_source_1;
11321 l_array_source_6 t_array_source_6;
11322 l_array_source_12 t_array_source_12;
11323 l_array_source_16 t_array_source_16;
11324 l_array_source_20 t_array_source_20;
11325 l_array_source_21 t_array_source_21;
11326 l_array_source_22 t_array_source_22;
11327 l_array_source_23 t_array_source_23;
11328 l_array_source_24 t_array_source_24;
11329
11330 --
11331 CURSOR header_cur
11332 IS
11333 SELECT /*+ leading(xet) cardinality(xet,1) */
11334 -- Event Class Code: INT_ORDER_TO_EXP
11335 xet.entity_id
11336 ,xet.legal_entity_id
11337 ,xet.entity_code
11338 ,xet.transaction_number
11339 ,xet.event_id
11340 ,xet.event_class_code
11341 ,xet.event_type_code
11342 ,xet.event_number
11343 ,xet.event_date
11344 ,xet.transaction_date
11345 ,xet.reference_num_1
11346 ,xet.reference_num_2
11347 ,xet.reference_num_3
11348 ,xet.reference_num_4
11349 ,xet.reference_char_1
11350 ,xet.reference_char_2
11351 ,xet.reference_char_3
11352 ,xet.reference_char_4
11353 ,xet.reference_date_1
11354 ,xet.reference_date_2
11355 ,xet.reference_date_3
11356 ,xet.reference_date_4
11357 ,xet.event_created_by
11358 ,xet.budgetary_control_flag
11359 , h1.DISTRIBUTION_TYPE source_13
11360 , fvl13.meaning source_13_meaning
11361 , h1.TRANSFER_TO_GL_INDICATOR source_37
11362 , fvl37.meaning source_37_meaning
11363 FROM xla_events_gt xet
11364 , CST_XLA_INV_HEADERS_V h1
11365 , fnd_lookup_values fvl13
11366 , fnd_lookup_values fvl37
11367 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
11368 and xet.event_class_code = C_EVENT_CLASS_CODE
11369 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
11370 AND fvl13.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
11371 AND fvl13.lookup_code(+) = h1.DISTRIBUTION_TYPE
11372 AND fvl13.view_application_id(+) = 700
11373 AND fvl13.language(+) = USERENV('LANG')
11374 AND fvl37.lookup_type(+) = 'YES_NO'
11375 AND fvl37.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
11376 AND fvl37.view_application_id(+) = 0
11377 AND fvl37.language(+) = USERENV('LANG')
11378
11379 ORDER BY event_id
11380 ;
11381
11382
11383 --
11384 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
11385 IS
11386 SELECT /*+ leading(xet) cardinality(xet,1) */
11387 -- Event Class Code: INT_ORDER_TO_EXP
11388 xet.entity_id
11389 ,xet.legal_entity_id
11390 ,xet.entity_code
11391 ,xet.transaction_number
11392 ,xet.event_id
11393 ,xet.event_class_code
11394 ,xet.event_type_code
11395 ,xet.event_number
11396 ,xet.event_date
11397 ,xet.transaction_date
11398 ,xet.reference_num_1
11399 ,xet.reference_num_2
11400 ,xet.reference_num_3
11401 ,xet.reference_num_4
11402 ,xet.reference_char_1
11403 ,xet.reference_char_2
11404 ,xet.reference_char_3
11405 ,xet.reference_char_4
11406 ,xet.reference_date_1
11407 ,xet.reference_date_2
11408 ,xet.reference_date_3
11409 ,xet.reference_date_4
11410 ,xet.event_created_by
11411 ,xet.budgetary_control_flag
11412 , l2.LINE_NUMBER
11413 , l2.CODE_COMBINATION_ID source_1
11414 , l2.ACCOUNTING_LINE_TYPE_CODE source_6
11415 , l2.DISTRIBUTION_IDENTIFIER source_12
11416 , l2.CURRENCY_CODE source_16
11417 , l2.ENTERED_AMOUNT source_20
11418 , l2.CURRENCY_CONVERSION_DATE source_21
11419 , l2.CURRENCY_CONVERSION_RATE source_22
11420 , l2.CURRENCY_CONVERSION_TYPE source_23
11421 , l2.ACCOUNTED_AMOUNT source_24
11422 FROM xla_events_gt xet
11423 , CST_XLA_INV_LINES_V l2
11424 WHERE xet.event_id between x_first_event_id and x_last_event_id
11425 and xet.event_date between p_pad_start_date and p_pad_end_date
11426 and xet.event_class_code = C_EVENT_CLASS_CODE
11430 --
11427 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
11428 ;
11429
11431 BEGIN
11432 IF g_log_enabled THEN
11433 l_log_module := C_DEFAULT_MODULE||'.EventClass_16';
11434 END IF;
11435 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11436 trace
11437 (p_msg => 'BEGIN of EventClass_16'
11438 ,p_level => C_LEVEL_PROCEDURE
11439 ,p_module => l_log_module);
11440 END IF;
11441
11442 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
11443 trace
11444 (p_msg => 'p_application_id = '||p_application_id||
11445 ' - p_base_ledger_id = '||p_base_ledger_id||
11446 ' - p_target_ledger_id = '||p_target_ledger_id||
11447 ' - p_language = '||p_language||
11448 ' - p_currency_code = '||p_currency_code||
11449 ' - p_sla_ledger_id = '||p_sla_ledger_id
11450 ,p_level => C_LEVEL_STATEMENT
11451 ,p_module => l_log_module);
11452 END IF;
11453 --
11454 -- initialze arrays
11455 --
11456 g_array_event.DELETE;
11457 l_rec_array_event := l_null_rec_array_event;
11458 --
11459 --------------------------------------
11460 -- 4262811 Initialze MPA Line Number
11461 --------------------------------------
11462 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
11463
11464 --
11465
11466 --
11467 OPEN header_cur;
11468 --
11469 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
11470 trace
11471 (p_msg => 'SQL - FETCH header_cur'
11472 ,p_level => C_LEVEL_STATEMENT
11473 ,p_module => l_log_module);
11474 END IF;
11475 --
11476 LOOP
11477 FETCH header_cur BULK COLLECT INTO
11478 l_array_entity_id
11479 , l_array_legal_entity_id
11480 , l_array_entity_code
11481 , l_array_transaction_num
11482 , l_array_event_id
11483 , l_array_class_code
11484 , l_array_event_type
11485 , l_array_event_number
11486 , l_array_event_date
11487 , l_array_transaction_date
11488 , l_array_reference_num_1
11489 , l_array_reference_num_2
11490 , l_array_reference_num_3
11491 , l_array_reference_num_4
11492 , l_array_reference_char_1
11493 , l_array_reference_char_2
11494 , l_array_reference_char_3
11495 , l_array_reference_char_4
11496 , l_array_reference_date_1
11497 , l_array_reference_date_2
11498 , l_array_reference_date_3
11499 , l_array_reference_date_4
11500 , l_array_event_created_by
11501 , l_array_budgetary_control_flag
11502 , l_array_source_13
11503 , l_array_source_13_meaning
11504 , l_array_source_37
11505 , l_array_source_37_meaning
11506 LIMIT l_rows;
11507 --
11508 IF (C_LEVEL_EVENT >= g_log_level) THEN
11509 trace
11510 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
11511 ,p_level => C_LEVEL_EVENT
11512 ,p_module => l_log_module);
11513 END IF;
11514 --
11515 EXIT WHEN l_array_entity_id.COUNT = 0;
11516
11517 -- initialize arrays
11518 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
11519 XLA_AE_LINES_PKG.g_rec_lines := NULL;
11520
11521 --
11522 -- Bug 4458708
11523 --
11524 XLA_AE_LINES_PKG.g_LineNumber := 0;
11525
11526
11527 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
11528 g_last_hdr_idx := l_array_event_id.LAST;
11529 --
11530 -- loop for the headers. Each iteration is for each header extract row
11531 -- fetched in header cursor
11532 --
11533 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
11534
11535 --
11536 -- set event info as cache for other routines to refer event attributes
11537 --
11538 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
11539 (p_application_id => p_application_id
11540 ,p_primary_ledger_id => p_primary_ledger_id
11541 ,p_base_ledger_id => p_base_ledger_id
11542 ,p_target_ledger_id => p_target_ledger_id
11543 ,p_entity_id => l_array_entity_id(hdr_idx)
11544 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
11545 ,p_entity_code => l_array_entity_code(hdr_idx)
11546 ,p_transaction_num => l_array_transaction_num(hdr_idx)
11547 ,p_event_id => l_array_event_id(hdr_idx)
11548 ,p_event_class_code => l_array_class_code(hdr_idx)
11549 ,p_event_type_code => l_array_event_type(hdr_idx)
11550 ,p_event_number => l_array_event_number(hdr_idx)
11551 ,p_event_date => l_array_event_date(hdr_idx)
11552 ,p_transaction_date => l_array_transaction_date(hdr_idx)
11553 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
11554 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
11555 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
11556 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
11557 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
11558 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
11559 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
11560 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
11561 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
11562 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
11566 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
11563 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
11564 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
11565 ,p_event_created_by => l_array_event_created_by(hdr_idx)
11567
11568 --
11569 -- set the status of entry to C_VALID (0)
11570 --
11571 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
11572
11573 --
11574 -- initialize a row for ae header
11575 --
11576 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
11577
11578 l_event_id := l_array_event_id(hdr_idx);
11579
11580 --
11581 -- storing the hdr_idx for event. May be used by line cursor.
11582 --
11583 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
11584
11585 --
11586 -- store sources from header extract. This can be improved to
11587 -- store only those sources from header extract that may be used in lines
11588 --
11589
11590 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
11591 g_array_event(l_event_id).array_value_char('source_13_meaning') := l_array_source_13_meaning(hdr_idx);
11592 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
11593 g_array_event(l_event_id).array_value_char('source_37_meaning') := l_array_source_37_meaning(hdr_idx);
11594
11595 --
11596 -- initilaize the status of ae headers for diffrent balance types
11597 -- the status is initialised to C_NOT_CREATED (2)
11598 --
11599 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
11600 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
11601 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
11602
11603 --
11604 -- call api to validate and store accounting attributes for header
11605 --
11606
11607 ------------------------------------------------------------
11608 -- Accrual Reversal : to get date for Standard Source (NONE)
11609 ------------------------------------------------------------
11610 l_acc_rev_gl_date_source := NULL;
11611
11612 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
11613 l_rec_acct_attrs.array_date_value(1) :=
11614 xla_ae_sources_pkg.GetSystemSourceDate(
11615 p_source_code => 'XLA_REFERENCE_DATE_1'
11616 , p_source_type_code => 'Y'
11617 , p_source_application_id => 602
11618 );
11619 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_TRANSFER_FLAG';
11620 l_rec_acct_attrs.array_char_value(2) := g_array_event(l_event_id).array_value_char('source_37');
11621
11622
11623 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
11624
11625 XLA_AE_HEADER_PKG.SetJeCategoryName;
11626
11627 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
11628 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
11629 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
11630 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
11631 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
11632
11633
11634 -- No header level analytical criteria
11635
11636 --
11637 --accounting attribute enhancement, bug 3612931
11638 --
11639 l_trx_reversal_source := SUBSTR(NULL, 1,30);
11640
11641 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
11642 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
11643
11644 xla_accounting_err_pkg.build_message
11645 (p_appli_s_name => 'XLA'
11646 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
11647 ,p_token_1 => 'ACCT_ATTR_NAME'
11648 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
11649 ,p_token_2 => 'PRODUCT_NAME'
11650 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
11651 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
11652 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
11653 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
11654
11655 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
11656 --
11657 -- following sets the accounting attributes needed to reverse
11658 -- accounting for a distributeion
11659 --
11660 xla_ae_lines_pkg.SetTrxReversalAttrs
11661 (p_event_id => l_event_id
11662 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
11663 ,p_trx_reversal_source => l_trx_reversal_source);
11664
11665 END IF;
11666
11667
11668 ----------------------------------------------------------------
11669 -- 4262811 - update the header statuses to invalid in need be
11670 ----------------------------------------------------------------
11671 --
11672 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
11673
11674
11675 -----------------------------------------------
11676 -- No accrual reversal for the event class/type
11677 -----------------------------------------------
11678 ----------------------------------------------------------------
11679
11680 --
11684
11681 -- this ends the header loop iteration for one bulk fetch
11682 --
11683 END LOOP;
11685 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
11686 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
11687
11688 --
11689 -- insert dummy rows into lines gt table that were created due to
11690 -- transaction reversals
11691 --
11692 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
11693 l_result := XLA_AE_LINES_PKG.InsertLines;
11694 END IF;
11695
11696 --
11697 -- reset the temp_line_num for each set of events fetched from header
11698 -- cursor rather than doing it for each new event in line cursor
11699 -- Bug 3939231
11700 --
11701 xla_ae_lines_pkg.g_temp_line_num := 0;
11702
11703
11704
11705 --
11706 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
11707 --
11708 --
11709 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
11710
11711 trace
11712 (p_msg => 'SQL - FETCH line_cur'
11713 ,p_level => C_LEVEL_STATEMENT
11714 ,p_module => l_log_module);
11715
11716 END IF;
11717 --
11718 --
11719 LOOP
11720 --
11721 FETCH line_cur BULK COLLECT INTO
11722 l_array_entity_id
11723 , l_array_legal_entity_id
11724 , l_array_entity_code
11725 , l_array_transaction_num
11726 , l_array_event_id
11727 , l_array_class_code
11728 , l_array_event_type
11729 , l_array_event_number
11730 , l_array_event_date
11731 , l_array_transaction_date
11732 , l_array_reference_num_1
11733 , l_array_reference_num_2
11734 , l_array_reference_num_3
11735 , l_array_reference_num_4
11736 , l_array_reference_char_1
11737 , l_array_reference_char_2
11738 , l_array_reference_char_3
11739 , l_array_reference_char_4
11740 , l_array_reference_date_1
11741 , l_array_reference_date_2
11742 , l_array_reference_date_3
11743 , l_array_reference_date_4
11744 , l_array_event_created_by
11745 , l_array_budgetary_control_flag
11746 , l_array_extract_line_num
11747 , l_array_source_1
11748 , l_array_source_6
11749 , l_array_source_12
11750 , l_array_source_16
11751 , l_array_source_20
11752 , l_array_source_21
11753 , l_array_source_22
11754 , l_array_source_23
11755 , l_array_source_24
11756 LIMIT l_rows;
11757
11758 --
11759 IF (C_LEVEL_EVENT >= g_log_level) THEN
11760 trace
11761 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
11762 ,p_level => C_LEVEL_EVENT
11763 ,p_module => l_log_module);
11764 END IF;
11765 --
11766 EXIT WHEN l_array_entity_id.count = 0;
11767
11768 XLA_AE_LINES_PKG.g_rec_lines := null;
11769
11770 --
11771 -- Bug 4458708
11772 --
11773 XLA_AE_LINES_PKG.g_LineNumber := 0;
11774 --
11775 --
11776
11777 FOR Idx IN 1..l_array_event_id.count LOOP
11778 --
11779 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
11780 --
11781 l_event_id := l_array_event_id(idx); -- 5648433
11782
11783 --
11784 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
11785 --
11786
11787 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
11788 (g_array_event(l_event_id).array_value_num('header_index'))
11789 ,'N'
11790 ) <> 'Y'
11791 THEN
11792 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
11793 trace
11794 (p_msg => 'Trancaction revesal option is not Y '
11795 ,p_level => C_LEVEL_STATEMENT
11796 ,p_module => l_log_module);
11797 END IF;
11798
11799 --
11800 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
11801 --
11802 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
11803 --
11804 -- set event info as cache for other routines to refer event attributes
11805 --
11806
11807 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
11808 l_previous_event_id := l_event_id;
11809
11810 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
11811 (p_application_id => p_application_id
11812 ,p_primary_ledger_id => p_primary_ledger_id
11813 ,p_base_ledger_id => p_base_ledger_id
11814 ,p_target_ledger_id => p_target_ledger_id
11815 ,p_entity_id => l_array_entity_id(Idx)
11816 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
11817 ,p_entity_code => l_array_entity_code(Idx)
11818 ,p_transaction_num => l_array_transaction_num(Idx)
11819 ,p_event_id => l_array_event_id(Idx)
11820 ,p_event_class_code => l_array_class_code(Idx)
11821 ,p_event_type_code => l_array_event_type(Idx)
11822 ,p_event_number => l_array_event_number(Idx)
11823 ,p_event_date => l_array_event_date(Idx)
11824 ,p_transaction_date => l_array_transaction_date(Idx)
11825 ,p_reference_num_1 => l_array_reference_num_1(Idx)
11829 ,p_reference_char_1 => l_array_reference_char_1(Idx)
11826 ,p_reference_num_2 => l_array_reference_num_2(Idx)
11827 ,p_reference_num_3 => l_array_reference_num_3(Idx)
11828 ,p_reference_num_4 => l_array_reference_num_4(Idx)
11830 ,p_reference_char_2 => l_array_reference_char_2(Idx)
11831 ,p_reference_char_3 => l_array_reference_char_3(Idx)
11832 ,p_reference_char_4 => l_array_reference_char_4(Idx)
11833 ,p_reference_date_1 => l_array_reference_date_1(Idx)
11834 ,p_reference_date_2 => l_array_reference_date_2(Idx)
11835 ,p_reference_date_3 => l_array_reference_date_3(Idx)
11836 ,p_reference_date_4 => l_array_reference_date_4(Idx)
11837 ,p_event_created_by => l_array_event_created_by(Idx)
11838 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
11839 --
11840 END IF;
11841
11842
11843
11844 --
11845 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
11846
11847 l_acct_reversal_source := SUBSTR(NULL, 1,30);
11848
11849 IF l_continue_with_lines THEN
11850 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
11851 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
11852
11853 xla_accounting_err_pkg.build_message
11854 (p_appli_s_name => 'XLA'
11855 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
11856 ,p_token_1 => 'LINE_NUMBER'
11857 ,p_value_1 => l_array_extract_line_num(Idx)
11858 ,p_token_2 => 'PRODUCT_NAME'
11859 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
11860 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
11861 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
11862 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
11863
11864 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
11865 --
11866 -- following sets the accounting attributes needed to reverse
11867 -- accounting for a distributeion
11868 --
11869
11870 --
11871 -- 5217187
11872 --
11873 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
11874 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
11875 g_array_event(l_event_id).array_value_num('header_index'));
11876 --
11877 --
11878
11879 -- No reversal code generated
11880
11881 xla_ae_lines_pkg.SetAcctReversalAttrs
11882 (p_event_id => l_event_id
11883 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
11884 ,p_calculate_acctd_flag => l_calculate_acctd_flag
11885 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
11886 END IF;
11887
11888 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
11889 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
11890
11891 --
11892 AcctLineType_3 (
11893 p_application_id => p_application_id
11894 ,p_event_id => l_event_id
11895 ,p_calculate_acctd_flag => l_calculate_acctd_flag
11896 ,p_calculate_g_l_flag => l_calculate_g_l_flag
11897 ,p_actual_flag => l_actual_flag
11898 ,p_balance_type_code => l_balance_type_code
11899 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
11900
11901 , p_source_1 => l_array_source_1(Idx)
11902 , p_source_6 => l_array_source_6(Idx)
11903 , p_source_12 => l_array_source_12(Idx)
11904 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
11905 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
11906 , p_source_16 => l_array_source_16(Idx)
11907 , p_source_20 => l_array_source_20(Idx)
11908 , p_source_21 => l_array_source_21(Idx)
11909 , p_source_22 => l_array_source_22(Idx)
11910 , p_source_23 => l_array_source_23(Idx)
11911 , p_source_24 => l_array_source_24(Idx)
11912 );
11913 If(l_balance_type_code = 'A') THEN
11914 l_actual_gain_loss_ref := l_gain_or_loss_ref;
11915 END IF;
11916
11917 --
11918
11919 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
11920 -- or secondary ledger that has different currency with primary
11921 -- or alc that is calculated by sla
11922 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
11923 (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'))
11924
11925 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
11926 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
11927 AND (l_actual_flag = 'A')) THEN
11928 XLA_AE_LINES_PKG.CreateGainOrLossLines(
11929 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
11930 ,p_application_id => p_application_id
11931 ,p_amb_context_code => 'DEFAULT'
11932 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
11933 ,p_event_class_code => C_EVENT_CLASS_CODE
11934 ,p_event_type_code => C_EVENT_TYPE_CODE
11935
11936 ,p_gain_ccid => -1
11940 ,p_enc_flag => null
11937 ,p_loss_ccid => -1
11938
11939 ,p_actual_flag => l_actual_flag
11941 ,p_actual_g_l_ref => l_actual_gain_loss_ref
11942 ,p_enc_g_l_ref => null
11943 );
11944 END IF;
11945 END IF;
11946 END IF;
11947
11948 ELSE
11949 --
11950 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
11951 --
11952 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
11953 trace
11954 (p_msg => 'Trancaction revesal option is Y'
11955 ,p_level => C_LEVEL_STATEMENT
11956 ,p_module => l_log_module);
11957 END IF;
11958 END IF;
11959
11960 END LOOP;
11961 l_result := XLA_AE_LINES_PKG.InsertLines ;
11962 end loop;
11963 close line_cur;
11964
11965
11966 --
11967 -- insert headers into xla_ae_headers_gt table
11968 --
11969 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
11970
11971 -- insert into errors table here.
11972
11973 END LOOP;
11974
11975 --
11976 -- 4865292
11977 --
11978 -- Compare g_hdr_extract_count with event count in
11979 -- CreateHeadersAndLines.
11980 --
11981 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
11982
11983 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
11984 trace (p_msg => '# rows extracted from header extract objects '
11985 || ' (running total): '
11986 || g_hdr_extract_count
11987 ,p_level => C_LEVEL_STATEMENT
11988 ,p_module => l_log_module);
11989 END IF;
11990
11991 CLOSE header_cur;
11992 --
11993
11994 --
11995 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11996 trace
11997 (p_msg => 'END of EventClass_16'
11998 ,p_level => C_LEVEL_PROCEDURE
11999 ,p_module => l_log_module);
12000 END IF;
12001 --
12002 RETURN l_result;
12003 EXCEPTION
12004 WHEN xla_exceptions_pkg.application_exception THEN
12005
12006 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
12007
12008
12009 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
12010
12011 RAISE;
12012
12013 WHEN NO_DATA_FOUND THEN
12014
12015 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
12016 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
12017
12018 FOR header_record IN header_cur
12019 LOOP
12020 l_array_header_events(header_record.event_id) := header_record.event_id;
12021 END LOOP;
12022
12023 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
12024 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
12025
12026 fnd_file.put_line(fnd_file.LOG, ' ');
12027 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
12028 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
12029 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
12030
12031 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
12032 LOOP
12033 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
12034 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
12035 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
12036 END IF;
12037 END LOOP;
12038
12039 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
12040 fnd_file.put_line(fnd_file.LOG, ' ');
12041
12042
12043 xla_exceptions_pkg.raise_message
12044 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.EventClass_16');
12045
12046
12047 WHEN OTHERS THEN
12048 xla_exceptions_pkg.raise_message
12049 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.EventClass_16');
12050 END EventClass_16;
12051 --
12052
12053 ---------------------------------------
12054 --
12055 -- PRIVATE PROCEDURE
12056 -- insert_sources_17
12057 --
12058 ----------------------------------------
12059 --
12060 PROCEDURE insert_sources_17(
12061 p_target_ledger_id IN NUMBER
12062 , p_language IN VARCHAR2
12063 , p_sla_ledger_id IN NUMBER
12064 , p_pad_start_date IN DATE
12065 , p_pad_end_date IN DATE
12066 )
12067 IS
12068
12069 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PERIOD_END_ACCRUAL_ALL';
12070 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PERIOD_END_ACCRUAL';
12071 p_apps_owner VARCHAR2(30);
12072 l_log_module VARCHAR2(240);
12073 BEGIN
12074 IF g_log_enabled THEN
12075 l_log_module := C_DEFAULT_MODULE||'.insert_sources_17';
12076 END IF;
12077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12078
12079 trace
12080 (p_msg => 'BEGIN of insert_sources_17'
12081 ,p_level => C_LEVEL_PROCEDURE
12082 ,p_module => l_log_module);
12083
12084 END IF;
12085
12086 -- select APPS owner
12087 SELECT oracle_username
12088 INTO p_apps_owner
12089 FROM fnd_oracle_userid
12090 WHERE read_only_flag = 'U'
12094 trace
12091 ;
12092
12093 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
12095 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
12096 ' - p_language = '||p_language||
12097 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
12098 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
12099 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
12100 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
12101 ,p_level => C_LEVEL_STATEMENT
12102 ,p_module => l_log_module);
12103 END IF;
12104
12105
12106 --
12107 INSERT INTO xla_diag_sources --hdr2
12108 (
12109 event_id
12110 , ledger_id
12111 , sla_ledger_id
12112 , description_language
12113 , object_name
12114 , object_type_code
12115 , line_number
12116 , source_application_id
12117 , source_type_code
12118 , source_code
12119 , source_value
12120 , source_meaning
12121 , created_by
12122 , creation_date
12123 , last_update_date
12124 , last_updated_by
12125 , last_update_login
12126 , program_update_date
12127 , program_application_id
12128 , program_id
12129 , request_id
12130 )
12131 SELECT
12132 event_id
12133 , p_target_ledger_id
12134 , p_sla_ledger_id
12135 , p_language
12136 , object_name
12137 , object_type_code
12138 , line_number
12139 , source_application_id
12140 , source_type_code
12141 , source_code
12142 , SUBSTR(source_value ,1,1996)
12143 , SUBSTR(source_meaning ,1,200)
12144 , xla_environment_pkg.g_Usr_Id
12145 , TRUNC(SYSDATE)
12146 , TRUNC(SYSDATE)
12147 , xla_environment_pkg.g_Usr_Id
12148 , xla_environment_pkg.g_Login_Id
12149 , TRUNC(SYSDATE)
12150 , xla_environment_pkg.g_Prog_Appl_Id
12151 , xla_environment_pkg.g_Prog_Id
12152 , xla_environment_pkg.g_Req_Id
12153 FROM (
12154 SELECT xet.event_id event_id
12155 , 0 line_number
12156 , CASE r
12157 WHEN 1 THEN 'PO_HEADERS_REF_V'
12158 WHEN 2 THEN 'CST_XLA_RCV_REF_V'
12159 WHEN 3 THEN 'CST_XLA_RCV_REF_V'
12160 WHEN 4 THEN 'CST_XLA_RCV_REF_V'
12161 WHEN 5 THEN 'CST_XLA_RCV_REF_V'
12162 WHEN 6 THEN 'CST_XLA_RCV_HEADERS_V'
12163 WHEN 7 THEN 'PO_DISTS_REF_V'
12164 WHEN 8 THEN 'CST_XLA_RCV_REF_V'
12165 WHEN 9 THEN 'CST_XLA_RCV_HEADERS_V'
12166 WHEN 10 THEN 'CST_XLA_RCV_REF_V'
12167 WHEN 11 THEN 'PO_HEADERS_REF_V'
12168 WHEN 12 THEN 'CST_XLA_RCV_REF_V'
12169 WHEN 13 THEN 'PSA_CST_XLA_PEA_UPG_V'
12170 WHEN 14 THEN 'CST_XLA_RCV_HEADERS_V'
12171
12172 ELSE null
12173 END object_name
12174 , CASE r
12175 WHEN 1 THEN 'HEADER'
12176 WHEN 2 THEN 'HEADER'
12177 WHEN 3 THEN 'HEADER'
12178 WHEN 4 THEN 'HEADER'
12179 WHEN 5 THEN 'HEADER'
12180 WHEN 6 THEN 'HEADER'
12181 WHEN 7 THEN 'HEADER'
12182 WHEN 8 THEN 'HEADER'
12183 WHEN 9 THEN 'HEADER'
12184 WHEN 10 THEN 'HEADER'
12185 WHEN 11 THEN 'HEADER'
12186 WHEN 12 THEN 'HEADER'
12187 WHEN 13 THEN 'HEADER'
12188 WHEN 14 THEN 'HEADER'
12189
12190 ELSE null
12191 END object_type_code
12192 , CASE r
12193 WHEN 1 THEN '201'
12194 WHEN 2 THEN '707'
12195 WHEN 3 THEN '707'
12196 WHEN 4 THEN '707'
12197 WHEN 5 THEN '707'
12198 WHEN 6 THEN '707'
12199 WHEN 7 THEN '201'
12200 WHEN 8 THEN '707'
12201 WHEN 9 THEN '707'
12202 WHEN 10 THEN '707'
12203 WHEN 11 THEN '201'
12204 WHEN 12 THEN '707'
12205 WHEN 13 THEN '707'
12206 WHEN 14 THEN '707'
12207
12208 ELSE null
12209 END source_application_id
12210 , 'S' source_type_code
12211 , CASE r
12212 WHEN 1 THEN 'PURCH_ENCUMBRANCE_FLAG'
12213 WHEN 2 THEN 'APPLIED_TO_APPL_ID'
12214 WHEN 3 THEN 'APPLIED_TO_DIST_LINK_TYPE'
12215 WHEN 4 THEN 'APPLIED_TO_ENTITY_CODE'
12216 WHEN 5 THEN 'APPLIED_TO_PO_DOC_ID'
12217 WHEN 6 THEN 'DISTRIBUTION_TYPE'
12218 WHEN 7 THEN 'PO_BUDGET_ACCOUNT'
12219 WHEN 8 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
12220 WHEN 9 THEN 'CURRENCY_CODE'
12221 WHEN 10 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
12222 WHEN 11 THEN 'PURCH_ENCUMBRANCE_TYPE_ID'
12223 WHEN 12 THEN 'PO_DISTRIBUTION_ID'
12224 WHEN 13 THEN 'CST_PEA_ENC_UPG_OPTION'
12228 END source_code
12225 WHEN 14 THEN 'TRANSFER_TO_GL_INDICATOR'
12226
12227 ELSE null
12229 , CASE r
12230 WHEN 1 THEN TO_CHAR(h5.PURCH_ENCUMBRANCE_FLAG)
12231 WHEN 2 THEN TO_CHAR(h3.APPLIED_TO_APPL_ID)
12232 WHEN 3 THEN TO_CHAR(h3.APPLIED_TO_DIST_LINK_TYPE)
12233 WHEN 4 THEN TO_CHAR(h3.APPLIED_TO_ENTITY_CODE)
12234 WHEN 5 THEN TO_CHAR(h3.APPLIED_TO_PO_DOC_ID)
12235 WHEN 6 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
12236 WHEN 7 THEN TO_CHAR(h4.PO_BUDGET_ACCOUNT)
12237 WHEN 8 THEN TO_CHAR(h3.ENCUM_REVERSAL_AMOUNT_ENTERED)
12238 WHEN 9 THEN TO_CHAR(h1.CURRENCY_CODE)
12239 WHEN 10 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_AMOUNT)
12240 WHEN 11 THEN TO_CHAR(h5.PURCH_ENCUMBRANCE_TYPE_ID)
12241 WHEN 12 THEN TO_CHAR(h3.PO_DISTRIBUTION_ID)
12242 WHEN 13 THEN TO_CHAR(h6.CST_PEA_ENC_UPG_OPTION)
12243 WHEN 14 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
12244
12245 ELSE null
12246 END source_value
12247 , CASE r
12248 WHEN 6 THEN fvl13.meaning
12249 WHEN 14 THEN fvl37.meaning
12250
12251 ELSE null
12252 END source_meaning
12253 FROM xla_events_gt xet
12254 , CST_XLA_RCV_HEADERS_V h1
12255 , CST_XLA_RCV_REF_V h3
12256 , PO_DISTS_REF_V h4
12257 , PO_HEADERS_REF_V h5
12258 , PSA_CST_XLA_PEA_UPG_V h6
12259 , fnd_lookup_values fvl13
12260 , fnd_lookup_values fvl37
12261 ,(select rownum r from all_objects where rownum <= 14 and owner = p_apps_owner)
12262 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
12263 AND xet.event_class_code = C_EVENT_CLASS_CODE
12264 AND h1.event_id = xet.event_id
12265 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 fvl13.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
12266 AND fvl13.lookup_code(+) = h1.DISTRIBUTION_TYPE
12267 AND fvl13.view_application_id(+) = 700
12268 AND fvl13.language(+) = USERENV('LANG')
12269 AND fvl37.lookup_type(+) = 'YES_NO'
12270 AND fvl37.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
12271 AND fvl37.view_application_id(+) = 0
12272 AND fvl37.language(+) = USERENV('LANG')
12273
12274 )
12275 ;
12276 --
12277 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
12278
12279 trace
12280 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
12281 ,p_level => C_LEVEL_STATEMENT
12282 ,p_module => l_log_module);
12283
12284 END IF;
12285 --
12286
12287
12288
12289 --
12290 INSERT INTO xla_diag_sources --line2
12291 (
12292 event_id
12293 , ledger_id
12294 , sla_ledger_id
12295 , description_language
12296 , object_name
12297 , object_type_code
12298 , line_number
12299 , source_application_id
12300 , source_type_code
12301 , source_code
12302 , source_value
12303 , source_meaning
12304 , created_by
12305 , creation_date
12306 , last_update_date
12307 , last_updated_by
12308 , last_update_login
12309 , program_update_date
12310 , program_application_id
12311 , program_id
12312 , request_id
12313 )
12314 SELECT event_id
12315 , p_target_ledger_id
12316 , p_sla_ledger_id
12317 , p_language
12318 , object_name
12319 , object_type_code
12320 , line_number
12321 , source_application_id
12322 , source_type_code
12323 , source_code
12324 , SUBSTR(source_value,1,1996)
12325 , SUBSTR(source_meaning ,1,200)
12326 , xla_environment_pkg.g_Usr_Id
12327 , TRUNC(SYSDATE)
12328 , TRUNC(SYSDATE)
12329 , xla_environment_pkg.g_Usr_Id
12330 , xla_environment_pkg.g_Login_Id
12331 , TRUNC(SYSDATE)
12332 , xla_environment_pkg.g_Prog_Appl_Id
12333 , xla_environment_pkg.g_Prog_Id
12334 , xla_environment_pkg.g_Req_Id
12335 FROM (
12336 SELECT xet.event_id event_id
12337 , l2.line_number line_number
12338 , CASE r
12339 WHEN 1 THEN 'CST_XLA_RCV_LINES_V'
12340 WHEN 2 THEN 'CST_XLA_RCV_LINES_V'
12341
12342 ELSE null
12343 END object_name
12344 , CASE r
12345 WHEN 1 THEN 'LINE'
12346 WHEN 2 THEN 'LINE'
12347
12348 ELSE null
12349 END object_type_code
12350 , CASE r
12351 WHEN 1 THEN '707'
12352 WHEN 2 THEN '707'
12353
12354 ELSE null
12355 END source_application_id
12359 WHEN 2 THEN 'RCV_ACCOUNTING_LINE_TYPE'
12356 , 'S' source_type_code
12357 , CASE r
12358 WHEN 1 THEN 'DISTRIBUTION_IDENTIFIER'
12360
12361 ELSE null
12362 END source_code
12363 , CASE r
12364 WHEN 1 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
12365 WHEN 2 THEN TO_CHAR(l2.RCV_ACCOUNTING_LINE_TYPE)
12366
12367 ELSE null
12368 END source_value
12369 , null source_meaning
12370 FROM xla_events_gt xet
12371 , CST_XLA_RCV_LINES_V l2
12372 , (select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
12373 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
12374 AND xet.event_class_code = C_EVENT_CLASS_CODE
12375 AND l2.event_id = xet.event_id
12376
12377 )
12378 ;
12379 --
12380 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
12381
12382 trace
12383 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
12384 ,p_level => C_LEVEL_STATEMENT
12385 ,p_module => l_log_module);
12386
12387 END IF;
12388
12389
12390 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12391 trace
12392 (p_msg => 'END of insert_sources_17'
12393 ,p_level => C_LEVEL_PROCEDURE
12394 ,p_module => l_log_module);
12395 END IF;
12396 EXCEPTION
12397 WHEN xla_exceptions_pkg.application_exception THEN
12398 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
12399 trace
12400 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
12401 ,p_level => C_LEVEL_EXCEPTION
12402 ,p_module => l_log_module);
12403 END IF;
12404 RAISE;
12405 WHEN OTHERS THEN
12406 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
12407 trace
12408 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
12409 ,p_level => C_LEVEL_EXCEPTION
12410 ,p_module => l_log_module);
12411 END IF;
12412 xla_exceptions_pkg.raise_message
12413 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.insert_sources_17');
12414 END insert_sources_17;
12415 --
12416
12417 ---------------------------------------
12418 --
12419 -- PRIVATE FUNCTION
12420 -- EventClass_17
12421 --
12422 ----------------------------------------
12423 --
12424 FUNCTION EventClass_17
12425 (p_application_id IN NUMBER
12426 ,p_base_ledger_id IN NUMBER
12427 ,p_target_ledger_id IN NUMBER
12428 ,p_language IN VARCHAR2
12429 ,p_currency_code IN VARCHAR2
12430 ,p_sla_ledger_id IN NUMBER
12431 ,p_pad_start_date IN DATE
12432 ,p_pad_end_date IN DATE
12433 ,p_primary_ledger_id IN NUMBER)
12434 RETURN BOOLEAN IS
12435 --
12436 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PERIOD_END_ACCRUAL_ALL';
12437 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PERIOD_END_ACCRUAL';
12438
12439 l_calculate_acctd_flag VARCHAR2(1) :='N';
12440 l_calculate_g_l_flag VARCHAR2(1) :='N';
12441 --
12442 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
12443 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
12444 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12445 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
12446 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
12447 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12448 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12449 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
12450 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
12451 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
12452 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
12453 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
12454 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
12455 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
12456 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
12457 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
12458 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
12459 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
12460 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
12461 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
12462 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
12463 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
12464 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
12465 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12466 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
12470 l_previous_event_id NUMBER;
12467 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
12468
12469 l_event_id NUMBER;
12471 l_first_event_id NUMBER;
12472 l_last_event_id NUMBER;
12473
12474 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
12475 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12476 --
12477 --
12478 l_result BOOLEAN := TRUE;
12479 l_rows NUMBER := 1000;
12480 l_event_type_name VARCHAR2(80) := 'All';
12481 l_event_class_name VARCHAR2(80) := 'Period End Accrual';
12482 l_description VARCHAR2(4000);
12483 l_transaction_reversal NUMBER;
12484 l_ae_header_id NUMBER;
12485 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
12486 l_log_module VARCHAR2(240);
12487 --
12488 l_acct_reversal_source VARCHAR2(30);
12489 l_trx_reversal_source VARCHAR2(30);
12490
12491 l_continue_with_lines BOOLEAN := TRUE;
12492 --
12493 l_acc_rev_gl_date_source DATE; -- 4262811
12494 --
12495 type t_array_event_id is table of number index by binary_integer;
12496
12497 l_rec_array_event t_rec_array_event;
12498 l_null_rec_array_event t_rec_array_event;
12499 l_array_ae_header_id xla_number_array_type;
12500 l_actual_flag VARCHAR2(1) := NULL;
12501 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
12502 l_balance_type_code VARCHAR2(1) :=NULL;
12503 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
12504
12505 --
12506 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
12507 --
12508
12509 TYPE t_array_source_2 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
12510 TYPE t_array_source_7 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
12511 TYPE t_array_source_8 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
12512 TYPE t_array_source_9 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
12513 TYPE t_array_source_11 IS TABLE OF CST_XLA_RCV_REF_V.APPLIED_TO_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
12514 TYPE t_array_source_13 IS TABLE OF CST_XLA_RCV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
12515 TYPE t_array_source_14 IS TABLE OF PO_DISTS_REF_V.PO_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
12516 TYPE t_array_source_15 IS TABLE OF CST_XLA_RCV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
12517 TYPE t_array_source_16 IS TABLE OF CST_XLA_RCV_HEADERS_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
12518 TYPE t_array_source_17 IS TABLE OF CST_XLA_RCV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
12519 TYPE t_array_source_19 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
12520 TYPE t_array_source_26 IS TABLE OF CST_XLA_RCV_REF_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
12521 TYPE t_array_source_27 IS TABLE OF PSA_CST_XLA_PEA_UPG_V.CST_PEA_ENC_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
12522 TYPE t_array_source_37 IS TABLE OF CST_XLA_RCV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
12523
12524 TYPE t_array_source_12 IS TABLE OF CST_XLA_RCV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
12525 TYPE t_array_source_25 IS TABLE OF CST_XLA_RCV_LINES_V.RCV_ACCOUNTING_LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
12526
12527 l_array_source_2 t_array_source_2;
12528 l_array_source_7 t_array_source_7;
12529 l_array_source_8 t_array_source_8;
12530 l_array_source_9 t_array_source_9;
12531 l_array_source_11 t_array_source_11;
12532 l_array_source_13 t_array_source_13;
12533 l_array_source_13_meaning t_array_lookup_meaning;
12534 l_array_source_14 t_array_source_14;
12535 l_array_source_15 t_array_source_15;
12536 l_array_source_16 t_array_source_16;
12537 l_array_source_17 t_array_source_17;
12538 l_array_source_19 t_array_source_19;
12539 l_array_source_26 t_array_source_26;
12540 l_array_source_27 t_array_source_27;
12541 l_array_source_37 t_array_source_37;
12542 l_array_source_37_meaning t_array_lookup_meaning;
12543
12544 l_array_source_12 t_array_source_12;
12545 l_array_source_25 t_array_source_25;
12546
12547 --
12548 CURSOR header_cur
12549 IS
12550 SELECT /*+ leading(xet) cardinality(xet,1) */
12551 -- Event Class Code: PERIOD_END_ACCRUAL
12552 xet.entity_id
12553 ,xet.legal_entity_id
12554 ,xet.entity_code
12555 ,xet.transaction_number
12556 ,xet.event_id
12557 ,xet.event_class_code
12558 ,xet.event_type_code
12559 ,xet.event_number
12560 ,xet.event_date
12561 ,xet.transaction_date
12562 ,xet.reference_num_1
12563 ,xet.reference_num_2
12564 ,xet.reference_num_3
12565 ,xet.reference_num_4
12566 ,xet.reference_char_1
12567 ,xet.reference_char_2
12568 ,xet.reference_char_3
12569 ,xet.reference_char_4
12570 ,xet.reference_date_1
12571 ,xet.reference_date_2
12572 ,xet.reference_date_3
12573 ,xet.reference_date_4
12574 ,xet.event_created_by
12575 ,xet.budgetary_control_flag
12576 , h5.PURCH_ENCUMBRANCE_FLAG source_2
12577 , h3.APPLIED_TO_APPL_ID source_7
12581 , h1.DISTRIBUTION_TYPE source_13
12578 , h3.APPLIED_TO_DIST_LINK_TYPE source_8
12579 , h3.APPLIED_TO_ENTITY_CODE source_9
12580 , h3.APPLIED_TO_PO_DOC_ID source_11
12582 , fvl13.meaning source_13_meaning
12583 , h4.PO_BUDGET_ACCOUNT source_14
12584 , h3.ENCUM_REVERSAL_AMOUNT_ENTERED source_15
12585 , h1.CURRENCY_CODE source_16
12586 , h3.ENCUMBRANCE_REVERSAL_AMOUNT source_17
12587 , h5.PURCH_ENCUMBRANCE_TYPE_ID source_19
12588 , h3.PO_DISTRIBUTION_ID source_26
12589 , h6.CST_PEA_ENC_UPG_OPTION source_27
12590 , h1.TRANSFER_TO_GL_INDICATOR source_37
12591 , fvl37.meaning source_37_meaning
12592 FROM xla_events_gt xet
12593 , CST_XLA_RCV_HEADERS_V h1
12594 , CST_XLA_RCV_REF_V h3
12595 , PO_DISTS_REF_V h4
12596 , PO_HEADERS_REF_V h5
12597 , PSA_CST_XLA_PEA_UPG_V h6
12598 , fnd_lookup_values fvl13
12599 , fnd_lookup_values fvl37
12600 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
12601 and xet.event_class_code = C_EVENT_CLASS_CODE
12602 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
12603 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 fvl13.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
12604 AND fvl13.lookup_code(+) = h1.DISTRIBUTION_TYPE
12605 AND fvl13.view_application_id(+) = 700
12606 AND fvl13.language(+) = USERENV('LANG')
12607 AND fvl37.lookup_type(+) = 'YES_NO'
12608 AND fvl37.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
12609 AND fvl37.view_application_id(+) = 0
12610 AND fvl37.language(+) = USERENV('LANG')
12611
12612 ORDER BY event_id
12613 ;
12614
12615
12616 --
12617 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
12618 IS
12619 SELECT /*+ leading(xet) cardinality(xet,1) */
12620 -- Event Class Code: PERIOD_END_ACCRUAL
12621 xet.entity_id
12622 ,xet.legal_entity_id
12623 ,xet.entity_code
12624 ,xet.transaction_number
12625 ,xet.event_id
12626 ,xet.event_class_code
12627 ,xet.event_type_code
12628 ,xet.event_number
12629 ,xet.event_date
12630 ,xet.transaction_date
12631 ,xet.reference_num_1
12632 ,xet.reference_num_2
12633 ,xet.reference_num_3
12634 ,xet.reference_num_4
12635 ,xet.reference_char_1
12636 ,xet.reference_char_2
12637 ,xet.reference_char_3
12638 ,xet.reference_char_4
12639 ,xet.reference_date_1
12640 ,xet.reference_date_2
12641 ,xet.reference_date_3
12642 ,xet.reference_date_4
12643 ,xet.event_created_by
12644 ,xet.budgetary_control_flag
12645 , l2.LINE_NUMBER
12646 , l2.DISTRIBUTION_IDENTIFIER source_12
12647 , l2.RCV_ACCOUNTING_LINE_TYPE source_25
12648 FROM xla_events_gt xet
12649 , CST_XLA_RCV_LINES_V l2
12650 WHERE xet.event_id between x_first_event_id and x_last_event_id
12651 and xet.event_date between p_pad_start_date and p_pad_end_date
12652 and xet.event_class_code = C_EVENT_CLASS_CODE
12653 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
12654 ;
12655
12656 --
12657 BEGIN
12658 IF g_log_enabled THEN
12659 l_log_module := C_DEFAULT_MODULE||'.EventClass_17';
12660 END IF;
12661 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12662 trace
12663 (p_msg => 'BEGIN of EventClass_17'
12664 ,p_level => C_LEVEL_PROCEDURE
12665 ,p_module => l_log_module);
12666 END IF;
12667
12668 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
12669 trace
12670 (p_msg => 'p_application_id = '||p_application_id||
12671 ' - p_base_ledger_id = '||p_base_ledger_id||
12672 ' - p_target_ledger_id = '||p_target_ledger_id||
12673 ' - p_language = '||p_language||
12674 ' - p_currency_code = '||p_currency_code||
12675 ' - p_sla_ledger_id = '||p_sla_ledger_id
12676 ,p_level => C_LEVEL_STATEMENT
12677 ,p_module => l_log_module);
12678 END IF;
12679 --
12680 -- initialze arrays
12681 --
12682 g_array_event.DELETE;
12683 l_rec_array_event := l_null_rec_array_event;
12684 --
12685 --------------------------------------
12686 -- 4262811 Initialze MPA Line Number
12687 --------------------------------------
12688 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
12689
12690 --
12691
12692 --
12693 OPEN header_cur;
12694 --
12695 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
12696 trace
12697 (p_msg => 'SQL - FETCH header_cur'
12698 ,p_level => C_LEVEL_STATEMENT
12699 ,p_module => l_log_module);
12700 END IF;
12701 --
12702 LOOP
12703 FETCH header_cur BULK COLLECT INTO
12704 l_array_entity_id
12705 , l_array_legal_entity_id
12706 , l_array_entity_code
12707 , l_array_transaction_num
12708 , l_array_event_id
12709 , l_array_class_code
12710 , l_array_event_type
12711 , l_array_event_number
12712 , l_array_event_date
12713 , l_array_transaction_date
12714 , l_array_reference_num_1
12715 , l_array_reference_num_2
12716 , l_array_reference_num_3
12717 , l_array_reference_num_4
12721 , l_array_reference_char_4
12718 , l_array_reference_char_1
12719 , l_array_reference_char_2
12720 , l_array_reference_char_3
12722 , l_array_reference_date_1
12723 , l_array_reference_date_2
12724 , l_array_reference_date_3
12725 , l_array_reference_date_4
12726 , l_array_event_created_by
12727 , l_array_budgetary_control_flag
12728 , l_array_source_2
12729 , l_array_source_7
12730 , l_array_source_8
12731 , l_array_source_9
12732 , l_array_source_11
12733 , l_array_source_13
12734 , l_array_source_13_meaning
12735 , l_array_source_14
12736 , l_array_source_15
12737 , l_array_source_16
12738 , l_array_source_17
12739 , l_array_source_19
12740 , l_array_source_26
12741 , l_array_source_27
12742 , l_array_source_37
12743 , l_array_source_37_meaning
12744 LIMIT l_rows;
12745 --
12746 IF (C_LEVEL_EVENT >= g_log_level) THEN
12747 trace
12748 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
12749 ,p_level => C_LEVEL_EVENT
12750 ,p_module => l_log_module);
12751 END IF;
12752 --
12753 EXIT WHEN l_array_entity_id.COUNT = 0;
12754
12755 -- initialize arrays
12756 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
12757 XLA_AE_LINES_PKG.g_rec_lines := NULL;
12758
12759 --
12760 -- Bug 4458708
12761 --
12762 XLA_AE_LINES_PKG.g_LineNumber := 0;
12763
12764
12765 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
12766 g_last_hdr_idx := l_array_event_id.LAST;
12767 --
12768 -- loop for the headers. Each iteration is for each header extract row
12769 -- fetched in header cursor
12770 --
12771 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
12772
12773 --
12774 -- set event info as cache for other routines to refer event attributes
12775 --
12776 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
12777 (p_application_id => p_application_id
12778 ,p_primary_ledger_id => p_primary_ledger_id
12779 ,p_base_ledger_id => p_base_ledger_id
12780 ,p_target_ledger_id => p_target_ledger_id
12781 ,p_entity_id => l_array_entity_id(hdr_idx)
12782 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
12783 ,p_entity_code => l_array_entity_code(hdr_idx)
12784 ,p_transaction_num => l_array_transaction_num(hdr_idx)
12785 ,p_event_id => l_array_event_id(hdr_idx)
12786 ,p_event_class_code => l_array_class_code(hdr_idx)
12787 ,p_event_type_code => l_array_event_type(hdr_idx)
12788 ,p_event_number => l_array_event_number(hdr_idx)
12789 ,p_event_date => l_array_event_date(hdr_idx)
12790 ,p_transaction_date => l_array_transaction_date(hdr_idx)
12791 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
12792 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
12793 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
12794 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
12795 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
12796 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
12797 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
12798 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
12799 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
12800 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
12801 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
12802 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
12803 ,p_event_created_by => l_array_event_created_by(hdr_idx)
12804 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
12805
12806 --
12807 -- set the status of entry to C_VALID (0)
12808 --
12809 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
12810
12811 --
12812 -- initialize a row for ae header
12813 --
12814 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
12815
12816 l_event_id := l_array_event_id(hdr_idx);
12817
12818 --
12819 -- storing the hdr_idx for event. May be used by line cursor.
12820 --
12821 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
12822
12823 --
12824 -- store sources from header extract. This can be improved to
12825 -- store only those sources from header extract that may be used in lines
12826 --
12827
12828 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
12829 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
12830 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
12831 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
12832 g_array_event(l_event_id).array_value_num('source_11') := l_array_source_11(hdr_idx);
12833 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
12834 g_array_event(l_event_id).array_value_char('source_13_meaning') := l_array_source_13_meaning(hdr_idx);
12835 g_array_event(l_event_id).array_value_num('source_14') := l_array_source_14(hdr_idx);
12836 g_array_event(l_event_id).array_value_num('source_15') := l_array_source_15(hdr_idx);
12837 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
12841 g_array_event(l_event_id).array_value_char('source_27') := l_array_source_27(hdr_idx);
12838 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
12839 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
12840 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
12842 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
12843 g_array_event(l_event_id).array_value_char('source_37_meaning') := l_array_source_37_meaning(hdr_idx);
12844
12845 --
12846 -- initilaize the status of ae headers for diffrent balance types
12847 -- the status is initialised to C_NOT_CREATED (2)
12848 --
12849 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
12850 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
12851 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
12852
12853 --
12854 -- call api to validate and store accounting attributes for header
12855 --
12856
12857 ------------------------------------------------------------
12858 -- Accrual Reversal : to get date for Standard Source (NONE)
12859 ------------------------------------------------------------
12860 l_acc_rev_gl_date_source := NULL;
12861
12862 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
12863 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_19');
12864 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
12865 l_rec_acct_attrs.array_date_value(2) :=
12866 xla_ae_sources_pkg.GetSystemSourceDate(
12867 p_source_code => 'XLA_REFERENCE_DATE_1'
12868 , p_source_type_code => 'Y'
12869 , p_source_application_id => 602
12870 );
12871 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
12872 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_37');
12873
12874
12875 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
12876
12877 XLA_AE_HEADER_PKG.SetJeCategoryName;
12878
12879 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
12880 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
12881 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
12882 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
12883 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
12884
12885
12886 -- No header level analytical criteria
12887
12888 --
12889 --accounting attribute enhancement, bug 3612931
12890 --
12891 l_trx_reversal_source := SUBSTR(NULL, 1,30);
12892
12893 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
12894 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
12895
12896 xla_accounting_err_pkg.build_message
12897 (p_appli_s_name => 'XLA'
12898 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
12899 ,p_token_1 => 'ACCT_ATTR_NAME'
12900 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
12901 ,p_token_2 => 'PRODUCT_NAME'
12902 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
12903 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
12904 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
12905 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
12906
12907 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
12908 --
12909 -- following sets the accounting attributes needed to reverse
12910 -- accounting for a distributeion
12911 --
12912 xla_ae_lines_pkg.SetTrxReversalAttrs
12913 (p_event_id => l_event_id
12914 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
12915 ,p_trx_reversal_source => l_trx_reversal_source);
12916
12917 END IF;
12918
12919
12920 ----------------------------------------------------------------
12921 -- 4262811 - update the header statuses to invalid in need be
12922 ----------------------------------------------------------------
12923 --
12924 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
12925
12926
12927 --
12928 -- Generate the accrual reversal headers
12929 --
12930 IF NVL(l_trx_reversal_source, 'N') = 'N' THEN
12931
12932
12933
12934 -- indicate that the accrual entry has a reversal entry
12935 XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag(hdr_idx) := 'Y';
12936
12937 --
12938 -- initialize a row for ae header
12939 --
12940 g_last_hdr_idx := g_last_hdr_idx + 1;
12941 XLA_AE_HEADER_PKG.CopyHeaderInfo (p_parent_hdr_idx => hdr_idx,
12942 p_hdr_idx => g_last_hdr_idx) ;
12943 XLA_AE_HEADER_PKG.g_rec_header_new.array_header_num (g_last_hdr_idx) := 1;
12944 XLA_AE_HEADER_PKG.g_rec_header_new.array_parent_header_id(g_last_hdr_idx) :=
12945 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx);
12946
12947 --
12948 -- record the index for the reversal entry, it will be used by the journal
12952
12949 -- line creation
12950 --
12951 g_array_event(l_event_id).array_value_num('acc_rev_header_index') := g_last_hdr_idx;
12953 --
12954 -- Populate the GL Date and override the GL date defined in the
12955 -- SetHdrAcctAttrs if necessary
12956 --
12957
12958 ---------------------- XLA_FIRST_DAY_NEXT_GL_PERIOD ----------------------
12959 XLA_AE_HEADER_PKG.g_rec_header_new.array_acc_rev_gl_date_option(g_last_hdr_idx) := 'XLA_FIRST_DAY_NEXT_GL_PERIOD';
12960 XLA_AE_HEADER_PKG.GetAccrualRevDate(g_last_hdr_idx
12961 ,XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(g_last_hdr_idx)
12962 ,XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
12963 ,XLA_AE_HEADER_PKG.g_rec_header_new.array_acc_rev_gl_date_option(g_last_hdr_idx));
12964
12965
12966 --
12967 -- Update the header status
12968 --
12969 XLA_AE_JOURNAL_ENTRY_PKG.updateJournalEntryStatus (p_hdr_idx => g_last_hdr_idx);
12970
12971
12972
12973 END IF;
12974
12975
12976 ----------------------------------------------------------------
12977
12978 --
12979 -- this ends the header loop iteration for one bulk fetch
12980 --
12981 END LOOP;
12982
12983 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
12984 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
12985
12986 --
12987 -- insert dummy rows into lines gt table that were created due to
12988 -- transaction reversals
12989 --
12990 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
12991 l_result := XLA_AE_LINES_PKG.InsertLines;
12992 END IF;
12993
12994 --
12995 -- reset the temp_line_num for each set of events fetched from header
12996 -- cursor rather than doing it for each new event in line cursor
12997 -- Bug 3939231
12998 --
12999 xla_ae_lines_pkg.g_temp_line_num := 0;
13000
13001
13002
13003 --
13004 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
13005 --
13006 --
13007 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13008
13009 trace
13010 (p_msg => 'SQL - FETCH line_cur'
13011 ,p_level => C_LEVEL_STATEMENT
13012 ,p_module => l_log_module);
13013
13014 END IF;
13015 --
13016 --
13017 LOOP
13018 --
13019 FETCH line_cur BULK COLLECT INTO
13020 l_array_entity_id
13021 , l_array_legal_entity_id
13022 , l_array_entity_code
13023 , l_array_transaction_num
13024 , l_array_event_id
13025 , l_array_class_code
13026 , l_array_event_type
13027 , l_array_event_number
13028 , l_array_event_date
13029 , l_array_transaction_date
13030 , l_array_reference_num_1
13031 , l_array_reference_num_2
13032 , l_array_reference_num_3
13033 , l_array_reference_num_4
13034 , l_array_reference_char_1
13035 , l_array_reference_char_2
13036 , l_array_reference_char_3
13037 , l_array_reference_char_4
13038 , l_array_reference_date_1
13039 , l_array_reference_date_2
13040 , l_array_reference_date_3
13041 , l_array_reference_date_4
13042 , l_array_event_created_by
13043 , l_array_budgetary_control_flag
13044 , l_array_extract_line_num
13045 , l_array_source_12
13046 , l_array_source_25
13047 LIMIT l_rows;
13048
13049 --
13050 IF (C_LEVEL_EVENT >= g_log_level) THEN
13051 trace
13052 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
13053 ,p_level => C_LEVEL_EVENT
13054 ,p_module => l_log_module);
13055 END IF;
13056 --
13057 EXIT WHEN l_array_entity_id.count = 0;
13058
13059 XLA_AE_LINES_PKG.g_rec_lines := null;
13060
13061 --
13062 -- Bug 4458708
13063 --
13064 XLA_AE_LINES_PKG.g_LineNumber := 0;
13065 --
13066 --
13067
13068 FOR Idx IN 1..l_array_event_id.count LOOP
13069 --
13070 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
13071 --
13072 l_event_id := l_array_event_id(idx); -- 5648433
13073
13074 --
13075 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
13076 --
13077
13078 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
13079 (g_array_event(l_event_id).array_value_num('header_index'))
13080 ,'N'
13081 ) <> 'Y'
13082 THEN
13083 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13084 trace
13085 (p_msg => 'Trancaction revesal option is not Y '
13086 ,p_level => C_LEVEL_STATEMENT
13087 ,p_module => l_log_module);
13088 END IF;
13089
13090 --
13091 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
13092 --
13093 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
13094 --
13095 -- set event info as cache for other routines to refer event attributes
13096 --
13097
13098 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
13099 l_previous_event_id := l_event_id;
13100
13104 ,p_base_ledger_id => p_base_ledger_id
13101 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
13102 (p_application_id => p_application_id
13103 ,p_primary_ledger_id => p_primary_ledger_id
13105 ,p_target_ledger_id => p_target_ledger_id
13106 ,p_entity_id => l_array_entity_id(Idx)
13107 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
13108 ,p_entity_code => l_array_entity_code(Idx)
13109 ,p_transaction_num => l_array_transaction_num(Idx)
13110 ,p_event_id => l_array_event_id(Idx)
13111 ,p_event_class_code => l_array_class_code(Idx)
13112 ,p_event_type_code => l_array_event_type(Idx)
13113 ,p_event_number => l_array_event_number(Idx)
13114 ,p_event_date => l_array_event_date(Idx)
13115 ,p_transaction_date => l_array_transaction_date(Idx)
13116 ,p_reference_num_1 => l_array_reference_num_1(Idx)
13117 ,p_reference_num_2 => l_array_reference_num_2(Idx)
13118 ,p_reference_num_3 => l_array_reference_num_3(Idx)
13119 ,p_reference_num_4 => l_array_reference_num_4(Idx)
13120 ,p_reference_char_1 => l_array_reference_char_1(Idx)
13121 ,p_reference_char_2 => l_array_reference_char_2(Idx)
13122 ,p_reference_char_3 => l_array_reference_char_3(Idx)
13123 ,p_reference_char_4 => l_array_reference_char_4(Idx)
13124 ,p_reference_date_1 => l_array_reference_date_1(Idx)
13125 ,p_reference_date_2 => l_array_reference_date_2(Idx)
13126 ,p_reference_date_3 => l_array_reference_date_3(Idx)
13127 ,p_reference_date_4 => l_array_reference_date_4(Idx)
13128 ,p_event_created_by => l_array_event_created_by(Idx)
13129 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
13130 --
13131 END IF;
13132
13133
13134
13135 --
13136 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
13137
13138 l_acct_reversal_source := SUBSTR(NULL, 1,30);
13139
13140 IF l_continue_with_lines THEN
13141 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
13142 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
13143
13144 xla_accounting_err_pkg.build_message
13145 (p_appli_s_name => 'XLA'
13146 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
13147 ,p_token_1 => 'LINE_NUMBER'
13148 ,p_value_1 => l_array_extract_line_num(Idx)
13149 ,p_token_2 => 'PRODUCT_NAME'
13150 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
13151 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
13152 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
13153 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
13154
13155 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
13156 --
13157 -- following sets the accounting attributes needed to reverse
13158 -- accounting for a distributeion
13159 --
13160
13161 --
13162 -- 5217187
13163 --
13164 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
13165 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
13166 g_array_event(l_event_id).array_value_num('header_index'));
13167 --
13168 --
13169
13170 -- No reversal code generated
13171
13172 xla_ae_lines_pkg.SetAcctReversalAttrs
13173 (p_event_id => l_event_id
13174 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
13175 ,p_calculate_acctd_flag => l_calculate_acctd_flag
13176 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
13177 END IF;
13178
13179 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
13180 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
13181
13182 --
13183 AcctLineType_8 (
13184 p_application_id => p_application_id
13185 ,p_event_id => l_event_id
13186 ,p_calculate_acctd_flag => l_calculate_acctd_flag
13187 ,p_calculate_g_l_flag => l_calculate_g_l_flag
13188 ,p_actual_flag => l_actual_flag
13189 ,p_balance_type_code => l_balance_type_code
13190 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
13191
13192 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
13193 , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
13194 , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
13195 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
13196 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
13197 , p_source_12 => l_array_source_12(Idx)
13198 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
13199 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
13200 , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
13201 , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
13202 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
13203 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
13204 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
13205 , p_source_25 => l_array_source_25(Idx)
13206 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
13210 l_actual_gain_loss_ref := l_gain_or_loss_ref;
13207 , p_source_27 => g_array_event(l_event_id).array_value_char('source_27')
13208 );
13209 If(l_balance_type_code = 'A') THEN
13211 END IF;
13212
13213 --
13214
13215 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
13216 -- or secondary ledger that has different currency with primary
13217 -- or alc that is calculated by sla
13218 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
13219 (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'))
13220
13221 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
13222 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
13223 AND (l_actual_flag = 'A')) THEN
13224 XLA_AE_LINES_PKG.CreateGainOrLossLines(
13225 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
13226 ,p_application_id => p_application_id
13227 ,p_amb_context_code => 'DEFAULT'
13228 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
13229 ,p_event_class_code => C_EVENT_CLASS_CODE
13230 ,p_event_type_code => C_EVENT_TYPE_CODE
13231
13232 ,p_gain_ccid => -1
13233 ,p_loss_ccid => -1
13234
13235 ,p_actual_flag => l_actual_flag
13236 ,p_enc_flag => null
13237 ,p_actual_g_l_ref => l_actual_gain_loss_ref
13238 ,p_enc_g_l_ref => null
13239 );
13240 END IF;
13241 END IF;
13242 END IF;
13243
13244 ELSE
13245 --
13246 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
13247 --
13248 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13249 trace
13250 (p_msg => 'Trancaction revesal option is Y'
13251 ,p_level => C_LEVEL_STATEMENT
13252 ,p_module => l_log_module);
13253 END IF;
13254 END IF;
13255
13256 END LOOP;
13257 l_result := XLA_AE_LINES_PKG.InsertLines ;
13258 end loop;
13259 close line_cur;
13260
13261
13262 --
13263 -- insert headers into xla_ae_headers_gt table
13264 --
13265 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
13266
13267 -- insert into errors table here.
13268
13269 END LOOP;
13270
13271 --
13272 -- 4865292
13273 --
13274 -- Compare g_hdr_extract_count with event count in
13275 -- CreateHeadersAndLines.
13276 --
13277 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
13278
13279 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13280 trace (p_msg => '# rows extracted from header extract objects '
13281 || ' (running total): '
13282 || g_hdr_extract_count
13283 ,p_level => C_LEVEL_STATEMENT
13284 ,p_module => l_log_module);
13285 END IF;
13286
13287 CLOSE header_cur;
13288 --
13289
13290 --
13291 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13292 trace
13293 (p_msg => 'END of EventClass_17'
13294 ,p_level => C_LEVEL_PROCEDURE
13295 ,p_module => l_log_module);
13296 END IF;
13297 --
13298 RETURN l_result;
13299 EXCEPTION
13300 WHEN xla_exceptions_pkg.application_exception THEN
13301
13302 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
13303
13304
13305 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
13306
13307 RAISE;
13308
13309 WHEN NO_DATA_FOUND THEN
13310
13311 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
13312 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
13313
13314 FOR header_record IN header_cur
13315 LOOP
13316 l_array_header_events(header_record.event_id) := header_record.event_id;
13317 END LOOP;
13318
13319 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
13320 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
13321
13322 fnd_file.put_line(fnd_file.LOG, ' ');
13323 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
13324 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
13325 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
13326
13327 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
13328 LOOP
13329 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
13330 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
13331 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
13332 END IF;
13333 END LOOP;
13334
13335 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
13336 fnd_file.put_line(fnd_file.LOG, ' ');
13337
13338
13339 xla_exceptions_pkg.raise_message
13340 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.EventClass_17');
13341
13342
13343 WHEN OTHERS THEN
13344 xla_exceptions_pkg.raise_message
13345 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.EventClass_17');
13349 ---------------------------------------
13346 END EventClass_17;
13347 --
13348
13350 --
13351 -- PRIVATE PROCEDURE
13352 -- insert_sources_18
13353 --
13354 ----------------------------------------
13355 --
13356 PROCEDURE insert_sources_18(
13357 p_target_ledger_id IN NUMBER
13358 , p_language IN VARCHAR2
13359 , p_sla_ledger_id IN NUMBER
13360 , p_pad_start_date IN DATE
13361 , p_pad_end_date IN DATE
13362 )
13363 IS
13364
13365 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER_ALL';
13366 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER';
13367 p_apps_owner VARCHAR2(30);
13368 l_log_module VARCHAR2(240);
13369 BEGIN
13370 IF g_log_enabled THEN
13371 l_log_module := C_DEFAULT_MODULE||'.insert_sources_18';
13372 END IF;
13373 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13374
13375 trace
13376 (p_msg => 'BEGIN of insert_sources_18'
13377 ,p_level => C_LEVEL_PROCEDURE
13378 ,p_module => l_log_module);
13379
13380 END IF;
13381
13382 -- select APPS owner
13383 SELECT oracle_username
13384 INTO p_apps_owner
13385 FROM fnd_oracle_userid
13386 WHERE read_only_flag = 'U'
13387 ;
13388
13389 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13390 trace
13391 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
13392 ' - p_language = '||p_language||
13393 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
13394 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
13395 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
13396 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
13397 ,p_level => C_LEVEL_STATEMENT
13398 ,p_module => l_log_module);
13399 END IF;
13400
13401
13402 --
13403 INSERT INTO xla_diag_sources --hdr2
13404 (
13405 event_id
13406 , ledger_id
13407 , sla_ledger_id
13408 , description_language
13409 , object_name
13410 , object_type_code
13411 , line_number
13412 , source_application_id
13413 , source_type_code
13414 , source_code
13415 , source_value
13416 , source_meaning
13417 , created_by
13418 , creation_date
13419 , last_update_date
13420 , last_updated_by
13421 , last_update_login
13422 , program_update_date
13423 , program_application_id
13424 , program_id
13425 , request_id
13426 )
13427 SELECT
13428 event_id
13429 , p_target_ledger_id
13430 , p_sla_ledger_id
13431 , p_language
13432 , object_name
13433 , object_type_code
13434 , line_number
13435 , source_application_id
13436 , source_type_code
13437 , source_code
13438 , SUBSTR(source_value ,1,1996)
13439 , SUBSTR(source_meaning ,1,200)
13440 , xla_environment_pkg.g_Usr_Id
13441 , TRUNC(SYSDATE)
13442 , TRUNC(SYSDATE)
13443 , xla_environment_pkg.g_Usr_Id
13444 , xla_environment_pkg.g_Login_Id
13445 , TRUNC(SYSDATE)
13446 , xla_environment_pkg.g_Prog_Appl_Id
13447 , xla_environment_pkg.g_Prog_Id
13448 , xla_environment_pkg.g_Req_Id
13449 FROM (
13450 SELECT xet.event_id event_id
13451 , 0 line_number
13452 , CASE r
13453 WHEN 1 THEN 'PO_HEADERS_REF_V'
13454 WHEN 2 THEN 'PO_DISTS_REF_V'
13455 WHEN 3 THEN 'CST_XLA_INV_ORG_PARAMS_REF_V'
13456 WHEN 4 THEN 'CST_XLA_INV_REF_V'
13457 WHEN 5 THEN 'CST_XLA_INV_REF_V'
13458 WHEN 6 THEN 'CST_XLA_INV_REF_V'
13459 WHEN 7 THEN 'CST_XLA_INV_REF_V'
13460 WHEN 8 THEN 'CST_XLA_INV_REF_V'
13461 WHEN 9 THEN 'CST_XLA_INV_HEADERS_V'
13462 WHEN 10 THEN 'PO_DISTS_REF_V'
13463 WHEN 11 THEN 'CST_XLA_INV_REF_V'
13464 WHEN 12 THEN 'CST_XLA_INV_REF_V'
13465 WHEN 13 THEN 'PSA_CST_XLA_UPG_V'
13466 WHEN 14 THEN 'PO_HEADERS_REF_V'
13467 WHEN 15 THEN 'CST_XLA_INV_HEADERS_V'
13468
13469 ELSE null
13470 END object_name
13471 , CASE r
13472 WHEN 1 THEN 'HEADER'
13473 WHEN 2 THEN 'HEADER'
13474 WHEN 3 THEN 'HEADER'
13475 WHEN 4 THEN 'HEADER'
13476 WHEN 5 THEN 'HEADER'
13477 WHEN 6 THEN 'HEADER'
13478 WHEN 7 THEN 'HEADER'
13479 WHEN 8 THEN 'HEADER'
13480 WHEN 9 THEN 'HEADER'
13481 WHEN 10 THEN 'HEADER'
13482 WHEN 11 THEN 'HEADER'
13483 WHEN 12 THEN 'HEADER'
13484 WHEN 13 THEN 'HEADER'
13485 WHEN 14 THEN 'HEADER'
13486 WHEN 15 THEN 'HEADER'
13487
13491 WHEN 1 THEN '201'
13488 ELSE null
13489 END object_type_code
13490 , CASE r
13492 WHEN 2 THEN '201'
13493 WHEN 3 THEN '707'
13494 WHEN 4 THEN '707'
13495 WHEN 5 THEN '707'
13496 WHEN 6 THEN '707'
13497 WHEN 7 THEN '707'
13498 WHEN 8 THEN '707'
13499 WHEN 9 THEN '707'
13500 WHEN 10 THEN '201'
13501 WHEN 11 THEN '707'
13502 WHEN 12 THEN '707'
13503 WHEN 13 THEN '707'
13504 WHEN 14 THEN '201'
13505 WHEN 15 THEN '707'
13506
13507 ELSE null
13508 END source_application_id
13509 , 'S' source_type_code
13510 , CASE r
13511 WHEN 1 THEN 'PURCH_ENCUMBRANCE_FLAG'
13512 WHEN 2 THEN 'RESERVED_FLAG'
13513 WHEN 3 THEN 'ENCUMBRANCE_REVERSAL_FLAG'
13514 WHEN 4 THEN 'APPLIED_TO_APPL_ID'
13515 WHEN 5 THEN 'APPLIED_TO_DIST_LINK_TYPE'
13516 WHEN 6 THEN 'APPLIED_TO_ENTITY_CODE'
13517 WHEN 7 THEN 'TXN_PO_DISTRIBUTION_ID'
13518 WHEN 8 THEN 'APPLIED_TO_PO_DOC_ID'
13519 WHEN 9 THEN 'DISTRIBUTION_TYPE'
13520 WHEN 10 THEN 'PO_BUDGET_ACCOUNT'
13521 WHEN 11 THEN 'ENCUM_REVERSAL_AMOUNT_ENTERED'
13522 WHEN 12 THEN 'ENCUMBRANCE_REVERSAL_AMOUNT'
13523 WHEN 13 THEN 'CST_ENCUM_UPG_OPTION'
13524 WHEN 14 THEN 'PURCH_ENCUMBRANCE_TYPE_ID'
13525 WHEN 15 THEN 'TRANSFER_TO_GL_INDICATOR'
13526
13527 ELSE null
13528 END source_code
13529 , CASE r
13530 WHEN 1 THEN TO_CHAR(h6.PURCH_ENCUMBRANCE_FLAG)
13531 WHEN 2 THEN TO_CHAR(h5.RESERVED_FLAG)
13532 WHEN 3 THEN TO_CHAR(h3.ENCUMBRANCE_REVERSAL_FLAG)
13533 WHEN 4 THEN TO_CHAR(h4.APPLIED_TO_APPL_ID)
13534 WHEN 5 THEN TO_CHAR(h4.APPLIED_TO_DIST_LINK_TYPE)
13535 WHEN 6 THEN TO_CHAR(h4.APPLIED_TO_ENTITY_CODE)
13536 WHEN 7 THEN TO_CHAR(h4.TXN_PO_DISTRIBUTION_ID)
13537 WHEN 8 THEN TO_CHAR(h4.APPLIED_TO_PO_DOC_ID)
13538 WHEN 9 THEN TO_CHAR(h1.DISTRIBUTION_TYPE)
13539 WHEN 10 THEN TO_CHAR(h5.PO_BUDGET_ACCOUNT)
13540 WHEN 11 THEN TO_CHAR(h4.ENCUM_REVERSAL_AMOUNT_ENTERED)
13541 WHEN 12 THEN TO_CHAR(h4.ENCUMBRANCE_REVERSAL_AMOUNT)
13542 WHEN 13 THEN TO_CHAR(h7.CST_ENCUM_UPG_OPTION)
13543 WHEN 14 THEN TO_CHAR(h6.PURCH_ENCUMBRANCE_TYPE_ID)
13544 WHEN 15 THEN TO_CHAR(h1.TRANSFER_TO_GL_INDICATOR)
13545
13546 ELSE null
13547 END source_value
13548 , CASE r
13549 WHEN 9 THEN fvl13.meaning
13550 WHEN 15 THEN fvl37.meaning
13551
13552 ELSE null
13553 END source_meaning
13554 FROM xla_events_gt xet
13555 , CST_XLA_INV_HEADERS_V h1
13556 , CST_XLA_INV_ORG_PARAMS_REF_V h3
13557 , CST_XLA_INV_REF_V h4
13558 , PO_DISTS_REF_V h5
13559 , PO_HEADERS_REF_V h6
13560 , PSA_CST_XLA_UPG_V h7
13561 , fnd_lookup_values fvl13
13562 , fnd_lookup_values fvl37
13563 ,(select rownum r from all_objects where rownum <= 15 and owner = p_apps_owner)
13564 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
13565 AND xet.event_class_code = C_EVENT_CLASS_CODE
13566 AND h1.event_id = xet.event_id
13567 AND h3.inv_organization_id (+) = h1.organization_id AND h4.ref_transaction_id = h1.transaction_id AND h4.txn_po_header_id = h5.po_header_id (+) and h4.txn_po_distribution_id = h5.po_distribution_id (+) AND h4.txn_po_header_id = h6.po_header_id (+) AND h4.rcv_transaction_id = h7.transaction_id (+) AND fvl13.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
13568 AND fvl13.lookup_code(+) = h1.DISTRIBUTION_TYPE
13569 AND fvl13.view_application_id(+) = 700
13570 AND fvl13.language(+) = USERENV('LANG')
13571 AND fvl37.lookup_type(+) = 'YES_NO'
13572 AND fvl37.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
13573 AND fvl37.view_application_id(+) = 0
13574 AND fvl37.language(+) = USERENV('LANG')
13575
13576 )
13577 ;
13578 --
13579 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13580
13581 trace
13582 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
13583 ,p_level => C_LEVEL_STATEMENT
13584 ,p_module => l_log_module);
13585
13586 END IF;
13587 --
13588
13589
13590
13591 --
13592 INSERT INTO xla_diag_sources --line2
13593 (
13594 event_id
13595 , ledger_id
13596 , sla_ledger_id
13597 , description_language
13598 , object_name
13599 , object_type_code
13600 , line_number
13601 , source_application_id
13602 , source_type_code
13603 , source_code
13604 , source_value
13608 , last_update_date
13605 , source_meaning
13606 , created_by
13607 , creation_date
13609 , last_updated_by
13610 , last_update_login
13611 , program_update_date
13612 , program_application_id
13613 , program_id
13614 , request_id
13615 )
13616 SELECT event_id
13617 , p_target_ledger_id
13618 , p_sla_ledger_id
13619 , p_language
13620 , object_name
13621 , object_type_code
13622 , line_number
13623 , source_application_id
13624 , source_type_code
13625 , source_code
13626 , SUBSTR(source_value,1,1996)
13627 , SUBSTR(source_meaning ,1,200)
13628 , xla_environment_pkg.g_Usr_Id
13629 , TRUNC(SYSDATE)
13630 , TRUNC(SYSDATE)
13631 , xla_environment_pkg.g_Usr_Id
13632 , xla_environment_pkg.g_Login_Id
13633 , TRUNC(SYSDATE)
13634 , xla_environment_pkg.g_Prog_Appl_Id
13635 , xla_environment_pkg.g_Prog_Id
13636 , xla_environment_pkg.g_Req_Id
13637 FROM (
13638 SELECT xet.event_id event_id
13639 , l2.line_number line_number
13640 , CASE r
13641 WHEN 1 THEN 'CST_XLA_INV_LINES_V'
13642 WHEN 2 THEN 'CST_XLA_INV_LINES_V'
13643 WHEN 3 THEN 'CST_XLA_INV_LINES_V'
13644
13645 ELSE null
13646 END object_name
13647 , CASE r
13648 WHEN 1 THEN 'LINE'
13649 WHEN 2 THEN 'LINE'
13650 WHEN 3 THEN 'LINE'
13651
13652 ELSE null
13653 END object_type_code
13654 , CASE r
13655 WHEN 1 THEN '707'
13656 WHEN 2 THEN '707'
13657 WHEN 3 THEN '707'
13658
13659 ELSE null
13660 END source_application_id
13661 , 'S' source_type_code
13662 , CASE r
13663 WHEN 1 THEN 'ACCOUNTING_LINE_TYPE_CODE'
13664 WHEN 2 THEN 'DISTRIBUTION_IDENTIFIER'
13665 WHEN 3 THEN 'CURRENCY_CODE'
13666
13667 ELSE null
13668 END source_code
13669 , CASE r
13670 WHEN 1 THEN TO_CHAR(l2.ACCOUNTING_LINE_TYPE_CODE)
13671 WHEN 2 THEN TO_CHAR(l2.DISTRIBUTION_IDENTIFIER)
13672 WHEN 3 THEN TO_CHAR(l2.CURRENCY_CODE)
13673
13674 ELSE null
13675 END source_value
13676 , null source_meaning
13677 FROM xla_events_gt xet
13678 , CST_XLA_INV_LINES_V l2
13679 , (select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
13680 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
13681 AND xet.event_class_code = C_EVENT_CLASS_CODE
13682 AND l2.event_id = xet.event_id
13683
13684 )
13685 ;
13686 --
13687 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13688
13689 trace
13690 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
13691 ,p_level => C_LEVEL_STATEMENT
13692 ,p_module => l_log_module);
13693
13694 END IF;
13695
13696
13697 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13698 trace
13699 (p_msg => 'END of insert_sources_18'
13700 ,p_level => C_LEVEL_PROCEDURE
13701 ,p_module => l_log_module);
13702 END IF;
13703 EXCEPTION
13704 WHEN xla_exceptions_pkg.application_exception THEN
13705 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
13706 trace
13707 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
13708 ,p_level => C_LEVEL_EXCEPTION
13709 ,p_module => l_log_module);
13710 END IF;
13711 RAISE;
13712 WHEN OTHERS THEN
13713 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
13714 trace
13715 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
13716 ,p_level => C_LEVEL_EXCEPTION
13717 ,p_module => l_log_module);
13718 END IF;
13719 xla_exceptions_pkg.raise_message
13720 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.insert_sources_18');
13721 END insert_sources_18;
13722 --
13723
13724 ---------------------------------------
13725 --
13726 -- PRIVATE FUNCTION
13727 -- EventClass_18
13728 --
13729 ----------------------------------------
13730 --
13731 FUNCTION EventClass_18
13732 (p_application_id IN NUMBER
13733 ,p_base_ledger_id IN NUMBER
13734 ,p_target_ledger_id IN NUMBER
13735 ,p_language IN VARCHAR2
13736 ,p_currency_code IN VARCHAR2
13737 ,p_sla_ledger_id IN NUMBER
13738 ,p_pad_start_date IN DATE
13739 ,p_pad_end_date IN DATE
13740 ,p_primary_ledger_id IN NUMBER)
13741 RETURN BOOLEAN IS
13742 --
13743 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER_ALL';
13747 l_calculate_g_l_flag VARCHAR2(1) :='N';
13744 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PURCHASE_ORDER';
13745
13746 l_calculate_acctd_flag VARCHAR2(1) :='N';
13748 --
13749 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
13750 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
13751 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13752 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
13753 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
13754 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13755 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13756 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
13757 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
13758 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
13759 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
13760 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
13761 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
13762 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
13763 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
13764 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
13765 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
13766 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
13767 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
13768 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
13769 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
13770 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
13771 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
13772 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13773 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
13774 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
13775
13776 l_event_id NUMBER;
13777 l_previous_event_id NUMBER;
13778 l_first_event_id NUMBER;
13779 l_last_event_id NUMBER;
13780
13781 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
13782 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13783 --
13784 --
13785 l_result BOOLEAN := TRUE;
13786 l_rows NUMBER := 1000;
13787 l_event_type_name VARCHAR2(80) := 'All';
13788 l_event_class_name VARCHAR2(80) := 'PO Delivery into Inventory';
13789 l_description VARCHAR2(4000);
13790 l_transaction_reversal NUMBER;
13791 l_ae_header_id NUMBER;
13792 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
13793 l_log_module VARCHAR2(240);
13794 --
13795 l_acct_reversal_source VARCHAR2(30);
13796 l_trx_reversal_source VARCHAR2(30);
13797
13798 l_continue_with_lines BOOLEAN := TRUE;
13799 --
13800 l_acc_rev_gl_date_source DATE; -- 4262811
13801 --
13802 type t_array_event_id is table of number index by binary_integer;
13803
13804 l_rec_array_event t_rec_array_event;
13805 l_null_rec_array_event t_rec_array_event;
13806 l_array_ae_header_id xla_number_array_type;
13807 l_actual_flag VARCHAR2(1) := NULL;
13808 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
13809 l_balance_type_code VARCHAR2(1) :=NULL;
13810 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
13811
13812 --
13813 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
13814 --
13815
13816 TYPE t_array_source_2 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
13817 TYPE t_array_source_3 IS TABLE OF PO_DISTS_REF_V.RESERVED_FLAG%TYPE INDEX BY BINARY_INTEGER;
13818 TYPE t_array_source_4 IS TABLE OF CST_XLA_INV_ORG_PARAMS_REF_V.ENCUMBRANCE_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
13819 TYPE t_array_source_7 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
13820 TYPE t_array_source_8 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
13821 TYPE t_array_source_9 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
13822 TYPE t_array_source_10 IS TABLE OF CST_XLA_INV_REF_V.TXN_PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
13823 TYPE t_array_source_11 IS TABLE OF CST_XLA_INV_REF_V.APPLIED_TO_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
13824 TYPE t_array_source_13 IS TABLE OF CST_XLA_INV_HEADERS_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
13825 TYPE t_array_source_14 IS TABLE OF PO_DISTS_REF_V.PO_BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
13826 TYPE t_array_source_15 IS TABLE OF CST_XLA_INV_REF_V.ENCUM_REVERSAL_AMOUNT_ENTERED%TYPE INDEX BY BINARY_INTEGER;
13827 TYPE t_array_source_17 IS TABLE OF CST_XLA_INV_REF_V.ENCUMBRANCE_REVERSAL_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
13828 TYPE t_array_source_18 IS TABLE OF PSA_CST_XLA_UPG_V.CST_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
13829 TYPE t_array_source_19 IS TABLE OF PO_HEADERS_REF_V.PURCH_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
13833 TYPE t_array_source_12 IS TABLE OF CST_XLA_INV_LINES_V.DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
13830 TYPE t_array_source_37 IS TABLE OF CST_XLA_INV_HEADERS_V.TRANSFER_TO_GL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
13831
13832 TYPE t_array_source_6 IS TABLE OF CST_XLA_INV_LINES_V.ACCOUNTING_LINE_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
13834 TYPE t_array_source_16 IS TABLE OF CST_XLA_INV_LINES_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
13835
13836 l_array_source_2 t_array_source_2;
13837 l_array_source_3 t_array_source_3;
13838 l_array_source_4 t_array_source_4;
13839 l_array_source_7 t_array_source_7;
13840 l_array_source_8 t_array_source_8;
13841 l_array_source_9 t_array_source_9;
13842 l_array_source_10 t_array_source_10;
13843 l_array_source_11 t_array_source_11;
13844 l_array_source_13 t_array_source_13;
13845 l_array_source_13_meaning t_array_lookup_meaning;
13846 l_array_source_14 t_array_source_14;
13847 l_array_source_15 t_array_source_15;
13848 l_array_source_17 t_array_source_17;
13849 l_array_source_18 t_array_source_18;
13850 l_array_source_19 t_array_source_19;
13851 l_array_source_37 t_array_source_37;
13852 l_array_source_37_meaning t_array_lookup_meaning;
13853
13854 l_array_source_6 t_array_source_6;
13855 l_array_source_12 t_array_source_12;
13856 l_array_source_16 t_array_source_16;
13857
13858 --
13859 CURSOR header_cur
13860 IS
13861 SELECT /*+ leading(xet) cardinality(xet,1) */
13862 -- Event Class Code: PURCHASE_ORDER
13863 xet.entity_id
13864 ,xet.legal_entity_id
13865 ,xet.entity_code
13866 ,xet.transaction_number
13867 ,xet.event_id
13868 ,xet.event_class_code
13869 ,xet.event_type_code
13870 ,xet.event_number
13871 ,xet.event_date
13872 ,xet.transaction_date
13873 ,xet.reference_num_1
13874 ,xet.reference_num_2
13875 ,xet.reference_num_3
13876 ,xet.reference_num_4
13877 ,xet.reference_char_1
13878 ,xet.reference_char_2
13879 ,xet.reference_char_3
13880 ,xet.reference_char_4
13881 ,xet.reference_date_1
13882 ,xet.reference_date_2
13883 ,xet.reference_date_3
13884 ,xet.reference_date_4
13885 ,xet.event_created_by
13886 ,xet.budgetary_control_flag
13887 , h6.PURCH_ENCUMBRANCE_FLAG source_2
13888 , h5.RESERVED_FLAG source_3
13889 , h3.ENCUMBRANCE_REVERSAL_FLAG source_4
13890 , h4.APPLIED_TO_APPL_ID source_7
13891 , h4.APPLIED_TO_DIST_LINK_TYPE source_8
13892 , h4.APPLIED_TO_ENTITY_CODE source_9
13893 , h4.TXN_PO_DISTRIBUTION_ID source_10
13894 , h4.APPLIED_TO_PO_DOC_ID source_11
13895 , h1.DISTRIBUTION_TYPE source_13
13896 , fvl13.meaning source_13_meaning
13897 , h5.PO_BUDGET_ACCOUNT source_14
13898 , h4.ENCUM_REVERSAL_AMOUNT_ENTERED source_15
13899 , h4.ENCUMBRANCE_REVERSAL_AMOUNT source_17
13900 , h7.CST_ENCUM_UPG_OPTION source_18
13901 , h6.PURCH_ENCUMBRANCE_TYPE_ID source_19
13902 , h1.TRANSFER_TO_GL_INDICATOR source_37
13903 , fvl37.meaning source_37_meaning
13904 FROM xla_events_gt xet
13905 , CST_XLA_INV_HEADERS_V h1
13906 , CST_XLA_INV_ORG_PARAMS_REF_V h3
13907 , CST_XLA_INV_REF_V h4
13908 , PO_DISTS_REF_V h5
13909 , PO_HEADERS_REF_V h6
13910 , PSA_CST_XLA_UPG_V h7
13911 , fnd_lookup_values fvl13
13912 , fnd_lookup_values fvl37
13913 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
13914 and xet.event_class_code = C_EVENT_CLASS_CODE
13915 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
13916 AND h3.INV_ORGANIZATION_ID (+) = h1.ORGANIZATION_ID AND h4.ref_transaction_id = h1.transaction_id AND h4.txn_po_header_id = h5.po_header_id (+) AND h4.txn_po_distribution_id = h5.po_distribution_id (+) AND h4.txn_po_header_id = h6.po_header_id (+) AND h4.rcv_transaction_id = h7.transaction_id (+) AND fvl13.lookup_type(+) = 'CST_DISTRIBUTION_TYPE'
13917 AND fvl13.lookup_code(+) = h1.DISTRIBUTION_TYPE
13918 AND fvl13.view_application_id(+) = 700
13919 AND fvl13.language(+) = USERENV('LANG')
13920 AND fvl37.lookup_type(+) = 'YES_NO'
13921 AND fvl37.lookup_code(+) = h1.TRANSFER_TO_GL_INDICATOR
13922 AND fvl37.view_application_id(+) = 0
13923 AND fvl37.language(+) = USERENV('LANG')
13924
13925 ORDER BY event_id
13926 ;
13927
13928
13929 --
13930 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
13931 IS
13932 SELECT /*+ leading(xet) cardinality(xet,1) */
13933 -- Event Class Code: PURCHASE_ORDER
13934 xet.entity_id
13935 ,xet.legal_entity_id
13936 ,xet.entity_code
13937 ,xet.transaction_number
13938 ,xet.event_id
13939 ,xet.event_class_code
13940 ,xet.event_type_code
13941 ,xet.event_number
13942 ,xet.event_date
13943 ,xet.transaction_date
13944 ,xet.reference_num_1
13945 ,xet.reference_num_2
13946 ,xet.reference_num_3
13947 ,xet.reference_num_4
13948 ,xet.reference_char_1
13949 ,xet.reference_char_2
13950 ,xet.reference_char_3
13951 ,xet.reference_char_4
13952 ,xet.reference_date_1
13953 ,xet.reference_date_2
13954 ,xet.reference_date_3
13955 ,xet.reference_date_4
13956 ,xet.event_created_by
13957 ,xet.budgetary_control_flag
13958 , l2.LINE_NUMBER
13959 , l2.ACCOUNTING_LINE_TYPE_CODE source_6
13960 , l2.DISTRIBUTION_IDENTIFIER source_12
13961 , l2.CURRENCY_CODE source_16
13962 FROM xla_events_gt xet
13963 , CST_XLA_INV_LINES_V l2
13964 WHERE xet.event_id between x_first_event_id and x_last_event_id
13965 and xet.event_date between p_pad_start_date and p_pad_end_date
13966 and xet.event_class_code = C_EVENT_CLASS_CODE
13967 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
13968 ;
13969
13970 --
13971 BEGIN
13972 IF g_log_enabled THEN
13973 l_log_module := C_DEFAULT_MODULE||'.EventClass_18';
13974 END IF;
13975 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13976 trace
13977 (p_msg => 'BEGIN of EventClass_18'
13978 ,p_level => C_LEVEL_PROCEDURE
13979 ,p_module => l_log_module);
13980 END IF;
13981
13982 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13983 trace
13984 (p_msg => 'p_application_id = '||p_application_id||
13985 ' - p_base_ledger_id = '||p_base_ledger_id||
13986 ' - p_target_ledger_id = '||p_target_ledger_id||
13987 ' - p_language = '||p_language||
13988 ' - p_currency_code = '||p_currency_code||
13989 ' - p_sla_ledger_id = '||p_sla_ledger_id
13990 ,p_level => C_LEVEL_STATEMENT
13991 ,p_module => l_log_module);
13992 END IF;
13993 --
13994 -- initialze arrays
13995 --
13996 g_array_event.DELETE;
13997 l_rec_array_event := l_null_rec_array_event;
13998 --
13999 --------------------------------------
14000 -- 4262811 Initialze MPA Line Number
14001 --------------------------------------
14002 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
14003
14004 --
14005
14006 --
14007 OPEN header_cur;
14008 --
14009 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14010 trace
14011 (p_msg => 'SQL - FETCH header_cur'
14012 ,p_level => C_LEVEL_STATEMENT
14013 ,p_module => l_log_module);
14014 END IF;
14015 --
14016 LOOP
14017 FETCH header_cur BULK COLLECT INTO
14018 l_array_entity_id
14019 , l_array_legal_entity_id
14020 , l_array_entity_code
14021 , l_array_transaction_num
14022 , l_array_event_id
14023 , l_array_class_code
14024 , l_array_event_type
14025 , l_array_event_number
14026 , l_array_event_date
14027 , l_array_transaction_date
14028 , l_array_reference_num_1
14029 , l_array_reference_num_2
14030 , l_array_reference_num_3
14031 , l_array_reference_num_4
14032 , l_array_reference_char_1
14033 , l_array_reference_char_2
14034 , l_array_reference_char_3
14035 , l_array_reference_char_4
14036 , l_array_reference_date_1
14037 , l_array_reference_date_2
14038 , l_array_reference_date_3
14039 , l_array_reference_date_4
14040 , l_array_event_created_by
14041 , l_array_budgetary_control_flag
14042 , l_array_source_2
14043 , l_array_source_3
14044 , l_array_source_4
14045 , l_array_source_7
14046 , l_array_source_8
14047 , l_array_source_9
14048 , l_array_source_10
14049 , l_array_source_11
14050 , l_array_source_13
14051 , l_array_source_13_meaning
14052 , l_array_source_14
14053 , l_array_source_15
14054 , l_array_source_17
14055 , l_array_source_18
14056 , l_array_source_19
14057 , l_array_source_37
14058 , l_array_source_37_meaning
14059 LIMIT l_rows;
14060 --
14061 IF (C_LEVEL_EVENT >= g_log_level) THEN
14062 trace
14063 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
14064 ,p_level => C_LEVEL_EVENT
14065 ,p_module => l_log_module);
14066 END IF;
14067 --
14068 EXIT WHEN l_array_entity_id.COUNT = 0;
14069
14070 -- initialize arrays
14071 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
14072 XLA_AE_LINES_PKG.g_rec_lines := NULL;
14073
14074 --
14075 -- Bug 4458708
14076 --
14077 XLA_AE_LINES_PKG.g_LineNumber := 0;
14078
14079
14080 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
14081 g_last_hdr_idx := l_array_event_id.LAST;
14082 --
14083 -- loop for the headers. Each iteration is for each header extract row
14084 -- fetched in header cursor
14085 --
14089 -- set event info as cache for other routines to refer event attributes
14086 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
14087
14088 --
14090 --
14091 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
14092 (p_application_id => p_application_id
14093 ,p_primary_ledger_id => p_primary_ledger_id
14094 ,p_base_ledger_id => p_base_ledger_id
14095 ,p_target_ledger_id => p_target_ledger_id
14096 ,p_entity_id => l_array_entity_id(hdr_idx)
14097 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
14098 ,p_entity_code => l_array_entity_code(hdr_idx)
14099 ,p_transaction_num => l_array_transaction_num(hdr_idx)
14100 ,p_event_id => l_array_event_id(hdr_idx)
14101 ,p_event_class_code => l_array_class_code(hdr_idx)
14102 ,p_event_type_code => l_array_event_type(hdr_idx)
14103 ,p_event_number => l_array_event_number(hdr_idx)
14104 ,p_event_date => l_array_event_date(hdr_idx)
14105 ,p_transaction_date => l_array_transaction_date(hdr_idx)
14106 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
14107 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
14108 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
14109 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
14110 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
14111 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
14112 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
14113 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
14114 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
14115 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
14116 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
14117 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
14118 ,p_event_created_by => l_array_event_created_by(hdr_idx)
14119 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
14120
14121 --
14122 -- set the status of entry to C_VALID (0)
14123 --
14124 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
14125
14126 --
14127 -- initialize a row for ae header
14128 --
14129 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
14130
14131 l_event_id := l_array_event_id(hdr_idx);
14132
14133 --
14134 -- storing the hdr_idx for event. May be used by line cursor.
14135 --
14136 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
14137
14138 --
14139 -- store sources from header extract. This can be improved to
14140 -- store only those sources from header extract that may be used in lines
14141 --
14142
14143 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
14144 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
14145 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
14146 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
14147 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
14148 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
14149 g_array_event(l_event_id).array_value_num('source_10') := l_array_source_10(hdr_idx);
14150 g_array_event(l_event_id).array_value_num('source_11') := l_array_source_11(hdr_idx);
14151 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
14152 g_array_event(l_event_id).array_value_char('source_13_meaning') := l_array_source_13_meaning(hdr_idx);
14153 g_array_event(l_event_id).array_value_num('source_14') := l_array_source_14(hdr_idx);
14154 g_array_event(l_event_id).array_value_num('source_15') := l_array_source_15(hdr_idx);
14155 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
14156 g_array_event(l_event_id).array_value_char('source_18') := l_array_source_18(hdr_idx);
14157 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
14158 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
14159 g_array_event(l_event_id).array_value_char('source_37_meaning') := l_array_source_37_meaning(hdr_idx);
14160
14161 --
14162 -- initilaize the status of ae headers for diffrent balance types
14163 -- the status is initialised to C_NOT_CREATED (2)
14164 --
14165 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
14166 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
14167 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
14168
14169 --
14170 -- call api to validate and store accounting attributes for header
14171 --
14172
14173 ------------------------------------------------------------
14174 -- Accrual Reversal : to get date for Standard Source (NONE)
14175 ------------------------------------------------------------
14176 l_acc_rev_gl_date_source := NULL;
14177
14178 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
14179 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_19');
14180 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
14181 l_rec_acct_attrs.array_date_value(2) :=
14182 xla_ae_sources_pkg.GetSystemSourceDate(
14183 p_source_code => 'XLA_REFERENCE_DATE_1'
14184 , p_source_type_code => 'Y'
14185 , p_source_application_id => 602
14186 );
14187 l_rec_acct_attrs.array_acct_attr_code(3) := 'GL_TRANSFER_FLAG';
14188 l_rec_acct_attrs.array_char_value(3) := g_array_event(l_event_id).array_value_char('source_37');
14189
14190
14191 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
14192
14193 XLA_AE_HEADER_PKG.SetJeCategoryName;
14194
14198 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
14195 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
14196 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
14197 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
14199 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
14200
14201
14202 -- No header level analytical criteria
14203
14204 --
14205 --accounting attribute enhancement, bug 3612931
14206 --
14207 l_trx_reversal_source := SUBSTR(NULL, 1,30);
14208
14209 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
14210 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
14211
14212 xla_accounting_err_pkg.build_message
14213 (p_appli_s_name => 'XLA'
14214 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
14215 ,p_token_1 => 'ACCT_ATTR_NAME'
14216 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
14217 ,p_token_2 => 'PRODUCT_NAME'
14218 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
14219 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
14220 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
14221 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
14222
14223 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
14224 --
14225 -- following sets the accounting attributes needed to reverse
14226 -- accounting for a distributeion
14227 --
14228 xla_ae_lines_pkg.SetTrxReversalAttrs
14229 (p_event_id => l_event_id
14230 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
14231 ,p_trx_reversal_source => l_trx_reversal_source);
14232
14233 END IF;
14234
14235
14236 ----------------------------------------------------------------
14237 -- 4262811 - update the header statuses to invalid in need be
14238 ----------------------------------------------------------------
14239 --
14240 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
14241
14242
14243 -----------------------------------------------
14244 -- No accrual reversal for the event class/type
14245 -----------------------------------------------
14246 ----------------------------------------------------------------
14247
14248 --
14249 -- this ends the header loop iteration for one bulk fetch
14250 --
14251 END LOOP;
14252
14253 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
14254 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
14255
14256 --
14257 -- insert dummy rows into lines gt table that were created due to
14258 -- transaction reversals
14259 --
14260 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
14261 l_result := XLA_AE_LINES_PKG.InsertLines;
14262 END IF;
14263
14264 --
14265 -- reset the temp_line_num for each set of events fetched from header
14266 -- cursor rather than doing it for each new event in line cursor
14267 -- Bug 3939231
14268 --
14269 xla_ae_lines_pkg.g_temp_line_num := 0;
14270
14271
14272
14273 --
14274 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
14275 --
14276 --
14277 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14278
14279 trace
14280 (p_msg => 'SQL - FETCH line_cur'
14281 ,p_level => C_LEVEL_STATEMENT
14282 ,p_module => l_log_module);
14283
14284 END IF;
14285 --
14286 --
14287 LOOP
14288 --
14289 FETCH line_cur BULK COLLECT INTO
14290 l_array_entity_id
14291 , l_array_legal_entity_id
14292 , l_array_entity_code
14293 , l_array_transaction_num
14294 , l_array_event_id
14295 , l_array_class_code
14296 , l_array_event_type
14297 , l_array_event_number
14298 , l_array_event_date
14299 , l_array_transaction_date
14300 , l_array_reference_num_1
14301 , l_array_reference_num_2
14302 , l_array_reference_num_3
14303 , l_array_reference_num_4
14304 , l_array_reference_char_1
14305 , l_array_reference_char_2
14306 , l_array_reference_char_3
14307 , l_array_reference_char_4
14308 , l_array_reference_date_1
14309 , l_array_reference_date_2
14310 , l_array_reference_date_3
14311 , l_array_reference_date_4
14312 , l_array_event_created_by
14313 , l_array_budgetary_control_flag
14314 , l_array_extract_line_num
14315 , l_array_source_6
14316 , l_array_source_12
14317 , l_array_source_16
14318 LIMIT l_rows;
14319
14320 --
14321 IF (C_LEVEL_EVENT >= g_log_level) THEN
14322 trace
14323 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
14324 ,p_level => C_LEVEL_EVENT
14325 ,p_module => l_log_module);
14326 END IF;
14327 --
14328 EXIT WHEN l_array_entity_id.count = 0;
14329
14330 XLA_AE_LINES_PKG.g_rec_lines := null;
14331
14332 --
14333 -- Bug 4458708
14334 --
14335 XLA_AE_LINES_PKG.g_LineNumber := 0;
14336 --
14337 --
14338
14339 FOR Idx IN 1..l_array_event_id.count LOOP
14340 --
14341 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
14342 --
14343 l_event_id := l_array_event_id(idx); -- 5648433
14344
14345 --
14349 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
14346 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
14347 --
14348
14350 (g_array_event(l_event_id).array_value_num('header_index'))
14351 ,'N'
14352 ) <> 'Y'
14353 THEN
14354 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14355 trace
14356 (p_msg => 'Trancaction revesal option is not Y '
14357 ,p_level => C_LEVEL_STATEMENT
14358 ,p_module => l_log_module);
14359 END IF;
14360
14361 --
14362 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
14363 --
14364 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
14365 --
14366 -- set event info as cache for other routines to refer event attributes
14367 --
14368
14369 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
14370 l_previous_event_id := l_event_id;
14371
14372 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
14373 (p_application_id => p_application_id
14374 ,p_primary_ledger_id => p_primary_ledger_id
14375 ,p_base_ledger_id => p_base_ledger_id
14376 ,p_target_ledger_id => p_target_ledger_id
14377 ,p_entity_id => l_array_entity_id(Idx)
14378 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
14379 ,p_entity_code => l_array_entity_code(Idx)
14380 ,p_transaction_num => l_array_transaction_num(Idx)
14381 ,p_event_id => l_array_event_id(Idx)
14382 ,p_event_class_code => l_array_class_code(Idx)
14383 ,p_event_type_code => l_array_event_type(Idx)
14384 ,p_event_number => l_array_event_number(Idx)
14385 ,p_event_date => l_array_event_date(Idx)
14386 ,p_transaction_date => l_array_transaction_date(Idx)
14387 ,p_reference_num_1 => l_array_reference_num_1(Idx)
14388 ,p_reference_num_2 => l_array_reference_num_2(Idx)
14389 ,p_reference_num_3 => l_array_reference_num_3(Idx)
14390 ,p_reference_num_4 => l_array_reference_num_4(Idx)
14391 ,p_reference_char_1 => l_array_reference_char_1(Idx)
14392 ,p_reference_char_2 => l_array_reference_char_2(Idx)
14393 ,p_reference_char_3 => l_array_reference_char_3(Idx)
14394 ,p_reference_char_4 => l_array_reference_char_4(Idx)
14395 ,p_reference_date_1 => l_array_reference_date_1(Idx)
14396 ,p_reference_date_2 => l_array_reference_date_2(Idx)
14397 ,p_reference_date_3 => l_array_reference_date_3(Idx)
14398 ,p_reference_date_4 => l_array_reference_date_4(Idx)
14399 ,p_event_created_by => l_array_event_created_by(Idx)
14400 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
14401 --
14402 END IF;
14403
14404
14405
14406 --
14407 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
14408
14409 l_acct_reversal_source := SUBSTR(NULL, 1,30);
14410
14411 IF l_continue_with_lines THEN
14412 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
14413 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
14414
14415 xla_accounting_err_pkg.build_message
14416 (p_appli_s_name => 'XLA'
14417 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
14418 ,p_token_1 => 'LINE_NUMBER'
14419 ,p_value_1 => l_array_extract_line_num(Idx)
14420 ,p_token_2 => 'PRODUCT_NAME'
14421 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
14422 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
14423 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
14424 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
14425
14426 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
14427 --
14428 -- following sets the accounting attributes needed to reverse
14429 -- accounting for a distributeion
14430 --
14431
14432 --
14433 -- 5217187
14434 --
14435 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
14436 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
14437 g_array_event(l_event_id).array_value_num('header_index'));
14438 --
14439 --
14440
14441 -- No reversal code generated
14442
14443 xla_ae_lines_pkg.SetAcctReversalAttrs
14444 (p_event_id => l_event_id
14445 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
14446 ,p_calculate_acctd_flag => l_calculate_acctd_flag
14447 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
14448 END IF;
14449
14450 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
14451 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
14452
14453 --
14454 AcctLineType_2 (
14455 p_application_id => p_application_id
14456 ,p_event_id => l_event_id
14457 ,p_calculate_acctd_flag => l_calculate_acctd_flag
14458 ,p_calculate_g_l_flag => l_calculate_g_l_flag
14459 ,p_actual_flag => l_actual_flag
14460 ,p_balance_type_code => l_balance_type_code
14461 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
14462
14463 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
14464 , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
14465 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
14466 , p_source_6 => l_array_source_6(Idx)
14467 , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
14471 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
14468 , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
14469 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
14470 , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
14472 , p_source_12 => l_array_source_12(Idx)
14473 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
14474 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
14475 , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
14476 , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
14477 , p_source_16 => l_array_source_16(Idx)
14478 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
14479 , p_source_18 => g_array_event(l_event_id).array_value_char('source_18')
14480 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
14481 );
14482 If(l_balance_type_code = 'A') THEN
14483 l_actual_gain_loss_ref := l_gain_or_loss_ref;
14484 END IF;
14485
14486 --
14487
14488
14489 --
14490 AcctLineType_4 (
14491 p_application_id => p_application_id
14492 ,p_event_id => l_event_id
14493 ,p_calculate_acctd_flag => l_calculate_acctd_flag
14494 ,p_calculate_g_l_flag => l_calculate_g_l_flag
14495 ,p_actual_flag => l_actual_flag
14496 ,p_balance_type_code => l_balance_type_code
14497 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
14498
14499 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
14500 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
14501 , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
14502 , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
14503 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
14504 , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
14505 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
14506 , p_source_12 => l_array_source_12(Idx)
14507 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
14508 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
14509 , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
14510 , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
14511 , p_source_16 => l_array_source_16(Idx)
14512 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
14513 , p_source_18 => g_array_event(l_event_id).array_value_char('source_18')
14514 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
14515 );
14516 If(l_balance_type_code = 'A') THEN
14517 l_actual_gain_loss_ref := l_gain_or_loss_ref;
14518 END IF;
14519
14520 --
14521
14522
14523 --
14524 AcctLineType_7 (
14525 p_application_id => p_application_id
14526 ,p_event_id => l_event_id
14527 ,p_calculate_acctd_flag => l_calculate_acctd_flag
14528 ,p_calculate_g_l_flag => l_calculate_g_l_flag
14529 ,p_actual_flag => l_actual_flag
14530 ,p_balance_type_code => l_balance_type_code
14531 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
14532
14533 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
14534 , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
14535 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
14536 , p_source_6 => l_array_source_6(Idx)
14537 , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
14538 , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
14539 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
14540 , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
14541 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
14542 , p_source_12 => l_array_source_12(Idx)
14543 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
14544 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
14545 , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
14546 , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
14547 , p_source_16 => l_array_source_16(Idx)
14548 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
14549 , p_source_18 => g_array_event(l_event_id).array_value_char('source_18')
14550 , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
14551 );
14552 If(l_balance_type_code = 'A') THEN
14553 l_actual_gain_loss_ref := l_gain_or_loss_ref;
14554 END IF;
14555
14556 --
14557
14558 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
14559 -- or secondary ledger that has different currency with primary
14560 -- or alc that is calculated by sla
14561 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
14562 (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'))
14563
14564 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
14565 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
14566 AND (l_actual_flag = 'A')) THEN
14567 XLA_AE_LINES_PKG.CreateGainOrLossLines(
14568 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
14569 ,p_application_id => p_application_id
14570 ,p_amb_context_code => 'DEFAULT'
14571 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
14572 ,p_event_class_code => C_EVENT_CLASS_CODE
14573 ,p_event_type_code => C_EVENT_TYPE_CODE
14574
14575 ,p_gain_ccid => -1
14576 ,p_loss_ccid => -1
14577
14578 ,p_actual_flag => l_actual_flag
14579 ,p_enc_flag => null
14583 END IF;
14580 ,p_actual_g_l_ref => l_actual_gain_loss_ref
14581 ,p_enc_g_l_ref => null
14582 );
14584 END IF;
14585 END IF;
14586
14587 ELSE
14588 --
14589 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
14590 --
14591 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14592 trace
14593 (p_msg => 'Trancaction revesal option is Y'
14594 ,p_level => C_LEVEL_STATEMENT
14595 ,p_module => l_log_module);
14596 END IF;
14597 END IF;
14598
14599 END LOOP;
14600 l_result := XLA_AE_LINES_PKG.InsertLines ;
14601 end loop;
14602 close line_cur;
14603
14604
14605 --
14606 -- insert headers into xla_ae_headers_gt table
14607 --
14608 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
14609
14610 -- insert into errors table here.
14611
14612 END LOOP;
14613
14614 --
14615 -- 4865292
14616 --
14617 -- Compare g_hdr_extract_count with event count in
14618 -- CreateHeadersAndLines.
14619 --
14620 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
14621
14622 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14623 trace (p_msg => '# rows extracted from header extract objects '
14624 || ' (running total): '
14625 || g_hdr_extract_count
14626 ,p_level => C_LEVEL_STATEMENT
14627 ,p_module => l_log_module);
14628 END IF;
14629
14630 CLOSE header_cur;
14631 --
14632
14633 --
14634 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14635 trace
14636 (p_msg => 'END of EventClass_18'
14637 ,p_level => C_LEVEL_PROCEDURE
14638 ,p_module => l_log_module);
14639 END IF;
14640 --
14641 RETURN l_result;
14642 EXCEPTION
14643 WHEN xla_exceptions_pkg.application_exception THEN
14644
14645 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
14646
14647
14648 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
14649
14650 RAISE;
14651
14652 WHEN NO_DATA_FOUND THEN
14653
14654 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
14655 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
14656
14657 FOR header_record IN header_cur
14658 LOOP
14659 l_array_header_events(header_record.event_id) := header_record.event_id;
14660 END LOOP;
14661
14662 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
14663 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
14664
14665 fnd_file.put_line(fnd_file.LOG, ' ');
14666 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
14667 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
14668 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
14669
14670 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
14671 LOOP
14672 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
14673 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
14674 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
14675 END IF;
14676 END LOOP;
14677
14678 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
14679 fnd_file.put_line(fnd_file.LOG, ' ');
14680
14681
14682 xla_exceptions_pkg.raise_message
14683 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.EventClass_18');
14684
14685
14686 WHEN OTHERS THEN
14687 xla_exceptions_pkg.raise_message
14688 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.EventClass_18');
14689 END EventClass_18;
14690 --
14691
14692 --
14693 --+============================================+
14694 --| |
14695 --| PRIVATE FUNCTION |
14696 --| |
14697 --+============================================+
14698 --
14699 FUNCTION CreateHeadersAndLines
14700 (p_application_id IN NUMBER
14701 ,p_base_ledger_id IN NUMBER
14702 ,p_target_ledger_id IN NUMBER
14703 ,p_pad_start_date IN DATE
14704 ,p_pad_end_date IN DATE
14705 ,p_primary_ledger_id IN NUMBER)
14706 RETURN BOOLEAN IS
14707 l_created BOOLEAN:=FALSE;
14708 l_event_id NUMBER;
14709 l_event_date DATE;
14710 l_language VARCHAR2(30);
14711 l_currency_code VARCHAR2(30);
14712 l_sla_ledger_id NUMBER;
14713 l_log_module VARCHAR2(240);
14714
14715 BEGIN
14716 --
14717 IF g_log_enabled THEN
14718 l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
14719 END IF;
14720 --
14721 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14722 trace
14723 (p_msg => 'BEGIN of CreateHeadersAndLines'
14724 ,p_level => C_LEVEL_PROCEDURE
14725 ,p_module => l_log_module);
14726 END IF;
14727
14728 l_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
14729 l_currency_code := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
14730 l_sla_ledger_id := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
14731
14732 --
14733 -- initialize array of lines with NULL
14734 --
14735 xla_ae_lines_pkg.SetNullLine;
14736
14737 --
14738 -- initialize header extract count -- Bug 4865292
14739 --
14740 g_hdr_extract_count:= 0;
14741
14742
14746 , p_target_ledger_id => p_target_ledger_id
14743 l_created := EventClass_12(
14744 p_application_id => p_application_id
14745 , p_base_ledger_id => p_base_ledger_id
14747 , p_language => l_language
14748 , p_currency_code => l_currency_code
14749 , p_sla_ledger_id => l_sla_ledger_id
14750 , p_pad_start_date => p_pad_start_date
14751 , p_pad_end_date => p_pad_end_date
14752 , p_primary_ledger_id => p_primary_ledger_id
14753 );
14754
14755
14756
14757 IF ( g_diagnostics_mode ='Y' ) THEN
14758
14759 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14760 trace
14761 (p_msg => 'CALL Transaction Objects Diagnostics'
14762 ,p_level => C_LEVEL_STATEMENT
14763 ,p_module => l_log_module);
14764
14765 END IF;
14766
14767 insert_sources_12(
14768 p_target_ledger_id => p_target_ledger_id
14769 , p_language => l_language
14770 , p_sla_ledger_id => l_sla_ledger_id
14771 , p_pad_start_date => p_pad_start_date
14772 , p_pad_end_date => p_pad_end_date
14773 );
14774
14775 END IF;
14776
14777 l_created := EventClass_13(
14778 p_application_id => p_application_id
14779 , p_base_ledger_id => p_base_ledger_id
14780 , p_target_ledger_id => p_target_ledger_id
14781 , p_language => l_language
14782 , p_currency_code => l_currency_code
14783 , p_sla_ledger_id => l_sla_ledger_id
14784 , p_pad_start_date => p_pad_start_date
14785 , p_pad_end_date => p_pad_end_date
14786 , p_primary_ledger_id => p_primary_ledger_id
14787 );
14788
14789
14790
14791 IF ( g_diagnostics_mode ='Y' ) THEN
14792
14793 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14794 trace
14795 (p_msg => 'CALL Transaction Objects Diagnostics'
14796 ,p_level => C_LEVEL_STATEMENT
14797 ,p_module => l_log_module);
14798
14799 END IF;
14800
14801 insert_sources_13(
14802 p_target_ledger_id => p_target_ledger_id
14803 , p_language => l_language
14804 , p_sla_ledger_id => l_sla_ledger_id
14805 , p_pad_start_date => p_pad_start_date
14806 , p_pad_end_date => p_pad_end_date
14807 );
14808
14809 END IF;
14810
14811 l_created := EventClass_14(
14812 p_application_id => p_application_id
14813 , p_base_ledger_id => p_base_ledger_id
14814 , p_target_ledger_id => p_target_ledger_id
14815 , p_language => l_language
14816 , p_currency_code => l_currency_code
14817 , p_sla_ledger_id => l_sla_ledger_id
14818 , p_pad_start_date => p_pad_start_date
14819 , p_pad_end_date => p_pad_end_date
14820 , p_primary_ledger_id => p_primary_ledger_id
14821 );
14822
14823
14824
14825 IF ( g_diagnostics_mode ='Y' ) THEN
14826
14827 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14828 trace
14829 (p_msg => 'CALL Transaction Objects Diagnostics'
14830 ,p_level => C_LEVEL_STATEMENT
14831 ,p_module => l_log_module);
14832
14833 END IF;
14834
14835 insert_sources_14(
14836 p_target_ledger_id => p_target_ledger_id
14837 , p_language => l_language
14838 , p_sla_ledger_id => l_sla_ledger_id
14839 , p_pad_start_date => p_pad_start_date
14840 , p_pad_end_date => p_pad_end_date
14841 );
14842
14843 END IF;
14844
14845 l_created := EventClass_15(
14846 p_application_id => p_application_id
14847 , p_base_ledger_id => p_base_ledger_id
14848 , p_target_ledger_id => p_target_ledger_id
14849 , p_language => l_language
14850 , p_currency_code => l_currency_code
14851 , p_sla_ledger_id => l_sla_ledger_id
14852 , p_pad_start_date => p_pad_start_date
14853 , p_pad_end_date => p_pad_end_date
14854 , p_primary_ledger_id => p_primary_ledger_id
14855 );
14856
14857
14858
14859 IF ( g_diagnostics_mode ='Y' ) THEN
14860
14861 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14862 trace
14863 (p_msg => 'CALL Transaction Objects Diagnostics'
14864 ,p_level => C_LEVEL_STATEMENT
14865 ,p_module => l_log_module);
14866
14867 END IF;
14868
14869 insert_sources_15(
14870 p_target_ledger_id => p_target_ledger_id
14871 , p_language => l_language
14872 , p_sla_ledger_id => l_sla_ledger_id
14873 , p_pad_start_date => p_pad_start_date
14874 , p_pad_end_date => p_pad_end_date
14875 );
14876
14877 END IF;
14878
14879 l_created := EventClass_16(
14880 p_application_id => p_application_id
14881 , p_base_ledger_id => p_base_ledger_id
14882 , p_target_ledger_id => p_target_ledger_id
14883 , p_language => l_language
14884 , p_currency_code => l_currency_code
14885 , p_sla_ledger_id => l_sla_ledger_id
14886 , p_pad_start_date => p_pad_start_date
14887 , p_pad_end_date => p_pad_end_date
14891
14888 , p_primary_ledger_id => p_primary_ledger_id
14889 );
14890
14892
14893 IF ( g_diagnostics_mode ='Y' ) THEN
14894
14895 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14896 trace
14897 (p_msg => 'CALL Transaction Objects Diagnostics'
14898 ,p_level => C_LEVEL_STATEMENT
14899 ,p_module => l_log_module);
14900
14901 END IF;
14902
14903 insert_sources_16(
14904 p_target_ledger_id => p_target_ledger_id
14905 , p_language => l_language
14906 , p_sla_ledger_id => l_sla_ledger_id
14907 , p_pad_start_date => p_pad_start_date
14908 , p_pad_end_date => p_pad_end_date
14909 );
14910
14911 END IF;
14912
14913 l_created := EventClass_17(
14914 p_application_id => p_application_id
14915 , p_base_ledger_id => p_base_ledger_id
14916 , p_target_ledger_id => p_target_ledger_id
14917 , p_language => l_language
14918 , p_currency_code => l_currency_code
14919 , p_sla_ledger_id => l_sla_ledger_id
14920 , p_pad_start_date => p_pad_start_date
14921 , p_pad_end_date => p_pad_end_date
14922 , p_primary_ledger_id => p_primary_ledger_id
14923 );
14924
14925
14926
14927 IF ( g_diagnostics_mode ='Y' ) THEN
14928
14929 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14930 trace
14931 (p_msg => 'CALL Transaction Objects Diagnostics'
14932 ,p_level => C_LEVEL_STATEMENT
14933 ,p_module => l_log_module);
14934
14935 END IF;
14936
14937 insert_sources_17(
14938 p_target_ledger_id => p_target_ledger_id
14939 , p_language => l_language
14940 , p_sla_ledger_id => l_sla_ledger_id
14941 , p_pad_start_date => p_pad_start_date
14942 , p_pad_end_date => p_pad_end_date
14943 );
14944
14945 END IF;
14946
14947 l_created := EventClass_18(
14948 p_application_id => p_application_id
14949 , p_base_ledger_id => p_base_ledger_id
14950 , p_target_ledger_id => p_target_ledger_id
14951 , p_language => l_language
14952 , p_currency_code => l_currency_code
14953 , p_sla_ledger_id => l_sla_ledger_id
14954 , p_pad_start_date => p_pad_start_date
14955 , p_pad_end_date => p_pad_end_date
14956 , p_primary_ledger_id => p_primary_ledger_id
14957 );
14958
14959
14960
14961 IF ( g_diagnostics_mode ='Y' ) THEN
14962
14963 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14964 trace
14965 (p_msg => 'CALL Transaction Objects Diagnostics'
14966 ,p_level => C_LEVEL_STATEMENT
14967 ,p_module => l_log_module);
14968
14969 END IF;
14970
14971 insert_sources_18(
14972 p_target_ledger_id => p_target_ledger_id
14973 , p_language => l_language
14974 , p_sla_ledger_id => l_sla_ledger_id
14975 , p_pad_start_date => p_pad_start_date
14976 , p_pad_end_date => p_pad_end_date
14977 );
14978
14979 END IF;
14980
14981
14982 --
14983 -- Bug 4865292
14984 -- When the number of events and that of header extract do not match,
14985 -- set the no header extract flag to indicate there are some issues
14986 -- in header extract.
14987 --
14988 -- Event count context is set in xla_accounting_pkg.unit_processor.
14989 -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
14990 -- to report it as a general error.
14991 --
14992 IF xla_context_pkg.get_event_count_context <> g_hdr_extract_count
14993 AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
14994
14995 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
14996 trace
14997 (p_msg => '# of extracted headers and events does not match'
14998 ,p_level => C_LEVEL_STATEMENT
14999 ,p_module => l_log_module);
15000
15001 trace
15002 (p_msg => '# of extracted headers: '
15003 ||g_hdr_extract_count
15004 ,p_level => C_LEVEL_STATEMENT
15005 ,p_module => l_log_module);
15006
15007 trace
15008 (p_msg => '# of events in xla_events_gt: '
15009 ||xla_context_pkg.get_event_count_context
15010 ,p_level => C_LEVEL_STATEMENT
15011 ,p_module => l_log_module);
15012
15013 trace
15014 (p_msg => 'Event No Header Extract Context: '
15015 ||xla_context_pkg.get_event_nohdr_context
15016 ,p_level => C_LEVEL_STATEMENT
15017 ,p_module => l_log_module);
15018
15019 END IF;
15020
15021
15022 xla_context_pkg.set_event_nohdr_context
15023 (p_nohdr_extract_flag => 'Y'
15024 ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
15025
15026 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
15027 trace
15028 (p_msg => 'No Header Extract Flag is set to Y'
15029 ,p_level => C_LEVEL_STATEMENT
15030 ,p_module => l_log_module);
15031 END IF;
15032
15033 END IF;
15034
15035 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15036 trace
15037 (p_msg => 'END of CreateHeadersAndLines'
15041
15038 ,p_level => C_LEVEL_PROCEDURE
15039 ,p_module => l_log_module);
15040 END IF;
15042 RETURN l_created;
15043 EXCEPTION
15044 WHEN xla_exceptions_pkg.application_exception THEN
15045 RAISE;
15046 WHEN OTHERS THEN
15047 xla_exceptions_pkg.raise_message
15048 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.CreateHeadersAndLines');
15049 END CreateHeadersAndLines;
15050 --
15051 --
15052
15053 --
15054 --+============================================+
15055 --| |
15056 --| PUBLIC FUNCTION |
15057 --| |
15058 --+============================================+
15059 --
15060 FUNCTION CreateJournalEntries
15061 (p_application_id IN NUMBER
15062 ,p_base_ledger_id IN NUMBER
15063 ,p_pad_start_date IN DATE
15064 ,p_pad_end_date IN DATE
15065 ,p_primary_ledger_id IN NUMBER)
15066 RETURN NUMBER IS
15067 l_log_module VARCHAR2(240);
15068 l_array_ledgers xla_accounting_cache_pkg.t_array_ledger_id;
15069 l_temp_result BOOLEAN;
15070 l_result NUMBER;
15071 BEGIN
15072 --
15073 IF g_log_enabled THEN
15074 l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
15075 END IF;
15076 --
15077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15078 trace
15079 (p_msg => 'BEGIN of CreateJournalEntries'||
15080 ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
15081 ,p_level => C_LEVEL_PROCEDURE
15082 ,p_module => l_log_module);
15083
15084 END IF;
15085
15086 --
15087 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
15088
15089 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
15090 trace
15091 (p_msg => 'g_diagnostics_mode = '||g_diagnostics_mode
15092 ,p_level => C_LEVEL_STATEMENT
15093 ,p_module => l_log_module);
15094 END IF;
15095 --
15096 xla_ae_journal_entry_pkg.SetProductAcctDefinition
15097 (p_product_rule_code => 'COST_MANAGEMENT_ENCUMBRANCE'
15098 ,p_product_rule_type_code => 'S'
15099 ,p_product_rule_version => ''
15100 ,p_product_rule_name => 'Cost Management Encumbrance Application Accounting Definition'
15101 ,p_amb_context_code => 'DEFAULT'
15102 );
15103
15104 l_array_ledgers :=
15105 xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
15106 (p_base_ledger_id => p_base_ledger_id);
15107
15108 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
15109 l_temp_result :=
15110 XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
15111 (p_application_id => p_application_id
15112 ,p_base_ledger_id => p_base_ledger_id
15113 ,p_target_ledger_id => l_array_ledgers(Idx)
15114 ,p_primary_ledger_id => p_primary_ledger_id
15115 ,p_pad_start_date => p_pad_start_date
15116 ,p_pad_end_date => p_pad_end_date);
15117
15118 l_temp_result :=
15119 l_temp_result AND
15120 CreateHeadersAndLines
15121 (p_application_id => p_application_id
15122 ,p_base_ledger_id => p_base_ledger_id
15123 ,p_target_ledger_id => l_array_ledgers(Idx)
15124 ,p_pad_start_date => p_pad_start_date
15125 ,p_pad_end_date => p_pad_end_date
15126 ,p_primary_ledger_id => p_primary_ledger_id
15127 );
15128 END LOOP;
15129
15130
15131 IF (g_diagnostics_mode = 'Y' AND
15132 C_LEVEL_UNEXPECTED >= g_log_level AND
15133 xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
15134
15135 xla_accounting_dump_pkg.acctg_event_extract_log(
15136 p_application_id => p_application_id
15137 ,p_request_id => xla_environment_pkg.g_Req_Id
15138 );
15139
15140 END IF;
15141
15142 CASE l_temp_result
15143 WHEN TRUE THEN l_result := 0;
15144 ELSE l_result := 2;
15145 END CASE;
15146
15147 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15148 trace
15149 (p_msg => 'return value. = '||TO_CHAR(l_result)
15150 ,p_level => C_LEVEL_PROCEDURE
15151 ,p_module => l_log_module);
15152 trace
15153 (p_msg => 'END of CreateJournalEntries '
15154 ,p_level => C_LEVEL_PROCEDURE
15155 ,p_module => l_log_module);
15156 END IF;
15157
15158 RETURN l_result;
15159 EXCEPTION
15160 WHEN xla_exceptions_pkg.application_exception THEN
15161 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15162 trace
15163 (p_msg => 'ERROR. = '||sqlerrm
15164 ,p_level => C_LEVEL_PROCEDURE
15165 ,p_module => l_log_module);
15166 END IF;
15167 RAISE;
15168 WHEN OTHERS THEN
15169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15170 trace
15171 (p_msg => 'ERROR. = '||sqlerrm
15172 ,p_level => C_LEVEL_PROCEDURE
15173 ,p_module => l_log_module);
15174 END IF;
15175 xla_exceptions_pkg.raise_message
15176 (p_location => 'XLA_00707_AAD_S_000005_BC_PKG.CreateJournalEntries');
15177 END CreateJournalEntries;
15178 --
15179 --=============================================================================
15180 --
15181 --
15182 --
15183 --
15184 --
15185 --
15186 --
15187 --
15188 --
15189 --
15190 --
15191 --
15192 --
15193 --
15194 --
15195 --
15196 --
15197 --
15198 --
15199 --
15200 --
15201 --
15202 --=============================================================================
15203 --=============================================================================
15204 -- *********** Initialization routine **********
15205 --=============================================================================
15206
15207 BEGIN
15208 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
15209 g_log_enabled := fnd_log.test
15210 (log_level => g_log_level
15211 ,module => C_DEFAULT_MODULE);
15212
15213 IF NOT g_log_enabled THEN
15214 g_log_level := C_LEVEL_LOG_DISABLED;
15215 END IF;
15216 --
15217 END XLA_00707_AAD_S_000005_BC_PKG;
15218 --