[Home] [Help]
PACKAGE BODY: APPS.XLA_JOURNAL_ENTRIES_PUB_PKG
Source
1 PACKAGE BODY xla_journal_entries_pub_pkg AS
2 /* $Header: xlajejep.pkb 120.8 2006/05/30 16:51:14 wychan ship $ */
3
4 --=============================================================================
5 -- *********** Local Trace Routine **********
6 --=============================================================================
7 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
8 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
9 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
10 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
11 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
12 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
13
14 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
15 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.xla_journal_entries_pub_pkg';
16
17 g_log_level NUMBER;
18 g_log_enabled BOOLEAN;
19
20 PROCEDURE trace
21 (p_msg IN VARCHAR2
22 ,p_module IN VARCHAR2
23 ,p_level IN NUMBER) IS
24 BEGIN
25 ----------------------------------------------------------------------------
26 -- Following is for FND log.
27 ----------------------------------------------------------------------------
28 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
29 fnd_log.message(p_level, p_module);
30 ELSIF p_level >= g_log_level THEN
31 fnd_log.string(p_level, p_module, p_msg);
32 END IF;
33
34 EXCEPTION
35 WHEN xla_exceptions_pkg.application_exception THEN
36 RAISE;
37 WHEN OTHERS THEN
38 xla_exceptions_pkg.raise_message
39 (p_location => 'xla_journal_entries_pub_pkg.trace');
40 END trace;
41
42 --=============================================================================
43 -- *********** public procedures and functions **********
44 --=============================================================================
45
46
47 --=============================================================================
48 --
49 -- Following are the routines on which created for public manual journal
50 -- entries APIs.
51 --
52 -- 1. create_journal_entry_header
53 -- 2. create_journal_entry_line
54 -- 3. complete_journal_entry
55 --
56 --
57 --=============================================================================
58
59
60 --=============================================================================
61 --
62 --
63 --
64 --=============================================================================
65 PROCEDURE create_journal_entry_header
66 (p_api_version IN NUMBER
67 ,p_init_msg_list IN VARCHAR2
68 ,p_application_id IN INTEGER
69 ,p_ledger_id IN INTEGER
70 ,p_legal_entity_id IN INTEGER
71 ,p_gl_date IN DATE
72 ,p_description IN VARCHAR2
73 ,p_je_category_name IN VARCHAR2
74 ,p_balance_type_code IN VARCHAR2
75 ,p_budget_version_id IN INTEGER
76 ,p_reference_date IN DATE
77 ,p_budgetary_control_flag IN VARCHAR2
78 ,p_attribute_category IN VARCHAR2
79 ,p_attribute1 IN VARCHAR2
80 ,p_attribute2 IN VARCHAR2
81 ,p_attribute3 IN VARCHAR2
82 ,p_attribute4 IN VARCHAR2
83 ,p_attribute5 IN VARCHAR2
84 ,p_attribute6 IN VARCHAR2
85 ,p_attribute7 IN VARCHAR2
86 ,p_attribute8 IN VARCHAR2
87 ,p_attribute9 IN VARCHAR2
88 ,p_attribute10 IN VARCHAR2
89 ,p_attribute11 IN VARCHAR2
90 ,p_attribute12 IN VARCHAR2
91 ,p_attribute13 IN VARCHAR2
92 ,p_attribute14 IN VARCHAR2
93 ,p_attribute15 IN VARCHAR2
94 ,x_return_status OUT NOCOPY VARCHAR2
95 ,x_msg_count OUT NOCOPY NUMBER
96 ,x_msg_data OUT NOCOPY VARCHAR2
97 ,x_ae_header_id OUT NOCOPY INTEGER
98 ,x_event_id OUT NOCOPY INTEGER
99 )
100 IS
101 l_api_name CONSTANT VARCHAR2(30) := 'create_journal_entry_header';
102 l_api_version CONSTANT NUMBER := 1.0;
103
104 l_retcode INTEGER;
105 l_log_module VARCHAR2(240);
106
107 l_period_name gl_period_statuses.period_name%TYPE;
108 l_creation_date DATE;
109 l_created_by INTEGER;
110 l_last_update_date DATE;
111 l_last_updated_by INTEGER;
112 l_last_update_login INTEGER;
113
114 BEGIN
115 IF g_log_enabled THEN
116 l_log_module := C_DEFAULT_MODULE||'.create_journal_entry_header';
117 END IF;
118
119 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120 trace(p_msg => 'BEGIN of function create_journal_entry_header',
121 p_module => l_log_module,
122 p_level => C_LEVEL_PROCEDURE);
123 END IF;
124
125 IF (FND_API.to_boolean(p_init_msg_list)) THEN
126 FND_MSG_PUB.initialize;
127 END IF;
128
129 -- Standard call to check for call compatibility.
130 IF (NOT FND_API.compatible_api_call
131 (p_current_version_number => l_api_version
132 ,p_caller_version_number => p_api_version
133 ,p_api_name => l_api_name
134 ,p_pkg_name => C_DEFAULT_MODULE))
135 THEN
136 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
137 END IF;
138
139 -- Initialize global variables
140 x_return_status := FND_API.G_RET_STS_SUCCESS;
141
142 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
143 trace(p_msg => 'Calling xla_journal_entries_pkg.create_journal_entry_header',
144 p_module => l_log_module,
145 p_level => C_LEVEL_STATEMENT);
146 END IF;
147
148 xla_journal_entries_pkg.create_journal_entry_header
149 (p_application_id => p_application_id
150 ,p_ledger_id => p_ledger_id
151 ,p_legal_entity_id => p_legal_entity_id
152 ,p_gl_date => p_gl_date
153 ,p_accounting_entry_type_code => 'MANUAL'
154 ,p_description => p_description
155 ,p_je_category_name => p_je_category_name
156 ,p_balance_type_code => p_balance_type_code
157 ,p_budget_version_id => p_budget_version_id
158 ,p_reference_date => p_reference_date
159 ,p_attribute_category => p_attribute_category
160 ,p_attribute1 => p_attribute1
161 ,p_attribute2 => p_attribute2
162 ,p_attribute3 => p_attribute3
163 ,p_attribute4 => p_attribute4
164 ,p_attribute5 => p_attribute5
165 ,p_attribute6 => p_attribute6
166 ,p_attribute7 => p_attribute7
167 ,p_attribute8 => p_attribute8
168 ,p_attribute9 => p_attribute9
169 ,p_attribute10 => p_attribute10
170 ,p_attribute11 => p_attribute11
171 ,p_attribute12 => p_attribute12
172 ,p_attribute13 => p_attribute13
173 ,p_attribute14 => p_attribute14
174 ,p_attribute15 => p_attribute15
175 ,p_budgetary_control_flag => p_budgetary_control_flag
176 ,p_ae_header_id => x_ae_header_id
177 ,p_event_id => x_event_id
178 ,p_period_name => l_period_name
179 ,p_creation_date => l_creation_date
180 ,p_created_by => l_created_by
181 ,p_last_update_date => l_last_update_date
182 ,p_last_updated_by => l_last_updated_by
183 ,p_last_update_login => l_last_update_login
184 ,p_retcode => l_retcode
185 ,p_msg_mode => xla_datafixes_pub.g_msg_mode);
186
187 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
188 trace(p_msg => 'Returned from xla_journal_entries_pkg.create_journal_entry_header',
189 p_module => l_log_module,
190 p_level => C_LEVEL_STATEMENT);
191 END IF;
192
193 IF l_retcode = 0 and x_ae_header_id IS NOT NULL THEN
194 xla_datafixes_pub.audit_datafix (p_application_id => p_application_id
195 ,p_ae_header_id => x_ae_header_id
196 ,p_event_id => x_event_id);
197 ELSE
198 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
199 trace(p_msg => 'Failed to create journal entry.',
200 p_module => l_log_module,
201 p_level => C_LEVEL_STATEMENT);
202 END IF;
203 xla_datafixes_pub.Log_error(p_module => l_log_module
204 ,p_error_msg => 'Failed to create journal entry.');
205 END IF;
206
207 FND_MSG_PUB.count_and_get(p_count => x_msg_count
208 ,p_data => x_msg_data);
209
210
211 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
212 trace(p_msg => 'END of function create_journal_entry_header',
213 p_module => l_log_module,
214 p_level => C_LEVEL_PROCEDURE);
215 END IF;
216
217 EXCEPTION
218 WHEN FND_API.G_EXC_ERROR THEN
219 ROLLBACK;
220 x_return_status := FND_API.G_RET_STS_ERROR ;
221 FND_MSG_PUB.count_and_get(p_count => x_msg_count
222 ,p_data => x_msg_data);
223
224 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
225 ROLLBACK;
226 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
227
228 WHEN OTHERS THEN
229 ROLLBACK;
230 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
231 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
232 FND_MSG_PUB.add_exc_msg(C_DEFAULT_MODULE, l_api_name);
233 END IF;
234 FND_MSG_PUB.count_and_get(p_count => x_msg_count
235 ,p_data => x_msg_data);
236
237 END create_journal_entry_header;
238
239
240
241
242 --=============================================================================
243 --
244 --
245 --
246 --=============================================================================
247
248 PROCEDURE create_journal_entry_line
249 (p_api_version IN NUMBER
250 ,p_init_msg_list IN VARCHAR2
251 ,p_application_id IN INTEGER
252 ,p_ae_header_id IN INTEGER
253 ,p_displayed_line_number IN INTEGER
254 ,p_code_combination_id IN INTEGER
255 ,p_gl_transfer_mode IN VARCHAR2
256 ,p_accounting_class_code IN VARCHAR2
257 ,p_currency_code IN VARCHAR2
258 ,p_entered_dr IN NUMBER
259 ,p_entered_cr IN NUMBER
260 ,p_accounted_dr IN NUMBER
261 ,p_accounted_cr IN NUMBER
262 ,p_conversion_type IN VARCHAR2
263 ,p_conversion_date IN DATE
264 ,p_conversion_rate IN NUMBER
265 ,p_party_type_code IN VARCHAR2
266 ,p_party_id IN INTEGER
267 ,p_party_site_id IN INTEGER
268 ,p_description IN VARCHAR2
269 ,p_statistical_amount IN NUMBER
270 ,p_jgzz_recon_ref IN VARCHAR2
271 ,p_attribute_category IN VARCHAR2
272 ,p_encumbrance_type_id IN INTEGER
273 ,p_attribute1 IN VARCHAR2
274 ,p_attribute2 IN VARCHAR2
275 ,p_attribute3 IN VARCHAR2
276 ,p_attribute4 IN VARCHAR2
277 ,p_attribute5 IN VARCHAR2
278 ,p_attribute6 IN VARCHAR2
279 ,p_attribute7 IN VARCHAR2
280 ,p_attribute8 IN VARCHAR2
281 ,p_attribute9 IN VARCHAR2
282 ,p_attribute10 IN VARCHAR2
283 ,p_attribute11 IN VARCHAR2
284 ,p_attribute12 IN VARCHAR2
285 ,p_attribute13 IN VARCHAR2
286 ,p_attribute14 IN VARCHAR2
287 ,p_attribute15 IN VARCHAR2
288 ,x_return_status OUT NOCOPY VARCHAR2
289 ,x_msg_count OUT NOCOPY NUMBER
290 ,x_msg_data OUT NOCOPY VARCHAR2
291 ,x_ae_line_num OUT NOCOPY INTEGER
292 )
293 IS
294 l_api_name CONSTANT VARCHAR2(30) := 'create_journal_entry_line';
295 l_api_version CONSTANT NUMBER := 1.0;
296
297 l_entered_dr NUMBER;
298 l_entered_cr NUMBER;
299 l_currency_code VARCHAR2(30);
300 l_accounted_dr NUMBER;
301 l_accounted_cr NUMBER;
302 l_conversion_type VARCHAR2(30);
303 l_conversion_date DATE;
304 l_conversion_rate NUMBER;
305 l_retcode INTEGER;
306 l_process_status VARCHAR2(1);
307
308 l_log_module VARCHAR2(240);
309
310 l_creation_date DATE;
311 l_created_by INTEGER;
312 l_last_update_date DATE;
313 l_last_updated_by INTEGER;
314 l_last_update_login INTEGER;
315
316 BEGIN
317 IF g_log_enabled THEN
318 l_log_module := C_DEFAULT_MODULE||'.create_journal_entry_line';
319 END IF;
320
321 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
322 trace(p_msg => 'BEGIN of function create_journal_entry_line',
323 p_module => l_log_module,
324 p_level => C_LEVEL_PROCEDURE);
325 END IF;
326
327 IF (FND_API.to_boolean(p_init_msg_list)) THEN
328 FND_MSG_PUB.initialize;
329 END IF;
330
331 -- Standard call to check for call compatibility.
332 IF (NOT FND_API.compatible_api_call
333 (p_current_version_number => l_api_version
334 ,p_caller_version_number => p_api_version
335 ,p_api_name => l_api_name
336 ,p_pkg_name => C_DEFAULT_MODULE))
337 THEN
338 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
339 END IF;
340
341 -- Initialize global variables
342 x_return_status := FND_API.G_RET_STS_SUCCESS;
343
344 -----------------------------------------------------------------------------------
345 -- Validation
346 -----------------------------------------------------------------------------------
347 SELECT evt.process_status_code
348 INTO l_process_status
349 FROM xla_ae_headers xah, xla_events evt
350 WHERE xah.application_id = p_application_id
351 AND xah.ae_header_id = p_ae_header_id
352 AND evt.application_id = p_application_id
353 AND xah.event_id = evt.event_id;
354
355 IF l_process_status <> 'U' THEN
356 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
357 trace(p_msg => 'Entry is already processed.',
358 p_module => l_log_module,
359 p_level => C_LEVEL_STATEMENT);
360 END IF;
361 xla_datafixes_pub.Log_error(p_module => l_log_module
362 ,p_error_msg => 'Entry is already processed.');
363 END IF;
364
365 IF p_accounting_class_code IN ('ROUNDING', 'BALANCE', 'INTRA', 'INTER') THEN
366 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
367 trace(p_msg => 'The amount type '||p_accounting_class_code||' is not allowed.',
368 p_module => l_log_module,
369 p_level => C_LEVEL_STATEMENT);
370 END IF;
371 xla_datafixes_pub.Log_error(p_module =>l_log_module
372 ,p_error_msg =>'The amount type '||p_accounting_class_code||' is not allowed.');
373 END IF;
374
375 l_entered_dr := p_entered_dr;
376 l_entered_cr := p_entered_cr;
377 l_currency_code := p_currency_code;
378 l_accounted_dr := p_accounted_dr;
379 l_accounted_cr := p_accounted_cr;
380 l_conversion_type := p_conversion_type;
381 l_conversion_date := p_conversion_date;
382 l_conversion_rate := p_conversion_rate;
383
384 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
385 trace(p_msg => 'Calling xla_journal_entries_pkg.create_journal_entry_line',
386 p_module => l_log_module,
387 p_level => C_LEVEL_STATEMENT);
388 END IF;
389 xla_journal_entries_pkg.create_journal_entry_line
390 (p_ae_header_id => p_ae_header_id
391 ,p_displayed_line_number=> p_displayed_line_number
392 ,p_application_id => p_application_id
393 ,p_code_combination_id => p_code_combination_id
394 ,p_gl_transfer_mode => p_gl_transfer_mode
395 ,p_accounting_class_code=> p_accounting_class_code
396 ,p_entered_dr => l_entered_dr
397 ,p_entered_cr => l_entered_cr
398 ,p_currency_code => l_currency_code
399 ,p_accounted_dr => l_accounted_dr
400 ,p_accounted_cr => l_accounted_cr
401 ,p_conversion_type => l_conversion_type
402 ,p_conversion_date => l_conversion_date
403 ,p_conversion_rate => l_conversion_rate
404 ,p_party_type_code => p_party_type_code
405 ,p_party_id => p_party_id
406 ,p_party_site_id => p_party_site_id
407 ,p_description => p_description
408 ,p_statistical_amount => p_statistical_amount
409 ,p_jgzz_recon_ref => p_jgzz_recon_ref
410 ,p_attribute_category => p_attribute_category
411 ,p_encumbrance_type_id => p_encumbrance_type_id
412 ,p_attribute1 => p_attribute1
413 ,p_attribute2 => p_attribute2
414 ,p_attribute3 => p_attribute3
415 ,p_attribute4 => p_attribute4
416 ,p_attribute5 => p_attribute5
417 ,p_attribute6 => p_attribute6
418 ,p_attribute7 => p_attribute7
419 ,p_attribute8 => p_attribute8
420 ,p_attribute9 => p_attribute9
421 ,p_attribute10 => p_attribute10
422 ,p_attribute11 => p_attribute11
423 ,p_attribute12 => p_attribute12
424 ,p_attribute13 => p_attribute13
425 ,p_attribute14 => p_attribute14
426 ,p_attribute15 => p_attribute15
427 ,p_ae_line_num => x_ae_line_num
428 ,p_creation_date => l_creation_date
429 ,p_created_by => l_created_by
430 ,p_last_update_date => l_last_update_date
431 ,p_last_updated_by => l_last_updated_by
432 ,p_last_update_login => l_last_update_login
433 ,p_retcode => l_retcode
434 ,p_msg_mode => xla_datafixes_pub.g_msg_mode);
435
436 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
437 trace(p_msg => 'Returned from xla_journal_entries_pkg.create_journal_entry_line',
438 p_module => l_log_module,
439 p_level => C_LEVEL_STATEMENT);
440 END IF;
441
442 IF l_retcode = 0 and x_ae_line_num IS NOT NULL THEN
443 xla_datafixes_pub.audit_datafix (p_application_id => p_application_id
444 ,p_ae_header_id => p_ae_header_id
445 ,p_ae_line_num => x_ae_line_num);
446
447 ELSE
448 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
449 trace(p_msg => 'Failed to create journal line.',
450 p_module => l_log_module,
451 p_level => C_LEVEL_STATEMENT);
452 END IF;
453 xla_datafixes_pub.Log_error(p_module => l_log_module
454 ,p_error_msg => 'Failed to create journal line.');
455 END IF;
456
457 FND_MSG_PUB.count_and_get(p_count => x_msg_count
458 ,p_data => x_msg_data);
459
460
461 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
462 trace(p_msg => 'END of function create_journal_entry_line',
463 p_module => l_log_module,
464 p_level => C_LEVEL_PROCEDURE);
465 END IF;
466
467 EXCEPTION
468 WHEN FND_API.G_EXC_ERROR THEN
469 ROLLBACK;
470 x_return_status := FND_API.G_RET_STS_ERROR ;
471 FND_MSG_PUB.count_and_get(p_count => x_msg_count
472 ,p_data => x_msg_data);
473
474 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
475 ROLLBACK;
476 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
477 FND_MSG_PUB.count_and_get(p_count => x_msg_count
478 ,p_data => x_msg_data);
479
480 WHEN OTHERS THEN
481 ROLLBACK;
482 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
483 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
484 FND_MSG_PUB.add_exc_msg(C_DEFAULT_MODULE, l_api_name);
485 END IF;
486 FND_MSG_PUB.count_and_get(p_count => x_msg_count
487 ,p_data => x_msg_data);
488
489 END create_journal_entry_line;
490
491
492
493
494 --=============================================================================
495 --
496 --
497 --
498 --=============================================================================
499 PROCEDURE complete_journal_entry
500 (p_api_version IN NUMBER
501 ,p_init_msg_list IN VARCHAR2
502 ,p_application_id IN INTEGER
503 ,p_ae_header_id IN INTEGER
504 ,p_completion_option IN VARCHAR2
505 ,x_return_status OUT NOCOPY VARCHAR2
506 ,x_msg_count OUT NOCOPY NUMBER
507 ,x_msg_data OUT NOCOPY VARCHAR2
508 ,x_completion_retcode OUT NOCOPY VARCHAR2)
509 IS
510 l_api_name CONSTANT VARCHAR2(30) := 'complete_journal_entry';
511 l_api_version CONSTANT NUMBER := 1.0;
512
513 CURSOR c_funct_curr IS
514 SELECT xgl.currency_code, xsu.je_source_name
515 FROM xla_gl_ledgers_v xgl
516 , xla_ae_headers xah
517 , xla_events evt
518 , xla_subledgers xsu
519 WHERE xgl.ledger_id = xah.ledger_id
520 AND xsu.application_id = xah.application_id
521 AND xah.ae_header_id = p_ae_header_id
522 AND xah.application_id = p_application_id
523 AND evt.process_status_code = 'U'
524 AND evt.application_id = p_application_id
525 AND xah.event_id = evt.event_id;
526
527 l_log_module VARCHAR2(240);
528
529 l_functional_curr VARCHAR2(30);
530 l_je_source_name VARCHAR2(30);
531 l_ae_status_code VARCHAR2(30);
532 l_funds_status_code VARCHAR2(30);
533 l_completion_seq_value VARCHAR2(100); -- Should this be INTEGER or VARCHAR2 ? (see l_seq_values t_array_int?)
534 l_completion_seq_ver_id INTEGER;
535 l_completed_date DATE;
536 l_gl_transfer_status_code VARCHAR2(30);
537 l_last_update_date DATE;
538 l_last_updated_by INTEGER;
539 l_last_update_login INTEGER;
540 l_transfer_request_id INTEGER;
541
542 BEGIN
543 IF g_log_enabled THEN
544 l_log_module := C_DEFAULT_MODULE||'.complete_journal_entry';
545 END IF;
546
547 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
548 trace(p_msg => 'BEGIN of function complete_journal_entry',
549 p_module => l_log_module,
550 p_level => C_LEVEL_PROCEDURE);
551 END IF;
552
553 IF (FND_API.to_boolean(p_init_msg_list)) THEN
554 FND_MSG_PUB.initialize;
555 END IF;
556
557 -- Standard call to check for call compatibility.
558 IF (NOT FND_API.compatible_api_call
559 (p_current_version_number => l_api_version
560 ,p_caller_version_number => p_api_version
561 ,p_api_name => l_api_name
562 ,p_pkg_name => C_DEFAULT_MODULE))
563 THEN
564 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
565 END IF;
566
567 -- Initialize global variables
568 x_return_status := FND_API.G_RET_STS_SUCCESS;
569 x_completion_retcode := 'S';
570
571
572 -------------------------------------------------------
573 -- Validation
574 -------------------------------------------------------
575 OPEN c_funct_curr;
576 FETCH c_funct_curr INTO l_functional_curr, l_je_source_name;
577 IF c_funct_curr%NOTFOUND THEN
578 CLOSE c_funct_curr;
579 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
580 trace(p_msg => 'There is no such journal entry or it is processed. Please verify.',
581 p_module => l_log_module,
582 p_level => C_LEVEL_STATEMENT);
583 END IF;
584 xla_datafixes_pub.Log_error(p_module => l_log_module
585 ,p_error_msg => 'There is no such journal entry or it is processed. Please verify.');
586 END IF;
587 CLOSE c_funct_curr;
588 -------------------------------------------------------
589
590 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
591 trace(p_msg => 'Calling xla_journal_entries_pkg.complete_journal_entry',
592 p_module => l_log_module,
593 p_level => C_LEVEL_STATEMENT);
594 END IF;
595 xla_journal_entries_pkg.complete_journal_entry
596 (p_ae_header_id => p_ae_header_id
597 ,p_application_id => p_application_id
598 ,p_completion_option => p_completion_option
599 ,p_functional_curr => l_functional_curr
600 ,p_je_source_name => l_je_source_name
601 ,p_ae_status_code => l_ae_status_code
602 ,p_funds_status_code => l_funds_status_code
603 ,p_completion_seq_value => l_completion_seq_value
604 ,p_completion_seq_ver_id => l_completion_seq_ver_id
605 ,p_completed_date => l_completed_date
606 ,p_gl_transfer_status_code => l_gl_transfer_status_code
607 ,p_last_update_date => l_last_update_date
608 ,p_last_updated_by => l_last_updated_by
609 ,p_last_update_login => l_last_update_login
610 ,p_transfer_request_id => l_transfer_request_id
611 ,p_retcode => x_completion_retcode
612 ,p_msg_mode => xla_datafixes_pub.g_msg_mode);
613 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
614 trace(p_msg => 'Returned from xla_journal_entries_pkg.complete_journal_entry',
615 p_module => l_log_module,
616 p_level => C_LEVEL_STATEMENT);
617 END IF;
618
619 IF x_completion_retcode = 'S' THEN
620 xla_datafixes_pub.audit_datafix (p_application_id => p_application_id
621 ,p_ae_header_id => p_ae_header_id);
622
623 ELSE
624 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
625 trace(p_msg => 'Failed to complete journal entry.',
626 p_module => l_log_module,
627 p_level => C_LEVEL_STATEMENT);
628 END IF;
629 xla_datafixes_pub.Log_error(p_module => l_log_module
630 ,p_error_msg => 'Failed to complete journal entry.');
631
632 END IF;
633
634
635 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
636 trace(p_msg => 'END of function complete_journal_entry',
637 p_module => l_log_module,
638 p_level => C_LEVEL_PROCEDURE);
639 END IF;
640
641 EXCEPTION
642 WHEN FND_API.G_EXC_ERROR THEN
643 x_return_status := FND_API.G_RET_STS_ERROR ;
644 FND_MSG_PUB.count_and_get(p_count => x_msg_count
645 ,p_data => x_msg_data);
646 x_completion_retcode := 'X';
647
648 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
649 ROLLBACK;
650 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
651 FND_MSG_PUB.count_and_get(p_count => x_msg_count
652 ,p_data => x_msg_data);
653 x_completion_retcode := 'X';
654
655 WHEN OTHERS THEN
656 ROLLBACK;
657 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
658 x_completion_retcode := 'X';
659 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
660 FND_MSG_PUB.add_exc_msg(C_DEFAULT_MODULE, l_api_name);
661 END IF;
662 FND_MSG_PUB.count_and_get(p_count => x_msg_count
663 ,p_data => x_msg_data);
664
665 END complete_journal_entry;
666
667
668
669 --=============================================================================
670 --
671 -- Following code is executed when the package body is referenced for the first
672 -- time
673 --
674 --=============================================================================
675 BEGIN
676 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
677 g_log_enabled := fnd_log.test
678 (log_level => g_log_level
679 ,module => C_DEFAULT_MODULE);
680
681 IF NOT g_log_enabled THEN
682 g_log_level := C_LEVEL_LOG_DISABLED;
683 END IF;
684
685 END xla_journal_entries_pub_pkg;