81: p_days_in_year = 'ACTUAL'
82: THEN
83: x_day_count_method := 'ACTUAL';
84: ELSE
85: x_return_status := OKL_API.G_RET_STS_ERROR;
86: RETURN;
87: END IF;
88: --print( l_api_name || ': ' || 'l_days_in_month= ' || p_days_in_month ||
89: -- ' | l_days_in_year = ' || p_days_in_year);
87: END IF;
88: --print( l_api_name || ': ' || 'l_days_in_month= ' || p_days_in_month ||
89: -- ' | l_days_in_year = ' || p_days_in_year);
90:
91: x_return_status := OKL_API.G_RET_STS_SUCCESS;
92: END get_day_count_method;
93:
94:
95: PROCEDURE get_days_in_year_and_month(
113: x_days_in_month := 'ACTUAL';
114: x_days_in_year := 'ACTUAL';
115: ELSE
116: --print( l_api_name || ': ' || 'p_day_count_method= ' || p_day_count_method );
117: x_return_status := OKL_API.G_RET_STS_ERROR;
118: RETURN;
119: END IF;
120: --print( l_api_name || ': ' || 'l_days_in_month= ' || x_days_in_month ||
121: -- ' | l_days_in_year = ' || x_days_in_year);
118: RETURN;
119: END IF;
120: --print( l_api_name || ': ' || 'l_days_in_month= ' || x_days_in_month ||
121: -- ' | l_days_in_year = ' || x_days_in_year);
122: x_return_status := OKL_API.G_RET_STS_SUCCESS;
123: END get_days_in_year_and_month;
124:
125: -- Procedure to fetch the day convention from the OKL_K_RATE_PARAMS
126: -- if not found reach the SGT assosiated and fetch the day conventions
211: END IF;
212: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
213: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'Month / Year = ' || l_days_in_month || '/' || l_days_in_year );
214: END IF;
215: IF l_return_status = OKL_API.G_RET_STS_ERROR THEN
216: RAISE OKL_API.G_EXCEPTION_ERROR;
217: END IF;
218: -- Return the values
219: x_days_in_month := l_days_in_month;
212: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
213: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'Month / Year = ' || l_days_in_month || '/' || l_days_in_year );
214: END IF;
215: IF l_return_status = OKL_API.G_RET_STS_ERROR THEN
216: RAISE OKL_API.G_EXCEPTION_ERROR;
217: END IF;
218: -- Return the values
219: x_days_in_month := l_days_in_month;
220: x_days_in_year := l_days_in_year;
219: x_days_in_month := l_days_in_month;
220: x_days_in_year := l_days_in_year;
221: x_return_status := l_return_status;
222: EXCEPTION
223: WHEN OKL_API.G_EXCEPTION_ERROR THEN
224: x_return_status := G_RET_STS_ERROR;
225: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
226: x_return_status := G_RET_STS_UNEXP_ERROR;
227: WHEN OTHERS THEN
221: x_return_status := l_return_status;
222: EXCEPTION
223: WHEN OKL_API.G_EXCEPTION_ERROR THEN
224: x_return_status := G_RET_STS_ERROR;
225: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
226: x_return_status := G_RET_STS_UNEXP_ERROR;
227: WHEN OTHERS THEN
228: OKL_API.SET_MESSAGE (
229: p_app_name => G_APP_NAME,
224: x_return_status := G_RET_STS_ERROR;
225: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
226: x_return_status := G_RET_STS_UNEXP_ERROR;
227: WHEN OTHERS THEN
228: OKL_API.SET_MESSAGE (
229: p_app_name => G_APP_NAME,
230: p_msg_name => G_DB_ERROR,
231: p_token1 => G_PROG_NAME_TOKEN,
232: p_token1_value => l_api_name,
281: l_debug_enabled VARCHAR2(10);
282: is_debug_procedure_on BOOLEAN;
283: is_debug_statement_on BOOLEAN;
284: BEGIN
285: l_return_status := OKL_API.G_RET_STS_SUCCESS;
286: l_debug_enabled := okl_debug_pub.check_log_enabled;
287: is_debug_procedure_on := okl_debug_pub.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
288: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
289: 'begin debug OKLRPIUB.pls call get_so_hdr');
290: -- check for logging on STATEMENT level
291: is_debug_statement_on := okl_debug_pub.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
292: -- Call START_ACTIVITY to create savepoint, check compatibility
293: -- and initialize message list
294: l_return_status := OKL_API.START_ACTIVITY(
295: p_api_name => l_api_name,
296: p_pkg_name => G_PKG_NAME,
297: p_init_msg_list => p_init_msg_list,
298: l_api_version => l_api_version,
299: p_api_version => p_api_version,
300: p_api_type => g_api_type,
301: x_return_status => x_return_status);
302: --Check if activity started successfully
303: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
304: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
305: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
306: RAISE OKL_API.G_EXCEPTION_ERROR;
307: END IF;
300: p_api_type => g_api_type,
301: x_return_status => x_return_status);
302: --Check if activity started successfully
303: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
304: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
305: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
306: RAISE OKL_API.G_EXCEPTION_ERROR;
307: END IF;
308: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
301: x_return_status => x_return_status);
302: --Check if activity started successfully
303: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
304: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
305: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
306: RAISE OKL_API.G_EXCEPTION_ERROR;
307: END IF;
308: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
309: ': p_so_type =' || p_so_type );
302: --Check if activity started successfully
303: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
304: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
305: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
306: RAISE OKL_API.G_EXCEPTION_ERROR;
307: END IF;
308: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
309: ': p_so_type =' || p_so_type );
310: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
340: -- Code to be written for handling the Standard Quote
341: NULL;
342: ELSE
343: -- Code to be written for raising an exception
344: OKL_API.SET_MESSAGE( p_app_name => g_app_name,
345: p_msg_name => g_invalid_value,
346: p_token1 => g_col_name_token,
347: p_token1_value => 'QQ_ID');
348: RAISE OKL_API.G_EXCEPTION_ERROR;
344: OKL_API.SET_MESSAGE( p_app_name => g_app_name,
345: p_msg_name => g_invalid_value,
346: p_token1 => g_col_name_token,
347: p_token1_value => 'QQ_ID');
348: RAISE OKL_API.G_EXCEPTION_ERROR;
349: END IF;
350: x_so_hdr_rec := l_so_hdr_rec;
351: x_return_status := l_return_status;
352: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
348: RAISE OKL_API.G_EXCEPTION_ERROR;
349: END IF;
350: x_so_hdr_rec := l_so_hdr_rec;
351: x_return_status := l_return_status;
352: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
353: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
354: 'end debug OKLRPIUB.pls call get_so_hdr');
355: EXCEPTION
356: WHEN OKL_API.G_EXCEPTION_ERROR THEN
352: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
353: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
354: 'end debug OKLRPIUB.pls call get_so_hdr');
355: EXCEPTION
356: WHEN OKL_API.G_EXCEPTION_ERROR THEN
357: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
358: p_api_name => l_api_name,
359: p_pkg_name => G_PKG_NAME,
360: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
353: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
354: 'end debug OKLRPIUB.pls call get_so_hdr');
355: EXCEPTION
356: WHEN OKL_API.G_EXCEPTION_ERROR THEN
357: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
358: p_api_name => l_api_name,
359: p_pkg_name => G_PKG_NAME,
360: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
361: x_msg_count => x_msg_count,
356: WHEN OKL_API.G_EXCEPTION_ERROR THEN
357: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
358: p_api_name => l_api_name,
359: p_pkg_name => G_PKG_NAME,
360: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
361: x_msg_count => x_msg_count,
362: x_msg_data => x_msg_data,
363: p_api_type => g_api_type);
364: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
360: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
361: x_msg_count => x_msg_count,
362: x_msg_data => x_msg_data,
363: p_api_type => g_api_type);
364: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
365: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
366: p_api_name => l_api_name,
367: p_pkg_name => G_PKG_NAME,
368: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
361: x_msg_count => x_msg_count,
362: x_msg_data => x_msg_data,
363: p_api_type => g_api_type);
364: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
365: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
366: p_api_name => l_api_name,
367: p_pkg_name => G_PKG_NAME,
368: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
369: x_msg_count => x_msg_count,
364: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
365: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
366: p_api_name => l_api_name,
367: p_pkg_name => G_PKG_NAME,
368: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
369: x_msg_count => x_msg_count,
370: x_msg_data => x_msg_data,
371: p_api_type => g_api_type);
372: WHEN OTHERS THEN
369: x_msg_count => x_msg_count,
370: x_msg_data => x_msg_data,
371: p_api_type => g_api_type);
372: WHEN OTHERS THEN
373: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
374: p_api_name => l_api_name,
375: p_pkg_name => G_PKG_NAME,
376: p_exc_name => 'OTHERS',
377: x_msg_count => x_msg_count,
393: THEN
394: -- Monthly
395: x_dpp := 30;
396: x_ppy := 12;
397: x_return_status := OKL_API.G_RET_STS_SUCCESS;
398: RETURN;
399: ELSIF p_frequency = 'Q'
400: THEN
401: -- Quarterly
400: THEN
401: -- Quarterly
402: x_dpp := 90;
403: x_ppy := 4;
404: x_return_status := OKL_API.G_RET_STS_SUCCESS;
405: RETURN;
406: ELSIF p_frequency = 'S'
407: THEN
408: -- Semi Anually
407: THEN
408: -- Semi Anually
409: x_dpp := 180;
410: x_ppy := 2;
411: x_return_status := OKL_API.G_RET_STS_SUCCESS;
412: RETURN;
413: ELSIF p_frequency = 'A'
414: THEN
415: -- Annually
414: THEN
415: -- Annually
416: x_dpp := 360;
417: x_ppy := 1;
418: x_return_status := OKL_API.G_RET_STS_SUCCESS;
419: RETURN;
420: ELSE
421: -- Raise an Exception
422: RAISE OKL_API.G_EXCEPTION_ERROR;
418: x_return_status := OKL_API.G_RET_STS_SUCCESS;
419: RETURN;
420: ELSE
421: -- Raise an Exception
422: RAISE OKL_API.G_EXCEPTION_ERROR;
423: END IF;
424: EXCEPTION
425: WHEN OKL_API.G_EXCEPTION_ERROR THEN
426: x_return_status := G_RET_STS_ERROR;
421: -- Raise an Exception
422: RAISE OKL_API.G_EXCEPTION_ERROR;
423: END IF;
424: EXCEPTION
425: WHEN OKL_API.G_EXCEPTION_ERROR THEN
426: x_return_status := G_RET_STS_ERROR;
427: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
428: x_return_status := G_RET_STS_UNEXP_ERROR;
429: WHEN OTHERS THEN
423: END IF;
424: EXCEPTION
425: WHEN OKL_API.G_EXCEPTION_ERROR THEN
426: x_return_status := G_RET_STS_ERROR;
427: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
428: x_return_status := G_RET_STS_UNEXP_ERROR;
429: WHEN OTHERS THEN
430: OKL_API.SET_MESSAGE (
431: p_app_name => G_APP_NAME,
426: x_return_status := G_RET_STS_ERROR;
427: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
428: x_return_status := G_RET_STS_UNEXP_ERROR;
429: WHEN OTHERS THEN
430: OKL_API.SET_MESSAGE (
431: p_app_name => G_APP_NAME,
432: p_msg_name => G_DB_ERROR,
433: p_token1 => G_PROG_NAME_TOKEN,
434: p_token1_value => l_api_name,
488: l_asset_amounts_tbl so_asset_details_tbl_type;
489: ic_index NUMBER;
490: l_eot_type_code VARCHAR2(30);
491: BEGIN
492: l_return_status := OKL_API.G_RET_STS_SUCCESS;
493:
494: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
495: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
496:
497: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
498: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
499: -- check for logging on STATEMENT level
500: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
501: l_return_status := OKL_API.START_ACTIVITY(
502: p_api_name => l_api_name,
503: p_pkg_name => G_PKG_NAME,
504: p_init_msg_list => p_init_msg_list,
505: l_api_version => l_api_version,
506: p_api_version => p_api_version,
507: p_api_type => g_api_type,
508: x_return_status => x_return_status);
509: --Check if activity started successfully
510: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
511: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
512: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
513: RAISE OKL_API.G_EXCEPTION_ERROR;
514: END IF;
507: p_api_type => g_api_type,
508: x_return_status => x_return_status);
509: --Check if activity started successfully
510: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
511: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
512: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
513: RAISE OKL_API.G_EXCEPTION_ERROR;
514: END IF;
515: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
508: x_return_status => x_return_status);
509: --Check if activity started successfully
510: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
511: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
512: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
513: RAISE OKL_API.G_EXCEPTION_ERROR;
514: END IF;
515: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
516: ': p_qq_id =' || p_qq_id );
509: --Check if activity started successfully
510: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
511: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
512: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
513: RAISE OKL_API.G_EXCEPTION_ERROR;
514: END IF;
515: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
516: ': p_qq_id =' || p_qq_id );
517: -- Know the type of the EOT and then proceed with the values directly or calculate the amount
557: END LOOP;
558: -- Setting up the return variables
559: x_asset_amounts_tbl := l_asset_amounts_tbl;
560: x_return_status := l_return_status;
561: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
562: x_msg_data => x_msg_data);
563: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
564: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
565: EXCEPTION
562: x_msg_data => x_msg_data);
563: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
564: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
565: EXCEPTION
566: WHEN OKL_API.G_EXCEPTION_ERROR THEN
567: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
568: p_api_name => l_api_name,
569: p_pkg_name => G_PKG_NAME,
570: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
563: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
564: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
565: EXCEPTION
566: WHEN OKL_API.G_EXCEPTION_ERROR THEN
567: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
568: p_api_name => l_api_name,
569: p_pkg_name => G_PKG_NAME,
570: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
571: x_msg_count => x_msg_count,
566: WHEN OKL_API.G_EXCEPTION_ERROR THEN
567: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
568: p_api_name => l_api_name,
569: p_pkg_name => G_PKG_NAME,
570: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
571: x_msg_count => x_msg_count,
572: x_msg_data => x_msg_data,
573: p_api_type => g_api_type);
574: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
570: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
571: x_msg_count => x_msg_count,
572: x_msg_data => x_msg_data,
573: p_api_type => g_api_type);
574: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
575: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
576: p_api_name => l_api_name,
577: p_pkg_name => G_PKG_NAME,
578: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
571: x_msg_count => x_msg_count,
572: x_msg_data => x_msg_data,
573: p_api_type => g_api_type);
574: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
575: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
576: p_api_name => l_api_name,
577: p_pkg_name => G_PKG_NAME,
578: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
579: x_msg_count => x_msg_count,
574: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
575: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
576: p_api_name => l_api_name,
577: p_pkg_name => G_PKG_NAME,
578: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
579: x_msg_count => x_msg_count,
580: x_msg_data => x_msg_data,
581: p_api_type => g_api_type);
582: WHEN OTHERS THEN
579: x_msg_count => x_msg_count,
580: x_msg_data => x_msg_data,
581: p_api_type => g_api_type);
582: WHEN OTHERS THEN
583: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
584: p_api_name => l_api_name,
585: p_pkg_name => G_PKG_NAME,
586: p_exc_name => 'OTHERS',
587: x_msg_count => x_msg_count,
612:
613: l_oec NUMBER;
614: l_item_cat_percent NUMBER;
615: BEGIN
616: l_return_status := OKL_API.G_RET_STS_SUCCESS;
617: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
618: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
619: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
620: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
619: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
620: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
621: -- check for logging on STATEMENT level
622: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
623: l_return_status := OKL_API.START_ACTIVITY(
624: p_api_name => l_api_name,
625: p_pkg_name => G_PKG_NAME,
626: p_init_msg_list => p_init_msg_list,
627: l_api_version => l_api_version,
627: l_api_version => l_api_version,
628: p_api_version => p_api_version,
629: p_api_type => g_api_type,
630: x_return_status => x_return_status);
631: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
632: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
633: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
634: RAISE OKL_API.G_EXCEPTION_ERROR;
635: END IF;
628: p_api_version => p_api_version,
629: p_api_type => g_api_type,
630: x_return_status => x_return_status);
631: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
632: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
633: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
634: RAISE OKL_API.G_EXCEPTION_ERROR;
635: END IF;
636: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',':Start ' );
629: p_api_type => g_api_type,
630: x_return_status => x_return_status);
631: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
632: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
633: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
634: RAISE OKL_API.G_EXCEPTION_ERROR;
635: END IF;
636: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',':Start ' );
637: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'p_asset_cost=' || p_asset_cost );
630: x_return_status => x_return_status);
631: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
632: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
633: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
634: RAISE OKL_API.G_EXCEPTION_ERROR;
635: END IF;
636: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',':Start ' );
637: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'p_asset_cost=' || p_asset_cost );
638:
692: -- Item OEC should be greater than zero !
693: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
694: ' Asset OEC should be greater than zero !! p_asset_cost= '|| p_asset_cost );
695: -- Show an error Message OKL_LP_FIN_ADJ_AMT_LESS
696: OKL_API.SET_MESSAGE (
697: p_app_name => G_APP_NAME,
698: p_msg_name => 'OKL_LP_FIN_ADJ_AMT_LESS');
699: RAISE OKL_API.G_EXCEPTION_ERROR;
700: END IF;
695: -- Show an error Message OKL_LP_FIN_ADJ_AMT_LESS
696: OKL_API.SET_MESSAGE (
697: p_app_name => G_APP_NAME,
698: p_msg_name => 'OKL_LP_FIN_ADJ_AMT_LESS');
699: RAISE OKL_API.G_EXCEPTION_ERROR;
700: END IF;
701: -- Setting up the retun values
702: x_oec := l_oec;
703: x_return_status := l_return_status;
700: END IF;
701: -- Setting up the retun values
702: x_oec := l_oec;
703: x_return_status := l_return_status;
704: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
705: x_msg_data => x_msg_data);
706: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
707: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
708: EXCEPTION
705: x_msg_data => x_msg_data);
706: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
707: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
708: EXCEPTION
709: WHEN OKL_API.G_EXCEPTION_ERROR THEN
710: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
711: p_api_name => l_api_name,
712: p_pkg_name => G_PKG_NAME,
713: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
706: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
707: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
708: EXCEPTION
709: WHEN OKL_API.G_EXCEPTION_ERROR THEN
710: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
711: p_api_name => l_api_name,
712: p_pkg_name => G_PKG_NAME,
713: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
714: x_msg_count => x_msg_count,
709: WHEN OKL_API.G_EXCEPTION_ERROR THEN
710: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
711: p_api_name => l_api_name,
712: p_pkg_name => G_PKG_NAME,
713: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
714: x_msg_count => x_msg_count,
715: x_msg_data => x_msg_data,
716: p_api_type => g_api_type);
717:
714: x_msg_count => x_msg_count,
715: x_msg_data => x_msg_data,
716: p_api_type => g_api_type);
717:
718: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
719: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
720: p_api_name => l_api_name,
721: p_pkg_name => G_PKG_NAME,
722: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
715: x_msg_data => x_msg_data,
716: p_api_type => g_api_type);
717:
718: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
719: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
720: p_api_name => l_api_name,
721: p_pkg_name => G_PKG_NAME,
722: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
723: x_msg_count => x_msg_count,
718: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
719: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
720: p_api_name => l_api_name,
721: p_pkg_name => G_PKG_NAME,
722: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
723: x_msg_count => x_msg_count,
724: x_msg_data => x_msg_data,
725: p_api_type => g_api_type);
726:
724: x_msg_data => x_msg_data,
725: p_api_type => g_api_type);
726:
727: WHEN OTHERS THEN
728: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
729: p_api_name => l_api_name,
730: p_pkg_name => G_PKG_NAME,
731: p_exc_name => 'OTHERS',
732: x_msg_count => x_msg_count,
774: is_debug_statement_on BOOLEAN;
775:
776: sub_index NUMBER;
777: BEGIN
778: l_return_status := OKL_API.G_RET_STS_SUCCESS;
779: l_debug_enabled := okl_debug_pub.check_log_enabled;
780: is_debug_procedure_on := okl_debug_pub.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
781: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
782: 'begin debug OKLRPIUB.pls call get_qq_fin_adjustments');
783: -- check for logging on STATEMENT level
784: is_debug_statement_on := okl_debug_pub.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
785: -- Call START_ACTIVITY to create savepoint, check compatibility
786: -- and initialize message list
787: l_return_status := OKL_API.START_ACTIVITY(
788: p_api_name => l_api_name,
789: p_pkg_name => G_PKG_NAME,
790: p_init_msg_list => p_init_msg_list,
791: l_api_version => l_api_version,
792: p_api_version => p_api_version,
793: p_api_type => g_api_type,
794: x_return_status => x_return_status);
795: --Check if activity started successfully
796: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
797: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
798: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
799: RAISE OKL_API.G_EXCEPTION_ERROR;
800: END IF;
793: p_api_type => g_api_type,
794: x_return_status => x_return_status);
795: --Check if activity started successfully
796: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
797: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
798: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
799: RAISE OKL_API.G_EXCEPTION_ERROR;
800: END IF;
801: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',':Start ' );
794: x_return_status => x_return_status);
795: --Check if activity started successfully
796: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
797: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
798: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
799: RAISE OKL_API.G_EXCEPTION_ERROR;
800: END IF;
801: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',':Start ' );
802: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',' p_qq_id : ' || p_qq_id);
795: --Check if activity started successfully
796: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
797: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
798: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
799: RAISE OKL_API.G_EXCEPTION_ERROR;
800: END IF;
801: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',':Start ' );
802: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',' p_qq_id : ' || p_qq_id);
803: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',' p_pricing_method : ' || p_pricing_method );
895: x_all_amounts_rec := l_all_amounts_rec;
896: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
897: l_api_name || ':End ' );
898: x_return_status := l_return_status;
899: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
900: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
901: 'end debug OKLRPIUB.pls call get_qq_details');
902: EXCEPTION
903: WHEN OKL_API.G_EXCEPTION_ERROR THEN
899: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
900: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
901: 'end debug OKLRPIUB.pls call get_qq_details');
902: EXCEPTION
903: WHEN OKL_API.G_EXCEPTION_ERROR THEN
904: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
905: p_api_name => l_api_name,
906: p_pkg_name => G_PKG_NAME,
907: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
900: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
901: 'end debug OKLRPIUB.pls call get_qq_details');
902: EXCEPTION
903: WHEN OKL_API.G_EXCEPTION_ERROR THEN
904: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
905: p_api_name => l_api_name,
906: p_pkg_name => G_PKG_NAME,
907: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
908: x_msg_count => x_msg_count,
903: WHEN OKL_API.G_EXCEPTION_ERROR THEN
904: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
905: p_api_name => l_api_name,
906: p_pkg_name => G_PKG_NAME,
907: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
908: x_msg_count => x_msg_count,
909: x_msg_data => x_msg_data,
910: p_api_type => g_api_type);
911: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
907: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
908: x_msg_count => x_msg_count,
909: x_msg_data => x_msg_data,
910: p_api_type => g_api_type);
911: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
912: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
913: p_api_name => l_api_name,
914: p_pkg_name => G_PKG_NAME,
915: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
908: x_msg_count => x_msg_count,
909: x_msg_data => x_msg_data,
910: p_api_type => g_api_type);
911: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
912: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
913: p_api_name => l_api_name,
914: p_pkg_name => G_PKG_NAME,
915: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
916: x_msg_count => x_msg_count,
911: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
912: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
913: p_api_name => l_api_name,
914: p_pkg_name => G_PKG_NAME,
915: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
916: x_msg_count => x_msg_count,
917: x_msg_data => x_msg_data,
918: p_api_type => g_api_type);
919: WHEN OTHERS THEN
916: x_msg_count => x_msg_count,
917: x_msg_data => x_msg_data,
918: p_api_type => g_api_type);
919: WHEN OTHERS THEN
920: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
921: p_api_name => l_api_name,
922: p_pkg_name => G_PKG_NAME,
923: p_exc_name => 'OTHERS',
924: x_msg_count => x_msg_count,
966: AND qqh.id = p_qq_id;
967: get_sgt_day_convention_rec get_sgt_day_convention_csr%ROWTYPE;
968:
969: BEGIN
970: l_return_status := OKL_API.G_RET_STS_SUCCESS;
971: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
972: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
973: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
974: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
972: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
973: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
974: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
975: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
976: l_return_status := OKL_API.START_ACTIVITY(
977: p_api_name => l_api_name,
978: p_pkg_name => G_PKG_NAME,
979: p_init_msg_list => p_init_msg_list,
980: l_api_version => l_api_version,
980: l_api_version => l_api_version,
981: p_api_version => p_api_version,
982: p_api_type => g_api_type,
983: x_return_status => x_return_status);
984: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
985: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
986: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
987: RAISE OKL_API.G_EXCEPTION_ERROR;
988: END IF;
981: p_api_version => p_api_version,
982: p_api_type => g_api_type,
983: x_return_status => x_return_status);
984: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
985: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
986: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
987: RAISE OKL_API.G_EXCEPTION_ERROR;
988: END IF;
989: -- Fetch the day convention from the SGT assosiated to the QQ ..
982: p_api_type => g_api_type,
983: x_return_status => x_return_status);
984: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
985: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
986: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
987: RAISE OKL_API.G_EXCEPTION_ERROR;
988: END IF;
989: -- Fetch the day convention from the SGT assosiated to the QQ ..
990: l_return_status := OKL_API.G_RET_STS_ERROR;
983: x_return_status => x_return_status);
984: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
985: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
986: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
987: RAISE OKL_API.G_EXCEPTION_ERROR;
988: END IF;
989: -- Fetch the day convention from the SGT assosiated to the QQ ..
990: l_return_status := OKL_API.G_RET_STS_ERROR;
991: FOR t_rec IN get_sgt_day_convention_csr( p_qq_id => p_qq_id )
986: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
987: RAISE OKL_API.G_EXCEPTION_ERROR;
988: END IF;
989: -- Fetch the day convention from the SGT assosiated to the QQ ..
990: l_return_status := OKL_API.G_RET_STS_ERROR;
991: FOR t_rec IN get_sgt_day_convention_csr( p_qq_id => p_qq_id )
992: LOOP
993: get_sgt_day_convention_rec := t_rec;
994: l_return_status := OKL_API.G_RET_STS_SUCCESS;
990: l_return_status := OKL_API.G_RET_STS_ERROR;
991: FOR t_rec IN get_sgt_day_convention_csr( p_qq_id => p_qq_id )
992: LOOP
993: get_sgt_day_convention_rec := t_rec;
994: l_return_status := OKL_API.G_RET_STS_SUCCESS;
995: END LOOP;
996: IF l_return_status = OKL_API.G_RET_STS_ERROR
997: THEN
998: -- Show the error message and then error out ..
992: LOOP
993: get_sgt_day_convention_rec := t_rec;
994: l_return_status := OKL_API.G_RET_STS_SUCCESS;
995: END LOOP;
996: IF l_return_status = OKL_API.G_RET_STS_ERROR
997: THEN
998: -- Show the error message and then error out ..
999: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
1000: 'Unable to pick the day convention from the SGT ');
997: THEN
998: -- Show the error message and then error out ..
999: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
1000: 'Unable to pick the day convention from the SGT ');
1001: OKL_API.SET_MESSAGE (
1002: p_app_name => G_APP_NAME,
1003: p_msg_name => 'OKL_LP_INVALID_SGT');
1004: RAISE OKL_API.G_EXCEPTION_ERROR;
1005: END IF;
1000: 'Unable to pick the day convention from the SGT ');
1001: OKL_API.SET_MESSAGE (
1002: p_app_name => G_APP_NAME,
1003: p_msg_name => 'OKL_LP_INVALID_SGT');
1004: RAISE OKL_API.G_EXCEPTION_ERROR;
1005: END IF;
1006: -- Return the Days per month n Year ..
1007: x_days_in_month := get_sgt_day_convention_rec.days_in_month;
1008: x_days_in_year := get_sgt_day_convention_rec.days_in_year;
1007: x_days_in_month := get_sgt_day_convention_rec.days_in_month;
1008: x_days_in_year := get_sgt_day_convention_rec.days_in_year;
1009: -- Return the status ..
1010: x_return_status := l_return_status;
1011: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
1012: x_msg_data => x_msg_data);
1013: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1014: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
1015: EXCEPTION
1012: x_msg_data => x_msg_data);
1013: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1014: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
1015: EXCEPTION
1016: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1017: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1018: p_api_name => l_api_name,
1019: p_pkg_name => G_PKG_NAME,
1020: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1013: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1014: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
1015: EXCEPTION
1016: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1017: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1018: p_api_name => l_api_name,
1019: p_pkg_name => G_PKG_NAME,
1020: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1021: x_msg_count => x_msg_count,
1016: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1017: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1018: p_api_name => l_api_name,
1019: p_pkg_name => G_PKG_NAME,
1020: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1021: x_msg_count => x_msg_count,
1022: x_msg_data => x_msg_data,
1023: p_api_type => g_api_type);
1024: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1020: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1021: x_msg_count => x_msg_count,
1022: x_msg_data => x_msg_data,
1023: p_api_type => g_api_type);
1024: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1025: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1026: p_api_name => l_api_name,
1027: p_pkg_name => G_PKG_NAME,
1028: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1021: x_msg_count => x_msg_count,
1022: x_msg_data => x_msg_data,
1023: p_api_type => g_api_type);
1024: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1025: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1026: p_api_name => l_api_name,
1027: p_pkg_name => G_PKG_NAME,
1028: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1029: x_msg_count => x_msg_count,
1024: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1025: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1026: p_api_name => l_api_name,
1027: p_pkg_name => G_PKG_NAME,
1028: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1029: x_msg_count => x_msg_count,
1030: x_msg_data => x_msg_data,
1031: p_api_type => g_api_type);
1032: WHEN OTHERS THEN
1029: x_msg_count => x_msg_count,
1030: x_msg_data => x_msg_data,
1031: p_api_type => g_api_type);
1032: WHEN OTHERS THEN
1033: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1034: p_api_name => l_api_name,
1035: p_pkg_name => G_PKG_NAME,
1036: p_exc_name => 'OTHERS',
1037: x_msg_count => x_msg_count,
1075: AND lqh.id = p_lq_id;
1076: get_sgt_day_convention_rec get_sgt_day_convention_csr%ROWTYPE;
1077:
1078: BEGIN
1079: l_return_status := OKL_API.G_RET_STS_SUCCESS;
1080: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
1081: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
1082: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1083: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
1081: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
1082: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1083: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
1084: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
1085: l_return_status := OKL_API.START_ACTIVITY(
1086: p_api_name => l_api_name,
1087: p_pkg_name => G_PKG_NAME,
1088: p_init_msg_list => p_init_msg_list,
1089: l_api_version => l_api_version,
1089: l_api_version => l_api_version,
1090: p_api_version => p_api_version,
1091: p_api_type => g_api_type,
1092: x_return_status => x_return_status);
1093: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1094: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1095: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1096: RAISE OKL_API.G_EXCEPTION_ERROR;
1097: END IF;
1090: p_api_version => p_api_version,
1091: p_api_type => g_api_type,
1092: x_return_status => x_return_status);
1093: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1094: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1095: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1096: RAISE OKL_API.G_EXCEPTION_ERROR;
1097: END IF;
1098: -- Fetch the day convention from the SGT assosiated to the QQ ..
1091: p_api_type => g_api_type,
1092: x_return_status => x_return_status);
1093: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1094: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1095: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1096: RAISE OKL_API.G_EXCEPTION_ERROR;
1097: END IF;
1098: -- Fetch the day convention from the SGT assosiated to the QQ ..
1099: l_return_status := OKL_API.G_RET_STS_ERROR;
1092: x_return_status => x_return_status);
1093: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1094: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1095: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1096: RAISE OKL_API.G_EXCEPTION_ERROR;
1097: END IF;
1098: -- Fetch the day convention from the SGT assosiated to the QQ ..
1099: l_return_status := OKL_API.G_RET_STS_ERROR;
1100: FOR t_rec IN get_sgt_day_convention_csr( p_lq_id => p_lq_id )
1095: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1096: RAISE OKL_API.G_EXCEPTION_ERROR;
1097: END IF;
1098: -- Fetch the day convention from the SGT assosiated to the QQ ..
1099: l_return_status := OKL_API.G_RET_STS_ERROR;
1100: FOR t_rec IN get_sgt_day_convention_csr( p_lq_id => p_lq_id )
1101: LOOP
1102: get_sgt_day_convention_rec := t_rec;
1103: l_return_status := OKL_API.G_RET_STS_SUCCESS;
1099: l_return_status := OKL_API.G_RET_STS_ERROR;
1100: FOR t_rec IN get_sgt_day_convention_csr( p_lq_id => p_lq_id )
1101: LOOP
1102: get_sgt_day_convention_rec := t_rec;
1103: l_return_status := OKL_API.G_RET_STS_SUCCESS;
1104: END LOOP;
1105: IF l_return_status = OKL_API.G_RET_STS_ERROR
1106: THEN
1107: -- Show the error message and then error out ..
1101: LOOP
1102: get_sgt_day_convention_rec := t_rec;
1103: l_return_status := OKL_API.G_RET_STS_SUCCESS;
1104: END LOOP;
1105: IF l_return_status = OKL_API.G_RET_STS_ERROR
1106: THEN
1107: -- Show the error message and then error out ..
1108: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
1109: 'Unable to pick the day convention from the SGT ');
1106: THEN
1107: -- Show the error message and then error out ..
1108: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
1109: 'Unable to pick the day convention from the SGT ');
1110: OKL_API.SET_MESSAGE (
1111: p_app_name => G_APP_NAME,
1112: p_msg_name => 'OKL_LP_INVALID_SGT');
1113: RAISE OKL_API.G_EXCEPTION_ERROR;
1114: END IF;
1109: 'Unable to pick the day convention from the SGT ');
1110: OKL_API.SET_MESSAGE (
1111: p_app_name => G_APP_NAME,
1112: p_msg_name => 'OKL_LP_INVALID_SGT');
1113: RAISE OKL_API.G_EXCEPTION_ERROR;
1114: END IF;
1115: -- Return the Days per month n Year ..
1116: x_days_in_month := get_sgt_day_convention_rec.days_in_month;
1117: x_days_in_year := get_sgt_day_convention_rec.days_in_year;
1116: x_days_in_month := get_sgt_day_convention_rec.days_in_month;
1117: x_days_in_year := get_sgt_day_convention_rec.days_in_year;
1118: -- Return the status ..
1119: x_return_status := l_return_status;
1120: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
1121: x_msg_data => x_msg_data);
1122: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1123: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
1124: EXCEPTION
1121: x_msg_data => x_msg_data);
1122: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1123: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
1124: EXCEPTION
1125: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1126: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1127: p_api_name => l_api_name,
1128: p_pkg_name => G_PKG_NAME,
1129: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1122: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1123: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
1124: EXCEPTION
1125: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1126: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1127: p_api_name => l_api_name,
1128: p_pkg_name => G_PKG_NAME,
1129: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1130: x_msg_count => x_msg_count,
1125: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1126: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1127: p_api_name => l_api_name,
1128: p_pkg_name => G_PKG_NAME,
1129: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1130: x_msg_count => x_msg_count,
1131: x_msg_data => x_msg_data,
1132: p_api_type => g_api_type);
1133: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1129: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1130: x_msg_count => x_msg_count,
1131: x_msg_data => x_msg_data,
1132: p_api_type => g_api_type);
1133: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1134: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1135: p_api_name => l_api_name,
1136: p_pkg_name => G_PKG_NAME,
1137: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1130: x_msg_count => x_msg_count,
1131: x_msg_data => x_msg_data,
1132: p_api_type => g_api_type);
1133: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1134: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1135: p_api_name => l_api_name,
1136: p_pkg_name => G_PKG_NAME,
1137: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1138: x_msg_count => x_msg_count,
1133: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1134: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1135: p_api_name => l_api_name,
1136: p_pkg_name => G_PKG_NAME,
1137: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1138: x_msg_count => x_msg_count,
1139: x_msg_data => x_msg_data,
1140: p_api_type => g_api_type);
1141: WHEN OTHERS THEN
1138: x_msg_count => x_msg_count,
1139: x_msg_data => x_msg_data,
1140: p_api_type => g_api_type);
1141: WHEN OTHERS THEN
1142: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1143: p_api_name => l_api_name,
1144: p_pkg_name => G_PKG_NAME,
1145: p_exc_name => 'OTHERS',
1146: x_msg_count => x_msg_count,
1225: l_cash_flow_det_tbl so_cash_flow_details_tbl_type;
1226: cfl_index NUMBER;
1227: l_qq_id NUMBER;
1228: BEGIN
1229: l_return_status := OKL_API.G_RET_STS_SUCCESS;
1230: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
1231: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
1232: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1233: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
1234: -- check for logging on STATEMENT level
1235: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
1236: -- Call START_ACTIVITY to create savepoint, check compatibility
1237: -- and initialize message list
1238: l_return_status := OKL_API.START_ACTIVITY(
1239: p_api_name => l_api_name,
1240: p_pkg_name => G_PKG_NAME,
1241: p_init_msg_list => p_init_msg_list,
1242: l_api_version => l_api_version,
1243: p_api_version => p_api_version,
1244: p_api_type => g_api_type,
1245: x_return_status => x_return_status);
1246: --Check if activity started successfully
1247: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1248: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1249: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1250: RAISE OKL_API.G_EXCEPTION_ERROR;
1251: END IF;
1244: p_api_type => g_api_type,
1245: x_return_status => x_return_status);
1246: --Check if activity started successfully
1247: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1248: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1249: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1250: RAISE OKL_API.G_EXCEPTION_ERROR;
1251: END IF;
1252: -- Use l_return_status as a flag
1245: x_return_status => x_return_status);
1246: --Check if activity started successfully
1247: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1248: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1249: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1250: RAISE OKL_API.G_EXCEPTION_ERROR;
1251: END IF;
1252: -- Use l_return_status as a flag
1253: -- Fetching the Cash Flows Information
1246: --Check if activity started successfully
1247: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1248: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1249: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1250: RAISE OKL_API.G_EXCEPTION_ERROR;
1251: END IF;
1252: -- Use l_return_status as a flag
1253: -- Fetching the Cash Flows Information
1254: l_return_status := OKL_API.G_RET_STS_ERROR;
1250: RAISE OKL_API.G_EXCEPTION_ERROR;
1251: END IF;
1252: -- Use l_return_status as a flag
1253: -- Fetching the Cash Flows Information
1254: l_return_status := OKL_API.G_RET_STS_ERROR;
1255: FOR t_rec in qq_cash_flows_csr( p_qq_id )
1256: LOOP
1257: l_cash_flow_rec.caf_id := t_rec.caf_id;
1258: l_cash_flow_rec.khr_id := t_rec.khr_id;
1265: l_cash_flow_rec.due_arrears_yn := t_rec.due_arrears_yn;
1266: l_cash_flow_rec.start_date := t_rec.start_date;
1267: l_cash_flow_rec.number_of_advance_periods := t_rec.number_of_advance_periods;
1268: -- Use l_retun_status as a flag
1269: l_return_status := OKL_API.G_RET_STS_SUCCESS;
1270: END LOOP;
1271: -- Fetch the Cash Flow Levels information only if the Cash Flow is present..
1272: IF l_return_status = OKL_API.G_RET_STS_SUCCESS
1273: THEN
1268: -- Use l_retun_status as a flag
1269: l_return_status := OKL_API.G_RET_STS_SUCCESS;
1270: END LOOP;
1271: -- Fetch the Cash Flow Levels information only if the Cash Flow is present..
1272: IF l_return_status = OKL_API.G_RET_STS_SUCCESS
1273: THEN
1274: cfl_index := 1;
1275: -- Cash Flows exists. So, fetch the Cash Flow Levels
1276: FOR t_rec in qq_cash_flow_levels_csr( l_cash_flow_rec.caf_id )
1293: -- Regular Periodic Payment
1294: l_cash_flow_det_tbl(cfl_index).is_stub := 'N';
1295: END IF;
1296: -- Use l_retun_status as a flag
1297: l_return_status := OKL_API.G_RET_STS_SUCCESS;
1298: -- Increment i
1299: cfl_index := cfl_index + 1;
1300: END LOOP;
1301: ELSE
1298: -- Increment i
1299: cfl_index := cfl_index + 1;
1300: END LOOP;
1301: ELSE
1302: l_return_status := OKL_API.G_RET_STS_SUCCESS;
1303: END IF;
1304: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
1305: 'p_cf_source_type =' || p_cf_source_type || 'p_qq_id = ' || p_qq_id);
1306: IF p_cf_source_type = G_CF_SOURCE_QQ-- Quick Quote
1352: x_days_in_year => x_days_in_year);
1353: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
1354: 'After get_lq_sgt_day_convention ' || l_return_status );
1355: END IF;
1356: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1357: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1358: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1359: RAISE OKL_API.G_EXCEPTION_ERROR;
1360: END IF;
1353: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
1354: 'After get_lq_sgt_day_convention ' || l_return_status );
1355: END IF;
1356: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1357: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1358: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1359: RAISE OKL_API.G_EXCEPTION_ERROR;
1360: END IF;
1361: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
1354: 'After get_lq_sgt_day_convention ' || l_return_status );
1355: END IF;
1356: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1357: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1358: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1359: RAISE OKL_API.G_EXCEPTION_ERROR;
1360: END IF;
1361: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
1362: x_days_in_month || ' / ' || x_days_in_year);
1355: END IF;
1356: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1357: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1358: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1359: RAISE OKL_API.G_EXCEPTION_ERROR;
1360: END IF;
1361: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
1362: x_days_in_month || ' / ' || x_days_in_year);
1363: -- Setting the return variables ..
1363: -- Setting the return variables ..
1364: x_cash_flow_rec := l_cash_flow_rec;
1365: x_cash_flow_det_tbl := l_cash_flow_det_tbl;
1366: x_return_status := l_return_status;
1367: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
1368: x_msg_data => x_msg_data);
1369: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1370: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
1371: EXCEPTION
1368: x_msg_data => x_msg_data);
1369: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1370: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
1371: EXCEPTION
1372: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1373: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1374: p_api_name => l_api_name,
1375: p_pkg_name => G_PKG_NAME,
1376: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1369: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1370: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
1371: EXCEPTION
1372: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1373: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1374: p_api_name => l_api_name,
1375: p_pkg_name => G_PKG_NAME,
1376: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1377: x_msg_count => x_msg_count,
1372: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1373: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1374: p_api_name => l_api_name,
1375: p_pkg_name => G_PKG_NAME,
1376: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1377: x_msg_count => x_msg_count,
1378: x_msg_data => x_msg_data,
1379: p_api_type => g_api_type);
1380: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1376: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1377: x_msg_count => x_msg_count,
1378: x_msg_data => x_msg_data,
1379: p_api_type => g_api_type);
1380: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1381: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1382: p_api_name => l_api_name,
1383: p_pkg_name => G_PKG_NAME,
1384: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1377: x_msg_count => x_msg_count,
1378: x_msg_data => x_msg_data,
1379: p_api_type => g_api_type);
1380: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1381: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1382: p_api_name => l_api_name,
1383: p_pkg_name => G_PKG_NAME,
1384: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1385: x_msg_count => x_msg_count,
1380: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1381: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1382: p_api_name => l_api_name,
1383: p_pkg_name => G_PKG_NAME,
1384: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1385: x_msg_count => x_msg_count,
1386: x_msg_data => x_msg_data,
1387: p_api_type => g_api_type);
1388: WHEN OTHERS THEN
1385: x_msg_count => x_msg_count,
1386: x_msg_data => x_msg_data,
1387: p_api_type => g_api_type);
1388: WHEN OTHERS THEN
1389: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1390: p_api_name => l_api_name,
1391: p_pkg_name => G_PKG_NAME,
1392: p_exc_name => 'OTHERS',
1393: x_msg_count => x_msg_count,
1477: l_override_cf_amt BOOLEAN;
1478: l_tot_periods NUMBER;
1479: l_periodic_amt NUMBER;
1480: BEGIN
1481: l_return_status := OKL_API.G_RET_STS_SUCCESS;
1482: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
1483: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
1484: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1485: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
1486: -- check for logging on STATEMENT level
1487: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
1488: -- Call START_ACTIVITY to create savepoint, check compatibility
1489: -- and initialize message list
1490: l_return_status := OKL_API.START_ACTIVITY(
1491: p_api_name => l_api_name,
1492: p_pkg_name => G_PKG_NAME,
1493: p_init_msg_list => p_init_msg_list,
1494: l_api_version => l_api_version,
1495: p_api_version => p_api_version,
1496: p_api_type => g_api_type,
1497: x_return_status => x_return_status);
1498: --Check if activity started successfully
1499: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1500: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1501: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1502: RAISE OKL_API.G_EXCEPTION_ERROR;
1503: END IF;
1496: p_api_type => g_api_type,
1497: x_return_status => x_return_status);
1498: --Check if activity started successfully
1499: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1500: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1501: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1502: RAISE OKL_API.G_EXCEPTION_ERROR;
1503: END IF;
1504: l_hdr_rec := p_hdr_rec;
1497: x_return_status => x_return_status);
1498: --Check if activity started successfully
1499: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1500: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1501: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1502: RAISE OKL_API.G_EXCEPTION_ERROR;
1503: END IF;
1504: l_hdr_rec := p_hdr_rec;
1505: fin_index := 1; -- Initialize the fin_index .. !
1498: --Check if activity started successfully
1499: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1500: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1501: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1502: RAISE OKL_API.G_EXCEPTION_ERROR;
1503: END IF;
1504: l_hdr_rec := p_hdr_rec;
1505: fin_index := 1; -- Initialize the fin_index .. !
1506: l_tot_item_cat_cost := p_tot_item_cat_cost;
1620: END LOOP;
1621: -- Setting the return variables ..
1622: x_fee_srv_tbl := l_fee_srv_tbl;
1623: x_return_status := l_return_status;
1624: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
1625: x_msg_data => x_msg_data);
1626: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1627: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
1628: EXCEPTION
1625: x_msg_data => x_msg_data);
1626: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1627: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
1628: EXCEPTION
1629: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1630: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1631: p_api_name => l_api_name,
1632: p_pkg_name => G_PKG_NAME,
1633: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1626: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1627: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
1628: EXCEPTION
1629: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1630: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1631: p_api_name => l_api_name,
1632: p_pkg_name => G_PKG_NAME,
1633: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1634: x_msg_count => x_msg_count,
1629: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1630: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1631: p_api_name => l_api_name,
1632: p_pkg_name => G_PKG_NAME,
1633: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1634: x_msg_count => x_msg_count,
1635: x_msg_data => x_msg_data,
1636: p_api_type => g_api_type);
1637: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1633: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1634: x_msg_count => x_msg_count,
1635: x_msg_data => x_msg_data,
1636: p_api_type => g_api_type);
1637: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1638: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1639: p_api_name => l_api_name,
1640: p_pkg_name => G_PKG_NAME,
1641: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1634: x_msg_count => x_msg_count,
1635: x_msg_data => x_msg_data,
1636: p_api_type => g_api_type);
1637: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1638: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1639: p_api_name => l_api_name,
1640: p_pkg_name => G_PKG_NAME,
1641: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1642: x_msg_count => x_msg_count,
1637: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1638: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1639: p_api_name => l_api_name,
1640: p_pkg_name => G_PKG_NAME,
1641: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1642: x_msg_count => x_msg_count,
1643: x_msg_data => x_msg_data,
1644: p_api_type => g_api_type);
1645: WHEN OTHERS THEN
1642: x_msg_count => x_msg_count,
1643: x_msg_data => x_msg_data,
1644: p_api_type => g_api_type);
1645: WHEN OTHERS THEN
1646: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1647: p_api_name => l_api_name,
1648: p_pkg_name => G_PKG_NAME,
1649: p_exc_name => 'OTHERS',
1650: x_msg_count => x_msg_count,
1665: AS
1666: l_start_year NUMBER;
1667: l_cf_year NUMBER;
1668: BEGIN
1669: x_return_status := OKL_API.G_RET_STS_SUCCESS;
1670: IF p_day_convention = 'ACTUAL'
1671: THEN
1672: l_start_year := TO_NUMBER( TO_CHAR( p_start_date, 'YYYY') );
1673: l_cf_year := TO_NUMBER( TO_CHAR( p_cash_inflow_date, 'YYYY') );
1694: -- Number of days per annum doesnot depend on the year ...
1695: -- all years are assumed to be having 360 days
1696: RETURN 360;
1697: END IF;
1698: x_return_status := OKL_API.G_RET_STS_SUCCESS;
1699: END get_days_per_annum;
1700:
1701: -- Procedure to create stream elements for each cash flows level passed !
1702: -- Expecting the p_cfd_rec to have atleast the following
1735: is_debug_statement_on BOOLEAN;
1736: l_period_start_date DATE;
1737: l_period_end_date DATE;
1738: BEGIN
1739: l_return_status := OKL_API.G_RET_STS_SUCCESS;
1740: l_debug_enabled := okl_debug_pub.check_log_enabled;
1741: is_debug_procedure_on := okl_debug_pub.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
1742: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1743: 'begin debug OKLRPIUB.pls call gen_so_cf_strm_elements');
1774: 'p_frequency_passed'||p_frequency);
1775:
1776: If ( nvl(p_frequency, 'X') = 'X') Then
1777:
1778: OKL_API.set_message(
1779: p_app_name => G_APP_NAME,
1780: p_msg_name => OKL_API.G_REQUIRED_VALUE,
1781: p_token1 => OKL_API.G_COL_NAME_TOKEN,
1782: p_token1_value => 'FREQUENCY');
1776: If ( nvl(p_frequency, 'X') = 'X') Then
1777:
1778: OKL_API.set_message(
1779: p_app_name => G_APP_NAME,
1780: p_msg_name => OKL_API.G_REQUIRED_VALUE,
1781: p_token1 => OKL_API.G_COL_NAME_TOKEN,
1782: p_token1_value => 'FREQUENCY');
1783:
1784: RAISE OKL_API.G_EXCEPTION_ERROR;
1777:
1778: OKL_API.set_message(
1779: p_app_name => G_APP_NAME,
1780: p_msg_name => OKL_API.G_REQUIRED_VALUE,
1781: p_token1 => OKL_API.G_COL_NAME_TOKEN,
1782: p_token1_value => 'FREQUENCY');
1783:
1784: RAISE OKL_API.G_EXCEPTION_ERROR;
1785:
1780: p_msg_name => OKL_API.G_REQUIRED_VALUE,
1781: p_token1 => OKL_API.G_COL_NAME_TOKEN,
1782: p_token1_value => 'FREQUENCY');
1783:
1784: RAISE OKL_API.G_EXCEPTION_ERROR;
1785:
1786: End If;
1787:
1788: l_months_factor := okl_stream_generator_pvt.get_months_factor(
1790: x_return_status => l_return_status);
1791: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1792: 'p_months_factor'||l_months_factor);
1793:
1794: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1795: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1796: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1797: RAISE OKL_API.G_EXCEPTION_ERROR;
1798: END IF;
1791: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1792: 'p_months_factor'||l_months_factor);
1793:
1794: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1795: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1796: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1797: RAISE OKL_API.G_EXCEPTION_ERROR;
1798: END IF;
1799: -- Looping throug the Periods ..
1792: 'p_months_factor'||l_months_factor);
1793:
1794: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1795: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1796: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1797: RAISE OKL_API.G_EXCEPTION_ERROR;
1798: END IF;
1799: -- Looping throug the Periods ..
1800: FOR i in 1 .. n_periods
1793:
1794: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1795: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1796: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1797: RAISE OKL_API.G_EXCEPTION_ERROR;
1798: END IF;
1799: -- Looping throug the Periods ..
1800: FOR i in 1 .. n_periods
1801: LOOP
1814: p_months_per_period => l_months_factor,
1815: x_date => l_period_start_date,
1816: x_return_status => l_return_status,
1817: p_recurrence_date => p_recurrence_date);
1818: IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1819: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1820: ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
1821: RAISE OKL_API.G_EXCEPTION_ERROR;
1822: END IF;
1815: x_date => l_period_start_date,
1816: x_return_status => l_return_status,
1817: p_recurrence_date => p_recurrence_date);
1818: IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1819: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1820: ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
1821: RAISE OKL_API.G_EXCEPTION_ERROR;
1822: END IF;
1823: -- Get the Stream Element date after i months from the p_start_date
1816: x_return_status => l_return_status,
1817: p_recurrence_date => p_recurrence_date);
1818: IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1819: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1820: ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
1821: RAISE OKL_API.G_EXCEPTION_ERROR;
1822: END IF;
1823: -- Get the Stream Element date after i months from the p_start_date
1824: -- when the payments are ARREARS
1817: p_recurrence_date => p_recurrence_date);
1818: IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1819: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1820: ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
1821: RAISE OKL_API.G_EXCEPTION_ERROR;
1822: END IF;
1823: -- Get the Stream Element date after i months from the p_start_date
1824: -- when the payments are ARREARS
1825: -- Added parameter p_recurrence_date by Durga Janaswamy for bug 6007644
1830: p_months_per_period => l_months_factor,
1831: x_date => l_period_end_date,
1832: x_return_status => l_return_status,
1833: p_recurrence_date => p_recurrence_date);
1834: IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1835: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1836: ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
1837: RAISE OKL_API.G_EXCEPTION_ERROR;
1838: END IF;
1831: x_date => l_period_end_date,
1832: x_return_status => l_return_status,
1833: p_recurrence_date => p_recurrence_date);
1834: IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1835: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1836: ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
1837: RAISE OKL_API.G_EXCEPTION_ERROR;
1838: END IF;
1839: -- Based on the payment type is 'ADVANCE' / 'ARREARS' do the assignment ..
1832: x_return_status => l_return_status,
1833: p_recurrence_date => p_recurrence_date);
1834: IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1835: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1836: ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
1837: RAISE OKL_API.G_EXCEPTION_ERROR;
1838: END IF;
1839: -- Based on the payment type is 'ADVANCE' / 'ARREARS' do the assignment ..
1840: IF p_advance_arrears = 'ARREARS' OR p_advance_arrears = 'Y'
1833: p_recurrence_date => p_recurrence_date);
1834: IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1835: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1836: ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
1837: RAISE OKL_API.G_EXCEPTION_ERROR;
1838: END IF;
1839: -- Based on the payment type is 'ADVANCE' / 'ARREARS' do the assignment ..
1840: IF p_advance_arrears = 'ARREARS' OR p_advance_arrears = 'Y'
1841: THEN
1855: x_return_status := l_return_status;
1856: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1857: 'end debug OKLRPIUB.pls call gen_cf_strm_elements');
1858: EXCEPTION
1859: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1860: x_return_status := G_RET_STS_ERROR;
1861: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1862: x_return_status := G_RET_STS_UNEXP_ERROR;
1863: WHEN OTHERS THEN
1857: 'end debug OKLRPIUB.pls call gen_cf_strm_elements');
1858: EXCEPTION
1859: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1860: x_return_status := G_RET_STS_ERROR;
1861: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1862: x_return_status := G_RET_STS_UNEXP_ERROR;
1863: WHEN OTHERS THEN
1864: OKL_API.SET_MESSAGE (
1865: p_app_name => G_APP_NAME,
1860: x_return_status := G_RET_STS_ERROR;
1861: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1862: x_return_status := G_RET_STS_UNEXP_ERROR;
1863: WHEN OTHERS THEN
1864: OKL_API.SET_MESSAGE (
1865: p_app_name => G_APP_NAME,
1866: p_msg_name => G_DB_ERROR,
1867: p_token1 => G_PROG_NAME_TOKEN,
1868: p_token1_value => l_api_name,
1905: l_recurrence_date DATE := NULL;
1906: --end DJANASWA
1907:
1908: BEGIN
1909: l_return_status := OKL_API.G_RET_STS_SUCCESS;
1910: l_debug_enabled := okl_debug_pub.check_log_enabled;
1911: is_debug_procedure_on := okl_debug_pub.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
1912: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
1913: 'begin debug OKLRPIUB.pls call gen_so_cf_strms');
1914: -- check for logging on STATEMENT level
1915: is_debug_statement_on := okl_debug_pub.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
1916: -- Call START_ACTIVITY to create savepoint, check compatibility
1917: -- and initialize message list
1918: l_return_status := OKL_API.START_ACTIVITY(
1919: p_api_name => l_api_name,
1920: p_pkg_name => G_PKG_NAME,
1921: p_init_msg_list => p_init_msg_list,
1922: l_api_version => l_api_version,
1923: p_api_version => p_api_version,
1924: p_api_type => g_api_type,
1925: x_return_status => x_return_status);
1926: --Check if activity started successfully
1927: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1928: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1929: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1930: RAISE OKL_API.G_EXCEPTION_ERROR;
1931: END IF;
1924: p_api_type => g_api_type,
1925: x_return_status => x_return_status);
1926: --Check if activity started successfully
1927: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1928: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1929: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1930: RAISE OKL_API.G_EXCEPTION_ERROR;
1931: END IF;
1932: -- Actual logic Begins here
1925: x_return_status => x_return_status);
1926: --Check if activity started successfully
1927: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1928: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1929: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1930: RAISE OKL_API.G_EXCEPTION_ERROR;
1931: END IF;
1932: -- Actual logic Begins here
1933: -- Create the cash inflow streams table ..
1926: --Check if activity started successfully
1927: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1928: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1929: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1930: RAISE OKL_API.G_EXCEPTION_ERROR;
1931: END IF;
1932: -- Actual logic Begins here
1933: -- Create the cash inflow streams table ..
1934: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
1940: -- Validate whether the start_date is there or not
1941: IF p_cf_details_tbl(i).start_date IS NULL
1942: THEN
1943: -- Raise an Exception, cant proceed.
1944: OKL_API.SET_MESSAGE (
1945: p_app_name => G_APP_NAME,
1946: p_msg_name => 'OKL_NO_SLL_SDATE');
1947: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1948: END IF;
1943: -- Raise an Exception, cant proceed.
1944: OKL_API.SET_MESSAGE (
1945: p_app_name => G_APP_NAME,
1946: p_msg_name => 'OKL_NO_SLL_SDATE');
1947: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1948: END IF;
1949: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
1950: p_cf_details_tbl(i).rate
1951: || ' | ' || p_cf_details_tbl(i).start_date
1981: p_stub_flag => p_cf_details_tbl(i).is_stub,
1982: x_cf_strm_elements_tbl => l_temp_cf_strms_tbl,
1983: x_return_status => l_return_status,
1984: p_recurrence_date => l_recurrence_date);
1985: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1986: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1987: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1988: RAISE OKL_API.G_EXCEPTION_ERROR;
1989: END IF;
1982: x_cf_strm_elements_tbl => l_temp_cf_strms_tbl,
1983: x_return_status => l_return_status,
1984: p_recurrence_date => l_recurrence_date);
1985: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1986: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1987: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1988: RAISE OKL_API.G_EXCEPTION_ERROR;
1989: END IF;
1990: -- Accumulate the Cash Inflow Streams created
1983: x_return_status => l_return_status,
1984: p_recurrence_date => l_recurrence_date);
1985: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1986: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1987: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1988: RAISE OKL_API.G_EXCEPTION_ERROR;
1989: END IF;
1990: -- Accumulate the Cash Inflow Streams created
1991: l_cf_count := nvl(l_cf_strms_tbl.COUNT, 0 );
1984: p_recurrence_date => l_recurrence_date);
1985: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1986: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1987: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1988: RAISE OKL_API.G_EXCEPTION_ERROR;
1989: END IF;
1990: -- Accumulate the Cash Inflow Streams created
1991: l_cf_count := nvl(l_cf_strms_tbl.COUNT, 0 );
1992: get_dpp_ppy(
1997: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
1998: 'l_dpp | l_ppy | l_cf_count | l_return_status ' );
1999: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2000: l_dpp || '|' || l_ppy || '|' || l_cf_count || '|' || l_return_status );
2001: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2002: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2003: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2004: RAISE OKL_API.G_EXCEPTION_ERROR;
2005: END IF;
1998: 'l_dpp | l_ppy | l_cf_count | l_return_status ' );
1999: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2000: l_dpp || '|' || l_ppy || '|' || l_cf_count || '|' || l_return_status );
2001: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2002: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2003: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2004: RAISE OKL_API.G_EXCEPTION_ERROR;
2005: END IF;
2006: -- Append the l_temp_cf_strms_tbl to l_temp_cf_strms_tbl
1999: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2000: l_dpp || '|' || l_ppy || '|' || l_cf_count || '|' || l_return_status );
2001: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2002: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2003: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2004: RAISE OKL_API.G_EXCEPTION_ERROR;
2005: END IF;
2006: -- Append the l_temp_cf_strms_tbl to l_temp_cf_strms_tbl
2007: FOR j in l_temp_cf_strms_tbl.FIRST .. l_temp_cf_strms_tbl.LAST
2000: l_dpp || '|' || l_ppy || '|' || l_cf_count || '|' || l_return_status );
2001: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2002: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2003: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2004: RAISE OKL_API.G_EXCEPTION_ERROR;
2005: END IF;
2006: -- Append the l_temp_cf_strms_tbl to l_temp_cf_strms_tbl
2007: FOR j in l_temp_cf_strms_tbl.FIRST .. l_temp_cf_strms_tbl.LAST
2008: LOOP
2045: END LOOP;
2046: -- Setting up the out parameters to return ....
2047: x_cash_inflow_strms_tbl := l_cf_strms_tbl;
2048: x_return_status := l_return_status;
2049: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
2050: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
2051: 'end debug OKLRPIUB.pls call gen_so_cf_strms');
2052: EXCEPTION
2053: WHEN OKL_API.G_EXCEPTION_ERROR THEN
2049: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
2050: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
2051: 'end debug OKLRPIUB.pls call gen_so_cf_strms');
2052: EXCEPTION
2053: WHEN OKL_API.G_EXCEPTION_ERROR THEN
2054: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2055: p_api_name => l_api_name,
2056: p_pkg_name => G_PKG_NAME,
2057: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
2050: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
2051: 'end debug OKLRPIUB.pls call gen_so_cf_strms');
2052: EXCEPTION
2053: WHEN OKL_API.G_EXCEPTION_ERROR THEN
2054: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2055: p_api_name => l_api_name,
2056: p_pkg_name => G_PKG_NAME,
2057: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
2058: x_msg_count => x_msg_count,
2053: WHEN OKL_API.G_EXCEPTION_ERROR THEN
2054: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2055: p_api_name => l_api_name,
2056: p_pkg_name => G_PKG_NAME,
2057: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
2058: x_msg_count => x_msg_count,
2059: x_msg_data => x_msg_data,
2060: p_api_type => g_api_type);
2061: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2057: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
2058: x_msg_count => x_msg_count,
2059: x_msg_data => x_msg_data,
2060: p_api_type => g_api_type);
2061: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2062: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2063: p_api_name => l_api_name,
2064: p_pkg_name => G_PKG_NAME,
2065: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
2058: x_msg_count => x_msg_count,
2059: x_msg_data => x_msg_data,
2060: p_api_type => g_api_type);
2061: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2062: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2063: p_api_name => l_api_name,
2064: p_pkg_name => G_PKG_NAME,
2065: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
2066: x_msg_count => x_msg_count,
2061: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2062: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2063: p_api_name => l_api_name,
2064: p_pkg_name => G_PKG_NAME,
2065: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
2066: x_msg_count => x_msg_count,
2067: x_msg_data => x_msg_data,
2068: p_api_type => g_api_type);
2069: WHEN OTHERS THEN
2066: x_msg_count => x_msg_count,
2067: x_msg_data => x_msg_data,
2068: p_api_type => g_api_type);
2069: WHEN OTHERS THEN
2070: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2071: p_api_name => l_api_name,
2072: p_pkg_name => G_PKG_NAME,
2073: p_exc_name => 'OTHERS',
2074: x_msg_count => x_msg_count,
2097: -- No problem can proceed !
2098: NULL;
2099: ELSE
2100: -- Cant proceed ! Raise an Exception ..
2101: RAISE OKL_API.G_EXCEPTION_ERROR;
2102: END IF;
2103: i := p_cf_strms_tbl.FIRST;
2104: l_prev_date := p_cf_strms_tbl(i).cf_date;
2105: -- In few Scenarios rate amount may be missing
2113: IF l_prev_date >= l_curr_date AND
2114: i <> p_cf_strms_tbl.FIRST -- Should not execute for first element
2115: THEN
2116: -- Stream Elements should be in ascending chronological order
2117: RAISE OKL_API.G_EXCEPTION_ERROR;
2118: END IF; -- If for l_prev_date
2119: IF p_date = p_cf_strms_tbl(i).cf_date
2120: THEN
2121: -- Dates matched exactly ..
2141: END LOOP; -- While i <= p_cf_strms_tbl.LAST
2142: x_rate := l_prev_rate;
2143: x_return_status := G_RET_STS_SUCCESS;
2144: EXCEPTION
2145: WHEN OKL_API.G_EXCEPTION_ERROR THEN
2146: x_return_status := G_RET_STS_ERROR;
2147: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2148: x_return_status := G_RET_STS_UNEXP_ERROR;
2149: WHEN OTHERS THEN
2143: x_return_status := G_RET_STS_SUCCESS;
2144: EXCEPTION
2145: WHEN OKL_API.G_EXCEPTION_ERROR THEN
2146: x_return_status := G_RET_STS_ERROR;
2147: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2148: x_return_status := G_RET_STS_UNEXP_ERROR;
2149: WHEN OTHERS THEN
2150: OKL_API.SET_MESSAGE (
2151: p_app_name => G_APP_NAME,
2146: x_return_status := G_RET_STS_ERROR;
2147: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2148: x_return_status := G_RET_STS_UNEXP_ERROR;
2149: WHEN OTHERS THEN
2150: OKL_API.SET_MESSAGE (
2151: p_app_name => G_APP_NAME,
2152: p_msg_name => G_DB_ERROR,
2153: p_token1 => G_PROG_NAME_TOKEN,
2154: p_token1_value => l_api_name,
2186: n_leap_years NUMBER;
2187: l_day_convention VARCHAR2(10); -- Flag for 365 Year/360 Year based calculation
2188: l_mod_days NUMBER; -- Added by ssohal for Bug#6706568
2189: BEGIN
2190: x_return_status := OKL_API.G_RET_STS_SUCCESS;
2191: -- Validation: If Start Date cant be greater than End Date then return zero.
2192: l_start_date := trunc( p_start_date );
2193: l_end_date := trunc( p_end_date );
2194: IF( l_start_date > l_end_date )
2306: END IF;
2307: -- Calculate the number of days ...
2308: n_days := n_Months * 30 - l_start_day + l_end_day;
2309: ELSE
2310: x_return_Status := OKL_API.G_RET_STS_ERROR;
2311: RETURN 0;
2312: END IF;
2313:
2314: -- Consider the last day incase of arrears Payments
2332: -- Set the OUT parameters and return
2333: x_return_status := 'S';
2334: RETURN n_days;
2335: EXCEPTION
2336: WHEN OKL_API.G_EXCEPTION_ERROR THEN
2337: x_return_status := G_RET_STS_ERROR;
2338: RETURN -1; -- get_day_count returns negative in case of error/failure
2339: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2340: x_return_status := G_RET_STS_UNEXP_ERROR;
2335: EXCEPTION
2336: WHEN OKL_API.G_EXCEPTION_ERROR THEN
2337: x_return_status := G_RET_STS_ERROR;
2338: RETURN -1; -- get_day_count returns negative in case of error/failure
2339: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2340: x_return_status := G_RET_STS_UNEXP_ERROR;
2341: RETURN -1; -- get_day_count returns negative in case of error/failure
2342: WHEN OTHERS THEN
2343: OKL_API.SET_MESSAGE (
2339: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2340: x_return_status := G_RET_STS_UNEXP_ERROR;
2341: RETURN -1; -- get_day_count returns negative in case of error/failure
2342: WHEN OTHERS THEN
2343: OKL_API.SET_MESSAGE (
2344: p_app_name => G_APP_NAME,
2345: p_msg_name => G_DB_ERROR,
2346: p_token1 => G_PROG_NAME_TOKEN,
2347: p_token1_value => 'GET_DAY_COUNT',
2426: i NUMBER; -- Used as Index
2427: l_period_start_date DATE;
2428: l_period_end_date DATE;
2429: BEGIN
2430: l_return_status := OKL_API.G_RET_STS_SUCCESS;
2431: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
2432: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
2433:
2434: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
2435: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
2436: -- check for logging on STATEMENT level
2437: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
2438: -- Call START_ACTIVITY to create savepoint, check compatibility and initialize message list
2439: l_return_status := OKL_API.START_ACTIVITY(
2440: p_api_name => l_api_name,
2441: p_pkg_name => G_PKG_NAME,
2442: p_init_msg_list => p_init_msg_list,
2443: l_api_version => l_api_version,
2444: p_api_version => p_api_version,
2445: p_api_type => g_api_type,
2446: x_return_status => x_return_status);
2447: --Check if activity started successfully
2448: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2449: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2450: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2451: RAISE OKL_API.G_EXCEPTION_ERROR;
2452: END IF;
2445: p_api_type => g_api_type,
2446: x_return_status => x_return_status);
2447: --Check if activity started successfully
2448: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2449: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2450: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2451: RAISE OKL_API.G_EXCEPTION_ERROR;
2452: END IF;
2453: -- Validations here ..
2446: x_return_status => x_return_status);
2447: --Check if activity started successfully
2448: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2449: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2450: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2451: RAISE OKL_API.G_EXCEPTION_ERROR;
2452: END IF;
2453: -- Validations here ..
2454: get_days_in_year_and_month(
2447: --Check if activity started successfully
2448: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2449: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2450: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2451: RAISE OKL_API.G_EXCEPTION_ERROR;
2452: END IF;
2453: -- Validations here ..
2454: get_days_in_year_and_month(
2455: p_day_count_method => p_day_count_method,
2457: x_days_in_year => l_days_in_year,
2458: x_return_status => l_return_status);
2459: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2460: 'After get_days_in_year_and_month ' || l_return_status);
2461: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2462: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2463: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2464: RAISE OKL_API.G_EXCEPTION_ERROR;
2465: END IF;
2458: x_return_status => l_return_status);
2459: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2460: 'After get_days_in_year_and_month ' || l_return_status);
2461: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2462: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2463: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2464: RAISE OKL_API.G_EXCEPTION_ERROR;
2465: END IF;
2466: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2459: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2460: 'After get_days_in_year_and_month ' || l_return_status);
2461: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2462: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2463: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2464: RAISE OKL_API.G_EXCEPTION_ERROR;
2465: END IF;
2466: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2467: 'l_days_in_month= ' || l_days_in_month || ' | l_days_in_year = ' || l_days_in_year);
2460: 'After get_days_in_year_and_month ' || l_return_status);
2461: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2462: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2463: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2464: RAISE OKL_API.G_EXCEPTION_ERROR;
2465: END IF;
2466: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2467: 'l_days_in_month= ' || l_days_in_month || ' | l_days_in_year = ' || l_days_in_year);
2468:
2469: -- 1/ Fetch the Start Date
2470: IF p_start_date IS NULL
2471: THEN
2472: -- Show the error message
2473: RAISE OKL_API.G_EXCEPTION_ERROR;
2474: END IF; -- IF p_start_date
2475: IF px_pricing_parameter_tbl.COUNT > 0
2476: THEN
2477: -- Do Nothing
2477: -- Do Nothing
2478: NULL;
2479: ELSE
2480: -- Cant proceed.
2481: RAISE OKL_API.G_EXCEPTION_ERROR;
2482: END IF; -- IF px_pricing_parameter_tbl.COUNT > 0
2483:
2484: IF p_pricing_method = 'SY' OR
2485: p_pricing_method = 'TR'
2488: NULL;
2489: ELSE
2490: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2491: 'Compute_irr currently supports only Solve for Yields and Target Rate Pricing Scenarios only ' );
2492: RAISE OKL_API.G_EXCEPTION_ERROR;
2493: END IF;
2494: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2495: 'Start Date =' || p_start_date );
2496: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2537: p_start_date => p_start_date, -- Start date mentioned in the Header rec
2538: p_end_date => l_cash_inflow_strms_tbl(cin_index).cf_date,
2539: p_arrears => l_cash_inflow_strms_tbl(cin_index).is_arrears,
2540: x_return_status => l_return_status);
2541: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2542: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2543: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2544: RAISE OKL_API.G_EXCEPTION_ERROR;
2545: END IF;
2538: p_end_date => l_cash_inflow_strms_tbl(cin_index).cf_date,
2539: p_arrears => l_cash_inflow_strms_tbl(cin_index).is_arrears,
2540: x_return_status => l_return_status);
2541: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2542: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2543: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2544: RAISE OKL_API.G_EXCEPTION_ERROR;
2545: END IF;
2546: -- cf_dpp, cf_ppy, cf_periods are being populated
2539: p_arrears => l_cash_inflow_strms_tbl(cin_index).is_arrears,
2540: x_return_status => l_return_status);
2541: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2542: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2543: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2544: RAISE OKL_API.G_EXCEPTION_ERROR;
2545: END IF;
2546: -- cf_dpp, cf_ppy, cf_periods are being populated
2547: IF p_day_count_method <> 'THIRTY'
2540: x_return_status => l_return_status);
2541: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2542: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2543: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2544: RAISE OKL_API.G_EXCEPTION_ERROR;
2545: END IF;
2546: -- cf_dpp, cf_ppy, cf_periods are being populated
2547: IF p_day_count_method <> 'THIRTY'
2548: THEN
2565: p_start_date => l_period_start_date, -- Start date mentioned in the Header rec
2566: p_end_date => l_period_end_date,
2567: p_arrears => 'Y',
2568: x_return_status => l_return_status);
2569: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2570: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2571: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2572: RAISE OKL_API.G_EXCEPTION_ERROR;
2573: END IF;
2566: p_end_date => l_period_end_date,
2567: p_arrears => 'Y',
2568: x_return_status => l_return_status);
2569: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2570: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2571: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2572: RAISE OKL_API.G_EXCEPTION_ERROR;
2573: END IF;
2574: END IF; -- If p_day_convention <> 'THIRTY'
2567: p_arrears => 'Y',
2568: x_return_status => l_return_status);
2569: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2570: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2571: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2572: RAISE OKL_API.G_EXCEPTION_ERROR;
2573: END IF;
2574: END IF; -- If p_day_convention <> 'THIRTY'
2575: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2568: x_return_status => l_return_status);
2569: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2570: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2571: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2572: RAISE OKL_API.G_EXCEPTION_ERROR;
2573: END IF;
2574: END IF; -- If p_day_convention <> 'THIRTY'
2575: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2576: ROUND(l_cash_inflow_strms_tbl(cin_index).cf_rate,4) || '|' || l_cash_inflow_strms_tbl(cin_index).cf_date
2604: p_date => l_residuals_tbl(res_index).cf_date,
2605: p_cf_strms_tbl => px_pricing_parameter_tbl(i).cash_inflows,
2606: x_rate => l_residuals_tbl(res_index).cf_rate,
2607: x_return_status => l_return_status);
2608: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2609: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2610: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2611: RAISE OKL_API.G_EXCEPTION_ERROR;
2612: END IF;
2605: p_cf_strms_tbl => px_pricing_parameter_tbl(i).cash_inflows,
2606: x_rate => l_residuals_tbl(res_index).cf_rate,
2607: x_return_status => l_return_status);
2608: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2609: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2610: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2611: RAISE OKL_API.G_EXCEPTION_ERROR;
2612: END IF;
2613: l_residuals_tbl(res_index).cf_days :=
2606: x_rate => l_residuals_tbl(res_index).cf_rate,
2607: x_return_status => l_return_status);
2608: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2609: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2610: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2611: RAISE OKL_API.G_EXCEPTION_ERROR;
2612: END IF;
2613: l_residuals_tbl(res_index).cf_days :=
2614: get_day_count(
2607: x_return_status => l_return_status);
2608: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2609: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2610: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2611: RAISE OKL_API.G_EXCEPTION_ERROR;
2612: END IF;
2613: l_residuals_tbl(res_index).cf_days :=
2614: get_day_count(
2615: p_days_in_month => l_days_in_month,
2617: p_start_date => p_start_date, -- Start date mentioned in the Header rec
2618: p_end_date => l_residuals_tbl(res_index).cf_date,
2619: p_arrears => 'Y', -- Residuals are always obtained at the end of the term
2620: x_return_status => l_return_status);
2621: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2622: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2623: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2624: RAISE OKL_API.G_EXCEPTION_ERROR;
2625: END IF;
2618: p_end_date => l_residuals_tbl(res_index).cf_date,
2619: p_arrears => 'Y', -- Residuals are always obtained at the end of the term
2620: x_return_status => l_return_status);
2621: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2622: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2623: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2624: RAISE OKL_API.G_EXCEPTION_ERROR;
2625: END IF;
2626:
2619: p_arrears => 'Y', -- Residuals are always obtained at the end of the term
2620: x_return_status => l_return_status);
2621: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2622: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2623: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2624: RAISE OKL_API.G_EXCEPTION_ERROR;
2625: END IF;
2626:
2627: IF p_day_count_method <> 'THIRTY'
2620: x_return_status => l_return_status);
2621: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2622: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2623: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2624: RAISE OKL_API.G_EXCEPTION_ERROR;
2625: END IF;
2626:
2627: IF p_day_count_method <> 'THIRTY'
2628: THEN
2632: p_start_date => l_period_end_date,
2633: p_months_after => -12 / l_residuals_tbl(res_index).cf_ppy, -- Will get the frequency for us
2634: x_date => l_period_start_date,
2635: x_return_status => l_return_status);
2636: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2637: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2638: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2639: RAISE OKL_API.G_EXCEPTION_ERROR;
2640: END IF;
2633: p_months_after => -12 / l_residuals_tbl(res_index).cf_ppy, -- Will get the frequency for us
2634: x_date => l_period_start_date,
2635: x_return_status => l_return_status);
2636: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2637: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2638: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2639: RAISE OKL_API.G_EXCEPTION_ERROR;
2640: END IF;
2641:
2634: x_date => l_period_start_date,
2635: x_return_status => l_return_status);
2636: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2637: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2638: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2639: RAISE OKL_API.G_EXCEPTION_ERROR;
2640: END IF;
2641:
2642: l_period_start_date := l_period_start_date + 1;
2635: x_return_status => l_return_status);
2636: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2637: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2638: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2639: RAISE OKL_API.G_EXCEPTION_ERROR;
2640: END IF;
2641:
2642: l_period_start_date := l_period_start_date + 1;
2643: l_residuals_tbl(res_index).cf_period_start_end_date := l_period_start_date;
2650: p_start_date => l_period_start_date, -- Start date mentioned in the Header rec
2651: p_end_date => l_period_end_date,
2652: p_arrears => 'Y',
2653: x_return_status => l_return_status);
2654: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2655: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2656: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2657: RAISE OKL_API.G_EXCEPTION_ERROR;
2658: END IF;
2651: p_end_date => l_period_end_date,
2652: p_arrears => 'Y',
2653: x_return_status => l_return_status);
2654: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2655: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2656: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2657: RAISE OKL_API.G_EXCEPTION_ERROR;
2658: END IF;
2659: END IF; -- IF p_day_count_method = 'THIRTY'
2652: p_arrears => 'Y',
2653: x_return_status => l_return_status);
2654: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2655: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2656: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2657: RAISE OKL_API.G_EXCEPTION_ERROR;
2658: END IF;
2659: END IF; -- IF p_day_count_method = 'THIRTY'
2660: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2653: x_return_status => l_return_status);
2654: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2655: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2656: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2657: RAISE OKL_API.G_EXCEPTION_ERROR;
2658: END IF;
2659: END IF; -- IF p_day_count_method = 'THIRTY'
2660: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2661: round(l_residuals_tbl(res_index).cf_rate,4) || '|' || l_residuals_tbl(res_index).cf_date
2697: p_start_date => p_start_date, -- Start date mentioned in the Header rec
2698: p_end_date => l_cash_inflow_strms_tbl(cin_index).cf_date,
2699: p_arrears => l_cash_inflow_strms_tbl(cin_index).is_arrears,
2700: x_return_status => l_return_status);
2701: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2702: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2703: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2704: RAISE OKL_API.G_EXCEPTION_ERROR;
2705: END IF;
2698: p_end_date => l_cash_inflow_strms_tbl(cin_index).cf_date,
2699: p_arrears => l_cash_inflow_strms_tbl(cin_index).is_arrears,
2700: x_return_status => l_return_status);
2701: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2702: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2703: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2704: RAISE OKL_API.G_EXCEPTION_ERROR;
2705: END IF;
2706: -- cf_dpp, cf_ppy, cf_periods are being populated
2699: p_arrears => l_cash_inflow_strms_tbl(cin_index).is_arrears,
2700: x_return_status => l_return_status);
2701: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2702: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2703: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2704: RAISE OKL_API.G_EXCEPTION_ERROR;
2705: END IF;
2706: -- cf_dpp, cf_ppy, cf_periods are being populated
2707: IF p_day_count_method <> 'THIRTY'
2700: x_return_status => l_return_status);
2701: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2702: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2703: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2704: RAISE OKL_API.G_EXCEPTION_ERROR;
2705: END IF;
2706: -- cf_dpp, cf_ppy, cf_periods are being populated
2707: IF p_day_count_method <> 'THIRTY'
2708: THEN
2725: p_start_date => l_period_start_date, -- Start date mentioned in the Header rec
2726: p_end_date => l_period_end_date,
2727: p_arrears => 'Y',
2728: x_return_status => l_return_status);
2729: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2730: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2731: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2732: RAISE OKL_API.G_EXCEPTION_ERROR;
2733: END IF;
2726: p_end_date => l_period_end_date,
2727: p_arrears => 'Y',
2728: x_return_status => l_return_status);
2729: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2730: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2731: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2732: RAISE OKL_API.G_EXCEPTION_ERROR;
2733: END IF;
2734: END IF; -- If p_day_convention <> 'THIRTY'
2727: p_arrears => 'Y',
2728: x_return_status => l_return_status);
2729: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2730: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2731: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2732: RAISE OKL_API.G_EXCEPTION_ERROR;
2733: END IF;
2734: END IF; -- If p_day_convention <> 'THIRTY'
2735: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2728: x_return_status => l_return_status);
2729: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2730: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2731: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2732: RAISE OKL_API.G_EXCEPTION_ERROR;
2733: END IF;
2734: END IF; -- If p_day_convention <> 'THIRTY'
2735: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2736: round(l_cash_inflow_strms_tbl(cin_index).cf_rate,4) || '|' || l_cash_inflow_strms_tbl(cin_index).cf_date
2774: p_start_date => p_start_date, -- Start date mentioned in the Header rec
2775: p_end_date => l_cash_outflow_strms_tbl(cout_index).cf_date,
2776: p_arrears => l_cash_outflow_strms_tbl(cout_index).is_arrears,
2777: x_return_status => l_return_status);
2778: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2779: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2780: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2781: RAISE OKL_API.G_EXCEPTION_ERROR;
2782: END IF;
2775: p_end_date => l_cash_outflow_strms_tbl(cout_index).cf_date,
2776: p_arrears => l_cash_outflow_strms_tbl(cout_index).is_arrears,
2777: x_return_status => l_return_status);
2778: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2779: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2780: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2781: RAISE OKL_API.G_EXCEPTION_ERROR;
2782: END IF;
2783: -- cf_dpp, cf_ppy, cf_periods are being populated
2776: p_arrears => l_cash_outflow_strms_tbl(cout_index).is_arrears,
2777: x_return_status => l_return_status);
2778: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2779: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2780: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2781: RAISE OKL_API.G_EXCEPTION_ERROR;
2782: END IF;
2783: -- cf_dpp, cf_ppy, cf_periods are being populated
2784: IF p_day_count_method <> 'THIRTY'
2777: x_return_status => l_return_status);
2778: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2779: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2780: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2781: RAISE OKL_API.G_EXCEPTION_ERROR;
2782: END IF;
2783: -- cf_dpp, cf_ppy, cf_periods are being populated
2784: IF p_day_count_method <> 'THIRTY'
2785: THEN
2802: p_start_date => l_period_start_date,
2803: p_end_date => l_period_end_date,
2804: p_arrears => 'Y',
2805: x_return_status => l_return_status);
2806: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2807: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2808: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2809: RAISE OKL_API.G_EXCEPTION_ERROR;
2810: END IF;
2803: p_end_date => l_period_end_date,
2804: p_arrears => 'Y',
2805: x_return_status => l_return_status);
2806: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2807: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2808: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2809: RAISE OKL_API.G_EXCEPTION_ERROR;
2810: END IF;
2811: END IF; -- If p_day_convention <> 'THIRTY'
2804: p_arrears => 'Y',
2805: x_return_status => l_return_status);
2806: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2807: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2808: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2809: RAISE OKL_API.G_EXCEPTION_ERROR;
2810: END IF;
2811: END IF; -- If p_day_convention <> 'THIRTY'
2812: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2805: x_return_status => l_return_status);
2806: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2807: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2808: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2809: RAISE OKL_API.G_EXCEPTION_ERROR;
2810: END IF;
2811: END IF; -- If p_day_convention <> 'THIRTY'
2812: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2813: ROUND(l_cash_outflow_strms_tbl(cout_index).cf_rate,4) || '|' || l_cash_outflow_strms_tbl(cout_index).cf_date
2846: p_start_date => p_start_date, -- Start date mentioned in the Header rec
2847: p_end_date => l_cash_inflow_strms_tbl(cin_index).cf_date,
2848: p_arrears => 'N',
2849: x_return_status => l_return_status);
2850: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2851: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2852: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2853: RAISE OKL_API.G_EXCEPTION_ERROR;
2854: END IF;
2847: p_end_date => l_cash_inflow_strms_tbl(cin_index).cf_date,
2848: p_arrears => 'N',
2849: x_return_status => l_return_status);
2850: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2851: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2852: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2853: RAISE OKL_API.G_EXCEPTION_ERROR;
2854: END IF;
2855:
2848: p_arrears => 'N',
2849: x_return_status => l_return_status);
2850: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2851: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2852: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2853: RAISE OKL_API.G_EXCEPTION_ERROR;
2854: END IF;
2855:
2856: -- cf_dpp, cf_ppy, cf_periods are being populated
2849: x_return_status => l_return_status);
2850: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2851: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2852: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2853: RAISE OKL_API.G_EXCEPTION_ERROR;
2854: END IF;
2855:
2856: -- cf_dpp, cf_ppy, cf_periods are being populated
2857: IF p_day_count_method <> 'THIRTY'
2875: p_start_date => l_period_start_date,
2876: p_end_date => l_period_end_date,
2877: p_arrears => 'Y',
2878: x_return_status => l_return_status);
2879: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2880: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2881: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2882: RAISE OKL_API.G_EXCEPTION_ERROR;
2883: END IF;
2876: p_end_date => l_period_end_date,
2877: p_arrears => 'Y',
2878: x_return_status => l_return_status);
2879: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2880: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2881: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2882: RAISE OKL_API.G_EXCEPTION_ERROR;
2883: END IF;
2884: END IF; -- If p_day_convention <> 'THIRTY'
2877: p_arrears => 'Y',
2878: x_return_status => l_return_status);
2879: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2880: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2881: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2882: RAISE OKL_API.G_EXCEPTION_ERROR;
2883: END IF;
2884: END IF; -- If p_day_convention <> 'THIRTY'
2885: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2878: x_return_status => l_return_status);
2879: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2880: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2881: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2882: RAISE OKL_API.G_EXCEPTION_ERROR;
2883: END IF;
2884: END IF; -- If p_day_convention <> 'THIRTY'
2885: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2886: ROUND(l_cash_inflow_strms_tbl(cin_index).cf_rate,4) || '|' || l_cash_inflow_strms_tbl(cin_index).cf_date
2905: p_start_date => p_start_date,
2906: p_end_date => px_pricing_parameter_tbl(i).line_end_date,
2907: p_arrears => 'N',
2908: x_return_status => l_return_status);
2909: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2910: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2911: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2912: RAISE OKL_API.G_EXCEPTION_ERROR;
2913: END IF;
2906: p_end_date => px_pricing_parameter_tbl(i).line_end_date,
2907: p_arrears => 'N',
2908: x_return_status => l_return_status);
2909: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2910: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2911: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2912: RAISE OKL_API.G_EXCEPTION_ERROR;
2913: END IF;
2914: -- Use the cash inflows cf_dpp as the cf_dpp for outflows too,
2907: p_arrears => 'N',
2908: x_return_status => l_return_status);
2909: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2910: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2911: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2912: RAISE OKL_API.G_EXCEPTION_ERROR;
2913: END IF;
2914: -- Use the cash inflows cf_dpp as the cf_dpp for outflows too,
2915: -- instead of calculation of the cf_dpp for ACT365/ ACTUAL day count methods pricing
2908: x_return_status => l_return_status);
2909: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2910: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2911: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2912: RAISE OKL_API.G_EXCEPTION_ERROR;
2913: END IF;
2914: -- Use the cash inflows cf_dpp as the cf_dpp for outflows too,
2915: -- instead of calculation of the cf_dpp for ACT365/ ACTUAL day count methods pricing
2916: l_cash_outflow_strms_tbl(cout_index).cf_dpp :=
2950: THEN
2951: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2952: 'Unable to calculate the IRR l_adv_inf_payment= ' || round(l_adv_inf_payment, 4)
2953: || 'l_time_zero_cost = ' || round( l_time_zero_cost, 4) );
2954: OKL_API.SET_MESSAGE (
2955: p_app_name => G_APP_NAME,
2956: p_msg_name => 'OKL_IRR_CALC_INF_LOOP',
2957: p_token1 => 'ADV_AMOUNT',
2958: p_token1_value => l_adv_inf_payment,
2957: p_token1 => 'ADV_AMOUNT',
2958: p_token1_value => l_adv_inf_payment,
2959: p_token2 => 'CAPITAL_AMOUNT',
2960: p_token2_value => l_time_zero_cost);
2961: RAISE OKL_API.G_EXCEPTION_ERROR;
2962: END IF;
2963: -- 30/ Validate Currency code and Precision ...
2964: IF p_currency_code IS NOT NULL
2965: THEN
2973: IF l_precision IS NULL
2974: THEN
2975: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2976: ': ' || 'Precision is not mentioned !' );
2977: OKL_API.set_message(
2978: p_app_name => G_APP_NAME,
2979: p_msg_name => OKL_API.G_REQUIRED_VALUE,
2980: p_token1 => OKL_API.G_COL_NAME_TOKEN,
2981: p_token1_value => 'CURRENCY_CODE');
2975: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
2976: ': ' || 'Precision is not mentioned !' );
2977: OKL_API.set_message(
2978: p_app_name => G_APP_NAME,
2979: p_msg_name => OKL_API.G_REQUIRED_VALUE,
2980: p_token1 => OKL_API.G_COL_NAME_TOKEN,
2981: p_token1_value => 'CURRENCY_CODE');
2982: RAISE OKL_API.G_EXCEPTION_ERROR;
2983: END IF;
2976: ': ' || 'Precision is not mentioned !' );
2977: OKL_API.set_message(
2978: p_app_name => G_APP_NAME,
2979: p_msg_name => OKL_API.G_REQUIRED_VALUE,
2980: p_token1 => OKL_API.G_COL_NAME_TOKEN,
2981: p_token1_value => 'CURRENCY_CODE');
2982: RAISE OKL_API.G_EXCEPTION_ERROR;
2983: END IF;
2984: -- Setting up all for the MAIN Loop ....
2978: p_app_name => G_APP_NAME,
2979: p_msg_name => OKL_API.G_REQUIRED_VALUE,
2980: p_token1 => OKL_API.G_COL_NAME_TOKEN,
2981: p_token1_value => 'CURRENCY_CODE');
2982: RAISE OKL_API.G_EXCEPTION_ERROR;
2983: END IF;
2984: -- Setting up all for the MAIN Loop ....
2985: -- Setting the IRR limit
2986: l_irr_limit := ROUND(NVL(ABS(fnd_profile.value('OKL_PRE_TAX_IRR_LIMIT')), 1000), 0)/100;
3043: END IF;
3044: -- Now, calculate the Present Value of the Residual Value Cash Inflow
3045: IF (l_rate /l_cf_ppy = -1) or ((l_periods < 1) AND (l_rate /l_cf_ppy <= -1))
3046: THEN
3047: OKL_API.SET_MESSAGE (
3048: p_app_name => G_APP_NAME,
3049: p_msg_name => 'OKL_IRR_ZERO_DIV');
3050: l_return_status := OKL_API.G_RET_STS_ERROR;
3051: RAISE OKL_API.G_EXCEPTION_ERROR;
3046: THEN
3047: OKL_API.SET_MESSAGE (
3048: p_app_name => G_APP_NAME,
3049: p_msg_name => 'OKL_IRR_ZERO_DIV');
3050: l_return_status := OKL_API.G_RET_STS_ERROR;
3051: RAISE OKL_API.G_EXCEPTION_ERROR;
3052: END IF;
3053: l_disc_rate := 1 / POWER((1 + l_rate /(l_cf_ppy)), l_periods);
3054: l_temp_amount := l_cf_amount * l_disc_rate;
3047: OKL_API.SET_MESSAGE (
3048: p_app_name => G_APP_NAME,
3049: p_msg_name => 'OKL_IRR_ZERO_DIV');
3050: l_return_status := OKL_API.G_RET_STS_ERROR;
3051: RAISE OKL_API.G_EXCEPTION_ERROR;
3052: END IF;
3053: l_disc_rate := 1 / POWER((1 + l_rate /(l_cf_ppy)), l_periods);
3054: l_temp_amount := l_cf_amount * l_disc_rate;
3055: l_npv := l_npv + nvl(l_temp_amount,0);
3104: THEN
3105: l_rate := l_irr;
3106: IF (l_rate /l_cf_ppy = -1) or ((l_periods < 1) AND (l_rate /l_cf_ppy <= -1))
3107: THEN
3108: OKL_API.SET_MESSAGE (
3109: p_app_name => G_APP_NAME,
3110: p_msg_name => 'OKL_IRR_ZERO_DIV');
3111: l_return_status := OKL_API.G_RET_STS_ERROR;
3112: RAISE OKL_API.G_EXCEPTION_ERROR;
3107: THEN
3108: OKL_API.SET_MESSAGE (
3109: p_app_name => G_APP_NAME,
3110: p_msg_name => 'OKL_IRR_ZERO_DIV');
3111: l_return_status := OKL_API.G_RET_STS_ERROR;
3112: RAISE OKL_API.G_EXCEPTION_ERROR;
3113: END IF;
3114: -- Now, calculate the Present Value of the Cash Inflows
3115: l_disc_rate := 1/ POWER((1 + l_rate /(l_cf_ppy)), l_periods);
3108: OKL_API.SET_MESSAGE (
3109: p_app_name => G_APP_NAME,
3110: p_msg_name => 'OKL_IRR_ZERO_DIV');
3111: l_return_status := OKL_API.G_RET_STS_ERROR;
3112: RAISE OKL_API.G_EXCEPTION_ERROR;
3113: END IF;
3114: -- Now, calculate the Present Value of the Cash Inflows
3115: l_disc_rate := 1/ POWER((1 + l_rate /(l_cf_ppy)), l_periods);
3116: l_temp_amount := l_cf_amount * l_disc_rate;
3127: -- Rate given, need to solve for Payment
3128: l_rate := l_cash_inflow_strms_tbl(cin_index).cf_rate;
3129: IF (l_rate /l_cf_ppy = -1) or ((l_periods < 1) AND (l_rate /l_cf_ppy <= -1))
3130: THEN
3131: OKL_API.SET_MESSAGE (
3132: p_app_name => G_APP_NAME,
3133: p_msg_name => 'OKL_IRR_ZERO_DIV');
3134: l_return_status := OKL_API.G_RET_STS_ERROR;
3135: RAISE OKL_API.G_EXCEPTION_ERROR;
3130: THEN
3131: OKL_API.SET_MESSAGE (
3132: p_app_name => G_APP_NAME,
3133: p_msg_name => 'OKL_IRR_ZERO_DIV');
3134: l_return_status := OKL_API.G_RET_STS_ERROR;
3135: RAISE OKL_API.G_EXCEPTION_ERROR;
3136: END IF;
3137: l_term_interest := 1/ POWER((1 + l_rate /(l_cf_ppy)), l_periods);
3138: l_acc_term_interest := l_acc_term_interest + l_term_interest;
3131: OKL_API.SET_MESSAGE (
3132: p_app_name => G_APP_NAME,
3133: p_msg_name => 'OKL_IRR_ZERO_DIV');
3134: l_return_status := OKL_API.G_RET_STS_ERROR;
3135: RAISE OKL_API.G_EXCEPTION_ERROR;
3136: END IF;
3137: l_term_interest := 1/ POWER((1 + l_rate /(l_cf_ppy)), l_periods);
3138: l_acc_term_interest := l_acc_term_interest + l_term_interest;
3139: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3195: THEN
3196: l_rate := l_irr;
3197: IF (l_rate /l_cf_ppy = -1) or ((l_periods < 1) AND (l_rate /l_cf_ppy <= -1))
3198: THEN
3199: OKL_API.SET_MESSAGE (
3200: p_app_name => G_APP_NAME,
3201: p_msg_name => 'OKL_IRR_ZERO_DIV');
3202: l_return_status := OKL_API.G_RET_STS_ERROR;
3203: RAISE OKL_API.G_EXCEPTION_ERROR;
3198: THEN
3199: OKL_API.SET_MESSAGE (
3200: p_app_name => G_APP_NAME,
3201: p_msg_name => 'OKL_IRR_ZERO_DIV');
3202: l_return_status := OKL_API.G_RET_STS_ERROR;
3203: RAISE OKL_API.G_EXCEPTION_ERROR;
3204: END IF;
3205: -- Now, calculate the Present Value of the Cash Inflows
3206: l_disc_rate := 1/ POWER((1 + l_rate /(l_cf_ppy)), l_periods);
3199: OKL_API.SET_MESSAGE (
3200: p_app_name => G_APP_NAME,
3201: p_msg_name => 'OKL_IRR_ZERO_DIV');
3202: l_return_status := OKL_API.G_RET_STS_ERROR;
3203: RAISE OKL_API.G_EXCEPTION_ERROR;
3204: END IF;
3205: -- Now, calculate the Present Value of the Cash Inflows
3206: l_disc_rate := 1/ POWER((1 + l_rate /(l_cf_ppy)), l_periods);
3207: l_temp_amount := l_cf_amount * l_disc_rate;
3218: -- Rate given, need to solve for Payment
3219: l_rate := l_cash_outflow_strms_tbl(cout_index).cf_rate;
3220: IF (l_rate /l_cf_ppy = -1) or ((l_periods < 1) AND (l_rate /l_cf_ppy <= -1))
3221: THEN
3222: OKL_API.SET_MESSAGE (
3223: p_app_name => G_APP_NAME,
3224: p_msg_name => 'OKL_IRR_ZERO_DIV');
3225: l_return_status := OKL_API.G_RET_STS_ERROR;
3226: RAISE OKL_API.G_EXCEPTION_ERROR;
3221: THEN
3222: OKL_API.SET_MESSAGE (
3223: p_app_name => G_APP_NAME,
3224: p_msg_name => 'OKL_IRR_ZERO_DIV');
3225: l_return_status := OKL_API.G_RET_STS_ERROR;
3226: RAISE OKL_API.G_EXCEPTION_ERROR;
3227: END IF;
3228: l_term_interest := 1/ POWER((1 + l_rate /(l_cf_ppy)), l_periods);
3229: l_acc_term_interest := l_acc_term_interest + l_term_interest;
3222: OKL_API.SET_MESSAGE (
3223: p_app_name => G_APP_NAME,
3224: p_msg_name => 'OKL_IRR_ZERO_DIV');
3225: l_return_status := OKL_API.G_RET_STS_ERROR;
3226: RAISE OKL_API.G_EXCEPTION_ERROR;
3227: END IF;
3228: l_term_interest := 1/ POWER((1 + l_rate /(l_cf_ppy)), l_periods);
3229: l_acc_term_interest := l_acc_term_interest + l_term_interest;
3230: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3266: THEN
3267: -- Calculate the Payment and exit .. ..( NO LOOPING ...)
3268: IF ROUND( l_acc_term_interest, l_precision + 4 ) = 0
3269: THEN
3270: OKL_API.SET_MESSAGE (
3271: p_app_name => G_APP_NAME,
3272: p_msg_name => 'OKL_IRR_ZERO_DIV');
3273: l_return_status := OKL_API.G_RET_STS_ERROR;
3274: EXIT WHEN (l_return_status = OKL_API.G_RET_STS_ERROR);
3269: THEN
3270: OKL_API.SET_MESSAGE (
3271: p_app_name => G_APP_NAME,
3272: p_msg_name => 'OKL_IRR_ZERO_DIV');
3273: l_return_status := OKL_API.G_RET_STS_ERROR;
3274: EXIT WHEN (l_return_status = OKL_API.G_RET_STS_ERROR);
3275: END IF;
3276: x_payment := -l_npv/ l_acc_term_interest;
3277: px_irr := l_irr;
3270: OKL_API.SET_MESSAGE (
3271: p_app_name => G_APP_NAME,
3272: p_msg_name => 'OKL_IRR_ZERO_DIV');
3273: l_return_status := OKL_API.G_RET_STS_ERROR;
3274: EXIT WHEN (l_return_status = OKL_API.G_RET_STS_ERROR);
3275: END IF;
3276: x_payment := -l_npv/ l_acc_term_interest;
3277: px_irr := l_irr;
3278: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3364: -- If IRR exceeded the limit set in the profile, then raise an error
3365: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3366: 'l_irr ' || round( l_irr, 4 ) );
3367: IF ABS(l_irr) > l_irr_limit THEN
3368: OKL_API.SET_MESSAGE (
3369: p_app_name => G_APP_NAME,
3370: p_msg_name => 'OKL_IRR_CALC_IRR_LIMIT',
3371: p_token1 => 'IRR_LIMIT',
3372: p_token1_value => l_irr_limit*100);
3369: p_app_name => G_APP_NAME,
3370: p_msg_name => 'OKL_IRR_CALC_IRR_LIMIT',
3371: p_token1 => 'IRR_LIMIT',
3372: p_token1_value => l_irr_limit*100);
3373: x_return_status := OKL_API.G_RET_STS_ERROR;
3374: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3375: '---------------- IRR crossed the limit --------------------------- ' );
3376: RAISE OKL_API.G_EXCEPTION_ERROR;
3377: --EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3372: p_token1_value => l_irr_limit*100);
3373: x_return_status := OKL_API.G_RET_STS_ERROR;
3374: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3375: '---------------- IRR crossed the limit --------------------------- ' );
3376: RAISE OKL_API.G_EXCEPTION_ERROR;
3377: --EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3378: END IF;
3379: l_prev_incr_sign := SIGN(l_increment_rate);
3380: l_prev_npv_sign := SIGN(l_npv);
3373: x_return_status := OKL_API.G_RET_STS_ERROR;
3374: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3375: '---------------- IRR crossed the limit --------------------------- ' );
3376: RAISE OKL_API.G_EXCEPTION_ERROR;
3377: --EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3378: END IF;
3379: l_prev_incr_sign := SIGN(l_increment_rate);
3380: l_prev_npv_sign := SIGN(l_npv);
3381: l_prev_npv := l_npv;
3382: END IF;
3383: END LOOP; -- (Loop on n_iterations .. )
3384: -- Setting up the return variables
3385: x_return_status := l_return_status;
3386: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
3387: x_msg_data => x_msg_data);
3388: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
3389: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
3390: EXCEPTION
3387: x_msg_data => x_msg_data);
3388: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
3389: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
3390: EXCEPTION
3391: WHEN OKL_API.G_EXCEPTION_ERROR THEN
3392: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3393: p_api_name => l_api_name,
3394: p_pkg_name => G_PKG_NAME,
3395: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
3388: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
3389: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
3390: EXCEPTION
3391: WHEN OKL_API.G_EXCEPTION_ERROR THEN
3392: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3393: p_api_name => l_api_name,
3394: p_pkg_name => G_PKG_NAME,
3395: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
3396: x_msg_count => x_msg_count,
3391: WHEN OKL_API.G_EXCEPTION_ERROR THEN
3392: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3393: p_api_name => l_api_name,
3394: p_pkg_name => G_PKG_NAME,
3395: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
3396: x_msg_count => x_msg_count,
3397: x_msg_data => x_msg_data,
3398: p_api_type => g_api_type);
3399: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3395: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
3396: x_msg_count => x_msg_count,
3397: x_msg_data => x_msg_data,
3398: p_api_type => g_api_type);
3399: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3400: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3401: p_api_name => l_api_name,
3402: p_pkg_name => G_PKG_NAME,
3403: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
3396: x_msg_count => x_msg_count,
3397: x_msg_data => x_msg_data,
3398: p_api_type => g_api_type);
3399: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3400: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3401: p_api_name => l_api_name,
3402: p_pkg_name => G_PKG_NAME,
3403: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
3404: x_msg_count => x_msg_count,
3399: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3400: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3401: p_api_name => l_api_name,
3402: p_pkg_name => G_PKG_NAME,
3403: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
3404: x_msg_count => x_msg_count,
3405: x_msg_data => x_msg_data,
3406: p_api_type => g_api_type);
3407: WHEN OTHERS THEN
3404: x_msg_count => x_msg_count,
3405: x_msg_data => x_msg_data,
3406: p_api_type => g_api_type);
3407: WHEN OTHERS THEN
3408: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3409: p_api_name => l_api_name,
3410: p_pkg_name => G_PKG_NAME,
3411: p_exc_name => 'OTHERS',
3412: x_msg_count => x_msg_count,
3462: l_days_per_annum NUMBER;
3463: l_interest_factor NUMBER;
3464: l_residual_percent NUMBER;
3465: BEGIN
3466: l_return_status := OKL_API.G_RET_STS_SUCCESS;
3467: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
3468: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
3469:
3470: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
3472: -- check for logging on STATEMENT level
3473: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
3474: -- Call START_ACTIVITY to create savepoint, check compatibility
3475: -- and initialize message list
3476: l_return_status := OKL_API.START_ACTIVITY(
3477: p_api_name => l_api_name,
3478: p_pkg_name => G_PKG_NAME,
3479: p_init_msg_list => p_init_msg_list,
3480: l_api_version => l_api_version,
3481: p_api_version => p_api_version,
3482: p_api_type => g_api_type,
3483: x_return_status => x_return_status);
3484: --Check if activity started successfully
3485: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3486: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3487: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3488: RAISE OKL_API.G_EXCEPTION_ERROR;
3489: END IF;
3482: p_api_type => g_api_type,
3483: x_return_status => x_return_status);
3484: --Check if activity started successfully
3485: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3486: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3487: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3488: RAISE OKL_API.G_EXCEPTION_ERROR;
3489: END IF;
3490: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S','-Start' );
3483: x_return_status => x_return_status);
3484: --Check if activity started successfully
3485: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3486: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3487: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3488: RAISE OKL_API.G_EXCEPTION_ERROR;
3489: END IF;
3490: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S','-Start' );
3491: get_days_in_year_and_month(
3484: --Check if activity started successfully
3485: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3486: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3487: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3488: RAISE OKL_API.G_EXCEPTION_ERROR;
3489: END IF;
3490: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S','-Start' );
3491: get_days_in_year_and_month(
3492: p_day_count_method => p_day_count_method,
3493: x_days_in_month => l_days_in_month,
3494: x_days_in_year => l_days_in_year,
3495: x_return_status => l_return_status);
3496: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S','After get_day_count_method ' || l_return_status);
3497: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3498: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3499: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3500: RAISE OKL_API.G_EXCEPTION_ERROR;
3501: END IF;
3494: x_days_in_year => l_days_in_year,
3495: x_return_status => l_return_status);
3496: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S','After get_day_count_method ' || l_return_status);
3497: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3498: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3499: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3500: RAISE OKL_API.G_EXCEPTION_ERROR;
3501: END IF;
3502: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3495: x_return_status => l_return_status);
3496: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S','After get_day_count_method ' || l_return_status);
3497: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3498: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3499: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3500: RAISE OKL_API.G_EXCEPTION_ERROR;
3501: END IF;
3502: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3503: 'l_days_in_month= ' || l_days_in_month || ' | l_days_in_year = ' || l_days_in_year);
3496: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S','After get_day_count_method ' || l_return_status);
3497: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3498: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3499: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3500: RAISE OKL_API.G_EXCEPTION_ERROR;
3501: END IF;
3502: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3503: 'l_days_in_month= ' || l_days_in_month || ' | l_days_in_year = ' || l_days_in_year);
3504: -- Initializations
3512: THEN
3513: -- Not handling other pricing scenarios as of now
3514: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3515: 'Compute_iir_sfp currently supports only Solve for Financed Amount EOT Percent Pricing method only' );
3516: OKL_API.SET_MESSAGE (
3517: p_app_name => G_APP_NAME,
3518: p_msg_name => 'OKL_LP_INVALID_PRICING_METHOD');
3519: RAISE OKL_API.G_EXCEPTION_ERROR;
3520: END IF;
3515: 'Compute_iir_sfp currently supports only Solve for Financed Amount EOT Percent Pricing method only' );
3516: OKL_API.SET_MESSAGE (
3517: p_app_name => G_APP_NAME,
3518: p_msg_name => 'OKL_LP_INVALID_PRICING_METHOD');
3519: RAISE OKL_API.G_EXCEPTION_ERROR;
3520: END IF;
3521: IF px_pricing_parameter_rec.cash_inflows IS NOT NULL AND
3522: px_pricing_parameter_rec.cash_inflows.COUNT > 0
3523: THEN
3540: p_start_date => l_next_cif_date,
3541: p_end_date => l_cash_inflows_tbl(i).cf_date,
3542: p_arrears => l_cash_inflows_tbl(i).is_arrears,
3543: x_return_status => l_return_status);
3544: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3545: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3546: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3547: RAISE OKL_API.G_EXCEPTION_ERROR;
3548: END IF;
3541: p_end_date => l_cash_inflows_tbl(i).cf_date,
3542: p_arrears => l_cash_inflows_tbl(i).is_arrears,
3543: x_return_status => l_return_status);
3544: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3545: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3546: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3547: RAISE OKL_API.G_EXCEPTION_ERROR;
3548: END IF;
3549: IF ( l_cash_inflows_tbl(i).cf_purpose = 'UNSCHEDULED_PRINCIPAL_PAYMENT')
3542: p_arrears => l_cash_inflows_tbl(i).is_arrears,
3543: x_return_status => l_return_status);
3544: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3545: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3546: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3547: RAISE OKL_API.G_EXCEPTION_ERROR;
3548: END IF;
3549: IF ( l_cash_inflows_tbl(i).cf_purpose = 'UNSCHEDULED_PRINCIPAL_PAYMENT')
3550: THEN
3543: x_return_status => l_return_status);
3544: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3545: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3546: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3547: RAISE OKL_API.G_EXCEPTION_ERROR;
3548: END IF;
3549: IF ( l_cash_inflows_tbl(i).cf_purpose = 'UNSCHEDULED_PRINCIPAL_PAYMENT')
3550: THEN
3551: l_cash_inflows_tbl(i).cf_purpose := 'P';
3560: p_day_convention => p_day_count_method,
3561: p_start_date => p_start_date,
3562: p_cash_inflow_date => l_cash_inflows_tbl(i).cf_date,
3563: x_return_status => l_return_status );
3564: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3565: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3566: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3567: RAISE OKL_API.G_EXCEPTION_ERROR;
3568: END IF;
3561: p_start_date => p_start_date,
3562: p_cash_inflow_date => l_cash_inflows_tbl(i).cf_date,
3563: x_return_status => l_return_status );
3564: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3565: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3566: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3567: RAISE OKL_API.G_EXCEPTION_ERROR;
3568: END IF;
3569: -- Sum the Interest based on the capitalized amount
3562: p_cash_inflow_date => l_cash_inflows_tbl(i).cf_date,
3563: x_return_status => l_return_status );
3564: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3565: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3566: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3567: RAISE OKL_API.G_EXCEPTION_ERROR;
3568: END IF;
3569: -- Sum the Interest based on the capitalized amount
3570: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3563: x_return_status => l_return_status );
3564: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3565: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3566: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3567: RAISE OKL_API.G_EXCEPTION_ERROR;
3568: END IF;
3569: -- Sum the Interest based on the capitalized amount
3570: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3571: l_cash_inflows_tbl(i).cf_date || '|' || round(l_cash_inflows_tbl(i).cf_amount,4)
3607: p_start_date => l_next_cif_date,
3608: p_end_date => l_residuals_tbl(res_index).cf_date,
3609: p_arrears => 'Y',
3610: x_return_status => l_return_status);
3611: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3612: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3613: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3614: RAISE OKL_API.G_EXCEPTION_ERROR;
3615: END IF;
3608: p_end_date => l_residuals_tbl(res_index).cf_date,
3609: p_arrears => 'Y',
3610: x_return_status => l_return_status);
3611: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3612: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3613: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3614: RAISE OKL_API.G_EXCEPTION_ERROR;
3615: END IF;
3616: END IF; -- IF l_next_cif_date >= l_residuals_tbl( res_index ).cf_date
3609: p_arrears => 'Y',
3610: x_return_status => l_return_status);
3611: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3612: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3613: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3614: RAISE OKL_API.G_EXCEPTION_ERROR;
3615: END IF;
3616: END IF; -- IF l_next_cif_date >= l_residuals_tbl( res_index ).cf_date
3617: l_next_cif_date := l_residuals_tbl( res_index ).cf_date;
3610: x_return_status => l_return_status);
3611: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3612: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3613: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3614: RAISE OKL_API.G_EXCEPTION_ERROR;
3615: END IF;
3616: END IF; -- IF l_next_cif_date >= l_residuals_tbl( res_index ).cf_date
3617: l_next_cif_date := l_residuals_tbl( res_index ).cf_date;
3618: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3651: p_day_convention => p_day_count_method,
3652: p_start_date => p_start_date,
3653: p_cash_inflow_date => l_residuals_tbl(res_index).cf_date,
3654: x_return_status => l_return_status );
3655: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3656: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3657: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3658: RAISE OKL_API.G_EXCEPTION_ERROR;
3659: END IF;
3652: p_start_date => p_start_date,
3653: p_cash_inflow_date => l_residuals_tbl(res_index).cf_date,
3654: x_return_status => l_return_status );
3655: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3656: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3657: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3658: RAISE OKL_API.G_EXCEPTION_ERROR;
3659: END IF;
3660: -- Sum the Residual Percentage. Cf_amount will be storing the percentages
3653: p_cash_inflow_date => l_residuals_tbl(res_index).cf_date,
3654: x_return_status => l_return_status );
3655: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3656: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3657: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3658: RAISE OKL_API.G_EXCEPTION_ERROR;
3659: END IF;
3660: -- Sum the Residual Percentage. Cf_amount will be storing the percentages
3661: -- instead of directly the amounts
3654: x_return_status => l_return_status );
3655: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3656: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3657: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3658: RAISE OKL_API.G_EXCEPTION_ERROR;
3659: END IF;
3660: -- Sum the Residual Percentage. Cf_amount will be storing the percentages
3661: -- instead of directly the amounts
3662: l_residual_percent := l_residual_percent + nvl( l_residuals_tbl(res_index).cf_amount, 0);
3687: p_day_convention => p_day_count_method,
3688: p_start_date => p_start_date,
3689: p_cash_inflow_date => l_cash_inflows_tbl(cf_index).cf_date,
3690: x_return_status => l_return_status );
3691: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3692: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3693: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3694: RAISE OKL_API.G_EXCEPTION_ERROR;
3695: END IF;
3688: p_start_date => p_start_date,
3689: p_cash_inflow_date => l_cash_inflows_tbl(cf_index).cf_date,
3690: x_return_status => l_return_status );
3691: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3692: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3693: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3694: RAISE OKL_API.G_EXCEPTION_ERROR;
3695: END IF;
3696: l_rate := 1 + ( l_cash_inflows_tbl(cf_index).cf_days *
3689: p_cash_inflow_date => l_cash_inflows_tbl(cf_index).cf_date,
3690: x_return_status => l_return_status );
3691: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3692: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3693: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3694: RAISE OKL_API.G_EXCEPTION_ERROR;
3695: END IF;
3696: l_rate := 1 + ( l_cash_inflows_tbl(cf_index).cf_days *
3697: l_cash_inflows_tbl(cf_index).cf_rate /l_days_per_annum );
3690: x_return_status => l_return_status );
3691: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3692: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3693: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3694: RAISE OKL_API.G_EXCEPTION_ERROR;
3695: END IF;
3696: l_rate := 1 + ( l_cash_inflows_tbl(cf_index).cf_days *
3697: l_cash_inflows_tbl(cf_index).cf_rate /l_days_per_annum );
3698: -- Multiply this interest factor
3723: x_residual_int_factor := l_interest_factor;
3724: END IF;
3725: -- Set ther return values and return them !!
3726: x_return_status := l_return_status;
3727: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
3728: x_msg_data => x_msg_data);
3729: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
3730: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
3731: EXCEPTION
3728: x_msg_data => x_msg_data);
3729: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
3730: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
3731: EXCEPTION
3732: WHEN OKL_API.G_EXCEPTION_ERROR THEN
3733: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3734: p_api_name => l_api_name,
3735: p_pkg_name => G_PKG_NAME,
3736: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
3729: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
3730: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
3731: EXCEPTION
3732: WHEN OKL_API.G_EXCEPTION_ERROR THEN
3733: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3734: p_api_name => l_api_name,
3735: p_pkg_name => G_PKG_NAME,
3736: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
3737: x_msg_count => x_msg_count,
3732: WHEN OKL_API.G_EXCEPTION_ERROR THEN
3733: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3734: p_api_name => l_api_name,
3735: p_pkg_name => G_PKG_NAME,
3736: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
3737: x_msg_count => x_msg_count,
3738: x_msg_data => x_msg_data,
3739: p_api_type => g_api_type);
3740: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3736: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
3737: x_msg_count => x_msg_count,
3738: x_msg_data => x_msg_data,
3739: p_api_type => g_api_type);
3740: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3741: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3742: p_api_name => l_api_name,
3743: p_pkg_name => G_PKG_NAME,
3744: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
3737: x_msg_count => x_msg_count,
3738: x_msg_data => x_msg_data,
3739: p_api_type => g_api_type);
3740: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3741: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3742: p_api_name => l_api_name,
3743: p_pkg_name => G_PKG_NAME,
3744: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
3745: x_msg_count => x_msg_count,
3740: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3741: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3742: p_api_name => l_api_name,
3743: p_pkg_name => G_PKG_NAME,
3744: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
3745: x_msg_count => x_msg_count,
3746: x_msg_data => x_msg_data,
3747: p_api_type => g_api_type);
3748: WHEN OTHERS THEN
3745: x_msg_count => x_msg_count,
3746: x_msg_data => x_msg_data,
3747: p_api_type => g_api_type);
3748: WHEN OTHERS THEN
3749: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3750: p_api_name => l_api_name,
3751: p_pkg_name => G_PKG_NAME,
3752: p_exc_name => 'OTHERS',
3753: x_msg_count => x_msg_count,
3823: l_days_per_annum NUMBER;
3824: l_interest_factor NUMBER;
3825: l_residual_percent NUMBER;
3826: BEGIN
3827: l_return_status := OKL_API.G_RET_STS_SUCCESS;
3828: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
3829: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
3830:
3831: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
3833: -- check for logging on STATEMENT level
3834: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
3835: -- Call START_ACTIVITY to create savepoint, check compatibility
3836: -- and initialize message list
3837: l_return_status := OKL_API.START_ACTIVITY(
3838: p_api_name => l_api_name,
3839: p_pkg_name => G_PKG_NAME,
3840: p_init_msg_list => p_init_msg_list,
3841: l_api_version => l_api_version,
3842: p_api_version => p_api_version,
3843: p_api_type => g_api_type,
3844: x_return_status => x_return_status);
3845: --Check if activity started successfully
3846: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3847: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3848: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3849: RAISE OKL_API.G_EXCEPTION_ERROR;
3850: END IF;
3843: p_api_type => g_api_type,
3844: x_return_status => x_return_status);
3845: --Check if activity started successfully
3846: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3847: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3848: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3849: RAISE OKL_API.G_EXCEPTION_ERROR;
3850: END IF;
3851: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S','-Start' );
3844: x_return_status => x_return_status);
3845: --Check if activity started successfully
3846: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3847: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3848: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3849: RAISE OKL_API.G_EXCEPTION_ERROR;
3850: END IF;
3851: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S','-Start' );
3852: get_days_in_year_and_month(
3845: --Check if activity started successfully
3846: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3847: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3848: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3849: RAISE OKL_API.G_EXCEPTION_ERROR;
3850: END IF;
3851: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S','-Start' );
3852: get_days_in_year_and_month(
3853: p_day_count_method => p_day_count_method,
3854: x_days_in_month => l_days_in_month,
3855: x_days_in_year => l_days_in_year,
3856: x_return_status => l_return_status);
3857: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S','After get_day_count_method ' || l_return_status);
3858: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3859: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3860: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3861: RAISE OKL_API.G_EXCEPTION_ERROR;
3862: END IF;
3855: x_days_in_year => l_days_in_year,
3856: x_return_status => l_return_status);
3857: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S','After get_day_count_method ' || l_return_status);
3858: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3859: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3860: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3861: RAISE OKL_API.G_EXCEPTION_ERROR;
3862: END IF;
3863: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3856: x_return_status => l_return_status);
3857: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S','After get_day_count_method ' || l_return_status);
3858: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3859: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3860: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3861: RAISE OKL_API.G_EXCEPTION_ERROR;
3862: END IF;
3863: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3864: 'l_days_in_month= ' || l_days_in_month || ' | l_days_in_year = ' || l_days_in_year);
3857: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S','After get_day_count_method ' || l_return_status);
3858: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3859: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3860: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3861: RAISE OKL_API.G_EXCEPTION_ERROR;
3862: END IF;
3863: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3864: 'l_days_in_month= ' || l_days_in_month || ' | l_days_in_year = ' || l_days_in_year);
3865: -- Initializations
3892: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3893: 'Compute_iir currently supports only Solve for Payment, Solve for Financed Amount, ' );
3894: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3895: 'Solve for Subsidy, Solve for Subsidy, Down Payment, Tradein, Missing Payment Pricing Scenarios only, Target Rate ( IIR) ' );
3896: OKL_API.SET_MESSAGE (
3897: p_app_name => G_APP_NAME,
3898: p_msg_name => 'OKL_LP_INVALID_PRICING_METHOD');
3899: RAISE OKL_API.G_EXCEPTION_ERROR;
3900: END IF;
3895: 'Solve for Subsidy, Solve for Subsidy, Down Payment, Tradein, Missing Payment Pricing Scenarios only, Target Rate ( IIR) ' );
3896: OKL_API.SET_MESSAGE (
3897: p_app_name => G_APP_NAME,
3898: p_msg_name => 'OKL_LP_INVALID_PRICING_METHOD');
3899: RAISE OKL_API.G_EXCEPTION_ERROR;
3900: END IF;
3901: IF p_pricing_method = 'SP' OR
3902: p_pricing_method = 'SY' OR
3903: p_pricing_method = 'SM' OR
3912: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3913: 'Financed Amount cannot be null .. Pricing Method '|| p_pricing_method );
3914: -- Raise an Error
3915:
3916: RAISE OKL_API.G_EXCEPTION_ERROR;
3917: END IF;
3918: -- The cash inflows should have rate populated !
3919: FOR t IN px_pricing_parameter_rec.cash_inflows.FIRST ..
3920: px_pricing_parameter_rec.cash_inflows.LAST
3924: THEN
3925: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
3926: 'Streams Passed are not having the Rate. Pricing Method '|| p_pricing_method );
3927: -- Raise an Error
3928: OKL_API.set_message(
3929: G_APP_NAME,
3930: OKL_API.G_INVALID_VALUE,
3931: OKL_API.G_COL_NAME_TOKEN,
3932: 'CF_RATE');
3926: 'Streams Passed are not having the Rate. Pricing Method '|| p_pricing_method );
3927: -- Raise an Error
3928: OKL_API.set_message(
3929: G_APP_NAME,
3930: OKL_API.G_INVALID_VALUE,
3931: OKL_API.G_COL_NAME_TOKEN,
3932: 'CF_RATE');
3933: RAISE OKL_API.G_EXCEPTION_ERROR;
3934: END IF;
3927: -- Raise an Error
3928: OKL_API.set_message(
3929: G_APP_NAME,
3930: OKL_API.G_INVALID_VALUE,
3931: OKL_API.G_COL_NAME_TOKEN,
3932: 'CF_RATE');
3933: RAISE OKL_API.G_EXCEPTION_ERROR;
3934: END IF;
3935: END LOOP;
3929: G_APP_NAME,
3930: OKL_API.G_INVALID_VALUE,
3931: OKL_API.G_COL_NAME_TOKEN,
3932: 'CF_RATE');
3933: RAISE OKL_API.G_EXCEPTION_ERROR;
3934: END IF;
3935: END LOOP;
3936: END IF;
3937: IF p_pricing_method = 'SF' AND
3950: -- and Residual Value properly atleast
3951: IF px_pricing_parameter_rec.financed_amount IS NULL
3952: THEN
3953: -- Raise an Error
3954: RAISE OKL_API.G_EXCEPTION_ERROR;
3955: END IF;
3956: END IF;
3957: -- Calculate the Investment ..
3958: -- C - S - D - T
3985: p_start_date => l_next_cif_date,
3986: p_end_date => l_cash_inflows_tbl(i).cf_date,
3987: p_arrears => l_cash_inflows_tbl(i).is_arrears,
3988: x_return_status => l_return_status);
3989: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3990: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3991: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3992: RAISE OKL_API.G_EXCEPTION_ERROR;
3993: END IF;
3986: p_end_date => l_cash_inflows_tbl(i).cf_date,
3987: p_arrears => l_cash_inflows_tbl(i).is_arrears,
3988: x_return_status => l_return_status);
3989: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3990: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3991: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3992: RAISE OKL_API.G_EXCEPTION_ERROR;
3993: END IF;
3994: IF ( l_cash_inflows_tbl(i).cf_purpose = 'UNSCHEDULED_PRINCIPAL_PAYMENT')
3987: p_arrears => l_cash_inflows_tbl(i).is_arrears,
3988: x_return_status => l_return_status);
3989: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3990: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3991: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3992: RAISE OKL_API.G_EXCEPTION_ERROR;
3993: END IF;
3994: IF ( l_cash_inflows_tbl(i).cf_purpose = 'UNSCHEDULED_PRINCIPAL_PAYMENT')
3995: THEN
3988: x_return_status => l_return_status);
3989: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3990: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3991: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3992: RAISE OKL_API.G_EXCEPTION_ERROR;
3993: END IF;
3994: IF ( l_cash_inflows_tbl(i).cf_purpose = 'UNSCHEDULED_PRINCIPAL_PAYMENT')
3995: THEN
3996: l_cash_inflows_tbl(i).cf_purpose := 'P';
4010: p_day_convention => p_day_count_method,
4011: p_start_date => p_start_date,
4012: p_cash_inflow_date => l_cash_inflows_tbl(i).cf_date,
4013: x_return_status => l_return_status );
4014: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4015: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4016: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4017: RAISE OKL_API.G_EXCEPTION_ERROR;
4018: END IF;
4011: p_start_date => p_start_date,
4012: p_cash_inflow_date => l_cash_inflows_tbl(i).cf_date,
4013: x_return_status => l_return_status );
4014: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4015: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4016: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4017: RAISE OKL_API.G_EXCEPTION_ERROR;
4018: END IF;
4019: -- Sum the Interest based on the capitalized amount
4012: p_cash_inflow_date => l_cash_inflows_tbl(i).cf_date,
4013: x_return_status => l_return_status );
4014: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4015: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4016: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4017: RAISE OKL_API.G_EXCEPTION_ERROR;
4018: END IF;
4019: -- Sum the Interest based on the capitalized amount
4020: l_interest := l_interest +
4013: x_return_status => l_return_status );
4014: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4015: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4016: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4017: RAISE OKL_API.G_EXCEPTION_ERROR;
4018: END IF;
4019: -- Sum the Interest based on the capitalized amount
4020: l_interest := l_interest +
4021: (l_investment * l_cash_inflows_tbl(i).cf_rate * l_cash_inflows_tbl(i).cf_days / l_days_per_annum );
4061: p_start_date => l_next_cif_date,
4062: p_end_date => l_residuals_tbl(res_index).cf_date,
4063: p_arrears => 'Y',
4064: x_return_status => l_return_status);
4065: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4066: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4067: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4068: RAISE OKL_API.G_EXCEPTION_ERROR;
4069: END IF;
4062: p_end_date => l_residuals_tbl(res_index).cf_date,
4063: p_arrears => 'Y',
4064: x_return_status => l_return_status);
4065: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4066: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4067: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4068: RAISE OKL_API.G_EXCEPTION_ERROR;
4069: END IF;
4070: END IF; -- IF l_next_cif_date >= l_residuals_tbl( res_index ).cf_date
4063: p_arrears => 'Y',
4064: x_return_status => l_return_status);
4065: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4066: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4067: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4068: RAISE OKL_API.G_EXCEPTION_ERROR;
4069: END IF;
4070: END IF; -- IF l_next_cif_date >= l_residuals_tbl( res_index ).cf_date
4071: l_next_cif_date := l_residuals_tbl( res_index ).cf_date;
4064: x_return_status => l_return_status);
4065: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4066: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4067: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4068: RAISE OKL_API.G_EXCEPTION_ERROR;
4069: END IF;
4070: END IF; -- IF l_next_cif_date >= l_residuals_tbl( res_index ).cf_date
4071: l_next_cif_date := l_residuals_tbl( res_index ).cf_date;
4072: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4116: p_day_convention => p_day_count_method,
4117: p_start_date => p_start_date,
4118: p_cash_inflow_date => l_residuals_tbl(res_index).cf_date,
4119: x_return_status => l_return_status );
4120: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4121: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4122: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4123: RAISE OKL_API.G_EXCEPTION_ERROR;
4124: END IF;
4117: p_start_date => p_start_date,
4118: p_cash_inflow_date => l_residuals_tbl(res_index).cf_date,
4119: x_return_status => l_return_status );
4120: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4121: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4122: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4123: RAISE OKL_API.G_EXCEPTION_ERROR;
4124: END IF;
4125: l_rate := 1 + ( l_residuals_tbl(res_index).cf_days *
4118: p_cash_inflow_date => l_residuals_tbl(res_index).cf_date,
4119: x_return_status => l_return_status );
4120: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4121: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4122: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4123: RAISE OKL_API.G_EXCEPTION_ERROR;
4124: END IF;
4125: l_rate := 1 + ( l_residuals_tbl(res_index).cf_days *
4126: l_residuals_tbl(res_index).cf_rate /l_days_per_annum );
4119: x_return_status => l_return_status );
4120: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4121: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4122: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4123: RAISE OKL_API.G_EXCEPTION_ERROR;
4124: END IF;
4125: l_rate := 1 + ( l_residuals_tbl(res_index).cf_days *
4126: l_residuals_tbl(res_index).cf_rate /l_days_per_annum );
4127: l_opening_bal := ( l_closing_bal + l_residuals_tbl(res_index).cf_amount ) / l_rate;
4154: p_day_convention => p_day_count_method,
4155: p_start_date => p_start_date,
4156: p_cash_inflow_date => l_cash_inflows_tbl(cf_index).cf_date,
4157: x_return_status => l_return_status );
4158: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4159: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4160: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4161: RAISE OKL_API.G_EXCEPTION_ERROR;
4162: END IF;
4155: p_start_date => p_start_date,
4156: p_cash_inflow_date => l_cash_inflows_tbl(cf_index).cf_date,
4157: x_return_status => l_return_status );
4158: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4159: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4160: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4161: RAISE OKL_API.G_EXCEPTION_ERROR;
4162: END IF;
4163: l_rate := 1 + ( l_cash_inflows_tbl(cf_index).cf_days *
4156: p_cash_inflow_date => l_cash_inflows_tbl(cf_index).cf_date,
4157: x_return_status => l_return_status );
4158: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4159: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4160: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4161: RAISE OKL_API.G_EXCEPTION_ERROR;
4162: END IF;
4163: l_rate := 1 + ( l_cash_inflows_tbl(cf_index).cf_days *
4164: l_cash_inflows_tbl(cf_index).cf_rate /l_days_per_annum );
4157: x_return_status => l_return_status );
4158: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4159: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4160: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4161: RAISE OKL_API.G_EXCEPTION_ERROR;
4162: END IF;
4163: l_rate := 1 + ( l_cash_inflows_tbl(cf_index).cf_days *
4164: l_cash_inflows_tbl(cf_index).cf_rate /l_days_per_annum );
4165: -- Multiply this interest factor
4309: p_day_convention => p_day_count_method,
4310: p_start_date => p_start_date,
4311: p_cash_inflow_date => l_cash_inflows_tbl(cf_index).cf_date,
4312: x_return_status => l_return_status );
4313: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4314: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4315: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4316: RAISE OKL_API.G_EXCEPTION_ERROR;
4317: END IF;
4310: p_start_date => p_start_date,
4311: p_cash_inflow_date => l_cash_inflows_tbl(cf_index).cf_date,
4312: x_return_status => l_return_status );
4313: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4314: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4315: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4316: RAISE OKL_API.G_EXCEPTION_ERROR;
4317: END IF;
4318: IF ( l_cash_inflows_tbl(cf_index).cf_purpose = 'B' )
4311: p_cash_inflow_date => l_cash_inflows_tbl(cf_index).cf_date,
4312: x_return_status => l_return_status );
4313: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4314: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4315: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4316: RAISE OKL_API.G_EXCEPTION_ERROR;
4317: END IF;
4318: IF ( l_cash_inflows_tbl(cf_index).cf_purpose = 'B' )
4319: THEN
4312: x_return_status => l_return_status );
4313: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4314: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4315: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4316: RAISE OKL_API.G_EXCEPTION_ERROR;
4317: END IF;
4318: IF ( l_cash_inflows_tbl(cf_index).cf_purpose = 'B' )
4319: THEN
4320: l_interest := l_opening_bal * l_cash_inflows_tbl(cf_index).cf_days
4360: p_day_convention => p_day_count_method,
4361: p_start_date => p_start_date,
4362: p_cash_inflow_date => l_residuals_tbl(res_index).cf_date,
4363: x_return_status => l_return_status );
4364: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4365: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4366: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4367: RAISE OKL_API.G_EXCEPTION_ERROR;
4368: END IF;
4361: p_start_date => p_start_date,
4362: p_cash_inflow_date => l_residuals_tbl(res_index).cf_date,
4363: x_return_status => l_return_status );
4364: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4365: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4366: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4367: RAISE OKL_API.G_EXCEPTION_ERROR;
4368: END IF;
4369: l_interest := l_opening_bal * l_residuals_tbl(res_index).cf_days
4362: p_cash_inflow_date => l_residuals_tbl(res_index).cf_date,
4363: x_return_status => l_return_status );
4364: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4365: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4366: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4367: RAISE OKL_API.G_EXCEPTION_ERROR;
4368: END IF;
4369: l_interest := l_opening_bal * l_residuals_tbl(res_index).cf_days
4370: * l_rate /l_days_per_annum;
4363: x_return_status => l_return_status );
4364: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4365: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4366: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4367: RAISE OKL_API.G_EXCEPTION_ERROR;
4368: END IF;
4369: l_interest := l_opening_bal * l_residuals_tbl(res_index).cf_days
4370: * l_rate /l_days_per_annum;
4371: l_principal_payment := l_payment - l_interest;
4393: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4394: 'IMPLICIT INTEREST RATE =' || l_iir );
4395: px_iir := l_iir;
4396: END IF;
4397: x_return_status := OKL_API.G_RET_STS_SUCCESS;
4398:
4399: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
4400: x_msg_data => x_msg_data);
4401: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
4395: px_iir := l_iir;
4396: END IF;
4397: x_return_status := OKL_API.G_RET_STS_SUCCESS;
4398:
4399: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
4400: x_msg_data => x_msg_data);
4401: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
4402: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
4403: EXIT;
4538: l_iir := l_iir + l_increment;
4539: END IF;
4540: IF n_iterations > 100
4541: THEN
4542: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4543: p_msg_name => 'OKL_IIR_CALC_IIR_LIMIT',
4544: p_token1 => 'IIR_LIMIT',
4545: p_token1_value => 100);
4546: RAISE OKL_API.G_EXCEPTION_ERROR;
4542: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4543: p_msg_name => 'OKL_IIR_CALC_IIR_LIMIT',
4544: p_token1 => 'IIR_LIMIT',
4545: p_token1_value => 100);
4546: RAISE OKL_API.G_EXCEPTION_ERROR;
4547: END IF;
4548: l_prev_incr_sign := SIGN(l_increment);
4549: l_prev_diff_sign := SIGN(l_diff);
4550: l_prev_diff := l_diff;
4554: -- End of the Pricing Logic for Solve for Payments
4555: END IF; -- IF p_pricing_method ...
4556: -- Set ther return values and return them !!
4557: x_return_status := l_return_status;
4558: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
4559: x_msg_data => x_msg_data);
4560: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
4561: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
4562: EXCEPTION
4559: x_msg_data => x_msg_data);
4560: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
4561: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
4562: EXCEPTION
4563: WHEN OKL_API.G_EXCEPTION_ERROR THEN
4564: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4565: p_api_name => l_api_name,
4566: p_pkg_name => G_PKG_NAME,
4567: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
4560: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
4561: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
4562: EXCEPTION
4563: WHEN OKL_API.G_EXCEPTION_ERROR THEN
4564: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4565: p_api_name => l_api_name,
4566: p_pkg_name => G_PKG_NAME,
4567: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
4568: x_msg_count => x_msg_count,
4563: WHEN OKL_API.G_EXCEPTION_ERROR THEN
4564: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4565: p_api_name => l_api_name,
4566: p_pkg_name => G_PKG_NAME,
4567: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
4568: x_msg_count => x_msg_count,
4569: x_msg_data => x_msg_data,
4570: p_api_type => g_api_type);
4571: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4567: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
4568: x_msg_count => x_msg_count,
4569: x_msg_data => x_msg_data,
4570: p_api_type => g_api_type);
4571: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4572: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4573: p_api_name => l_api_name,
4574: p_pkg_name => G_PKG_NAME,
4575: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
4568: x_msg_count => x_msg_count,
4569: x_msg_data => x_msg_data,
4570: p_api_type => g_api_type);
4571: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4572: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4573: p_api_name => l_api_name,
4574: p_pkg_name => G_PKG_NAME,
4575: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
4576: x_msg_count => x_msg_count,
4571: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4572: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4573: p_api_name => l_api_name,
4574: p_pkg_name => G_PKG_NAME,
4575: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
4576: x_msg_count => x_msg_count,
4577: x_msg_data => x_msg_data,
4578: p_api_type => g_api_type);
4579: WHEN OTHERS THEN
4576: x_msg_count => x_msg_count,
4577: x_msg_data => x_msg_data,
4578: p_api_type => g_api_type);
4579: WHEN OTHERS THEN
4580: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4581: p_api_name => l_api_name,
4582: p_pkg_name => G_PKG_NAME,
4583: p_exc_name => 'OTHERS',
4584: x_msg_count => x_msg_count,
4602: p_object_type = 'QQ'
4603: THEN
4604: l_valid := TRUE;
4605: END IF;
4606: x_return_status := OKL_API.G_RET_STS_SUCCESS;
4607: RETURN l_valid;
4608: EXCEPTION
4609: WHEN OKL_API.G_EXCEPTION_ERROR
4610: THEN
4605: END IF;
4606: x_return_status := OKL_API.G_RET_STS_SUCCESS;
4607: RETURN l_valid;
4608: EXCEPTION
4609: WHEN OKL_API.G_EXCEPTION_ERROR
4610: THEN
4611: x_return_status := G_RET_STS_ERROR;
4612: RETURN false;
4613: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR
4609: WHEN OKL_API.G_EXCEPTION_ERROR
4610: THEN
4611: x_return_status := G_RET_STS_ERROR;
4612: RETURN false;
4613: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR
4614: THEN
4615: x_return_status := G_RET_STS_UNEXP_ERROR;
4616: RETURN false;
4617: WHEN OTHERS
4615: x_return_status := G_RET_STS_UNEXP_ERROR;
4616: RETURN false;
4617: WHEN OTHERS
4618: THEN
4619: OKL_API.SET_MESSAGE (
4620: p_app_name => G_APP_NAME,
4621: p_msg_name => G_DB_ERROR,
4622: p_token1 => G_PROG_NAME_TOKEN,
4623: p_token1_value => 'validate_pricing_method',
4720: lrs_factor lrs_factor_rec_type;
4721: lrs_levels lrs_levels_tbl_type;
4722: lvl_index NUMBER;
4723: BEGIN
4724: l_return_status := OKL_API.G_RET_STS_SUCCESS;
4725: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
4726: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
4727: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
4728: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
4729: -- check for logging on STATEMENT level
4730: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
4731: -- Call START_ACTIVITY to create savepoint, check compatibility
4732: -- and initialize message list
4733: l_return_status := OKL_API.START_ACTIVITY(
4734: p_api_name => l_api_name,
4735: p_pkg_name => G_PKG_NAME,
4736: p_init_msg_list => p_init_msg_list,
4737: l_api_version => l_api_version,
4738: p_api_version => p_api_version,
4739: p_api_type => g_api_type,
4740: x_return_status => x_return_status);
4741: --Check if activity started successfully
4742: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4743: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4744: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4745: RAISE OKL_API.G_EXCEPTION_ERROR;
4746: END IF;
4739: p_api_type => g_api_type,
4740: x_return_status => x_return_status);
4741: --Check if activity started successfully
4742: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4743: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4744: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4745: RAISE OKL_API.G_EXCEPTION_ERROR;
4746: END IF;
4747: -- Actual logic Begins here
4740: x_return_status => x_return_status);
4741: --Check if activity started successfully
4742: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4743: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4744: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4745: RAISE OKL_API.G_EXCEPTION_ERROR;
4746: END IF;
4747: -- Actual logic Begins here
4748: IF p_start_date IS NULL OR
4741: --Check if activity started successfully
4742: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4743: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4744: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4745: RAISE OKL_API.G_EXCEPTION_ERROR;
4746: END IF;
4747: -- Actual logic Begins here
4748: IF p_start_date IS NULL OR
4749: p_lrt_id IS NULL OR
4752: THEN
4753: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4754: 'Missing required input value ' );
4755:
4756: RAISE OKL_API.G_EXCEPTION_ERROR;
4757: END IF;
4758: -- Start with fetching the Lease Rate Set Header n Version information
4759: l_return_status := OKL_API.G_RET_STS_ERROR;
4760: FOR t_rec IN lrs_version_details_csr(
4755:
4756: RAISE OKL_API.G_EXCEPTION_ERROR;
4757: END IF;
4758: -- Start with fetching the Lease Rate Set Header n Version information
4759: l_return_status := OKL_API.G_RET_STS_ERROR;
4760: FOR t_rec IN lrs_version_details_csr(
4761: p_lrs_version_id => p_lrt_id,
4762: p_date => p_start_date)
4763: LOOP
4780: lrs_details_rec.residual_tolerance := t_rec.residual_tolerance ;
4781: lrs_details_rec.deferred_pmts := t_rec.deferred_pmts ;
4782: lrs_details_rec.advance_pmts := t_rec.advance_pmts ;
4783: -- Using l_return_status as a flag
4784: l_return_status := OKL_API.G_RET_STS_SUCCESS;
4785: END LOOP;
4786: IF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4787: RAISE OKL_API.G_EXCEPTION_ERROR;
4788: END IF;
4782: lrs_details_rec.advance_pmts := t_rec.advance_pmts ;
4783: -- Using l_return_status as a flag
4784: l_return_status := OKL_API.G_RET_STS_SUCCESS;
4785: END LOOP;
4786: IF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4787: RAISE OKL_API.G_EXCEPTION_ERROR;
4788: END IF;
4789: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4790: ' Successfully fetched the Lease Rate Set Header n Version Details !' );
4783: -- Using l_return_status as a flag
4784: l_return_status := OKL_API.G_RET_STS_SUCCESS;
4785: END LOOP;
4786: IF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4787: RAISE OKL_API.G_EXCEPTION_ERROR;
4788: END IF;
4789: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4790: ' Successfully fetched the Lease Rate Set Header n Version Details !' );
4791: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4792: ' p_term_in_months | p_eof_percentage | Residual Tolerance ' ||
4793: p_term_in_months || ' | ' || round(p_eot_percentage, 4)
4794: || ' | ' || round(lrs_details_rec.residual_tolerance, 4));
4795: -- Fetch the Factors Information
4796: l_return_status := OKL_API.G_RET_STS_ERROR;
4797: FOR t_rec IN lrs_factors_csr(
4798: p_lrs_version_id => lrs_details_rec.version_id,
4799: p_term => p_term_in_months,
4800: p_eot_percentage => p_eot_percentage,
4803: lrs_factor.factor_id := t_rec.factor_id;
4804: lrs_factor.term_in_months := t_rec.term_in_months;
4805: lrs_factor.residual_value_percent := t_rec.residual_value_percent;
4806: -- Using l_return_status as a flag
4807: l_return_status := OKL_API.G_RET_STS_SUCCESS;
4808: END LOOP; -- lrs_factors
4809: IF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4810: RAISE OKL_API.G_EXCEPTION_ERROR;
4811: END IF;
4805: lrs_factor.residual_value_percent := t_rec.residual_value_percent;
4806: -- Using l_return_status as a flag
4807: l_return_status := OKL_API.G_RET_STS_SUCCESS;
4808: END LOOP; -- lrs_factors
4809: IF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4810: RAISE OKL_API.G_EXCEPTION_ERROR;
4811: END IF;
4812: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4813: 'Successfully fetched the Lesae Rate Set Factors !' );
4806: -- Using l_return_status as a flag
4807: l_return_status := OKL_API.G_RET_STS_SUCCESS;
4808: END LOOP; -- lrs_factors
4809: IF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4810: RAISE OKL_API.G_EXCEPTION_ERROR;
4811: END IF;
4812: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4813: 'Successfully fetched the Lesae Rate Set Factors !' );
4814: -- Fetch the levels Information
4811: END IF;
4812: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4813: 'Successfully fetched the Lesae Rate Set Factors !' );
4814: -- Fetch the levels Information
4815: l_return_status := OKL_API.G_RET_STS_ERROR;
4816: lvl_index := 1;
4817: FOR t_rec IN lrs_levels_csr( p_lrs_factor_id => lrs_factor.factor_id )
4818: LOOP
4819: lrs_levels(lvl_index).sequence_number := t_rec.sequence_number;
4819: lrs_levels(lvl_index).sequence_number := t_rec.sequence_number;
4820: lrs_levels(lvl_index).periods := t_rec.periods;
4821: lrs_levels(lvl_index).lease_rate_factor := t_rec.lease_rate_factor;
4822: -- Using l_return_status as a flag
4823: l_return_status := OKL_API.G_RET_STS_SUCCESS;
4824: -- Increment the lvl_index
4825: lvl_index := lvl_index + 1;
4826: END LOOP; -- lrs_levels
4827: IF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4823: l_return_status := OKL_API.G_RET_STS_SUCCESS;
4824: -- Increment the lvl_index
4825: lvl_index := lvl_index + 1;
4826: END LOOP; -- lrs_levels
4827: IF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4828: RAISE OKL_API.G_EXCEPTION_ERROR;
4829: END IF;
4830: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4831: 'Successfully fetched the Lease Rate Factor Levels !' );
4824: -- Increment the lvl_index
4825: lvl_index := lvl_index + 1;
4826: END LOOP; -- lrs_levels
4827: IF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4828: RAISE OKL_API.G_EXCEPTION_ERROR;
4829: END IF;
4830: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4831: 'Successfully fetched the Lease Rate Factor Levels !' );
4832: -- Setting up the return variables ...
4833: x_lrs_details := lrs_details_rec;
4834: x_lrs_factor := lrs_factor;
4835: x_lrs_levels := lrs_levels;
4836: x_return_status := l_return_status;
4837: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
4838: x_msg_data => x_msg_data);
4839: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
4840: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
4841: EXCEPTION
4838: x_msg_data => x_msg_data);
4839: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
4840: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
4841: EXCEPTION
4842: WHEN OKL_API.G_EXCEPTION_ERROR THEN
4843: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4844: p_api_name => l_api_name,
4845: p_pkg_name => G_PKG_NAME,
4846: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
4839: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
4840: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
4841: EXCEPTION
4842: WHEN OKL_API.G_EXCEPTION_ERROR THEN
4843: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4844: p_api_name => l_api_name,
4845: p_pkg_name => G_PKG_NAME,
4846: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
4847: x_msg_count => x_msg_count,
4842: WHEN OKL_API.G_EXCEPTION_ERROR THEN
4843: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4844: p_api_name => l_api_name,
4845: p_pkg_name => G_PKG_NAME,
4846: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
4847: x_msg_count => x_msg_count,
4848: x_msg_data => x_msg_data,
4849: p_api_type => g_api_type);
4850: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4846: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
4847: x_msg_count => x_msg_count,
4848: x_msg_data => x_msg_data,
4849: p_api_type => g_api_type);
4850: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4851: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4852: p_api_name => l_api_name,
4853: p_pkg_name => G_PKG_NAME,
4854: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
4847: x_msg_count => x_msg_count,
4848: x_msg_data => x_msg_data,
4849: p_api_type => g_api_type);
4850: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4851: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4852: p_api_name => l_api_name,
4853: p_pkg_name => G_PKG_NAME,
4854: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
4855: x_msg_count => x_msg_count,
4850: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4851: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4852: p_api_name => l_api_name,
4853: p_pkg_name => G_PKG_NAME,
4854: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
4855: x_msg_count => x_msg_count,
4856: x_msg_data => x_msg_data,
4857: p_api_type => g_api_type);
4858: WHEN OTHERS THEN
4855: x_msg_count => x_msg_count,
4856: x_msg_data => x_msg_data,
4857: p_api_type => g_api_type);
4858: WHEN OTHERS THEN
4859: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4860: p_api_name => l_api_name,
4861: p_pkg_name => G_PKG_NAME,
4862: p_exc_name => 'OTHERS',
4863: x_msg_count => x_msg_count,
4928: is_debug_procedure_on BOOLEAN;
4929: is_debug_statement_on BOOLEAN;
4930: srt_details srt_details_rec_type;
4931: BEGIN
4932: l_return_status := OKL_API.G_RET_STS_SUCCESS;
4933: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
4934: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
4935:
4936: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
4938: -- check for logging on STATEMENT level
4939: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
4940: -- Call START_ACTIVITY to create savepoint, check compatibility
4941: -- and initialize message list
4942: l_return_status := OKL_API.START_ACTIVITY(
4943: p_api_name => l_api_name,
4944: p_pkg_name => G_PKG_NAME,
4945: p_init_msg_list => p_init_msg_list,
4946: l_api_version => l_api_version,
4947: p_api_version => p_api_version,
4948: p_api_type => g_api_type,
4949: x_return_status => x_return_status);
4950: --Check if activity started successfully
4951: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4952: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4953: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4954: RAISE OKL_API.G_EXCEPTION_ERROR;
4955: END IF;
4948: p_api_type => g_api_type,
4949: x_return_status => x_return_status);
4950: --Check if activity started successfully
4951: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4952: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4953: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4954: RAISE OKL_API.G_EXCEPTION_ERROR;
4955: END IF;
4956: IF p_start_date IS NULL
4949: x_return_status => x_return_status);
4950: --Check if activity started successfully
4951: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4952: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4953: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4954: RAISE OKL_API.G_EXCEPTION_ERROR;
4955: END IF;
4956: IF p_start_date IS NULL
4957: THEN
4950: --Check if activity started successfully
4951: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4952: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4953: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4954: RAISE OKL_API.G_EXCEPTION_ERROR;
4955: END IF;
4956: IF p_start_date IS NULL
4957: THEN
4958: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4956: IF p_start_date IS NULL
4957: THEN
4958: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4959: 'Start Date is null !! ' );
4960: OKL_API.set_message(
4961: G_APP_NAME,
4962: OKL_API.G_INVALID_VALUE,
4963: OKL_API.G_COL_NAME_TOKEN,
4964: 'EXPECTED START DATE');
4958: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4959: 'Start Date is null !! ' );
4960: OKL_API.set_message(
4961: G_APP_NAME,
4962: OKL_API.G_INVALID_VALUE,
4963: OKL_API.G_COL_NAME_TOKEN,
4964: 'EXPECTED START DATE');
4965: RAISE OKL_API.G_EXCEPTION_ERROR;
4966: END IF;
4959: 'Start Date is null !! ' );
4960: OKL_API.set_message(
4961: G_APP_NAME,
4962: OKL_API.G_INVALID_VALUE,
4963: OKL_API.G_COL_NAME_TOKEN,
4964: 'EXPECTED START DATE');
4965: RAISE OKL_API.G_EXCEPTION_ERROR;
4966: END IF;
4967: IF p_srt_id IS NULL
4961: G_APP_NAME,
4962: OKL_API.G_INVALID_VALUE,
4963: OKL_API.G_COL_NAME_TOKEN,
4964: 'EXPECTED START DATE');
4965: RAISE OKL_API.G_EXCEPTION_ERROR;
4966: END IF;
4967: IF p_srt_id IS NULL
4968: THEN
4969: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4967: IF p_srt_id IS NULL
4968: THEN
4969: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4970: 'Standard Rate Template ID is required !! ' );
4971: OKL_API.set_message(
4972: G_APP_NAME,
4973: OKL_API.G_REQUIRED_VALUE,
4974: OKL_API.G_COL_NAME_TOKEN,
4975: 'STANDARD RATE TEMPLATE ID');
4969: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4970: 'Standard Rate Template ID is required !! ' );
4971: OKL_API.set_message(
4972: G_APP_NAME,
4973: OKL_API.G_REQUIRED_VALUE,
4974: OKL_API.G_COL_NAME_TOKEN,
4975: 'STANDARD RATE TEMPLATE ID');
4976: RAISE OKL_API.G_EXCEPTION_ERROR;
4977: END IF;
4970: 'Standard Rate Template ID is required !! ' );
4971: OKL_API.set_message(
4972: G_APP_NAME,
4973: OKL_API.G_REQUIRED_VALUE,
4974: OKL_API.G_COL_NAME_TOKEN,
4975: 'STANDARD RATE TEMPLATE ID');
4976: RAISE OKL_API.G_EXCEPTION_ERROR;
4977: END IF;
4978: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4972: G_APP_NAME,
4973: OKL_API.G_REQUIRED_VALUE,
4974: OKL_API.G_COL_NAME_TOKEN,
4975: 'STANDARD RATE TEMPLATE ID');
4976: RAISE OKL_API.G_EXCEPTION_ERROR;
4977: END IF;
4978: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4979: ': p_srt_id= ' || p_srt_id );
4980: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4979: ': p_srt_id= ' || p_srt_id );
4980: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
4981: ': p_start_date= '|| p_start_date );
4982:
4983: l_return_status := OKL_API.G_RET_STS_ERROR;
4984: FOR t_rec IN srt_details_csr(
4985: p_srt_version_id => p_srt_id,
4986: p_date => p_start_date )
4987: LOOP
5011: srt_details.rate_type_code || ' | ' || srt_details.min_adj_rate
5012: || ' | ' || srt_details.max_adj_rate || ' | ' || srt_details.srt_rate || ' | ' || srt_details.spread);
5013:
5014: -- Using l_return_status as flag
5015: l_return_status := OKL_API.G_RET_STS_SUCCESS;
5016: END LOOP; -- srt_details_csr
5017: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5018: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5019: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5013:
5014: -- Using l_return_status as flag
5015: l_return_status := OKL_API.G_RET_STS_SUCCESS;
5016: END LOOP; -- srt_details_csr
5017: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5018: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5019: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5020: RAISE OKL_API.G_EXCEPTION_ERROR;
5021: END IF;
5014: -- Using l_return_status as flag
5015: l_return_status := OKL_API.G_RET_STS_SUCCESS;
5016: END LOOP; -- srt_details_csr
5017: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5018: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5019: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5020: RAISE OKL_API.G_EXCEPTION_ERROR;
5021: END IF;
5022:
5015: l_return_status := OKL_API.G_RET_STS_SUCCESS;
5016: END LOOP; -- srt_details_csr
5017: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5018: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5019: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5020: RAISE OKL_API.G_EXCEPTION_ERROR;
5021: END IF;
5022:
5023: IF srt_details.rate_type_code = G_QQ_SRT_RATE_TYPE
5016: END LOOP; -- srt_details_csr
5017: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5018: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5019: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5020: RAISE OKL_API.G_EXCEPTION_ERROR;
5021: END IF;
5022:
5023: IF srt_details.rate_type_code = G_QQ_SRT_RATE_TYPE
5024: THEN
5022:
5023: IF srt_details.rate_type_code = G_QQ_SRT_RATE_TYPE
5024: THEN
5025: -- Initialize l_return_status to 'E'
5026: l_return_status := OKL_API.G_RET_STS_ERROR;
5027: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5028: ': p_srt_header_id = ' || srt_details.srt_header_id );
5029: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5030: ': p_start_date=' || p_start_date );
5033: p_date => p_start_date)
5034: LOOP
5035: srt_details.srt_rate := t_rec.srt_rate;
5036: -- Using l_return_status as flag
5037: l_return_status := OKL_API.G_RET_STS_SUCCESS;
5038: END LOOP; -- srt_index_rate_csr
5039: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5040: ': After srt_index_rate_csr ' || l_return_status );
5041: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5037: l_return_status := OKL_API.G_RET_STS_SUCCESS;
5038: END LOOP; -- srt_index_rate_csr
5039: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5040: ': After srt_index_rate_csr ' || l_return_status );
5041: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5042: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5043: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5044: RAISE OKL_API.G_EXCEPTION_ERROR;
5045: END IF;
5038: END LOOP; -- srt_index_rate_csr
5039: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5040: ': After srt_index_rate_csr ' || l_return_status );
5041: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5042: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5043: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5044: RAISE OKL_API.G_EXCEPTION_ERROR;
5045: END IF;
5046: END IF; -- IF srt_details.rate_type_code = 'INDEX'
5039: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5040: ': After srt_index_rate_csr ' || l_return_status );
5041: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5042: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5043: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5044: RAISE OKL_API.G_EXCEPTION_ERROR;
5045: END IF;
5046: END IF; -- IF srt_details.rate_type_code = 'INDEX'
5047: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5040: ': After srt_index_rate_csr ' || l_return_status );
5041: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5042: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5043: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5044: RAISE OKL_API.G_EXCEPTION_ERROR;
5045: END IF;
5046: END IF; -- IF srt_details.rate_type_code = 'INDEX'
5047: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5048: 'Rate from the SRT ' || srt_details.srt_rate );
5047: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5048: 'Rate from the SRT ' || srt_details.srt_rate );
5049: -- Setting up the return variables ..
5050: x_srt_details := srt_details;
5051: x_return_status := OKL_API.G_RET_STS_SUCCESS;
5052: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
5053: x_msg_data => x_msg_data);
5054: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
5055: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
5048: 'Rate from the SRT ' || srt_details.srt_rate );
5049: -- Setting up the return variables ..
5050: x_srt_details := srt_details;
5051: x_return_status := OKL_API.G_RET_STS_SUCCESS;
5052: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
5053: x_msg_data => x_msg_data);
5054: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
5055: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
5056: EXCEPTION
5053: x_msg_data => x_msg_data);
5054: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
5055: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
5056: EXCEPTION
5057: WHEN OKL_API.G_EXCEPTION_ERROR THEN
5058: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5059: p_api_name => l_api_name,
5060: p_pkg_name => G_PKG_NAME,
5061: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
5054: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
5055: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
5056: EXCEPTION
5057: WHEN OKL_API.G_EXCEPTION_ERROR THEN
5058: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5059: p_api_name => l_api_name,
5060: p_pkg_name => G_PKG_NAME,
5061: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
5062: x_msg_count => x_msg_count,
5057: WHEN OKL_API.G_EXCEPTION_ERROR THEN
5058: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5059: p_api_name => l_api_name,
5060: p_pkg_name => G_PKG_NAME,
5061: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
5062: x_msg_count => x_msg_count,
5063: x_msg_data => x_msg_data,
5064: p_api_type => g_api_type);
5065: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5061: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
5062: x_msg_count => x_msg_count,
5063: x_msg_data => x_msg_data,
5064: p_api_type => g_api_type);
5065: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5066: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5067: p_api_name => l_api_name,
5068: p_pkg_name => G_PKG_NAME,
5069: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
5062: x_msg_count => x_msg_count,
5063: x_msg_data => x_msg_data,
5064: p_api_type => g_api_type);
5065: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5066: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5067: p_api_name => l_api_name,
5068: p_pkg_name => G_PKG_NAME,
5069: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
5070: x_msg_count => x_msg_count,
5065: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5066: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5067: p_api_name => l_api_name,
5068: p_pkg_name => G_PKG_NAME,
5069: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
5070: x_msg_count => x_msg_count,
5071: x_msg_data => x_msg_data,
5072: p_api_type => g_api_type);
5073: WHEN OTHERS THEN
5070: x_msg_count => x_msg_count,
5071: x_msg_data => x_msg_data,
5072: p_api_type => g_api_type);
5073: WHEN OTHERS THEN
5074: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5075: p_api_name => l_api_name,
5076: p_pkg_name => G_PKG_NAME,
5077: p_exc_name => 'OTHERS',
5078: x_msg_count => x_msg_count,
5145: l_positive_diff_bk_yeild NUMBER := 0;
5146: l_negative_diff_bk_yeild NUMBER := 0;
5147: l_days_per_annum NUMBER := 0;
5148: BEGIN
5149: l_return_status := OKL_API.G_RET_STS_SUCCESS;
5150: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
5151: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
5152: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
5153: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
5154: -- check for logging on STATEMENT level
5155: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
5156: -- Call START_ACTIVITY to create savepoint, check compatibility
5157: -- and initialize message list
5158: l_return_status := OKL_API.START_ACTIVITY(
5159: p_api_name => l_api_name,
5160: p_pkg_name => G_PKG_NAME,
5161: p_init_msg_list => p_init_msg_list,
5162: l_api_version => l_api_version,
5163: p_api_version => p_api_version,
5164: p_api_type => g_api_type,
5165: x_return_status => x_return_status);
5166: --Check if activity started successfully
5167: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5168: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5169: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5170: RAISE OKL_API.G_EXCEPTION_ERROR;
5171: END IF;
5164: p_api_type => g_api_type,
5165: x_return_status => x_return_status);
5166: --Check if activity started successfully
5167: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5168: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5169: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5170: RAISE OKL_API.G_EXCEPTION_ERROR;
5171: END IF;
5172: -- Actual logic Begins here
5165: x_return_status => x_return_status);
5166: --Check if activity started successfully
5167: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5168: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5169: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5170: RAISE OKL_API.G_EXCEPTION_ERROR;
5171: END IF;
5172: -- Actual logic Begins here
5173: -- Validate the input parameters
5166: --Check if activity started successfully
5167: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5168: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5169: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5170: RAISE OKL_API.G_EXCEPTION_ERROR;
5171: END IF;
5172: -- Actual logic Begins here
5173: -- Validate the input parameters
5174: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5179: x_days_in_year => l_days_in_year,
5180: x_return_status => l_return_status);
5181: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5182: 'After get_day_count_method ' || l_return_status);
5183: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5184: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5185: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5186: RAISE OKL_API.G_EXCEPTION_ERROR;
5187: END IF;
5180: x_return_status => l_return_status);
5181: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5182: 'After get_day_count_method ' || l_return_status);
5183: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5184: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5185: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5186: RAISE OKL_API.G_EXCEPTION_ERROR;
5187: END IF;
5188:
5181: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5182: 'After get_day_count_method ' || l_return_status);
5183: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5184: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5185: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5186: RAISE OKL_API.G_EXCEPTION_ERROR;
5187: END IF;
5188:
5189: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5182: 'After get_day_count_method ' || l_return_status);
5183: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5184: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5185: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5186: RAISE OKL_API.G_EXCEPTION_ERROR;
5187: END IF;
5188:
5189: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5190: 'l_days_in_month= ' || l_days_in_month || ' | l_days_in_year = ' || l_days_in_year);
5193: px_pricing_parameter_rec.cash_inflows IS NULL OR
5194: px_pricing_parameter_rec.cash_inflows.COUNT <= 0
5195: THEN
5196: -- Show the error message and
5197: RAISE OKL_API.G_EXCEPTION_ERROR;
5198: END IF;
5199: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5200: 'Input Parameters p_start_date, count(cash_inflows) = '
5201: || p_start_date || ',' || px_pricing_parameter_rec.cash_inflows.COUNT );
5242: nvl( px_pricing_parameter_rec.trade_in, 0 );
5243: IF l_investment <= 0
5244: THEN
5245: -- Initial Investment itself cant be negative !!
5246: RAISE OKL_API.G_EXCEPTION_ERROR;
5247: END IF; -- IF l_investment ..
5248:
5249: -- Initialize the things
5250: n_iterations := 0;
5257: p_start_date => l_start_date,
5258: p_months_after => p_term,
5259: x_date => l_k_end_date,
5260: x_return_status => l_return_status);
5261: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5262: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5263: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5264: RAISE OKL_API.G_EXCEPTION_ERROR;
5265: END IF;
5258: p_months_after => p_term,
5259: x_date => l_k_end_date,
5260: x_return_status => l_return_status);
5261: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5262: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5263: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5264: RAISE OKL_API.G_EXCEPTION_ERROR;
5265: END IF;
5266: l_k_end_date := l_k_end_date - 1;
5259: x_date => l_k_end_date,
5260: x_return_status => l_return_status);
5261: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5262: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5263: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5264: RAISE OKL_API.G_EXCEPTION_ERROR;
5265: END IF;
5266: l_k_end_date := l_k_end_date - 1;
5267: -- Actual Logic for calculation of the Booking Yield.
5260: x_return_status => l_return_status);
5261: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5262: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5263: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5264: RAISE OKL_API.G_EXCEPTION_ERROR;
5265: END IF;
5266: l_k_end_date := l_k_end_date - 1;
5267: -- Actual Logic for calculation of the Booking Yield.
5268: LOOP
5304: p_start_date => l_start_date,
5305: p_end_date => l_end_date,
5306: p_arrears => 'Y', -- Calculate until the end of the month !
5307: x_return_status => l_return_status);
5308: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5309: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5310: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5311: RAISE OKL_API.G_EXCEPTION_ERROR;
5312: END IF;
5305: p_end_date => l_end_date,
5306: p_arrears => 'Y', -- Calculate until the end of the month !
5307: x_return_status => l_return_status);
5308: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5309: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5310: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5311: RAISE OKL_API.G_EXCEPTION_ERROR;
5312: END IF;
5313: l_days_per_annum := get_days_per_annum(
5306: p_arrears => 'Y', -- Calculate until the end of the month !
5307: x_return_status => l_return_status);
5308: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5309: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5310: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5311: RAISE OKL_API.G_EXCEPTION_ERROR;
5312: END IF;
5313: l_days_per_annum := get_days_per_annum(
5314: p_day_convention => p_day_count_method,
5307: x_return_status => l_return_status);
5308: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5309: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5310: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5311: RAISE OKL_API.G_EXCEPTION_ERROR;
5312: END IF;
5313: l_days_per_annum := get_days_per_annum(
5314: p_day_convention => p_day_count_method,
5315: p_start_date => p_start_date,
5314: p_day_convention => p_day_count_method,
5315: p_start_date => p_start_date,
5316: p_cash_inflow_date => l_start_date,
5317: x_return_status => l_return_status );
5318: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5319: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5320: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5321: RAISE OKL_API.G_EXCEPTION_ERROR;
5322: END IF;
5315: p_start_date => p_start_date,
5316: p_cash_inflow_date => l_start_date,
5317: x_return_status => l_return_status );
5318: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5319: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5320: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5321: RAISE OKL_API.G_EXCEPTION_ERROR;
5322: END IF;
5323: l_tmp_interest := l_termination_val * l_days * l_bk_yield / l_days_per_annum;
5316: p_cash_inflow_date => l_start_date,
5317: x_return_status => l_return_status );
5318: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5319: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5320: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5321: RAISE OKL_API.G_EXCEPTION_ERROR;
5322: END IF;
5323: l_tmp_interest := l_termination_val * l_days * l_bk_yield / l_days_per_annum;
5324: l_termination_val := l_termination_val + l_tmp_interest;
5317: x_return_status => l_return_status );
5318: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5319: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5320: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5321: RAISE OKL_API.G_EXCEPTION_ERROR;
5322: END IF;
5323: l_tmp_interest := l_termination_val * l_days * l_bk_yield / l_days_per_annum;
5324: l_termination_val := l_termination_val + l_tmp_interest;
5325: l_termination_val_tbl(t).cf_amount := l_termination_val;
5367: p_start_date => l_start_date,
5368: p_end_date => l_end_date,
5369: p_arrears => l_is_arrears,
5370: x_return_status => l_return_status);
5371: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5372: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5373: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5374: RAISE OKL_API.G_EXCEPTION_ERROR;
5375: END IF;
5368: p_end_date => l_end_date,
5369: p_arrears => l_is_arrears,
5370: x_return_status => l_return_status);
5371: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5372: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5373: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5374: RAISE OKL_API.G_EXCEPTION_ERROR;
5375: END IF;
5376: -- Based on the day convention, get the days/annum
5369: p_arrears => l_is_arrears,
5370: x_return_status => l_return_status);
5371: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5372: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5373: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5374: RAISE OKL_API.G_EXCEPTION_ERROR;
5375: END IF;
5376: -- Based on the day convention, get the days/annum
5377: l_days_per_annum := get_days_per_annum(
5370: x_return_status => l_return_status);
5371: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5372: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5373: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5374: RAISE OKL_API.G_EXCEPTION_ERROR;
5375: END IF;
5376: -- Based on the day convention, get the days/annum
5377: l_days_per_annum := get_days_per_annum(
5378: p_day_convention => p_day_count_method,
5378: p_day_convention => p_day_count_method,
5379: p_start_date => p_start_date,
5380: p_cash_inflow_date => l_start_date,
5381: x_return_status => l_return_status );
5382: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5383: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5384: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5385: RAISE OKL_API.G_EXCEPTION_ERROR;
5386: END IF;
5379: p_start_date => p_start_date,
5380: p_cash_inflow_date => l_start_date,
5381: x_return_status => l_return_status );
5382: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5383: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5384: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5385: RAISE OKL_API.G_EXCEPTION_ERROR;
5386: END IF;
5387: -- Calculation of Interest
5380: p_cash_inflow_date => l_start_date,
5381: x_return_status => l_return_status );
5382: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5383: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5384: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5385: RAISE OKL_API.G_EXCEPTION_ERROR;
5386: END IF;
5387: -- Calculation of Interest
5388: l_tmp_interest := l_termination_val * l_days * l_bk_yield / l_days_per_annum;
5381: x_return_status => l_return_status );
5382: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5383: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5384: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5385: RAISE OKL_API.G_EXCEPTION_ERROR;
5386: END IF;
5387: -- Calculation of Interest
5388: l_tmp_interest := l_termination_val * l_days * l_bk_yield / l_days_per_annum;
5389: -- Termination value streams assignments
5432: p_start_date => l_start_date,
5433: p_end_date => l_end_date,
5434: p_arrears => 'Y', -- Calculate until the end of the month !
5435: x_return_status => l_return_status);
5436: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5437: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5438: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5439: RAISE OKL_API.G_EXCEPTION_ERROR;
5440: END IF;
5433: p_end_date => l_end_date,
5434: p_arrears => 'Y', -- Calculate until the end of the month !
5435: x_return_status => l_return_status);
5436: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5437: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5438: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5439: RAISE OKL_API.G_EXCEPTION_ERROR;
5440: END IF;
5441: /* IF l_is_arrears= 'Y' AND m = 1 AND l_days >= 1
5434: p_arrears => 'Y', -- Calculate until the end of the month !
5435: x_return_status => l_return_status);
5436: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5437: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5438: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5439: RAISE OKL_API.G_EXCEPTION_ERROR;
5440: END IF;
5441: /* IF l_is_arrears= 'Y' AND m = 1 AND l_days >= 1
5442: THEN
5435: x_return_status => l_return_status);
5436: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5437: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5438: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5439: RAISE OKL_API.G_EXCEPTION_ERROR;
5440: END IF;
5441: /* IF l_is_arrears= 'Y' AND m = 1 AND l_days >= 1
5442: THEN
5443: l_days := l_days - 1;
5447: p_day_convention => p_day_count_method,
5448: p_start_date => p_start_date,
5449: p_cash_inflow_date => l_start_date,
5450: x_return_status => l_return_status );
5451: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5452: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5453: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5454: RAISE OKL_API.G_EXCEPTION_ERROR;
5455: END IF;
5448: p_start_date => p_start_date,
5449: p_cash_inflow_date => l_start_date,
5450: x_return_status => l_return_status );
5451: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5452: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5453: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5454: RAISE OKL_API.G_EXCEPTION_ERROR;
5455: END IF;
5456: -- Interest Calculation
5449: p_cash_inflow_date => l_start_date,
5450: x_return_status => l_return_status );
5451: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5452: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5453: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5454: RAISE OKL_API.G_EXCEPTION_ERROR;
5455: END IF;
5456: -- Interest Calculation
5457: l_tmp_interest := l_termination_val * l_days * l_bk_yield / l_days_per_annum;
5450: x_return_status => l_return_status );
5451: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5452: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5453: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5454: RAISE OKL_API.G_EXCEPTION_ERROR;
5455: END IF;
5456: -- Interest Calculation
5457: l_tmp_interest := l_termination_val * l_days * l_bk_yield / l_days_per_annum;
5458: -- Termination value streams assignment
5592: l_prev_diff := l_diff;
5593: END LOOP; -- Loop on n_iterations
5594: -- Actual logic Ends here
5595: x_return_status := l_return_status;
5596: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
5597: x_msg_data => x_msg_data);
5598: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
5599: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
5600: EXCEPTION
5597: x_msg_data => x_msg_data);
5598: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
5599: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
5600: EXCEPTION
5601: WHEN OKL_API.G_EXCEPTION_ERROR THEN
5602: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5603: p_api_name => l_api_name,
5604: p_pkg_name => G_PKG_NAME,
5605: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
5598: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
5599: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
5600: EXCEPTION
5601: WHEN OKL_API.G_EXCEPTION_ERROR THEN
5602: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5603: p_api_name => l_api_name,
5604: p_pkg_name => G_PKG_NAME,
5605: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
5606: x_msg_count => x_msg_count,
5601: WHEN OKL_API.G_EXCEPTION_ERROR THEN
5602: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5603: p_api_name => l_api_name,
5604: p_pkg_name => G_PKG_NAME,
5605: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
5606: x_msg_count => x_msg_count,
5607: x_msg_data => x_msg_data,
5608: p_api_type => g_api_type);
5609: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5605: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
5606: x_msg_count => x_msg_count,
5607: x_msg_data => x_msg_data,
5608: p_api_type => g_api_type);
5609: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5610: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5611: p_api_name => l_api_name,
5612: p_pkg_name => G_PKG_NAME,
5613: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
5606: x_msg_count => x_msg_count,
5607: x_msg_data => x_msg_data,
5608: p_api_type => g_api_type);
5609: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5610: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5611: p_api_name => l_api_name,
5612: p_pkg_name => G_PKG_NAME,
5613: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
5614: x_msg_count => x_msg_count,
5609: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5610: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5611: p_api_name => l_api_name,
5612: p_pkg_name => G_PKG_NAME,
5613: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
5614: x_msg_count => x_msg_count,
5615: x_msg_data => x_msg_data,
5616: p_api_type => g_api_type);
5617: WHEN OTHERS THEN
5614: x_msg_count => x_msg_count,
5615: x_msg_data => x_msg_data,
5616: p_api_type => g_api_type);
5617: WHEN OTHERS THEN
5618: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5619: p_api_name => l_api_name,
5620: p_pkg_name => G_PKG_NAME,
5621: p_exc_name => 'OTHERS',
5622: x_msg_count => x_msg_count,
5714: l_tot_tradein NUMBER;
5715: l_tot_subsidy NUMBER;
5716: l_eot_type_code VARCHAR2(30);
5717: BEGIN
5718: l_return_status := OKL_API.G_RET_STS_SUCCESS;
5719: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
5720: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
5721: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
5722: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
5721: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
5722: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
5723: -- check for logging on STATEMENT level
5724: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
5725: l_return_status := OKL_API.START_ACTIVITY(
5726: p_api_name => l_api_name,
5727: p_pkg_name => G_PKG_NAME,
5728: p_init_msg_list => p_init_msg_list,
5729: l_api_version => l_api_version,
5730: p_api_version => p_api_version,
5731: p_api_type => g_api_type,
5732: x_return_status => x_return_status);
5733: --Check if activity started successfully
5734: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5735: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5736: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5737: RAISE OKL_API.G_EXCEPTION_ERROR;
5738: END IF;
5731: p_api_type => g_api_type,
5732: x_return_status => x_return_status);
5733: --Check if activity started successfully
5734: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5735: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5736: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5737: RAISE OKL_API.G_EXCEPTION_ERROR;
5738: END IF;
5739: -- Know the type of the EOT and then proceed with the values directly or calculate the amount
5732: x_return_status => x_return_status);
5733: --Check if activity started successfully
5734: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5735: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5736: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5737: RAISE OKL_API.G_EXCEPTION_ERROR;
5738: END IF;
5739: -- Know the type of the EOT and then proceed with the values directly or calculate the amount
5740: FOR t_rec IN get_eot_type(p_qq_id => p_qq_hdr_rec.id)
5733: --Check if activity started successfully
5734: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5735: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5736: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5737: RAISE OKL_API.G_EXCEPTION_ERROR;
5738: END IF;
5739: -- Know the type of the EOT and then proceed with the values directly or calculate the amount
5740: FOR t_rec IN get_eot_type(p_qq_id => p_qq_hdr_rec.id)
5741: LOOP
5825: p_eot_percentage => l_eot_percentage,
5826: x_lrs_details => l_lrs_details,
5827: x_lrs_factor => l_lrs_factor,
5828: x_lrs_levels => l_lrs_levels);
5829: IF l_return_status <> OKL_API.G_RET_STS_SUCCESS
5830: THEN
5831: OPEN get_cat_name(p_category_id => t_rec.item_category_id);
5832: FETCH get_cat_name INTO cat_rec;
5833: CLOSE get_cat_name;
5833: CLOSE get_cat_name;
5834: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5835: 'Couldnot found the Lease Rate Factor levels for Item Category ' || cat_rec.name );
5836: -- Show the message and then return back throwing an error!
5837: OKL_API.set_message(
5838: p_app_name => G_APP_NAME,
5839: p_msg_name => 'OKL_LP_NO_LRS_LEVELS_FOUND',
5840: p_token1 => 'ITEMCAT',
5841: p_token1_value => cat_rec.name,
5842: p_token2 => 'ITEMTERM',
5843: p_token2_value => p_qq_hdr_rec.term,
5844: p_token3 => 'ITEMEOTPERCENT',
5845: p_token3_value => ROUND(l_eot_percentage,4) );
5846: RAISE OKL_API.G_EXCEPTION_ERROR;
5847: END IF;
5848: -- Apply the adjustment matrix if needed!
5849: IF l_lrs_details.adj_mat_version_id IS NOT NULL AND
5850: l_got_adj_factor = FALSE
5868: x_msg_count => x_msg_count,
5869: x_msg_data => x_msg_data,
5870: p_okl_ac_rec => l_ac_rec_type,
5871: x_adjustment_factor => l_adj_factor );
5872: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5873: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5874: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5875: RAISE OKL_API.G_EXCEPTION_ERROR;
5876: END IF;
5869: x_msg_data => x_msg_data,
5870: p_okl_ac_rec => l_ac_rec_type,
5871: x_adjustment_factor => l_adj_factor );
5872: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5873: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5874: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5875: RAISE OKL_API.G_EXCEPTION_ERROR;
5876: END IF;
5877: END IF;
5870: p_okl_ac_rec => l_ac_rec_type,
5871: x_adjustment_factor => l_adj_factor );
5872: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5873: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5874: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5875: RAISE OKL_API.G_EXCEPTION_ERROR;
5876: END IF;
5877: END IF;
5878: IF l_got_adj_factor = FALSE
5871: x_adjustment_factor => l_adj_factor );
5872: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5873: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5874: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5875: RAISE OKL_API.G_EXCEPTION_ERROR;
5876: END IF;
5877: END IF;
5878: IF l_got_adj_factor = FALSE
5879: THEN
5890: -- Get the Months factor!
5891: l_months_per_period := okl_stream_generator_pvt.get_months_factor(
5892: p_frequency => l_lrs_details.frq_code,
5893: x_return_status => l_return_status);
5894: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5895: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5896: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5897: RAISE OKL_API.G_EXCEPTION_ERROR;
5898: END IF;
5891: l_months_per_period := okl_stream_generator_pvt.get_months_factor(
5892: p_frequency => l_lrs_details.frq_code,
5893: x_return_status => l_return_status);
5894: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5895: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5896: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5897: RAISE OKL_API.G_EXCEPTION_ERROR;
5898: END IF;
5899: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'Months/Period ' || l_months_per_period );
5892: p_frequency => l_lrs_details.frq_code,
5893: x_return_status => l_return_status);
5894: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5895: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5896: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5897: RAISE OKL_API.G_EXCEPTION_ERROR;
5898: END IF;
5899: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'Months/Period ' || l_months_per_period );
5900: -- Populating the Cash Flow Levels
5893: x_return_status => l_return_status);
5894: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5895: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5896: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5897: RAISE OKL_API.G_EXCEPTION_ERROR;
5898: END IF;
5899: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'Months/Period ' || l_months_per_period );
5900: -- Populating the Cash Flow Levels
5901: l_months_after := 0;
5912: p_start_date => p_qq_hdr_rec.expected_start_date,
5913: p_months_after => l_months_after,
5914: x_date => l_item_cat_cf_tbl(i).cash_flow_level_tbl(cf_index).start_date,
5915: x_return_status => l_return_status);
5916: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5917: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5918: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5919: RAISE OKL_API.G_EXCEPTION_ERROR;
5920: END IF;
5913: p_months_after => l_months_after,
5914: x_date => l_item_cat_cf_tbl(i).cash_flow_level_tbl(cf_index).start_date,
5915: x_return_status => l_return_status);
5916: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5917: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5918: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5919: RAISE OKL_API.G_EXCEPTION_ERROR;
5920: END IF;
5921: -- Add to the l_months_after
5914: x_date => l_item_cat_cf_tbl(i).cash_flow_level_tbl(cf_index).start_date,
5915: x_return_status => l_return_status);
5916: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5917: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5918: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5919: RAISE OKL_API.G_EXCEPTION_ERROR;
5920: END IF;
5921: -- Add to the l_months_after
5922: l_months_after := l_months_after + ( l_lrs_levels(t).periods * l_months_per_period );
5915: x_return_status => l_return_status);
5916: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5917: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5918: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5919: RAISE OKL_API.G_EXCEPTION_ERROR;
5920: END IF;
5921: -- Add to the l_months_after
5922: l_months_after := l_months_after + ( l_lrs_levels(t).periods * l_months_per_period );
5923: -- Increment the index
5937: -- Get the Months factor!
5938: l_months_per_period := okl_stream_generator_pvt.get_months_factor(
5939: p_frequency => p_qq_hdr_rec.target_frequency,
5940: x_return_status => l_return_status);
5941: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5942: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5943: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5944: RAISE OKL_API.G_EXCEPTION_ERROR;
5945: END IF;
5938: l_months_per_period := okl_stream_generator_pvt.get_months_factor(
5939: p_frequency => p_qq_hdr_rec.target_frequency,
5940: x_return_status => l_return_status);
5941: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5942: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5943: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5944: RAISE OKL_API.G_EXCEPTION_ERROR;
5945: END IF;
5946: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'Months/Period ' || l_months_per_period );
5939: p_frequency => p_qq_hdr_rec.target_frequency,
5940: x_return_status => l_return_status);
5941: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5942: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5943: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5944: RAISE OKL_API.G_EXCEPTION_ERROR;
5945: END IF;
5946: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'Months/Period ' || l_months_per_period );
5947: l_periods := p_qq_hdr_rec.term / l_months_per_period;
5940: x_return_status => l_return_status);
5941: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5942: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5943: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5944: RAISE OKL_API.G_EXCEPTION_ERROR;
5945: END IF;
5946: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'Months/Period ' || l_months_per_period );
5947: l_periods := p_qq_hdr_rec.term / l_months_per_period;
5948: -- Need to validate that the term / ( frequency factor ) should be a whole number !
5948: -- Need to validate that the term / ( frequency factor ) should be a whole number !
5949: IF l_periods <> TRUNC( l_periods )
5950: THEN
5951: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'Periods has to be a whole number ');
5952: OKL_API.set_message( G_APP_NAME, OKL_API.G_INVALID_VALUE, OKL_API.G_COL_NAME_TOKEN, 'l_periods');
5953: RAISE OKL_API.G_EXCEPTION_ERROR;
5954: END IF;
5955: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5956: 'Line ID | OEC | EOT Amount | Arrears YN | Freq | Periods | LRF | Amt | Start Date ' );
5949: IF l_periods <> TRUNC( l_periods )
5950: THEN
5951: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'Periods has to be a whole number ');
5952: OKL_API.set_message( G_APP_NAME, OKL_API.G_INVALID_VALUE, OKL_API.G_COL_NAME_TOKEN, 'l_periods');
5953: RAISE OKL_API.G_EXCEPTION_ERROR;
5954: END IF;
5955: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
5956: 'Line ID | OEC | EOT Amount | Arrears YN | Freq | Periods | LRF | Amt | Start Date ' );
5957: i := 1;
5998: x_days_in_month => x_days_in_month,
5999: x_days_in_year => x_days_in_year);
6000: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6001: 'After get_qq_sgt_day_convention ' || l_return_status );
6002: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6003: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6004: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6005: RAISE OKL_API.G_EXCEPTION_ERROR;
6006: END IF;
5999: x_days_in_year => x_days_in_year);
6000: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6001: 'After get_qq_sgt_day_convention ' || l_return_status );
6002: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6003: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6004: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6005: RAISE OKL_API.G_EXCEPTION_ERROR;
6006: END IF;
6007: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6000: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6001: 'After get_qq_sgt_day_convention ' || l_return_status );
6002: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6003: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6004: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6005: RAISE OKL_API.G_EXCEPTION_ERROR;
6006: END IF;
6007: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6008: 'SGT Day convention: ' || x_days_in_month || ' / ' || x_days_in_year);
6001: 'After get_qq_sgt_day_convention ' || l_return_status );
6002: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6003: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6004: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6005: RAISE OKL_API.G_EXCEPTION_ERROR;
6006: END IF;
6007: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6008: 'SGT Day convention: ' || x_days_in_month || ' / ' || x_days_in_year);
6009: -- Return the values ...
6008: 'SGT Day convention: ' || x_days_in_month || ' / ' || x_days_in_year);
6009: -- Return the values ...
6010: x_item_cat_cf_tbl := l_item_cat_cf_tbl;
6011: x_return_status := l_return_status;
6012: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
6013: x_msg_data => x_msg_data);
6014: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6015: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
6016: EXCEPTION
6013: x_msg_data => x_msg_data);
6014: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6015: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
6016: EXCEPTION
6017: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6018: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6019: p_api_name => l_api_name,
6020: p_pkg_name => G_PKG_NAME,
6021: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
6014: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6015: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
6016: EXCEPTION
6017: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6018: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6019: p_api_name => l_api_name,
6020: p_pkg_name => G_PKG_NAME,
6021: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
6022: x_msg_count => x_msg_count,
6017: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6018: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6019: p_api_name => l_api_name,
6020: p_pkg_name => G_PKG_NAME,
6021: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
6022: x_msg_count => x_msg_count,
6023: x_msg_data => x_msg_data,
6024: p_api_type => g_api_type);
6025: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6021: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
6022: x_msg_count => x_msg_count,
6023: x_msg_data => x_msg_data,
6024: p_api_type => g_api_type);
6025: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6026: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6027: p_api_name => l_api_name,
6028: p_pkg_name => G_PKG_NAME,
6029: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
6022: x_msg_count => x_msg_count,
6023: x_msg_data => x_msg_data,
6024: p_api_type => g_api_type);
6025: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6026: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6027: p_api_name => l_api_name,
6028: p_pkg_name => G_PKG_NAME,
6029: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
6030: x_msg_count => x_msg_count,
6025: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6026: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6027: p_api_name => l_api_name,
6028: p_pkg_name => G_PKG_NAME,
6029: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
6030: x_msg_count => x_msg_count,
6031: x_msg_data => x_msg_data,
6032: p_api_type => g_api_type);
6033: WHEN OTHERS THEN
6030: x_msg_count => x_msg_count,
6031: x_msg_data => x_msg_data,
6032: p_api_type => g_api_type);
6033: WHEN OTHERS THEN
6034: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6035: p_api_name => l_api_name,
6036: p_pkg_name => G_PKG_NAME,
6037: p_exc_name => 'OTHERS',
6038: x_msg_count => x_msg_count,
6095: l_adj_factor NUMBER;
6096: l_deal_size NUMBER;
6097: l_months_factor NUMBER;
6098: BEGIN
6099: l_return_status := OKL_API.G_RET_STS_SUCCESS;
6100: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
6101: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
6102: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6103: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
6101: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
6102: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6103: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
6104: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
6105: l_return_status := OKL_API.START_ACTIVITY(
6106: p_api_name => l_api_name,
6107: p_pkg_name => G_PKG_NAME,
6108: p_init_msg_list => p_init_msg_list,
6109: l_api_version => l_api_version,
6109: l_api_version => l_api_version,
6110: p_api_version => p_api_version,
6111: p_api_type => g_api_type,
6112: x_return_status => x_return_status);
6113: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6114: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6115: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6116: RAISE OKL_API.G_EXCEPTION_ERROR;
6117: END IF;
6110: p_api_version => p_api_version,
6111: p_api_type => g_api_type,
6112: x_return_status => x_return_status);
6113: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6114: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6115: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6116: RAISE OKL_API.G_EXCEPTION_ERROR;
6117: END IF;
6118: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6111: p_api_type => g_api_type,
6112: x_return_status => x_return_status);
6113: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6114: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6115: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6116: RAISE OKL_API.G_EXCEPTION_ERROR;
6117: END IF;
6118: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6119: 'Pricing Method is ' || p_qq_hdr_rec.pricing_method );
6112: x_return_status => x_return_status);
6113: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6114: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6115: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6116: RAISE OKL_API.G_EXCEPTION_ERROR;
6117: END IF;
6118: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6119: 'Pricing Method is ' || p_qq_hdr_rec.pricing_method );
6120: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6138: p_start_date => p_qq_hdr_rec.expected_start_date,
6139: x_srt_details => l_srt_details);
6140: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6141: ': l_return_status ' || l_return_status );
6142: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6143: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6144: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6145: RAISE OKL_API.G_EXCEPTION_ERROR;
6146: END IF;
6139: x_srt_details => l_srt_details);
6140: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6141: ': l_return_status ' || l_return_status );
6142: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6143: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6144: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6145: RAISE OKL_API.G_EXCEPTION_ERROR;
6146: END IF;
6147: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6140: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6141: ': l_return_status ' || l_return_status );
6142: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6143: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6144: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6145: RAISE OKL_API.G_EXCEPTION_ERROR;
6146: END IF;
6147: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6148: 'Using SRT ' || l_srt_details.template_name || ' Version ' || l_srt_details.version_number
6141: ': l_return_status ' || l_return_status );
6142: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6143: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6144: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6145: RAISE OKL_API.G_EXCEPTION_ERROR;
6146: END IF;
6147: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6148: 'Using SRT ' || l_srt_details.template_name || ' Version ' || l_srt_details.version_number
6149: || ' Status ' || l_srt_details.sts_code || ' Pricing Engine ' || l_srt_details.pricing_engine_code
6173: x_msg_count => x_msg_count,
6174: x_msg_data => x_msg_data,
6175: p_okl_ac_rec => l_ac_rec_type,
6176: x_adjustment_factor => l_adj_factor );
6177: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6178: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6179: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6180: RAISE OKL_API.G_EXCEPTION_ERROR;
6181: END IF;
6174: x_msg_data => x_msg_data,
6175: p_okl_ac_rec => l_ac_rec_type,
6176: x_adjustment_factor => l_adj_factor );
6177: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6178: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6179: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6180: RAISE OKL_API.G_EXCEPTION_ERROR;
6181: END IF;
6182: END IF;
6175: p_okl_ac_rec => l_ac_rec_type,
6176: x_adjustment_factor => l_adj_factor );
6177: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6178: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6179: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6180: RAISE OKL_API.G_EXCEPTION_ERROR;
6181: END IF;
6182: END IF;
6183: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6176: x_adjustment_factor => l_adj_factor );
6177: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6178: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6179: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6180: RAISE OKL_API.G_EXCEPTION_ERROR;
6181: END IF;
6182: END IF;
6183: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6184: 'Adjustment Factor ' || l_adj_factor );
6221: l_cash_flow_det_tbl(1).start_date := p_qq_hdr_rec.expected_start_date;
6222: l_months_factor := okl_stream_generator_pvt.get_months_factor(
6223: p_frequency => p_qq_hdr_rec.target_frequency,
6224: x_return_status => x_return_status);
6225: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6226: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6227: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6228: RAISE OKL_API.G_EXCEPTION_ERROR;
6229: END IF;
6222: l_months_factor := okl_stream_generator_pvt.get_months_factor(
6223: p_frequency => p_qq_hdr_rec.target_frequency,
6224: x_return_status => x_return_status);
6225: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6226: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6227: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6228: RAISE OKL_API.G_EXCEPTION_ERROR;
6229: END IF;
6230: l_cash_flow_det_tbl(1).number_of_periods := p_qq_hdr_rec.term / l_months_factor;
6223: p_frequency => p_qq_hdr_rec.target_frequency,
6224: x_return_status => x_return_status);
6225: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6226: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6227: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6228: RAISE OKL_API.G_EXCEPTION_ERROR;
6229: END IF;
6230: l_cash_flow_det_tbl(1).number_of_periods := p_qq_hdr_rec.term / l_months_factor;
6231: IF l_cash_flow_det_tbl(1).number_of_periods <> TRUNC( l_cash_flow_det_tbl(1).number_of_periods )
6224: x_return_status => x_return_status);
6225: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6226: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6227: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6228: RAISE OKL_API.G_EXCEPTION_ERROR;
6229: END IF;
6230: l_cash_flow_det_tbl(1).number_of_periods := p_qq_hdr_rec.term / l_months_factor;
6231: IF l_cash_flow_det_tbl(1).number_of_periods <> TRUNC( l_cash_flow_det_tbl(1).number_of_periods )
6232: THEN
6230: l_cash_flow_det_tbl(1).number_of_periods := p_qq_hdr_rec.term / l_months_factor;
6231: IF l_cash_flow_det_tbl(1).number_of_periods <> TRUNC( l_cash_flow_det_tbl(1).number_of_periods )
6232: THEN
6233: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'Periods has to be a whole number ');
6234: OKL_API.set_message( G_APP_NAME, OKL_API.G_INVALID_VALUE, OKL_API.G_COL_NAME_TOKEN, 'Target Frequency');
6235: RAISE OKL_API.G_EXCEPTION_ERROR;
6236: END IF;
6237: -- Fetch the day convention from the Stream Generation Template ...
6238: get_qq_sgt_day_convention(
6231: IF l_cash_flow_det_tbl(1).number_of_periods <> TRUNC( l_cash_flow_det_tbl(1).number_of_periods )
6232: THEN
6233: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'Periods has to be a whole number ');
6234: OKL_API.set_message( G_APP_NAME, OKL_API.G_INVALID_VALUE, OKL_API.G_COL_NAME_TOKEN, 'Target Frequency');
6235: RAISE OKL_API.G_EXCEPTION_ERROR;
6236: END IF;
6237: -- Fetch the day convention from the Stream Generation Template ...
6238: get_qq_sgt_day_convention(
6239: p_api_version => p_api_version,
6245: x_days_in_month => x_days_in_month,
6246: x_days_in_year => x_days_in_year);
6247: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6248: 'After get_qq_sgt_day_convention ' || l_return_status );
6249: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6250: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6251: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6252: RAISE OKL_API.G_EXCEPTION_ERROR;
6253: END IF;
6246: x_days_in_year => x_days_in_year);
6247: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6248: 'After get_qq_sgt_day_convention ' || l_return_status );
6249: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6250: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6251: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6252: RAISE OKL_API.G_EXCEPTION_ERROR;
6253: END IF;
6254: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6247: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6248: 'After get_qq_sgt_day_convention ' || l_return_status );
6249: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6250: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6251: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6252: RAISE OKL_API.G_EXCEPTION_ERROR;
6253: END IF;
6254: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6255: 'SGT Day convention: ' || x_days_in_month || ' / ' || x_days_in_year);
6248: 'After get_qq_sgt_day_convention ' || l_return_status );
6249: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6250: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6251: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6252: RAISE OKL_API.G_EXCEPTION_ERROR;
6253: END IF;
6254: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6255: 'SGT Day convention: ' || x_days_in_month || ' / ' || x_days_in_year);
6256: ELSIF p_qq_hdr_rec.structured_pricing <> 'N'
6274: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6275: 'After get_qq_cash_flows ' || l_return_status );
6276: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6277: 'l_cash_flow_det_tbl.COUNT ' || l_cash_flow_det_tbl.COUNT);
6278: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6279: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6280: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6281: RAISE OKL_API.G_EXCEPTION_ERROR;
6282: END IF;
6275: 'After get_qq_cash_flows ' || l_return_status );
6276: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6277: 'l_cash_flow_det_tbl.COUNT ' || l_cash_flow_det_tbl.COUNT);
6278: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6279: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6280: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6281: RAISE OKL_API.G_EXCEPTION_ERROR;
6282: END IF;
6283: END IF; -- IF p_qq_hdr_rec.pricing_method
6276: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6277: 'l_cash_flow_det_tbl.COUNT ' || l_cash_flow_det_tbl.COUNT);
6278: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6279: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6280: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6281: RAISE OKL_API.G_EXCEPTION_ERROR;
6282: END IF;
6283: END IF; -- IF p_qq_hdr_rec.pricing_method
6284: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6277: 'l_cash_flow_det_tbl.COUNT ' || l_cash_flow_det_tbl.COUNT);
6278: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6279: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6280: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6281: RAISE OKL_API.G_EXCEPTION_ERROR;
6282: END IF;
6283: END IF; -- IF p_qq_hdr_rec.pricing_method
6284: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6285: ': Built the Cash flows and Levels ' );
6302: -- Setting up the return variables
6303: x_cash_flow_rec := l_cash_flow_rec;
6304: x_cash_flow_det_tbl := l_cash_flow_det_tbl;
6305: x_return_status := l_return_status;
6306: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
6307: x_msg_data => x_msg_data);
6308: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6309: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
6310: EXCEPTION
6307: x_msg_data => x_msg_data);
6308: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6309: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
6310: EXCEPTION
6311: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6312: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6313: p_api_name => l_api_name,
6314: p_pkg_name => G_PKG_NAME,
6315: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
6308: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6309: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
6310: EXCEPTION
6311: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6312: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6313: p_api_name => l_api_name,
6314: p_pkg_name => G_PKG_NAME,
6315: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
6316: x_msg_count => x_msg_count,
6311: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6312: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6313: p_api_name => l_api_name,
6314: p_pkg_name => G_PKG_NAME,
6315: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
6316: x_msg_count => x_msg_count,
6317: x_msg_data => x_msg_data,
6318: p_api_type => g_api_type);
6319: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6315: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
6316: x_msg_count => x_msg_count,
6317: x_msg_data => x_msg_data,
6318: p_api_type => g_api_type);
6319: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6320: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6321: p_api_name => l_api_name,
6322: p_pkg_name => G_PKG_NAME,
6323: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
6316: x_msg_count => x_msg_count,
6317: x_msg_data => x_msg_data,
6318: p_api_type => g_api_type);
6319: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6320: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6321: p_api_name => l_api_name,
6322: p_pkg_name => G_PKG_NAME,
6323: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
6324: x_msg_count => x_msg_count,
6319: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6320: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6321: p_api_name => l_api_name,
6322: p_pkg_name => G_PKG_NAME,
6323: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
6324: x_msg_count => x_msg_count,
6325: x_msg_data => x_msg_data,
6326: p_api_type => g_api_type);
6327: WHEN OTHERS THEN
6324: x_msg_count => x_msg_count,
6325: x_msg_data => x_msg_data,
6326: p_api_type => g_api_type);
6327: WHEN OTHERS THEN
6328: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6329: p_api_name => l_api_name,
6330: p_pkg_name => G_PKG_NAME,
6331: p_exc_name => 'OTHERS',
6332: x_msg_count => x_msg_count,
6462: l_lq_id NUMBER;
6463: l_target_arrears NUMBER;
6464: cfl_index BINARY_INTEGER;
6465: BEGIN
6466: l_return_status := OKL_API.G_RET_STS_SUCCESS;
6467: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
6468: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
6469: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6470: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
6469: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6470: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
6471: -- check for logging on STATEMENT level
6472: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
6473: l_return_status := OKL_API.START_ACTIVITY(
6474: p_api_name => l_api_name,
6475: p_pkg_name => G_PKG_NAME,
6476: p_init_msg_list => p_init_msg_list,
6477: l_api_version => l_api_version,
6478: p_api_version => p_api_version,
6479: p_api_type => g_api_type,
6480: x_return_status => x_return_status);
6481: --Check if activity started successfully
6482: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6483: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6484: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6485: RAISE OKL_API.G_EXCEPTION_ERROR;
6486: END IF;
6479: p_api_type => g_api_type,
6480: x_return_status => x_return_status);
6481: --Check if activity started successfully
6482: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6483: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6484: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6485: RAISE OKL_API.G_EXCEPTION_ERROR;
6486: END IF;
6487: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', ': p_id=' || p_id );
6480: x_return_status => x_return_status);
6481: --Check if activity started successfully
6482: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6483: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6484: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6485: RAISE OKL_API.G_EXCEPTION_ERROR;
6486: END IF;
6487: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', ': p_id=' || p_id );
6488: i := 1;
6481: --Check if activity started successfully
6482: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6483: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6484: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6485: RAISE OKL_API.G_EXCEPTION_ERROR;
6486: END IF;
6487: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', ': p_id=' || p_id );
6488: i := 1;
6489: l_months_after := 0;
6524: p_start_date => p_adj_mat_cat_rec.target_eff_from,
6525: x_srt_details => l_srt_details);
6526: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6527: ': l_return_status ' || l_return_status );
6528: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6529: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6530: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6531: RAISE OKL_API.G_EXCEPTION_ERROR;
6532: END IF;
6525: x_srt_details => l_srt_details);
6526: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6527: ': l_return_status ' || l_return_status );
6528: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6529: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6530: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6531: RAISE OKL_API.G_EXCEPTION_ERROR;
6532: END IF;
6533: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6526: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6527: ': l_return_status ' || l_return_status );
6528: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6529: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6530: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6531: RAISE OKL_API.G_EXCEPTION_ERROR;
6532: END IF;
6533: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6534: 'Using SRT ' || l_srt_details.template_name || ' Version ' || l_srt_details.version_number
6527: ': l_return_status ' || l_return_status );
6528: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6529: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6530: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6531: RAISE OKL_API.G_EXCEPTION_ERROR;
6532: END IF;
6533: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6534: 'Using SRT ' || l_srt_details.template_name || ' Version ' || l_srt_details.version_number
6535: || ' Status ' || l_srt_details.sts_code || ' Pricing Engine ' || l_srt_details.pricing_engine_code
6556: x_msg_count => x_msg_count,
6557: x_msg_data => x_msg_data,
6558: p_okl_ac_rec => l_ac_rec_type,
6559: x_adjustment_factor => l_adj_factor );
6560: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6561: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6562: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6563: RAISE OKL_API.G_EXCEPTION_ERROR;
6564: END IF;
6557: x_msg_data => x_msg_data,
6558: p_okl_ac_rec => l_ac_rec_type,
6559: x_adjustment_factor => l_adj_factor );
6560: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6561: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6562: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6563: RAISE OKL_API.G_EXCEPTION_ERROR;
6564: END IF;
6565: END IF;
6558: p_okl_ac_rec => l_ac_rec_type,
6559: x_adjustment_factor => l_adj_factor );
6560: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6561: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6562: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6563: RAISE OKL_API.G_EXCEPTION_ERROR;
6564: END IF;
6565: END IF;
6566: -- Populating the Cash flow Header information
6559: x_adjustment_factor => l_adj_factor );
6560: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6561: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6562: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6563: RAISE OKL_API.G_EXCEPTION_ERROR;
6564: END IF;
6565: END IF;
6566: -- Populating the Cash flow Header information
6567: IF p_cf_source = G_CF_SOURCE_LQ
6606: p_frequency => l_srt_details.frequency_code,
6607: x_return_status => l_return_status);
6608: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6609: 'p_months_factor'||l_months_factor);
6610: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6611: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6612: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6613: RAISE OKL_API.G_EXCEPTION_ERROR;
6614: END IF;
6607: x_return_status => l_return_status);
6608: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6609: 'p_months_factor'||l_months_factor);
6610: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6611: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6612: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6613: RAISE OKL_API.G_EXCEPTION_ERROR;
6614: END IF;
6615: l_cash_flow_det_tbl(1).number_of_periods := quote_rec.term / l_months_factor;
6608: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6609: 'p_months_factor'||l_months_factor);
6610: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6611: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6612: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6613: RAISE OKL_API.G_EXCEPTION_ERROR;
6614: END IF;
6615: l_cash_flow_det_tbl(1).number_of_periods := quote_rec.term / l_months_factor;
6616: --l_cash_flow_det_tbl(1).amount has been already fetched from the
6609: 'p_months_factor'||l_months_factor);
6610: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6611: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6612: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6613: RAISE OKL_API.G_EXCEPTION_ERROR;
6614: END IF;
6615: l_cash_flow_det_tbl(1).number_of_periods := quote_rec.term / l_months_factor;
6616: --l_cash_flow_det_tbl(1).amount has been already fetched from the
6617: -- target_amount column either from OKL_LEASE_QUOTES_B/OKL_ASSETS_B/OKL_FEES_B
6620: -- as the pricing option, the user will be shown to enter the Cash flow levels too.
6621: -- Hence, retrieve the cash flow levels even when the pricing option is SRT.
6622: -- From SRT, get the Rate,Frequency
6623: -- From CFL, get the Advance/Arrears, n, Fetching the Cash Flows Information
6624: l_return_status := OKL_API.G_RET_STS_ERROR;
6625: FOR t_rec in lq_cash_flows_csr( p_id =>p_id,
6626: p_cf_source_type => p_cf_source )
6627: LOOP
6628: l_cash_flow_rec.caf_id := t_rec.caf_id;
6636: l_cash_flow_rec.due_arrears_yn := t_rec.due_arrears_yn;
6637: l_cash_flow_rec.start_date := t_rec.start_date;
6638: l_cash_flow_rec.number_of_advance_periods := t_rec.number_of_advance_periods;
6639: -- Use l_retun_status as a flag
6640: l_return_status := OKL_API.G_RET_STS_SUCCESS;
6641: END LOOP;
6642: -- Fetch the Cash Flow Levels information only if the Cash Flow is present..
6643: IF l_return_status = OKL_API.G_RET_STS_SUCCESS
6644: THEN
6639: -- Use l_retun_status as a flag
6640: l_return_status := OKL_API.G_RET_STS_SUCCESS;
6641: END LOOP;
6642: -- Fetch the Cash Flow Levels information only if the Cash Flow is present..
6643: IF l_return_status = OKL_API.G_RET_STS_SUCCESS
6644: THEN
6645: cfl_index := 1;
6646: l_return_status := OKL_API.G_RET_STS_ERROR;
6647: -- Cash Flows exists. So, fetch the Cash Flow Levels
6642: -- Fetch the Cash Flow Levels information only if the Cash Flow is present..
6643: IF l_return_status = OKL_API.G_RET_STS_SUCCESS
6644: THEN
6645: cfl_index := 1;
6646: l_return_status := OKL_API.G_RET_STS_ERROR;
6647: -- Cash Flows exists. So, fetch the Cash Flow Levels
6648: FOR t_rec in lq_cash_flow_levels_csr( l_cash_flow_rec.caf_id )
6649: LOOP
6650: l_cash_flow_det_tbl(cfl_index).cfl_id := t_rec.cfl_id;
6676: -- Regular Periodic Payment
6677: l_cash_flow_det_tbl(cfl_index).is_stub := 'N';
6678: END IF;
6679: -- Use l_retun_status as a flag
6680: l_return_status := OKL_API.G_RET_STS_SUCCESS;
6681: -- Increment i
6682: cfl_index := cfl_index + 1;
6683: END LOOP;
6684: ELSE
6681: -- Increment i
6682: cfl_index := cfl_index + 1;
6683: END LOOP;
6684: ELSE
6685: l_return_status := OKL_API.G_RET_STS_SUCCESS;
6686: END IF;
6687: END IF;
6688: -- Get the Day convention from the SRT itself !
6689: x_days_in_year := l_srt_details.day_convention_code;
6741: x_days_in_month => x_days_in_month,
6742: x_days_in_year => x_days_in_year);
6743: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6744: ': After Fetching the Day convention from the SGT - TR ' );
6745: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6746: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6747: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6748: RAISE OKL_API.G_EXCEPTION_ERROR;
6749: END IF;
6742: x_days_in_year => x_days_in_year);
6743: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6744: ': After Fetching the Day convention from the SGT - TR ' );
6745: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6746: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6747: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6748: RAISE OKL_API.G_EXCEPTION_ERROR;
6749: END IF;
6750: ELSE
6743: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6744: ': After Fetching the Day convention from the SGT - TR ' );
6745: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6746: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6747: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6748: RAISE OKL_API.G_EXCEPTION_ERROR;
6749: END IF;
6750: ELSE
6751: -- Assuming that the Asset is having Structured Pricing overridden
6744: ': After Fetching the Day convention from the SGT - TR ' );
6745: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6746: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6747: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6748: RAISE OKL_API.G_EXCEPTION_ERROR;
6749: END IF;
6750: ELSE
6751: -- Assuming that the Asset is having Structured Pricing overridden
6752: -- from that of the Payment Structure defined at the Lease Quote level
6765: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6766: 'After get_qq_cash_flows ' || l_return_status );
6767: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6768: 'l_cash_flow_det_tbl.COUNT ' || l_cash_flow_det_tbl.COUNT);
6769: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6770: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6771: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6772: RAISE OKL_API.G_EXCEPTION_ERROR;
6773: END IF;
6766: 'After get_qq_cash_flows ' || l_return_status );
6767: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6768: 'l_cash_flow_det_tbl.COUNT ' || l_cash_flow_det_tbl.COUNT);
6769: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6770: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6771: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6772: RAISE OKL_API.G_EXCEPTION_ERROR;
6773: END IF;
6774: END IF; -- IF p_qq_hdr_rec.pricing_method
6767: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6768: 'l_cash_flow_det_tbl.COUNT ' || l_cash_flow_det_tbl.COUNT);
6769: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6770: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6771: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6772: RAISE OKL_API.G_EXCEPTION_ERROR;
6773: END IF;
6774: END IF; -- IF p_qq_hdr_rec.pricing_method
6775: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6768: 'l_cash_flow_det_tbl.COUNT ' || l_cash_flow_det_tbl.COUNT);
6769: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6770: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6771: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6772: RAISE OKL_API.G_EXCEPTION_ERROR;
6773: END IF;
6774: END IF; -- IF p_qq_hdr_rec.pricing_method
6775: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6776: ': Built the Cash flows and Levels ' );
6795: x_cash_flow_rec := l_cash_flow_rec;
6796: x_cash_flow_det_tbl := l_cash_flow_det_tbl;
6797: x_return_status := l_return_status;
6798:
6799: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
6800: x_msg_data => x_msg_data);
6801: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6802: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
6803: EXCEPTION
6800: x_msg_data => x_msg_data);
6801: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6802: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
6803: EXCEPTION
6804: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6805: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6806: p_api_name => l_api_name,
6807: p_pkg_name => G_PKG_NAME,
6808: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
6801: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6802: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
6803: EXCEPTION
6804: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6805: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6806: p_api_name => l_api_name,
6807: p_pkg_name => G_PKG_NAME,
6808: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
6809: x_msg_count => x_msg_count,
6804: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6805: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6806: p_api_name => l_api_name,
6807: p_pkg_name => G_PKG_NAME,
6808: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
6809: x_msg_count => x_msg_count,
6810: x_msg_data => x_msg_data,
6811: p_api_type => g_api_type);
6812: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6808: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
6809: x_msg_count => x_msg_count,
6810: x_msg_data => x_msg_data,
6811: p_api_type => g_api_type);
6812: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6813: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6814: p_api_name => l_api_name,
6815: p_pkg_name => G_PKG_NAME,
6816: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
6809: x_msg_count => x_msg_count,
6810: x_msg_data => x_msg_data,
6811: p_api_type => g_api_type);
6812: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6813: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6814: p_api_name => l_api_name,
6815: p_pkg_name => G_PKG_NAME,
6816: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
6817: x_msg_count => x_msg_count,
6812: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6813: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6814: p_api_name => l_api_name,
6815: p_pkg_name => G_PKG_NAME,
6816: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
6817: x_msg_count => x_msg_count,
6818: x_msg_data => x_msg_data,
6819: p_api_type => g_api_type);
6820: WHEN OTHERS THEN
6817: x_msg_count => x_msg_count,
6818: x_msg_data => x_msg_data,
6819: p_api_type => g_api_type);
6820: WHEN OTHERS THEN
6821: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6822: p_api_name => l_api_name,
6823: p_pkg_name => G_PKG_NAME,
6824: p_exc_name => 'OTHERS',
6825: x_msg_count => x_msg_count,
6931: l_residual_percent NUMBER;
6932: l_residual_int_factor NUMBER;
6933: l_net_adj_amt NUMBER;
6934: BEGIN
6935: l_return_status := OKL_API.G_RET_STS_SUCCESS;
6936: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
6937: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
6938: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
6939: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
6940: -- check for logging on STATEMENT level
6941: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
6942: -- Call START_ACTIVITY to create savepoint, check compatibility
6943: -- and initialize message list
6944: l_return_status := OKL_API.START_ACTIVITY(
6945: p_api_name => l_api_name,
6946: p_pkg_name => G_PKG_NAME,
6947: p_init_msg_list => p_init_msg_list,
6948: l_api_version => l_api_version,
6948: l_api_version => l_api_version,
6949: p_api_version => p_api_version,
6950: p_api_type => g_api_type,
6951: x_return_status => x_return_status);
6952: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6953: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6954: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6955: RAISE OKL_API.G_EXCEPTION_ERROR;
6956: END IF;
6949: p_api_version => p_api_version,
6950: p_api_type => g_api_type,
6951: x_return_status => x_return_status);
6952: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6953: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6954: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6955: RAISE OKL_API.G_EXCEPTION_ERROR;
6956: END IF;
6957: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6950: p_api_type => g_api_type,
6951: x_return_status => x_return_status);
6952: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6953: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6954: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6955: RAISE OKL_API.G_EXCEPTION_ERROR;
6956: END IF;
6957: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6958: ': p_qq_id ' || p_qq_id );
6951: x_return_status => x_return_status);
6952: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6953: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6954: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6955: RAISE OKL_API.G_EXCEPTION_ERROR;
6956: END IF;
6957: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6958: ': p_qq_id ' || p_qq_id );
6959:
6974: p_so_type => 'QQ',
6975: x_so_hdr_rec => l_hdr_rec );
6976: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6977: 'After get_so_hdr ' || l_return_status );
6978: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6979: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6980: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6981: RAISE OKL_API.G_EXCEPTION_ERROR;
6982: END IF;
6975: x_so_hdr_rec => l_hdr_rec );
6976: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6977: 'After get_so_hdr ' || l_return_status );
6978: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6979: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6980: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6981: RAISE OKL_API.G_EXCEPTION_ERROR;
6982: END IF;
6983: -- Validate the Pricing Method for Quick Quote
6976: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6977: 'After get_so_hdr ' || l_return_status );
6978: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6979: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6980: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6981: RAISE OKL_API.G_EXCEPTION_ERROR;
6982: END IF;
6983: -- Validate the Pricing Method for Quick Quote
6984: -- RC, SF, SP, SS, SY, TR are the permitted pricing methods for the Quick Quote
6977: 'After get_so_hdr ' || l_return_status );
6978: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6979: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6980: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6981: RAISE OKL_API.G_EXCEPTION_ERROR;
6982: END IF;
6983: -- Validate the Pricing Method for Quick Quote
6984: -- RC, SF, SP, SS, SY, TR are the permitted pricing methods for the Quick Quote
6985: l_valid_pm := validate_pricing_method(
6995: ELSE
6996: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6997: 'l_valid_pm = FALSE' );
6998: END IF;
6999: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7000: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7001: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7002: RAISE OKL_API.G_EXCEPTION_ERROR;
7003: END IF;
6996: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
6997: 'l_valid_pm = FALSE' );
6998: END IF;
6999: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7000: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7001: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7002: RAISE OKL_API.G_EXCEPTION_ERROR;
7003: END IF;
7004: -- If Pricing Method is invalid .. raise exception ..
6997: 'l_valid_pm = FALSE' );
6998: END IF;
6999: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7000: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7001: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7002: RAISE OKL_API.G_EXCEPTION_ERROR;
7003: END IF;
7004: -- If Pricing Method is invalid .. raise exception ..
7005: IF l_valid_pm = FALSE
6998: END IF;
6999: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7000: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7001: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7002: RAISE OKL_API.G_EXCEPTION_ERROR;
7003: END IF;
7004: -- If Pricing Method is invalid .. raise exception ..
7005: IF l_valid_pm = FALSE
7006: THEN
7004: -- If Pricing Method is invalid .. raise exception ..
7005: IF l_valid_pm = FALSE
7006: THEN
7007: -- Display a message and raise an exception ..
7008: OKL_API.SET_MESSAGE(
7009: p_app_name => g_app_name,
7010: p_msg_name => g_invalid_value,
7011: p_token1 => g_col_name_token,
7012: p_token1_value => 'Pricing Method');
7009: p_app_name => g_app_name,
7010: p_msg_name => g_invalid_value,
7011: p_token1 => g_col_name_token,
7012: p_token1_value => 'Pricing Method');
7013: RAISE OKL_API.G_EXCEPTION_ERROR;
7014: END IF;
7015: -- Know the type of the EOT and then proceed with the values directly or calculate the amount
7016: FOR t_rec IN get_eot_type( p_qq_id => p_qq_id )
7017: LOOP
7032: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7033: 'After get_qq_item_cat_details ' || l_return_status );
7034: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7035: 'l_item_cat_tbl.COUNT ' || l_item_cat_tbl.COUNT );
7036: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7037: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7038: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7039: RAISE OKL_API.G_EXCEPTION_ERROR;
7040: END IF;
7033: 'After get_qq_item_cat_details ' || l_return_status );
7034: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7035: 'l_item_cat_tbl.COUNT ' || l_item_cat_tbl.COUNT );
7036: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7037: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7038: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7039: RAISE OKL_API.G_EXCEPTION_ERROR;
7040: END IF;
7041: -- Loop through the Item Category Table and determine the Total Item Cat Cost
7034: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7035: 'l_item_cat_tbl.COUNT ' || l_item_cat_tbl.COUNT );
7036: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7037: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7038: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7039: RAISE OKL_API.G_EXCEPTION_ERROR;
7040: END IF;
7041: -- Loop through the Item Category Table and determine the Total Item Cat Cost
7042: l_tot_item_cat_amount := 0;
7035: 'l_item_cat_tbl.COUNT ' || l_item_cat_tbl.COUNT );
7036: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7037: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7038: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7039: RAISE OKL_API.G_EXCEPTION_ERROR;
7040: END IF;
7041: -- Loop through the Item Category Table and determine the Total Item Cat Cost
7042: l_tot_item_cat_amount := 0;
7043: l_tot_eot_amount := 0;
7077: p_item_category_amount => l_tot_item_cat_amount,
7078: x_all_amounts_rec => l_fin_adj_rec);
7079: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7080: 'After get_qq_fin_adj_details ' || l_return_status );
7081: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7082: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7083: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7084: RAISE OKL_API.G_EXCEPTION_ERROR;
7085: END IF;
7078: x_all_amounts_rec => l_fin_adj_rec);
7079: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7080: 'After get_qq_fin_adj_details ' || l_return_status );
7081: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7082: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7083: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7084: RAISE OKL_API.G_EXCEPTION_ERROR;
7085: END IF;
7086: -- Possibly now, we can build the Pricing Parameter Record
7079: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7080: 'After get_qq_fin_adj_details ' || l_return_status );
7081: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7082: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7083: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7084: RAISE OKL_API.G_EXCEPTION_ERROR;
7085: END IF;
7086: -- Possibly now, we can build the Pricing Parameter Record
7087: l_pricing_parameters_rec.financed_amount := l_tot_item_cat_amount;
7080: 'After get_qq_fin_adj_details ' || l_return_status );
7081: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7082: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7083: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7084: RAISE OKL_API.G_EXCEPTION_ERROR;
7085: END IF;
7086: -- Possibly now, we can build the Pricing Parameter Record
7087: l_pricing_parameters_rec.financed_amount := l_tot_item_cat_amount;
7088: l_pricing_parameters_rec.trade_in := l_fin_adj_rec.tradein_amount;
7107: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7108: 'After get_qq_asset_oec ' || l_return_status );
7109: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7110: 'l_oec=' || nvl( l_oec, 0 ) );
7111: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7112: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7113: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7114: RAISE OKL_API.G_EXCEPTION_ERROR;
7115: END IF;
7108: 'After get_qq_asset_oec ' || l_return_status );
7109: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7110: 'l_oec=' || nvl( l_oec, 0 ) );
7111: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7112: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7113: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7114: RAISE OKL_API.G_EXCEPTION_ERROR;
7115: END IF;
7116: l_eot_percentage := ( l_tot_eot_amount / l_oec ) * 100; -- EOT Percentage;
7109: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7110: 'l_oec=' || nvl( l_oec, 0 ) );
7111: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7112: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7113: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7114: RAISE OKL_API.G_EXCEPTION_ERROR;
7115: END IF;
7116: l_eot_percentage := ( l_tot_eot_amount / l_oec ) * 100; -- EOT Percentage;
7117: END IF;
7110: 'l_oec=' || nvl( l_oec, 0 ) );
7111: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7112: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7113: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7114: RAISE OKL_API.G_EXCEPTION_ERROR;
7115: END IF;
7116: l_eot_percentage := ( l_tot_eot_amount / l_oec ) * 100; -- EOT Percentage;
7117: END IF;
7118: IF l_hdr_rec.pricing_method = 'RC' -- Rate card pricing
7129: x_days_in_year => l_days_in_year,
7130: x_item_cat_cf_tbl => l_item_cat_cf_tbl);
7131: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7132: 'After get_qq_rc_cash_flows ' || l_return_status );
7133: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7134: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7135: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7136: RAISE OKL_API.G_EXCEPTION_ERROR;
7137: END IF;
7130: x_item_cat_cf_tbl => l_item_cat_cf_tbl);
7131: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7132: 'After get_qq_rc_cash_flows ' || l_return_status );
7133: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7134: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7135: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7136: RAISE OKL_API.G_EXCEPTION_ERROR;
7137: END IF;
7138: -- The frequency needs to be fetched from the target_frequency
7131: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7132: 'After get_qq_rc_cash_flows ' || l_return_status );
7133: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7134: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7135: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7136: RAISE OKL_API.G_EXCEPTION_ERROR;
7137: END IF;
7138: -- The frequency needs to be fetched from the target_frequency
7139: l_frequency := l_item_cat_cf_tbl(1).cash_flow_level_tbl(1).fqy_code;
7132: 'After get_qq_rc_cash_flows ' || l_return_status );
7133: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7134: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7135: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7136: RAISE OKL_API.G_EXCEPTION_ERROR;
7137: END IF;
7138: -- The frequency needs to be fetched from the target_frequency
7139: l_frequency := l_item_cat_cf_tbl(1).cash_flow_level_tbl(1).fqy_code;
7140: ELSE
7155: x_cash_flow_rec => l_cash_flow_rec, -- Cash Flow Record
7156: x_cash_flow_det_tbl => l_cash_flow_det_tbl); -- Cash Flow Details Table
7157: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7158: 'After get_qq_cash_flows ' || l_return_status );
7159: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7160: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7161: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7162: RAISE OKL_API.G_EXCEPTION_ERROR;
7163: END IF;
7156: x_cash_flow_det_tbl => l_cash_flow_det_tbl); -- Cash Flow Details Table
7157: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7158: 'After get_qq_cash_flows ' || l_return_status );
7159: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7160: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7161: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7162: RAISE OKL_API.G_EXCEPTION_ERROR;
7163: END IF;
7164: -- Generate the Streams
7157: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7158: 'After get_qq_cash_flows ' || l_return_status );
7159: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7160: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7161: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7162: RAISE OKL_API.G_EXCEPTION_ERROR;
7163: END IF;
7164: -- Generate the Streams
7165: IF l_cash_flow_det_tbl IS NOT NULL AND
7158: 'After get_qq_cash_flows ' || l_return_status );
7159: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7160: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7161: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7162: RAISE OKL_API.G_EXCEPTION_ERROR;
7163: END IF;
7164: -- Generate the Streams
7165: IF l_cash_flow_det_tbl IS NOT NULL AND
7166: l_cash_flow_det_tbl.COUNT > 0
7174: x_msg_data => x_msg_data,
7175: p_cash_flow_rec => l_cash_flow_rec,
7176: p_cf_details_tbl => l_cash_flow_det_tbl,
7177: x_cash_inflow_strms_tbl => l_strm_ele_tbl);
7178: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7179: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7180: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7181: RAISE OKL_API.G_EXCEPTION_ERROR;
7182: END IF;
7175: p_cash_flow_rec => l_cash_flow_rec,
7176: p_cf_details_tbl => l_cash_flow_det_tbl,
7177: x_cash_inflow_strms_tbl => l_strm_ele_tbl);
7178: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7179: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7180: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7181: RAISE OKL_API.G_EXCEPTION_ERROR;
7182: END IF;
7183: l_frequency := l_cash_flow_det_tbl(l_cash_flow_det_tbl.FIRST).fqy_code;
7176: p_cf_details_tbl => l_cash_flow_det_tbl,
7177: x_cash_inflow_strms_tbl => l_strm_ele_tbl);
7178: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7179: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7180: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7181: RAISE OKL_API.G_EXCEPTION_ERROR;
7182: END IF;
7183: l_frequency := l_cash_flow_det_tbl(l_cash_flow_det_tbl.FIRST).fqy_code;
7184: ELSE
7177: x_cash_inflow_strms_tbl => l_strm_ele_tbl);
7178: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7179: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7180: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7181: RAISE OKL_API.G_EXCEPTION_ERROR;
7182: END IF;
7183: l_frequency := l_cash_flow_det_tbl(l_cash_flow_det_tbl.FIRST).fqy_code;
7184: ELSE
7185: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7183: l_frequency := l_cash_flow_det_tbl(l_cash_flow_det_tbl.FIRST).fqy_code;
7184: ELSE
7185: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7186: 'No Cash flow and Cash flow Levels obtained ! ' );
7187: OKL_API.SET_MESSAGE (
7188: p_app_name => G_APP_NAME,
7189: p_msg_name => 'OKL_LLA_PMT_SELECT');
7190: RAISE OKL_API.G_EXCEPTION_ERROR;
7191: END IF;
7186: 'No Cash flow and Cash flow Levels obtained ! ' );
7187: OKL_API.SET_MESSAGE (
7188: p_app_name => G_APP_NAME,
7189: p_msg_name => 'OKL_LLA_PMT_SELECT');
7190: RAISE OKL_API.G_EXCEPTION_ERROR;
7191: END IF;
7192: END IF; -- IF on Rate Card Pricing Method ..
7193: -- Build the Residuals Table
7194: IF l_item_cat_tbl IS NOT NULL AND
7198: p_start_date => l_hdr_rec.expected_start_date,
7199: p_months_after => l_hdr_rec.term,
7200: x_date => l_eot_date,
7201: x_return_status => l_return_status);
7202: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7203: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7204: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7205: RAISE OKL_API.G_EXCEPTION_ERROR;
7206: END IF;
7199: p_months_after => l_hdr_rec.term,
7200: x_date => l_eot_date,
7201: x_return_status => l_return_status);
7202: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7203: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7204: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7205: RAISE OKL_API.G_EXCEPTION_ERROR;
7206: END IF;
7207: l_eot_date := l_eot_date - 1;
7200: x_date => l_eot_date,
7201: x_return_status => l_return_status);
7202: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7203: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7204: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7205: RAISE OKL_API.G_EXCEPTION_ERROR;
7206: END IF;
7207: l_eot_date := l_eot_date - 1;
7208: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7201: x_return_status => l_return_status);
7202: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7203: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7204: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7205: RAISE OKL_API.G_EXCEPTION_ERROR;
7206: END IF;
7207: l_eot_date := l_eot_date - 1;
7208: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7209: 'QQ End date: ' || l_eot_date);
7214: x_ppy => l_cf_ppy,
7215: x_return_status => l_return_status );
7216: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7217: 'After get_dpp_ppy : ' || l_return_status);
7218: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7219: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7220: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7221: RAISE OKL_API.G_EXCEPTION_ERROR;
7222: END IF;
7215: x_return_status => l_return_status );
7216: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7217: 'After get_dpp_ppy : ' || l_return_status);
7218: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7219: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7220: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7221: RAISE OKL_API.G_EXCEPTION_ERROR;
7222: END IF;
7223: IF l_hdr_rec.pricing_method <> 'RC'
7216: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7217: 'After get_dpp_ppy : ' || l_return_status);
7218: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7219: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7220: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7221: RAISE OKL_API.G_EXCEPTION_ERROR;
7222: END IF;
7223: IF l_hdr_rec.pricing_method <> 'RC'
7224: THEN
7217: 'After get_dpp_ppy : ' || l_return_status);
7218: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7219: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7220: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7221: RAISE OKL_API.G_EXCEPTION_ERROR;
7222: END IF;
7223: IF l_hdr_rec.pricing_method <> 'RC'
7224: THEN
7225: FOR i in l_item_cat_tbl.FIRST .. l_item_cat_tbl.LAST
7275: p_cf_details_tbl => l_item_cat_cf_tbl(t).cash_flow_level_tbl,
7276: x_cash_inflow_strms_tbl => l_strm_ele_tbl);
7277: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7278: 'After gen_so_cf_strms ' || l_return_status );
7279: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7280: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7281: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7282: RAISE OKL_API.G_EXCEPTION_ERROR;
7283: END IF;
7276: x_cash_inflow_strms_tbl => l_strm_ele_tbl);
7277: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7278: 'After gen_so_cf_strms ' || l_return_status );
7279: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7280: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7281: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7282: RAISE OKL_API.G_EXCEPTION_ERROR;
7283: END IF;
7284: ELSE
7277: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7278: 'After gen_so_cf_strms ' || l_return_status );
7279: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7280: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7281: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7282: RAISE OKL_API.G_EXCEPTION_ERROR;
7283: END IF;
7284: ELSE
7285: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7278: 'After gen_so_cf_strms ' || l_return_status );
7279: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7280: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7281: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7282: RAISE OKL_API.G_EXCEPTION_ERROR;
7283: END IF;
7284: ELSE
7285: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7286: 'No Cash flow and Cash flow Levels obtained ! ' );
7283: END IF;
7284: ELSE
7285: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7286: 'No Cash flow and Cash flow Levels obtained ! ' );
7287: OKL_API.SET_MESSAGE (
7288: p_app_name => G_APP_NAME,
7289: p_msg_name => 'OKL_LLA_PMT_SELECT');
7290: RAISE OKL_API.G_EXCEPTION_ERROR;
7291: END IF;
7286: 'No Cash flow and Cash flow Levels obtained ! ' );
7287: OKL_API.SET_MESSAGE (
7288: p_app_name => G_APP_NAME,
7289: p_msg_name => 'OKL_LLA_PMT_SELECT');
7290: RAISE OKL_API.G_EXCEPTION_ERROR;
7291: END IF;
7292: l_pricing_parameters_tbl(pp_index).cash_inflows := l_strm_ele_tbl;
7293: l_strm_ele_tbl.DELETE;
7294: -- Increment the pricing param index ..
7320: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7321: 'After get_day_count_method ' || l_return_status);
7322: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7323: 'l_day_count_method = ' || l_day_count_method);
7324: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7325: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7326: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7327: --Bug 5884825 PAGARG start
7328: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7321: 'After get_day_count_method ' || l_return_status);
7322: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7323: 'l_day_count_method = ' || l_day_count_method);
7324: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7325: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7326: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7327: --Bug 5884825 PAGARG start
7328: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7329: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
7322: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7323: 'l_day_count_method = ' || l_day_count_method);
7324: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7325: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7326: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7327: --Bug 5884825 PAGARG start
7328: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7329: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
7330: p_token1 => 'PRODUCT_NAME',
7324: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7325: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7326: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7327: --Bug 5884825 PAGARG start
7328: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7329: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
7330: p_token1 => 'PRODUCT_NAME',
7331: p_token1_value => l_product_name);
7332: --Bug 5884825 PAGARG end
7329: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
7330: p_token1 => 'PRODUCT_NAME',
7331: p_token1_value => l_product_name);
7332: --Bug 5884825 PAGARG end
7333: RAISE OKL_API.G_EXCEPTION_ERROR;
7334: END IF;
7335: IF l_hdr_rec.rate_template_id IS NOT NULL
7336: THEN
7337: -- Fetch the day convention from the Stream Generation Template ...
7347: x_days_in_month => l_sgt_days_in_month,
7348: x_days_in_year => l_sgt_days_in_year);
7349: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7350: 'After get_qq_sgt_day_convention ' || l_return_status );
7351: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7352: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7353: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7354: RAISE OKL_API.G_EXCEPTION_ERROR;
7355: END IF;
7348: x_days_in_year => l_sgt_days_in_year);
7349: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7350: 'After get_qq_sgt_day_convention ' || l_return_status );
7351: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7352: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7353: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7354: RAISE OKL_API.G_EXCEPTION_ERROR;
7355: END IF;
7356: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7349: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7350: 'After get_qq_sgt_day_convention ' || l_return_status );
7351: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7352: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7353: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7354: RAISE OKL_API.G_EXCEPTION_ERROR;
7355: END IF;
7356: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7357: 'SGT Day convention: ' || l_days_in_month || ' / ' || l_days_in_year);
7350: 'After get_qq_sgt_day_convention ' || l_return_status );
7351: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7352: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7353: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7354: RAISE OKL_API.G_EXCEPTION_ERROR;
7355: END IF;
7356: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7357: 'SGT Day convention: ' || l_days_in_month || ' / ' || l_days_in_year);
7358: -- Get the day convention ..
7364: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7365: '2/ After get_day_count_method ' || l_return_status);
7366: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7367: 'l_sgt_day_count_method = ' || l_sgt_day_count_method);
7368: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7369: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7370: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7371: --Bug 5884825 PAGARG start
7372: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7365: '2/ After get_day_count_method ' || l_return_status);
7366: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7367: 'l_sgt_day_count_method = ' || l_sgt_day_count_method);
7368: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7369: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7370: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7371: --Bug 5884825 PAGARG start
7372: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7373: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
7366: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7367: 'l_sgt_day_count_method = ' || l_sgt_day_count_method);
7368: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7369: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7370: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7371: --Bug 5884825 PAGARG start
7372: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7373: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
7374: p_token1 => 'PRODUCT_NAME',
7368: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7369: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7370: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7371: --Bug 5884825 PAGARG start
7372: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7373: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
7374: p_token1 => 'PRODUCT_NAME',
7375: p_token1_value => l_product_name);
7376: --Bug 5884825 PAGARG end
7373: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
7374: p_token1 => 'PRODUCT_NAME',
7375: p_token1_value => l_product_name);
7376: --Bug 5884825 PAGARG end
7377: RAISE OKL_API.G_EXCEPTION_ERROR;
7378: END IF;
7379: ELSE
7380: -- The day convention returned by the get_qq_rc_cash_flows / get_qq_cash_flows
7381: -- will be from the SGT already, so just store them in the SGT day convention variables.
7415: px_iir => l_iir,
7416: x_payment => l_miss_payment);
7417: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7418: 'After compute_iir ' || l_return_status );
7419: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7420: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7421: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7422: RAISE OKL_API.G_EXCEPTION_ERROR;
7423: END IF;
7416: x_payment => l_miss_payment);
7417: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7418: 'After compute_iir ' || l_return_status );
7419: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7420: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7421: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7422: RAISE OKL_API.G_EXCEPTION_ERROR;
7423: END IF;
7424: IF l_hdr_rec.pricing_method = 'SP' OR
7417: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7418: 'After compute_iir ' || l_return_status );
7419: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7420: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7421: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7422: RAISE OKL_API.G_EXCEPTION_ERROR;
7423: END IF;
7424: IF l_hdr_rec.pricing_method = 'SP' OR
7425: (l_hdr_rec.pricing_method = 'TR' AND
7418: 'After compute_iir ' || l_return_status );
7419: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7420: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7421: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7422: RAISE OKL_API.G_EXCEPTION_ERROR;
7423: END IF;
7424: IF l_hdr_rec.pricing_method = 'SP' OR
7425: (l_hdr_rec.pricing_method = 'TR' AND
7426: l_hdr_rec.target_rate_type = 'IIR' )
7426: l_hdr_rec.target_rate_type = 'IIR' )
7427: THEN
7428: IF l_miss_payment < 0
7429: THEN
7430: OKL_API.SET_MESSAGE (
7431: p_app_name => G_APP_NAME,
7432: p_msg_name => 'OKL_NEGATIVE_ADJ_AMT',
7433: p_token1 => 'TYPE',
7434: p_token1_value => 'Payment',
7433: p_token1 => 'TYPE',
7434: p_token1_value => 'Payment',
7435: p_token2 => 'AMOUNT',
7436: p_token2_value => round(l_miss_payment,2) );
7437: RAISE okl_api.g_exception_error;
7438: END IF;
7439: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7440: ' SOLVED PAYMENT AMOUNT : ' || l_miss_payment );
7441: -- Populate back the missing payment amount in all the stream elements
7454: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7455: 'SOLVED SUBSIDY AMOUNT ' || l_pricing_parameters_tbl(1).subsidy );
7456: IF l_pricing_parameters_tbl(1).subsidy < 0
7457: THEN
7458: OKL_API.SET_MESSAGE (
7459: p_app_name => G_APP_NAME,
7460: p_msg_name => 'OKL_NEGATIVE_ADJ_AMT',
7461: p_token1 => 'TYPE',
7462: p_token1_value => 'Subsidy',
7461: p_token1 => 'TYPE',
7462: p_token1_value => 'Subsidy',
7463: p_token2 => 'AMOUNT',
7464: p_token2_value => round(l_pricing_parameters_tbl(1).subsidy,2) );
7465: RAISE okl_api.g_exception_error;
7466: END IF;
7467: END IF; -- IF on pricing method
7468: ELSIF l_hdr_rec.pricing_method = 'SFP'
7469: THEN
7490: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7491: 'Closing Balance | Residual Percent | l_residual_int_factor ' );
7492: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7493: round(l_closing_balance, 4) || ' | ' || round( l_residual_percent, 4) || ' | ' || round(l_residual_int_factor,4) );
7494: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7495: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7496: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7497: RAISE OKL_API.G_EXCEPTION_ERROR;
7498: END IF;
7491: 'Closing Balance | Residual Percent | l_residual_int_factor ' );
7492: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7493: round(l_closing_balance, 4) || ' | ' || round( l_residual_percent, 4) || ' | ' || round(l_residual_int_factor,4) );
7494: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7495: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7496: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7497: RAISE OKL_API.G_EXCEPTION_ERROR;
7498: END IF;
7499: END IF;
7492: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7493: round(l_closing_balance, 4) || ' | ' || round( l_residual_percent, 4) || ' | ' || round(l_residual_int_factor,4) );
7494: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7495: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7496: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7497: RAISE OKL_API.G_EXCEPTION_ERROR;
7498: END IF;
7499: END IF;
7500: IF l_hdr_rec.pricing_method = 'SF' OR
7493: round(l_closing_balance, 4) || ' | ' || round( l_residual_percent, 4) || ' | ' || round(l_residual_int_factor,4) );
7494: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7495: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7496: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7497: RAISE OKL_API.G_EXCEPTION_ERROR;
7498: END IF;
7499: END IF;
7500: IF l_hdr_rec.pricing_method = 'SF' OR
7501: l_hdr_rec.pricing_method = 'SFP'
7630: p_tot_rent_payment => l_tot_rent_payment,
7631: x_fee_srv_tbl => l_fee_srv_tbl);
7632: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7633: 'After get_fee_srvc_cash_flows ' || l_return_status );
7634: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7635: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7636: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7637: RAISE OKL_API.G_EXCEPTION_ERROR;
7638: END IF;
7631: x_fee_srv_tbl => l_fee_srv_tbl);
7632: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7633: 'After get_fee_srvc_cash_flows ' || l_return_status );
7634: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7635: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7636: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7637: RAISE OKL_API.G_EXCEPTION_ERROR;
7638: END IF;
7639: -- Now need to loop through the l_fee_srv_tbl, generate streams if needed
7632: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7633: 'After get_fee_srvc_cash_flows ' || l_return_status );
7634: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7635: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7636: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7637: RAISE OKL_API.G_EXCEPTION_ERROR;
7638: END IF;
7639: -- Now need to loop through the l_fee_srv_tbl, generate streams if needed
7640: -- and accumulate the streams in the l_pricing_parameters_tbl !!
7633: 'After get_fee_srvc_cash_flows ' || l_return_status );
7634: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7635: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7636: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7637: RAISE OKL_API.G_EXCEPTION_ERROR;
7638: END IF;
7639: -- Now need to loop through the l_fee_srv_tbl, generate streams if needed
7640: -- and accumulate the streams in the l_pricing_parameters_tbl !!
7641: IF l_fee_srv_tbl.COUNT > 0
7670: x_msg_data => x_msg_data,
7671: p_cash_flow_rec => l_fee_srv_tbl(t_index).cash_flow_rec,
7672: p_cf_details_tbl => l_fee_srv_tbl(t_index).cash_flow_level_tbl,
7673: x_cash_inflow_strms_tbl => l_strm_ele_tbl);
7674: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7675: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7676: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7677: RAISE OKL_API.G_EXCEPTION_ERROR;
7678: END IF;
7671: p_cash_flow_rec => l_fee_srv_tbl(t_index).cash_flow_rec,
7672: p_cf_details_tbl => l_fee_srv_tbl(t_index).cash_flow_level_tbl,
7673: x_cash_inflow_strms_tbl => l_strm_ele_tbl);
7674: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7675: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7676: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7677: RAISE OKL_API.G_EXCEPTION_ERROR;
7678: END IF;
7679: END IF;
7672: p_cf_details_tbl => l_fee_srv_tbl(t_index).cash_flow_level_tbl,
7673: x_cash_inflow_strms_tbl => l_strm_ele_tbl);
7674: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7675: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7676: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7677: RAISE OKL_API.G_EXCEPTION_ERROR;
7678: END IF;
7679: END IF;
7680: -- Get the line_end_date from the last stream element generated !
7673: x_cash_inflow_strms_tbl => l_strm_ele_tbl);
7674: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7675: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7676: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7677: RAISE OKL_API.G_EXCEPTION_ERROR;
7678: END IF;
7679: END IF;
7680: -- Get the line_end_date from the last stream element generated !
7681: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7723: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7724: 'After compute_irr ' || l_return_status );
7725: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7726: 'SOLVED FOR TARGET-RATE (PIRR) ' || l_miss_payment );
7727: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7728: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7729: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7730: RAISE OKL_API.G_EXCEPTION_ERROR;
7731: END IF;
7724: 'After compute_irr ' || l_return_status );
7725: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7726: 'SOLVED FOR TARGET-RATE (PIRR) ' || l_miss_payment );
7727: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7728: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7729: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7730: RAISE OKL_API.G_EXCEPTION_ERROR;
7731: END IF;
7732: IF l_miss_payment < 0
7725: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7726: 'SOLVED FOR TARGET-RATE (PIRR) ' || l_miss_payment );
7727: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7728: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7729: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7730: RAISE OKL_API.G_EXCEPTION_ERROR;
7731: END IF;
7732: IF l_miss_payment < 0
7733: THEN
7726: 'SOLVED FOR TARGET-RATE (PIRR) ' || l_miss_payment );
7727: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7728: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7729: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7730: RAISE OKL_API.G_EXCEPTION_ERROR;
7731: END IF;
7732: IF l_miss_payment < 0
7733: THEN
7734: OKL_API.SET_MESSAGE (
7730: RAISE OKL_API.G_EXCEPTION_ERROR;
7731: END IF;
7732: IF l_miss_payment < 0
7733: THEN
7734: OKL_API.SET_MESSAGE (
7735: p_app_name => G_APP_NAME,
7736: p_msg_name => 'OKL_NEGATIVE_ADJ_AMT',
7737: p_token1 => 'TYPE',
7738: p_token1_value => 'Payment',
7737: p_token1 => 'TYPE',
7738: p_token1_value => 'Payment',
7739: p_token2 => 'AMOUNT',
7740: p_token2_value => round(l_miss_payment,2) );
7741: RAISE okl_api.g_exception_error;
7742: END IF;
7743: END IF; -- Pricing method IF
7744: -- In case of the Pricing Method is SP...
7745: -- populate back the missing amount into the Cash Inflow Levels and the Streams too..
7844: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7845: '1/ After compute_iir ' || l_return_status );
7846: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7847: 'SOLVED FOR IIR ' || l_iir );
7848: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7849: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7850: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7851: RAISE OKL_API.G_EXCEPTION_ERROR;
7852: END IF;
7845: '1/ After compute_iir ' || l_return_status );
7846: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7847: 'SOLVED FOR IIR ' || l_iir );
7848: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7849: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7850: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7851: RAISE OKL_API.G_EXCEPTION_ERROR;
7852: END IF;
7853: -- Store back the pricing params record in l_pricing_parameters_tbl
7846: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7847: 'SOLVED FOR IIR ' || l_iir );
7848: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7849: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7850: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7851: RAISE OKL_API.G_EXCEPTION_ERROR;
7852: END IF;
7853: -- Store back the pricing params record in l_pricing_parameters_tbl
7854: IF l_hdr_rec.pricing_method = 'RC'
7847: 'SOLVED FOR IIR ' || l_iir );
7848: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7849: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7850: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7851: RAISE OKL_API.G_EXCEPTION_ERROR;
7852: END IF;
7853: -- Store back the pricing params record in l_pricing_parameters_tbl
7854: IF l_hdr_rec.pricing_method = 'RC'
7855: THEN
7886: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7887: 'After compute_irr ' || l_return_status );
7888: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7889: 'px_irr ' || l_irr );
7890: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7891: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7892: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7893: RAISE OKL_API.G_EXCEPTION_ERROR;
7894: END IF;
7887: 'After compute_irr ' || l_return_status );
7888: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7889: 'px_irr ' || l_irr );
7890: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7891: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7892: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7893: RAISE OKL_API.G_EXCEPTION_ERROR;
7894: END IF;
7895: END IF; -- IF l_hdr_rec.pricing_method = 'TR' AND l_hdr_rec.target_rate_type = 'PIRR'
7888: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7889: 'px_irr ' || l_irr );
7890: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7891: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7892: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7893: RAISE OKL_API.G_EXCEPTION_ERROR;
7894: END IF;
7895: END IF; -- IF l_hdr_rec.pricing_method = 'TR' AND l_hdr_rec.target_rate_type = 'PIRR'
7896: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7889: 'px_irr ' || l_irr );
7890: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7891: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7892: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7893: RAISE OKL_API.G_EXCEPTION_ERROR;
7894: END IF;
7895: END IF; -- IF l_hdr_rec.pricing_method = 'TR' AND l_hdr_rec.target_rate_type = 'PIRR'
7896: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7897: 'Subsidized Booking Yield Calculation ' );
7921: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7922: 'After compute_bk_yield ' || l_return_status );
7923: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7924: 'x_bk_yield ' || l_bk_yield );
7925: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7926: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7927: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7928: RAISE OKL_API.G_EXCEPTION_ERROR;
7929: END IF;
7922: 'After compute_bk_yield ' || l_return_status );
7923: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7924: 'x_bk_yield ' || l_bk_yield );
7925: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7926: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7927: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7928: RAISE OKL_API.G_EXCEPTION_ERROR;
7929: END IF;
7930: */
7923: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
7924: 'x_bk_yield ' || l_bk_yield );
7925: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7926: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7927: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7928: RAISE OKL_API.G_EXCEPTION_ERROR;
7929: END IF;
7930: */
7931: END IF;
7924: 'x_bk_yield ' || l_bk_yield );
7925: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7926: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7927: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7928: RAISE OKL_API.G_EXCEPTION_ERROR;
7929: END IF;
7930: */
7931: END IF;
7932: -- Need to store the Subsidized Yields into l_subsized_yileds_rec
7986: p_initial_guess => l_subsidized_yields_rec.iir,
7987: px_pricing_parameter_tbl => l_tmp_prc_params_tbl,
7988: px_irr => l_iir,
7989: x_payment => l_miss_payment);
7990: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7991: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7992: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7993: RAISE OKL_API.G_EXCEPTION_ERROR;
7994: END IF;
7987: px_pricing_parameter_tbl => l_tmp_prc_params_tbl,
7988: px_irr => l_iir,
7989: x_payment => l_miss_payment);
7990: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7991: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7992: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7993: RAISE OKL_API.G_EXCEPTION_ERROR;
7994: END IF;
7995: -- Store back the pricing params ..
7988: px_irr => l_iir,
7989: x_payment => l_miss_payment);
7990: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7991: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7992: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7993: RAISE OKL_API.G_EXCEPTION_ERROR;
7994: END IF;
7995: -- Store back the pricing params ..
7996: IF l_hdr_rec.pricing_method = 'RC'
7989: x_payment => l_miss_payment);
7990: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7991: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7992: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7993: RAISE OKL_API.G_EXCEPTION_ERROR;
7994: END IF;
7995: -- Store back the pricing params ..
7996: IF l_hdr_rec.pricing_method = 'RC'
7997: THEN
8020: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
8021: 'After compute_irr ' || l_return_status );
8022: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
8023: 'px_irr ' || l_irr );
8024: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8025: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8026: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8027: RAISE OKL_API.G_EXCEPTION_ERROR;
8028: END IF;
8021: 'After compute_irr ' || l_return_status );
8022: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
8023: 'px_irr ' || l_irr );
8024: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8025: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8026: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8027: RAISE OKL_API.G_EXCEPTION_ERROR;
8028: END IF;
8029: IF l_hdr_rec.pricing_method = 'RC'
8022: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
8023: 'px_irr ' || l_irr );
8024: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8025: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8026: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8027: RAISE OKL_API.G_EXCEPTION_ERROR;
8028: END IF;
8029: IF l_hdr_rec.pricing_method = 'RC'
8030: THEN
8023: 'px_irr ' || l_irr );
8024: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8025: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8026: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8027: RAISE OKL_API.G_EXCEPTION_ERROR;
8028: END IF;
8029: IF l_hdr_rec.pricing_method = 'RC'
8030: THEN
8031: -- Store the IIR as the Booking Yield @ the QQ level
8050: x_termination_tbl => x_termination_tbl,
8051: x_pre_tax_inc_tbl => x_pre_tax_inc_tbl);
8052: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'After compute_bk_yield ' || l_return_status );
8053: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'x_bk_yield ' || l_bk_yield );
8054: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8055: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8056: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8057: RAISE OKL_API.G_EXCEPTION_ERROR;
8058: END IF;
8051: x_pre_tax_inc_tbl => x_pre_tax_inc_tbl);
8052: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'After compute_bk_yield ' || l_return_status );
8053: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'x_bk_yield ' || l_bk_yield );
8054: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8055: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8056: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8057: RAISE OKL_API.G_EXCEPTION_ERROR;
8058: END IF;
8059: */
8052: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'After compute_bk_yield ' || l_return_status );
8053: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'x_bk_yield ' || l_bk_yield );
8054: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8055: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8056: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8057: RAISE OKL_API.G_EXCEPTION_ERROR;
8058: END IF;
8059: */
8060: END IF;
8053: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S', 'x_bk_yield ' || l_bk_yield );
8054: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8055: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8056: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8057: RAISE OKL_API.G_EXCEPTION_ERROR;
8058: END IF;
8059: */
8060: END IF;
8061: -- ISG doesnot calculate the after_tax_irr yet
8217: i := i + 1;
8218: END LOOP;
8219: END IF;
8220: x_return_status := l_return_status;
8221: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
8222: x_msg_data => x_msg_data);
8223: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
8224: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_name) );
8225: EXCEPTION
8222: x_msg_data => x_msg_data);
8223: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
8224: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_name) );
8225: EXCEPTION
8226: WHEN OKL_API.G_EXCEPTION_ERROR THEN
8227: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8228: p_api_name => l_api_name,
8229: p_pkg_name => G_PKG_NAME,
8230: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
8223: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
8224: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_name) );
8225: EXCEPTION
8226: WHEN OKL_API.G_EXCEPTION_ERROR THEN
8227: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8228: p_api_name => l_api_name,
8229: p_pkg_name => G_PKG_NAME,
8230: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
8231: x_msg_count => x_msg_count,
8226: WHEN OKL_API.G_EXCEPTION_ERROR THEN
8227: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8228: p_api_name => l_api_name,
8229: p_pkg_name => G_PKG_NAME,
8230: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
8231: x_msg_count => x_msg_count,
8232: x_msg_data => x_msg_data,
8233: p_api_type => g_api_type);
8234: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8230: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
8231: x_msg_count => x_msg_count,
8232: x_msg_data => x_msg_data,
8233: p_api_type => g_api_type);
8234: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8235: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8236: p_api_name => l_api_name,
8237: p_pkg_name => G_PKG_NAME,
8238: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
8231: x_msg_count => x_msg_count,
8232: x_msg_data => x_msg_data,
8233: p_api_type => g_api_type);
8234: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8235: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8236: p_api_name => l_api_name,
8237: p_pkg_name => G_PKG_NAME,
8238: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
8239: x_msg_count => x_msg_count,
8234: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8235: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8236: p_api_name => l_api_name,
8237: p_pkg_name => G_PKG_NAME,
8238: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
8239: x_msg_count => x_msg_count,
8240: x_msg_data => x_msg_data,
8241: p_api_type => g_api_type);
8242: WHEN OTHERS THEN
8239: x_msg_count => x_msg_count,
8240: x_msg_data => x_msg_data,
8241: p_api_type => g_api_type);
8242: WHEN OTHERS THEN
8243: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8244: p_api_name => l_api_name,
8245: p_pkg_name => G_PKG_NAME,
8246: p_exc_name => 'OTHERS',
8247: x_msg_count => x_msg_count,
8313: l_component_tbl OKL_LEASE_QUOTE_ASSET_PVT.asset_component_tbl_type;
8314: l_cf_hdr_rec OKL_LEASE_QUOTE_ASSET_PVT.cashflow_hdr_rec_type;
8315: l_cf_level_tbl OKL_LEASE_QUOTE_ASSET_PVT.cashflow_level_tbl_type;
8316: BEGIN
8317: l_return_status := OKL_API.G_RET_STS_SUCCESS;
8318: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
8319: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
8320: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
8321: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
8320: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
8321: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
8322: -- check for logging on STATEMENT level
8323: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
8324: l_return_status := OKL_API.START_ACTIVITY(
8325: p_api_name => l_api_name,
8326: p_pkg_name => G_PKG_NAME,
8327: p_init_msg_list => p_init_msg_list,
8328: l_api_version => l_api_version,
8329: p_api_version => p_api_version,
8330: p_api_type => g_api_type,
8331: x_return_status => x_return_status);
8332: --Check if activity started successfully
8333: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8334: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8335: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8336: RAISE OKL_API.G_EXCEPTION_ERROR;
8337: END IF;
8330: p_api_type => g_api_type,
8331: x_return_status => x_return_status);
8332: --Check if activity started successfully
8333: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8334: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8335: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8336: RAISE OKL_API.G_EXCEPTION_ERROR;
8337: END IF;
8338: -- Loop thu all the assets
8331: x_return_status => x_return_status);
8332: --Check if activity started successfully
8333: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8334: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8335: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8336: RAISE OKL_API.G_EXCEPTION_ERROR;
8337: END IF;
8338: -- Loop thu all the assets
8339: -- store the non-overriding assets id into assets_tbl
8332: --Check if activity started successfully
8333: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8334: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8335: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8336: RAISE OKL_API.G_EXCEPTION_ERROR;
8337: END IF;
8338: -- Loop thu all the assets
8339: -- store the non-overriding assets id into assets_tbl
8340: -- sum the oec_percentage
8361: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
8362: 'After is_asset_overriding assets_rec.id =' || asset_rec.ast_id);
8363: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
8364: ' l_return_status =' || l_return_status );
8365: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8366: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8367: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8368: RAISE OKL_API.G_EXCEPTION_ERROR;
8369: END IF;
8362: 'After is_asset_overriding assets_rec.id =' || asset_rec.ast_id);
8363: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
8364: ' l_return_status =' || l_return_status );
8365: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8366: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8367: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8368: RAISE OKL_API.G_EXCEPTION_ERROR;
8369: END IF;
8370: IF l_overridden = FALSE
8363: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
8364: ' l_return_status =' || l_return_status );
8365: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8366: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8367: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8368: RAISE OKL_API.G_EXCEPTION_ERROR;
8369: END IF;
8370: IF l_overridden = FALSE
8371: THEN
8364: ' l_return_status =' || l_return_status );
8365: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8366: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8367: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8368: RAISE OKL_API.G_EXCEPTION_ERROR;
8369: END IF;
8370: IF l_overridden = FALSE
8371: THEN
8372: -- Asset is following the Payment Structure defined at Lease quote ..
8419: x_msg_count => x_msg_count,
8420: x_msg_data => x_msg_data);
8421: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
8422: 'After OKL_LEASE_QUOTE_ASSET_PVT.update_asset ' || l_return_status );
8423: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8424: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8425: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8426: RAISE OKL_API.G_EXCEPTION_ERROR;
8427: END IF;
8420: x_msg_data => x_msg_data);
8421: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
8422: 'After OKL_LEASE_QUOTE_ASSET_PVT.update_asset ' || l_return_status );
8423: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8424: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8425: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8426: RAISE OKL_API.G_EXCEPTION_ERROR;
8427: END IF;
8428: END LOOP;
8421: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
8422: 'After OKL_LEASE_QUOTE_ASSET_PVT.update_asset ' || l_return_status );
8423: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8424: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8425: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8426: RAISE OKL_API.G_EXCEPTION_ERROR;
8427: END IF;
8428: END LOOP;
8429: END IF;
8422: 'After OKL_LEASE_QUOTE_ASSET_PVT.update_asset ' || l_return_status );
8423: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8424: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8425: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8426: RAISE OKL_API.G_EXCEPTION_ERROR;
8427: END IF;
8428: END LOOP;
8429: END IF;
8430: -- Logic ends here !
8428: END LOOP;
8429: END IF;
8430: -- Logic ends here !
8431: x_return_status := l_return_status;
8432: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
8433: x_msg_data => x_msg_data);
8434: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
8435: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
8436: EXCEPTION
8433: x_msg_data => x_msg_data);
8434: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
8435: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
8436: EXCEPTION
8437: WHEN OKL_API.G_EXCEPTION_ERROR THEN
8438: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8439: p_api_name => l_api_name,
8440: p_pkg_name => G_PKG_NAME,
8441: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
8434: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
8435: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
8436: EXCEPTION
8437: WHEN OKL_API.G_EXCEPTION_ERROR THEN
8438: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8439: p_api_name => l_api_name,
8440: p_pkg_name => G_PKG_NAME,
8441: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
8442: x_msg_count => x_msg_count,
8437: WHEN OKL_API.G_EXCEPTION_ERROR THEN
8438: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8439: p_api_name => l_api_name,
8440: p_pkg_name => G_PKG_NAME,
8441: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
8442: x_msg_count => x_msg_count,
8443: x_msg_data => x_msg_data,
8444: p_api_type => g_api_type);
8445: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8441: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
8442: x_msg_count => x_msg_count,
8443: x_msg_data => x_msg_data,
8444: p_api_type => g_api_type);
8445: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8446: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8447: p_api_name => l_api_name,
8448: p_pkg_name => G_PKG_NAME,
8449: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
8442: x_msg_count => x_msg_count,
8443: x_msg_data => x_msg_data,
8444: p_api_type => g_api_type);
8445: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8446: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8447: p_api_name => l_api_name,
8448: p_pkg_name => G_PKG_NAME,
8449: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
8450: x_msg_count => x_msg_count,
8445: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8446: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8447: p_api_name => l_api_name,
8448: p_pkg_name => G_PKG_NAME,
8449: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
8450: x_msg_count => x_msg_count,
8451: x_msg_data => x_msg_data,
8452: p_api_type => g_api_type);
8453: WHEN OTHERS THEN
8450: x_msg_count => x_msg_count,
8451: x_msg_data => x_msg_data,
8452: p_api_type => g_api_type);
8453: WHEN OTHERS THEN
8454: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8455: p_api_name => l_api_name,
8456: p_pkg_name => G_PKG_NAME,
8457: p_exc_name => 'OTHERS',
8458: x_msg_count => x_msg_count,
8824: l_missing_pmnts BOOLEAN;
8825: l_asset_number VARCHAR2(15);
8826: l_fee_name VARCHAR2(150);
8827: BEGIN
8828: l_return_status := OKL_API.G_RET_STS_SUCCESS;
8829: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
8830: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
8831: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
8832: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
8830: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
8831: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
8832: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
8833: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
8834: l_return_status := OKL_API.START_ACTIVITY(
8835: p_api_name => l_api_name,
8836: p_pkg_name => G_PKG_NAME,
8837: p_init_msg_list => p_init_msg_list,
8838: l_api_version => l_api_version,
8838: l_api_version => l_api_version,
8839: p_api_version => p_api_version,
8840: p_api_type => g_api_type,
8841: x_return_status => l_return_status);
8842: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8843: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8844: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8845: RAISE OKL_API.G_EXCEPTION_ERROR;
8846: END IF;
8839: p_api_version => p_api_version,
8840: p_api_type => g_api_type,
8841: x_return_status => l_return_status);
8842: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8843: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8844: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8845: RAISE OKL_API.G_EXCEPTION_ERROR;
8846: END IF;
8847:
8840: p_api_type => g_api_type,
8841: x_return_status => l_return_status);
8842: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8843: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8844: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8845: RAISE OKL_API.G_EXCEPTION_ERROR;
8846: END IF;
8847:
8848: --Bug 5884825 PAGARG start
8841: x_return_status => l_return_status);
8842: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8843: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8844: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8845: RAISE OKL_API.G_EXCEPTION_ERROR;
8846: END IF;
8847:
8848: --Bug 5884825 PAGARG start
8849: OPEN product_name_csr(p_qte_id);
8854: -- Fetch the Lease Quote Header Details !
8855: OPEN quote_csr(p_qte_id);
8856: FETCH quote_csr INTO quote_rec;
8857: IF (quote_csr%NOTFOUND) THEN
8858: RAISE okl_api.g_exception_unexpected_error;
8859: END IF;
8860: CLOSE quote_csr;
8861: --Populate l_quote_type_code appropriately
8862: IF quote_rec.parent_object_code = 'LEASEAPP' THEN
8872: p_start_date => quote_rec.expected_start_date,
8873: p_months_after => quote_rec.term,
8874: x_date => l_eot_date,
8875: x_return_status => l_return_status);
8876: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8877: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8878: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8879: RAISE OKL_API.G_EXCEPTION_ERROR;
8880: END IF;
8873: p_months_after => quote_rec.term,
8874: x_date => l_eot_date,
8875: x_return_status => l_return_status);
8876: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8877: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8878: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8879: RAISE OKL_API.G_EXCEPTION_ERROR;
8880: END IF;
8881: l_eot_date := l_eot_date - 1;
8874: x_date => l_eot_date,
8875: x_return_status => l_return_status);
8876: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8877: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8878: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8879: RAISE OKL_API.G_EXCEPTION_ERROR;
8880: END IF;
8881: l_eot_date := l_eot_date - 1;
8882: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
8875: x_return_status => l_return_status);
8876: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8877: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8878: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8879: RAISE OKL_API.G_EXCEPTION_ERROR;
8880: END IF;
8881: l_eot_date := l_eot_date - 1;
8882: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
8883: 'Effective To of the LQ ' || l_eot_date );
8994: 'Fetched asset cash flows @LQ level l_return_status = ' || l_return_status);
8995: END IF; -- If on get_lq_cash_flows
8996: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
8997: quote_rec.pricing_method || 'After lq_cash_flows ' || l_return_status);
8998: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8999: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9000: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9001: RAISE OKL_API.G_EXCEPTION_ERROR;
9002: END IF;
8995: END IF; -- If on get_lq_cash_flows
8996: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
8997: quote_rec.pricing_method || 'After lq_cash_flows ' || l_return_status);
8998: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8999: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9000: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9001: RAISE OKL_API.G_EXCEPTION_ERROR;
9002: END IF;
9003: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
8996: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
8997: quote_rec.pricing_method || 'After lq_cash_flows ' || l_return_status);
8998: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8999: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9000: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9001: RAISE OKL_API.G_EXCEPTION_ERROR;
9002: END IF;
9003: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9004: 'No. of Cash Flow Levels ' || l_cash_flow_det_tbl.COUNT );
8997: quote_rec.pricing_method || 'After lq_cash_flows ' || l_return_status);
8998: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8999: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9000: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9001: RAISE OKL_API.G_EXCEPTION_ERROR;
9002: END IF;
9003: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9004: 'No. of Cash Flow Levels ' || l_cash_flow_det_tbl.COUNT );
9005: IF l_cash_flow_det_tbl IS NULL OR
9006: l_cash_flow_det_tbl.COUNT <= 0
9007: THEN
9008: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9009: 'No Cash flow and Cash flow Levels obtained ! ' );
9010: OKL_API.SET_MESSAGE (
9011: p_app_name => G_APP_NAME,
9012: p_msg_name => 'OKL_LLA_PMT_SELECT');
9013: RAISE OKL_API.G_EXCEPTION_ERROR;
9014: END IF;
9009: 'No Cash flow and Cash flow Levels obtained ! ' );
9010: OKL_API.SET_MESSAGE (
9011: p_app_name => G_APP_NAME,
9012: p_msg_name => 'OKL_LLA_PMT_SELECT');
9013: RAISE OKL_API.G_EXCEPTION_ERROR;
9014: END IF;
9015: l_missing_pmnts := FALSE;
9016: -- When the pricing method is SM, an overridden asset may have a missing payment
9017: -- or not. If no missing payment is present, rates will be present for all CFL levels
9038: x_day_count_method => l_day_count_method,
9039: x_return_status => l_return_status );
9040: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9041: 'After get_day_count_method ' || l_return_status);
9042: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9043: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9044: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9045: --Bug 5884825 PAGARG start
9046: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9039: x_return_status => l_return_status );
9040: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9041: 'After get_day_count_method ' || l_return_status);
9042: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9043: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9044: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9045: --Bug 5884825 PAGARG start
9046: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9047: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
9040: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9041: 'After get_day_count_method ' || l_return_status);
9042: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9043: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9044: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9045: --Bug 5884825 PAGARG start
9046: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9047: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
9048: p_token1 => 'PRODUCT_NAME',
9042: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9043: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9044: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9045: --Bug 5884825 PAGARG start
9046: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9047: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
9048: p_token1 => 'PRODUCT_NAME',
9049: p_token1_value => l_product_name);
9050: --Bug 5884825 PAGARG end
9047: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
9048: p_token1 => 'PRODUCT_NAME',
9049: p_token1_value => l_product_name);
9050: --Bug 5884825 PAGARG end
9051: RAISE OKL_API.G_EXCEPTION_ERROR;
9052: END IF;
9053: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9054: 'l_days_in_month= ' || l_days_in_month || ' | l_days_in_year = ' || l_days_in_year);
9055: -- Get the DPP and PPY inorder to populate for the Residuals Table
9059: x_ppy => l_cf_ppy,
9060: x_return_status => l_return_status );
9061: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9062: 'After get_dpp_ppy ' || l_return_status );
9063: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9064: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9065: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9066: RAISE OKL_API.G_EXCEPTION_ERROR;
9067: END IF;
9060: x_return_status => l_return_status );
9061: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9062: 'After get_dpp_ppy ' || l_return_status );
9063: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9064: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9065: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9066: RAISE OKL_API.G_EXCEPTION_ERROR;
9067: END IF;
9068: END IF; -- IF quote_rec.pricing_method <> 'RC'
9061: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9062: 'After get_dpp_ppy ' || l_return_status );
9063: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9064: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9065: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9066: RAISE OKL_API.G_EXCEPTION_ERROR;
9067: END IF;
9068: END IF; -- IF quote_rec.pricing_method <> 'RC'
9069: -- Retrieve the Cost adjustments defined for the Asset ! None for fees
9062: 'After get_dpp_ppy ' || l_return_status );
9063: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9064: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9065: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9066: RAISE OKL_API.G_EXCEPTION_ERROR;
9067: END IF;
9068: END IF; -- IF quote_rec.pricing_method <> 'RC'
9069: -- Retrieve the Cost adjustments defined for the Asset ! None for fees
9070: IF assets_rec.ast_id IS NOT NULL
9270: x_lrs_details => l_lrs_details,
9271: x_lrs_factor => l_lrs_factor,
9272: x_lrs_levels => l_lrs_levels);
9273: -- If unable to find the Lease Rate Factor levels throw the error ..
9274: IF l_return_status <> OKL_API.G_RET_STS_SUCCESS
9275: THEN
9276: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9277: 'Couldnot found the Lease Rate Factor levels for configuration line ' || assets_rec.name );
9278: -- Show the message and then return back throwing an error!
9275: THEN
9276: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9277: 'Couldnot found the Lease Rate Factor levels for configuration line ' || assets_rec.name );
9278: -- Show the message and then return back throwing an error!
9279: OKL_API.set_message(
9280: p_app_name => G_APP_NAME,
9281: p_msg_name => 'OKL_LP_NO_LRS_LEVELS_FOUND',
9282: p_token1 => 'ITEMCAT',
9283: p_token1_value => assets_rec.name,
9284: p_token2 => 'ITEMTERM',
9285: p_token2_value => quote_rec.term,
9286: p_token3 => 'ITEMEOTPERCENT',
9287: p_token3_value => ROUND(l_eot_percentage,4) );
9288: RAISE OKL_API.G_EXCEPTION_ERROR;
9289: END IF;
9290: -- Apply the adjustment matrix if needed!
9291: l_adj_factor := 0;
9292: IF l_lrs_details.adj_mat_version_id IS NOT NULL
9310: x_msg_count => x_msg_count,
9311: x_msg_data => x_msg_data,
9312: p_okl_ac_rec => l_ac_rec_type,
9313: x_adjustment_factor => l_adj_factor );
9314: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9315: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9316: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9317: RAISE OKL_API.G_EXCEPTION_ERROR;
9318: END IF;
9311: x_msg_data => x_msg_data,
9312: p_okl_ac_rec => l_ac_rec_type,
9313: x_adjustment_factor => l_adj_factor );
9314: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9315: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9316: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9317: RAISE OKL_API.G_EXCEPTION_ERROR;
9318: END IF;
9319: END IF;
9312: p_okl_ac_rec => l_ac_rec_type,
9313: x_adjustment_factor => l_adj_factor );
9314: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9315: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9316: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9317: RAISE OKL_API.G_EXCEPTION_ERROR;
9318: END IF;
9319: END IF;
9320: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9313: x_adjustment_factor => l_adj_factor );
9314: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9315: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9316: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9317: RAISE OKL_API.G_EXCEPTION_ERROR;
9318: END IF;
9319: END IF;
9320: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9321: 'Adjustment Factor ' || l_adj_factor );
9321: 'Adjustment Factor ' || l_adj_factor );
9322: l_months_per_period := okl_stream_generator_pvt.get_months_factor(
9323: p_frequency => l_lrs_details.frq_code,
9324: x_return_status => l_return_status);
9325: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9326: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9327: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9328: RAISE OKL_API.G_EXCEPTION_ERROR;
9329: END IF;
9322: l_months_per_period := okl_stream_generator_pvt.get_months_factor(
9323: p_frequency => l_lrs_details.frq_code,
9324: x_return_status => l_return_status);
9325: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9326: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9327: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9328: RAISE OKL_API.G_EXCEPTION_ERROR;
9329: END IF;
9330: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9323: p_frequency => l_lrs_details.frq_code,
9324: x_return_status => l_return_status);
9325: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9326: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9327: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9328: RAISE OKL_API.G_EXCEPTION_ERROR;
9329: END IF;
9330: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9331: 'Months/Period ' || l_months_per_period );
9324: x_return_status => l_return_status);
9325: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9326: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9327: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9328: RAISE OKL_API.G_EXCEPTION_ERROR;
9329: END IF;
9330: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9331: 'Months/Period ' || l_months_per_period );
9332: l_cash_flow_rec.due_arrears_yn := l_lrs_details.arrears_yn;
9348: p_start_date => quote_rec.expected_start_date,
9349: p_months_after => l_months_after,
9350: x_date => l_cash_flow_det_tbl(cf_index).start_date,
9351: x_return_status => l_return_status);
9352: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9353: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9354: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9355: RAISE OKL_API.G_EXCEPTION_ERROR;
9356: END IF;
9349: p_months_after => l_months_after,
9350: x_date => l_cash_flow_det_tbl(cf_index).start_date,
9351: x_return_status => l_return_status);
9352: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9353: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9354: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9355: RAISE OKL_API.G_EXCEPTION_ERROR;
9356: END IF;
9357: -- Add to the l_months_after
9350: x_date => l_cash_flow_det_tbl(cf_index).start_date,
9351: x_return_status => l_return_status);
9352: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9353: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9354: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9355: RAISE OKL_API.G_EXCEPTION_ERROR;
9356: END IF;
9357: -- Add to the l_months_after
9358: l_months_after := l_months_after + ( l_lrs_levels(i).periods * l_months_per_period );
9351: x_return_status => l_return_status);
9352: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9353: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9354: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9355: RAISE OKL_API.G_EXCEPTION_ERROR;
9356: END IF;
9357: -- Add to the l_months_after
9358: l_months_after := l_months_after + ( l_lrs_levels(i).periods * l_months_per_period );
9359: -- Increment the index
9370: l_lease_rate_factor || ' | ' || l_target_frequency || ' | ' || l_target_arrears_yn );
9371: l_months_per_period := okl_stream_generator_pvt.get_months_factor(
9372: p_frequency => l_target_frequency,
9373: x_return_status => l_return_status);
9374: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9375: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9376: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9377: RAISE OKL_API.G_EXCEPTION_ERROR;
9378: END IF;
9371: l_months_per_period := okl_stream_generator_pvt.get_months_factor(
9372: p_frequency => l_target_frequency,
9373: x_return_status => l_return_status);
9374: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9375: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9376: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9377: RAISE OKL_API.G_EXCEPTION_ERROR;
9378: END IF;
9379: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9372: p_frequency => l_target_frequency,
9373: x_return_status => l_return_status);
9374: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9375: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9376: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9377: RAISE OKL_API.G_EXCEPTION_ERROR;
9378: END IF;
9379: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9380: 'Months/Period ' || l_months_per_period );
9373: x_return_status => l_return_status);
9374: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9375: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9376: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9377: RAISE OKL_API.G_EXCEPTION_ERROR;
9378: END IF;
9379: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9380: 'Months/Period ' || l_months_per_period );
9381: l_cash_flow_rec.due_arrears_yn := l_target_arrears_yn;
9387: IF trunc(l_cash_flow_det_tbl(1).number_of_periods) <>
9388: l_cash_flow_det_tbl(1).number_of_periods
9389: THEN
9390: -- Throw the message saying that Periods have to be whole number
9391: OKL_API.SET_MESSAGE (
9392: p_app_name => G_APP_NAME,
9393: p_msg_name => 'OKL_LEVEL_PERIOD_FRACTION');
9394: RAISE OKL_API.G_EXCEPTION_ERROR;
9395: END IF;
9390: -- Throw the message saying that Periods have to be whole number
9391: OKL_API.SET_MESSAGE (
9392: p_app_name => G_APP_NAME,
9393: p_msg_name => 'OKL_LEVEL_PERIOD_FRACTION');
9394: RAISE OKL_API.G_EXCEPTION_ERROR;
9395: END IF;
9396: -- FORMULA: Periodic Amt = User Entered Rate Factor * ( C - NVL( S+D+T, 0) )
9397: l_cash_flow_det_tbl(1).amount := l_lease_rate_factor *
9398: ( lx_pricing_parameter_rec.financed_amount - NVL(lx_pricing_parameter_rec.subsidy +
9417: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9418: 'After gen_so_cf_strms ' || l_return_status);
9419: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9420: 'Number of Stream Elements generated ' || l_cash_inflows.COUNT);
9421: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9422: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9423: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9424: RAISE OKL_API.G_EXCEPTION_ERROR;
9425: END IF;
9418: 'After gen_so_cf_strms ' || l_return_status);
9419: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9420: 'Number of Stream Elements generated ' || l_cash_inflows.COUNT);
9421: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9422: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9423: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9424: RAISE OKL_API.G_EXCEPTION_ERROR;
9425: END IF;
9426: ELSE
9419: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9420: 'Number of Stream Elements generated ' || l_cash_inflows.COUNT);
9421: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9422: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9423: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9424: RAISE OKL_API.G_EXCEPTION_ERROR;
9425: END IF;
9426: ELSE
9427: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9420: 'Number of Stream Elements generated ' || l_cash_inflows.COUNT);
9421: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9422: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9423: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9424: RAISE OKL_API.G_EXCEPTION_ERROR;
9425: END IF;
9426: ELSE
9427: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9428: 'No Cash flow and Cash flow Levels obtained ! ' );
9425: END IF;
9426: ELSE
9427: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9428: 'No Cash flow and Cash flow Levels obtained ! ' );
9429: OKL_API.SET_MESSAGE (
9430: p_app_name => G_APP_NAME,
9431: p_msg_name => 'OKL_LLA_PMT_SELECT');
9432: RAISE OKL_API.G_EXCEPTION_ERROR;
9433: END IF; -- IF l_cash_flow_det_tbl.COUNT > 0
9428: 'No Cash flow and Cash flow Levels obtained ! ' );
9429: OKL_API.SET_MESSAGE (
9430: p_app_name => G_APP_NAME,
9431: p_msg_name => 'OKL_LLA_PMT_SELECT');
9432: RAISE OKL_API.G_EXCEPTION_ERROR;
9433: END IF; -- IF l_cash_flow_det_tbl.COUNT > 0
9434: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9435: 'After building the Residual Table Count ' || l_residual_inflows.COUNT );
9436: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9446: x_ppy => l_cf_ppy,
9447: x_return_status => l_return_status );
9448: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9449: 'After get_dpp_ppy ' || l_return_status );
9450: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9451: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9452: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9453: RAISE OKL_API.G_EXCEPTION_ERROR;
9454: END IF;
9447: x_return_status => l_return_status );
9448: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9449: 'After get_dpp_ppy ' || l_return_status );
9450: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9451: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9452: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9453: RAISE OKL_API.G_EXCEPTION_ERROR;
9454: END IF;
9455: IF lx_pricing_parameter_rec.residual_inflows.COUNT > 0
9448: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9449: 'After get_dpp_ppy ' || l_return_status );
9450: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9451: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9452: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9453: RAISE OKL_API.G_EXCEPTION_ERROR;
9454: END IF;
9455: IF lx_pricing_parameter_rec.residual_inflows.COUNT > 0
9456: THEN
9449: 'After get_dpp_ppy ' || l_return_status );
9450: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9451: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9452: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9453: RAISE OKL_API.G_EXCEPTION_ERROR;
9454: END IF;
9455: IF lx_pricing_parameter_rec.residual_inflows.COUNT > 0
9456: THEN
9457: FOR r_in IN lx_pricing_parameter_rec.residual_inflows.FIRST ..
9507: 'Financed Amount | Down Payment | Subsidy | Trade in ');
9508: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9509: ROUND(lx_pricing_parameter_rec.financed_amount, 4) || ' | ' || ROUND(lx_pricing_parameter_rec.down_payment, 4) || ' | ' ||
9510: ROUND(lx_pricing_parameter_rec.subsidy, 4) || ' | ' || ROUND(lx_pricing_parameter_rec.trade_in, 4) );
9511: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
9512: RAISE okl_api.g_exception_unexpected_error;
9513: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
9514: RAISE okl_api.g_exception_error;
9515: END IF;
9508: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9509: ROUND(lx_pricing_parameter_rec.financed_amount, 4) || ' | ' || ROUND(lx_pricing_parameter_rec.down_payment, 4) || ' | ' ||
9510: ROUND(lx_pricing_parameter_rec.subsidy, 4) || ' | ' || ROUND(lx_pricing_parameter_rec.trade_in, 4) );
9511: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
9512: RAISE okl_api.g_exception_unexpected_error;
9513: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
9514: RAISE okl_api.g_exception_error;
9515: END IF;
9516: IF l_pricing_method IN ( 'SP', 'SM', 'TR' ) AND
9509: ROUND(lx_pricing_parameter_rec.financed_amount, 4) || ' | ' || ROUND(lx_pricing_parameter_rec.down_payment, 4) || ' | ' ||
9510: ROUND(lx_pricing_parameter_rec.subsidy, 4) || ' | ' || ROUND(lx_pricing_parameter_rec.trade_in, 4) );
9511: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
9512: RAISE okl_api.g_exception_unexpected_error;
9513: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
9514: RAISE okl_api.g_exception_error;
9515: END IF;
9516: IF l_pricing_method IN ( 'SP', 'SM', 'TR' ) AND
9517: x_payment < 0
9510: ROUND(lx_pricing_parameter_rec.subsidy, 4) || ' | ' || ROUND(lx_pricing_parameter_rec.trade_in, 4) );
9511: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
9512: RAISE okl_api.g_exception_unexpected_error;
9513: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
9514: RAISE okl_api.g_exception_error;
9515: END IF;
9516: IF l_pricing_method IN ( 'SP', 'SM', 'TR' ) AND
9517: x_payment < 0
9518: THEN
9521: THEN
9522: OPEN fees_csr(p_qte_id,p_ast_id);
9523: FETCH fees_csr into l_fee_name;
9524: CLOSE fees_csr;
9525: OKL_API.SET_MESSAGE (
9526: p_app_name => G_APP_NAME,
9527: p_msg_name => 'OKL_NEGATIVE_ADJ_AMT_FEE',
9528: p_token1 => 'TYPE',
9529: p_token1_value => 'Payment',
9531: p_token2_value => round(x_payment,2),
9532: p_token3 => 'NAME',
9533: p_token3_value => l_fee_name);
9534: ELSE
9535: OKL_API.SET_MESSAGE (
9536: p_app_name => G_APP_NAME,
9537: p_msg_name => 'OKL_NEGATIVE_ADJ_AMT_ASSET',
9538: p_token1 => 'TYPE',
9539: p_token1_value => 'Payment',
9542: p_token3 => 'NAME',
9543: p_token3_value => l_asset_number);
9544: END IF;
9545: --Bug 5121548 dpsingh end
9546: RAISE okl_api.g_exception_error;
9547: END IF;
9548: IF l_pricing_method = 'SFP'
9549: THEN
9550: l_pricing_method := 'SF'; -- Revert back the pricing method to 'SF'
9617: x_msg_count => x_msg_count,
9618: x_msg_data => x_msg_data);
9619: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9620: ' ----- After deleting the Cash flows for the asset ' || l_return_status );
9621: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
9622: RAISE okl_api.g_exception_unexpected_error;
9623: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
9624: RAISE okl_api.g_exception_error;
9625: END IF;
9618: x_msg_data => x_msg_data);
9619: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9620: ' ----- After deleting the Cash flows for the asset ' || l_return_status );
9621: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
9622: RAISE okl_api.g_exception_unexpected_error;
9623: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
9624: RAISE okl_api.g_exception_error;
9625: END IF;
9626: ELSE
9619: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9620: ' ----- After deleting the Cash flows for the asset ' || l_return_status );
9621: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
9622: RAISE okl_api.g_exception_unexpected_error;
9623: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
9624: RAISE okl_api.g_exception_error;
9625: END IF;
9626: ELSE
9627: FOR t_rec IN c_strm_type (
9620: ' ----- After deleting the Cash flows for the asset ' || l_return_status );
9621: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
9622: RAISE okl_api.g_exception_unexpected_error;
9623: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
9624: RAISE okl_api.g_exception_error;
9625: END IF;
9626: ELSE
9627: FOR t_rec IN c_strm_type (
9628: pdtId => quote_rec.product_id,
9739: p_cashflow_level_tbl => l_cashflow_level_tbl,
9740: x_return_status => l_return_status,
9741: x_msg_count => x_msg_count,
9742: x_msg_data => x_msg_data);
9743: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9744: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9745: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9746: RAISE OKL_API.G_EXCEPTION_ERROR;
9747: END IF;
9740: x_return_status => l_return_status,
9741: x_msg_count => x_msg_count,
9742: x_msg_data => x_msg_data);
9743: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9744: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9745: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9746: RAISE OKL_API.G_EXCEPTION_ERROR;
9747: END IF;
9748: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9741: x_msg_count => x_msg_count,
9742: x_msg_data => x_msg_data);
9743: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9744: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9745: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9746: RAISE OKL_API.G_EXCEPTION_ERROR;
9747: END IF;
9748: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9749: 'After calling create_cash_flow ' || l_return_status);
9742: x_msg_data => x_msg_data);
9743: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9744: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9745: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9746: RAISE OKL_API.G_EXCEPTION_ERROR;
9747: END IF;
9748: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9749: 'After calling create_cash_flow ' || l_return_status);
9750: END IF;
9802: x_msg_count => x_msg_count,
9803: x_msg_data => x_msg_data);
9804: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9805: 'After OKL_LEASE_QUOTE_ASSET_PVT.update_asset ' || l_return_status );
9806: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9807: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9808: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9809: RAISE OKL_API.G_EXCEPTION_ERROR;
9810: END IF;
9803: x_msg_data => x_msg_data);
9804: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9805: 'After OKL_LEASE_QUOTE_ASSET_PVT.update_asset ' || l_return_status );
9806: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9807: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9808: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9809: RAISE OKL_API.G_EXCEPTION_ERROR;
9810: END IF;
9811: ELSE
9804: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9805: 'After OKL_LEASE_QUOTE_ASSET_PVT.update_asset ' || l_return_status );
9806: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9807: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9808: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9809: RAISE OKL_API.G_EXCEPTION_ERROR;
9810: END IF;
9811: ELSE
9812: -- Do Nothing
9805: 'After OKL_LEASE_QUOTE_ASSET_PVT.update_asset ' || l_return_status );
9806: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9807: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9808: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9809: RAISE OKL_API.G_EXCEPTION_ERROR;
9810: END IF;
9811: ELSE
9812: -- Do Nothing
9813: NULL;
9841: l_adj_type := 'Subsidy';
9842: END IF;
9843: IF l_ass_adj_tbl(1).VALUE < 0 THEN
9844: --Bug 5121548 dpsingh start
9845: OKL_API.SET_MESSAGE (
9846: p_app_name => G_APP_NAME,
9847: p_msg_name => 'OKL_NEGATIVE_ADJ_AMT_ASSET',
9848: p_token1 => 'TYPE',
9849: p_token1_value => l_adj_type,
9851: p_token2_value => round(l_ass_adj_tbl(1).VALUE, 2),
9852: p_token3 => 'NAME',
9853: p_token3_value => l_asset_number);
9854: --Bug 5121548 dpsingh end
9855: RAISE okl_api.g_exception_error;
9856: END IF;
9857: okl_lease_quote_asset_pvt.create_adjustment(
9858: p_api_version => p_api_version,
9859: p_init_msg_list => p_init_msg_list,
9863: x_msg_count => x_msg_count,
9864: x_msg_data => x_msg_data );
9865: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9866: 'After okl_lease_quote.asset.create_adjustment ' || l_return_status);
9867: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
9868: RAISE okl_api.g_exception_unexpected_error;
9869: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
9870: RAISE okl_api.g_exception_error;
9871: END IF;
9864: x_msg_data => x_msg_data );
9865: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9866: 'After okl_lease_quote.asset.create_adjustment ' || l_return_status);
9867: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
9868: RAISE okl_api.g_exception_unexpected_error;
9869: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
9870: RAISE okl_api.g_exception_error;
9871: END IF;
9872: END IF; -- IF quote_rec.pricing_method .....
9865: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
9866: 'After okl_lease_quote.asset.create_adjustment ' || l_return_status);
9867: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
9868: RAISE okl_api.g_exception_unexpected_error;
9869: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
9870: RAISE okl_api.g_exception_error;
9871: END IF;
9872: END IF; -- IF quote_rec.pricing_method .....
9873: -- Actual logic Ends here
9866: 'After okl_lease_quote.asset.create_adjustment ' || l_return_status);
9867: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
9868: RAISE okl_api.g_exception_unexpected_error;
9869: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
9870: RAISE okl_api.g_exception_error;
9871: END IF;
9872: END IF; -- IF quote_rec.pricing_method .....
9873: -- Actual logic Ends here
9874: x_pricing_parameter_rec := lx_pricing_parameter_rec;
9872: END IF; -- IF quote_rec.pricing_method .....
9873: -- Actual logic Ends here
9874: x_pricing_parameter_rec := lx_pricing_parameter_rec;
9875: x_return_status := l_return_status;
9876: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
9877: x_msg_data => x_msg_data);
9878: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
9879: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_name) );
9880: EXCEPTION
9877: x_msg_data => x_msg_data);
9878: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
9879: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_name) );
9880: EXCEPTION
9881: WHEN OKL_API.G_EXCEPTION_ERROR THEN
9882: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9883: p_api_name => l_api_name,
9884: p_pkg_name => G_PKG_NAME,
9885: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
9878: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
9879: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_name) );
9880: EXCEPTION
9881: WHEN OKL_API.G_EXCEPTION_ERROR THEN
9882: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9883: p_api_name => l_api_name,
9884: p_pkg_name => G_PKG_NAME,
9885: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
9886: x_msg_count => x_msg_count,
9881: WHEN OKL_API.G_EXCEPTION_ERROR THEN
9882: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9883: p_api_name => l_api_name,
9884: p_pkg_name => G_PKG_NAME,
9885: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
9886: x_msg_count => x_msg_count,
9887: x_msg_data => x_msg_data,
9888: p_api_type => g_api_type);
9889: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9885: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
9886: x_msg_count => x_msg_count,
9887: x_msg_data => x_msg_data,
9888: p_api_type => g_api_type);
9889: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9890: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9891: p_api_name => l_api_name,
9892: p_pkg_name => G_PKG_NAME,
9893: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
9886: x_msg_count => x_msg_count,
9887: x_msg_data => x_msg_data,
9888: p_api_type => g_api_type);
9889: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9890: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9891: p_api_name => l_api_name,
9892: p_pkg_name => G_PKG_NAME,
9893: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
9894: x_msg_count => x_msg_count,
9889: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9890: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9891: p_api_name => l_api_name,
9892: p_pkg_name => G_PKG_NAME,
9893: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
9894: x_msg_count => x_msg_count,
9895: x_msg_data => x_msg_data,
9896: p_api_type => g_api_type);
9897: WHEN OTHERS THEN
9894: x_msg_count => x_msg_count,
9895: x_msg_data => x_msg_data,
9896: p_api_type => g_api_type);
9897: WHEN OTHERS THEN
9898: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9899: p_api_name => l_api_name,
9900: p_pkg_name => G_PKG_NAME,
9901: p_exc_name => 'OTHERS',
9902: x_msg_count => x_msg_count,
9932: l_return_status VARCHAR2(1);
9933: l_ret_value BOOLEAN;
9934: BEGIN
9935:
9936: l_return_status := OKL_API.G_RET_STS_SUCCESS;
9937: l_ret_value := FALSE;
9938: IF p_lq_line_level_pricing = 'Y' AND
9939: p_lq_struct_pricing IS NULL AND
9940: p_lq_srt_id IS NULL
9993: END IF;
9994: x_return_status := l_return_status;
9995: return l_ret_value;
9996: EXCEPTION
9997: WHEN OKL_API.G_EXCEPTION_ERROR
9998: THEN
9999: x_return_status := G_RET_STS_ERROR;
10000: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR
10001: THEN
9996: EXCEPTION
9997: WHEN OKL_API.G_EXCEPTION_ERROR
9998: THEN
9999: x_return_status := G_RET_STS_ERROR;
10000: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR
10001: THEN
10002: x_return_status := G_RET_STS_UNEXP_ERROR;
10003: WHEN OTHERS
10004: THEN
10001: THEN
10002: x_return_status := G_RET_STS_UNEXP_ERROR;
10003: WHEN OTHERS
10004: THEN
10005: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
10006: p_msg_name => G_DB_ERROR,
10007: p_token1 => G_PROG_NAME_TOKEN,
10008: p_token1_value => l_api_name,
10009: p_token2 => G_SQLCODE_TOKEN,
10086: is_debug_procedure_on BOOLEAN;
10087: is_debug_statement_on BOOLEAN;
10088: cfl_index NUMBER;
10089: BEGIN
10090: l_return_status := OKL_API.G_RET_STS_SUCCESS;
10091: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
10092: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
10093: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
10094: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
10093: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
10094: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
10095: -- check for logging on STATEMENT level
10096: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
10097: l_return_status := OKL_API.START_ACTIVITY(
10098: p_api_name => l_api_name,
10099: p_pkg_name => G_PKG_NAME,
10100: p_init_msg_list => p_init_msg_list,
10101: l_api_version => l_api_version,
10102: p_api_version => p_api_version,
10103: p_api_type => g_api_type,
10104: x_return_status => x_return_status);
10105: --Check if activity started successfully
10106: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10107: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10108: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10109: RAISE OKL_API.G_EXCEPTION_ERROR;
10110: END IF;
10103: p_api_type => g_api_type,
10104: x_return_status => x_return_status);
10105: --Check if activity started successfully
10106: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10107: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10108: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10109: RAISE OKL_API.G_EXCEPTION_ERROR;
10110: END IF;
10111: l_return_status := OKL_API.G_RET_STS_SUCCESS;
10104: x_return_status => x_return_status);
10105: --Check if activity started successfully
10106: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10107: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10108: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10109: RAISE OKL_API.G_EXCEPTION_ERROR;
10110: END IF;
10111: l_return_status := OKL_API.G_RET_STS_SUCCESS;
10112: -- Expense Fees/Miscellaneous Fees will have OUTFLOW_SCHEDULE oty_code cash flows
10105: --Check if activity started successfully
10106: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10107: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10108: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10109: RAISE OKL_API.G_EXCEPTION_ERROR;
10110: END IF;
10111: l_return_status := OKL_API.G_RET_STS_SUCCESS;
10112: -- Expense Fees/Miscellaneous Fees will have OUTFLOW_SCHEDULE oty_code cash flows
10113: IF p_fee_type IN ( 'EXPENSE', 'MISCELLANEOUS' )
10107: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10108: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10109: RAISE OKL_API.G_EXCEPTION_ERROR;
10110: END IF;
10111: l_return_status := OKL_API.G_RET_STS_SUCCESS;
10112: -- Expense Fees/Miscellaneous Fees will have OUTFLOW_SCHEDULE oty_code cash flows
10113: IF p_fee_type IN ( 'EXPENSE', 'MISCELLANEOUS' )
10114: THEN
10115: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
10130: x_outflow_caf_rec.due_arrears_yn := t_rec.due_arrears_yn;
10131: x_outflow_caf_rec.start_date := t_rec.start_date;
10132: x_outflow_caf_rec.number_of_advance_periods := t_rec.number_of_advance_periods;
10133: -- Use l_retun_status as a flag
10134: l_return_status := OKL_API.G_RET_STS_SUCCESS;
10135: END LOOP;
10136: -- Fetch the Cash Flow Levels information only if the Cash Flow is present..
10137: IF l_return_status = OKL_API.G_RET_STS_SUCCESS
10138: THEN
10133: -- Use l_retun_status as a flag
10134: l_return_status := OKL_API.G_RET_STS_SUCCESS;
10135: END LOOP;
10136: -- Fetch the Cash Flow Levels information only if the Cash Flow is present..
10137: IF l_return_status = OKL_API.G_RET_STS_SUCCESS
10138: THEN
10139: cfl_index := 1;
10140: -- Cash Flows exists. So, fetch the Cash Flow Levels
10141: FOR t_rec in cash_flow_levels_csr( x_outflow_caf_rec.caf_id )
10159: -- Regular Periodic Payment
10160: x_outflow_cfl_tbl(cfl_index).is_stub := 'N';
10161: END IF;
10162: -- Use l_retun_status as a flag
10163: l_return_status := OKL_API.G_RET_STS_SUCCESS;
10164: -- Increment i
10165: cfl_index := cfl_index + 1;
10166: END LOOP;
10167: ELSE
10167: ELSE
10168: -- Show an error saying that no cash flow levels found
10169: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
10170: '!!!!! No Cash flow levels obtained for the fee type ' || p_fee_type );
10171: OKL_API.SET_MESSAGE (
10172: p_app_name => G_APP_NAME,
10173: p_msg_name => 'OKL_AM_NO_PYMT_INFO');
10174: RAISE OKL_API.G_EXCEPTION_ERROR;
10175: END IF;
10170: '!!!!! No Cash flow levels obtained for the fee type ' || p_fee_type );
10171: OKL_API.SET_MESSAGE (
10172: p_app_name => G_APP_NAME,
10173: p_msg_name => 'OKL_AM_NO_PYMT_INFO');
10174: RAISE OKL_API.G_EXCEPTION_ERROR;
10175: END IF;
10176: END IF; -- If p_fee_type = 'EXPENSE'/'MISCELLANEOUS'
10177: -- Income Fees/Security Deposit will have PAYMENT_SCHEDULE cash flows
10178: -- Miscellaneous Fees may have an inflow PAYMENT_SCHEDULE ( Not Mandatory for Payment )
10179: IF p_fee_type IN ( 'INCOME', 'SECDEPOSIT', 'MISCELLANEOUS' )
10180: THEN
10181: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
10182: '!!!!! Fetching the Income Cash flows for fee type ' || p_fee_type );
10183: l_return_status := OKL_API.G_RET_STS_ERROR;
10184: FOR t_rec IN lq_cash_flows_csr(
10185: p_id => p_fee_id,
10186: p_cf_source => 'OKL_FEES_B',
10187: p_cft_code => 'PAYMENT_SCHEDULE')
10197: x_inflow_caf_rec.due_arrears_yn := t_rec.due_arrears_yn;
10198: x_inflow_caf_rec.start_date := t_rec.start_date;
10199: x_inflow_caf_rec.number_of_advance_periods := t_rec.number_of_advance_periods;
10200: -- Use l_retun_status as a flag
10201: l_return_status := OKL_API.G_RET_STS_SUCCESS;
10202: END LOOP;
10203: -- Fetch the Cash Flow Levels information only if the Cash Flow is present..
10204: IF l_return_status = OKL_API.G_RET_STS_SUCCESS
10205: THEN
10200: -- Use l_retun_status as a flag
10201: l_return_status := OKL_API.G_RET_STS_SUCCESS;
10202: END LOOP;
10203: -- Fetch the Cash Flow Levels information only if the Cash Flow is present..
10204: IF l_return_status = OKL_API.G_RET_STS_SUCCESS
10205: THEN
10206: cfl_index := 1;
10207: -- Cash Flows exists. So, fetch the Cash Flow Levels
10208: FOR t_rec in cash_flow_levels_csr( x_inflow_caf_rec.caf_id )
10226: -- Regular Periodic Payment
10227: x_inflow_cfl_tbl(cfl_index).is_stub := 'N';
10228: END IF;
10229: -- Use l_retun_status as a flag
10230: l_return_status := OKL_API.G_RET_STS_SUCCESS;
10231: -- Increment i
10232: cfl_index := cfl_index + 1;
10233: END LOOP;
10234: ELSE
10236: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
10237: '!!!!! No Cash flow levels obtained for the fee type ' || p_fee_type );
10238: IF p_fee_type <> 'MISCELLANEOUS'
10239: THEN
10240: OKL_API.SET_MESSAGE (
10241: p_app_name => G_APP_NAME,
10242: p_msg_name => 'OKL_LLA_PMT_SELECT');
10243: RAISE OKL_API.G_EXCEPTION_ERROR;
10244: END IF;
10239: THEN
10240: OKL_API.SET_MESSAGE (
10241: p_app_name => G_APP_NAME,
10242: p_msg_name => 'OKL_LLA_PMT_SELECT');
10243: RAISE OKL_API.G_EXCEPTION_ERROR;
10244: END IF;
10245: END IF;
10246: END IF; -- If p_fee_type = 'INCOME'/'SECDEPOSIT'/'MISCELLANEOUS'
10247: -- Setting up the return variables
10245: END IF;
10246: END IF; -- If p_fee_type = 'INCOME'/'SECDEPOSIT'/'MISCELLANEOUS'
10247: -- Setting up the return variables
10248: x_return_status := l_return_status;
10249: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
10250: x_msg_data => x_msg_data);
10251: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
10252: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
10253: EXCEPTION
10250: x_msg_data => x_msg_data);
10251: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
10252: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
10253: EXCEPTION
10254: WHEN OKL_API.G_EXCEPTION_ERROR THEN
10255: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10256: p_api_name => l_api_name,
10257: p_pkg_name => G_PKG_NAME,
10258: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
10251: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
10252: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
10253: EXCEPTION
10254: WHEN OKL_API.G_EXCEPTION_ERROR THEN
10255: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10256: p_api_name => l_api_name,
10257: p_pkg_name => G_PKG_NAME,
10258: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
10259: x_msg_count => x_msg_count,
10254: WHEN OKL_API.G_EXCEPTION_ERROR THEN
10255: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10256: p_api_name => l_api_name,
10257: p_pkg_name => G_PKG_NAME,
10258: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
10259: x_msg_count => x_msg_count,
10260: x_msg_data => x_msg_data,
10261: p_api_type => g_api_type);
10262: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10258: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
10259: x_msg_count => x_msg_count,
10260: x_msg_data => x_msg_data,
10261: p_api_type => g_api_type);
10262: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10263: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10264: p_api_name => l_api_name,
10265: p_pkg_name => G_PKG_NAME,
10266: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
10259: x_msg_count => x_msg_count,
10260: x_msg_data => x_msg_data,
10261: p_api_type => g_api_type);
10262: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10263: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10264: p_api_name => l_api_name,
10265: p_pkg_name => G_PKG_NAME,
10266: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
10267: x_msg_count => x_msg_count,
10262: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10263: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10264: p_api_name => l_api_name,
10265: p_pkg_name => G_PKG_NAME,
10266: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
10267: x_msg_count => x_msg_count,
10268: x_msg_data => x_msg_data,
10269: p_api_type => g_api_type);
10270: WHEN OTHERS THEN
10267: x_msg_count => x_msg_count,
10268: x_msg_data => x_msg_data,
10269: p_api_type => g_api_type);
10270: WHEN OTHERS THEN
10271: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10272: p_api_name => l_api_name,
10273: p_pkg_name => G_PKG_NAME,
10274: p_exc_name => 'OTHERS',
10275: x_msg_count => x_msg_count,
10353: l_caf_rec OKL_LEASE_QUOTE_CASHFLOW_PVT.cashflow_header_rec_type;
10354: l_cfl_tbl OKL_LEASE_QUOTE_CASHFLOW_PVT.cashflow_level_tbl_type;
10355: l_solved VARCHAR2(30);
10356: BEGIN
10357: l_return_status := OKL_API.G_RET_STS_SUCCESS;
10358: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
10359: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
10360: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
10361: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
10360: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
10361: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
10362: -- check for logging on STATEMENT level
10363: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
10364: l_return_status := OKL_API.START_ACTIVITY(
10365: p_api_name => l_api_name,
10366: p_pkg_name => G_PKG_NAME,
10367: p_init_msg_list => p_init_msg_list,
10368: l_api_version => l_api_version,
10369: p_api_version => p_api_version,
10370: p_api_type => g_api_type,
10371: x_return_status => x_return_status);
10372: --Check if activity started successfully
10373: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10374: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10375: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10376: RAISE OKL_API.G_EXCEPTION_ERROR;
10377: END IF;
10370: p_api_type => g_api_type,
10371: x_return_status => x_return_status);
10372: --Check if activity started successfully
10373: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10374: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10375: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10376: RAISE OKL_API.G_EXCEPTION_ERROR;
10377: END IF;
10378: -- Actual logic starts here
10371: x_return_status => x_return_status);
10372: --Check if activity started successfully
10373: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10374: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10375: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10376: RAISE OKL_API.G_EXCEPTION_ERROR;
10377: END IF;
10378: -- Actual logic starts here
10379: l_first := TRUE;
10372: --Check if activity started successfully
10373: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10374: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10375: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10376: RAISE OKL_API.G_EXCEPTION_ERROR;
10377: END IF;
10378: -- Actual logic starts here
10379: l_first := TRUE;
10380: l_solved := 'YES';
10438: x_caf_rec := l_caf_rec;
10439: x_cfl_tbl := l_cfl_tbl;
10440: x_solved := l_solved;
10441: x_return_status := l_return_status;
10442: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
10443: x_msg_data => x_msg_data);
10444: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
10445: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
10446: EXCEPTION
10443: x_msg_data => x_msg_data);
10444: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
10445: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
10446: EXCEPTION
10447: WHEN OKL_API.G_EXCEPTION_ERROR THEN
10448: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10449: p_api_name => l_api_name,
10450: p_pkg_name => G_PKG_NAME,
10451: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
10444: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
10445: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_version) );
10446: EXCEPTION
10447: WHEN OKL_API.G_EXCEPTION_ERROR THEN
10448: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10449: p_api_name => l_api_name,
10450: p_pkg_name => G_PKG_NAME,
10451: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
10452: x_msg_count => x_msg_count,
10447: WHEN OKL_API.G_EXCEPTION_ERROR THEN
10448: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10449: p_api_name => l_api_name,
10450: p_pkg_name => G_PKG_NAME,
10451: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
10452: x_msg_count => x_msg_count,
10453: x_msg_data => x_msg_data,
10454: p_api_type => g_api_type);
10455: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10451: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
10452: x_msg_count => x_msg_count,
10453: x_msg_data => x_msg_data,
10454: p_api_type => g_api_type);
10455: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10456: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10457: p_api_name => l_api_name,
10458: p_pkg_name => G_PKG_NAME,
10459: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
10452: x_msg_count => x_msg_count,
10453: x_msg_data => x_msg_data,
10454: p_api_type => g_api_type);
10455: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10456: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10457: p_api_name => l_api_name,
10458: p_pkg_name => G_PKG_NAME,
10459: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
10460: x_msg_count => x_msg_count,
10455: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10456: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10457: p_api_name => l_api_name,
10458: p_pkg_name => G_PKG_NAME,
10459: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
10460: x_msg_count => x_msg_count,
10461: x_msg_data => x_msg_data,
10462: p_api_type => g_api_type);
10463: WHEN OTHERS THEN
10460: x_msg_count => x_msg_count,
10461: x_msg_data => x_msg_data,
10462: p_api_type => g_api_type);
10463: WHEN OTHERS THEN
10464: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10465: p_api_name => l_api_name,
10466: p_pkg_name => G_PKG_NAME,
10467: p_exc_name => 'OTHERS',
10468: x_msg_count => x_msg_count,
10803: -- Bug 6622178 : Start
10804: l_disp_sf_msg BOOLEAN;
10805: -- Bug 6622178 : End
10806: BEGIN
10807: l_return_status := OKL_API.G_RET_STS_SUCCESS;
10808: l_debug_enabled := OKL_DEBUG_PUB.check_log_enabled;
10809: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
10810: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
10811: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
10809: is_debug_procedure_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_PROCEDURE);
10810: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
10811: 'begin debug OKLRPIUB.pls call '|| lower(l_api_name));
10812: is_debug_statement_on := OKL_DEBUG_PUB.check_log_on(l_module,FND_LOG.LEVEL_STATEMENT);
10813: l_return_status := OKL_API.START_ACTIVITY(
10814: p_api_name => l_api_name,
10815: p_pkg_name => G_PKG_NAME,
10816: p_init_msg_list => p_init_msg_list,
10817: l_api_version => l_api_version,
10817: l_api_version => l_api_version,
10818: p_api_version => p_api_version,
10819: p_api_type => g_api_type,
10820: x_return_status => l_return_status);
10821: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10822: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10823: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10824: RAISE OKL_API.G_EXCEPTION_ERROR;
10825: END IF;
10818: p_api_version => p_api_version,
10819: p_api_type => g_api_type,
10820: x_return_status => l_return_status);
10821: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10822: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10823: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10824: RAISE OKL_API.G_EXCEPTION_ERROR;
10825: END IF;
10826:
10819: p_api_type => g_api_type,
10820: x_return_status => l_return_status);
10821: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10822: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10823: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10824: RAISE OKL_API.G_EXCEPTION_ERROR;
10825: END IF;
10826:
10827: --Bug 5884825 PAGARG start
10820: x_return_status => l_return_status);
10821: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10822: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10823: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10824: RAISE OKL_API.G_EXCEPTION_ERROR;
10825: END IF;
10826:
10827: --Bug 5884825 PAGARG start
10828: OPEN product_name_csr(p_qte_id);
10833: -- Fetch the Lease Quote Header Details !
10834: OPEN quote_csr(p_qte_id);
10835: FETCH quote_csr INTO quote_rec;
10836: IF (quote_csr%NOTFOUND) THEN
10837: RAISE okl_api.g_exception_unexpected_error;
10838: END IF;
10839: CLOSE quote_csr;
10840: IF quote_rec.parent_object_code = 'LEASEAPP' THEN
10841: l_quote_type_code := 'LA';
10853: p_start_date => quote_rec.expected_start_date,
10854: p_months_after => quote_rec.term,
10855: x_date => l_eot_date,
10856: x_return_status => l_return_status);
10857: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10858: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10859: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10860: RAISE OKL_API.G_EXCEPTION_ERROR;
10861: END IF;
10854: p_months_after => quote_rec.term,
10855: x_date => l_eot_date,
10856: x_return_status => l_return_status);
10857: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10858: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10859: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10860: RAISE OKL_API.G_EXCEPTION_ERROR;
10861: END IF;
10862: l_eot_date := l_eot_date - 1;
10855: x_date => l_eot_date,
10856: x_return_status => l_return_status);
10857: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10858: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10859: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10860: RAISE OKL_API.G_EXCEPTION_ERROR;
10861: END IF;
10862: l_eot_date := l_eot_date - 1;
10863: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
10856: x_return_status => l_return_status);
10857: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10858: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10859: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10860: RAISE OKL_API.G_EXCEPTION_ERROR;
10861: END IF;
10862: l_eot_date := l_eot_date - 1;
10863: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
10864: 'Effective To of the LQ ' || l_eot_date );
10925: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
10926: 'After get_lq_cash_flows ' || l_return_status);
10927: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
10928: 'No. of Cash Flow Levels ' || l_lq_cash_flow_det_tbl.COUNT );
10929: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10930: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10931: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10932: RAISE OKL_API.G_EXCEPTION_ERROR;
10933: END IF;
10926: 'After get_lq_cash_flows ' || l_return_status);
10927: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
10928: 'No. of Cash Flow Levels ' || l_lq_cash_flow_det_tbl.COUNT );
10929: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10930: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10931: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10932: RAISE OKL_API.G_EXCEPTION_ERROR;
10933: END IF;
10934: l_cfo_exists_at_lq := 'NO';
10927: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
10928: 'No. of Cash Flow Levels ' || l_lq_cash_flow_det_tbl.COUNT );
10929: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10930: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10931: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10932: RAISE OKL_API.G_EXCEPTION_ERROR;
10933: END IF;
10934: l_cfo_exists_at_lq := 'NO';
10935: FOR t_rec IN check_cfo_exists_csr(
10928: 'No. of Cash Flow Levels ' || l_lq_cash_flow_det_tbl.COUNT );
10929: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10930: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10931: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10932: RAISE OKL_API.G_EXCEPTION_ERROR;
10933: END IF;
10934: l_cfo_exists_at_lq := 'NO';
10935: FOR t_rec IN check_cfo_exists_csr(
10936: p_oty_code => 'LEASE_QUOTE',
11019: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11020: 'Return Status | l_days_in_month | l_days_in_year | l_day_count_method ' );
11021: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11022: l_return_status || ' | ' || l_days_in_month || ' | ' || l_days_in_year || ' | ' || l_day_count_method );
11023: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11024: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11025: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11026: --Bug 5884825 PAGARG start
11027: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
11020: 'Return Status | l_days_in_month | l_days_in_year | l_day_count_method ' );
11021: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11022: l_return_status || ' | ' || l_days_in_month || ' | ' || l_days_in_year || ' | ' || l_day_count_method );
11023: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11024: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11025: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11026: --Bug 5884825 PAGARG start
11027: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
11028: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
11021: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11022: l_return_status || ' | ' || l_days_in_month || ' | ' || l_days_in_year || ' | ' || l_day_count_method );
11023: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11024: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11025: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11026: --Bug 5884825 PAGARG start
11027: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
11028: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
11029: p_token1 => 'PRODUCT_NAME',
11023: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11024: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11025: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11026: --Bug 5884825 PAGARG start
11027: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
11028: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
11029: p_token1 => 'PRODUCT_NAME',
11030: p_token1_value => l_product_name);
11031: --Bug 5884825 PAGARG end
11028: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
11029: p_token1 => 'PRODUCT_NAME',
11030: p_token1_value => l_product_name);
11031: --Bug 5884825 PAGARG end
11032: RAISE OKL_API.G_EXCEPTION_ERROR;
11033: END IF;
11034: -- Generate the Streams for the payment at the Quote Level !
11035: IF l_lq_cash_flow_det_tbl IS NOT NULL AND
11036: l_lq_cash_flow_det_tbl.COUNT > 0
11048: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11049: 'After gen_so_cf_strms ' || l_return_status);
11050: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11051: 'Number of Stream Elements generated ' || l_lq_cash_inflows.COUNT);
11052: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11053: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11054: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11055: RAISE OKL_API.G_EXCEPTION_ERROR;
11056: END IF;
11049: 'After gen_so_cf_strms ' || l_return_status);
11050: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11051: 'Number of Stream Elements generated ' || l_lq_cash_inflows.COUNT);
11052: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11053: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11054: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11055: RAISE OKL_API.G_EXCEPTION_ERROR;
11056: END IF;
11057: -- Get the DPP and PPY inorder to populate for the Residuals Table
11050: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11051: 'Number of Stream Elements generated ' || l_lq_cash_inflows.COUNT);
11052: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11053: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11054: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11055: RAISE OKL_API.G_EXCEPTION_ERROR;
11056: END IF;
11057: -- Get the DPP and PPY inorder to populate for the Residuals Table
11058: get_dpp_ppy(
11051: 'Number of Stream Elements generated ' || l_lq_cash_inflows.COUNT);
11052: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11053: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11054: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11055: RAISE OKL_API.G_EXCEPTION_ERROR;
11056: END IF;
11057: -- Get the DPP and PPY inorder to populate for the Residuals Table
11058: get_dpp_ppy(
11059: p_frequency => l_lq_cash_flow_det_tbl(l_lq_cash_flow_det_tbl.FIRST).fqy_code,
11061: x_ppy => l_cf_ppy,
11062: x_return_status => l_return_status );
11063: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11064: 'After get_dpp_ppy ' || l_return_status );
11065: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11066: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11067: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11068: RAISE OKL_API.G_EXCEPTION_ERROR;
11069: END IF;
11062: x_return_status => l_return_status );
11063: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11064: 'After get_dpp_ppy ' || l_return_status );
11065: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11066: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11067: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11068: RAISE OKL_API.G_EXCEPTION_ERROR;
11069: END IF;
11070: ELSE
11063: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11064: 'After get_dpp_ppy ' || l_return_status );
11065: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11066: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11067: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11068: RAISE OKL_API.G_EXCEPTION_ERROR;
11069: END IF;
11070: ELSE
11071: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11064: 'After get_dpp_ppy ' || l_return_status );
11065: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11066: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11067: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11068: RAISE OKL_API.G_EXCEPTION_ERROR;
11069: END IF;
11070: ELSE
11071: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11072: '********** No pricing option picked @ LQ ! *******' );
11111: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11112: 'After is_asset_overriding assets_rec.id =' || assets_rec.ast_id);
11113: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11114: ' l_return_status =' || l_return_status );
11115: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11116: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11117: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11118: RAISE OKL_API.G_EXCEPTION_ERROR;
11119: END IF;
11112: 'After is_asset_overriding assets_rec.id =' || assets_rec.ast_id);
11113: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11114: ' l_return_status =' || l_return_status );
11115: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11116: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11117: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11118: RAISE OKL_API.G_EXCEPTION_ERROR;
11119: END IF;
11120: END IF;
11113: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11114: ' l_return_status =' || l_return_status );
11115: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11116: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11117: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11118: RAISE OKL_API.G_EXCEPTION_ERROR;
11119: END IF;
11120: END IF;
11121: IF l_overridden = FALSE
11114: ' l_return_status =' || l_return_status );
11115: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11116: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11117: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11118: RAISE OKL_API.G_EXCEPTION_ERROR;
11119: END IF;
11120: END IF;
11121: IF l_overridden = FALSE
11122: THEN
11226: p_target_rate => NULL,
11227: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
11228: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11229: 'After price_standard_quote_asset ' || l_return_status );
11230: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11231: RAISE okl_api.g_exception_unexpected_error;
11232: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11233: RAISE okl_api.g_exception_error;
11234: END IF;
11227: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
11228: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11229: 'After price_standard_quote_asset ' || l_return_status );
11230: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11231: RAISE okl_api.g_exception_unexpected_error;
11232: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11233: RAISE okl_api.g_exception_error;
11234: END IF;
11235: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
11228: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11229: 'After price_standard_quote_asset ' || l_return_status );
11230: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11231: RAISE okl_api.g_exception_unexpected_error;
11232: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11233: RAISE okl_api.g_exception_error;
11234: END IF;
11235: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
11236: -- Increment the pp_index
11229: 'After price_standard_quote_asset ' || l_return_status );
11230: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11231: RAISE okl_api.g_exception_unexpected_error;
11232: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11233: RAISE okl_api.g_exception_error;
11234: END IF;
11235: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
11236: -- Increment the pp_index
11237: pp_index := pp_index + 1;
11263: px_iir => x_iir,
11264: x_payment => x_payment);
11265: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11266: 'After compute_iir ' || l_return_status );
11267: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11268: RAISE okl_api.g_exception_unexpected_error;
11269: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11270: RAISE okl_api.g_exception_error;
11271: END IF;
11264: x_payment => x_payment);
11265: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11266: 'After compute_iir ' || l_return_status );
11267: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11268: RAISE okl_api.g_exception_unexpected_error;
11269: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11270: RAISE okl_api.g_exception_error;
11271: END IF;
11272: IF x_payment < 0
11265: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11266: 'After compute_iir ' || l_return_status );
11267: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11268: RAISE okl_api.g_exception_unexpected_error;
11269: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11270: RAISE okl_api.g_exception_error;
11271: END IF;
11272: IF x_payment < 0
11273: THEN
11266: 'After compute_iir ' || l_return_status );
11267: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11268: RAISE okl_api.g_exception_unexpected_error;
11269: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11270: RAISE okl_api.g_exception_error;
11271: END IF;
11272: IF x_payment < 0
11273: THEN
11274: OKL_API.SET_MESSAGE (
11270: RAISE okl_api.g_exception_error;
11271: END IF;
11272: IF x_payment < 0
11273: THEN
11274: OKL_API.SET_MESSAGE (
11275: p_app_name => G_APP_NAME,
11276: p_msg_name => 'OKL_NEGATIVE_ADJ_AMT',
11277: p_token1 => 'TYPE',
11278: p_token1_value => 'Payment',
11277: p_token1 => 'TYPE',
11278: p_token1_value => 'Payment',
11279: p_token2 => 'AMOUNT',
11280: p_token2_value => round(x_payment,2) );
11281: RAISE okl_api.g_exception_error;
11282: END IF;
11283: -- Now, we need to populate back the Payment Amount back
11284: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11285: '***** **** Updating the stream elements and cash flow with the amount ' || x_payment );
11327: x_msg_count => x_msg_count,
11328: x_msg_data => x_msg_data);
11329: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11330: ' ----- After deleting the Cash flows for the asset ' || l_return_status );
11331: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11332: RAISE okl_api.g_exception_unexpected_error;
11333: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11334: RAISE okl_api.g_exception_error;
11335: END IF;
11328: x_msg_data => x_msg_data);
11329: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11330: ' ----- After deleting the Cash flows for the asset ' || l_return_status );
11331: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11332: RAISE okl_api.g_exception_unexpected_error;
11333: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11334: RAISE okl_api.g_exception_error;
11335: END IF;
11336: END IF;
11329: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11330: ' ----- After deleting the Cash flows for the asset ' || l_return_status );
11331: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11332: RAISE okl_api.g_exception_unexpected_error;
11333: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11334: RAISE okl_api.g_exception_error;
11335: END IF;
11336: END IF;
11337: FOR cfl_index IN l_lq_payment_level_tbl.FIRST .. l_lq_payment_level_tbl.LAST
11330: ' ----- After deleting the Cash flows for the asset ' || l_return_status );
11331: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11332: RAISE okl_api.g_exception_unexpected_error;
11333: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11334: RAISE okl_api.g_exception_error;
11335: END IF;
11336: END IF;
11337: FOR cfl_index IN l_lq_payment_level_tbl.FIRST .. l_lq_payment_level_tbl.LAST
11338: LOOP
11350: x_msg_count => x_msg_count,
11351: x_msg_data => x_msg_data);
11352: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11353: 'After update_cashflow call ' || l_Return_Status );
11354: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11355: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11356: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11357: RAISE OKL_API.G_EXCEPTION_ERROR;
11358: END IF;
11351: x_msg_data => x_msg_data);
11352: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11353: 'After update_cashflow call ' || l_Return_Status );
11354: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11355: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11356: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11357: RAISE OKL_API.G_EXCEPTION_ERROR;
11358: END IF;
11359: -- pp_index is an post-assigned incremented index!
11352: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11353: 'After update_cashflow call ' || l_Return_Status );
11354: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11355: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11356: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11357: RAISE OKL_API.G_EXCEPTION_ERROR;
11358: END IF;
11359: -- pp_index is an post-assigned incremented index!
11360: l_lq_pricing_parameter_rec.line_type := 'FREE_FORM1';
11353: 'After update_cashflow call ' || l_Return_Status );
11354: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11355: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11356: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11357: RAISE OKL_API.G_EXCEPTION_ERROR;
11358: END IF;
11359: -- pp_index is an post-assigned incremented index!
11360: l_lq_pricing_parameter_rec.line_type := 'FREE_FORM1';
11361: l_pricing_parameter_tbl(pp_index) := l_lq_pricing_parameter_rec;
11383: p_target_rate => NULL,
11384: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
11385: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11386: 'After price_standard_quote_asset ' || l_return_status );
11387: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11388: RAISE okl_api.g_exception_unexpected_error;
11389: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11390: RAISE okl_api.g_exception_error;
11391: END IF;
11384: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
11385: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11386: 'After price_standard_quote_asset ' || l_return_status );
11387: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11388: RAISE okl_api.g_exception_unexpected_error;
11389: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11390: RAISE okl_api.g_exception_error;
11391: END IF;
11392: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
11385: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11386: 'After price_standard_quote_asset ' || l_return_status );
11387: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11388: RAISE okl_api.g_exception_unexpected_error;
11389: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11390: RAISE okl_api.g_exception_error;
11391: END IF;
11392: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
11393: -- Increment the pp_index
11386: 'After price_standard_quote_asset ' || l_return_status );
11387: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11388: RAISE okl_api.g_exception_unexpected_error;
11389: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11390: RAISE okl_api.g_exception_error;
11391: END IF;
11392: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
11393: -- Increment the pp_index
11394: pp_index := pp_index + 1;
11413: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11414: '1/ After Computation of SUBSIDIZED-IIR @ LQ Level ' || l_return_status );
11415: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11416: 'SOLVED FOR IIR ' || x_iir );
11417: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11418: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11419: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11420: RAISE OKL_API.G_EXCEPTION_ERROR;
11421: END IF;
11414: '1/ After Computation of SUBSIDIZED-IIR @ LQ Level ' || l_return_status );
11415: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11416: 'SOLVED FOR IIR ' || x_iir );
11417: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11418: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11419: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11420: RAISE OKL_API.G_EXCEPTION_ERROR;
11421: END IF;
11422: l_subsidized_yields_rec.iir := x_iir;
11415: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11416: 'SOLVED FOR IIR ' || x_iir );
11417: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11418: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11419: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11420: RAISE OKL_API.G_EXCEPTION_ERROR;
11421: END IF;
11422: l_subsidized_yields_rec.iir := x_iir;
11423: l_subsidized_yields_rec.bk_yield := l_subsidized_yields_rec.iir;
11416: 'SOLVED FOR IIR ' || x_iir );
11417: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11418: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11419: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11420: RAISE OKL_API.G_EXCEPTION_ERROR;
11421: END IF;
11422: l_subsidized_yields_rec.iir := x_iir;
11423: l_subsidized_yields_rec.bk_yield := l_subsidized_yields_rec.iir;
11424: -- Populate the Pricing Params with all the other configuration lines
11447: x_inflow_caf_rec => l_fee_inflow_caf_rec,
11448: x_inflow_cfl_tbl => l_fee_inflow_cfl_tbl);
11449: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11450: 'After get_lq_fee_cash_flows ' || l_return_status );
11451: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11452: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11453: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11454: RAISE OKL_API.G_EXCEPTION_ERROR;
11455: END IF;
11448: x_inflow_cfl_tbl => l_fee_inflow_cfl_tbl);
11449: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11450: 'After get_lq_fee_cash_flows ' || l_return_status );
11451: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11452: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11453: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11454: RAISE OKL_API.G_EXCEPTION_ERROR;
11455: END IF;
11456: -- Based on the outflows/Inflows obtained generate the streams
11449: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11450: 'After get_lq_fee_cash_flows ' || l_return_status );
11451: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11452: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11453: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11454: RAISE OKL_API.G_EXCEPTION_ERROR;
11455: END IF;
11456: -- Based on the outflows/Inflows obtained generate the streams
11457: IF l_fee_outflow_cfl_tbl.COUNT > 0
11450: 'After get_lq_fee_cash_flows ' || l_return_status );
11451: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11452: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11453: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11454: RAISE OKL_API.G_EXCEPTION_ERROR;
11455: END IF;
11456: -- Based on the outflows/Inflows obtained generate the streams
11457: IF l_fee_outflow_cfl_tbl.COUNT > 0
11458: THEN
11467: x_msg_data => x_msg_data,
11468: p_cash_flow_rec => l_fee_outflow_caf_rec,
11469: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
11470: x_cash_inflow_strms_tbl => l_cash_inflows);
11471: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11472: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11473: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11474: RAISE OKL_API.G_EXCEPTION_ERROR;
11475: END IF;
11468: p_cash_flow_rec => l_fee_outflow_caf_rec,
11469: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
11470: x_cash_inflow_strms_tbl => l_cash_inflows);
11471: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11472: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11473: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11474: RAISE OKL_API.G_EXCEPTION_ERROR;
11475: END IF;
11476: -- Place the information in the pricing params
11469: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
11470: x_cash_inflow_strms_tbl => l_cash_inflows);
11471: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11472: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11473: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11474: RAISE OKL_API.G_EXCEPTION_ERROR;
11475: END IF;
11476: -- Place the information in the pricing params
11477: pp_index := pp_index + 1;
11470: x_cash_inflow_strms_tbl => l_cash_inflows);
11471: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11472: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11473: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11474: RAISE OKL_API.G_EXCEPTION_ERROR;
11475: END IF;
11476: -- Place the information in the pricing params
11477: pp_index := pp_index + 1;
11478: l_pricing_parameter_tbl(pp_index).line_type := assets_rec.fee_type;
11495: x_msg_data => x_msg_data,
11496: p_cash_flow_rec => l_fee_inflow_caf_rec,
11497: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
11498: x_cash_inflow_strms_tbl => l_cash_inflows);
11499: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11500: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11501: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11502: RAISE OKL_API.G_EXCEPTION_ERROR;
11503: END IF;
11496: p_cash_flow_rec => l_fee_inflow_caf_rec,
11497: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
11498: x_cash_inflow_strms_tbl => l_cash_inflows);
11499: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11500: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11501: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11502: RAISE OKL_API.G_EXCEPTION_ERROR;
11503: END IF;
11504: -- Place the information in the pricing params
11497: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
11498: x_cash_inflow_strms_tbl => l_cash_inflows);
11499: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11500: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11501: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11502: RAISE OKL_API.G_EXCEPTION_ERROR;
11503: END IF;
11504: -- Place the information in the pricing params
11505: pp_index := pp_index + 1;
11498: x_cash_inflow_strms_tbl => l_cash_inflows);
11499: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11500: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11501: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11502: RAISE OKL_API.G_EXCEPTION_ERROR;
11503: END IF;
11504: -- Place the information in the pricing params
11505: pp_index := pp_index + 1;
11506: l_pricing_parameter_tbl(pp_index).line_type := assets_rec.fee_type;
11547: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11548: '1/ After Computation of SUBSIDIZED-IRR @ LQ Level ' || l_return_status );
11549: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11550: 'SOLVED FOR IRR ' || l_subsidized_yields_rec.pre_tax_irr );
11551: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11552: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11553: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11554: RAISE OKL_API.G_EXCEPTION_ERROR;
11555: END IF;
11548: '1/ After Computation of SUBSIDIZED-IRR @ LQ Level ' || l_return_status );
11549: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11550: 'SOLVED FOR IRR ' || l_subsidized_yields_rec.pre_tax_irr );
11551: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11552: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11553: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11554: RAISE OKL_API.G_EXCEPTION_ERROR;
11555: END IF;
11556: -- Calculation of the Non-Subsidized Yields
11549: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11550: 'SOLVED FOR IRR ' || l_subsidized_yields_rec.pre_tax_irr );
11551: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11552: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11553: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11554: RAISE OKL_API.G_EXCEPTION_ERROR;
11555: END IF;
11556: -- Calculation of the Non-Subsidized Yields
11557: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11550: 'SOLVED FOR IRR ' || l_subsidized_yields_rec.pre_tax_irr );
11551: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11552: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11553: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11554: RAISE OKL_API.G_EXCEPTION_ERROR;
11555: END IF;
11556: -- Calculation of the Non-Subsidized Yields
11557: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11558: '!!!!!!!!!! Before Computation of NON-SUBSIDIZED-IIR @ LQ Level !!!!!!!!' );
11579: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11580: '1/ After Computation of NON-SUBSIDIZED-IIR @ LQ Level ' || l_return_status );
11581: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11582: 'SOLVED FOR NON-SUBSIDIZED-IIR ' || l_yields_rec.iir );
11583: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11584: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11585: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11586: RAISE OKL_API.G_EXCEPTION_ERROR;
11587: END IF;
11580: '1/ After Computation of NON-SUBSIDIZED-IIR @ LQ Level ' || l_return_status );
11581: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11582: 'SOLVED FOR NON-SUBSIDIZED-IIR ' || l_yields_rec.iir );
11583: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11584: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11585: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11586: RAISE OKL_API.G_EXCEPTION_ERROR;
11587: END IF;
11588: l_yields_rec.bk_yield := l_yields_rec.iir;
11581: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11582: 'SOLVED FOR NON-SUBSIDIZED-IIR ' || l_yields_rec.iir );
11583: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11584: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11585: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11586: RAISE OKL_API.G_EXCEPTION_ERROR;
11587: END IF;
11588: l_yields_rec.bk_yield := l_yields_rec.iir;
11589: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11582: 'SOLVED FOR NON-SUBSIDIZED-IIR ' || l_yields_rec.iir );
11583: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11584: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11585: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11586: RAISE OKL_API.G_EXCEPTION_ERROR;
11587: END IF;
11588: l_yields_rec.bk_yield := l_yields_rec.iir;
11589: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11590: '1/ Before Computation of NON-SUBSIDIZED-IRR @ LQ Level ' );
11610: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11611: 'After Computation of NON-SUBSIDIZED-IRR @ LQ Level ' || l_return_status );
11612: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11613: 'SOLVED FOR NON-SUBSIDIZED-IRR ' || l_yields_rec.pre_tax_irr );
11614: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11615: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11616: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11617: RAISE OKL_API.G_EXCEPTION_ERROR;
11618: END IF;
11611: 'After Computation of NON-SUBSIDIZED-IRR @ LQ Level ' || l_return_status );
11612: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11613: 'SOLVED FOR NON-SUBSIDIZED-IRR ' || l_yields_rec.pre_tax_irr );
11614: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11615: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11616: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11617: RAISE OKL_API.G_EXCEPTION_ERROR;
11618: END IF;
11619: ELSIF quote_rec.pricing_method = 'SF'
11612: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11613: 'SOLVED FOR NON-SUBSIDIZED-IRR ' || l_yields_rec.pre_tax_irr );
11614: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11615: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11616: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11617: RAISE OKL_API.G_EXCEPTION_ERROR;
11618: END IF;
11619: ELSIF quote_rec.pricing_method = 'SF'
11620: THEN
11613: 'SOLVED FOR NON-SUBSIDIZED-IRR ' || l_yields_rec.pre_tax_irr );
11614: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11615: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11616: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11617: RAISE OKL_API.G_EXCEPTION_ERROR;
11618: END IF;
11619: ELSIF quote_rec.pricing_method = 'SF'
11620: THEN
11621: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11654: p_ast_arrears_yn => assets_rec.target_arrears,
11655: x_return_status => l_return_status);
11656: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11657: ' Pricing method = SF | x_return_status = ' || l_return_status );
11658: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11659: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11660: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11661: RAISE OKL_API.G_EXCEPTION_ERROR;
11662: END IF;
11655: x_return_status => l_return_status);
11656: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11657: ' Pricing method = SF | x_return_status = ' || l_return_status );
11658: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11659: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11660: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11661: RAISE OKL_API.G_EXCEPTION_ERROR;
11662: END IF;
11663: END IF;
11656: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11657: ' Pricing method = SF | x_return_status = ' || l_return_status );
11658: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11659: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11660: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11661: RAISE OKL_API.G_EXCEPTION_ERROR;
11662: END IF;
11663: END IF;
11664: IF l_overridden = FALSE
11657: ' Pricing method = SF | x_return_status = ' || l_return_status );
11658: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11659: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11660: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11661: RAISE OKL_API.G_EXCEPTION_ERROR;
11662: END IF;
11663: END IF;
11664: IF l_overridden = FALSE
11665: THEN
11770: p_target_rate => NULL,
11771: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
11772: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11773: 'PM = SF | After price_Standard_quote_asset l_return_Status = '|| l_return_status );
11774: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11775: RAISE okl_api.g_exception_unexpected_error;
11776: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11777: RAISE okl_api.g_exception_error;
11778: END IF;
11771: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
11772: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11773: 'PM = SF | After price_Standard_quote_asset l_return_Status = '|| l_return_status );
11774: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11775: RAISE okl_api.g_exception_unexpected_error;
11776: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11777: RAISE okl_api.g_exception_error;
11778: END IF;
11779: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
11772: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11773: 'PM = SF | After price_Standard_quote_asset l_return_Status = '|| l_return_status );
11774: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11775: RAISE okl_api.g_exception_unexpected_error;
11776: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11777: RAISE okl_api.g_exception_error;
11778: END IF;
11779: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
11780: -- Increment the pp_index
11773: 'PM = SF | After price_Standard_quote_asset l_return_Status = '|| l_return_status );
11774: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11775: RAISE okl_api.g_exception_unexpected_error;
11776: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11777: RAISE okl_api.g_exception_error;
11778: END IF;
11779: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
11780: -- Increment the pp_index
11781: pp_index := pp_index + 1;
11844: x_payment => x_payment);
11845: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11846: 'Pricing method = SF | After compute_iir l_return_Status = ' || l_return_status || ' Financed Amount = ' ||
11847: round(l_lq_pricing_parameter_rec.financed_amount, 4) );
11848: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11849: RAISE okl_api.g_exception_unexpected_error;
11850: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11851: RAISE okl_api.g_exception_error;
11852: END IF;
11845: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11846: 'Pricing method = SF | After compute_iir l_return_Status = ' || l_return_status || ' Financed Amount = ' ||
11847: round(l_lq_pricing_parameter_rec.financed_amount, 4) );
11848: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11849: RAISE okl_api.g_exception_unexpected_error;
11850: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11851: RAISE okl_api.g_exception_error;
11852: END IF;
11853: IF l_pricing_method = 'SFP'
11846: 'Pricing method = SF | After compute_iir l_return_Status = ' || l_return_status || ' Financed Amount = ' ||
11847: round(l_lq_pricing_parameter_rec.financed_amount, 4) );
11848: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11849: RAISE okl_api.g_exception_unexpected_error;
11850: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11851: RAISE okl_api.g_exception_error;
11852: END IF;
11853: IF l_pricing_method = 'SFP'
11854: THEN
11847: round(l_lq_pricing_parameter_rec.financed_amount, 4) );
11848: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11849: RAISE okl_api.g_exception_unexpected_error;
11850: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11851: RAISE okl_api.g_exception_error;
11852: END IF;
11853: IF l_pricing_method = 'SFP'
11854: THEN
11855: l_pricing_method := 'SF'; -- Revert back the pricing method to 'SF'
11892: p_lq_id => p_qte_id,
11893: p_tot_fin_amount => l_lq_pricing_parameter_rec.financed_amount);
11894: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11895: 'After distribute_fin_amount_lq ' || l_return_status );
11896: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11897: RAISE okl_api.g_exception_unexpected_error;
11898: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11899: RAISE okl_api.g_exception_error;
11900: END IF;
11893: p_tot_fin_amount => l_lq_pricing_parameter_rec.financed_amount);
11894: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11895: 'After distribute_fin_amount_lq ' || l_return_status );
11896: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11897: RAISE okl_api.g_exception_unexpected_error;
11898: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11899: RAISE okl_api.g_exception_error;
11900: END IF;
11901: -- After compute_iir above, the l_lq_pricing_parameter_rec
11894: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11895: 'After distribute_fin_amount_lq ' || l_return_status );
11896: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11897: RAISE okl_api.g_exception_unexpected_error;
11898: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11899: RAISE okl_api.g_exception_error;
11900: END IF;
11901: -- After compute_iir above, the l_lq_pricing_parameter_rec
11902: -- should have been populated with the appropriate values for
11895: 'After distribute_fin_amount_lq ' || l_return_status );
11896: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11897: RAISE okl_api.g_exception_unexpected_error;
11898: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11899: RAISE okl_api.g_exception_error;
11900: END IF;
11901: -- After compute_iir above, the l_lq_pricing_parameter_rec
11902: -- should have been populated with the appropriate values for
11903: -- Financed Amount, Down Payment, Subsidy and all
11922: x_msg_count => x_msg_count,
11923: x_msg_data => x_msg_data);
11924: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11925: ' ----- "SF" ---- After deleting the Cash flows @ LQ Level ' || l_return_status );
11926: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11927: RAISE okl_api.g_exception_unexpected_error;
11928: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11929: RAISE okl_api.g_exception_error;
11930: END IF;
11923: x_msg_data => x_msg_data);
11924: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11925: ' ----- "SF" ---- After deleting the Cash flows @ LQ Level ' || l_return_status );
11926: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11927: RAISE okl_api.g_exception_unexpected_error;
11928: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11929: RAISE okl_api.g_exception_error;
11930: END IF;
11931: END IF;
11924: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11925: ' ----- "SF" ---- After deleting the Cash flows @ LQ Level ' || l_return_status );
11926: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11927: RAISE okl_api.g_exception_unexpected_error;
11928: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11929: RAISE okl_api.g_exception_error;
11930: END IF;
11931: END IF;
11932: FOR cfl_index IN l_lq_payment_level_tbl.FIRST .. l_lq_payment_level_tbl.LAST
11925: ' ----- "SF" ---- After deleting the Cash flows @ LQ Level ' || l_return_status );
11926: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11927: RAISE okl_api.g_exception_unexpected_error;
11928: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11929: RAISE okl_api.g_exception_error;
11930: END IF;
11931: END IF;
11932: FOR cfl_index IN l_lq_payment_level_tbl.FIRST .. l_lq_payment_level_tbl.LAST
11933: LOOP
11949: 'After update_cashflow call ' || l_Return_Status );
11950: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11951: 'After creating the cash flows call ' || 'Sty_id ' || l_lq_payment_header_rec.stream_type_id
11952: || 'Status_code ' || l_lq_payment_header_rec.status_code );
11953: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11954: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11955: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11956: RAISE OKL_API.G_EXCEPTION_ERROR;
11957: END IF;
11950: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11951: 'After creating the cash flows call ' || 'Sty_id ' || l_lq_payment_header_rec.stream_type_id
11952: || 'Status_code ' || l_lq_payment_header_rec.status_code );
11953: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11954: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11955: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11956: RAISE OKL_API.G_EXCEPTION_ERROR;
11957: END IF;
11958: END IF; -- Check if Pricing Option = SRT
11951: 'After creating the cash flows call ' || 'Sty_id ' || l_lq_payment_header_rec.stream_type_id
11952: || 'Status_code ' || l_lq_payment_header_rec.status_code );
11953: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11954: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11955: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11956: RAISE OKL_API.G_EXCEPTION_ERROR;
11957: END IF;
11958: END IF; -- Check if Pricing Option = SRT
11959: END IF;
11952: || 'Status_code ' || l_lq_payment_header_rec.status_code );
11953: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11954: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11955: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11956: RAISE OKL_API.G_EXCEPTION_ERROR;
11957: END IF;
11958: END IF; -- Check if Pricing Option = SRT
11959: END IF;
11960: -- Handling the ROLLOVER AND FINANCED FEES
11977: p_target_rate => NULL,
11978: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
11979: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11980: 'After price_standard_quote_asset ' || l_return_status );
11981: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11982: RAISE okl_api.g_exception_unexpected_error;
11983: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11984: RAISE okl_api.g_exception_error;
11985: END IF;
11978: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
11979: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11980: 'After price_standard_quote_asset ' || l_return_status );
11981: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11982: RAISE okl_api.g_exception_unexpected_error;
11983: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11984: RAISE okl_api.g_exception_error;
11985: END IF;
11986: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
11979: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
11980: 'After price_standard_quote_asset ' || l_return_status );
11981: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11982: RAISE okl_api.g_exception_unexpected_error;
11983: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11984: RAISE okl_api.g_exception_error;
11985: END IF;
11986: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
11987: -- Increment the pp_index
11980: 'After price_standard_quote_asset ' || l_return_status );
11981: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
11982: RAISE okl_api.g_exception_unexpected_error;
11983: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
11984: RAISE okl_api.g_exception_error;
11985: END IF;
11986: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
11987: -- Increment the pp_index
11988: pp_index := pp_index + 1;
12008: px_irr => l_subsidized_yields_rec.iir,
12009: x_payment => x_payment);
12010: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12011: 'After Calculating the Subsidized IIR ' || round(l_subsidized_yields_rec.iir, 4) );
12012: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12013: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12014: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12015: RAISE OKL_API.G_EXCEPTION_ERROR;
12016: END IF;
12009: x_payment => x_payment);
12010: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12011: 'After Calculating the Subsidized IIR ' || round(l_subsidized_yields_rec.iir, 4) );
12012: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12013: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12014: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12015: RAISE OKL_API.G_EXCEPTION_ERROR;
12016: END IF;
12017: -- Store the IIR as the Booking Yield
12010: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12011: 'After Calculating the Subsidized IIR ' || round(l_subsidized_yields_rec.iir, 4) );
12012: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12013: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12014: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12015: RAISE OKL_API.G_EXCEPTION_ERROR;
12016: END IF;
12017: -- Store the IIR as the Booking Yield
12018: l_subsidized_yields_rec.bk_yield := l_subsidized_yields_rec.iir;
12011: 'After Calculating the Subsidized IIR ' || round(l_subsidized_yields_rec.iir, 4) );
12012: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12013: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12014: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12015: RAISE OKL_API.G_EXCEPTION_ERROR;
12016: END IF;
12017: -- Store the IIR as the Booking Yield
12018: l_subsidized_yields_rec.bk_yield := l_subsidized_yields_rec.iir;
12019: -- Now Build the pricing params table for the calculation of the
12044: x_inflow_caf_rec => l_fee_inflow_caf_rec,
12045: x_inflow_cfl_tbl => l_fee_inflow_cfl_tbl);
12046: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12047: 'After get_lq_fee_cash_flows ' || l_return_status );
12048: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12049: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12050: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12051: RAISE OKL_API.G_EXCEPTION_ERROR;
12052: END IF;
12045: x_inflow_cfl_tbl => l_fee_inflow_cfl_tbl);
12046: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12047: 'After get_lq_fee_cash_flows ' || l_return_status );
12048: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12049: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12050: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12051: RAISE OKL_API.G_EXCEPTION_ERROR;
12052: END IF;
12053: -- Based on the outflows/Inflows obtained generate the streams
12046: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12047: 'After get_lq_fee_cash_flows ' || l_return_status );
12048: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12049: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12050: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12051: RAISE OKL_API.G_EXCEPTION_ERROR;
12052: END IF;
12053: -- Based on the outflows/Inflows obtained generate the streams
12054: IF l_fee_outflow_cfl_tbl.COUNT > 0
12047: 'After get_lq_fee_cash_flows ' || l_return_status );
12048: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12049: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12050: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12051: RAISE OKL_API.G_EXCEPTION_ERROR;
12052: END IF;
12053: -- Based on the outflows/Inflows obtained generate the streams
12054: IF l_fee_outflow_cfl_tbl.COUNT > 0
12055: THEN
12064: x_msg_data => x_msg_data,
12065: p_cash_flow_rec => l_fee_outflow_caf_rec,
12066: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
12067: x_cash_inflow_strms_tbl => l_cash_inflows);
12068: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12069: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12070: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12071: RAISE OKL_API.G_EXCEPTION_ERROR;
12072: END IF;
12065: p_cash_flow_rec => l_fee_outflow_caf_rec,
12066: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
12067: x_cash_inflow_strms_tbl => l_cash_inflows);
12068: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12069: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12070: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12071: RAISE OKL_API.G_EXCEPTION_ERROR;
12072: END IF;
12073: -- Place the information in the pricing params
12066: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
12067: x_cash_inflow_strms_tbl => l_cash_inflows);
12068: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12069: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12070: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12071: RAISE OKL_API.G_EXCEPTION_ERROR;
12072: END IF;
12073: -- Place the information in the pricing params
12074: ppfs_index := ppfs_index + 1;
12067: x_cash_inflow_strms_tbl => l_cash_inflows);
12068: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12069: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12070: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12071: RAISE OKL_API.G_EXCEPTION_ERROR;
12072: END IF;
12073: -- Place the information in the pricing params
12074: ppfs_index := ppfs_index + 1;
12075: l_pp_non_sub_irr_tbl(ppfs_index).line_type := assets_rec.fee_type;
12092: x_msg_data => x_msg_data,
12093: p_cash_flow_rec => l_fee_inflow_caf_rec,
12094: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
12095: x_cash_inflow_strms_tbl => l_cash_inflows);
12096: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12097: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12098: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12099: RAISE OKL_API.G_EXCEPTION_ERROR;
12100: END IF;
12093: p_cash_flow_rec => l_fee_inflow_caf_rec,
12094: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
12095: x_cash_inflow_strms_tbl => l_cash_inflows);
12096: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12097: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12098: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12099: RAISE OKL_API.G_EXCEPTION_ERROR;
12100: END IF;
12101: -- Place the information in the pricing params
12094: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
12095: x_cash_inflow_strms_tbl => l_cash_inflows);
12096: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12097: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12098: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12099: RAISE OKL_API.G_EXCEPTION_ERROR;
12100: END IF;
12101: -- Place the information in the pricing params
12102: ppfs_index := ppfs_index + 1;
12095: x_cash_inflow_strms_tbl => l_cash_inflows);
12096: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12097: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12098: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12099: RAISE OKL_API.G_EXCEPTION_ERROR;
12100: END IF;
12101: -- Place the information in the pricing params
12102: ppfs_index := ppfs_index + 1;
12103: l_pp_non_sub_irr_tbl(ppfs_index).line_type := assets_rec.fee_type;
12140: px_irr => l_subsidized_yields_rec.pre_tax_irr,
12141: x_payment => x_payment);
12142: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12143: 'After Calculating the Subsidized IRR ' || round(l_subsidized_yields_rec.pre_tax_irr, 4) );
12144: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12145: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12146: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12147: RAISE OKL_API.G_EXCEPTION_ERROR;
12148: END IF;
12141: x_payment => x_payment);
12142: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12143: 'After Calculating the Subsidized IRR ' || round(l_subsidized_yields_rec.pre_tax_irr, 4) );
12144: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12145: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12146: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12147: RAISE OKL_API.G_EXCEPTION_ERROR;
12148: END IF;
12149: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12142: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12143: 'After Calculating the Subsidized IRR ' || round(l_subsidized_yields_rec.pre_tax_irr, 4) );
12144: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12145: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12146: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12147: RAISE OKL_API.G_EXCEPTION_ERROR;
12148: END IF;
12149: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12150: '!!!!!!!!!!! NON-SUBSIDIZIED YIELDS CALCULATION !!!!!!!!!!!' );
12143: 'After Calculating the Subsidized IRR ' || round(l_subsidized_yields_rec.pre_tax_irr, 4) );
12144: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12145: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12146: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12147: RAISE OKL_API.G_EXCEPTION_ERROR;
12148: END IF;
12149: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12150: '!!!!!!!!!!! NON-SUBSIDIZIED YIELDS CALCULATION !!!!!!!!!!!' );
12151: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12175: px_irr => l_yields_rec.iir,
12176: x_payment => x_payment);
12177: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12178: 'After Calculating the NON-Subsidized IIR ' || round(l_yields_rec.pre_tax_irr, 4) );
12179: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12180: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12181: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12182: RAISE OKL_API.G_EXCEPTION_ERROR;
12183: END IF;
12176: x_payment => x_payment);
12177: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12178: 'After Calculating the NON-Subsidized IIR ' || round(l_yields_rec.pre_tax_irr, 4) );
12179: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12180: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12181: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12182: RAISE OKL_API.G_EXCEPTION_ERROR;
12183: END IF;
12184: l_yields_rec.bk_yield := l_yields_rec.iir;
12177: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12178: 'After Calculating the NON-Subsidized IIR ' || round(l_yields_rec.pre_tax_irr, 4) );
12179: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12180: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12181: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12182: RAISE OKL_API.G_EXCEPTION_ERROR;
12183: END IF;
12184: l_yields_rec.bk_yield := l_yields_rec.iir;
12185: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12178: 'After Calculating the NON-Subsidized IIR ' || round(l_yields_rec.pre_tax_irr, 4) );
12179: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12180: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12181: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12182: RAISE OKL_API.G_EXCEPTION_ERROR;
12183: END IF;
12184: l_yields_rec.bk_yield := l_yields_rec.iir;
12185: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12186: 'Removing subsidy from the l_pp_non_sub_irr_tbl ' );
12209: px_irr => l_yields_rec.pre_tax_irr,
12210: x_payment => x_payment);
12211: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12212: 'After Calculating the NON-Subsidized IRR ' || round(l_yields_rec.pre_tax_irr, 4) );
12213: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12214: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12215: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12216: RAISE OKL_API.G_EXCEPTION_ERROR;
12217: END IF;
12210: x_payment => x_payment);
12211: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12212: 'After Calculating the NON-Subsidized IRR ' || round(l_yields_rec.pre_tax_irr, 4) );
12213: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12214: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12215: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12216: RAISE OKL_API.G_EXCEPTION_ERROR;
12217: END IF;
12218: IF (l_disp_sf_msg) THEN
12211: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12212: 'After Calculating the NON-Subsidized IRR ' || round(l_yields_rec.pre_tax_irr, 4) );
12213: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12214: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12215: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12216: RAISE OKL_API.G_EXCEPTION_ERROR;
12217: END IF;
12218: IF (l_disp_sf_msg) THEN
12219: OKL_API.SET_MESSAGE (
12212: 'After Calculating the NON-Subsidized IRR ' || round(l_yields_rec.pre_tax_irr, 4) );
12213: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12214: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12215: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12216: RAISE OKL_API.G_EXCEPTION_ERROR;
12217: END IF;
12218: IF (l_disp_sf_msg) THEN
12219: OKL_API.SET_MESSAGE (
12220: p_app_name => G_APP_NAME,
12215: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12216: RAISE OKL_API.G_EXCEPTION_ERROR;
12217: END IF;
12218: IF (l_disp_sf_msg) THEN
12219: OKL_API.SET_MESSAGE (
12220: p_app_name => G_APP_NAME,
12221: p_msg_name => 'OKL_UNSUB_RATES_SF');
12222: END IF;
12223: ELSIF quote_rec.pricing_method = 'SI' OR
12254: x_return_status => l_return_status);
12255: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12256: 'PM = SS/SD/ST | After is_asset_overriding | l_return_status = ' ||
12257: l_return_status || ' | Asset ID = ' || assets_rec.ast_id );
12258: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12259: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12260: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12261: RAISE OKL_API.G_EXCEPTION_ERROR;
12262: END IF;
12255: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12256: 'PM = SS/SD/ST | After is_asset_overriding | l_return_status = ' ||
12257: l_return_status || ' | Asset ID = ' || assets_rec.ast_id );
12258: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12259: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12260: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12261: RAISE OKL_API.G_EXCEPTION_ERROR;
12262: END IF;
12263: END IF;
12256: 'PM = SS/SD/ST | After is_asset_overriding | l_return_status = ' ||
12257: l_return_status || ' | Asset ID = ' || assets_rec.ast_id );
12258: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12259: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12260: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12261: RAISE OKL_API.G_EXCEPTION_ERROR;
12262: END IF;
12263: END IF;
12264: IF l_overridden = FALSE
12257: l_return_status || ' | Asset ID = ' || assets_rec.ast_id );
12258: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12259: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12260: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12261: RAISE OKL_API.G_EXCEPTION_ERROR;
12262: END IF;
12263: END IF;
12264: IF l_overridden = FALSE
12265: THEN
12352: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
12353: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12354: 'Pricing method = ' || quote_rec.pricing_method || ' | After price_standard_quote_asset l_return_status = ' || l_return_status ||
12355: ' | assets_rec.ast_id = ' || assets_rec.ast_id );
12356: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12357: RAISE okl_api.g_exception_unexpected_error;
12358: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12359: RAISE okl_api.g_exception_error;
12360: END IF;
12353: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12354: 'Pricing method = ' || quote_rec.pricing_method || ' | After price_standard_quote_asset l_return_status = ' || l_return_status ||
12355: ' | assets_rec.ast_id = ' || assets_rec.ast_id );
12356: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12357: RAISE okl_api.g_exception_unexpected_error;
12358: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12359: RAISE okl_api.g_exception_error;
12360: END IF;
12361: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
12354: 'Pricing method = ' || quote_rec.pricing_method || ' | After price_standard_quote_asset l_return_status = ' || l_return_status ||
12355: ' | assets_rec.ast_id = ' || assets_rec.ast_id );
12356: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12357: RAISE okl_api.g_exception_unexpected_error;
12358: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12359: RAISE okl_api.g_exception_error;
12360: END IF;
12361: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
12362: -- Increment the pp_index
12355: ' | assets_rec.ast_id = ' || assets_rec.ast_id );
12356: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12357: RAISE okl_api.g_exception_unexpected_error;
12358: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12359: RAISE okl_api.g_exception_error;
12360: END IF;
12361: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
12362: -- Increment the pp_index
12363: pp_index := pp_index + 1;
12394: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12395: round(l_lq_pricing_parameter_rec.financed_amount, 4 ) || ' | ' || round(l_lq_pricing_parameter_rec.down_payment, 4)
12396: || ' | ' || round(l_lq_pricing_parameter_rec.subsidy, 4) || ' | ' || round(l_lq_pricing_parameter_rec.trade_in, 4)
12397: || ' | ' || round(l_lq_pricing_parameter_rec.cap_fee_amount, 4));
12398: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12399: RAISE okl_api.g_exception_unexpected_error;
12400: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12401: RAISE okl_api.g_exception_error;
12402: END IF;
12395: round(l_lq_pricing_parameter_rec.financed_amount, 4 ) || ' | ' || round(l_lq_pricing_parameter_rec.down_payment, 4)
12396: || ' | ' || round(l_lq_pricing_parameter_rec.subsidy, 4) || ' | ' || round(l_lq_pricing_parameter_rec.trade_in, 4)
12397: || ' | ' || round(l_lq_pricing_parameter_rec.cap_fee_amount, 4));
12398: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12399: RAISE okl_api.g_exception_unexpected_error;
12400: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12401: RAISE okl_api.g_exception_error;
12402: END IF;
12403: l_an_ass_follow_lq := TRUE; -- Store the flag
12396: || ' | ' || round(l_lq_pricing_parameter_rec.subsidy, 4) || ' | ' || round(l_lq_pricing_parameter_rec.trade_in, 4)
12397: || ' | ' || round(l_lq_pricing_parameter_rec.cap_fee_amount, 4));
12398: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12399: RAISE okl_api.g_exception_unexpected_error;
12400: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12401: RAISE okl_api.g_exception_error;
12402: END IF;
12403: l_an_ass_follow_lq := TRUE; -- Store the flag
12404: l_lq_details_prc_rec := l_lq_pricing_parameter_rec;
12397: || ' | ' || round(l_lq_pricing_parameter_rec.cap_fee_amount, 4));
12398: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12399: RAISE okl_api.g_exception_unexpected_error;
12400: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12401: RAISE okl_api.g_exception_error;
12402: END IF;
12403: l_an_ass_follow_lq := TRUE; -- Store the flag
12404: l_lq_details_prc_rec := l_lq_pricing_parameter_rec;
12405: -- By now, we have solved for the Down Payment/Subsidy/Tradein @ LQ Level !
12451: l_adj_type := 'Subsidy';
12452: END IF;
12453: IF l_ass_adj_tbl(1).VALUE < 0
12454: THEN
12455: OKL_API.SET_MESSAGE (
12456: p_app_name => G_APP_NAME,
12457: p_msg_name => 'OKL_NEGATIVE_ADJ_AMT',
12458: p_token1 => 'TYPE',
12459: p_token1_value => l_adj_type,
12458: p_token1 => 'TYPE',
12459: p_token1_value => l_adj_type,
12460: p_token2 => 'AMOUNT',
12461: p_token2_value => round(l_ass_adj_tbl(1).VALUE,2));
12462: RAISE okl_api.g_exception_error;
12463: END IF;
12464: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12465: 'Asset ID | Cost | Down Payment | Subsidy | Trade In ' );
12466: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12479: x_msg_count => x_msg_count,
12480: x_msg_data => x_msg_data );
12481: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12482: 'After okl_lease_quote.asset.create_adjustment ' || l_return_status);
12483: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12484: RAISE okl_api.g_exception_unexpected_error;
12485: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12486: RAISE okl_api.g_exception_error;
12487: END IF;
12480: x_msg_data => x_msg_data );
12481: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12482: 'After okl_lease_quote.asset.create_adjustment ' || l_return_status);
12483: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12484: RAISE okl_api.g_exception_unexpected_error;
12485: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12486: RAISE okl_api.g_exception_error;
12487: END IF;
12488: END LOOP; -- Loop on the Non-overriding Assets
12481: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12482: 'After okl_lease_quote.asset.create_adjustment ' || l_return_status);
12483: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12484: RAISE okl_api.g_exception_unexpected_error;
12485: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12486: RAISE okl_api.g_exception_error;
12487: END IF;
12488: END LOOP; -- Loop on the Non-overriding Assets
12489: l_lq_pricing_parameter_rec.line_type := 'FREE_FORM1';
12482: 'After okl_lease_quote.asset.create_adjustment ' || l_return_status);
12483: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12484: RAISE okl_api.g_exception_unexpected_error;
12485: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12486: RAISE okl_api.g_exception_error;
12487: END IF;
12488: END LOOP; -- Loop on the Non-overriding Assets
12489: l_lq_pricing_parameter_rec.line_type := 'FREE_FORM1';
12490: -- pp_index is an post-assigned incremented index!
12508: x_msg_count => x_msg_count,
12509: x_msg_data => x_msg_data);
12510: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12511: ' ----- "SD/SS/ST" ---- After deleting the Cash flows @ LQ Level ' || l_return_status );
12512: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12513: RAISE okl_api.g_exception_unexpected_error;
12514: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12515: RAISE okl_api.g_exception_error;
12516: END IF;
12509: x_msg_data => x_msg_data);
12510: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12511: ' ----- "SD/SS/ST" ---- After deleting the Cash flows @ LQ Level ' || l_return_status );
12512: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12513: RAISE okl_api.g_exception_unexpected_error;
12514: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12515: RAISE okl_api.g_exception_error;
12516: END IF;
12517: END IF;
12510: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12511: ' ----- "SD/SS/ST" ---- After deleting the Cash flows @ LQ Level ' || l_return_status );
12512: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12513: RAISE okl_api.g_exception_unexpected_error;
12514: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12515: RAISE okl_api.g_exception_error;
12516: END IF;
12517: END IF;
12518: FOR cfl_index IN l_lq_payment_level_tbl.FIRST .. l_lq_payment_level_tbl.LAST
12511: ' ----- "SD/SS/ST" ---- After deleting the Cash flows @ LQ Level ' || l_return_status );
12512: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12513: RAISE okl_api.g_exception_unexpected_error;
12514: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12515: RAISE okl_api.g_exception_error;
12516: END IF;
12517: END IF;
12518: FOR cfl_index IN l_lq_payment_level_tbl.FIRST .. l_lq_payment_level_tbl.LAST
12519: LOOP
12535: 'After update_cashflow call ' || l_Return_Status );
12536: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12537: 'After creating the cash flows call ' || 'Sty_id ' || l_lq_payment_header_rec.stream_type_id
12538: || 'Status_code ' || l_lq_payment_header_rec.status_code );
12539: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12540: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12541: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12542: RAISE OKL_API.G_EXCEPTION_ERROR;
12543: END IF;
12536: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12537: 'After creating the cash flows call ' || 'Sty_id ' || l_lq_payment_header_rec.stream_type_id
12538: || 'Status_code ' || l_lq_payment_header_rec.status_code );
12539: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12540: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12541: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12542: RAISE OKL_API.G_EXCEPTION_ERROR;
12543: END IF;
12544: END IF; -- Check if Pricing Option = SRT
12537: 'After creating the cash flows call ' || 'Sty_id ' || l_lq_payment_header_rec.stream_type_id
12538: || 'Status_code ' || l_lq_payment_header_rec.status_code );
12539: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12540: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12541: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12542: RAISE OKL_API.G_EXCEPTION_ERROR;
12543: END IF;
12544: END IF; -- Check if Pricing Option = SRT
12545: END IF; -- IF noa count > 0
12538: || 'Status_code ' || l_lq_payment_header_rec.status_code );
12539: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12540: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12541: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12542: RAISE OKL_API.G_EXCEPTION_ERROR;
12543: END IF;
12544: END IF; -- Check if Pricing Option = SRT
12545: END IF; -- IF noa count > 0
12546: -- Fetch the ROLLOVER and Financed Fees Information
12564: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12565: 'Pricing method = ' || quote_rec.pricing_method ||
12566: ' | After price_standard_quote_asset l_return_status = ' || l_return_status ||
12567: ' | assets_rec.ast_id = ' || assets_rec.ast_id );
12568: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12569: RAISE okl_api.g_exception_unexpected_error;
12570: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12571: RAISE okl_api.g_exception_error;
12572: END IF;
12565: 'Pricing method = ' || quote_rec.pricing_method ||
12566: ' | After price_standard_quote_asset l_return_status = ' || l_return_status ||
12567: ' | assets_rec.ast_id = ' || assets_rec.ast_id );
12568: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12569: RAISE okl_api.g_exception_unexpected_error;
12570: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12571: RAISE okl_api.g_exception_error;
12572: END IF;
12573: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
12566: ' | After price_standard_quote_asset l_return_status = ' || l_return_status ||
12567: ' | assets_rec.ast_id = ' || assets_rec.ast_id );
12568: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12569: RAISE okl_api.g_exception_unexpected_error;
12570: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12571: RAISE okl_api.g_exception_error;
12572: END IF;
12573: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
12574: -- Increment the pp_index
12567: ' | assets_rec.ast_id = ' || assets_rec.ast_id );
12568: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12569: RAISE okl_api.g_exception_unexpected_error;
12570: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12571: RAISE okl_api.g_exception_error;
12572: END IF;
12573: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
12574: -- Increment the pp_index
12575: pp_index := pp_index + 1;
12595: px_irr => x_iir,
12596: x_payment => x_payment);
12597: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12598: 'After Calculating the Subsidized IIR ' || round(x_iir, 4) );
12599: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12600: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12601: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12602: RAISE OKL_API.G_EXCEPTION_ERROR;
12603: END IF;
12596: x_payment => x_payment);
12597: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12598: 'After Calculating the Subsidized IIR ' || round(x_iir, 4) );
12599: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12600: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12601: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12602: RAISE OKL_API.G_EXCEPTION_ERROR;
12603: END IF;
12604: l_subsidized_yields_rec.iir := x_iir;
12597: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12598: 'After Calculating the Subsidized IIR ' || round(x_iir, 4) );
12599: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12600: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12601: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12602: RAISE OKL_API.G_EXCEPTION_ERROR;
12603: END IF;
12604: l_subsidized_yields_rec.iir := x_iir;
12605: l_subsidized_yields_rec.bk_yield := x_iir;
12598: 'After Calculating the Subsidized IIR ' || round(x_iir, 4) );
12599: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12600: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12601: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12602: RAISE OKL_API.G_EXCEPTION_ERROR;
12603: END IF;
12604: l_subsidized_yields_rec.iir := x_iir;
12605: l_subsidized_yields_rec.bk_yield := x_iir;
12606: -- Fetching the Fees and Service Information for the calculation of the
12629: x_inflow_caf_rec => l_fee_inflow_caf_rec,
12630: x_inflow_cfl_tbl => l_fee_inflow_cfl_tbl);
12631: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12632: 'After get_lq_fee_cash_flows ' || l_return_status );
12633: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12634: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12635: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12636: RAISE OKL_API.G_EXCEPTION_ERROR;
12637: END IF;
12630: x_inflow_cfl_tbl => l_fee_inflow_cfl_tbl);
12631: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12632: 'After get_lq_fee_cash_flows ' || l_return_status );
12633: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12634: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12635: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12636: RAISE OKL_API.G_EXCEPTION_ERROR;
12637: END IF;
12638: -- Based on the outflows/Inflows obtained generate the streams
12631: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12632: 'After get_lq_fee_cash_flows ' || l_return_status );
12633: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12634: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12635: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12636: RAISE OKL_API.G_EXCEPTION_ERROR;
12637: END IF;
12638: -- Based on the outflows/Inflows obtained generate the streams
12639: IF l_fee_outflow_cfl_tbl.COUNT > 0
12632: 'After get_lq_fee_cash_flows ' || l_return_status );
12633: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12634: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12635: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12636: RAISE OKL_API.G_EXCEPTION_ERROR;
12637: END IF;
12638: -- Based on the outflows/Inflows obtained generate the streams
12639: IF l_fee_outflow_cfl_tbl.COUNT > 0
12640: THEN
12649: x_msg_data => x_msg_data,
12650: p_cash_flow_rec => l_fee_outflow_caf_rec,
12651: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
12652: x_cash_inflow_strms_tbl => l_cash_inflows);
12653: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12654: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12655: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12656: RAISE OKL_API.G_EXCEPTION_ERROR;
12657: END IF;
12650: p_cash_flow_rec => l_fee_outflow_caf_rec,
12651: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
12652: x_cash_inflow_strms_tbl => l_cash_inflows);
12653: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12654: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12655: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12656: RAISE OKL_API.G_EXCEPTION_ERROR;
12657: END IF;
12658: -- Place the information in the pricing params
12651: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
12652: x_cash_inflow_strms_tbl => l_cash_inflows);
12653: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12654: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12655: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12656: RAISE OKL_API.G_EXCEPTION_ERROR;
12657: END IF;
12658: -- Place the information in the pricing params
12659: l_pricing_parameter_tbl(pp_index).line_type := assets_rec.fee_type;
12652: x_cash_inflow_strms_tbl => l_cash_inflows);
12653: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12654: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12655: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12656: RAISE OKL_API.G_EXCEPTION_ERROR;
12657: END IF;
12658: -- Place the information in the pricing params
12659: l_pricing_parameter_tbl(pp_index).line_type := assets_rec.fee_type;
12660: l_pricing_parameter_tbl(pp_index).payment_type := 'EXPENSE';
12677: x_msg_data => x_msg_data,
12678: p_cash_flow_rec => l_fee_inflow_caf_rec,
12679: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
12680: x_cash_inflow_strms_tbl => l_cash_inflows);
12681: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12682: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12683: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12684: RAISE OKL_API.G_EXCEPTION_ERROR;
12685: END IF;
12678: p_cash_flow_rec => l_fee_inflow_caf_rec,
12679: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
12680: x_cash_inflow_strms_tbl => l_cash_inflows);
12681: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12682: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12683: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12684: RAISE OKL_API.G_EXCEPTION_ERROR;
12685: END IF;
12686: -- Place the information in the pricing params
12679: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
12680: x_cash_inflow_strms_tbl => l_cash_inflows);
12681: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12682: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12683: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12684: RAISE OKL_API.G_EXCEPTION_ERROR;
12685: END IF;
12686: -- Place the information in the pricing params
12687: l_pricing_parameter_tbl(pp_index).line_type := assets_rec.fee_type;
12680: x_cash_inflow_strms_tbl => l_cash_inflows);
12681: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12682: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12683: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12684: RAISE OKL_API.G_EXCEPTION_ERROR;
12685: END IF;
12686: -- Place the information in the pricing params
12687: l_pricing_parameter_tbl(pp_index).line_type := assets_rec.fee_type;
12688: IF assets_rec.fee_type IN ( 'INCOME', 'MISCELLANEOUS' )
12725: px_irr => l_subsidized_yields_rec.pre_tax_irr,
12726: x_payment => x_payment);
12727: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12728: 'After Calculating the Subsidized IRR ' || round(l_subsidized_yields_rec.pre_tax_irr, 4) );
12729: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12730: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12731: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12732: RAISE OKL_API.G_EXCEPTION_ERROR;
12733: END IF;
12726: x_payment => x_payment);
12727: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12728: 'After Calculating the Subsidized IRR ' || round(l_subsidized_yields_rec.pre_tax_irr, 4) );
12729: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12730: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12731: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12732: RAISE OKL_API.G_EXCEPTION_ERROR;
12733: END IF;
12734: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12727: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12728: 'After Calculating the Subsidized IRR ' || round(l_subsidized_yields_rec.pre_tax_irr, 4) );
12729: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12730: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12731: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12732: RAISE OKL_API.G_EXCEPTION_ERROR;
12733: END IF;
12734: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12735: '!!!!!!!!!!! NON-SUBSIDIZIED YIELDS CALCULATION !!!!!!!!!!!' );
12728: 'After Calculating the Subsidized IRR ' || round(l_subsidized_yields_rec.pre_tax_irr, 4) );
12729: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12730: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12731: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12732: RAISE OKL_API.G_EXCEPTION_ERROR;
12733: END IF;
12734: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12735: '!!!!!!!!!!! NON-SUBSIDIZIED YIELDS CALCULATION !!!!!!!!!!!' );
12736: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12760: px_irr => l_yields_rec.iir,
12761: x_payment => x_payment);
12762: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12763: 'After Calculating the NON-Subsidized IIR ' || round(l_yields_rec.pre_tax_irr, 4) );
12764: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12765: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12766: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12767: RAISE OKL_API.G_EXCEPTION_ERROR;
12768: END IF;
12761: x_payment => x_payment);
12762: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12763: 'After Calculating the NON-Subsidized IIR ' || round(l_yields_rec.pre_tax_irr, 4) );
12764: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12765: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12766: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12767: RAISE OKL_API.G_EXCEPTION_ERROR;
12768: END IF;
12769: l_yields_rec.bk_yield := l_yields_rec.iir;
12762: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12763: 'After Calculating the NON-Subsidized IIR ' || round(l_yields_rec.pre_tax_irr, 4) );
12764: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12765: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12766: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12767: RAISE OKL_API.G_EXCEPTION_ERROR;
12768: END IF;
12769: l_yields_rec.bk_yield := l_yields_rec.iir;
12770: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12763: 'After Calculating the NON-Subsidized IIR ' || round(l_yields_rec.pre_tax_irr, 4) );
12764: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12765: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12766: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12767: RAISE OKL_API.G_EXCEPTION_ERROR;
12768: END IF;
12769: l_yields_rec.bk_yield := l_yields_rec.iir;
12770: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12771: 'Removing subsidy from the l_pp_non_sub_irr_tbl ' );
12794: px_irr => l_yields_rec.pre_tax_irr,
12795: x_payment => x_payment);
12796: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12797: 'After Calculating the NON-Subsidized IRR ' || round(l_yields_rec.pre_tax_irr, 4) );
12798: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12799: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12800: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12801: RAISE OKL_API.G_EXCEPTION_ERROR;
12802: END IF;
12795: x_payment => x_payment);
12796: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12797: 'After Calculating the NON-Subsidized IRR ' || round(l_yields_rec.pre_tax_irr, 4) );
12798: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12799: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12800: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12801: RAISE OKL_API.G_EXCEPTION_ERROR;
12802: END IF;
12803: ELSIF quote_rec.pricing_method = 'TR'
12796: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12797: 'After Calculating the NON-Subsidized IRR ' || round(l_yields_rec.pre_tax_irr, 4) );
12798: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12799: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12800: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12801: RAISE OKL_API.G_EXCEPTION_ERROR;
12802: END IF;
12803: ELSIF quote_rec.pricing_method = 'TR'
12804: THEN
12797: 'After Calculating the NON-Subsidized IRR ' || round(l_yields_rec.pre_tax_irr, 4) );
12798: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12799: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12800: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12801: RAISE OKL_API.G_EXCEPTION_ERROR;
12802: END IF;
12803: ELSIF quote_rec.pricing_method = 'TR'
12804: THEN
12805: -- Target for rate, which is IIR !
12946: p_target_rate => quote_rec.target_rate / 100,
12947: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
12948: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12949: 'After price_standard_quote_asset ' || l_return_status );
12950: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12951: RAISE okl_api.g_exception_unexpected_error;
12952: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12953: RAISE okl_api.g_exception_error;
12954: END IF;
12947: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
12948: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12949: 'After price_standard_quote_asset ' || l_return_status );
12950: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12951: RAISE okl_api.g_exception_unexpected_error;
12952: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12953: RAISE okl_api.g_exception_error;
12954: END IF;
12955: FOR t_in IN l_tmp_pricing_parameter_rec.cash_inflows.FIRST ..
12948: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12949: 'After price_standard_quote_asset ' || l_return_status );
12950: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12951: RAISE okl_api.g_exception_unexpected_error;
12952: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12953: RAISE okl_api.g_exception_error;
12954: END IF;
12955: FOR t_in IN l_tmp_pricing_parameter_rec.cash_inflows.FIRST ..
12956: l_tmp_pricing_parameter_rec.cash_inflows.LAST
12949: 'After price_standard_quote_asset ' || l_return_status );
12950: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
12951: RAISE okl_api.g_exception_unexpected_error;
12952: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
12953: RAISE okl_api.g_exception_error;
12954: END IF;
12955: FOR t_in IN l_tmp_pricing_parameter_rec.cash_inflows.FIRST ..
12956: l_tmp_pricing_parameter_rec.cash_inflows.LAST
12957: LOOP
12988: x_inflow_caf_rec => l_fee_inflow_caf_rec,
12989: x_inflow_cfl_tbl => l_fee_inflow_cfl_tbl);
12990: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12991: 'After get_lq_fee_cash_flows ' || l_return_status );
12992: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12993: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12994: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12995: RAISE OKL_API.G_EXCEPTION_ERROR;
12996: END IF;
12989: x_inflow_cfl_tbl => l_fee_inflow_cfl_tbl);
12990: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12991: 'After get_lq_fee_cash_flows ' || l_return_status );
12992: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12993: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12994: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12995: RAISE OKL_API.G_EXCEPTION_ERROR;
12996: END IF;
12997: -- Based on the outflows/Inflows obtained generate the streams
12990: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
12991: 'After get_lq_fee_cash_flows ' || l_return_status );
12992: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12993: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12994: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12995: RAISE OKL_API.G_EXCEPTION_ERROR;
12996: END IF;
12997: -- Based on the outflows/Inflows obtained generate the streams
12998: IF l_fee_outflow_cfl_tbl.COUNT > 0
12991: 'After get_lq_fee_cash_flows ' || l_return_status );
12992: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
12993: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12994: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12995: RAISE OKL_API.G_EXCEPTION_ERROR;
12996: END IF;
12997: -- Based on the outflows/Inflows obtained generate the streams
12998: IF l_fee_outflow_cfl_tbl.COUNT > 0
12999: THEN
13015: x_msg_data => x_msg_data,
13016: p_cash_flow_rec => l_fee_outflow_caf_rec,
13017: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
13018: x_cash_inflow_strms_tbl => l_cash_inflows);
13019: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13020: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13021: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13022: RAISE OKL_API.G_EXCEPTION_ERROR;
13023: END IF;
13016: p_cash_flow_rec => l_fee_outflow_caf_rec,
13017: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
13018: x_cash_inflow_strms_tbl => l_cash_inflows);
13019: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13020: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13021: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13022: RAISE OKL_API.G_EXCEPTION_ERROR;
13023: END IF;
13024: -- Place the information in the pricing params
13017: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
13018: x_cash_inflow_strms_tbl => l_cash_inflows);
13019: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13020: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13021: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13022: RAISE OKL_API.G_EXCEPTION_ERROR;
13023: END IF;
13024: -- Place the information in the pricing params
13025: ppfs_index := ppfs_index + 1;
13018: x_cash_inflow_strms_tbl => l_cash_inflows);
13019: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13020: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13021: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13022: RAISE OKL_API.G_EXCEPTION_ERROR;
13023: END IF;
13024: -- Place the information in the pricing params
13025: ppfs_index := ppfs_index + 1;
13026: l_pp_non_sub_irr_tbl(ppfs_index).line_type := assets_rec.fee_type;
13050: x_msg_data => x_msg_data,
13051: p_cash_flow_rec => l_fee_inflow_caf_rec,
13052: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
13053: x_cash_inflow_strms_tbl => l_cash_inflows);
13054: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13055: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13056: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13057: RAISE OKL_API.G_EXCEPTION_ERROR;
13058: END IF;
13051: p_cash_flow_rec => l_fee_inflow_caf_rec,
13052: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
13053: x_cash_inflow_strms_tbl => l_cash_inflows);
13054: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13055: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13056: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13057: RAISE OKL_API.G_EXCEPTION_ERROR;
13058: END IF;
13059: -- Place the information in the pricing params
13052: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
13053: x_cash_inflow_strms_tbl => l_cash_inflows);
13054: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13055: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13056: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13057: RAISE OKL_API.G_EXCEPTION_ERROR;
13058: END IF;
13059: -- Place the information in the pricing params
13060: ppfs_index := ppfs_index + 1;
13053: x_cash_inflow_strms_tbl => l_cash_inflows);
13054: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13055: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13056: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13057: RAISE OKL_API.G_EXCEPTION_ERROR;
13058: END IF;
13059: -- Place the information in the pricing params
13060: ppfs_index := ppfs_index + 1;
13061: l_pp_non_sub_irr_tbl(ppfs_index).line_type := assets_rec.fee_type;
13099: p_initial_guess => l_initial_guess, -- Use the IIR derieved prev. as initial guess
13100: px_pricing_parameter_tbl => l_pp_non_sub_iir_tbl,
13101: px_irr => x_iir,
13102: x_payment => x_payment);
13103: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13104: RAISE okl_api.g_exception_unexpected_error;
13105: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13106: RAISE okl_api.g_exception_error;
13107: END IF;
13100: px_pricing_parameter_tbl => l_pp_non_sub_iir_tbl,
13101: px_irr => x_iir,
13102: x_payment => x_payment);
13103: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13104: RAISE okl_api.g_exception_unexpected_error;
13105: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13106: RAISE okl_api.g_exception_error;
13107: END IF;
13108: -- IIR @ LQ level has already been given by the user itself ..
13101: px_irr => x_iir,
13102: x_payment => x_payment);
13103: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13104: RAISE okl_api.g_exception_unexpected_error;
13105: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13106: RAISE okl_api.g_exception_error;
13107: END IF;
13108: -- IIR @ LQ level has already been given by the user itself ..
13109: -- So, we wont be calling the compute_irr api just passing the assets information.
13102: x_payment => x_payment);
13103: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13104: RAISE okl_api.g_exception_unexpected_error;
13105: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13106: RAISE okl_api.g_exception_error;
13107: END IF;
13108: -- IIR @ LQ level has already been given by the user itself ..
13109: -- So, we wont be calling the compute_irr api just passing the assets information.
13110: l_subsidized_yields_rec.iir := quote_rec.target_rate / 100;
13125: px_irr => l_subsidized_yields_rec.pre_tax_irr,
13126: x_payment => x_payment);
13127: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13128: quote_rec.pricing_method || ': FINAL: After compute_irr ' || l_return_status );
13129: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13130: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13131: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13132: RAISE OKL_API.G_EXCEPTION_ERROR;
13133: END IF;
13126: x_payment => x_payment);
13127: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13128: quote_rec.pricing_method || ': FINAL: After compute_irr ' || l_return_status );
13129: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13130: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13131: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13132: RAISE OKL_API.G_EXCEPTION_ERROR;
13133: END IF;
13134: l_subsidized_yields_rec.pre_tax_irr := quote_rec.target_rate / 100;
13127: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13128: quote_rec.pricing_method || ': FINAL: After compute_irr ' || l_return_status );
13129: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13130: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13131: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13132: RAISE OKL_API.G_EXCEPTION_ERROR;
13133: END IF;
13134: l_subsidized_yields_rec.pre_tax_irr := quote_rec.target_rate / 100;
13135: END IF;
13128: quote_rec.pricing_method || ': FINAL: After compute_irr ' || l_return_status );
13129: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13130: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13131: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13132: RAISE OKL_API.G_EXCEPTION_ERROR;
13133: END IF;
13134: l_subsidized_yields_rec.pre_tax_irr := quote_rec.target_rate / 100;
13135: END IF;
13136: IF x_payment < 0
13134: l_subsidized_yields_rec.pre_tax_irr := quote_rec.target_rate / 100;
13135: END IF;
13136: IF x_payment < 0
13137: THEN
13138: OKL_API.SET_MESSAGE (
13139: p_app_name => G_APP_NAME,
13140: p_msg_name => 'OKL_NEGATIVE_ADJ_AMT',
13141: p_token1 => 'TYPE',
13142: p_token1_value => 'Payment',
13141: p_token1 => 'TYPE',
13142: p_token1_value => 'Payment',
13143: p_token2 => 'AMOUNT',
13144: p_token2_value => round(x_payment,2) );
13145: RAISE okl_api.g_exception_error;
13146: END IF;
13147: -- Store the Calculated Payment amount back in the quote Header
13148: l_lease_qte_rec.target_amount := x_payment;
13149: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13179: 'After OKL_LEASE_QUOTE_CASHFLOW_PVT.update_cashflow l_lq_payment_header_rec '
13180: || l_lq_payment_header_rec.stream_type_id
13181: || ' status_code ' || l_lq_payment_header_rec.status_code );
13182: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
13183: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13184: ELSIF l_return_status = G_RET_STS_ERROR THEN
13185: RAISE OKL_API.G_EXCEPTION_ERROR;
13186: END IF;
13187: ELSE
13181: || ' status_code ' || l_lq_payment_header_rec.status_code );
13182: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
13183: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13184: ELSIF l_return_status = G_RET_STS_ERROR THEN
13185: RAISE OKL_API.G_EXCEPTION_ERROR;
13186: END IF;
13187: ELSE
13188: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13189: 'Before OKL_LEASE_QUOTE_CASHFLOW_PVT.create_cashflow l_lq_payment_header_rec '
13204: 'After OKL_LEASE_QUOTE_CASHFLOW_PVT.create_cashflow l_lq_payment_header_rec '
13205: || l_lq_payment_header_rec.stream_type_id
13206: || ' status_code ' || l_lq_payment_header_rec.status_code );
13207: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
13208: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13209: ELSIF l_return_status = G_RET_STS_ERROR THEN
13210: RAISE OKL_API.G_EXCEPTION_ERROR;
13211: END IF;
13212: END IF;
13206: || ' status_code ' || l_lq_payment_header_rec.status_code );
13207: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
13208: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13209: ELSIF l_return_status = G_RET_STS_ERROR THEN
13210: RAISE OKL_API.G_EXCEPTION_ERROR;
13211: END IF;
13212: END IF;
13213: -- Update pmnt. amount in l_pp_non_sub_iir_tbl(1).cash_inflows and l_pp_non_sub_irr_tbl(1).cash_inflows
13214: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13246: px_irr => l_subsidized_yields_rec.pre_tax_irr,
13247: x_payment => x_payment);
13248: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13249: quote_rec.pricing_method || ': FINAL: After compute_irr ' || l_return_status );
13250: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13251: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13252: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13253: RAISE OKL_API.G_EXCEPTION_ERROR;
13254: END IF;
13247: x_payment => x_payment);
13248: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13249: quote_rec.pricing_method || ': FINAL: After compute_irr ' || l_return_status );
13250: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13251: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13252: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13253: RAISE OKL_API.G_EXCEPTION_ERROR;
13254: END IF;
13255: ELSE
13248: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13249: quote_rec.pricing_method || ': FINAL: After compute_irr ' || l_return_status );
13250: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13251: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13252: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13253: RAISE OKL_API.G_EXCEPTION_ERROR;
13254: END IF;
13255: ELSE
13256: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13249: quote_rec.pricing_method || ': FINAL: After compute_irr ' || l_return_status );
13250: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13251: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13252: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13253: RAISE OKL_API.G_EXCEPTION_ERROR;
13254: END IF;
13255: ELSE
13256: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13257: '******** Solving for the Subsidized IIR ********** ' );
13269: p_initial_guess => l_subsidized_yields_rec.pre_tax_irr, -- Use the IIR derieved prev. as initial guess
13270: px_pricing_parameter_tbl => l_pp_non_sub_iir_tbl,
13271: px_irr => x_iir,
13272: x_payment => x_payment);
13273: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13274: RAISE okl_api.g_exception_unexpected_error;
13275: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13276: RAISE okl_api.g_exception_error;
13277: END IF;
13270: px_pricing_parameter_tbl => l_pp_non_sub_iir_tbl,
13271: px_irr => x_iir,
13272: x_payment => x_payment);
13273: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13274: RAISE okl_api.g_exception_unexpected_error;
13275: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13276: RAISE okl_api.g_exception_error;
13277: END IF;
13278: -- IIR @ LQ level has already been given by the user itself ..
13271: px_irr => x_iir,
13272: x_payment => x_payment);
13273: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13274: RAISE okl_api.g_exception_unexpected_error;
13275: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13276: RAISE okl_api.g_exception_error;
13277: END IF;
13278: -- IIR @ LQ level has already been given by the user itself ..
13279: -- So, we wont be calling the compute_irr api just passing the assets information.
13272: x_payment => x_payment);
13273: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13274: RAISE okl_api.g_exception_unexpected_error;
13275: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13276: RAISE okl_api.g_exception_error;
13277: END IF;
13278: -- IIR @ LQ level has already been given by the user itself ..
13279: -- So, we wont be calling the compute_irr api just passing the assets information.
13280: l_subsidized_yields_rec.iir := x_iir;
13306: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13307: '1/ After Computation of IIR (NON-SUBSIDIZED) ' || l_return_status );
13308: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13309: 'SOLVED FOR IIR (NON-SUBSIDY)' || x_iir );
13310: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13311: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13312: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13313: RAISE OKL_API.G_EXCEPTION_ERROR;
13314: END IF;
13307: '1/ After Computation of IIR (NON-SUBSIDIZED) ' || l_return_status );
13308: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13309: 'SOLVED FOR IIR (NON-SUBSIDY)' || x_iir );
13310: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13311: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13312: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13313: RAISE OKL_API.G_EXCEPTION_ERROR;
13314: END IF;
13315: -- Store the IIR as the Booking Yield
13308: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13309: 'SOLVED FOR IIR (NON-SUBSIDY)' || x_iir );
13310: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13311: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13312: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13313: RAISE OKL_API.G_EXCEPTION_ERROR;
13314: END IF;
13315: -- Store the IIR as the Booking Yield
13316: l_yields_rec.bk_yield := l_yields_rec.iir;
13309: 'SOLVED FOR IIR (NON-SUBSIDY)' || x_iir );
13310: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13311: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13312: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13313: RAISE OKL_API.G_EXCEPTION_ERROR;
13314: END IF;
13315: -- Store the IIR as the Booking Yield
13316: l_yields_rec.bk_yield := l_yields_rec.iir;
13317: -- Loop through the l_pp_non_sub_iir_tbl table and make the Subsidy Amount to zero !
13340: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13341: '1/ After Computation of IRR @ LQ Level ' || l_return_status );
13342: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13343: 'SOLVED FOR IRR (NON-SUBSIDY)' || x_iir );
13344: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13345: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13346: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13347: RAISE OKL_API.G_EXCEPTION_ERROR;
13348: END IF;
13341: '1/ After Computation of IRR @ LQ Level ' || l_return_status );
13342: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13343: 'SOLVED FOR IRR (NON-SUBSIDY)' || x_iir );
13344: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13345: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13346: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13347: RAISE OKL_API.G_EXCEPTION_ERROR;
13348: END IF;
13349: ELSIF quote_rec.pricing_method = 'RC'
13342: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13343: 'SOLVED FOR IRR (NON-SUBSIDY)' || x_iir );
13344: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13345: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13346: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13347: RAISE OKL_API.G_EXCEPTION_ERROR;
13348: END IF;
13349: ELSIF quote_rec.pricing_method = 'RC'
13350: THEN
13343: 'SOLVED FOR IRR (NON-SUBSIDY)' || x_iir );
13344: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13345: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13346: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13347: RAISE OKL_API.G_EXCEPTION_ERROR;
13348: END IF;
13349: ELSIF quote_rec.pricing_method = 'RC'
13350: THEN
13351: -- Fetch the SGT Day convention to be used
13359: x_days_in_month => l_days_in_month,
13360: x_days_in_year => l_days_in_year);
13361: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13362: ': After Fetching the Day convention from the SGT - RC ' );
13363: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13364: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13365: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13366: RAISE OKL_API.G_EXCEPTION_ERROR;
13367: END IF;
13360: x_days_in_year => l_days_in_year);
13361: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13362: ': After Fetching the Day convention from the SGT - RC ' );
13363: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13364: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13365: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13366: RAISE OKL_API.G_EXCEPTION_ERROR;
13367: END IF;
13368: -- Get the Day count method for passing into the compute_irr api version.
13361: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13362: ': After Fetching the Day convention from the SGT - RC ' );
13363: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13364: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13365: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13366: RAISE OKL_API.G_EXCEPTION_ERROR;
13367: END IF;
13368: -- Get the Day count method for passing into the compute_irr api version.
13369: get_day_count_method(
13362: ': After Fetching the Day convention from the SGT - RC ' );
13363: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13364: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13365: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13366: RAISE OKL_API.G_EXCEPTION_ERROR;
13367: END IF;
13368: -- Get the Day count method for passing into the compute_irr api version.
13369: get_day_count_method(
13370: p_days_in_month => l_days_in_month,
13375: 'Return Status | l_days_in_month | l_days_in_year | l_day_count_method ' );
13376: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13377: l_return_status || ' | ' || l_days_in_month || ' | ' ||
13378: l_days_in_year || ' | ' || l_day_count_method );
13379: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13380: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13381: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13382: --Bug 5884825 PAGARG start
13383: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
13376: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13377: l_return_status || ' | ' || l_days_in_month || ' | ' ||
13378: l_days_in_year || ' | ' || l_day_count_method );
13379: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13380: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13381: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13382: --Bug 5884825 PAGARG start
13383: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
13384: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
13377: l_return_status || ' | ' || l_days_in_month || ' | ' ||
13378: l_days_in_year || ' | ' || l_day_count_method );
13379: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13380: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13381: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13382: --Bug 5884825 PAGARG start
13383: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
13384: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
13385: p_token1 => 'PRODUCT_NAME',
13379: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13380: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13381: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13382: --Bug 5884825 PAGARG start
13383: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
13384: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
13385: p_token1 => 'PRODUCT_NAME',
13386: p_token1_value => l_product_name);
13387: --Bug 5884825 PAGARG end
13384: p_msg_name => 'OKL_ISG_DAY_CONVENTION',
13385: p_token1 => 'PRODUCT_NAME',
13386: p_token1_value => l_product_name);
13387: --Bug 5884825 PAGARG end
13388: RAISE OKL_API.G_EXCEPTION_ERROR;
13389: END IF;
13390: pp_index := 1;
13391: -- Loop through each configuration line and price it seperately ...
13392: FOR assets_rec IN assets_csr(p_qte_id)
13409: p_target_rate => NULL,
13410: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
13411: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13412: 'After price_standard_quote_asset ' || l_return_status );
13413: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13414: RAISE okl_api.g_exception_unexpected_error;
13415: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13416: RAISE okl_api.g_exception_error;
13417: END IF;
13410: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
13411: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13412: 'After price_standard_quote_asset ' || l_return_status );
13413: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13414: RAISE okl_api.g_exception_unexpected_error;
13415: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13416: RAISE okl_api.g_exception_error;
13417: END IF;
13418: -- Store the Pricing Parameter for solving yields at the entire quote level
13411: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13412: 'After price_standard_quote_asset ' || l_return_status );
13413: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13414: RAISE okl_api.g_exception_unexpected_error;
13415: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13416: RAISE okl_api.g_exception_error;
13417: END IF;
13418: -- Store the Pricing Parameter for solving yields at the entire quote level
13419: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
13412: 'After price_standard_quote_asset ' || l_return_status );
13413: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13414: RAISE okl_api.g_exception_unexpected_error;
13415: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13416: RAISE okl_api.g_exception_error;
13417: END IF;
13418: -- Store the Pricing Parameter for solving yields at the entire quote level
13419: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
13420: -- Increment the pp_index
13442: p_target_rate => NULL,
13443: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
13444: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13445: 'After price_standard_quote_asset ' || l_return_status );
13446: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13447: RAISE okl_api.g_exception_unexpected_error;
13448: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13449: RAISE okl_api.g_exception_error;
13450: END IF;
13443: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
13444: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13445: 'After price_standard_quote_asset ' || l_return_status );
13446: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13447: RAISE okl_api.g_exception_unexpected_error;
13448: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13449: RAISE okl_api.g_exception_error;
13450: END IF;
13451: -- Store the Pricing Parameter for solving yields at the entire quote level
13444: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13445: 'After price_standard_quote_asset ' || l_return_status );
13446: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13447: RAISE okl_api.g_exception_unexpected_error;
13448: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13449: RAISE okl_api.g_exception_error;
13450: END IF;
13451: -- Store the Pricing Parameter for solving yields at the entire quote level
13452: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
13445: 'After price_standard_quote_asset ' || l_return_status );
13446: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13447: RAISE okl_api.g_exception_unexpected_error;
13448: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13449: RAISE okl_api.g_exception_error;
13450: END IF;
13451: -- Store the Pricing Parameter for solving yields at the entire quote level
13452: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
13453: -- Increment the pp_index
13474: px_irr => x_iir,
13475: x_payment => x_payment);
13476: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13477: '1/ After Computation of IIR @ LQ Level ( SUBSIDY )' || l_return_status );
13478: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13479: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13480: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13481: RAISE OKL_API.G_EXCEPTION_ERROR;
13482: END IF;
13475: x_payment => x_payment);
13476: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13477: '1/ After Computation of IIR @ LQ Level ( SUBSIDY )' || l_return_status );
13478: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13479: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13480: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13481: RAISE OKL_API.G_EXCEPTION_ERROR;
13482: END IF;
13483: l_subsidized_yields_rec.iir := x_iir;
13476: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13477: '1/ After Computation of IIR @ LQ Level ( SUBSIDY )' || l_return_status );
13478: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13479: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13480: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13481: RAISE OKL_API.G_EXCEPTION_ERROR;
13482: END IF;
13483: l_subsidized_yields_rec.iir := x_iir;
13484: l_subsidized_yields_rec.bk_yield := x_iir;
13477: '1/ After Computation of IIR @ LQ Level ( SUBSIDY )' || l_return_status );
13478: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13479: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13480: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13481: RAISE OKL_API.G_EXCEPTION_ERROR;
13482: END IF;
13483: l_subsidized_yields_rec.iir := x_iir;
13484: l_subsidized_yields_rec.bk_yield := x_iir;
13485: -- Extract the other fees and other lines information for computation of the IRR
13507: x_inflow_caf_rec => l_fee_inflow_caf_rec,
13508: x_inflow_cfl_tbl => l_fee_inflow_cfl_tbl);
13509: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13510: 'After get_lq_fee_cash_flows ' || l_return_status );
13511: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13512: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13513: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13514: RAISE OKL_API.G_EXCEPTION_ERROR;
13515: END IF;
13508: x_inflow_cfl_tbl => l_fee_inflow_cfl_tbl);
13509: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13510: 'After get_lq_fee_cash_flows ' || l_return_status );
13511: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13512: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13513: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13514: RAISE OKL_API.G_EXCEPTION_ERROR;
13515: END IF;
13516: -- Based on the outflows/Inflows obtained generate the streams
13509: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13510: 'After get_lq_fee_cash_flows ' || l_return_status );
13511: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13512: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13513: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13514: RAISE OKL_API.G_EXCEPTION_ERROR;
13515: END IF;
13516: -- Based on the outflows/Inflows obtained generate the streams
13517: IF l_fee_outflow_cfl_tbl.COUNT > 0
13510: 'After get_lq_fee_cash_flows ' || l_return_status );
13511: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13512: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13513: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13514: RAISE OKL_API.G_EXCEPTION_ERROR;
13515: END IF;
13516: -- Based on the outflows/Inflows obtained generate the streams
13517: IF l_fee_outflow_cfl_tbl.COUNT > 0
13518: THEN
13527: x_msg_data => x_msg_data,
13528: p_cash_flow_rec => l_fee_outflow_caf_rec,
13529: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
13530: x_cash_inflow_strms_tbl => l_cash_inflows);
13531: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13532: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13533: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13534: RAISE OKL_API.G_EXCEPTION_ERROR;
13535: END IF;
13528: p_cash_flow_rec => l_fee_outflow_caf_rec,
13529: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
13530: x_cash_inflow_strms_tbl => l_cash_inflows);
13531: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13532: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13533: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13534: RAISE OKL_API.G_EXCEPTION_ERROR;
13535: END IF;
13536: -- Place the information in the pricing params
13529: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
13530: x_cash_inflow_strms_tbl => l_cash_inflows);
13531: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13532: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13533: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13534: RAISE OKL_API.G_EXCEPTION_ERROR;
13535: END IF;
13536: -- Place the information in the pricing params
13537: l_pricing_parameter_tbl(pp_index).line_type := assets_rec.fee_type;
13530: x_cash_inflow_strms_tbl => l_cash_inflows);
13531: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13532: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13533: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13534: RAISE OKL_API.G_EXCEPTION_ERROR;
13535: END IF;
13536: -- Place the information in the pricing params
13537: l_pricing_parameter_tbl(pp_index).line_type := assets_rec.fee_type;
13538: l_pricing_parameter_tbl(pp_index).payment_type := 'EXPENSE';
13555: x_msg_data => x_msg_data,
13556: p_cash_flow_rec => l_fee_inflow_caf_rec,
13557: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
13558: x_cash_inflow_strms_tbl => l_cash_inflows);
13559: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13560: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13561: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13562: RAISE OKL_API.G_EXCEPTION_ERROR;
13563: END IF;
13556: p_cash_flow_rec => l_fee_inflow_caf_rec,
13557: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
13558: x_cash_inflow_strms_tbl => l_cash_inflows);
13559: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13560: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13561: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13562: RAISE OKL_API.G_EXCEPTION_ERROR;
13563: END IF;
13564: -- Place the information in the pricing params
13557: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
13558: x_cash_inflow_strms_tbl => l_cash_inflows);
13559: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13560: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13561: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13562: RAISE OKL_API.G_EXCEPTION_ERROR;
13563: END IF;
13564: -- Place the information in the pricing params
13565: l_pricing_parameter_tbl(pp_index).line_type := assets_rec.fee_type;
13558: x_cash_inflow_strms_tbl => l_cash_inflows);
13559: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13560: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13561: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13562: RAISE OKL_API.G_EXCEPTION_ERROR;
13563: END IF;
13564: -- Place the information in the pricing params
13565: l_pricing_parameter_tbl(pp_index).line_type := assets_rec.fee_type;
13566: IF assets_rec.fee_type IN ( 'INCOME', 'MISCELLANEOUS' )
13605: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13606: '1/ After Computation of IRR @ LQ Level ( SUBSIDY )' || l_return_status );
13607: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13608: 'SOLVED FOR IRR ' || x_iir );
13609: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13610: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13611: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13612: RAISE OKL_API.G_EXCEPTION_ERROR;
13613: END IF;
13606: '1/ After Computation of IRR @ LQ Level ( SUBSIDY )' || l_return_status );
13607: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13608: 'SOLVED FOR IRR ' || x_iir );
13609: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13610: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13611: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13612: RAISE OKL_API.G_EXCEPTION_ERROR;
13613: END IF;
13614: -- Calculate the Yields without involving the Subsidy Amount
13607: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13608: 'SOLVED FOR IRR ' || x_iir );
13609: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13610: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13611: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13612: RAISE OKL_API.G_EXCEPTION_ERROR;
13613: END IF;
13614: -- Calculate the Yields without involving the Subsidy Amount
13615: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13608: 'SOLVED FOR IRR ' || x_iir );
13609: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13610: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13611: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13612: RAISE OKL_API.G_EXCEPTION_ERROR;
13613: END IF;
13614: -- Calculate the Yields without involving the Subsidy Amount
13615: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13616: '1/ CALCULATING THE YEILDS WIHTOUT THE SUBSIDY AMOUNT INVOLVED !! ' );
13637: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13638: '1/ After Computation of IIR @ LQ Level ' || l_return_status );
13639: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13640: 'SOLVED FOR IIR (NON-SUBSIDY)' || x_iir );
13641: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13642: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13643: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13644: RAISE OKL_API.G_EXCEPTION_ERROR;
13645: END IF;
13638: '1/ After Computation of IIR @ LQ Level ' || l_return_status );
13639: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13640: 'SOLVED FOR IIR (NON-SUBSIDY)' || x_iir );
13641: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13642: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13643: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13644: RAISE OKL_API.G_EXCEPTION_ERROR;
13645: END IF;
13646: -- Store the IIR as the Booking Yield
13639: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13640: 'SOLVED FOR IIR (NON-SUBSIDY)' || x_iir );
13641: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13642: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13643: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13644: RAISE OKL_API.G_EXCEPTION_ERROR;
13645: END IF;
13646: -- Store the IIR as the Booking Yield
13647: l_yields_rec.bk_yield := l_yields_rec.iir;
13640: 'SOLVED FOR IIR (NON-SUBSIDY)' || x_iir );
13641: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13642: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13643: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13644: RAISE OKL_API.G_EXCEPTION_ERROR;
13645: END IF;
13646: -- Store the IIR as the Booking Yield
13647: l_yields_rec.bk_yield := l_yields_rec.iir;
13648:
13674: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13675: '1/ After Computation of IRR @ LQ Level ' || l_return_status );
13676: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13677: 'SOLVED FOR IRR (NON-SUBSIDY)' || x_iir );
13678: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13679: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13680: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13681: RAISE OKL_API.G_EXCEPTION_ERROR;
13682: END IF;
13675: '1/ After Computation of IRR @ LQ Level ' || l_return_status );
13676: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13677: 'SOLVED FOR IRR (NON-SUBSIDY)' || x_iir );
13678: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13679: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13680: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13681: RAISE OKL_API.G_EXCEPTION_ERROR;
13682: END IF;
13683: -- End of Rate Card Pricing
13676: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13677: 'SOLVED FOR IRR (NON-SUBSIDY)' || x_iir );
13678: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13679: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13680: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13681: RAISE OKL_API.G_EXCEPTION_ERROR;
13682: END IF;
13683: -- End of Rate Card Pricing
13684: ELSIF quote_rec.pricing_method = 'SY'
13677: 'SOLVED FOR IRR (NON-SUBSIDY)' || x_iir );
13678: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13679: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13680: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13681: RAISE OKL_API.G_EXCEPTION_ERROR;
13682: END IF;
13683: -- End of Rate Card Pricing
13684: ELSIF quote_rec.pricing_method = 'SY'
13685: THEN
13719: x_return_status => l_return_status);
13720: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13721: 'After is_asset_overriding assets_rec.id =' || assets_rec.ast_id || ' | ' ||
13722: ' l_return_status =' || l_return_status );
13723: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13724: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13725: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13726: RAISE OKL_API.G_EXCEPTION_ERROR;
13727: END IF;
13720: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13721: 'After is_asset_overriding assets_rec.id =' || assets_rec.ast_id || ' | ' ||
13722: ' l_return_status =' || l_return_status );
13723: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13724: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13725: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13726: RAISE OKL_API.G_EXCEPTION_ERROR;
13727: END IF;
13728: END IF;
13721: 'After is_asset_overriding assets_rec.id =' || assets_rec.ast_id || ' | ' ||
13722: ' l_return_status =' || l_return_status );
13723: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13724: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13725: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13726: RAISE OKL_API.G_EXCEPTION_ERROR;
13727: END IF;
13728: END IF;
13729: IF l_overridden = FALSE
13722: ' l_return_status =' || l_return_status );
13723: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13724: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13725: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13726: RAISE OKL_API.G_EXCEPTION_ERROR;
13727: END IF;
13728: END IF;
13729: IF l_overridden = FALSE
13730: THEN
13830: p_target_rate => NULL,
13831: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
13832: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13833: 'After price_standard_quote_asset ' || l_return_status );
13834: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13835: RAISE okl_api.g_exception_unexpected_error;
13836: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13837: RAISE okl_api.g_exception_error;
13838: END IF;
13831: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
13832: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13833: 'After price_standard_quote_asset ' || l_return_status );
13834: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13835: RAISE okl_api.g_exception_unexpected_error;
13836: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13837: RAISE okl_api.g_exception_error;
13838: END IF;
13839: -- Increment the pp_index
13832: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13833: 'After price_standard_quote_asset ' || l_return_status );
13834: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13835: RAISE okl_api.g_exception_unexpected_error;
13836: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13837: RAISE okl_api.g_exception_error;
13838: END IF;
13839: -- Increment the pp_index
13840: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
13833: 'After price_standard_quote_asset ' || l_return_status );
13834: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13835: RAISE okl_api.g_exception_unexpected_error;
13836: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13837: RAISE okl_api.g_exception_error;
13838: END IF;
13839: -- Increment the pp_index
13840: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
13841: pp_index := pp_index + 1;
13880: p_target_rate => NULL,
13881: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
13882: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13883: 'After price_standard_quote_asset ' || l_return_status );
13884: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13885: RAISE okl_api.g_exception_unexpected_error;
13886: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13887: RAISE okl_api.g_exception_error;
13888: END IF;
13881: x_pricing_parameter_rec => l_tmp_pricing_parameter_rec );
13882: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13883: 'After price_standard_quote_asset ' || l_return_status );
13884: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13885: RAISE okl_api.g_exception_unexpected_error;
13886: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13887: RAISE okl_api.g_exception_error;
13888: END IF;
13889: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
13882: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13883: 'After price_standard_quote_asset ' || l_return_status );
13884: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13885: RAISE okl_api.g_exception_unexpected_error;
13886: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13887: RAISE okl_api.g_exception_error;
13888: END IF;
13889: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
13890: -- Increment the pp_index
13883: 'After price_standard_quote_asset ' || l_return_status );
13884: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
13885: RAISE okl_api.g_exception_unexpected_error;
13886: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
13887: RAISE okl_api.g_exception_error;
13888: END IF;
13889: l_pricing_parameter_tbl(pp_index) := l_tmp_pricing_parameter_rec;
13890: -- Increment the pp_index
13891: pp_index := pp_index + 1;
13913: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13914: '1/ After Computation of IIR @ LQ Level ' || l_return_status );
13915: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13916: 'SOLVED FOR IIR ' || x_iir );
13917: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13918: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13919: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13920: RAISE OKL_API.G_EXCEPTION_ERROR;
13921: END IF;
13914: '1/ After Computation of IIR @ LQ Level ' || l_return_status );
13915: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13916: 'SOLVED FOR IIR ' || x_iir );
13917: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13918: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13919: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13920: RAISE OKL_API.G_EXCEPTION_ERROR;
13921: END IF;
13922: l_subsidized_yields_rec.iir := x_iir;
13915: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13916: 'SOLVED FOR IIR ' || x_iir );
13917: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13918: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13919: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13920: RAISE OKL_API.G_EXCEPTION_ERROR;
13921: END IF;
13922: l_subsidized_yields_rec.iir := x_iir;
13923: l_subsidized_yields_rec.bk_yield := x_iir;
13916: 'SOLVED FOR IIR ' || x_iir );
13917: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13918: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13919: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13920: RAISE OKL_API.G_EXCEPTION_ERROR;
13921: END IF;
13922: l_subsidized_yields_rec.iir := x_iir;
13923: l_subsidized_yields_rec.bk_yield := x_iir;
13924: -- Extract the fess information and built the Cash Inflows and Pricing Parameters
13945: x_inflow_caf_rec => l_fee_inflow_caf_rec,
13946: x_inflow_cfl_tbl => l_fee_inflow_cfl_tbl);
13947: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13948: 'After get_lq_fee_cash_flows ' || l_return_status );
13949: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13950: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13951: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13952: RAISE OKL_API.G_EXCEPTION_ERROR;
13953: END IF;
13946: x_inflow_cfl_tbl => l_fee_inflow_cfl_tbl);
13947: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13948: 'After get_lq_fee_cash_flows ' || l_return_status );
13949: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13950: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13951: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13952: RAISE OKL_API.G_EXCEPTION_ERROR;
13953: END IF;
13954: -- Based on the outflows/Inflows obtained generate the streams
13947: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
13948: 'After get_lq_fee_cash_flows ' || l_return_status );
13949: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13950: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13951: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13952: RAISE OKL_API.G_EXCEPTION_ERROR;
13953: END IF;
13954: -- Based on the outflows/Inflows obtained generate the streams
13955: IF l_fee_outflow_cfl_tbl.COUNT > 0
13948: 'After get_lq_fee_cash_flows ' || l_return_status );
13949: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13950: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13951: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13952: RAISE OKL_API.G_EXCEPTION_ERROR;
13953: END IF;
13954: -- Based on the outflows/Inflows obtained generate the streams
13955: IF l_fee_outflow_cfl_tbl.COUNT > 0
13956: THEN
13965: x_msg_data => x_msg_data,
13966: p_cash_flow_rec => l_fee_outflow_caf_rec,
13967: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
13968: x_cash_inflow_strms_tbl => l_cash_inflows);
13969: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13970: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13971: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13972: RAISE OKL_API.G_EXCEPTION_ERROR;
13973: END IF;
13966: p_cash_flow_rec => l_fee_outflow_caf_rec,
13967: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
13968: x_cash_inflow_strms_tbl => l_cash_inflows);
13969: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13970: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13971: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13972: RAISE OKL_API.G_EXCEPTION_ERROR;
13973: END IF;
13974: -- Place the information in the pricing params
13967: p_cf_details_tbl => l_fee_outflow_cfl_tbl,
13968: x_cash_inflow_strms_tbl => l_cash_inflows);
13969: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13970: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13971: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13972: RAISE OKL_API.G_EXCEPTION_ERROR;
13973: END IF;
13974: -- Place the information in the pricing params
13975: l_pricing_parameter_tbl(pp_index).line_type := assets_rec.fee_type;
13968: x_cash_inflow_strms_tbl => l_cash_inflows);
13969: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13970: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13971: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
13972: RAISE OKL_API.G_EXCEPTION_ERROR;
13973: END IF;
13974: -- Place the information in the pricing params
13975: l_pricing_parameter_tbl(pp_index).line_type := assets_rec.fee_type;
13976: l_pricing_parameter_tbl(pp_index).payment_type := 'EXPENSE';
13993: x_msg_data => x_msg_data,
13994: p_cash_flow_rec => l_fee_inflow_caf_rec,
13995: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
13996: x_cash_inflow_strms_tbl => l_cash_inflows);
13997: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13998: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13999: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14000: RAISE OKL_API.G_EXCEPTION_ERROR;
14001: END IF;
13994: p_cash_flow_rec => l_fee_inflow_caf_rec,
13995: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
13996: x_cash_inflow_strms_tbl => l_cash_inflows);
13997: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13998: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13999: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14000: RAISE OKL_API.G_EXCEPTION_ERROR;
14001: END IF;
14002: -- Place the information in the pricing params
13995: p_cf_details_tbl => l_fee_inflow_cfl_tbl,
13996: x_cash_inflow_strms_tbl => l_cash_inflows);
13997: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13998: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13999: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14000: RAISE OKL_API.G_EXCEPTION_ERROR;
14001: END IF;
14002: -- Place the information in the pricing params
14003: l_pricing_parameter_tbl(pp_index).line_type := assets_rec.fee_type;
13996: x_cash_inflow_strms_tbl => l_cash_inflows);
13997: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
13998: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13999: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14000: RAISE OKL_API.G_EXCEPTION_ERROR;
14001: END IF;
14002: -- Place the information in the pricing params
14003: l_pricing_parameter_tbl(pp_index).line_type := assets_rec.fee_type;
14004: IF assets_rec.fee_type IN ( 'INCOME', 'MISCELLANEOUS' )
14045: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14046: '1/ After Computation of IRR @ LQ Level ' || l_return_status );
14047: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14048: 'SOLVED FOR IRR ' || x_iir );
14049: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14050: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14051: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14052: RAISE OKL_API.G_EXCEPTION_ERROR;
14053: END IF;
14046: '1/ After Computation of IRR @ LQ Level ' || l_return_status );
14047: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14048: 'SOLVED FOR IRR ' || x_iir );
14049: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14050: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14051: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14052: RAISE OKL_API.G_EXCEPTION_ERROR;
14053: END IF;
14054: l_subsidized_yields_rec.pre_tax_irr := x_iir;
14047: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14048: 'SOLVED FOR IRR ' || x_iir );
14049: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14050: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14051: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14052: RAISE OKL_API.G_EXCEPTION_ERROR;
14053: END IF;
14054: l_subsidized_yields_rec.pre_tax_irr := x_iir;
14055: -- Calculate the Yields without involving the Subsidy Amount
14048: 'SOLVED FOR IRR ' || x_iir );
14049: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14050: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14051: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14052: RAISE OKL_API.G_EXCEPTION_ERROR;
14053: END IF;
14054: l_subsidized_yields_rec.pre_tax_irr := x_iir;
14055: -- Calculate the Yields without involving the Subsidy Amount
14056: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14080: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14081: '1/ After Computation of IIR @ LQ Level ' || l_return_status );
14082: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14083: 'SOLVED FOR IIR (NON-SUBSIDY)' || x_iir );
14084: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14085: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14086: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14087: RAISE OKL_API.G_EXCEPTION_ERROR;
14088: END IF;
14081: '1/ After Computation of IIR @ LQ Level ' || l_return_status );
14082: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14083: 'SOLVED FOR IIR (NON-SUBSIDY)' || x_iir );
14084: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14085: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14086: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14087: RAISE OKL_API.G_EXCEPTION_ERROR;
14088: END IF;
14089: -- Store the IIR as the Booking Yield
14082: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14083: 'SOLVED FOR IIR (NON-SUBSIDY)' || x_iir );
14084: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14085: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14086: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14087: RAISE OKL_API.G_EXCEPTION_ERROR;
14088: END IF;
14089: -- Store the IIR as the Booking Yield
14090: l_yields_rec.bk_yield := l_yields_rec.iir;
14083: 'SOLVED FOR IIR (NON-SUBSIDY)' || x_iir );
14084: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14085: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14086: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14087: RAISE OKL_API.G_EXCEPTION_ERROR;
14088: END IF;
14089: -- Store the IIR as the Booking Yield
14090: l_yields_rec.bk_yield := l_yields_rec.iir;
14091: -- Loop through the l_pp_non_sub_iir_tbl table and delete the Subsidy Amount
14118: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14119: '1/ After Computation of IRR @ LQ Level ' || l_return_status );
14120: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14121: 'SOLVED FOR IRR (NON-SUBSIDY)' || x_iir );
14122: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14123: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14124: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14125: RAISE OKL_API.G_EXCEPTION_ERROR;
14126: END IF;
14119: '1/ After Computation of IRR @ LQ Level ' || l_return_status );
14120: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14121: 'SOLVED FOR IRR (NON-SUBSIDY)' || x_iir );
14122: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14123: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14124: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14125: RAISE OKL_API.G_EXCEPTION_ERROR;
14126: END IF;
14127: END IF;
14120: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14121: 'SOLVED FOR IRR (NON-SUBSIDY)' || x_iir );
14122: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14123: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14124: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14125: RAISE OKL_API.G_EXCEPTION_ERROR;
14126: END IF;
14127: END IF;
14128: -- Populate the l_lease_qte_rec appropriately for the Updation
14121: 'SOLVED FOR IRR (NON-SUBSIDY)' || x_iir );
14122: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14123: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14124: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14125: RAISE OKL_API.G_EXCEPTION_ERROR;
14126: END IF;
14127: END IF;
14128: -- Populate the l_lease_qte_rec appropriately for the Updation
14129: l_lease_qte_rec.id := p_qte_id;
14146: x_msg_count => x_msg_count,
14147: x_msg_data => x_msg_data);
14148: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14149: 'After updation of Yields on Lease Quote. Status: ' || l_return_status );
14150: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14151: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14152: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14153: RAISE OKL_API.G_EXCEPTION_ERROR;
14154: END IF;
14147: x_msg_data => x_msg_data);
14148: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14149: 'After updation of Yields on Lease Quote. Status: ' || l_return_status );
14150: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14151: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14152: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14153: RAISE OKL_API.G_EXCEPTION_ERROR;
14154: END IF;
14155: -- Now after the Yields has been calculated, we need to calculate the payments
14148: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14149: 'After updation of Yields on Lease Quote. Status: ' || l_return_status );
14150: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14151: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14152: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14153: RAISE OKL_API.G_EXCEPTION_ERROR;
14154: END IF;
14155: -- Now after the Yields has been calculated, we need to calculate the payments
14156: -- for all Non-Overridden assets !
14149: 'After updation of Yields on Lease Quote. Status: ' || l_return_status );
14150: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14151: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14152: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14153: RAISE OKL_API.G_EXCEPTION_ERROR;
14154: END IF;
14155: -- Now after the Yields has been calculated, we need to calculate the payments
14156: -- for all Non-Overridden assets !
14157: IF quote_rec.pricing_method <> 'RC'
14183: px_iir => l_iir,
14184: x_payment => l_miss_payment);
14185: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14186: 'After SY @ LQ level ' || x_return_status || ' | l_iir=' || round(l_iir,4) );
14187: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14188: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14189: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14190: RAISE OKL_API.G_EXCEPTION_ERROR;
14191: END IF;
14184: x_payment => l_miss_payment);
14185: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14186: 'After SY @ LQ level ' || x_return_status || ' | l_iir=' || round(l_iir,4) );
14187: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14188: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14189: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14190: RAISE OKL_API.G_EXCEPTION_ERROR;
14191: END IF;
14192: ELSE
14185: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14186: 'After SY @ LQ level ' || x_return_status || ' | l_iir=' || round(l_iir,4) );
14187: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14188: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14189: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14190: RAISE OKL_API.G_EXCEPTION_ERROR;
14191: END IF;
14192: ELSE
14193: l_iir := (l_lease_qte_rec.iir / 100 );
14186: 'After SY @ LQ level ' || x_return_status || ' | l_iir=' || round(l_iir,4) );
14187: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14188: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14189: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14190: RAISE OKL_API.G_EXCEPTION_ERROR;
14191: END IF;
14192: ELSE
14193: l_iir := (l_lease_qte_rec.iir / 100 );
14194: END IF;
14287: px_iir => l_iir,
14288: x_payment => l_miss_payment);
14289: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14290: 'SPP: For Asset Status=' || x_return_status || ' | l_iir=' || round(l_iir,4) || ' | l_miss_payment = ' || round(l_miss_payment, 2));
14291: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14292: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14293: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14294: RAISE OKL_API.G_EXCEPTION_ERROR;
14295: END IF;
14288: x_payment => l_miss_payment);
14289: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14290: 'SPP: For Asset Status=' || x_return_status || ' | l_iir=' || round(l_iir,4) || ' | l_miss_payment = ' || round(l_miss_payment, 2));
14291: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14292: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14293: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14294: RAISE OKL_API.G_EXCEPTION_ERROR;
14295: END IF;
14296: -- Need to delete the cash flow (if any exists) for this Asset with WORK Status.
14289: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14290: 'SPP: For Asset Status=' || x_return_status || ' | l_iir=' || round(l_iir,4) || ' | l_miss_payment = ' || round(l_miss_payment, 2));
14291: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14292: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14293: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14294: RAISE OKL_API.G_EXCEPTION_ERROR;
14295: END IF;
14296: -- Need to delete the cash flow (if any exists) for this Asset with WORK Status.
14297: l_cfo_exists_at_noa := 'YES';
14290: 'SPP: For Asset Status=' || x_return_status || ' | l_iir=' || round(l_iir,4) || ' | l_miss_payment = ' || round(l_miss_payment, 2));
14291: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14292: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14293: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14294: RAISE OKL_API.G_EXCEPTION_ERROR;
14295: END IF;
14296: -- Need to delete the cash flow (if any exists) for this Asset with WORK Status.
14297: l_cfo_exists_at_noa := 'YES';
14298: FOR t_rec IN check_cfo_exists_csr(
14319: x_msg_count => x_msg_count,
14320: x_msg_data => x_msg_data);
14321: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14322: ' ----- After deleting the Cash flows for the asset ' || l_return_status );
14323: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
14324: RAISE okl_api.g_exception_unexpected_error;
14325: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
14326: RAISE okl_api.g_exception_error;
14327: END IF;
14320: x_msg_data => x_msg_data);
14321: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14322: ' ----- After deleting the Cash flows for the asset ' || l_return_status );
14323: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
14324: RAISE okl_api.g_exception_unexpected_error;
14325: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
14326: RAISE okl_api.g_exception_error;
14327: END IF;
14328: END IF;
14321: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14322: ' ----- After deleting the Cash flows for the asset ' || l_return_status );
14323: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
14324: RAISE okl_api.g_exception_unexpected_error;
14325: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
14326: RAISE okl_api.g_exception_error;
14327: END IF;
14328: END IF;
14329: -- Create the Cash flows with the structure similiar to the LQ
14322: ' ----- After deleting the Cash flows for the asset ' || l_return_status );
14323: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
14324: RAISE okl_api.g_exception_unexpected_error;
14325: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
14326: RAISE okl_api.g_exception_error;
14327: END IF;
14328: END IF;
14329: -- Create the Cash flows with the structure similiar to the LQ
14330: l_asset_caf_rec.parent_object_code := 'QUOTED_ASSET';
14393: x_msg_count => x_msg_count,
14394: x_msg_data => x_msg_data);
14395: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14396: 'After calling create_cash_flow ' || l_return_status);
14397: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14398: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14399: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14400: RAISE OKL_API.G_EXCEPTION_ERROR;
14401: END IF;
14394: x_msg_data => x_msg_data);
14395: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14396: 'After calling create_cash_flow ' || l_return_status);
14397: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14398: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14399: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14400: RAISE OKL_API.G_EXCEPTION_ERROR;
14401: END IF;
14402: END LOOP; -- Loop on the l_noa_det_prc_tbl
14395: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14396: 'After calling create_cash_flow ' || l_return_status);
14397: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14398: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14399: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14400: RAISE OKL_API.G_EXCEPTION_ERROR;
14401: END IF;
14402: END LOOP; -- Loop on the l_noa_det_prc_tbl
14403: END IF;
14396: 'After calling create_cash_flow ' || l_return_status);
14397: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14398: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14399: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14400: RAISE OKL_API.G_EXCEPTION_ERROR;
14401: END IF;
14402: END LOOP; -- Loop on the l_noa_det_prc_tbl
14403: END IF;
14404: -- Delete (if exists any..) LEASE_QUOTE_CONSOLIDATED cash flows existing
14425: x_msg_count => x_msg_count,
14426: x_msg_data => x_msg_data);
14427: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14428: 'Deleted the Consolidated Cash flow levels @ LQ levels. Status: ' || l_return_status );
14429: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
14430: RAISE okl_api.g_exception_unexpected_error;
14431: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
14432: RAISE okl_api.g_exception_error;
14433: END IF;
14426: x_msg_data => x_msg_data);
14427: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14428: 'Deleted the Consolidated Cash flow levels @ LQ levels. Status: ' || l_return_status );
14429: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
14430: RAISE okl_api.g_exception_unexpected_error;
14431: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
14432: RAISE okl_api.g_exception_error;
14433: END IF;
14434: END IF; -- IF l_cfo_exists_at_lq
14427: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14428: 'Deleted the Consolidated Cash flow levels @ LQ levels. Status: ' || l_return_status );
14429: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
14430: RAISE okl_api.g_exception_unexpected_error;
14431: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
14432: RAISE okl_api.g_exception_error;
14433: END IF;
14434: END IF; -- IF l_cfo_exists_at_lq
14435: -- Code for solving the payment amount @ LQ level follows ..
14428: 'Deleted the Consolidated Cash flow levels @ LQ levels. Status: ' || l_return_status );
14429: IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
14430: RAISE okl_api.g_exception_unexpected_error;
14431: ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
14432: RAISE okl_api.g_exception_error;
14433: END IF;
14434: END IF; -- IF l_cfo_exists_at_lq
14435: -- Code for solving the payment amount @ LQ level follows ..
14436: -- If for all the assets, frequency, adv/arrears, the payment structure matches
14446: p_id => p_qte_id,
14447: x_caf_rec => l_lq_payment_header_rec,
14448: x_cfl_tbl => l_lq_payment_level_tbl,
14449: x_solved => l_solved);
14450: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14451: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14452: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14453: RAISE OKL_API.G_EXCEPTION_ERROR;
14454: END IF;
14447: x_caf_rec => l_lq_payment_header_rec,
14448: x_cfl_tbl => l_lq_payment_level_tbl,
14449: x_solved => l_solved);
14450: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14451: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14452: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14453: RAISE OKL_API.G_EXCEPTION_ERROR;
14454: END IF;
14455: IF l_solved = 'YES' AND l_lq_payment_level_tbl IS NOT NULL AND l_lq_payment_level_tbl.COUNT > 0
14448: x_cfl_tbl => l_lq_payment_level_tbl,
14449: x_solved => l_solved);
14450: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14451: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14452: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14453: RAISE OKL_API.G_EXCEPTION_ERROR;
14454: END IF;
14455: IF l_solved = 'YES' AND l_lq_payment_level_tbl IS NOT NULL AND l_lq_payment_level_tbl.COUNT > 0
14456: THEN
14449: x_solved => l_solved);
14450: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14451: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14452: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14453: RAISE OKL_API.G_EXCEPTION_ERROR;
14454: END IF;
14455: IF l_solved = 'YES' AND l_lq_payment_level_tbl IS NOT NULL AND l_lq_payment_level_tbl.COUNT > 0
14456: THEN
14457: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14494: x_msg_count => x_msg_count,
14495: x_msg_data => x_msg_data);
14496: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14497: 'Creation of LQ level cash flow levels stauts: ' || l_Return_Status );
14498: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14499: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14500: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14501: RAISE OKL_API.G_EXCEPTION_ERROR;
14502: END IF;
14495: x_msg_data => x_msg_data);
14496: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14497: 'Creation of LQ level cash flow levels stauts: ' || l_Return_Status );
14498: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14499: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14500: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14501: RAISE OKL_API.G_EXCEPTION_ERROR;
14502: END IF;
14503: ELSE
14496: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14497: 'Creation of LQ level cash flow levels stauts: ' || l_Return_Status );
14498: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14499: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14500: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14501: RAISE OKL_API.G_EXCEPTION_ERROR;
14502: END IF;
14503: ELSE
14504: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14497: 'Creation of LQ level cash flow levels stauts: ' || l_Return_Status );
14498: IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
14499: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14500: ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
14501: RAISE OKL_API.G_EXCEPTION_ERROR;
14502: END IF;
14503: ELSE
14504: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'S',
14505: '!!!!! PRICING ENGINE IS UNABLE TO DERIEVE PAYMENTS AT LQ LEVEL !!!!!' );
14505: '!!!!! PRICING ENGINE IS UNABLE TO DERIEVE PAYMENTS AT LQ LEVEL !!!!!' );
14506: END IF; -- IF l_solved = 'YES'
14507: -- Pass the results back
14508: x_return_status := l_return_status;
14509: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
14510: x_msg_data => x_msg_data);
14511: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
14512: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_name) );
14513: EXCEPTION
14510: x_msg_data => x_msg_data);
14511: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
14512: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_name) );
14513: EXCEPTION
14514: WHEN OKL_API.G_EXCEPTION_ERROR THEN
14515: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
14516: p_api_name => l_api_name,
14517: p_pkg_name => G_PKG_NAME,
14518: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
14511: put_in_log(l_debug_enabled,is_debug_procedure_on,is_debug_statement_on,l_module, 'P',
14512: 'end debug OKLRPIUB.pls call ' || LOWER(l_api_name) );
14513: EXCEPTION
14514: WHEN OKL_API.G_EXCEPTION_ERROR THEN
14515: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
14516: p_api_name => l_api_name,
14517: p_pkg_name => G_PKG_NAME,
14518: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
14519: x_msg_count => x_msg_count,
14514: WHEN OKL_API.G_EXCEPTION_ERROR THEN
14515: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
14516: p_api_name => l_api_name,
14517: p_pkg_name => G_PKG_NAME,
14518: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
14519: x_msg_count => x_msg_count,
14520: x_msg_data => x_msg_data,
14521: p_api_type => g_api_type);
14522: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
14518: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
14519: x_msg_count => x_msg_count,
14520: x_msg_data => x_msg_data,
14521: p_api_type => g_api_type);
14522: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
14523: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
14524: p_api_name => l_api_name,
14525: p_pkg_name => G_PKG_NAME,
14526: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
14519: x_msg_count => x_msg_count,
14520: x_msg_data => x_msg_data,
14521: p_api_type => g_api_type);
14522: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
14523: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
14524: p_api_name => l_api_name,
14525: p_pkg_name => G_PKG_NAME,
14526: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
14527: x_msg_count => x_msg_count,
14522: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
14523: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
14524: p_api_name => l_api_name,
14525: p_pkg_name => G_PKG_NAME,
14526: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
14527: x_msg_count => x_msg_count,
14528: x_msg_data => x_msg_data,
14529: p_api_type => g_api_type);
14530: WHEN OTHERS THEN
14527: x_msg_count => x_msg_count,
14528: x_msg_data => x_msg_data,
14529: p_api_type => g_api_type);
14530: WHEN OTHERS THEN
14531: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
14532: p_api_name => l_api_name,
14533: p_pkg_name => G_PKG_NAME,
14534: p_exc_name => 'OTHERS',
14535: x_msg_count => x_msg_count,