[Home] [Help]
PACKAGE BODY: APPS.OKL_REVERSAL_PVT
Source
1 PACKAGE BODY OKL_REVERSAL_PVT AS
2 /* $Header: OKLRREVB.pls 120.10.12020000.2 2012/11/16 06:12:48 racheruv ship $ */
3
4 -- Start of wraper code generated automatically by Debug code generator
5
6 L_MODULE VARCHAR2(40) := 'LEASE.ACCOUNTING.REVERSAL';
7 L_DEBUG_ENABLED CONSTANT VARCHAR2(10) := OKL_DEBUG_PUB.CHECK_LOG_ENABLED;
8 L_LEVEL_PROCEDURE NUMBER;
9 IS_DEBUG_PROCEDURE_ON BOOLEAN;
10
11 -- End of wraper code generated automatically by Debug code generator
12
13 -- Record type for printing the report
14
15 TYPE PROCESS_REC_TYPE IS RECORD
16 (Contract_NUMBER VARCHAR2(90),
17 Transaction_type VARCHAR2(78),
18 Transaction_number VARCHAR2(45),
19 Transaction_date VARCHAR2(36),
20 Transaction_Line_number VARCHAR2(21),
21 Amount VARCHAR2(54),
22 Org_accounting_date VARCHAR2(36),
23 Reversal_Accounting_Date VARCHAR2(36));
24
25 l_contract_num_len NUMBER:=30;
26 l_transaction_type_len NUMBER:=26;
27 l_transaction_num_len NUMBER:=15;
28 l_transaction_date_len NUMBER:=12;
29 l_transaction_line_num_len NUMBER:=7;
30 l_amount_len NUMBER:=18;
31 l_accounting_date_len NUMBER:=12;
32 l_rev_acc_date_len NUMBER:=12;
33
34
35
36
37 --- Function to get the proper length depending upon the data to be printed.
38
39 FUNCTION GET_PROPER_LENGTH(p_input_data IN VARCHAR2,
40 p_input_length IN NUMBER,
41 p_input_type IN VARCHAR2)
42 RETURN VARCHAR2
43
44 IS
45
46 x_return_data VARCHAR2(1000);
47
48 BEGIN
49
50 IF (p_input_type = 'TITLE') THEN
51 IF (p_input_data IS NOT NULL) THEN
52 x_return_data := RPAD(SUBSTR(ltrim(rtrim(p_input_data)),1,p_input_length),p_input_length,' ');
53 ELSE
54 x_return_data := RPAD(' ',p_input_length,' ');
55 END IF;
56 ELSE
57 IF (p_input_data IS NOT NULL) THEN
58 IF (length(p_input_data) > p_input_length) THEN
59 x_return_data := RPAD('*',p_input_length,'*');
60 ELSE
61 x_return_data := RPAD(p_input_data,p_input_length,' ');
62 END IF;
63 ELSE
64 x_return_data := RPAD(' ',p_input_length,' ');
65 END IF;
66 END IF;
67
68 RETURN x_return_data;
69
70 END GET_PROPER_LENGTH;
71
72
73
74
75
76
77 PROCEDURE REVERSE_ENTRIES(p_errbuf OUT NOCOPY VARCHAR2,
78 p_retcode OUT NOCOPY NUMBER,
79 p_period IN VARCHAR2)
80 IS
81
82 BEGIN
83 --Stubbed out this procedure for Bug 5707866 (SLA Uptake of periodic reversal concurrent program).
84
85 FND_MESSAGE.SET_NAME( application =>g_app_name ,
86 NAME => 'OKL_OBS_PERD_REV_PRG' );
87 FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MESSAGE.GET);
88
89 END REVERSE_ENTRIES;
90
91
92
93 PROCEDURE REVERSE_ENTRIES(p_api_version IN NUMBER,
94 p_init_msg_list IN VARCHAR2,
95 x_return_status OUT NOCOPY VARCHAR2,
96 x_msg_count OUT NOCOPY NUMBER,
97 x_msg_data OUT NOCOPY VARCHAR2,
98 p_source_id IN NUMBER,
99 p_source_table IN VARCHAR2,
100 p_acct_date IN DATE)
101 IS
102
103 TYPE ref_cursor IS REF CURSOR;
104 src_csr ref_cursor;
105
106
107 l_set_of_books_id NUMBER;
108 l_org_id NUMBER;
109 l_period_name GL_PERIODS_V.period_name%TYPE;
110 l_closing_status GL_PERIOD_STATUSES_V.closing_status%TYPE;
111
112 l_new_description OKL_AE_HEADERS.DESCRIPTION%TYPE;
113
114 l_dist_tbl_in OKL_TRNS_ACC_DSTRS_PUB.tabv_tbl_type;
115 l_dist_tbl_out OKL_TRNS_ACC_DSTRS_PUB.tabv_tbl_type;
116
117 i NUMBER := 1;
118 j NUMBER := 0;
119 l_line_number NUMBER := 0;
120 l_validate_flag VARCHAR2(1);
121
122 l_return_status VARCHAR2(1);
123 l_api_name VARCHAR2(30) := 'REVERSE_ENTRIES';
124 l_init_msg_list VARCHAR2(1);
125 l_msg_count NUMBER;
126 l_msg_data VARCHAR2(2000);
127 l_api_version NUMBER := 1.0;
128 l_application_id NUMBER := 101; -- This should be changed to 540
129 l_dummy_var VARCHAR2(1);
130 l_string VARCHAR2(500);
131 l_event_number NUMBER := 0;
132 l_start_date DATE;
133 l_end_date DATE;
134 l_period_status GL_PERIOD_STATUSES_V.CLOSING_STATUS%TYPE;
135
136
137
138 CURSOR prdst_csr(v_period_name VARCHAR2) IS
139 SELECT prdst.closing_status
140 FROM GL_PERIOD_STATUSES_V prdst
141 WHERE prdst.ledger_id = OKL_ACCOUNTING_UTIL.get_set_of_books_id
142 AND prdst.period_name = v_period_name
143 AND prdst.APPLICATION_ID = l_application_id;
144
145 CURSOR check_dist_csr
146 IS
147 SELECT 'x'
148 FROM OKL_TRNS_ACC_DSTRS
149 WHERE source_id = p_source_id
150 AND source_table = p_source_table
151 AND REVERSE_EVENT_FLAG = 'Y';
152
153
154 CURSOR dist_csr IS
155 SELECT ID
156 ,CURRENCY_CONVERSION_TYPE
157 ,SET_OF_BOOKS_ID
158 ,CR_DR_FLAG
159 ,CODE_COMBINATION_ID
160 ,ORG_ID
161 ,CURRENCY_CODE
162 ,AE_LINE_TYPE
163 ,TEMPLATE_ID
164 ,SOURCE_ID
165 ,SOURCE_TABLE
166 ,OBJECT_VERSION_NUMBER
167 ,AMOUNT
168 ,ACCOUNTED_AMOUNT
169 ,GL_DATE
170 ,PERCENTAGE
171 ,COMMENTS
172 ,POST_REQUEST_ID
173 ,CURRENCY_CONVERSION_DATE
174 ,CURRENCY_CONVERSION_RATE
175 ,REQUEST_ID
176 ,PROGRAM_APPLICATION_ID
177 ,PROGRAM_ID
178 ,PROGRAM_UPDATE_DATE
179 ,ATTRIBUTE_CATEGORY
180 ,ATTRIBUTE1
181 ,ATTRIBUTE2
182 ,ATTRIBUTE3
183 ,ATTRIBUTE4
184 ,ATTRIBUTE5
185 ,ATTRIBUTE6
186 ,ATTRIBUTE7
187 ,ATTRIBUTE8
188 ,ATTRIBUTE9
189 ,ATTRIBUTE10
190 ,ATTRIBUTE11
191 ,ATTRIBUTE12
192 ,ATTRIBUTE13
193 ,ATTRIBUTE14
194 ,ATTRIBUTE15
195 ,CREATED_BY
196 ,CREATION_DATE
197 ,LAST_UPDATED_BY
198 ,LAST_UPDATE_DATE
199 ,LAST_UPDATE_LOGIN
200 ,AET_ID
201 ,POSTED_YN
202 ,AE_CREATION_ERROR
203 ,GL_REVERSAL_FLAG
204 ,POST_TO_GL
205 ,REVERSE_EVENT_FLAG
206 ,ORIGINAL_DIST_ID
207 FROM OKL_TRNS_ACC_DSTRS
208 WHERE source_table = p_source_table
209 AND source_id = p_source_id;
210
211 dist_rec dist_csr%ROWTYPE;
212
213 cursor get_txl_amt is
214 select nvl(amount, 0)
215 from okl_txl_cntrct_lns
216 where id = p_source_id;
217
218 l_txl_amt number;
219
220 -- Cursor to get the short_name to be passed as
221 -- the representation code. SLA Uptake
222 -- extended to get the representation based on tcn_id.. MG Uptake
223 CURSOR get_gl_short_name_csr(p_tcn_id NUMBER) IS
224 SELECT rep.representation_code
225 FROM okl_trx_contracts_all o,
226 okl_representations_v rep
227 WHERE o.set_of_books_id = rep.ledger_id
228 AND o.id = p_tcn_id;
229
230 --Cursor to get the Account Derivation Option.. SLA Uptake
231 CURSOR get_acct_derivation_csr IS
232 SELECT account_derivation
233 FROM okl_sys_acct_opts;
234
235 --Cursor to get the transaction header id .. SLA Uptake
236 CURSOR get_tcn_id_csr IS
237 SELECT tcn_id
238 FROM okl_txl_cntrct_lns_all
239 WHERE id = p_source_id;
240
241 -- Cursor to get transaction type name .. SLA Uptake
242 CURSOR get_try_name_csr(p_tcn_id IN NUMBER) IS
243 SELECT t.name
244 FROM okl_trx_types_tl t, okl_trx_contracts_all tcn
245 WHERE tcn.try_id = t.id
246 AND tcn.id = p_tcn_id
247 AND LANGUAGE = 'US';
248
249 l_account_derivation_option VARCHAR2(10);
250 l_tcn_id NUMBER;
251 l_try_name VARCHAR2(150);
252 l_gl_short_name VARCHAR2(20);
253 l_event_id NUMBER;
254 l_exist_event_id NUMBER;
255 l_exist_event_date DATE;
256 l_accounting_event_id NUMBER;
257
258
259 BEGIN
260
261
262 x_return_status := OKL_API.G_RET_STS_SUCCESS;
263
264 -- Validate Source id and Source Table
265
266
267 IF (p_source_table IS NULL OR p_source_table = OKL_API.G_MISS_CHAR) THEN
268 OKL_API.SET_MESSAGE(p_app_name => g_app_name
269 ,p_msg_name => g_required_value
270 ,p_token1 => g_col_name_token
271 ,p_token1_value => 'source_table');
272 x_return_status := OKL_API.G_RET_STS_ERROR;
273 RAISE OKL_API.G_EXCEPTION_ERROR;
274 END IF;
275
276 IF (p_source_id IS NULL OR p_source_id = OKL_API.G_MISS_NUM) THEN
277 OKL_API.SET_MESSAGE(p_app_name => g_app_name
278 ,p_msg_name => g_required_value
279 ,p_token1 => g_col_name_token
280 ,p_token1_value => 'source_id');
281 x_return_status := OKL_API.G_RET_STS_ERROR;
282 RAISE OKL_API.G_EXCEPTION_ERROR;
283 END IF;
284
285 IF (p_acct_date IS NULL OR p_acct_date = OKL_API.G_MISS_DATE) THEN
286 OKL_API.SET_MESSAGE(p_app_name => g_app_name
287 ,p_msg_name => g_required_value
288 ,p_token1 => g_col_name_token
289 ,p_token1_value => 'acct_date');
290 x_return_status := OKL_API.G_RET_STS_ERROR;
291 RAISE OKL_API.G_EXCEPTION_ERROR;
292 END IF;
293
294 l_validate_flag :=
295 OKL_ACCOUNTING_UTIL.VALIDATE_SOURCE_ID_TABLE(p_source_id => p_source_Id,
296 p_source_table => p_source_table);
297
298 IF (l_validate_flag = OKL_API.G_FALSE) THEN
299 OKL_API.set_message(p_app_name => G_APP_NAME,
300 p_msg_name => 'OKL_INVALID_SOURCE_TBL_ID');
301
302 RAISE OKL_API.G_EXCEPTION_ERROR;
303
304 END IF;
305
306
307 OKL_ACCOUNTING_UTIL.get_period_info(p_date => p_acct_date,
308 p_period_name => l_period_name,
309 p_start_date => l_start_date,
310 p_end_date => l_end_date);
311
312 IF (l_period_name IS NULL) THEN
313 OKL_API.set_message(p_app_name => G_APP_NAME,
314 p_msg_name => 'OKL_ACCT_PERD_NOT_FOUND',
315 p_token1 => 'ACCT_DATE',
316 p_token1_value => p_acct_date);
317 RAISE OKL_API.G_EXCEPTION_ERROR;
318 END IF;
319
320 l_period_status := OKL_ACCOUNTING_UTIL.get_okl_period_status(l_period_name);
321
322 IF (l_period_status NOT IN ('O','F')) THEN
323 OKL_API.set_message(p_app_name => G_APP_NAME,
324 p_msg_name => 'OKL_PERD_INVALID_STATUS',
325 p_token1 => 'PERIOD',
326 p_token1_value => l_period_name);
327
328 RAISE OKL_API.G_EXCEPTION_ERROR;
329 END IF;
330
331 -- If the selected event is already reversed earlier then Abort the processing
332
333 OPEN check_dist_csr;
334 FETCH check_dist_csr INTO l_dummy_var;
335 IF (check_dist_csr%FOUND) THEN
336 OKL_API.set_message(p_app_name => G_APP_NAME,
337 p_msg_name => 'OKL_TXN_ALREADY_REVERSED');
338
339 CLOSE check_dist_csr;
340 RAISE OKL_API.G_EXCEPTION_ERROR;
341 END IF;
342 CLOSE check_dist_csr;
343
344
345 OPEN dist_csr;
346 FETCH dist_csr INTO dist_rec;
347 IF (dist_csr%NOTFOUND) THEN
348 -- check if the txl has any amount. If the line amount is zero, no distributions are created.
349 -- The error conditions occurs when the line amt is not zero and there are no distributions.
350 -- bug 15881611 .. start
351 open get_txl_amt;
352 fetch get_txl_amt into l_txl_amt;
353 close get_txl_amt;
354 if l_txl_amt = 0 then
355 close dist_csr;
356 return;
357 end if;
358 -- bug 15881611 .. end
359 -- Santonyr on 14-Feb-2003 Fixed bug 2804913
360 OKL_API.set_message(p_app_name => G_APP_NAME,
361 p_msg_name => 'OKL_DIST_NOT_FOUND');
362 CLOSE dist_csr;
363 RAISE OKL_API.G_EXCEPTION_ERROR;
364 END IF;
365
366 -- SLA uptake changes .. start
367 l_event_id := NULL;
368 l_exist_event_id := NULL;
369 l_exist_event_date := NULL;
370
371 OPEN get_acct_derivation_csr;
372 FETCH get_acct_derivation_csr INTO l_account_derivation_option;
373 CLOSE get_acct_derivation_csr;
374
375 IF p_source_table = 'OKL_TXL_CNTRCT_LNS' THEN
376 OPEN get_tcn_id_csr;
377 FETCH get_tcn_id_csr INTO l_tcn_id;
378 CLOSE get_tcn_id_csr;
379
380 OPEN get_try_name_csr(l_tcn_id);
381 FETCH get_try_name_csr INTO l_try_name;
382 CLOSE get_try_name_csr;
383
384 IF l_try_name IN
385 ('Booking','Rebook','Release','Termination','Evergreen','Investor',
386 'Asset Disposition', 'Receipt Application','Principal Adjustment',
387 'Specific Loss Provision','General Loss Provision','Accrual',
388 'Upfront Tax') THEN
389
390 -- changed the cursor to fetch gl short name based on tcn_id .. MG uptake
391 OPEN get_gl_short_name_csr(l_tcn_id);
392 FETCH get_gl_short_name_csr INTO l_gl_short_name;
393 CLOSE get_gl_short_name_csr;
394
395 -- Verify existence of event.It's possible to have an event raised for one of the
396 -- transaction lines before. If event is raised for the same transaction, event type
397 -- and event date then re-use it. Do not raise a new event.
398 OKL_XLA_EVENTS_PVT.event_exists(p_api_version => l_api_version
399 ,p_init_msg_list => l_init_msg_list
400 ,x_return_status => l_return_status
401 ,x_msg_count => l_msg_count
402 ,x_msg_data => l_msg_data
403 ,p_tcn_id => l_tcn_id
404 ,p_action_type => 'REVERSE'
405 ,x_event_id => l_exist_event_id
406 ,x_event_date => l_exist_event_date);
407
408 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
409 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
410 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
411 RAISE OKL_API.G_EXCEPTION_ERROR;
412 END IF;
413
414 l_accounting_event_id := l_exist_event_id;
415
416 IF (NVL(l_exist_event_id,0) = 0 AND
417 NVL(l_exist_event_date, trunc(sysdate) + 1) <> p_acct_date) THEN
418 -- END of code to be deleted once all teams uptake AE call.
419
420 l_event_id :=
421 OKL_XLA_EVENTS_PVT.create_event(p_api_version => l_api_version
422 ,p_init_msg_list => l_init_msg_list
423 ,x_return_status => l_return_status
424 ,x_msg_count => l_msg_count
425 ,x_msg_data => l_msg_data
426 ,p_tcn_id => l_tcn_id
427 ,p_gl_date => p_acct_date
428 ,p_action_type => 'REVERSE'
429 ,p_representation_code => l_gl_short_name
430 );
431
432 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
433 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
434 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
435 RAISE OKL_API.G_EXCEPTION_ERROR;
436 END IF;
437
438 l_accounting_event_id := l_event_id;
439
440 END IF; -- if l_exist_event_id
441 END IF; -- IF l_try_name
442
443 END IF; -- IF p_source_table
444 -- SLA uptake changes .. end
445 i := 1;
446
447 LOOP
448
449 -- SLA Uptake modifications.. start
450 IF (dist_rec.CR_DR_FLAG IS NULL) THEN
451 l_dist_tbl_in(i).CR_DR_FLAG := NULL;
452 l_dist_tbl_in(i).AMOUNT := -1 * dist_rec.amount;
453 l_dist_tbl_in(i).ACCOUNTED_AMOUNT := -1 * dist_rec.accounted_amount;
454 ELSIF (dist_rec.CR_DR_FLAG = 'D') THEN
455 l_dist_tbl_in(i).CR_DR_FLAG := 'C';
456 l_dist_tbl_in(i).AMOUNT := dist_rec.amount;
457 l_dist_tbl_in(i).ACCOUNTED_AMOUNT := dist_rec.accounted_amount;
458 ELSE
459 l_dist_tbl_in(i).CR_DR_FLAG := 'D';
460 l_dist_tbl_in(i).AMOUNT := dist_rec.amount;
461 l_dist_tbl_in(i).ACCOUNTED_AMOUNT := dist_rec.accounted_amount;
462 END IF;
463 -- SLA Uptake modifications .. end
464
465 l_dist_tbl_in(i).CURRENCY_CONVERSION_TYPE := dist_rec.currency_conversion_type;
466 l_dist_tbl_in(i).CODE_COMBINATION_ID := dist_rec.code_combination_id;
467 l_dist_tbl_in(i).CURRENCY_CODE := dist_rec.currency_code;
468 l_dist_tbl_in(i).AE_LINE_TYPE := dist_rec.ae_line_type;
469 l_dist_tbl_in(i).TEMPLATE_ID := dist_rec.template_id;
470 l_dist_tbl_in(i).SOURCE_ID := dist_rec.source_id;
471 l_dist_tbl_in(i).SOURCE_TABLE := dist_rec.source_table;
472 l_dist_tbl_in(i).GL_DATE := p_acct_date;
473 l_dist_tbl_in(i).PERCENTAGE := dist_rec.percentage;
474 l_dist_tbl_in(i).COMMENTS := dist_rec.comments;
475 l_dist_tbl_in(i).CURRENCY_CONVERSION_DATE := dist_rec.currency_conversion_date;
476 l_dist_tbl_in(i).CURRENCY_CONVERSION_RATE := dist_rec.currency_conversion_rate;
477 l_dist_tbl_in(i).ATTRIBUTE_CATEGORY := dist_rec.attribute_category;
478 l_dist_tbl_in(i).ATTRIBUTE1 := dist_rec.attribute1;
479 l_dist_tbl_in(i).ATTRIBUTE2 := dist_rec.attribute2;
480 l_dist_tbl_in(i).ATTRIBUTE3 := dist_rec.attribute3;
481 l_dist_tbl_in(i).ATTRIBUTE4 := dist_rec.attribute4;
482 l_dist_tbl_in(i).ATTRIBUTE5 := dist_rec.attribute5;
483 l_dist_tbl_in(i).ATTRIBUTE6 := dist_rec.attribute6;
484 l_dist_tbl_in(i).ATTRIBUTE7 := dist_rec.attribute7;
485 l_dist_tbl_in(i).ATTRIBUTE8 := dist_rec.attribute8;
486 l_dist_tbl_in(i).ATTRIBUTE9 := dist_rec.attribute9;
487 l_dist_tbl_in(i).ATTRIBUTE10 := dist_rec.attribute10;
488 l_dist_tbl_in(i).ATTRIBUTE11 := dist_rec.attribute11;
489 l_dist_tbl_in(i).ATTRIBUTE12 := dist_rec.attribute12;
490 l_dist_tbl_in(i).ATTRIBUTE13 := dist_rec.attribute13;
491 l_dist_tbl_in(i).ATTRIBUTE14 := dist_rec.attribute14;
492 l_dist_tbl_in(i).ATTRIBUTE15 := dist_rec.attribute15;
493 l_dist_tbl_in(i).AET_ID := NULL;
494 l_dist_tbl_in(i).POSTED_YN := 'Y';
495 l_dist_tbl_in(i).AE_CREATION_ERROR := NULL;
496 l_dist_tbl_in(i).GL_REVERSAL_FLAG := 'N';
497 l_dist_tbl_in(i).POST_TO_GL := dist_rec.post_to_gl;
498 l_dist_tbl_in(i).REVERSE_EVENT_FLAG := 'Y';
499 l_dist_tbl_in(i).ORIGINAL_DIST_ID := dist_rec.ID;
500 l_dist_tbl_in(i).ACCOUNTING_EVENT_ID := l_accounting_event_id;
501 -- populate the set of books.
502 l_dist_tbl_in(i).set_of_books_id := dist_rec.set_of_books_id;
503
504 FETCH dist_csr INTO dist_rec;
505 EXIT WHEN dist_csr%NOTFOUND;
506 i := i + 1;
507
508 END LOOP;
509
510 CLOSE dist_csr;
511
512 -- Start of wraper code generated automatically by Debug code generator for OKL_TRNS_ACC_DSTRS_PUB.insert_trns_acc_dstrs
513 IF(L_DEBUG_ENABLED='Y') THEN
514 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
515 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
516 END IF;
517 IF(IS_DEBUG_PROCEDURE_ON) THEN
518 BEGIN
519 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRREVB.pls call OKL_TRNS_ACC_DSTRS_PUB.insert_trns_acc_dstrs ');
520 END;
521 END IF;
522
523 OKL_TRNS_ACC_DSTRS_PUB.insert_trns_acc_dstrs(p_api_version => l_api_version,
524 p_init_msg_list => p_init_msg_list,
525 x_return_status => l_return_status,
526 x_msg_count => x_msg_count,
527 x_msg_data => x_msg_data,
528 p_tabv_tbl => l_dist_tbl_in,
529 x_tabv_tbl => l_dist_tbl_out);
530 IF(IS_DEBUG_PROCEDURE_ON) THEN
531 BEGIN
532 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRREVB.pls call OKL_TRNS_ACC_DSTRS_PUB.insert_trns_acc_dstrs ');
533 END;
534 END IF;
535 -- End of wraper code generated automatically by Debug code generator for OKL_TRNS_ACC_DSTRS_PUB.insert_trns_acc_dstrs
536
537
538 x_return_status := l_return_status;
539
540 EXCEPTION
541
542 WHEN OKL_API.G_EXCEPTION_ERROR THEN
543
544 x_return_status := OKL_API.G_RET_STS_ERROR;
545
546 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
547
548 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
549
550 WHEN OTHERS THEN
551
552 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
553
554
555 END REVERSE_ENTRIES;
556
557
558
559 PROCEDURE REVERSE_ENTRIES(p_api_version IN NUMBER,
560 p_init_msg_list IN VARCHAR2,
561 x_return_status OUT NOCOPY VARCHAR2,
562 x_msg_count OUT NOCOPY NUMBER,
563 x_msg_data OUT NOCOPY VARCHAR2,
564 p_source_table IN VARCHAR2,
565 p_acct_date IN DATE,
566 p_source_id_tbl IN SOURCE_ID_TBL_TYPE)
567 IS
568
569 l_api_version CONSTANT NUMBER := 1;
570 l_api_name CONSTANT VARCHAR2(30) := 'REVERSE_ENTRIES';
571 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
572 l_overall_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
573 i NUMBER := 0;
574 l_msg_count NUMBER := 0;
575 l_msg_data VARCHAR2(2000);
576
577
578 BEGIN
579
580 IF (p_source_id_tbl.COUNT > 0) THEN
581
582 i := p_source_id_tbl.FIRST;
583
584 LOOP
585
586 REVERSE_ENTRIES(p_api_version => 1.0,
587 p_init_msg_list => OKL_API.G_FALSE,
588 x_return_status => l_return_status,
589 x_msg_count => l_msg_count,
590 x_msg_data => l_msg_data,
591 p_source_id => p_source_id_tbl(i),
592 p_source_table => p_source_table,
593 p_acct_date => p_acct_date);
594
595 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
596 IF (l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR) THEN
597 l_overall_status := l_return_status;
598 END IF;
599 END IF;
600
601
602 EXIT WHEN (i = p_source_id_tbl.LAST);
603 i := p_source_id_tbl.NEXT(i);
604
605
606 END LOOP;
607
608 END IF;
609
610
611 x_return_status := l_overall_status;
612 x_msg_data := l_msg_data;
613 x_msg_count := l_msg_count;
614
615
616 END REVERSE_ENTRIES;
617
618
619
620 PROCEDURE SUBMIT_PERIOD_REVERSAL(p_api_version IN NUMBER,
621 p_init_msg_list IN VARCHAR2,
622 x_return_status OUT NOCOPY VARCHAR2,
623 x_msg_count OUT NOCOPY NUMBER,
624 x_msg_data OUT NOCOPY VARCHAR2,
625 p_period IN VARCHAR2,
626 x_request_id OUT NOCOPY NUMBER)
627 IS
628
629 l_api_version CONSTANT NUMBER := 1.0;
630 l_api_name CONSTANT VARCHAR2(30) := 'SUBMIT_PERIOD_REVERSAL';
631 l_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
632 l_init_msg_list VARCHAR2(20) DEFAULT Okl_Api.G_FALSE;
633 l_msg_count NUMBER;
634 l_msg_data VARCHAR2(2000);
635
636 BEGIN
637
638 x_return_status := OKL_API.G_RET_STS_SUCCESS;
639
640 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
641 G_PKG_NAME,
642 p_init_msg_list,
643 l_api_version,
644 p_api_version,
645 '_PVT',
646 x_return_status);
647 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
648 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
649 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
650 RAISE OKL_API.G_EXCEPTION_ERROR;
651 END IF;
652
653 -- check for period name before submitting the request.
654 IF (p_period IS NULL) OR (p_period = Okl_Api.G_MISS_CHAR) THEN
655 Okc_Api.set_message('OKC', G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Period Name');
656 RAISE Okl_Api.G_EXCEPTION_ERROR;
657 END IF;
658
659 -- Submit Concurrent Program Request for interest calculation
660
661 FND_REQUEST.set_org_id(mo_global.get_current_org_id); --MOAC- Concurrent request
662 x_request_id := FND_REQUEST.SUBMIT_REQUEST
663 (application => 'OKL',
664 program => 'PERIOD_REVERSAL',
665 description => 'Period Reversal',
666 argument1 => p_period);
667
668 IF x_request_id = 0 THEN
669 Okc_Api.set_message(p_app_name => 'OFA',
670 p_msg_name => 'FA_DEPRN_TAX_ERROR',
671 p_token1 => 'REQUEST_ID',
672 p_token1_value => x_request_id);
673 RAISE okl_api.g_exception_error;
674
675 END IF;
676
677 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
678
679 EXCEPTION
680
681 WHEN OKL_API.G_EXCEPTION_ERROR THEN
682 x_return_status := OKL_API.HANDLE_EXCEPTIONS
683 (
684 l_api_name,
685 G_PKG_NAME,
686 'OKL_API.G_RET_STS_ERROR',
687 x_msg_count,
688 x_msg_data,
689 '_PVT'
690 );
691 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
692 x_return_status := OKL_API.HANDLE_EXCEPTIONS
693 (
694 l_api_name,
695 G_PKG_NAME,
696 'OKL_API.G_RET_STS_UNEXP_ERROR',
697 x_msg_count,
698 x_msg_data,
699 '_PVT'
700 );
701 WHEN OTHERS THEN
702 x_return_status := OKL_API.HANDLE_EXCEPTIONS
703 (
704 l_api_name,
705 G_PKG_NAME,
706 'OTHERS',
707 x_msg_count,
708 x_msg_data,
709 '_PVT'
710 );
711
712
713 END SUBMIT_PERIOD_REVERSAL;
714
715
716 END OKL_REVERSAL_PVT;