11: G_TOT_RV_AMT NUMBER := 0;
12:
13: G_INVALID_VALUE CONSTANT VARCHAR2(200) := 'OKL_INVALID_VALUE ';
14: G_LLA_NO_MATCHING_RECORD CONSTANT VARCHAR2(200) := 'OKL_LLA_NO_MATCHING_RECORD';
15: G_COL_NAME_TOKEN CONSTANT VARCHAR2(200) := OKL_API.G_COL_NAME_TOKEN;
16: G_REQUIRED_VALUE CONSTANT VARCHAR2(200) := OKL_API.G_REQUIRED_VALUE;
17:
18: PROCEDURE get_rate(p_khr_id IN NUMBER,
19: p_date IN DATE,
12:
13: G_INVALID_VALUE CONSTANT VARCHAR2(200) := 'OKL_INVALID_VALUE ';
14: G_LLA_NO_MATCHING_RECORD CONSTANT VARCHAR2(200) := 'OKL_LLA_NO_MATCHING_RECORD';
15: G_COL_NAME_TOKEN CONSTANT VARCHAR2(200) := OKL_API.G_COL_NAME_TOKEN;
16: G_REQUIRED_VALUE CONSTANT VARCHAR2(200) := OKL_API.G_REQUIRED_VALUE;
17:
18: PROCEDURE get_rate(p_khr_id IN NUMBER,
19: p_date IN DATE,
20: p_line_type IN VARCHAR2,
347: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
348: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'begin' );
349:
350: END IF;
351: x_return_status := OKL_API.G_RET_STS_SUCCESS;
352: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
353: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' Investment ' || to_char( p_investment ));
354:
355: END IF;
376: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
377: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
378: END IF;
379: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
380: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
381: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
382: RAISE OKL_API.G_EXCEPTION_ERROR;
383: END IF;
384:
378: END IF;
379: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
380: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
381: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
382: RAISE OKL_API.G_EXCEPTION_ERROR;
383: END IF;
384:
385: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
386: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'sll start date ' || l_start_date );
398: p_end_date => l_rent_flow.se_date,
399: p_arrears => l_rent_flow.se_arrears,
400: x_return_status => lx_return_status);
401:
402: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
403: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
404: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
405: RAISE OKL_API.G_EXCEPTION_ERROR;
406: END IF;
399: p_arrears => l_rent_flow.se_arrears,
400: x_return_status => lx_return_status);
401:
402: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
403: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
404: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
405: RAISE OKL_API.G_EXCEPTION_ERROR;
406: END IF;
407:
400: x_return_status => lx_return_status);
401:
402: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
403: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
404: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
405: RAISE OKL_API.G_EXCEPTION_ERROR;
406: END IF;
407:
408: asset_rents(k).se_amount := l_rent_flow.se_amount;
401:
402: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
403: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
404: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
405: RAISE OKL_API.G_EXCEPTION_ERROR;
406: END IF;
407:
408: asset_rents(k).se_amount := l_rent_flow.se_amount;
409: asset_rents(k).se_date := l_rent_flow.se_date;
427: p_days_in_year => l_day_convention_year,
428: p_arrears => 'N',
429: x_return_status => lx_return_status);
430:
431: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
432: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
433: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
434: RAISE OKL_API.G_EXCEPTION_ERROR;
435: END IF;
428: p_arrears => 'N',
429: x_return_status => lx_return_status);
430:
431: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
432: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
433: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
434: RAISE OKL_API.G_EXCEPTION_ERROR;
435: END IF;
436:
429: x_return_status => lx_return_status);
430:
431: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
432: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
433: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
434: RAISE OKL_API.G_EXCEPTION_ERROR;
435: END IF;
436:
437: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
430:
431: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
432: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
433: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
434: RAISE OKL_API.G_EXCEPTION_ERROR;
435: END IF;
436:
437: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
438: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' asset rent count ' || to_char(asset_rents.COUNT));
578:
579: END IF;
580: If k = 1 then
581:
582: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
583: p_msg_name => 'OKL_CANNOT_CALC_IIR');
584: Else
585:
586: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
582: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
583: p_msg_name => 'OKL_CANNOT_CALC_IIR');
584: Else
585:
586: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
587: p_msg_name => 'OKL_IIR_CALC_IIR_LIMIT',
588: p_token1 => 'IIR_LIMIT',
589: p_token1_value => l_iir_limit*100);
590: End If;
588: p_token1 => 'IIR_LIMIT',
589: p_token1_value => l_iir_limit*100);
590: End If;
591:
592: RAISE OKL_API.G_EXCEPTION_ERROR;
593: END IF;
594:
595: l_prev_incr_sign := SIGN(l_increment);
596: l_prev_diff_sign := SIGN(l_diff);
673: p_end_date => l_end_date,
674: p_arrears => 'Y',
675: x_return_status => lx_return_status);
676:
677: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
678: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
679: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
680: RAISE OKL_API.G_EXCEPTION_ERROR;
681: END IF;
674: p_arrears => 'Y',
675: x_return_status => lx_return_status);
676:
677: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
678: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
679: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
680: RAISE OKL_API.G_EXCEPTION_ERROR;
681: END IF;
682:
675: x_return_status => lx_return_status);
676:
677: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
678: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
679: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
680: RAISE OKL_API.G_EXCEPTION_ERROR;
681: END IF;
682:
683: pre_tax_income(j).se_amount := l_termination_val*l_days*l_bk_yield/360;
676:
677: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
678: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
679: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
680: RAISE OKL_API.G_EXCEPTION_ERROR;
681: END IF;
682:
683: pre_tax_income(j).se_amount := l_termination_val*l_days*l_bk_yield/360;
684: l_termination_val := l_termination_val*(1 + l_days*l_bk_yield/360);
713: p_end_date => l_end_date,
714: p_arrears => l_rent_sll.arrears_yn,
715: x_return_status => lx_return_status);
716:
717: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
718: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
719: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
720: RAISE OKL_API.G_EXCEPTION_ERROR;
721: END IF;
714: p_arrears => l_rent_sll.arrears_yn,
715: x_return_status => lx_return_status);
716:
717: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
718: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
719: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
720: RAISE OKL_API.G_EXCEPTION_ERROR;
721: END IF;
722:
715: x_return_status => lx_return_status);
716:
717: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
718: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
719: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
720: RAISE OKL_API.G_EXCEPTION_ERROR;
721: END IF;
722:
723: IF j = 1 AND l_interim_interest > 0 THEN
716:
717: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
718: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
719: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
720: RAISE OKL_API.G_EXCEPTION_ERROR;
721: END IF;
722:
723: IF j = 1 AND l_interim_interest > 0 THEN
724:
770: p_end_date => l_end_date,
771: p_arrears => 'Y',
772: x_return_status => lx_return_status);
773:
774: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
775: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
776: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
777: RAISE OKL_API.G_EXCEPTION_ERROR;
778: END IF;
771: p_arrears => 'Y',
772: x_return_status => lx_return_status);
773:
774: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
775: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
776: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
777: RAISE OKL_API.G_EXCEPTION_ERROR;
778: END IF;
779:
772: x_return_status => lx_return_status);
773:
774: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
775: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
776: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
777: RAISE OKL_API.G_EXCEPTION_ERROR;
778: END IF;
779:
780: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
773:
774: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
775: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
776: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
777: RAISE OKL_API.G_EXCEPTION_ERROR;
778: END IF;
779:
780: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
781: l_days := l_days - 1;
845: p_end_date => l_end_date,
846: p_arrears => l_rent_sll.arrears_yn,
847: x_return_status => lx_return_status);
848:
849: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
850: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
851: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
852: RAISE OKL_API.G_EXCEPTION_ERROR;
853: END IF;
846: p_arrears => l_rent_sll.arrears_yn,
847: x_return_status => lx_return_status);
848:
849: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
850: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
851: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
852: RAISE OKL_API.G_EXCEPTION_ERROR;
853: END IF;
854:
847: x_return_status => lx_return_status);
848:
849: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
850: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
851: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
852: RAISE OKL_API.G_EXCEPTION_ERROR;
853: END IF;
854:
855: IF j = 1 AND l_interim_interest > 0 THEN
848:
849: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
850: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
851: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
852: RAISE OKL_API.G_EXCEPTION_ERROR;
853: END IF;
854:
855: IF j = 1 AND l_interim_interest > 0 THEN
856: l_days := 0;
889: p_end_date => l_end_date,
890: p_arrears => 'Y',
891: x_return_status => lx_return_status);
892:
893: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
894: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
895: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
896: RAISE OKL_API.G_EXCEPTION_ERROR;
897: END IF;
890: p_arrears => 'Y',
891: x_return_status => lx_return_status);
892:
893: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
894: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
895: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
896: RAISE OKL_API.G_EXCEPTION_ERROR;
897: END IF;
898: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
891: x_return_status => lx_return_status);
892:
893: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
894: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
895: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
896: RAISE OKL_API.G_EXCEPTION_ERROR;
897: END IF;
898: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
899: l_days := l_days - 1;
892:
893: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
894: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
895: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
896: RAISE OKL_API.G_EXCEPTION_ERROR;
897: END IF;
898: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
899: l_days := l_days - 1;
900: END IF;
946: p_end_date => l_end_date,
947: p_arrears => l_rent_sll.arrears_yn,
948: x_return_status => lx_return_status);
949:
950: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
951: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
952: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
953: RAISE OKL_API.G_EXCEPTION_ERROR;
954: END IF;
947: p_arrears => l_rent_sll.arrears_yn,
948: x_return_status => lx_return_status);
949:
950: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
951: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
952: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
953: RAISE OKL_API.G_EXCEPTION_ERROR;
954: END IF;
955:
948: x_return_status => lx_return_status);
949:
950: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
951: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
952: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
953: RAISE OKL_API.G_EXCEPTION_ERROR;
954: END IF;
955:
956: IF j = 1 AND l_interim_interest > 0 THEN
949:
950: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
951: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
952: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
953: RAISE OKL_API.G_EXCEPTION_ERROR;
954: END IF;
955:
956: IF j = 1 AND l_interim_interest > 0 THEN
957: l_days := 0;
999: p_end_date => l_end_date,
1000: p_arrears => 'Y',
1001: x_return_status => lx_return_status);
1002:
1003: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1004: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1005: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1006: RAISE OKL_API.G_EXCEPTION_ERROR;
1007: END IF;
1000: p_arrears => 'Y',
1001: x_return_status => lx_return_status);
1002:
1003: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1004: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1005: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1006: RAISE OKL_API.G_EXCEPTION_ERROR;
1007: END IF;
1008: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
1001: x_return_status => lx_return_status);
1002:
1003: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1004: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1005: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1006: RAISE OKL_API.G_EXCEPTION_ERROR;
1007: END IF;
1008: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
1009: l_days := l_days - 1;
1002:
1003: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1004: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1005: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1006: RAISE OKL_API.G_EXCEPTION_ERROR;
1007: END IF;
1008: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
1009: l_days := l_days - 1;
1010: END IF;
1195:
1196: END IF;
1197: EXCEPTION
1198:
1199: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1200:
1201: x_return_status := G_RET_STS_ERROR;
1202:
1203: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1199: WHEN OKL_API.G_EXCEPTION_ERROR THEN
1200:
1201: x_return_status := G_RET_STS_ERROR;
1202:
1203: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1204:
1205: x_return_status := G_RET_STS_UNEXP_ERROR;
1206:
1207: WHEN OTHERS THEN
1205: x_return_status := G_RET_STS_UNEXP_ERROR;
1206:
1207: WHEN OTHERS THEN
1208:
1209: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1210: p_msg_name => G_DB_ERROR,
1211: p_token1 => G_PROG_NAME_TOKEN,
1212: p_token1_value => l_prog_name,
1213: p_token2 => G_SQLCODE_TOKEN,
1517: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1518: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
1519: END IF;
1520: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
1521: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1522: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
1523: RAISE OKL_API.G_EXCEPTION_ERROR;
1524: END IF;
1525:
1519: END IF;
1520: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
1521: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1522: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
1523: RAISE OKL_API.G_EXCEPTION_ERROR;
1524: END IF;
1525:
1526: If nvl(fee_type_rec.What, 'N') = 'Y' Then
1527:
1538: x_primary_sty_id => l_sty_id,
1539: x_primary_sty_name => l_stream_name);
1540:
1541: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1542: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1543: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1544: RAISE OKL_API.G_EXCEPTION_ERROR;
1545: END IF;
1546: --l_stream_name := 'RENT';
1540:
1541: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1542: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1543: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1544: RAISE OKL_API.G_EXCEPTION_ERROR;
1545: END IF;
1546: --l_stream_name := 'RENT';
1547: End If;
1548:
1559: p_khr_id => p_khr_id,
1560: x_arrears_pay_dates_option => l_arrears_pay_dates_option,
1561: x_return_status => lx_return_status);
1562:
1563: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1564: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1565: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
1566: RAISE OKL_API.G_EXCEPTION_ERROR;
1567: END IF;
1560: x_arrears_pay_dates_option => l_arrears_pay_dates_option,
1561: x_return_status => lx_return_status);
1562:
1563: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1564: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1565: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
1566: RAISE OKL_API.G_EXCEPTION_ERROR;
1567: END IF;
1568: END IF;
1561: x_return_status => lx_return_status);
1562:
1563: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1564: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1565: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
1566: RAISE OKL_API.G_EXCEPTION_ERROR;
1567: END IF;
1568: END IF;
1569: -- Bug 6274342 DJANASWA end
1562:
1563: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1564: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1565: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
1566: RAISE OKL_API.G_EXCEPTION_ERROR;
1567: END IF;
1568: END IF;
1569: -- Bug 6274342 DJANASWA end
1570:
1590: p_end_date => l_rent_flow.se_date,
1591: p_arrears => l_rent_flow.se_arrears,
1592: x_return_status => lx_return_status);
1593:
1594: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1595: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1596: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1597: RAISE OKL_API.G_EXCEPTION_ERROR;
1598: END IF;
1591: p_arrears => l_rent_flow.se_arrears,
1592: x_return_status => lx_return_status);
1593:
1594: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1595: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1596: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1597: RAISE OKL_API.G_EXCEPTION_ERROR;
1598: END IF;
1599:
1592: x_return_status => lx_return_status);
1593:
1594: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1595: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1596: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1597: RAISE OKL_API.G_EXCEPTION_ERROR;
1598: END IF;
1599:
1600: asset_rents(k).se_amount := l_rent_flow.se_amount;
1593:
1594: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1595: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1596: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1597: RAISE OKL_API.G_EXCEPTION_ERROR;
1598: END IF;
1599:
1600: asset_rents(k).se_amount := l_rent_flow.se_amount;
1601: asset_rents(k).se_date := l_rent_flow.se_date;
1629: p_end_date => l_rent_sll.start_date,
1630: p_arrears => 'N',
1631: x_return_status => lx_return_status);
1632:
1633: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1634: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1635: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1636: RAISE OKL_API.G_EXCEPTION_ERROR;
1637: END IF;
1630: p_arrears => 'N',
1631: x_return_status => lx_return_status);
1632:
1633: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1634: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1635: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1636: RAISE OKL_API.G_EXCEPTION_ERROR;
1637: END IF;
1638:
1631: x_return_status => lx_return_status);
1632:
1633: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1634: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1635: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1636: RAISE OKL_API.G_EXCEPTION_ERROR;
1637: END IF;
1638:
1639: -- print( l_prog_name, ' asset rent count ' || to_char(asset_rents.COUNT));
1632:
1633: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1634: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1635: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1636: RAISE OKL_API.G_EXCEPTION_ERROR;
1637: END IF;
1638:
1639: -- print( l_prog_name, ' asset rent count ' || to_char(asset_rents.COUNT));
1640: LOOP
1681: p_days_in_year => l_day_convention_year,
1682: p_end_date => l_k_end_date,
1683: p_arrears => 'Y',
1684: x_return_status => lx_return_status);
1685: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1686: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1687: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1688: RAISE OKL_API.G_EXCEPTION_ERROR;
1689: END IF;
1682: p_end_date => l_k_end_date,
1683: p_arrears => 'Y',
1684: x_return_status => lx_return_status);
1685: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1686: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1687: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1688: RAISE OKL_API.G_EXCEPTION_ERROR;
1689: END IF;
1690: l_interest := l_open_book*l_days*l_iir/360;
1683: p_arrears => 'Y',
1684: x_return_status => lx_return_status);
1685: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1686: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1687: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1688: RAISE OKL_API.G_EXCEPTION_ERROR;
1689: END IF;
1690: l_interest := l_open_book*l_days*l_iir/360;
1691: l_principal := l_payment - l_interest;
1684: x_return_status => lx_return_status);
1685: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1686: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1687: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1688: RAISE OKL_API.G_EXCEPTION_ERROR;
1689: END IF;
1690: l_interest := l_open_book*l_days*l_iir/360;
1691: l_principal := l_payment - l_interest;
1692: l_close_book := l_open_book - l_principal;
1830: -- print( l_prog_name, ' irr ' || ABS(l_iir) );
1831: -- print( l_prog_name, ' irr limit ' || l_iir_limit );
1832:
1833: If k = 1 then
1834: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1835: p_msg_name => 'OKL_CANNOT_CALC_IIR');
1836: Else
1837: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1838: p_msg_name => 'OKL_IIR_CALC_IIR_LIMIT',
1833: If k = 1 then
1834: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1835: p_msg_name => 'OKL_CANNOT_CALC_IIR');
1836: Else
1837: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1838: p_msg_name => 'OKL_IIR_CALC_IIR_LIMIT',
1839: p_token1 => 'IIR_LIMIT',
1840: p_token1_value => l_iir_limit*100);
1841: End If;
1838: p_msg_name => 'OKL_IIR_CALC_IIR_LIMIT',
1839: p_token1 => 'IIR_LIMIT',
1840: p_token1_value => l_iir_limit*100);
1841: End If;
1842: RAISE OKL_API.G_EXCEPTION_ERROR;
1843: END IF;
1844:
1845: l_prev_incr_sign := SIGN(l_increment);
1846: l_prev_diff_sign := SIGN(l_diff);
1917: p_end_date => l_end_date,
1918: p_arrears => 'Y',
1919: x_return_status => lx_return_status);
1920:
1921: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1922: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1923: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1924: RAISE OKL_API.G_EXCEPTION_ERROR;
1925: END IF;
1918: p_arrears => 'Y',
1919: x_return_status => lx_return_status);
1920:
1921: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1922: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1923: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1924: RAISE OKL_API.G_EXCEPTION_ERROR;
1925: END IF;
1926:
1919: x_return_status => lx_return_status);
1920:
1921: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1922: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1923: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1924: RAISE OKL_API.G_EXCEPTION_ERROR;
1925: END IF;
1926:
1927: pre_tax_income(j).se_amount := l_termination_val*l_days*l_bk_yield/360;
1920:
1921: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1922: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1923: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1924: RAISE OKL_API.G_EXCEPTION_ERROR;
1925: END IF;
1926:
1927: pre_tax_income(j).se_amount := l_termination_val*l_days*l_bk_yield/360;
1928: l_termination_val := l_termination_val*(1 + l_days*l_bk_yield/360);
1958: p_end_date => l_end_date,
1959: p_arrears => l_rent_sll.arrears_yn,
1960: x_return_status => lx_return_status);
1961:
1962: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1963: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1964: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1965: RAISE OKL_API.G_EXCEPTION_ERROR;
1966: END IF;
1959: p_arrears => l_rent_sll.arrears_yn,
1960: x_return_status => lx_return_status);
1961:
1962: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1963: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1964: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1965: RAISE OKL_API.G_EXCEPTION_ERROR;
1966: END IF;
1967:
1960: x_return_status => lx_return_status);
1961:
1962: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1963: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1964: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1965: RAISE OKL_API.G_EXCEPTION_ERROR;
1966: END IF;
1967:
1968: IF j = 1 AND l_interim_interest > 0 THEN
1961:
1962: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1963: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1964: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1965: RAISE OKL_API.G_EXCEPTION_ERROR;
1966: END IF;
1967:
1968: IF j = 1 AND l_interim_interest > 0 THEN
1969:
2018: p_end_date => l_end_date,
2019: p_arrears => 'Y',
2020: x_return_status => lx_return_status);
2021:
2022: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2023: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2024: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2025: RAISE OKL_API.G_EXCEPTION_ERROR;
2026: END IF;
2019: p_arrears => 'Y',
2020: x_return_status => lx_return_status);
2021:
2022: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2023: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2024: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2025: RAISE OKL_API.G_EXCEPTION_ERROR;
2026: END IF;
2027:
2020: x_return_status => lx_return_status);
2021:
2022: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2023: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2024: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2025: RAISE OKL_API.G_EXCEPTION_ERROR;
2026: END IF;
2027:
2028: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
2021:
2022: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2023: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2024: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2025: RAISE OKL_API.G_EXCEPTION_ERROR;
2026: END IF;
2027:
2028: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
2029: l_days := l_days - 1;
2110: p_end_date => l_end_date,
2111: p_arrears => l_rent_sll.arrears_yn,
2112: x_return_status => lx_return_status);
2113:
2114: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2115: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2116: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2117: RAISE OKL_API.G_EXCEPTION_ERROR;
2118: END IF;
2111: p_arrears => l_rent_sll.arrears_yn,
2112: x_return_status => lx_return_status);
2113:
2114: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2115: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2116: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2117: RAISE OKL_API.G_EXCEPTION_ERROR;
2118: END IF;
2119:
2112: x_return_status => lx_return_status);
2113:
2114: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2115: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2116: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2117: RAISE OKL_API.G_EXCEPTION_ERROR;
2118: END IF;
2119:
2120: IF j = 1 AND l_interim_interest > 0 THEN
2113:
2114: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2115: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2116: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2117: RAISE OKL_API.G_EXCEPTION_ERROR;
2118: END IF;
2119:
2120: IF j = 1 AND l_interim_interest > 0 THEN
2121: l_days := 0;
2158: p_end_date => l_end_date,
2159: p_arrears => 'Y',
2160: x_return_status => lx_return_status);
2161:
2162: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2163: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2164: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2165: RAISE OKL_API.G_EXCEPTION_ERROR;
2166: END IF;
2159: p_arrears => 'Y',
2160: x_return_status => lx_return_status);
2161:
2162: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2163: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2164: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2165: RAISE OKL_API.G_EXCEPTION_ERROR;
2166: END IF;
2167: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
2160: x_return_status => lx_return_status);
2161:
2162: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2163: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2164: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2165: RAISE OKL_API.G_EXCEPTION_ERROR;
2166: END IF;
2167: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
2168: l_days := l_days - 1;
2161:
2162: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2163: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2164: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2165: RAISE OKL_API.G_EXCEPTION_ERROR;
2166: END IF;
2167: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
2168: l_days := l_days - 1;
2169: END IF;
2218: p_end_date => l_end_date,
2219: p_arrears => l_rent_sll.arrears_yn,
2220: x_return_status => lx_return_status);
2221:
2222: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2223: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2224: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2225: RAISE OKL_API.G_EXCEPTION_ERROR;
2226: END IF;
2219: p_arrears => l_rent_sll.arrears_yn,
2220: x_return_status => lx_return_status);
2221:
2222: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2223: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2224: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2225: RAISE OKL_API.G_EXCEPTION_ERROR;
2226: END IF;
2227:
2220: x_return_status => lx_return_status);
2221:
2222: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2223: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2224: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2225: RAISE OKL_API.G_EXCEPTION_ERROR;
2226: END IF;
2227:
2228: IF j = 1 AND l_interim_interest > 0 THEN
2221:
2222: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2223: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2224: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2225: RAISE OKL_API.G_EXCEPTION_ERROR;
2226: END IF;
2227:
2228: IF j = 1 AND l_interim_interest > 0 THEN
2229: l_days := 0;
2275: p_end_date => l_end_date,
2276: p_arrears => 'Y',
2277: x_return_status => lx_return_status);
2278:
2279: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2280: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2281: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2282: RAISE OKL_API.G_EXCEPTION_ERROR;
2283: END IF;
2276: p_arrears => 'Y',
2277: x_return_status => lx_return_status);
2278:
2279: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2280: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2281: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2282: RAISE OKL_API.G_EXCEPTION_ERROR;
2283: END IF;
2284: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
2277: x_return_status => lx_return_status);
2278:
2279: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2280: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2281: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2282: RAISE OKL_API.G_EXCEPTION_ERROR;
2283: END IF;
2284: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
2285: l_days := l_days - 1;
2278:
2279: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2280: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2281: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2282: RAISE OKL_API.G_EXCEPTION_ERROR;
2283: END IF;
2284: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
2285: l_days := l_days - 1;
2286: END IF;
2335: p_end_date => l_end_date,
2336: p_arrears => l_rent_sll.arrears_yn,
2337: x_return_status => lx_return_status);
2338:
2339: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2340: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2341: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2342: RAISE OKL_API.G_EXCEPTION_ERROR;
2343: END IF;
2336: p_arrears => l_rent_sll.arrears_yn,
2337: x_return_status => lx_return_status);
2338:
2339: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2340: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2341: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2342: RAISE OKL_API.G_EXCEPTION_ERROR;
2343: END IF;
2344:
2337: x_return_status => lx_return_status);
2338:
2339: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2340: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2341: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2342: RAISE OKL_API.G_EXCEPTION_ERROR;
2343: END IF;
2344:
2345: IF j = 1 AND l_interim_interest > 0 THEN
2338:
2339: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2340: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2341: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2342: RAISE OKL_API.G_EXCEPTION_ERROR;
2343: END IF;
2344:
2345: IF j = 1 AND l_interim_interest > 0 THEN
2346: l_days := 0;
2390: p_end_date => l_end_date,
2391: p_arrears => 'Y',
2392: x_return_status => lx_return_status);
2393:
2394: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2395: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2396: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2397: RAISE OKL_API.G_EXCEPTION_ERROR;
2398: END IF;
2391: p_arrears => 'Y',
2392: x_return_status => lx_return_status);
2393:
2394: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2395: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2396: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2397: RAISE OKL_API.G_EXCEPTION_ERROR;
2398: END IF;
2399: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
2392: x_return_status => lx_return_status);
2393:
2394: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2395: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2396: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2397: RAISE OKL_API.G_EXCEPTION_ERROR;
2398: END IF;
2399: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
2400: l_days := l_days - 1;
2393:
2394: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2395: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2396: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
2397: RAISE OKL_API.G_EXCEPTION_ERROR;
2398: END IF;
2399: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
2400: l_days := l_days - 1;
2401: END IF;
2623: -- print( l_prog_name, 'end' );
2624:
2625: EXCEPTION
2626:
2627: WHEN OKL_API.G_EXCEPTION_ERROR THEN
2628:
2629: x_return_status := G_RET_STS_ERROR;
2630:
2631: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2627: WHEN OKL_API.G_EXCEPTION_ERROR THEN
2628:
2629: x_return_status := G_RET_STS_ERROR;
2630:
2631: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2632:
2633: x_return_status := G_RET_STS_UNEXP_ERROR;
2634:
2635: WHEN OTHERS THEN
2633: x_return_status := G_RET_STS_UNEXP_ERROR;
2634:
2635: WHEN OTHERS THEN
2636:
2637: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
2638: p_msg_name => G_DB_ERROR,
2639: p_token1 => G_PROG_NAME_TOKEN,
2640: p_token1_value => l_prog_name,
2641: p_token2 => G_SQLCODE_TOKEN,
2664: -- History : 15-SEP-2003 BAKUHCIB CREATED for Bug# *****
2665: -- End of Comments
2666: ---------------------------------------------------------------------------
2667: PROCEDURE comp_so_bk_yd(p_api_version IN NUMBER,
2668: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2669: x_return_status OUT NOCOPY VARCHAR2,
2670: x_msg_count OUT NOCOPY NUMBER,
2671: x_msg_data OUT NOCOPY VARCHAR2,
2672: p_khr_id IN NUMBER,
2800: END IF;
2801: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2802: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' begin');
2803: END IF;
2804: x_return_status := OKL_API.G_RET_STS_SUCCESS;
2805: -- Call start_activity to create savepoint, check compatibility
2806: -- and initialize message list
2807: x_return_status := OKL_API.START_ACTIVITY (
2808: l_api_name
2803: END IF;
2804: x_return_status := OKL_API.G_RET_STS_SUCCESS;
2805: -- Call start_activity to create savepoint, check compatibility
2806: -- and initialize message list
2807: x_return_status := OKL_API.START_ACTIVITY (
2808: l_api_name
2809: ,p_init_msg_list
2810: ,'_PVT'
2811: ,x_return_status);
2809: ,p_init_msg_list
2810: ,'_PVT'
2811: ,x_return_status);
2812: -- Check if activity started successfully
2813: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2814: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2815: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2816: RAISE OKL_API.G_EXCEPTION_ERROR;
2817: END IF;
2810: ,'_PVT'
2811: ,x_return_status);
2812: -- Check if activity started successfully
2813: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2814: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2815: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2816: RAISE OKL_API.G_EXCEPTION_ERROR;
2817: END IF;
2818: IF p_target <> 'PMNT' THEN
2811: ,x_return_status);
2812: -- Check if activity started successfully
2813: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2814: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2815: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2816: RAISE OKL_API.G_EXCEPTION_ERROR;
2817: END IF;
2818: IF p_target <> 'PMNT' THEN
2819: OKL_API.set_message(p_app_name => G_APP_NAME,
2812: -- Check if activity started successfully
2813: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2814: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2815: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2816: RAISE OKL_API.G_EXCEPTION_ERROR;
2817: END IF;
2818: IF p_target <> 'PMNT' THEN
2819: OKL_API.set_message(p_app_name => G_APP_NAME,
2820: p_msg_name => G_INVALID_VALUE,
2815: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2816: RAISE OKL_API.G_EXCEPTION_ERROR;
2817: END IF;
2818: IF p_target <> 'PMNT' THEN
2819: OKL_API.set_message(p_app_name => G_APP_NAME,
2820: p_msg_name => G_INVALID_VALUE,
2821: p_token1 => G_COL_NAME_TOKEN,
2822: p_token1_value => 'Target');
2823: RAISE OKL_API.G_EXCEPTION_ERROR;
2819: OKL_API.set_message(p_app_name => G_APP_NAME,
2820: p_msg_name => G_INVALID_VALUE,
2821: p_token1 => G_COL_NAME_TOKEN,
2822: p_token1_value => 'Target');
2823: RAISE OKL_API.G_EXCEPTION_ERROR;
2824: END IF;
2825:
2826: OPEN khr_type_csr;
2827: FETCH khr_type_csr INTO khr_type_rec;
2843: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2844: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, 'comp_so_bk_yd Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
2845: END IF;
2846: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
2847: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2848: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
2849: RAISE OKL_API.G_EXCEPTION_ERROR;
2850: END IF;
2851:
2845: END IF;
2846: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
2847: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2848: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
2849: RAISE OKL_API.G_EXCEPTION_ERROR;
2850: END IF;
2851:
2852: -- We are now calucuating Booking Yields
2853: -- Get the SLL payment info for a kle_id and khr_id
2857: p_kle_id => p_kle_id,
2858: p_line_type => l_line_type);
2859: FETCH c_rent_slls INTO l_rent_sll;
2860: IF c_rent_slls%NOTFOUND THEN
2861: OKL_API.set_message(p_app_name => G_APP_NAME,
2862: p_msg_name => G_INVALID_VALUE,
2863: p_token1 => G_COL_NAME_TOKEN,
2864: p_token1_value => 'khr_id/kle_id');
2865: RAISE OKL_API.G_EXCEPTION_ERROR;
2861: OKL_API.set_message(p_app_name => G_APP_NAME,
2862: p_msg_name => G_INVALID_VALUE,
2863: p_token1 => G_COL_NAME_TOKEN,
2864: p_token1_value => 'khr_id/kle_id');
2865: RAISE OKL_API.G_EXCEPTION_ERROR;
2866: END IF;
2867: CLOSE c_rent_slls;
2868: l_start_date := l_rent_sll.START_DATE;
2869:
2883: p_days_in_year => l_day_convention_year,
2884: p_end_date => l_rent_flow.se_date,
2885: p_arrears => l_rent_flow.se_arrears,
2886: x_return_status => x_return_status);
2887: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2888: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2889: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2890: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2891: END IF;
2884: p_end_date => l_rent_flow.se_date,
2885: p_arrears => l_rent_flow.se_arrears,
2886: x_return_status => x_return_status);
2887: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2888: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2889: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2890: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2891: END IF;
2892: asset_rents(k).se_amount := l_rent_flow.se_amount;
2885: p_arrears => l_rent_flow.se_arrears,
2886: x_return_status => x_return_status);
2887: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2888: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2889: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2890: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2891: END IF;
2892: asset_rents(k).se_amount := l_rent_flow.se_amount;
2893: asset_rents(k).se_date := l_rent_flow.se_date;
2886: x_return_status => x_return_status);
2887: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2888: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2889: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2890: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2891: END IF;
2892: asset_rents(k).se_amount := l_rent_flow.se_amount;
2893: asset_rents(k).se_date := l_rent_flow.se_date;
2894: asset_rents(k).se_arrears := l_rent_flow.se_arrears;
2897: IF l_rent_flow.se_arrears = 'Y' THEN
2898: l_start_date := l_start_date + 1;
2899: END IF;
2900: END LOOP;
2901: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2902: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2903: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2904: RAISE OKL_API.G_EXCEPTION_ERROR;
2905: END IF;
2898: l_start_date := l_start_date + 1;
2899: END IF;
2900: END LOOP;
2901: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2902: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2903: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2904: RAISE OKL_API.G_EXCEPTION_ERROR;
2905: END IF;
2906: -- Getting the asset cost
2899: END IF;
2900: END LOOP;
2901: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2902: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2903: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2904: RAISE OKL_API.G_EXCEPTION_ERROR;
2905: END IF;
2906: -- Getting the asset cost
2907: OKL_LA_STREAM_PVT.get_so_asset_oec(
2900: END LOOP;
2901: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2902: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2903: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2904: RAISE OKL_API.G_EXCEPTION_ERROR;
2905: END IF;
2906: -- Getting the asset cost
2907: OKL_LA_STREAM_PVT.get_so_asset_oec(
2908: p_khr_id => p_khr_id,
2910: p_subside_yn => l_subside_yn,
2911: x_return_status => x_return_status,
2912: x_asset_oec => l_asset_cost,
2913: x_start_date => ld_asset_start_date);
2914: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2915: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2916: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2917: RAISE OKL_API.G_EXCEPTION_ERROR;
2918: END IF;
2911: x_return_status => x_return_status,
2912: x_asset_oec => l_asset_cost,
2913: x_start_date => ld_asset_start_date);
2914: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2915: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2916: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2917: RAISE OKL_API.G_EXCEPTION_ERROR;
2918: END IF;
2919: -- Getting the Residual value
2912: x_asset_oec => l_asset_cost,
2913: x_start_date => ld_asset_start_date);
2914: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2915: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2916: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2917: RAISE OKL_API.G_EXCEPTION_ERROR;
2918: END IF;
2919: -- Getting the Residual value
2920: OKL_LA_STREAM_PVT.get_so_residual_value(
2913: x_start_date => ld_asset_start_date);
2914: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2915: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2916: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2917: RAISE OKL_API.G_EXCEPTION_ERROR;
2918: END IF;
2919: -- Getting the Residual value
2920: OKL_LA_STREAM_PVT.get_so_residual_value(
2921: p_khr_id => p_khr_id,
2923: p_subside_yn => l_subside_yn,
2924: x_return_status => x_return_status,
2925: x_residual_value => l_residual_value,
2926: x_start_date => ld_res_start_date);
2927: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2928: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2929: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2930: RAISE OKL_API.G_EXCEPTION_ERROR;
2931: END IF;
2924: x_return_status => x_return_status,
2925: x_residual_value => l_residual_value,
2926: x_start_date => ld_res_start_date);
2927: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2928: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2929: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2930: RAISE OKL_API.G_EXCEPTION_ERROR;
2931: END IF;
2932: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2925: x_residual_value => l_residual_value,
2926: x_start_date => ld_res_start_date);
2927: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2928: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2929: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2930: RAISE OKL_API.G_EXCEPTION_ERROR;
2931: END IF;
2932: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2933: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' cost ' || l_asset_cost || ' residual value ' || l_residual_value);
2926: x_start_date => ld_res_start_date);
2927: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2928: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2929: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2930: RAISE OKL_API.G_EXCEPTION_ERROR;
2931: END IF;
2932: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2933: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' cost ' || l_asset_cost || ' residual value ' || l_residual_value);
2934: END IF;
2965: x_return_status => x_return_status);
2966: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2967: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 5 '||x_return_status);
2968: END IF;
2969: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2970: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2971: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2972: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2973: END IF;
2966: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2967: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 5 '||x_return_status);
2968: END IF;
2969: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2970: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2971: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2972: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2973: END IF;
2974: l_termination_val := l_termination_val*(1 + l_days*l_bk_yield/360);
2967: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 5 '||x_return_status);
2968: END IF;
2969: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2970: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2971: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2972: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2973: END IF;
2974: l_termination_val := l_termination_val*(1 + l_days*l_bk_yield/360);
2975: l_se_date := LAST_DAY(l_start_date);
2968: END IF;
2969: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2970: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2971: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2972: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2973: END IF;
2974: l_termination_val := l_termination_val*(1 + l_days*l_bk_yield/360);
2975: l_se_date := LAST_DAY(l_start_date);
2976: IF TO_CHAR(LAST_DAY(l_se_date), 'DD') = '31' THEN
2987: p_days_in_year => l_day_convention_year,
2988: p_end_date => l_end_date,
2989: p_arrears => l_rent_sll.arrears_yn,
2990: x_return_status => x_return_status);
2991: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2992: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2993: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2994: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2995: END IF;
2988: p_end_date => l_end_date,
2989: p_arrears => l_rent_sll.arrears_yn,
2990: x_return_status => x_return_status);
2991: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2992: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2993: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2994: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2995: END IF;
2996: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2989: p_arrears => l_rent_sll.arrears_yn,
2990: x_return_status => x_return_status);
2991: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2992: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2993: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2994: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2995: END IF;
2996: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2997: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 7 '||x_return_status);
2990: x_return_status => x_return_status);
2991: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2992: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2993: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2994: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2995: END IF;
2996: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2997: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 7 '||x_return_status);
2998: END IF;
3022: x_return_status => x_return_status);
3023: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3024: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' # of days '||to_char(l_days));
3025: END IF;
3026: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3027: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3028: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3029: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
3030: END IF;
3023: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3024: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' # of days '||to_char(l_days));
3025: END IF;
3026: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3027: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3028: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3029: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
3030: END IF;
3031: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
3024: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' # of days '||to_char(l_days));
3025: END IF;
3026: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3027: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3028: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3029: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
3030: END IF;
3031: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
3032: l_days := l_days - 1;
3025: END IF;
3026: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3027: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3028: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3029: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
3030: END IF;
3031: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
3032: l_days := l_days - 1;
3033: END IF;
3064: x_return_status => x_return_status);
3065: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3066: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 9 '||x_return_status);
3067: END IF;
3068: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3069: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3070: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3071: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
3072: END IF;
3065: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3066: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 9 '||x_return_status);
3067: END IF;
3068: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3069: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3070: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3071: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
3072: END IF;
3073: l_termination_val := l_termination_val*(1 + l_days*l_bk_yield/360);
3066: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 9 '||x_return_status);
3067: END IF;
3068: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3069: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3070: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3071: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
3072: END IF;
3073: l_termination_val := l_termination_val*(1 + l_days*l_bk_yield/360);
3074: l_termination_val := l_termination_val - asset_rents(k).se_amount;
3067: END IF;
3068: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3069: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3070: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3071: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
3072: END IF;
3073: l_termination_val := l_termination_val*(1 + l_days*l_bk_yield/360);
3074: l_termination_val := l_termination_val - asset_rents(k).se_amount;
3075: END IF;
3138: l_prev_incr_sign := SIGN(l_increment);
3139: l_prev_diff_sign := SIGN(l_diff);
3140: l_prev_diff := l_diff;
3141: END LOOP;
3142: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3143: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3144: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3145: RAISE OKL_API.G_EXCEPTION_ERROR;
3146: END IF;
3139: l_prev_diff_sign := SIGN(l_diff);
3140: l_prev_diff := l_diff;
3141: END LOOP;
3142: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3143: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3144: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3145: RAISE OKL_API.G_EXCEPTION_ERROR;
3146: END IF;
3147: OKL_API.END_ACTIVITY (x_msg_count,
3140: l_prev_diff := l_diff;
3141: END LOOP;
3142: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3143: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3144: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3145: RAISE OKL_API.G_EXCEPTION_ERROR;
3146: END IF;
3147: OKL_API.END_ACTIVITY (x_msg_count,
3148: x_msg_data );
3141: END LOOP;
3142: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3143: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3144: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3145: RAISE OKL_API.G_EXCEPTION_ERROR;
3146: END IF;
3147: OKL_API.END_ACTIVITY (x_msg_count,
3148: x_msg_data );
3149: EXCEPTION
3143: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3144: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3145: RAISE OKL_API.G_EXCEPTION_ERROR;
3146: END IF;
3147: OKL_API.END_ACTIVITY (x_msg_count,
3148: x_msg_data );
3149: EXCEPTION
3150: WHEN OKL_API.G_EXCEPTION_ERROR THEN
3151: IF c_rent_slls%ISOPEN THEN
3146: END IF;
3147: OKL_API.END_ACTIVITY (x_msg_count,
3148: x_msg_data );
3149: EXCEPTION
3150: WHEN OKL_API.G_EXCEPTION_ERROR THEN
3151: IF c_rent_slls%ISOPEN THEN
3152: CLOSE c_rent_slls;
3153: END IF;
3154: IF c_rent_flows%ISOPEN THEN
3153: END IF;
3154: IF c_rent_flows%ISOPEN THEN
3155: CLOSE c_rent_flows;
3156: END IF;
3157: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3158: l_api_name,
3159: G_PKG_NAME,
3160: 'OKL_API.G_RET_STS_ERROR',
3161: x_msg_count,
3156: END IF;
3157: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3158: l_api_name,
3159: G_PKG_NAME,
3160: 'OKL_API.G_RET_STS_ERROR',
3161: x_msg_count,
3162: x_msg_data,
3163: '_PVT');
3164: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3160: 'OKL_API.G_RET_STS_ERROR',
3161: x_msg_count,
3162: x_msg_data,
3163: '_PVT');
3164: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3165: IF c_rent_slls%ISOPEN THEN
3166: CLOSE c_rent_slls;
3167: END IF;
3168: IF c_rent_flows%ISOPEN THEN
3167: END IF;
3168: IF c_rent_flows%ISOPEN THEN
3169: CLOSE c_rent_flows;
3170: END IF;
3171: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
3172: l_api_name,
3173: G_PKG_NAME,
3174: 'OKL_API.G_RET_STS_UNEXP_ERROR',
3175: x_msg_count,
3170: END IF;
3171: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
3172: l_api_name,
3173: G_PKG_NAME,
3174: 'OKL_API.G_RET_STS_UNEXP_ERROR',
3175: x_msg_count,
3176: x_msg_data,
3177: '_PVT');
3178: WHEN OTHERS THEN
3181: END IF;
3182: IF c_rent_flows%ISOPEN THEN
3183: CLOSE c_rent_flows;
3184: END IF;
3185: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
3186: l_api_name,
3187: G_PKG_NAME,
3188: 'OTHERS',
3189: x_msg_count,
3207: -- History : 07-SEP-2003 BAKUHCIB CREATED for Bug# *****
3208: -- End of Comments
3209: ---------------------------------------------------------------------------
3210: PROCEDURE comp_so_pre_tax_irr(p_api_version IN NUMBER,
3211: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3212: x_return_status OUT NOCOPY VARCHAR2,
3213: x_msg_count OUT NOCOPY NUMBER,
3214: x_msg_data OUT NOCOPY VARCHAR2,
3215: p_khr_id IN NUMBER,
3622: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3623: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'begin' );
3624:
3625: END IF;
3626: x_return_status := OKL_API.G_RET_STS_SUCCESS;
3627: -- Call start_activity to create savepoint, check compatibility
3628: -- and initialize message list
3629: x_return_status := OKL_API.START_ACTIVITY (
3630: l_api_name
3625: END IF;
3626: x_return_status := OKL_API.G_RET_STS_SUCCESS;
3627: -- Call start_activity to create savepoint, check compatibility
3628: -- and initialize message list
3629: x_return_status := OKL_API.START_ACTIVITY (
3630: l_api_name
3631: ,p_init_msg_list
3632: ,'_PVT'
3633: ,x_return_status);
3631: ,p_init_msg_list
3632: ,'_PVT'
3633: ,x_return_status);
3634: -- Check if activity started successfully
3635: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3636: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3637: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3638: RAISE OKL_API.G_EXCEPTION_ERROR;
3639: END IF;
3632: ,'_PVT'
3633: ,x_return_status);
3634: -- Check if activity started successfully
3635: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3636: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3637: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3638: RAISE OKL_API.G_EXCEPTION_ERROR;
3639: END IF;
3640: -- check if the target is correctly given
3633: ,x_return_status);
3634: -- Check if activity started successfully
3635: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3636: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3637: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3638: RAISE OKL_API.G_EXCEPTION_ERROR;
3639: END IF;
3640: -- check if the target is correctly given
3641: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3634: -- Check if activity started successfully
3635: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3636: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3637: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3638: RAISE OKL_API.G_EXCEPTION_ERROR;
3639: END IF;
3640: -- check if the target is correctly given
3641: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3642: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'check if the target is correctly given' || ' ' || p_target );
3642: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'check if the target is correctly given' || ' ' || p_target );
3643:
3644: END IF;
3645: IF p_target NOT IN ('RATE','PMNT') THEN
3646: OKL_API.set_message(p_app_name => G_APP_NAME,
3647: p_msg_name => G_INVALID_VALUE,
3648: p_token1 => G_COL_NAME_TOKEN,
3649: p_token1_value => 'Target');
3650: RAISE OKL_API.G_EXCEPTION_ERROR;
3646: OKL_API.set_message(p_app_name => G_APP_NAME,
3647: p_msg_name => G_INVALID_VALUE,
3648: p_token1 => G_COL_NAME_TOKEN,
3649: p_token1_value => 'Target');
3650: RAISE OKL_API.G_EXCEPTION_ERROR;
3651: END IF;
3652:
3653: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3654: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'check if the target is correctly given - done');
3663: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3664: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, 'comp_so_pre_tax_irr Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
3665: END IF;
3666: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
3667: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3668: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
3669: RAISE OKL_API.G_EXCEPTION_ERROR;
3670: END IF;
3671: OPEN get_start_date(P_khr_id => p_khr_id);
3665: END IF;
3666: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
3667: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3668: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
3669: RAISE OKL_API.G_EXCEPTION_ERROR;
3670: END IF;
3671: OPEN get_start_date(P_khr_id => p_khr_id);
3672: FETCH get_start_date INTO l_khr_start_date;
3673: IF get_start_date%NOTFOUND THEN
3670: END IF;
3671: OPEN get_start_date(P_khr_id => p_khr_id);
3672: FETCH get_start_date INTO l_khr_start_date;
3673: IF get_start_date%NOTFOUND THEN
3674: RAISE OKL_API.G_EXCEPTION_ERROR;
3675: END IF;
3676: CLOSE get_start_date;
3677: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3678: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'got start date');
3691: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3692: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec '|| x_return_status);
3693: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec - again '|| x_return_status);
3694: END IF;
3695: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3696: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3697: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3698: RAISE OKL_API.G_EXCEPTION_ERROR;
3699: END IF;
3692: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec '|| x_return_status);
3693: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec - again '|| x_return_status);
3694: END IF;
3695: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3696: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3697: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3698: RAISE OKL_API.G_EXCEPTION_ERROR;
3699: END IF;
3700: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3693: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec - again '|| x_return_status);
3694: END IF;
3695: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3696: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3697: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3698: RAISE OKL_API.G_EXCEPTION_ERROR;
3699: END IF;
3700: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3701: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' l_time_zero '|| x_return_status);
3694: END IF;
3695: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3696: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3697: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3698: RAISE OKL_API.G_EXCEPTION_ERROR;
3699: END IF;
3700: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3701: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' l_time_zero '|| x_return_status);
3702: END IF;
3709: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'before fee cost '|| x_return_status);
3710: END IF;
3711: FOR l_fee_cost IN c_fee_cost(p_khr_id => p_khr_id) LOOP
3712: IF l_fee_cost.start_date IS NOT NULL OR
3713: l_fee_cost.start_date <> OKL_API.G_MISS_DATE THEN
3714: l_time_zero_cost := l_time_zero_cost + l_fee_cost.amount;
3715: END IF;
3716: END LOOP;
3717:
3751: p_days_in_year => l_day_convention_year,
3752: p_end_date => l_inflow.cf_date,
3753: p_arrears => l_inflow.cf_arrear,
3754: x_return_status => x_return_status);
3755: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3756: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3757: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3758: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3759: END IF;
3752: p_end_date => l_inflow.cf_date,
3753: p_arrears => l_inflow.cf_arrear,
3754: x_return_status => x_return_status);
3755: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3756: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3757: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3758: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3759: END IF;
3760: IF (inflow_tbl(n).rate IS NULL OR
3753: p_arrears => l_inflow.cf_arrear,
3754: x_return_status => x_return_status);
3755: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3756: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3757: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3758: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3759: END IF;
3760: IF (inflow_tbl(n).rate IS NULL OR
3761: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3754: x_return_status => x_return_status);
3755: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3756: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3757: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3758: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3759: END IF;
3760: IF (inflow_tbl(n).rate IS NULL OR
3761: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3762: p_target = 'RATE' THEN
3757: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3758: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3759: END IF;
3760: IF (inflow_tbl(n).rate IS NULL OR
3761: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3762: p_target = 'RATE' THEN
3763: OKL_API.set_message(
3764: p_app_name => G_APP_NAME,
3765: p_msg_name => G_INVALID_VALUE,
3759: END IF;
3760: IF (inflow_tbl(n).rate IS NULL OR
3761: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3762: p_target = 'RATE' THEN
3763: OKL_API.set_message(
3764: p_app_name => G_APP_NAME,
3765: p_msg_name => G_INVALID_VALUE,
3766: p_token1 => G_COL_NAME_TOKEN,
3767: p_token1_value => 'Rate');
3764: p_app_name => G_APP_NAME,
3765: p_msg_name => G_INVALID_VALUE,
3766: p_token1 => G_COL_NAME_TOKEN,
3767: p_token1_value => 'Rate');
3768: x_return_status := OKL_API.G_RET_STS_ERROR;
3769: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3770: END IF;
3771: END LOOP;
3772:
3765: p_msg_name => G_INVALID_VALUE,
3766: p_token1 => G_COL_NAME_TOKEN,
3767: p_token1_value => 'Rate');
3768: x_return_status := OKL_API.G_RET_STS_ERROR;
3769: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3770: END IF;
3771: END LOOP;
3772:
3773: FOR l_inflow IN c_fee_inflows(p_khr_id => p_khr_id ) LOOP
3789: p_days_in_year => l_day_convention_year,
3790: p_end_date => l_inflow.cf_date,
3791: p_arrears => l_inflow.cf_arrear,
3792: x_return_status => x_return_status);
3793: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3794: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3795: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3796: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3797: END IF;
3790: p_end_date => l_inflow.cf_date,
3791: p_arrears => l_inflow.cf_arrear,
3792: x_return_status => x_return_status);
3793: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3794: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3795: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3796: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3797: END IF;
3798: IF (inflow_tbl(n).rate IS NULL OR
3791: p_arrears => l_inflow.cf_arrear,
3792: x_return_status => x_return_status);
3793: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3794: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3795: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3796: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3797: END IF;
3798: IF (inflow_tbl(n).rate IS NULL OR
3799: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3792: x_return_status => x_return_status);
3793: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3794: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3795: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3796: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3797: END IF;
3798: IF (inflow_tbl(n).rate IS NULL OR
3799: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3800: p_target = 'RATE' THEN
3795: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3796: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3797: END IF;
3798: IF (inflow_tbl(n).rate IS NULL OR
3799: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3800: p_target = 'RATE' THEN
3801: OKL_API.set_message(
3802: p_app_name => G_APP_NAME,
3803: p_msg_name => G_INVALID_VALUE,
3797: END IF;
3798: IF (inflow_tbl(n).rate IS NULL OR
3799: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3800: p_target = 'RATE' THEN
3801: OKL_API.set_message(
3802: p_app_name => G_APP_NAME,
3803: p_msg_name => G_INVALID_VALUE,
3804: p_token1 => G_COL_NAME_TOKEN,
3805: p_token1_value => 'Rate');
3802: p_app_name => G_APP_NAME,
3803: p_msg_name => G_INVALID_VALUE,
3804: p_token1 => G_COL_NAME_TOKEN,
3805: p_token1_value => 'Rate');
3806: x_return_status := OKL_API.G_RET_STS_ERROR;
3807: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3808: END IF;
3809:
3810: END LOOP;
3803: p_msg_name => G_INVALID_VALUE,
3804: p_token1 => G_COL_NAME_TOKEN,
3805: p_token1_value => 'Rate');
3806: x_return_status := OKL_API.G_RET_STS_ERROR;
3807: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3808: END IF;
3809:
3810: END LOOP;
3811:
3811:
3812: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3813: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after inflows # ' || n|| x_return_status);
3814: END IF;
3815: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3816: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3817: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3818: RAISE OKL_API.G_EXCEPTION_ERROR;
3819: END IF;
3812: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3813: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after inflows # ' || n|| x_return_status);
3814: END IF;
3815: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3816: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3817: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3818: RAISE OKL_API.G_EXCEPTION_ERROR;
3819: END IF;
3820: -- Collecting the Residual Value amount
3813: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after inflows # ' || n|| x_return_status);
3814: END IF;
3815: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3816: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3817: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3818: RAISE OKL_API.G_EXCEPTION_ERROR;
3819: END IF;
3820: -- Collecting the Residual Value amount
3821: -- Here since the Assets are associated to one so_payment line
3814: END IF;
3815: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3816: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3817: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3818: RAISE OKL_API.G_EXCEPTION_ERROR;
3819: END IF;
3820: -- Collecting the Residual Value amount
3821: -- Here since the Assets are associated to one so_payment line
3822: -- we sum up to get actual residual value , residual value percent
3830: p_subside_yn => l_subside_yn,
3831: x_return_status => x_return_status,
3832: x_residual_value => rv_tbl(p).cf_amount,
3833: x_start_date => ld_res_pay_start_date);
3834: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3835: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3836: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3837: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3838: END IF;
3831: x_return_status => x_return_status,
3832: x_residual_value => rv_tbl(p).cf_amount,
3833: x_start_date => ld_res_pay_start_date);
3834: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3835: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3836: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3837: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3838: END IF;
3839: l_residual_value := rv_tbl(p).cf_amount;
3832: x_residual_value => rv_tbl(p).cf_amount,
3833: x_start_date => ld_res_pay_start_date);
3834: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3835: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3836: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3837: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3838: END IF;
3839: l_residual_value := rv_tbl(p).cf_amount;
3840: rv_tbl(p).cf_date := l_asset_rv.end_date;
3833: x_start_date => ld_res_pay_start_date);
3834: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3835: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3836: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3837: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3838: END IF;
3839: l_residual_value := rv_tbl(p).cf_amount;
3840: rv_tbl(p).cf_date := l_asset_rv.end_date;
3841: rv_tbl(p).cf_dpp := l_asset_rv.days_per_period;
3843: OKL_PRICING_PVT.get_rate(p_khr_id => p_khr_id,
3844: p_date => rv_tbl(p).cf_date,
3845: x_rate => rv_tbl(p).rate,
3846: x_return_status => x_return_status);
3847: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3848: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3849: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3850: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3851: END IF;
3844: p_date => rv_tbl(p).cf_date,
3845: x_rate => rv_tbl(p).rate,
3846: x_return_status => x_return_status);
3847: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3848: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3849: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3850: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3851: END IF;
3852: IF (rv_tbl(p).rate IS NULL OR
3845: x_rate => rv_tbl(p).rate,
3846: x_return_status => x_return_status);
3847: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3848: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3849: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3850: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3851: END IF;
3852: IF (rv_tbl(p).rate IS NULL OR
3853: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
3846: x_return_status => x_return_status);
3847: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3848: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3849: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3850: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3851: END IF;
3852: IF (rv_tbl(p).rate IS NULL OR
3853: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
3854: p_target = 'RATE' THEN
3849: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3850: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3851: END IF;
3852: IF (rv_tbl(p).rate IS NULL OR
3853: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
3854: p_target = 'RATE' THEN
3855: OKL_API.set_message(
3856: p_app_name => G_APP_NAME,
3857: p_msg_name => G_INVALID_VALUE,
3851: END IF;
3852: IF (rv_tbl(p).rate IS NULL OR
3853: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
3854: p_target = 'RATE' THEN
3855: OKL_API.set_message(
3856: p_app_name => G_APP_NAME,
3857: p_msg_name => G_INVALID_VALUE,
3858: p_token1 => G_COL_NAME_TOKEN,
3859: p_token1_value => 'Rate');
3856: p_app_name => G_APP_NAME,
3857: p_msg_name => G_INVALID_VALUE,
3858: p_token1 => G_COL_NAME_TOKEN,
3859: p_token1_value => 'Rate');
3860: x_return_status := OKL_API.G_RET_STS_ERROR;
3861: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3862: END IF;
3863: rv_tbl(p).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3864: p_start_date => ld_res_pay_start_date,
3857: p_msg_name => G_INVALID_VALUE,
3858: p_token1 => G_COL_NAME_TOKEN,
3859: p_token1_value => 'Rate');
3860: x_return_status := OKL_API.G_RET_STS_ERROR;
3861: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3862: END IF;
3863: rv_tbl(p).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3864: p_start_date => ld_res_pay_start_date,
3865: p_days_in_month => l_day_convention_month,
3866: p_days_in_year => l_day_convention_year,
3867: p_end_date => rv_tbl(p).cf_date,
3868: p_arrears => 'Y',
3869: x_return_status => x_return_status);
3870: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3871: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3872: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3873: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3874: END IF;
3867: p_end_date => rv_tbl(p).cf_date,
3868: p_arrears => 'Y',
3869: x_return_status => x_return_status);
3870: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3871: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3872: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3873: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3874: END IF;
3875: END LOOP;
3868: p_arrears => 'Y',
3869: x_return_status => x_return_status);
3870: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3871: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3872: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3873: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3874: END IF;
3875: END LOOP;
3876: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3869: x_return_status => x_return_status);
3870: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3871: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3872: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3873: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3874: END IF;
3875: END LOOP;
3876: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3877: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
3875: END LOOP;
3876: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3877: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
3878: END IF;
3879: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3880: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3881: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3882: RAISE OKL_API.G_EXCEPTION_ERROR;
3883: END IF;
3876: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3877: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
3878: END IF;
3879: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3880: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3881: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3882: RAISE OKL_API.G_EXCEPTION_ERROR;
3883: END IF;
3884: -- Collecting the Outflow amounts of Fee
3877: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
3878: END IF;
3879: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3880: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3881: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3882: RAISE OKL_API.G_EXCEPTION_ERROR;
3883: END IF;
3884: -- Collecting the Outflow amounts of Fee
3885: -- Here the fee are attached to the contract header
3878: END IF;
3879: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3880: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3881: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3882: RAISE OKL_API.G_EXCEPTION_ERROR;
3883: END IF;
3884: -- Collecting the Outflow amounts of Fee
3885: -- Here the fee are attached to the contract header
3886: -- We do not include, security deposit fee, capiatlized fees, Pass through fee
3895: OKL_PRICING_PVT.get_rate(p_khr_id => p_khr_id,
3896: p_date => outflow_tbl(q).cf_date,
3897: x_rate => outflow_tbl(q).rate,
3898: x_return_status => x_return_status);
3899: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3900: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3901: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3902: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3903: END IF;
3896: p_date => outflow_tbl(q).cf_date,
3897: x_rate => outflow_tbl(q).rate,
3898: x_return_status => x_return_status);
3899: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3900: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3901: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3902: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3903: END IF;
3904: IF (outflow_tbl(q).rate IS NULL OR
3897: x_rate => outflow_tbl(q).rate,
3898: x_return_status => x_return_status);
3899: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3900: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3901: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3902: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3903: END IF;
3904: IF (outflow_tbl(q).rate IS NULL OR
3905: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3898: x_return_status => x_return_status);
3899: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3900: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3901: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3902: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3903: END IF;
3904: IF (outflow_tbl(q).rate IS NULL OR
3905: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3906: p_target = 'RATE' THEN
3901: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3902: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3903: END IF;
3904: IF (outflow_tbl(q).rate IS NULL OR
3905: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3906: p_target = 'RATE' THEN
3907: OKL_API.set_message(
3908: p_app_name => G_APP_NAME,
3909: p_msg_name => G_INVALID_VALUE,
3903: END IF;
3904: IF (outflow_tbl(q).rate IS NULL OR
3905: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3906: p_target = 'RATE' THEN
3907: OKL_API.set_message(
3908: p_app_name => G_APP_NAME,
3909: p_msg_name => G_INVALID_VALUE,
3910: p_token1 => G_COL_NAME_TOKEN,
3911: p_token1_value => 'Rate');
3908: p_app_name => G_APP_NAME,
3909: p_msg_name => G_INVALID_VALUE,
3910: p_token1 => G_COL_NAME_TOKEN,
3911: p_token1_value => 'Rate');
3912: x_return_status := OKL_API.G_RET_STS_ERROR;
3913: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3914: END IF;
3915: outflow_tbl(q).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3916: p_start_date => l_outflow.start_date,
3909: p_msg_name => G_INVALID_VALUE,
3910: p_token1 => G_COL_NAME_TOKEN,
3911: p_token1_value => 'Rate');
3912: x_return_status := OKL_API.G_RET_STS_ERROR;
3913: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3914: END IF;
3915: outflow_tbl(q).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3916: p_start_date => l_outflow.start_date,
3917: p_days_in_month => l_day_convention_month,
3918: p_days_in_year => l_day_convention_year,
3919: p_end_date => l_outflow.start_date,
3920: p_arrears => 'N',
3921: x_return_status => x_return_status);
3922: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3923: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3924: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3925: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3926: END IF;
3919: p_end_date => l_outflow.start_date,
3920: p_arrears => 'N',
3921: x_return_status => x_return_status);
3922: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3923: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3924: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3925: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3926: END IF;
3927: END IF;
3920: p_arrears => 'N',
3921: x_return_status => x_return_status);
3922: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3923: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3924: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3925: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3926: END IF;
3927: END IF;
3928: END LOOP;
3921: x_return_status => x_return_status);
3922: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3923: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3924: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3925: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3926: END IF;
3927: END IF;
3928: END LOOP;
3929: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3928: END LOOP;
3929: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3930: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after outflows ' || q|| x_return_status);
3931: END IF;
3932: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3933: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3934: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3935: RAISE OKL_API.G_EXCEPTION_ERROR;
3936: END IF;
3929: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3930: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after outflows ' || q|| x_return_status);
3931: END IF;
3932: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3933: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3934: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3935: RAISE OKL_API.G_EXCEPTION_ERROR;
3936: END IF;
3937: -- Collecting the Outflow amounts of asset
3930: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after outflows ' || q|| x_return_status);
3931: END IF;
3932: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3933: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3934: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3935: RAISE OKL_API.G_EXCEPTION_ERROR;
3936: END IF;
3937: -- Collecting the Outflow amounts of asset
3938: -- Since we are summing up to the so_payment line
3931: END IF;
3932: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3933: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3934: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3935: RAISE OKL_API.G_EXCEPTION_ERROR;
3936: END IF;
3937: -- Collecting the Outflow amounts of asset
3938: -- Since we are summing up to the so_payment line
3939: -- We would have one asset cost
3945: p_subside_yn => l_subside_yn,
3946: x_return_status => x_return_status,
3947: x_asset_oec => outflow_tbl(q).cf_amount,
3948: x_start_date => ld_asset_start_date);
3949: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3950: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3951: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3952: RAISE OKL_API.G_EXCEPTION_ERROR;
3953: END IF;
3946: x_return_status => x_return_status,
3947: x_asset_oec => outflow_tbl(q).cf_amount,
3948: x_start_date => ld_asset_start_date);
3949: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3950: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3951: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3952: RAISE OKL_API.G_EXCEPTION_ERROR;
3953: END IF;
3954: outflow_tbl(q).cf_amount := -(outflow_tbl(q).cf_amount);
3947: x_asset_oec => outflow_tbl(q).cf_amount,
3948: x_start_date => ld_asset_start_date);
3949: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3950: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3951: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3952: RAISE OKL_API.G_EXCEPTION_ERROR;
3953: END IF;
3954: outflow_tbl(q).cf_amount := -(outflow_tbl(q).cf_amount);
3955: outflow_tbl(q).cf_date := ld_asset_start_date;
3948: x_start_date => ld_asset_start_date);
3949: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3950: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3951: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3952: RAISE OKL_API.G_EXCEPTION_ERROR;
3953: END IF;
3954: outflow_tbl(q).cf_amount := -(outflow_tbl(q).cf_amount);
3955: outflow_tbl(q).cf_date := ld_asset_start_date;
3956: outflow_tbl(q).cf_dpp := 1;
3958: OKL_PRICING_PVT.get_rate(p_khr_id => p_khr_id,
3959: p_date => outflow_tbl(q).cf_date,
3960: x_rate => outflow_tbl(q).rate,
3961: x_return_status => x_return_status);
3962: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3963: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3964: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3965: RAISE OKL_API.G_EXCEPTION_ERROR;
3966: END IF;
3959: p_date => outflow_tbl(q).cf_date,
3960: x_rate => outflow_tbl(q).rate,
3961: x_return_status => x_return_status);
3962: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3963: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3964: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3965: RAISE OKL_API.G_EXCEPTION_ERROR;
3966: END IF;
3967: IF (outflow_tbl(q).rate IS NULL OR
3960: x_rate => outflow_tbl(q).rate,
3961: x_return_status => x_return_status);
3962: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3963: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3964: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3965: RAISE OKL_API.G_EXCEPTION_ERROR;
3966: END IF;
3967: IF (outflow_tbl(q).rate IS NULL OR
3968: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3961: x_return_status => x_return_status);
3962: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3963: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3964: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3965: RAISE OKL_API.G_EXCEPTION_ERROR;
3966: END IF;
3967: IF (outflow_tbl(q).rate IS NULL OR
3968: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3969: p_target = 'RATE' THEN
3964: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3965: RAISE OKL_API.G_EXCEPTION_ERROR;
3966: END IF;
3967: IF (outflow_tbl(q).rate IS NULL OR
3968: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3969: p_target = 'RATE' THEN
3970: OKL_API.set_message(
3971: p_app_name => G_APP_NAME,
3972: p_msg_name => G_INVALID_VALUE,
3966: END IF;
3967: IF (outflow_tbl(q).rate IS NULL OR
3968: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3969: p_target = 'RATE' THEN
3970: OKL_API.set_message(
3971: p_app_name => G_APP_NAME,
3972: p_msg_name => G_INVALID_VALUE,
3973: p_token1 => G_COL_NAME_TOKEN,
3974: p_token1_value => 'Rate');
3971: p_app_name => G_APP_NAME,
3972: p_msg_name => G_INVALID_VALUE,
3973: p_token1 => G_COL_NAME_TOKEN,
3974: p_token1_value => 'Rate');
3975: x_return_status := OKL_API.G_RET_STS_ERROR;
3976: RAISE OKL_API.G_EXCEPTION_ERROR;
3977: END IF;
3978: outflow_tbl(q).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3979: p_start_date => ld_asset_start_date,
3972: p_msg_name => G_INVALID_VALUE,
3973: p_token1 => G_COL_NAME_TOKEN,
3974: p_token1_value => 'Rate');
3975: x_return_status := OKL_API.G_RET_STS_ERROR;
3976: RAISE OKL_API.G_EXCEPTION_ERROR;
3977: END IF;
3978: outflow_tbl(q).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3979: p_start_date => ld_asset_start_date,
3980: p_days_in_month => l_day_convention_month,
3981: p_days_in_year => l_day_convention_year,
3982: p_end_date => ld_asset_start_date,
3983: p_arrears => 'N',
3984: x_return_status => x_return_status);
3985: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3986: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3987: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3988: RAISE OKL_API.G_EXCEPTION_ERROR;
3989: END IF;
3982: p_end_date => ld_asset_start_date,
3983: p_arrears => 'N',
3984: x_return_status => x_return_status);
3985: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3986: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3987: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3988: RAISE OKL_API.G_EXCEPTION_ERROR;
3989: END IF;
3990: END IF;
3983: p_arrears => 'N',
3984: x_return_status => x_return_status);
3985: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3986: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3987: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3988: RAISE OKL_API.G_EXCEPTION_ERROR;
3989: END IF;
3990: END IF;
3991: -- Collecting Pass-through Amounts
3984: x_return_status => x_return_status);
3985: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3986: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3987: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3988: RAISE OKL_API.G_EXCEPTION_ERROR;
3989: END IF;
3990: END IF;
3991: -- Collecting Pass-through Amounts
3992: FOR l_pass_th IN c_pass_th(p_khr_id => p_khr_id) LOOP
4000: pass_th_tbl(r).cf_dpp := l_pass_th.days_per_period;
4001: pass_th_tbl(r).cf_ppy := l_pass_th.periods_per_year;
4002: pass_th_tbl(r).rate := l_pass_th.rate;
4003: IF (pass_th_tbl(r).rate IS NULL OR
4004: pass_th_tbl(r).rate = OKL_API.G_MISS_NUM) AND
4005: p_target = 'RATE' THEN
4006: OKL_API.set_message(
4007: p_app_name => G_APP_NAME,
4008: p_msg_name => G_INVALID_VALUE,
4002: pass_th_tbl(r).rate := l_pass_th.rate;
4003: IF (pass_th_tbl(r).rate IS NULL OR
4004: pass_th_tbl(r).rate = OKL_API.G_MISS_NUM) AND
4005: p_target = 'RATE' THEN
4006: OKL_API.set_message(
4007: p_app_name => G_APP_NAME,
4008: p_msg_name => G_INVALID_VALUE,
4009: p_token1 => G_COL_NAME_TOKEN,
4010: p_token1_value => 'Rate');
4007: p_app_name => G_APP_NAME,
4008: p_msg_name => G_INVALID_VALUE,
4009: p_token1 => G_COL_NAME_TOKEN,
4010: p_token1_value => 'Rate');
4011: x_return_status := OKL_API.G_RET_STS_ERROR;
4012: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4013: END IF;
4014: pass_th_tbl(r).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
4015: p_start_date => l_pass_th.start_date,
4008: p_msg_name => G_INVALID_VALUE,
4009: p_token1 => G_COL_NAME_TOKEN,
4010: p_token1_value => 'Rate');
4011: x_return_status := OKL_API.G_RET_STS_ERROR;
4012: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4013: END IF;
4014: pass_th_tbl(r).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
4015: p_start_date => l_pass_th.start_date,
4016: p_days_in_month => l_day_convention_month,
4018: p_end_date => l_pass_th.cf_date,
4019: p_arrears => l_pass_th.arrears_yn,
4020: --l_pass_th.cf_arrear,
4021: x_return_status => x_return_status);
4022: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4023: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
4024: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4025: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4026: END IF;
4019: p_arrears => l_pass_th.arrears_yn,
4020: --l_pass_th.cf_arrear,
4021: x_return_status => x_return_status);
4022: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4023: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
4024: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4025: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4026: END IF;
4027:
4020: --l_pass_th.cf_arrear,
4021: x_return_status => x_return_status);
4022: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4023: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
4024: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4025: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4026: END IF;
4027:
4028: END If;
4021: x_return_status => x_return_status);
4022: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4023: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
4024: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4025: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4026: END IF;
4027:
4028: END If;
4029:
4027:
4028: END If;
4029:
4030: END LOOP;
4031: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4032: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4033: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4034: RAISE OKL_API.G_EXCEPTION_ERROR;
4035: END IF;
4028: END If;
4029:
4030: END LOOP;
4031: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4032: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4033: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4034: RAISE OKL_API.G_EXCEPTION_ERROR;
4035: END IF;
4036: -- Collecting Reccuring Amounts
4029:
4030: END LOOP;
4031: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4032: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4033: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4034: RAISE OKL_API.G_EXCEPTION_ERROR;
4035: END IF;
4036: -- Collecting Reccuring Amounts
4037: FOR l_rec_exp IN c_rec_exp(p_khr_id => p_khr_id) LOOP
4030: END LOOP;
4031: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4032: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4033: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4034: RAISE OKL_API.G_EXCEPTION_ERROR;
4035: END IF;
4036: -- Collecting Reccuring Amounts
4037: FOR l_rec_exp IN c_rec_exp(p_khr_id => p_khr_id) LOOP
4038: FOR s1 in 1..l_rec_exp.periods LOOP
4044: OKL_PRICING_PVT.get_rate(p_khr_id => p_khr_id,
4045: p_date =>l_rec_exp.start_date,
4046: x_rate => rec_exp_tbl(s).rate,
4047: x_return_status => x_return_status);
4048: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4049: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
4050: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4051: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4052: END IF;
4045: p_date =>l_rec_exp.start_date,
4046: x_rate => rec_exp_tbl(s).rate,
4047: x_return_status => x_return_status);
4048: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4049: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
4050: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4051: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4052: END IF;
4053: IF (rec_exp_tbl(s).rate IS NULL OR
4046: x_rate => rec_exp_tbl(s).rate,
4047: x_return_status => x_return_status);
4048: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4049: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
4050: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4051: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4052: END IF;
4053: IF (rec_exp_tbl(s).rate IS NULL OR
4054: rec_exp_tbl(s).rate = OKL_API.G_MISS_NUM) AND
4047: x_return_status => x_return_status);
4048: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4049: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
4050: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4051: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4052: END IF;
4053: IF (rec_exp_tbl(s).rate IS NULL OR
4054: rec_exp_tbl(s).rate = OKL_API.G_MISS_NUM) AND
4055: p_target = 'RATE' THEN
4050: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4051: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4052: END IF;
4053: IF (rec_exp_tbl(s).rate IS NULL OR
4054: rec_exp_tbl(s).rate = OKL_API.G_MISS_NUM) AND
4055: p_target = 'RATE' THEN
4056: OKL_API.set_message(
4057: p_app_name => G_APP_NAME,
4058: p_msg_name => G_INVALID_VALUE,
4052: END IF;
4053: IF (rec_exp_tbl(s).rate IS NULL OR
4054: rec_exp_tbl(s).rate = OKL_API.G_MISS_NUM) AND
4055: p_target = 'RATE' THEN
4056: OKL_API.set_message(
4057: p_app_name => G_APP_NAME,
4058: p_msg_name => G_INVALID_VALUE,
4059: p_token1 => G_COL_NAME_TOKEN,
4060: p_token1_value => 'Rate');
4057: p_app_name => G_APP_NAME,
4058: p_msg_name => G_INVALID_VALUE,
4059: p_token1 => G_COL_NAME_TOKEN,
4060: p_token1_value => 'Rate');
4061: x_return_status := OKL_API.G_RET_STS_ERROR;
4062: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4063: END IF;
4064: rec_exp_tbl(s).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
4065: p_start_date => l_rec_exp.start_date,
4058: p_msg_name => G_INVALID_VALUE,
4059: p_token1 => G_COL_NAME_TOKEN,
4060: p_token1_value => 'Rate');
4061: x_return_status := OKL_API.G_RET_STS_ERROR;
4062: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4063: END IF;
4064: rec_exp_tbl(s).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
4065: p_start_date => l_rec_exp.start_date,
4066: p_days_in_month => l_day_convention_month,
4067: p_days_in_year => l_day_convention_year,
4068: p_end_date => rec_exp_tbl(s).cf_date,
4069: p_arrears => 'N',
4070: x_return_status => x_return_status);
4071: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4072: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
4073: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4074: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4075: END IF;
4068: p_end_date => rec_exp_tbl(s).cf_date,
4069: p_arrears => 'N',
4070: x_return_status => x_return_status);
4071: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4072: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
4073: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4074: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4075: END IF;
4076: END LOOP;
4069: p_arrears => 'N',
4070: x_return_status => x_return_status);
4071: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4072: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
4073: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4074: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4075: END IF;
4076: END LOOP;
4077: END LOOP;
4070: x_return_status => x_return_status);
4071: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4072: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
4073: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4074: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4075: END IF;
4076: END LOOP;
4077: END LOOP;
4078: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4077: END LOOP;
4078: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4079: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after expenses '|| x_return_status);
4080: END IF;
4081: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4082: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4083: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4084: RAISE OKL_API.G_EXCEPTION_ERROR;
4085: END IF;
4078: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4079: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after expenses '|| x_return_status);
4080: END IF;
4081: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4082: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4083: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4084: RAISE OKL_API.G_EXCEPTION_ERROR;
4085: END IF;
4086: -- Validating Sum of all the inflow do not exceed the Total Time zero cost
4079: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after expenses '|| x_return_status);
4080: END IF;
4081: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4082: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4083: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4084: RAISE OKL_API.G_EXCEPTION_ERROR;
4085: END IF;
4086: -- Validating Sum of all the inflow do not exceed the Total Time zero cost
4087: IF n > 0 THEN
4080: END IF;
4081: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4082: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4083: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4084: RAISE OKL_API.G_EXCEPTION_ERROR;
4085: END IF;
4086: -- Validating Sum of all the inflow do not exceed the Total Time zero cost
4087: IF n > 0 THEN
4088: FOR n1 IN inflow_tbl.FIRST..inflow_tbl.LAST LOOP
4098: END IF;
4099: END LOOP;
4100: END IF;
4101: IF l_adv_payment >= l_time_zero_cost THEN
4102: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4103: p_msg_name => 'OKL_IRR_CALC_INF_LOOP',
4104: p_token1 => 'ADV_AMOUNT',
4105: p_token1_value => l_adv_payment,
4106: p_token2 => 'CAPITAL_AMOUNT',
4104: p_token1 => 'ADV_AMOUNT',
4105: p_token1_value => l_adv_payment,
4106: p_token2 => 'CAPITAL_AMOUNT',
4107: p_token2_value => l_time_zero_cost);
4108: RAISE OKL_API.G_EXCEPTION_ERROR;
4109: END IF;
4110: -- To get the Currency code and Precision
4111: OPEN get_curr_code_pre(p_khr_id => p_khr_id);
4112: FETCH get_curr_code_pre INTO l_precision;
4110: -- To get the Currency code and Precision
4111: OPEN get_curr_code_pre(p_khr_id => p_khr_id);
4112: FETCH get_curr_code_pre INTO l_precision;
4113: IF get_curr_code_pre%NOTFOUND THEN
4114: OKL_API.set_message(p_app_name => G_APP_NAME,
4115: p_msg_name => G_REQUIRED_VALUE,
4116: p_token1 => G_COL_NAME_TOKEN,
4117: p_token1_value => 'Currency Code ');
4118: RAISE OKL_API.G_EXCEPTION_ERROR;
4114: OKL_API.set_message(p_app_name => G_APP_NAME,
4115: p_msg_name => G_REQUIRED_VALUE,
4116: p_token1 => G_COL_NAME_TOKEN,
4117: p_token1_value => 'Currency Code ');
4118: RAISE OKL_API.G_EXCEPTION_ERROR;
4119: END IF;
4120: CLOSE get_curr_code_pre;
4121: -- Setting the IRR limit
4122: l_irr_limit := ROUND(NVL(ABS(fnd_profile.value('OKL_PRE_TAX_IRR_LIMIT')), 1000), 0)/100;
4148: l_cf_date := outflow_tbl(w).cf_date;
4149: l_days_in_future := outflow_tbl(w).cf_days;
4150: l_periods := l_days_in_future / l_cf_dpp;
4151: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
4152: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4153: p_msg_name => 'OKL_IRR_ZERO_DIV');
4154: x_return_status := OKL_API.G_RET_STS_ERROR;
4155: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4156: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide outflows '|| x_return_status);
4150: l_periods := l_days_in_future / l_cf_dpp;
4151: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
4152: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4153: p_msg_name => 'OKL_IRR_ZERO_DIV');
4154: x_return_status := OKL_API.G_RET_STS_ERROR;
4155: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4156: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide outflows '|| x_return_status);
4157: END IF;
4158: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4154: x_return_status := OKL_API.G_RET_STS_ERROR;
4155: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4156: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide outflows '|| x_return_status);
4157: END IF;
4158: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4159: END IF;
4160: IF p_target = 'RATE' THEN
4161: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + outflow_tbl(w).rate/(l_cf_ppy*100)), l_periods));
4162: ELSIF p_target = 'PMNT' THEN
4180: l_days_in_future := pass_th_tbl(v).cf_days;
4181: l_periods := l_days_in_future / l_cf_dpp;
4182: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
4183: --IF (l_irr/l_cf_ppy = -1) THEN
4184: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4185: p_msg_name => 'OKL_IRR_ZERO_DIV');
4186: x_return_status := OKL_API.G_RET_STS_ERROR;
4187: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4188: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide passthru '|| x_return_status);
4182: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
4183: --IF (l_irr/l_cf_ppy = -1) THEN
4184: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4185: p_msg_name => 'OKL_IRR_ZERO_DIV');
4186: x_return_status := OKL_API.G_RET_STS_ERROR;
4187: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4188: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide passthru '|| x_return_status);
4189: END IF;
4190: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4186: x_return_status := OKL_API.G_RET_STS_ERROR;
4187: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4188: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide passthru '|| x_return_status);
4189: END IF;
4190: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4191: END IF;
4192:
4193: IF p_target = 'RATE' THEN
4194: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + pass_th_tbl(v).rate/(l_cf_ppy*100)), l_periods));
4213: l_cf_date := rec_exp_tbl(t).cf_date;
4214: l_days_in_future := rec_exp_tbl(t).cf_days;
4215: l_periods := l_days_in_future / l_cf_dpp;
4216: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
4217: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4218: p_msg_name => 'OKL_IRR_ZERO_DIV');
4219: x_return_status := OKL_API.G_RET_STS_ERROR;
4220: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4221: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide expenses '|| x_return_status);
4215: l_periods := l_days_in_future / l_cf_dpp;
4216: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
4217: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4218: p_msg_name => 'OKL_IRR_ZERO_DIV');
4219: x_return_status := OKL_API.G_RET_STS_ERROR;
4220: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4221: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide expenses '|| x_return_status);
4222: END IF;
4223: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4219: x_return_status := OKL_API.G_RET_STS_ERROR;
4220: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4221: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide expenses '|| x_return_status);
4222: END IF;
4223: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4224: END IF;
4225: IF p_target = 'RATE' THEN
4226: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + rec_exp_tbl(t).rate/(l_cf_ppy*100)), l_periods));
4227: ELSIF p_target = 'PMNT' THEN
4243: l_cf_date := rv_tbl(z).cf_date;
4244: l_days_in_future := rv_tbl(z).cf_days;
4245: l_periods := l_days_in_future / l_cf_dpp;
4246: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
4247: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4248: p_msg_name => 'OKL_IRR_ZERO_DIV');
4249: x_return_status := OKL_API.G_RET_STS_ERROR;
4250: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4251: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide rvs '|| x_return_status);
4245: l_periods := l_days_in_future / l_cf_dpp;
4246: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
4247: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4248: p_msg_name => 'OKL_IRR_ZERO_DIV');
4249: x_return_status := OKL_API.G_RET_STS_ERROR;
4250: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4251: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide rvs '|| x_return_status);
4252: END IF;
4253: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4249: x_return_status := OKL_API.G_RET_STS_ERROR;
4250: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4251: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide rvs '|| x_return_status);
4252: END IF;
4253: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4254: END IF;
4255: IF p_target = 'RATE' THEN
4256: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + rv_tbl(z).rate/(l_cf_ppy*100)), l_periods));
4257: ELSIF p_target = 'PMNT' THEN
4275: p_end_date => l_security_deposit.cf_date,
4276: p_arrears => 'N' ,
4277: x_return_status => x_return_status);
4278:
4279: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4280: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4281: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4282: RAISE OKL_API.G_EXCEPTION_ERROR;
4283: END IF;
4276: p_arrears => 'N' ,
4277: x_return_status => x_return_status);
4278:
4279: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4280: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4281: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4282: RAISE OKL_API.G_EXCEPTION_ERROR;
4283: END IF;
4284:
4277: x_return_status => x_return_status);
4278:
4279: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4280: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4281: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4282: RAISE OKL_API.G_EXCEPTION_ERROR;
4283: END IF;
4284:
4285: l_periods := l_days_in_future / l_security_deposit.days_per_period;
4278:
4279: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4280: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4281: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4282: RAISE OKL_API.G_EXCEPTION_ERROR;
4283: END IF;
4284:
4285: l_periods := l_days_in_future / l_security_deposit.days_per_period;
4286: IF p_target = 'RATE' THEN
4297: p_end_date => l_security_deposit.end_date,
4298: p_arrears => 'N' ,
4299: x_return_status => x_return_status);
4300:
4301: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4302: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4303: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4304: RAISE OKL_API.G_EXCEPTION_ERROR;
4305: END IF;
4298: p_arrears => 'N' ,
4299: x_return_status => x_return_status);
4300:
4301: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4302: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4303: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4304: RAISE OKL_API.G_EXCEPTION_ERROR;
4305: END IF;
4306:
4299: x_return_status => x_return_status);
4300:
4301: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4302: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4303: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4304: RAISE OKL_API.G_EXCEPTION_ERROR;
4305: END IF;
4306:
4307: l_periods := l_days_in_future / l_security_deposit.days_per_period;
4300:
4301: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4302: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4303: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4304: RAISE OKL_API.G_EXCEPTION_ERROR;
4305: END IF;
4306:
4307: l_periods := l_days_in_future / l_security_deposit.days_per_period;
4308: IF p_target = 'RATE' THEN
4335: ELSIF inflow_tbl(y).miss_amt = 'N' THEN
4336: l_cf_amount := inflow_tbl(y).cf_amount;
4337: l_cf_date := inflow_tbl(y).cf_date;
4338: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
4339: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4340: p_msg_name => 'OKL_IRR_ZERO_DIV');
4341: x_return_status := OKL_API.G_RET_STS_ERROR;
4342: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4343: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
4337: l_cf_date := inflow_tbl(y).cf_date;
4338: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
4339: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4340: p_msg_name => 'OKL_IRR_ZERO_DIV');
4341: x_return_status := OKL_API.G_RET_STS_ERROR;
4342: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4343: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
4344: END IF;
4345: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4341: x_return_status := OKL_API.G_RET_STS_ERROR;
4342: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4343: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
4344: END IF;
4345: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4346: END IF;
4347: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + inflow_tbl(y).rate/(l_cf_ppy*100)), l_periods));
4348: END IF;
4349: END LOOP;
4353: END IF;
4354: If (l_term <> 0 ) Then
4355: l_payment_inflow := (-1 * l_npv_pay ) / l_term;
4356: else
4357: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4358: p_msg_name => 'OKL_IRR_ZERO_DIV');
4359: x_return_status := OKL_API.G_RET_STS_ERROR;
4360: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4361: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
4355: l_payment_inflow := (-1 * l_npv_pay ) / l_term;
4356: else
4357: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4358: p_msg_name => 'OKL_IRR_ZERO_DIV');
4359: x_return_status := OKL_API.G_RET_STS_ERROR;
4360: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4361: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
4362: END IF;
4363: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4359: x_return_status := OKL_API.G_RET_STS_ERROR;
4360: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4361: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
4362: END IF;
4363: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4364: end if;
4365:
4366: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4367: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' l_npv_pay ' || l_npv_pay );
4387: l_cf_date := inflow_tbl(y).cf_date;
4388: l_days_in_future := inflow_tbl(y).cf_days;
4389: l_periods := l_days_in_future / l_cf_dpp;
4390: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
4391: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4392: p_msg_name => 'OKL_IRR_ZERO_DIV');
4393: x_return_status := OKL_API.G_RET_STS_ERROR;
4394: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4395: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
4389: l_periods := l_days_in_future / l_cf_dpp;
4390: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
4391: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4392: p_msg_name => 'OKL_IRR_ZERO_DIV');
4393: x_return_status := OKL_API.G_RET_STS_ERROR;
4394: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4395: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
4396: END IF;
4397: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4393: x_return_status := OKL_API.G_RET_STS_ERROR;
4394: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4395: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
4396: END IF;
4397: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4398: END IF;
4399: IF p_target = 'RATE' THEN
4400: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + inflow_tbl(y).rate/(l_cf_ppy*100)), l_periods));
4401: ELSIF p_target = 'PMNT' THEN
4480: END IF;
4481: END IF;
4482: l_irr := l_irr + l_increment_rate;
4483: IF ABS(l_irr) > l_irr_limit THEN
4484: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4485: p_msg_name => 'OKL_IRR_CALC_IRR_LIMIT',
4486: p_token1 => 'IRR_LIMIT',
4487: p_token1_value => l_irr_limit*100);
4488: x_return_status := OKL_API.G_RET_STS_ERROR;
4484: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4485: p_msg_name => 'OKL_IRR_CALC_IRR_LIMIT',
4486: p_token1 => 'IRR_LIMIT',
4487: p_token1_value => l_irr_limit*100);
4488: x_return_status := OKL_API.G_RET_STS_ERROR;
4489: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4490: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' 100000% '|| x_return_status);
4491: END IF;
4492: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4488: x_return_status := OKL_API.G_RET_STS_ERROR;
4489: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4490: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' 100000% '|| x_return_status);
4491: END IF;
4492: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4493: END IF;
4494: l_prev_incr_sign_rate := SIGN(l_increment_rate);
4495: l_prev_npv_sign_rate := SIGN(l_npv_rate);
4496: l_prev_npv_rate := l_npv_rate;
4495: l_prev_npv_sign_rate := SIGN(l_npv_rate);
4496: l_prev_npv_rate := l_npv_rate;
4497: END IF;
4498: END LOOP;
4499: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4500: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4501: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4502: RAISE OKL_API.G_EXCEPTION_ERROR;
4503: END IF;
4496: l_prev_npv_rate := l_npv_rate;
4497: END IF;
4498: END LOOP;
4499: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4500: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4501: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4502: RAISE OKL_API.G_EXCEPTION_ERROR;
4503: END IF;
4504: OKL_API.END_ACTIVITY (x_msg_count,
4497: END IF;
4498: END LOOP;
4499: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4500: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4501: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4502: RAISE OKL_API.G_EXCEPTION_ERROR;
4503: END IF;
4504: OKL_API.END_ACTIVITY (x_msg_count,
4505: x_msg_data );
4498: END LOOP;
4499: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4500: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4501: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4502: RAISE OKL_API.G_EXCEPTION_ERROR;
4503: END IF;
4504: OKL_API.END_ACTIVITY (x_msg_count,
4505: x_msg_data );
4506: EXCEPTION
4500: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4501: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4502: RAISE OKL_API.G_EXCEPTION_ERROR;
4503: END IF;
4504: OKL_API.END_ACTIVITY (x_msg_count,
4505: x_msg_data );
4506: EXCEPTION
4507: WHEN OKL_API.G_EXCEPTION_ERROR THEN
4508: IF get_curr_code_pre%ISOPEN THEN
4503: END IF;
4504: OKL_API.END_ACTIVITY (x_msg_count,
4505: x_msg_data );
4506: EXCEPTION
4507: WHEN OKL_API.G_EXCEPTION_ERROR THEN
4508: IF get_curr_code_pre%ISOPEN THEN
4509: CLOSE get_curr_code_pre;
4510: END IF;
4511: IF c_rec_exp%ISOPEN THEN
4525: END IF;
4526: IF get_start_date%ISOPEN THEN
4527: CLOSE get_start_date;
4528: END IF;
4529: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4530: l_api_name,
4531: G_PKG_NAME,
4532: 'OKL_API.G_RET_STS_ERROR',
4533: x_msg_count,
4528: END IF;
4529: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4530: l_api_name,
4531: G_PKG_NAME,
4532: 'OKL_API.G_RET_STS_ERROR',
4533: x_msg_count,
4534: x_msg_data,
4535: '_PVT');
4536: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4532: 'OKL_API.G_RET_STS_ERROR',
4533: x_msg_count,
4534: x_msg_data,
4535: '_PVT');
4536: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4537: IF get_curr_code_pre%ISOPEN THEN
4538: CLOSE get_curr_code_pre;
4539: END IF;
4540: IF c_rec_exp%ISOPEN THEN
4554: END IF;
4555: IF get_start_date%ISOPEN THEN
4556: CLOSE get_start_date;
4557: END IF;
4558: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
4559: l_api_name,
4560: G_PKG_NAME,
4561: 'OKL_API.G_RET_STS_UNEXP_ERROR',
4562: x_msg_count,
4557: END IF;
4558: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
4559: l_api_name,
4560: G_PKG_NAME,
4561: 'OKL_API.G_RET_STS_UNEXP_ERROR',
4562: x_msg_count,
4563: x_msg_data,
4564: '_PVT');
4565: WHEN OTHERS THEN
4583: END IF;
4584: IF get_start_date%ISOPEN THEN
4585: CLOSE get_start_date;
4586: END IF;
4587: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
4588: l_api_name,
4589: G_PKG_NAME,
4590: 'OTHERS',
4591: x_msg_count,
5056: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
5057: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
5058: END IF;
5059: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
5060: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5061: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
5062: RAISE OKL_API.G_EXCEPTION_ERROR;
5063: END IF;
5064: FOR l_asset_cost IN c_asset_cost LOOP
5058: END IF;
5059: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
5060: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5061: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
5062: RAISE OKL_API.G_EXCEPTION_ERROR;
5063: END IF;
5064: FOR l_asset_cost IN c_asset_cost LOOP
5065:
5066: IF TRUNC(l_asset_cost.start_date) <= TRUNC(p_start_date) THEN
5111: p_end_date => l_hdr_inflow.cf_date,
5112: p_arrears => l_hdr_inflow.cf_arrear,
5113: x_return_status => lx_return_status);
5114:
5115: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5116: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5117: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5118: RAISE OKL_API.G_EXCEPTION_ERROR;
5119: END IF;
5112: p_arrears => l_hdr_inflow.cf_arrear,
5113: x_return_status => lx_return_status);
5114:
5115: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5116: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5117: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5118: RAISE OKL_API.G_EXCEPTION_ERROR;
5119: END IF;
5120: -- Added for approximation
5113: x_return_status => lx_return_status);
5114:
5115: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5116: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5117: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5118: RAISE OKL_API.G_EXCEPTION_ERROR;
5119: END IF;
5120: -- Added for approximation
5121: G_TOT_INFLOW_AMT := G_TOT_INFLOW_AMT + l_hdr_inflow.cf_amount;
5114:
5115: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5116: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5117: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5118: RAISE OKL_API.G_EXCEPTION_ERROR;
5119: END IF;
5120: -- Added for approximation
5121: G_TOT_INFLOW_AMT := G_TOT_INFLOW_AMT + l_hdr_inflow.cf_amount;
5122: --print( 'Header Inflows amount ' || l_hdr_inflow.cf_amount );
5148: p_end_date => l_inflow.cf_date,
5149: p_arrears => l_inflow.cf_arrear,
5150: x_return_status => lx_return_status);
5151:
5152: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5153: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5154: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5155: RAISE OKL_API.G_EXCEPTION_ERROR;
5156: END IF;
5149: p_arrears => l_inflow.cf_arrear,
5150: x_return_status => lx_return_status);
5151:
5152: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5153: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5154: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5155: RAISE OKL_API.G_EXCEPTION_ERROR;
5156: END IF;
5157:
5150: x_return_status => lx_return_status);
5151:
5152: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5153: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5154: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5155: RAISE OKL_API.G_EXCEPTION_ERROR;
5156: END IF;
5157:
5158: END IF;
5151:
5152: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5153: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5154: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5155: RAISE OKL_API.G_EXCEPTION_ERROR;
5156: END IF;
5157:
5158: END IF;
5159: -- Added for approximation
5178: p_end_date => l_asset_rv.date_terminated,
5179: p_arrears => 'Y',
5180: x_return_status => lx_return_status);
5181:
5182: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5183: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5184: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5185: RAISE OKL_API.G_EXCEPTION_ERROR;
5186: END IF;
5179: p_arrears => 'Y',
5180: x_return_status => lx_return_status);
5181:
5182: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5183: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5184: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5185: RAISE OKL_API.G_EXCEPTION_ERROR;
5186: END IF;
5187:
5180: x_return_status => lx_return_status);
5181:
5182: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5183: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5184: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5185: RAISE OKL_API.G_EXCEPTION_ERROR;
5186: END IF;
5187:
5188: Else
5181:
5182: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5183: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5184: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5185: RAISE OKL_API.G_EXCEPTION_ERROR;
5186: END IF;
5187:
5188: Else
5189: rv_tbl(p).cf_amount := l_asset_rv.cf_amount;
5195: p_end_date => l_end_date,
5196: p_arrears => 'Y',
5197: x_return_status => lx_return_status);
5198:
5199: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5200: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5201: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5202: RAISE OKL_API.G_EXCEPTION_ERROR;
5203: END IF;
5196: p_arrears => 'Y',
5197: x_return_status => lx_return_status);
5198:
5199: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5200: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5201: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5202: RAISE OKL_API.G_EXCEPTION_ERROR;
5203: END IF;
5204:
5197: x_return_status => lx_return_status);
5198:
5199: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5200: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5201: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5202: RAISE OKL_API.G_EXCEPTION_ERROR;
5203: END IF;
5204:
5205: End If;
5198:
5199: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5200: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5201: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5202: RAISE OKL_API.G_EXCEPTION_ERROR;
5203: END IF;
5204:
5205: End If;
5206:
5231: p_end_date => l_outflow.start_date,
5232: p_arrears => 'N',
5233: x_return_status => lx_return_status);
5234:
5235: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5236: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5237: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5238: RAISE OKL_API.G_EXCEPTION_ERROR;
5239: END IF;
5232: p_arrears => 'N',
5233: x_return_status => lx_return_status);
5234:
5235: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5236: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5237: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5238: RAISE OKL_API.G_EXCEPTION_ERROR;
5239: END IF;
5240:
5233: x_return_status => lx_return_status);
5234:
5235: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5236: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5237: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5238: RAISE OKL_API.G_EXCEPTION_ERROR;
5239: END IF;
5240:
5241: END IF;
5234:
5235: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5236: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5237: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5238: RAISE OKL_API.G_EXCEPTION_ERROR;
5239: END IF;
5240:
5241: END IF;
5242:
5269: p_days_in_year => l_day_convention_year,
5270: p_end_date => outflow_tbl(q).cf_date,
5271: p_arrears => 'N',
5272: x_return_status => lx_return_status);
5273: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5274: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5275: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5276: RAISE OKL_API.G_EXCEPTION_ERROR;
5277: END IF;
5270: p_end_date => outflow_tbl(q).cf_date,
5271: p_arrears => 'N',
5272: x_return_status => lx_return_status);
5273: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5274: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5275: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5276: RAISE OKL_API.G_EXCEPTION_ERROR;
5277: END IF;
5278: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
5271: p_arrears => 'N',
5272: x_return_status => lx_return_status);
5273: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5274: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5275: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5276: RAISE OKL_API.G_EXCEPTION_ERROR;
5277: END IF;
5278: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
5279: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || outflow_tbl(q).cf_date || '| ' || outflow_tbl(q).cf_days || ' | ' ||
5272: x_return_status => lx_return_status);
5273: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5274: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5275: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5276: RAISE OKL_API.G_EXCEPTION_ERROR;
5277: END IF;
5278: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
5279: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || outflow_tbl(q).cf_date || '| ' || outflow_tbl(q).cf_days || ' | ' ||
5280: outflow_tbl(q).cf_amount ||' | ' || outflow_tbl(q).cf_dpp || ' | ' || outflow_tbl(q).cf_ppy );
5296: p_days_in_year => l_day_convention_year,
5297: p_end_date => p_start_date,
5298: p_arrears => 'N',
5299: x_return_status => lx_return_status);
5300: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5301: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5302: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5303: RAISE OKL_API.G_EXCEPTION_ERROR;
5304: END IF;
5297: p_end_date => p_start_date,
5298: p_arrears => 'N',
5299: x_return_status => lx_return_status);
5300: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5301: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5302: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5303: RAISE OKL_API.G_EXCEPTION_ERROR;
5304: END IF;
5305: outflow_tbl(q).cf_days := -1 * outflow_tbl(q).cf_days;
5298: p_arrears => 'N',
5299: x_return_status => lx_return_status);
5300: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5301: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5302: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5303: RAISE OKL_API.G_EXCEPTION_ERROR;
5304: END IF;
5305: outflow_tbl(q).cf_days := -1 * outflow_tbl(q).cf_days;
5306: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
5299: x_return_status => lx_return_status);
5300: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5301: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5302: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5303: RAISE OKL_API.G_EXCEPTION_ERROR;
5304: END IF;
5305: outflow_tbl(q).cf_days := -1 * outflow_tbl(q).cf_days;
5306: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
5307: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || outflow_tbl(q).cf_date || '| ' || outflow_tbl(q).cf_days || ' | ' ||
5319: x_msg_count => lx_msg_count,
5320: p_asset_cle_id => l_outflow.id,
5321: x_subsidy_amount=> l_subsidy_amount);
5322:
5323: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5324: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5325: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5326: RAISE OKL_API.G_EXCEPTION_ERROR;
5327: END IF;
5320: p_asset_cle_id => l_outflow.id,
5321: x_subsidy_amount=> l_subsidy_amount);
5322:
5323: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5324: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5325: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5326: RAISE OKL_API.G_EXCEPTION_ERROR;
5327: END IF;
5328:
5321: x_subsidy_amount=> l_subsidy_amount);
5322:
5323: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5324: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5325: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5326: RAISE OKL_API.G_EXCEPTION_ERROR;
5327: END IF;
5328:
5329: subsidies_tbl(1).cf_amount := nvl(subsidies_tbl(1).cf_amount, 0) + nvl(l_subsidy_amount,0);
5322:
5323: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5324: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5325: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5326: RAISE OKL_API.G_EXCEPTION_ERROR;
5327: END IF;
5328:
5329: subsidies_tbl(1).cf_amount := nvl(subsidies_tbl(1).cf_amount, 0) + nvl(l_subsidy_amount,0);
5330:
5344: p_end_date => p_start_date,
5345: p_arrears => 'N',
5346: x_return_status => lx_return_status);
5347:
5348: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5349: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5350: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5351: RAISE OKL_API.G_EXCEPTION_ERROR;
5352: END IF;
5345: p_arrears => 'N',
5346: x_return_status => lx_return_status);
5347:
5348: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5349: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5350: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5351: RAISE OKL_API.G_EXCEPTION_ERROR;
5352: END IF;
5353: -- Subsidies End
5346: x_return_status => lx_return_status);
5347:
5348: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5349: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5350: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5351: RAISE OKL_API.G_EXCEPTION_ERROR;
5352: END IF;
5353: -- Subsidies End
5354:
5347:
5348: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5349: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5350: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5351: RAISE OKL_API.G_EXCEPTION_ERROR;
5352: END IF;
5353: -- Subsidies End
5354:
5355: End if;
5421: p_end_date => l_pass_th.cf_date,
5422: p_arrears => l_pass_th.cf_arrear,
5423: x_return_status => lx_return_status);
5424:
5425: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5426: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5427: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5428: RAISE OKL_API.G_EXCEPTION_ERROR;
5429: END IF;
5422: p_arrears => l_pass_th.cf_arrear,
5423: x_return_status => lx_return_status);
5424:
5425: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5426: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5427: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5428: RAISE OKL_API.G_EXCEPTION_ERROR;
5429: END IF;
5430:
5423: x_return_status => lx_return_status);
5424:
5425: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5426: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5427: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5428: RAISE OKL_API.G_EXCEPTION_ERROR;
5429: END IF;
5430:
5431: END LOOP;
5424:
5425: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5426: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5427: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5428: RAISE OKL_API.G_EXCEPTION_ERROR;
5429: END IF;
5430:
5431: END LOOP;
5432: -- print( l_prog_name, ' pass thru ' || r );
5448: p_end_date => rec_exp_tbl(s).cf_date,
5449: p_arrears => 'N',
5450: x_return_status => lx_return_status);
5451:
5452: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5453: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5454: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5455: RAISE OKL_API.G_EXCEPTION_ERROR;
5456: END IF;
5449: p_arrears => 'N',
5450: x_return_status => lx_return_status);
5451:
5452: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5453: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5454: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5455: RAISE OKL_API.G_EXCEPTION_ERROR;
5456: END IF;
5457:
5450: x_return_status => lx_return_status);
5451:
5452: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5453: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5454: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5455: RAISE OKL_API.G_EXCEPTION_ERROR;
5456: END IF;
5457:
5458: END LOOP;
5451:
5452: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5453: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5454: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5455: RAISE OKL_API.G_EXCEPTION_ERROR;
5456: END IF;
5457:
5458: END LOOP;
5459:
5491: -- print( l_prog_name, 'INFLOWS ON OR BEFORE TIME ZERO '||l_adv_payment);
5492:
5493: IF l_adv_payment >= l_time_zero_cost THEN
5494:
5495: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5496: p_msg_name => 'OKL_IRR_CALC_INF_LOOP',
5497: p_token1 => 'ADV_AMOUNT',
5498: p_token1_value => l_adv_payment,
5499: p_token2 => 'CAPITAL_AMOUNT',
5498: p_token1_value => l_adv_payment,
5499: p_token2 => 'CAPITAL_AMOUNT',
5500: p_token2_value => l_time_zero_cost);
5501:
5502: RAISE OKL_API.G_EXCEPTION_ERROR;
5503:
5504: END IF;
5505:
5506: SELECT currency_code
5585: l_periods := l_days_in_future / l_cf_dpp;
5586:
5587: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5588:
5589: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5590: p_msg_name => 'OKL_IRR_ZERO_DIV');
5591:
5592: RAISE OKL_API.G_EXCEPTION_ERROR;
5593:
5588:
5589: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5590: p_msg_name => 'OKL_IRR_ZERO_DIV');
5591:
5592: RAISE OKL_API.G_EXCEPTION_ERROR;
5593:
5594: END IF;
5595:
5596: l_npv := l_npv + (l_cf_amount / POWER((1 + l_irr/l_cf_ppy), l_periods));
5630: l_periods := l_days_in_future / l_cf_dpp;
5631:
5632: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5633:
5634: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5635: p_msg_name => 'OKL_IRR_ZERO_DIV');
5636:
5637: RAISE OKL_API.G_EXCEPTION_ERROR;
5638:
5633:
5634: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5635: p_msg_name => 'OKL_IRR_ZERO_DIV');
5636:
5637: RAISE OKL_API.G_EXCEPTION_ERROR;
5638:
5639: END IF;
5640:
5641: l_npv := l_npv + (l_cf_amount / POWER((1 + l_irr/l_cf_ppy), l_periods));
5676: l_periods := l_days_in_future / l_cf_dpp;
5677:
5678: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5679:
5680: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5681: p_msg_name => 'OKL_IRR_ZERO_DIV');
5682:
5683: RAISE OKL_API.G_EXCEPTION_ERROR;
5684:
5679:
5680: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5681: p_msg_name => 'OKL_IRR_ZERO_DIV');
5682:
5683: RAISE OKL_API.G_EXCEPTION_ERROR;
5684:
5685: END IF;
5686:
5687: l_npv := l_npv + (l_cf_amount / POWER((1 + l_irr/l_cf_ppy), l_periods));
5722: l_periods := l_days_in_future / l_cf_dpp;
5723:
5724: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5725:
5726: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5727: p_msg_name => 'OKL_IRR_ZERO_DIV');
5728:
5729: RAISE OKL_API.G_EXCEPTION_ERROR;
5730:
5725:
5726: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5727: p_msg_name => 'OKL_IRR_ZERO_DIV');
5728:
5729: RAISE OKL_API.G_EXCEPTION_ERROR;
5730:
5731: END IF;
5732:
5733: l_npv := l_npv + (l_cf_amount / POWER((1 + l_irr/l_cf_ppy), l_periods));
5767: l_periods := l_days_in_future / l_cf_dpp;
5768:
5769: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5770:
5771: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5772: p_msg_name => 'OKL_IRR_ZERO_DIV');
5773:
5774: RAISE OKL_API.G_EXCEPTION_ERROR;
5775:
5770:
5771: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5772: p_msg_name => 'OKL_IRR_ZERO_DIV');
5773:
5774: RAISE OKL_API.G_EXCEPTION_ERROR;
5775:
5776: END IF;
5777:
5778: l_npv := l_npv + (l_cf_amount / POWER((1 + l_irr/l_cf_ppy), l_periods));
5798: p_end_date => l_deposit_date,
5799: p_arrears => l_cf_arrear,
5800: x_return_status => lx_return_status);
5801:
5802: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5803: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5804: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5805: RAISE OKL_API.G_EXCEPTION_ERROR;
5806: END IF;
5799: p_arrears => l_cf_arrear,
5800: x_return_status => lx_return_status);
5801:
5802: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5803: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5804: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5805: RAISE OKL_API.G_EXCEPTION_ERROR;
5806: END IF;
5807:
5800: x_return_status => lx_return_status);
5801:
5802: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5803: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5804: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5805: RAISE OKL_API.G_EXCEPTION_ERROR;
5806: END IF;
5807:
5808: ELSE
5801:
5802: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5803: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5804: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5805: RAISE OKL_API.G_EXCEPTION_ERROR;
5806: END IF;
5807:
5808: ELSE
5809:
5813: p_end_date => l_end_date,
5814: p_arrears => l_cf_arrear,
5815: x_return_status => lx_return_status);
5816:
5817: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5818: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5819: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5820: RAISE OKL_API.G_EXCEPTION_ERROR;
5821: END IF;
5814: p_arrears => l_cf_arrear,
5815: x_return_status => lx_return_status);
5816:
5817: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5818: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5819: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5820: RAISE OKL_API.G_EXCEPTION_ERROR;
5821: END IF;
5822:
5815: x_return_status => lx_return_status);
5816:
5817: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5818: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5819: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5820: RAISE OKL_API.G_EXCEPTION_ERROR;
5821: END IF;
5822:
5823: END IF;
5816:
5817: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5818: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5819: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5820: RAISE OKL_API.G_EXCEPTION_ERROR;
5821: END IF;
5822:
5823: END IF;
5824:
5859: l_periods := l_days_in_future / l_cf_dpp;
5860:
5861: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5862:
5863: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5864: p_msg_name => 'OKL_IRR_ZERO_DIV');
5865:
5866: RAISE OKL_API.G_EXCEPTION_ERROR;
5867:
5862:
5863: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5864: p_msg_name => 'OKL_IRR_ZERO_DIV');
5865:
5866: RAISE OKL_API.G_EXCEPTION_ERROR;
5867:
5868: END IF;
5869:
5870:
5895: p_end_date => l_deposit_date,
5896: p_arrears => l_cf_arrear,
5897: x_return_status => lx_return_status);
5898:
5899: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5900: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5901: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5902: RAISE OKL_API.G_EXCEPTION_ERROR;
5903: END IF;
5896: p_arrears => l_cf_arrear,
5897: x_return_status => lx_return_status);
5898:
5899: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5900: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5901: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5902: RAISE OKL_API.G_EXCEPTION_ERROR;
5903: END IF;
5904:
5897: x_return_status => lx_return_status);
5898:
5899: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5900: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5901: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5902: RAISE OKL_API.G_EXCEPTION_ERROR;
5903: END IF;
5904:
5905: ELSE
5898:
5899: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5900: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5901: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5902: RAISE OKL_API.G_EXCEPTION_ERROR;
5903: END IF;
5904:
5905: ELSE
5906:
5910: p_end_date => l_end_date,
5911: p_arrears => l_cf_arrear,
5912: x_return_status => lx_return_status);
5913:
5914: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5915: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5916: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5917: RAISE OKL_API.G_EXCEPTION_ERROR;
5918: END IF;
5911: p_arrears => l_cf_arrear,
5912: x_return_status => lx_return_status);
5913:
5914: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5915: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5916: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5917: RAISE OKL_API.G_EXCEPTION_ERROR;
5918: END IF;
5919:
5912: x_return_status => lx_return_status);
5913:
5914: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5915: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5916: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5917: RAISE OKL_API.G_EXCEPTION_ERROR;
5918: END IF;
5919:
5920: END IF;
5913:
5914: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5915: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5916: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5917: RAISE OKL_API.G_EXCEPTION_ERROR;
5918: END IF;
5919:
5920: END IF;
5921:
5956: l_periods := l_days_in_future / l_cf_dpp;
5957:
5958: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5959:
5960: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5961: p_msg_name => 'OKL_IRR_ZERO_DIV');
5962:
5963: RAISE OKL_API.G_EXCEPTION_ERROR;
5964:
5959:
5960: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5961: p_msg_name => 'OKL_IRR_ZERO_DIV');
5962:
5963: RAISE OKL_API.G_EXCEPTION_ERROR;
5964:
5965: END IF;
5966:
5967: l_npv := l_npv + (l_cf_amount / POWER((1 + l_irr/l_cf_ppy), l_periods));
5988: l_periods := l_days_in_future / l_cf_dpp;
5989:
5990: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5991:
5992: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5993: p_msg_name => 'OKL_IRR_ZERO_DIV');
5994:
5995: RAISE OKL_API.G_EXCEPTION_ERROR;
5996:
5991:
5992: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5993: p_msg_name => 'OKL_IRR_ZERO_DIV');
5994:
5995: RAISE OKL_API.G_EXCEPTION_ERROR;
5996:
5997: END IF;
5998:
5999: l_npv := l_npv + (l_cf_amount / POWER((1 + l_irr/l_cf_ppy), l_periods));
6120: */
6121:
6122: IF ABS(l_irr) > l_irr_limit THEN
6123:
6124: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6125: p_msg_name => 'OKL_IRR_CALC_IRR_LIMIT',
6126: p_token1 => 'IRR_LIMIT',
6127: p_token1_value => l_irr_limit*100);
6128:
6125: p_msg_name => 'OKL_IRR_CALC_IRR_LIMIT',
6126: p_token1 => 'IRR_LIMIT',
6127: p_token1_value => l_irr_limit*100);
6128:
6129: RAISE OKL_API.G_EXCEPTION_ERROR;
6130:
6131: END IF;
6132:
6133: l_prev_incr_sign := SIGN(l_increment);
6139: -- print( l_prog_name, 'end' );
6140:
6141: EXCEPTION
6142:
6143: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6144:
6145: x_return_status := G_RET_STS_ERROR;
6146:
6147: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6143: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6144:
6145: x_return_status := G_RET_STS_ERROR;
6146:
6147: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6148:
6149: x_return_status := G_RET_STS_UNEXP_ERROR;
6150:
6151: WHEN OTHERS THEN
6149: x_return_status := G_RET_STS_UNEXP_ERROR;
6150:
6151: WHEN OTHERS THEN
6152:
6153: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6154: p_msg_name => G_DB_ERROR,
6155: p_token1 => G_PROG_NAME_TOKEN,
6156: p_token1_value => l_prog_name,
6157: p_token2 => G_SQLCODE_TOKEN,
6366: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6367: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
6368: END IF;
6369: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
6370: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6371: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
6372: RAISE OKL_API.G_EXCEPTION_ERROR;
6373: END IF;
6374:
6368: END IF;
6369: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
6370: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6371: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
6372: RAISE OKL_API.G_EXCEPTION_ERROR;
6373: END IF;
6374:
6375: OPEN c_hdr;
6376: FETCH c_hdr INTO l_hdr;
6398: p_end_date => l_rent_flow.se_date,
6399: p_arrears => l_rent_flow.se_arrears,
6400: x_return_status => lx_return_status);
6401:
6402: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6403: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6404: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6405: RAISE OKL_API.G_EXCEPTION_ERROR;
6406: END IF;
6399: p_arrears => l_rent_flow.se_arrears,
6400: x_return_status => lx_return_status);
6401:
6402: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6403: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6404: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6405: RAISE OKL_API.G_EXCEPTION_ERROR;
6406: END IF;
6407:
6400: x_return_status => lx_return_status);
6401:
6402: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6403: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6404: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6405: RAISE OKL_API.G_EXCEPTION_ERROR;
6406: END IF;
6407:
6408: asset_rents(k).se_amount := l_rent_flow.se_amount;
6401:
6402: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6403: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6404: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6405: RAISE OKL_API.G_EXCEPTION_ERROR;
6406: END IF;
6407:
6408: asset_rents(k).se_amount := l_rent_flow.se_amount;
6409: asset_rents(k).se_date := l_rent_flow.se_date;
6423: p_end_date => l_rent_sll.start_date,
6424: p_arrears => 'N',
6425: x_return_status => lx_return_status);
6426:
6427: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6428: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6429: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6430: RAISE OKL_API.G_EXCEPTION_ERROR;
6431: END IF;
6424: p_arrears => 'N',
6425: x_return_status => lx_return_status);
6426:
6427: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6428: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6429: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6430: RAISE OKL_API.G_EXCEPTION_ERROR;
6431: END IF;
6432:
6425: x_return_status => lx_return_status);
6426:
6427: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6428: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6429: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6430: RAISE OKL_API.G_EXCEPTION_ERROR;
6431: END IF;
6432:
6433: l_additional_parameters(0).name := 'TERMINATED_LINES_YN';
6426:
6427: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6428: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6429: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6430: RAISE OKL_API.G_EXCEPTION_ERROR;
6431: END IF;
6432:
6433: l_additional_parameters(0).name := 'TERMINATED_LINES_YN';
6434: l_additional_parameters(0).value := 'Y';
6449: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6450: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' cap amount ' || l_investment);
6451:
6452: END IF;
6453: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6454: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6455: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6456: RAISE OKL_API.G_EXCEPTION_ERROR;
6457: END IF;
6450: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' cap amount ' || l_investment);
6451:
6452: END IF;
6453: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6454: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6455: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6456: RAISE OKL_API.G_EXCEPTION_ERROR;
6457: END IF;
6458:
6451:
6452: END IF;
6453: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6454: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6455: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6456: RAISE OKL_API.G_EXCEPTION_ERROR;
6457: END IF;
6458:
6459: l_investment := l_investment - p_ppd_amount;
6452: END IF;
6453: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6454: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6455: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6456: RAISE OKL_API.G_EXCEPTION_ERROR;
6457: END IF;
6458:
6459: l_investment := l_investment - p_ppd_amount;
6460:
6608:
6609: END IF;
6610: EXCEPTION
6611:
6612: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6613:
6614: x_return_status := G_RET_STS_ERROR;
6615:
6616: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6612: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6613:
6614: x_return_status := G_RET_STS_ERROR;
6615:
6616: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6617:
6618: x_return_status := G_RET_STS_UNEXP_ERROR;
6619:
6620: WHEN OTHERS THEN
6618: x_return_status := G_RET_STS_UNEXP_ERROR;
6619:
6620: WHEN OTHERS THEN
6621:
6622: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6623: p_msg_name => G_DB_ERROR,
6624: p_token1 => G_PROG_NAME_TOKEN,
6625: p_token1_value => l_prog_name,
6626: p_token2 => G_SQLCODE_TOKEN,
6632:
6633: END target_pay_down;
6634:
6635: PROCEDURE comp_so_iir(p_api_version IN NUMBER,
6636: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
6637: x_return_status OUT NOCOPY VARCHAR2,
6638: x_msg_count OUT NOCOPY NUMBER,
6639: x_msg_data OUT NOCOPY VARCHAR2,
6640: p_khr_id IN NUMBER,
6826: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6827: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'begin' );
6828:
6829: END IF;
6830: x_return_status := OKL_API.G_RET_STS_SUCCESS;
6831: -- Call start_activity to create savepoint, check compatibility
6832: -- and initialize message list
6833: x_return_status := OKL_API.START_ACTIVITY (
6834: l_api_name
6829: END IF;
6830: x_return_status := OKL_API.G_RET_STS_SUCCESS;
6831: -- Call start_activity to create savepoint, check compatibility
6832: -- and initialize message list
6833: x_return_status := OKL_API.START_ACTIVITY (
6834: l_api_name
6835: ,p_init_msg_list
6836: ,'_PVT'
6837: ,x_return_status);
6835: ,p_init_msg_list
6836: ,'_PVT'
6837: ,x_return_status);
6838: -- Check if activity started successfully
6839: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6840: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6841: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6842: RAISE OKL_API.G_EXCEPTION_ERROR;
6843: END IF;
6836: ,'_PVT'
6837: ,x_return_status);
6838: -- Check if activity started successfully
6839: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6840: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6841: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6842: RAISE OKL_API.G_EXCEPTION_ERROR;
6843: END IF;
6844: -- check if the target is correctly given
6837: ,x_return_status);
6838: -- Check if activity started successfully
6839: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6840: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6841: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6842: RAISE OKL_API.G_EXCEPTION_ERROR;
6843: END IF;
6844: -- check if the target is correctly given
6845: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6838: -- Check if activity started successfully
6839: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6840: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6841: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6842: RAISE OKL_API.G_EXCEPTION_ERROR;
6843: END IF;
6844: -- check if the target is correctly given
6845: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6846: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'check if the target is correctly given' || ' ' || p_target );
6856: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6857: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, 'comp_so_iir Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
6858: END IF;
6859: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
6860: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6861: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
6862: RAISE OKL_API.G_EXCEPTION_ERROR;
6863: END IF;
6864:
6858: END IF;
6859: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
6860: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6861: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
6862: RAISE OKL_API.G_EXCEPTION_ERROR;
6863: END IF;
6864:
6865: IF p_target NOT IN ('RATE','PMNT') THEN
6866: OKL_API.set_message(p_app_name => G_APP_NAME,
6862: RAISE OKL_API.G_EXCEPTION_ERROR;
6863: END IF;
6864:
6865: IF p_target NOT IN ('RATE','PMNT') THEN
6866: OKL_API.set_message(p_app_name => G_APP_NAME,
6867: p_msg_name => G_INVALID_VALUE,
6868: p_token1 => G_COL_NAME_TOKEN,
6869: p_token1_value => 'Target');
6870: RAISE OKL_API.G_EXCEPTION_ERROR;
6866: OKL_API.set_message(p_app_name => G_APP_NAME,
6867: p_msg_name => G_INVALID_VALUE,
6868: p_token1 => G_COL_NAME_TOKEN,
6869: p_token1_value => 'Target');
6870: RAISE OKL_API.G_EXCEPTION_ERROR;
6871: END IF;
6872:
6873: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6874: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'check if the target is correctly given - done');
6876: END IF;
6877: OPEN get_start_date(P_khr_id => p_khr_id);
6878: FETCH get_start_date INTO l_khr_start_date;
6879: IF get_start_date%NOTFOUND THEN
6880: RAISE OKL_API.G_EXCEPTION_ERROR;
6881: END IF;
6882: CLOSE get_start_date;
6883: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6884: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'got start date');
6896: x_start_date => ld_asset_start_date);
6897: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6898: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec ' || l_cost|| x_return_status);
6899: END IF;
6900: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6901: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6902: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6903: RAISE OKL_API.G_EXCEPTION_ERROR;
6904: END IF;
6897: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6898: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec ' || l_cost|| x_return_status);
6899: END IF;
6900: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6901: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6902: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6903: RAISE OKL_API.G_EXCEPTION_ERROR;
6904: END IF;
6905: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6898: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec ' || l_cost|| x_return_status);
6899: END IF;
6900: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6901: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6902: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6903: RAISE OKL_API.G_EXCEPTION_ERROR;
6904: END IF;
6905: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6906: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' l_time_zero '|| x_return_status);
6899: END IF;
6900: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6901: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6902: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6903: RAISE OKL_API.G_EXCEPTION_ERROR;
6904: END IF;
6905: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6906: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' l_time_zero '|| x_return_status);
6907: END IF;
6940: p_days_in_year => l_day_convention_year,
6941: p_end_date => l_inflow.cf_date,
6942: p_arrears => l_inflow.cf_arrear,
6943: x_return_status => x_return_status);
6944: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6945: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6946: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6947: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6948: END IF;
6941: p_end_date => l_inflow.cf_date,
6942: p_arrears => l_inflow.cf_arrear,
6943: x_return_status => x_return_status);
6944: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6945: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6946: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6947: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6948: END IF;
6949: IF (inflow_tbl(n).rate IS NULL OR
6942: p_arrears => l_inflow.cf_arrear,
6943: x_return_status => x_return_status);
6944: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6945: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6946: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6947: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6948: END IF;
6949: IF (inflow_tbl(n).rate IS NULL OR
6950: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
6943: x_return_status => x_return_status);
6944: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6945: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6946: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6947: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6948: END IF;
6949: IF (inflow_tbl(n).rate IS NULL OR
6950: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
6951: p_target = 'RATE' THEN
6946: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6947: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6948: END IF;
6949: IF (inflow_tbl(n).rate IS NULL OR
6950: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
6951: p_target = 'RATE' THEN
6952: OKL_API.set_message(
6953: p_app_name => G_APP_NAME,
6954: p_msg_name => G_INVALID_VALUE,
6948: END IF;
6949: IF (inflow_tbl(n).rate IS NULL OR
6950: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
6951: p_target = 'RATE' THEN
6952: OKL_API.set_message(
6953: p_app_name => G_APP_NAME,
6954: p_msg_name => G_INVALID_VALUE,
6955: p_token1 => G_COL_NAME_TOKEN,
6956: p_token1_value => 'Rate');
6953: p_app_name => G_APP_NAME,
6954: p_msg_name => G_INVALID_VALUE,
6955: p_token1 => G_COL_NAME_TOKEN,
6956: p_token1_value => 'Rate');
6957: x_return_status := OKL_API.G_RET_STS_ERROR;
6958: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6959: END IF;
6960: END LOOP;
6961:
6954: p_msg_name => G_INVALID_VALUE,
6955: p_token1 => G_COL_NAME_TOKEN,
6956: p_token1_value => 'Rate');
6957: x_return_status := OKL_API.G_RET_STS_ERROR;
6958: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6959: END IF;
6960: END LOOP;
6961:
6962: -- Collecting the Residual Value amount
6972: p_subside_yn => l_subside_yn,
6973: x_return_status => x_return_status,
6974: x_residual_value => rv_tbl(p).cf_amount,
6975: x_start_date => ld_res_pay_start_date);
6976: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6977: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6978: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6979: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6980: END IF;
6973: x_return_status => x_return_status,
6974: x_residual_value => rv_tbl(p).cf_amount,
6975: x_start_date => ld_res_pay_start_date);
6976: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6977: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6978: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6979: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6980: END IF;
6981: l_residual_value := rv_tbl(p).cf_amount;
6974: x_residual_value => rv_tbl(p).cf_amount,
6975: x_start_date => ld_res_pay_start_date);
6976: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6977: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6978: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6979: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6980: END IF;
6981: l_residual_value := rv_tbl(p).cf_amount;
6982: rv_tbl(p).cf_date := l_asset_rv.end_date;
6975: x_start_date => ld_res_pay_start_date);
6976: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6977: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6978: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6979: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6980: END IF;
6981: l_residual_value := rv_tbl(p).cf_amount;
6982: rv_tbl(p).cf_date := l_asset_rv.end_date;
6983: rv_tbl(p).cf_dpp := l_asset_rv.days_per_period;
6985: OKL_PRICING_PVT.get_rate(p_khr_id => p_khr_id,
6986: p_date => rv_tbl(p).cf_date,
6987: x_rate => rv_tbl(p).rate,
6988: x_return_status => x_return_status);
6989: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6990: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6991: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6992: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6993: END IF;
6986: p_date => rv_tbl(p).cf_date,
6987: x_rate => rv_tbl(p).rate,
6988: x_return_status => x_return_status);
6989: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6990: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6991: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6992: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6993: END IF;
6994: IF (rv_tbl(p).rate IS NULL OR
6987: x_rate => rv_tbl(p).rate,
6988: x_return_status => x_return_status);
6989: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6990: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6991: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6992: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6993: END IF;
6994: IF (rv_tbl(p).rate IS NULL OR
6995: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
6988: x_return_status => x_return_status);
6989: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6990: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6991: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6992: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6993: END IF;
6994: IF (rv_tbl(p).rate IS NULL OR
6995: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
6996: p_target = 'RATE' THEN
6991: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6992: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6993: END IF;
6994: IF (rv_tbl(p).rate IS NULL OR
6995: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
6996: p_target = 'RATE' THEN
6997: OKL_API.set_message(
6998: p_app_name => G_APP_NAME,
6999: p_msg_name => G_INVALID_VALUE,
6993: END IF;
6994: IF (rv_tbl(p).rate IS NULL OR
6995: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
6996: p_target = 'RATE' THEN
6997: OKL_API.set_message(
6998: p_app_name => G_APP_NAME,
6999: p_msg_name => G_INVALID_VALUE,
7000: p_token1 => G_COL_NAME_TOKEN,
7001: p_token1_value => 'Rate');
6998: p_app_name => G_APP_NAME,
6999: p_msg_name => G_INVALID_VALUE,
7000: p_token1 => G_COL_NAME_TOKEN,
7001: p_token1_value => 'Rate');
7002: x_return_status := OKL_API.G_RET_STS_ERROR;
7003: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7004: END IF;
7005: rv_tbl(p).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
7006: p_start_date => ld_res_pay_start_date,
6999: p_msg_name => G_INVALID_VALUE,
7000: p_token1 => G_COL_NAME_TOKEN,
7001: p_token1_value => 'Rate');
7002: x_return_status := OKL_API.G_RET_STS_ERROR;
7003: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7004: END IF;
7005: rv_tbl(p).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
7006: p_start_date => ld_res_pay_start_date,
7007: p_days_in_month => l_day_convention_month,
7008: p_days_in_year => l_day_convention_year,
7009: p_end_date => rv_tbl(p).cf_date,
7010: p_arrears => 'Y',
7011: x_return_status => x_return_status);
7012: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7013: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
7014: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7015: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7016: END IF;
7009: p_end_date => rv_tbl(p).cf_date,
7010: p_arrears => 'Y',
7011: x_return_status => x_return_status);
7012: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7013: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
7014: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7015: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7016: END IF;
7017: END LOOP;
7010: p_arrears => 'Y',
7011: x_return_status => x_return_status);
7012: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7013: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
7014: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7015: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7016: END IF;
7017: END LOOP;
7018: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7011: x_return_status => x_return_status);
7012: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7013: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
7014: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7015: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7016: END IF;
7017: END LOOP;
7018: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7019: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
7017: END LOOP;
7018: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7019: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
7020: END IF;
7021: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7022: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7023: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7024: RAISE OKL_API.G_EXCEPTION_ERROR;
7025: END IF;
7018: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7019: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
7020: END IF;
7021: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7022: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7023: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7024: RAISE OKL_API.G_EXCEPTION_ERROR;
7025: END IF;
7026: -- Collecting the Outflow amounts of asset
7019: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
7020: END IF;
7021: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7022: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7023: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7024: RAISE OKL_API.G_EXCEPTION_ERROR;
7025: END IF;
7026: -- Collecting the Outflow amounts of asset
7027: -- Since we are summing up to the so_payment line
7020: END IF;
7021: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7022: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7023: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7024: RAISE OKL_API.G_EXCEPTION_ERROR;
7025: END IF;
7026: -- Collecting the Outflow amounts of asset
7027: -- Since we are summing up to the so_payment line
7028: -- We would have one asset cost
7034: p_subside_yn => l_subside_yn,
7035: x_return_status => x_return_status,
7036: x_asset_oec => outflow_tbl(q).cf_amount,
7037: x_start_date => ld_asset_start_date);
7038: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7039: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7040: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7041: RAISE OKL_API.G_EXCEPTION_ERROR;
7042: END IF;
7035: x_return_status => x_return_status,
7036: x_asset_oec => outflow_tbl(q).cf_amount,
7037: x_start_date => ld_asset_start_date);
7038: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7039: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7040: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7041: RAISE OKL_API.G_EXCEPTION_ERROR;
7042: END IF;
7043: outflow_tbl(q).cf_amount := -(outflow_tbl(q).cf_amount);
7036: x_asset_oec => outflow_tbl(q).cf_amount,
7037: x_start_date => ld_asset_start_date);
7038: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7039: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7040: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7041: RAISE OKL_API.G_EXCEPTION_ERROR;
7042: END IF;
7043: outflow_tbl(q).cf_amount := -(outflow_tbl(q).cf_amount);
7044: outflow_tbl(q).cf_date := ld_asset_start_date;
7037: x_start_date => ld_asset_start_date);
7038: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7039: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7040: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7041: RAISE OKL_API.G_EXCEPTION_ERROR;
7042: END IF;
7043: outflow_tbl(q).cf_amount := -(outflow_tbl(q).cf_amount);
7044: outflow_tbl(q).cf_date := ld_asset_start_date;
7045: outflow_tbl(q).cf_dpp := 1;
7047: OKL_PRICING_PVT.get_rate(p_khr_id => p_khr_id,
7048: p_date => outflow_tbl(q).cf_date,
7049: x_rate => outflow_tbl(q).rate,
7050: x_return_status => x_return_status);
7051: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7052: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7053: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7054: RAISE OKL_API.G_EXCEPTION_ERROR;
7055: END IF;
7048: p_date => outflow_tbl(q).cf_date,
7049: x_rate => outflow_tbl(q).rate,
7050: x_return_status => x_return_status);
7051: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7052: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7053: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7054: RAISE OKL_API.G_EXCEPTION_ERROR;
7055: END IF;
7056: IF (outflow_tbl(q).rate IS NULL OR
7049: x_rate => outflow_tbl(q).rate,
7050: x_return_status => x_return_status);
7051: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7052: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7053: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7054: RAISE OKL_API.G_EXCEPTION_ERROR;
7055: END IF;
7056: IF (outflow_tbl(q).rate IS NULL OR
7057: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
7050: x_return_status => x_return_status);
7051: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7052: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7053: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7054: RAISE OKL_API.G_EXCEPTION_ERROR;
7055: END IF;
7056: IF (outflow_tbl(q).rate IS NULL OR
7057: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
7058: p_target = 'RATE' THEN
7053: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7054: RAISE OKL_API.G_EXCEPTION_ERROR;
7055: END IF;
7056: IF (outflow_tbl(q).rate IS NULL OR
7057: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
7058: p_target = 'RATE' THEN
7059: OKL_API.set_message(
7060: p_app_name => G_APP_NAME,
7061: p_msg_name => G_INVALID_VALUE,
7055: END IF;
7056: IF (outflow_tbl(q).rate IS NULL OR
7057: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
7058: p_target = 'RATE' THEN
7059: OKL_API.set_message(
7060: p_app_name => G_APP_NAME,
7061: p_msg_name => G_INVALID_VALUE,
7062: p_token1 => G_COL_NAME_TOKEN,
7063: p_token1_value => 'Rate');
7060: p_app_name => G_APP_NAME,
7061: p_msg_name => G_INVALID_VALUE,
7062: p_token1 => G_COL_NAME_TOKEN,
7063: p_token1_value => 'Rate');
7064: x_return_status := OKL_API.G_RET_STS_ERROR;
7065: RAISE OKL_API.G_EXCEPTION_ERROR;
7066: END IF;
7067: outflow_tbl(q).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
7068: p_start_date => ld_asset_start_date,
7061: p_msg_name => G_INVALID_VALUE,
7062: p_token1 => G_COL_NAME_TOKEN,
7063: p_token1_value => 'Rate');
7064: x_return_status := OKL_API.G_RET_STS_ERROR;
7065: RAISE OKL_API.G_EXCEPTION_ERROR;
7066: END IF;
7067: outflow_tbl(q).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
7068: p_start_date => ld_asset_start_date,
7069: p_days_in_month => l_day_convention_month,
7070: p_days_in_year => l_day_convention_year,
7071: p_end_date => ld_asset_start_date,
7072: p_arrears => 'N',
7073: x_return_status => x_return_status);
7074: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7075: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7076: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7077: RAISE OKL_API.G_EXCEPTION_ERROR;
7078: END IF;
7071: p_end_date => ld_asset_start_date,
7072: p_arrears => 'N',
7073: x_return_status => x_return_status);
7074: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7075: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7076: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7077: RAISE OKL_API.G_EXCEPTION_ERROR;
7078: END IF;
7079: END IF;
7072: p_arrears => 'N',
7073: x_return_status => x_return_status);
7074: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7075: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7076: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7077: RAISE OKL_API.G_EXCEPTION_ERROR;
7078: END IF;
7079: END IF;
7080:
7073: x_return_status => x_return_status);
7074: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7075: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7076: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7077: RAISE OKL_API.G_EXCEPTION_ERROR;
7078: END IF;
7079: END IF;
7080:
7081: -- Validating Sum of all the inflow do not exceed the Total Time zero cost
7093: END IF;
7094: END LOOP;
7095: END IF;
7096: IF l_adv_payment >= l_time_zero_cost THEN
7097: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7098: p_msg_name => 'OKL_IRR_CALC_INF_LOOP',
7099: p_token1 => 'ADV_AMOUNT',
7100: p_token1_value => l_adv_payment,
7101: p_token2 => 'CAPITAL_AMOUNT',
7099: p_token1 => 'ADV_AMOUNT',
7100: p_token1_value => l_adv_payment,
7101: p_token2 => 'CAPITAL_AMOUNT',
7102: p_token2_value => l_time_zero_cost);
7103: RAISE OKL_API.G_EXCEPTION_ERROR;
7104: END IF;
7105: -- To get the Currency code and Precision
7106: OPEN get_curr_code_pre(p_khr_id => p_khr_id);
7107: FETCH get_curr_code_pre INTO l_precision;
7105: -- To get the Currency code and Precision
7106: OPEN get_curr_code_pre(p_khr_id => p_khr_id);
7107: FETCH get_curr_code_pre INTO l_precision;
7108: IF get_curr_code_pre%NOTFOUND THEN
7109: OKL_API.set_message(p_app_name => G_APP_NAME,
7110: p_msg_name => G_REQUIRED_VALUE,
7111: p_token1 => G_COL_NAME_TOKEN,
7112: p_token1_value => 'Currency Code ');
7113: RAISE OKL_API.G_EXCEPTION_ERROR;
7109: OKL_API.set_message(p_app_name => G_APP_NAME,
7110: p_msg_name => G_REQUIRED_VALUE,
7111: p_token1 => G_COL_NAME_TOKEN,
7112: p_token1_value => 'Currency Code ');
7113: RAISE OKL_API.G_EXCEPTION_ERROR;
7114: END IF;
7115: CLOSE get_curr_code_pre;
7116:
7117: -- Setting the IRR limit
7140: l_cf_date := rv_tbl(z).cf_date;
7141: l_days_in_future := rv_tbl(z).cf_days;
7142: l_periods := l_days_in_future / l_cf_dpp;
7143: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
7144: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7145: p_msg_name => 'OKL_IRR_ZERO_DIV');
7146: x_return_status := OKL_API.G_RET_STS_ERROR;
7147: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7148: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide rvs '|| x_return_status);
7142: l_periods := l_days_in_future / l_cf_dpp;
7143: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
7144: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7145: p_msg_name => 'OKL_IRR_ZERO_DIV');
7146: x_return_status := OKL_API.G_RET_STS_ERROR;
7147: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7148: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide rvs '|| x_return_status);
7149: END IF;
7150: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7146: x_return_status := OKL_API.G_RET_STS_ERROR;
7147: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7148: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide rvs '|| x_return_status);
7149: END IF;
7150: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7151: END IF;
7152: IF p_target = 'RATE' THEN
7153: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + rv_tbl(z).rate/(l_cf_ppy*100)), l_periods));
7154: ELSIF p_target = 'PMNT' THEN
7173: ELSIF inflow_tbl(y).miss_amt = 'N' THEN
7174: l_cf_amount := inflow_tbl(y).cf_amount;
7175: l_cf_date := inflow_tbl(y).cf_date;
7176: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
7177: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7178: p_msg_name => 'OKL_IRR_ZERO_DIV');
7179: x_return_status := OKL_API.G_RET_STS_ERROR;
7180: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7181: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
7175: l_cf_date := inflow_tbl(y).cf_date;
7176: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
7177: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7178: p_msg_name => 'OKL_IRR_ZERO_DIV');
7179: x_return_status := OKL_API.G_RET_STS_ERROR;
7180: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7181: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
7182: END IF;
7183: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7179: x_return_status := OKL_API.G_RET_STS_ERROR;
7180: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7181: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
7182: END IF;
7183: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7184: END IF;
7185: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + inflow_tbl(y).rate/(l_cf_ppy*100)), l_periods));
7186: END IF;
7187: END LOOP;
7188:
7189: If (l_term <> 0 ) Then
7190: l_payment_inflow := (-1 * l_npv_pay ) / l_term;
7191: else
7192: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7193: p_msg_name => 'OKL_IRR_ZERO_DIV');
7194: x_return_status := OKL_API.G_RET_STS_ERROR;
7195: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7196: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
7190: l_payment_inflow := (-1 * l_npv_pay ) / l_term;
7191: else
7192: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7193: p_msg_name => 'OKL_IRR_ZERO_DIV');
7194: x_return_status := OKL_API.G_RET_STS_ERROR;
7195: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7196: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
7197: END IF;
7198: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7194: x_return_status := OKL_API.G_RET_STS_ERROR;
7195: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7196: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
7197: END IF;
7198: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7199: end if;
7200:
7201: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7202: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' l_npv_pay ' || l_npv_pay );
7218: l_cf_date := inflow_tbl(y).cf_date;
7219: l_days_in_future := inflow_tbl(y).cf_days;
7220: l_periods := l_days_in_future / l_cf_dpp;
7221: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
7222: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7223: p_msg_name => 'OKL_IRR_ZERO_DIV');
7224: x_return_status := OKL_API.G_RET_STS_ERROR;
7225: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7226: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
7220: l_periods := l_days_in_future / l_cf_dpp;
7221: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
7222: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7223: p_msg_name => 'OKL_IRR_ZERO_DIV');
7224: x_return_status := OKL_API.G_RET_STS_ERROR;
7225: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7226: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
7227: END IF;
7228: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7224: x_return_status := OKL_API.G_RET_STS_ERROR;
7225: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7226: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
7227: END IF;
7228: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7229: END IF;
7230: IF p_target = 'RATE' THEN
7231: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + inflow_tbl(y).rate/(l_cf_ppy*100)), l_periods));
7232: ELSIF p_target = 'PMNT' THEN
7311: END IF;
7312: END IF;
7313: l_irr := l_irr + l_increment_rate;
7314: IF ABS(l_irr) > l_irr_limit THEN
7315: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7316: p_msg_name => 'OKL_IRR_CALC_IRR_LIMIT',
7317: p_token1 => 'IRR_LIMIT',
7318: p_token1_value => l_irr_limit*100);
7319: x_return_status := OKL_API.G_RET_STS_ERROR;
7315: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7316: p_msg_name => 'OKL_IRR_CALC_IRR_LIMIT',
7317: p_token1 => 'IRR_LIMIT',
7318: p_token1_value => l_irr_limit*100);
7319: x_return_status := OKL_API.G_RET_STS_ERROR;
7320: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7321: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' 100000% '|| x_return_status);
7322: END IF;
7323: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7319: x_return_status := OKL_API.G_RET_STS_ERROR;
7320: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7321: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' 100000% '|| x_return_status);
7322: END IF;
7323: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
7324: END IF;
7325: l_prev_incr_sign_rate := SIGN(l_increment_rate);
7326: l_prev_npv_sign_rate := SIGN(l_npv_rate);
7327: l_prev_npv_rate := l_npv_rate;
7326: l_prev_npv_sign_rate := SIGN(l_npv_rate);
7327: l_prev_npv_rate := l_npv_rate;
7328: END IF;
7329: END LOOP;
7330: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7331: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7332: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7333: RAISE OKL_API.G_EXCEPTION_ERROR;
7334: END IF;
7327: l_prev_npv_rate := l_npv_rate;
7328: END IF;
7329: END LOOP;
7330: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7331: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7332: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7333: RAISE OKL_API.G_EXCEPTION_ERROR;
7334: END IF;
7335: OKL_API.END_ACTIVITY (x_msg_count,
7328: END IF;
7329: END LOOP;
7330: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7331: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7332: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7333: RAISE OKL_API.G_EXCEPTION_ERROR;
7334: END IF;
7335: OKL_API.END_ACTIVITY (x_msg_count,
7336: x_msg_data );
7329: END LOOP;
7330: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7331: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7332: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7333: RAISE OKL_API.G_EXCEPTION_ERROR;
7334: END IF;
7335: OKL_API.END_ACTIVITY (x_msg_count,
7336: x_msg_data );
7337: EXCEPTION
7331: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7332: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7333: RAISE OKL_API.G_EXCEPTION_ERROR;
7334: END IF;
7335: OKL_API.END_ACTIVITY (x_msg_count,
7336: x_msg_data );
7337: EXCEPTION
7338: WHEN OKL_API.G_EXCEPTION_ERROR THEN
7339: IF get_curr_code_pre%ISOPEN THEN
7334: END IF;
7335: OKL_API.END_ACTIVITY (x_msg_count,
7336: x_msg_data );
7337: EXCEPTION
7338: WHEN OKL_API.G_EXCEPTION_ERROR THEN
7339: IF get_curr_code_pre%ISOPEN THEN
7340: CLOSE get_curr_code_pre;
7341: END IF;
7342: IF c_asset_rvs%ISOPEN THEN
7347: END IF;
7348: IF get_start_date%ISOPEN THEN
7349: CLOSE get_start_date;
7350: END IF;
7351: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
7352: l_api_name,
7353: G_PKG_NAME,
7354: 'OKL_API.G_RET_STS_ERROR',
7355: x_msg_count,
7350: END IF;
7351: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
7352: l_api_name,
7353: G_PKG_NAME,
7354: 'OKL_API.G_RET_STS_ERROR',
7355: x_msg_count,
7356: x_msg_data,
7357: '_PVT');
7358: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
7354: 'OKL_API.G_RET_STS_ERROR',
7355: x_msg_count,
7356: x_msg_data,
7357: '_PVT');
7358: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
7359: IF get_curr_code_pre%ISOPEN THEN
7360: CLOSE get_curr_code_pre;
7361: END IF;
7362: IF c_asset_rvs%ISOPEN THEN
7367: END IF;
7368: IF get_start_date%ISOPEN THEN
7369: CLOSE get_start_date;
7370: END IF;
7371: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
7372: l_api_name,
7373: G_PKG_NAME,
7374: 'OKL_API.G_RET_STS_UNEXP_ERROR',
7375: x_msg_count,
7370: END IF;
7371: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
7372: l_api_name,
7373: G_PKG_NAME,
7374: 'OKL_API.G_RET_STS_UNEXP_ERROR',
7375: x_msg_count,
7376: x_msg_data,
7377: '_PVT');
7378: WHEN OTHERS THEN
7387: END IF;
7388: IF get_start_date%ISOPEN THEN
7389: CLOSE get_start_date;
7390: END IF;
7391: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
7392: l_api_name,
7393: G_PKG_NAME,
7394: 'OTHERS',
7395: x_msg_count,
7631:
7632: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7633: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'validate payments ' || x_return_status );
7634: END IF;
7635: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7636: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7637: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7638: RAISE OKL_API.G_EXCEPTION_ERROR;
7639: END IF;
7632: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7633: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'validate payments ' || x_return_status );
7634: END IF;
7635: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7636: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7637: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7638: RAISE OKL_API.G_EXCEPTION_ERROR;
7639: END IF;
7640: -- Bug 4626837: Start
7633: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'validate payments ' || x_return_status );
7634: END IF;
7635: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7636: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7637: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7638: RAISE OKL_API.G_EXCEPTION_ERROR;
7639: END IF;
7640: -- Bug 4626837: Start
7641: --Fetch the Stream Type ID based on the purpose instead of the name
7634: END IF;
7635: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7636: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7637: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7638: RAISE OKL_API.G_EXCEPTION_ERROR;
7639: END IF;
7640: -- Bug 4626837: Start
7641: --Fetch the Stream Type ID based on the purpose instead of the name
7642: OKL_ISG_UTILS_PVT.get_primary_stream_type(
7646: x_return_status => x_return_status,
7647: x_primary_sty_id => l_rent_strm_id,
7648: x_primary_sty_name => l_rent_strm_name);
7649: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
7650: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7651: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
7652: RAISE OKL_API.G_EXCEPTION_ERROR;
7653: END IF;
7654: -- Bug 4626837: End
7648: x_primary_sty_name => l_rent_strm_name);
7649: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
7650: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7651: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
7652: RAISE OKL_API.G_EXCEPTION_ERROR;
7653: END IF;
7654: -- Bug 4626837: End
7655: OKL_STREAM_GENERATOR_PVT.generate_cash_flows(
7656: p_api_version => p_api_version,
7667: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7668: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'generate_cash_flows ' || x_return_status );
7669:
7670: END IF;
7671: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7672: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7673: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7674: RAISE OKL_API.G_EXCEPTION_ERROR;
7675: END IF;
7668: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'generate_cash_flows ' || x_return_status );
7669:
7670: END IF;
7671: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7672: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7673: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7674: RAISE OKL_API.G_EXCEPTION_ERROR;
7675: END IF;
7676:
7669:
7670: END IF;
7671: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7672: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7673: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7674: RAISE OKL_API.G_EXCEPTION_ERROR;
7675: END IF;
7676:
7677:
7670: END IF;
7671: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7672: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7673: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7674: RAISE OKL_API.G_EXCEPTION_ERROR;
7675: END IF;
7676:
7677:
7678: OPEN c_subs;
7693:
7694: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7695: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' get_asset_oec ' || to_char( l_capital_cost)|| x_return_status);
7696: END IF;
7697: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7698: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7699: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7700: RAISE OKL_API.G_EXCEPTION_ERROR;
7701: END IF;
7694: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7695: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' get_asset_oec ' || to_char( l_capital_cost)|| x_return_status);
7696: END IF;
7697: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7698: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7699: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7700: RAISE OKL_API.G_EXCEPTION_ERROR;
7701: END IF;
7702:
7695: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' get_asset_oec ' || to_char( l_capital_cost)|| x_return_status);
7696: END IF;
7697: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7698: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7699: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7700: RAISE OKL_API.G_EXCEPTION_ERROR;
7701: END IF;
7702:
7703: Okl_la_stream_pvt.get_so_residual_value(p_khr_id,
7696: END IF;
7697: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7698: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7699: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7700: RAISE OKL_API.G_EXCEPTION_ERROR;
7701: END IF;
7702:
7703: Okl_la_stream_pvt.get_so_residual_value(p_khr_id,
7704: p_kle_id,
7709:
7710: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7711: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' get_residual_value ' || to_char( l_residual_value )|| x_return_status);
7712: END IF;
7713: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7714: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7715: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7716: RAISE OKL_API.G_EXCEPTION_ERROR;
7717: END IF;
7710: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7711: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' get_residual_value ' || to_char( l_residual_value )|| x_return_status);
7712: END IF;
7713: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7714: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7715: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7716: RAISE OKL_API.G_EXCEPTION_ERROR;
7717: END IF;
7718:
7711: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' get_residual_value ' || to_char( l_residual_value )|| x_return_status);
7712: END IF;
7713: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7714: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7715: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7716: RAISE OKL_API.G_EXCEPTION_ERROR;
7717: END IF;
7718:
7719: If ( p_rate_type = 'PRE_TAX_IRR' ) Then
7712: END IF;
7713: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7714: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7715: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7716: RAISE OKL_API.G_EXCEPTION_ERROR;
7717: END IF;
7718:
7719: If ( p_rate_type = 'PRE_TAX_IRR' ) Then
7720:
7774: x_msg_count => x_msg_count,
7775: x_msg_data => x_msg_data);
7776:
7777:
7778: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7779: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7780: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7781: RAISE OKL_API.G_EXCEPTION_ERROR;
7782: END IF;
7775: x_msg_data => x_msg_data);
7776:
7777:
7778: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7779: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7780: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7781: RAISE OKL_API.G_EXCEPTION_ERROR;
7782: END IF;
7783:
7776:
7777:
7778: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7779: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7780: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7781: RAISE OKL_API.G_EXCEPTION_ERROR;
7782: END IF;
7783:
7784: End If;
7777:
7778: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7779: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7780: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7781: RAISE OKL_API.G_EXCEPTION_ERROR;
7782: END IF;
7783:
7784: End If;
7785:
7825: x_msg_count => x_msg_count,
7826: x_msg_data => x_msg_data);
7827:
7828:
7829: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7830: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7831: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7832: RAISE OKL_API.G_EXCEPTION_ERROR;
7833: END IF;
7826: x_msg_data => x_msg_data);
7827:
7828:
7829: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7830: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7831: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7832: RAISE OKL_API.G_EXCEPTION_ERROR;
7833: END IF;
7834:
7827:
7828:
7829: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7830: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7831: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7832: RAISE OKL_API.G_EXCEPTION_ERROR;
7833: END IF;
7834:
7835: End If;
7828:
7829: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7830: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7831: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7832: RAISE OKL_API.G_EXCEPTION_ERROR;
7833: END IF;
7834:
7835: End If;
7836:
7865:
7866: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7867: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || x_return_status );
7868: END IF;
7869: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7870: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7871: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7872: RAISE OKL_API.G_EXCEPTION_ERROR;
7873: END IF;
7866: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7867: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || x_return_status );
7868: END IF;
7869: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7870: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7871: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7872: RAISE OKL_API.G_EXCEPTION_ERROR;
7873: END IF;
7874:
7867: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || x_return_status );
7868: END IF;
7869: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7870: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7871: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7872: RAISE OKL_API.G_EXCEPTION_ERROR;
7873: END IF;
7874:
7875: ElsIf ( p_rate_type = 'IMPL_INTEREST_RATE' ) Then
7868: END IF;
7869: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7870: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7871: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7872: RAISE OKL_API.G_EXCEPTION_ERROR;
7873: END IF;
7874:
7875: ElsIf ( p_rate_type = 'IMPL_INTEREST_RATE' ) Then
7876:
7894:
7895: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7896: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
7897: END IF;
7898: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7899: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7900: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7901: RAISE OKL_API.G_EXCEPTION_ERROR;
7902: END IF;
7895: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7896: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
7897: END IF;
7898: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7899: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7900: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7901: RAISE OKL_API.G_EXCEPTION_ERROR;
7902: END IF;
7903:
7896: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
7897: END IF;
7898: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7899: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7900: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7901: RAISE OKL_API.G_EXCEPTION_ERROR;
7902: END IF;
7903:
7904: ElsIf ( p_rate_type = 'PRE_TAX_YIELD' ) Then
7897: END IF;
7898: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7899: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7900: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7901: RAISE OKL_API.G_EXCEPTION_ERROR;
7902: END IF;
7903:
7904: ElsIf ( p_rate_type = 'PRE_TAX_YIELD' ) Then
7905: -- Same as Booking Yield whenever there is no interim cost. for SO there are no interim cost
7924:
7925: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7926: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
7927: END IF;
7928: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7929: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7930: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7931: RAISE OKL_API.G_EXCEPTION_ERROR;
7932: END IF;
7925: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7926: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
7927: END IF;
7928: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7929: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7930: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7931: RAISE OKL_API.G_EXCEPTION_ERROR;
7932: END IF;
7933:
7926: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
7927: END IF;
7928: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7929: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7930: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7931: RAISE OKL_API.G_EXCEPTION_ERROR;
7932: END IF;
7933:
7934: Else
7927: END IF;
7928: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7929: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7930: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7931: RAISE OKL_API.G_EXCEPTION_ERROR;
7932: END IF;
7933:
7934: Else
7935:
7932: END IF;
7933:
7934: Else
7935:
7936: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7937: p_msg_name => 'OKL_INVALID_RATE_TYPE',
7938: p_token1 => 'RATE_TYPE',
7939: p_token1_value => p_rate_type);
7940:
7937: p_msg_name => 'OKL_INVALID_RATE_TYPE',
7938: p_token1 => 'RATE_TYPE',
7939: p_token1_value => p_rate_type);
7940:
7941: x_return_status := OKL_API.G_RET_STS_ERROR;
7942: RAISE OKL_API.G_EXCEPTION_ERROR;
7943:
7944: End If;
7945:
7938: p_token1 => 'RATE_TYPE',
7939: p_token1_value => p_rate_type);
7940:
7941: x_return_status := OKL_API.G_RET_STS_ERROR;
7942: RAISE OKL_API.G_EXCEPTION_ERROR;
7943:
7944: End If;
7945:
7946: If (p_target_param = 'RATE') AND (l_payment < 0 ) THen
7944: End If;
7945:
7946: If (p_target_param = 'RATE') AND (l_payment < 0 ) THen
7947:
7948: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7949: p_msg_name => 'OKL_LLAP_CANNOT_PRICE');
7950: x_return_status := OKL_API.G_RET_STS_ERROR;
7951: RAISE OKL_API.G_EXCEPTION_ERROR;
7952:
7946: If (p_target_param = 'RATE') AND (l_payment < 0 ) THen
7947:
7948: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7949: p_msg_name => 'OKL_LLAP_CANNOT_PRICE');
7950: x_return_status := OKL_API.G_RET_STS_ERROR;
7951: RAISE OKL_API.G_EXCEPTION_ERROR;
7952:
7953: End If;
7954:
7947:
7948: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7949: p_msg_name => 'OKL_LLAP_CANNOT_PRICE');
7950: x_return_status := OKL_API.G_RET_STS_ERROR;
7951: RAISE OKL_API.G_EXCEPTION_ERROR;
7952:
7953: End If;
7954:
7955: FOR i in l_pay_tbl.FIRST..l_pay_tbl.LAST
7997: x_msg_count => x_msg_count,
7998: x_msg_data => x_msg_data,
7999: p_stmv_tbl => l_stmv_tbl);
8000:
8001: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8002: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8003: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8004: RAISE OKL_API.G_EXCEPTION_ERROR;
8005: END IF;
7998: x_msg_data => x_msg_data,
7999: p_stmv_tbl => l_stmv_tbl);
8000:
8001: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8002: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8003: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8004: RAISE OKL_API.G_EXCEPTION_ERROR;
8005: END IF;
8006:
7999: p_stmv_tbl => l_stmv_tbl);
8000:
8001: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8002: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8003: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8004: RAISE OKL_API.G_EXCEPTION_ERROR;
8005: END IF;
8006:
8007: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8000:
8001: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8002: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8003: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8004: RAISE OKL_API.G_EXCEPTION_ERROR;
8005: END IF;
8006:
8007: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8008: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' DONE '|| x_return_status);
8015:
8016: END IF;
8017: EXCEPTION
8018:
8019: WHEN OKL_API.G_EXCEPTION_ERROR THEN
8020:
8021: i := 0;
8022: FOR l_strms_rec in l_strms_csr
8023: LOOP
8036: x_msg_count => x_msg_count,
8037: x_msg_data => x_msg_data,
8038: p_stmv_tbl => l_stmv_tbl);
8039:
8040: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8041: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8042: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8043: RAISE OKL_API.G_EXCEPTION_ERROR;
8044: END IF;
8037: x_msg_data => x_msg_data,
8038: p_stmv_tbl => l_stmv_tbl);
8039:
8040: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8041: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8042: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8043: RAISE OKL_API.G_EXCEPTION_ERROR;
8044: END IF;
8045:
8038: p_stmv_tbl => l_stmv_tbl);
8039:
8040: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8041: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8042: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8043: RAISE OKL_API.G_EXCEPTION_ERROR;
8044: END IF;
8045:
8046: End If;
8039:
8040: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8041: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8042: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8043: RAISE OKL_API.G_EXCEPTION_ERROR;
8044: END IF;
8045:
8046: End If;
8047: x_return_status := G_RET_STS_ERROR;
8044: END IF;
8045:
8046: End If;
8047: x_return_status := G_RET_STS_ERROR;
8048: RAISE OKL_API.G_EXCEPTION_ERROR;
8049:
8050: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8051:
8052: i := 0;
8046: End If;
8047: x_return_status := G_RET_STS_ERROR;
8048: RAISE OKL_API.G_EXCEPTION_ERROR;
8049:
8050: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8051:
8052: i := 0;
8053: FOR l_strms_rec in l_strms_csr
8054: LOOP
8067: x_msg_count => x_msg_count,
8068: x_msg_data => x_msg_data,
8069: p_stmv_tbl => l_stmv_tbl);
8070:
8071: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8072: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8073: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8074: RAISE OKL_API.G_EXCEPTION_ERROR;
8075: END IF;
8068: x_msg_data => x_msg_data,
8069: p_stmv_tbl => l_stmv_tbl);
8070:
8071: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8072: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8073: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8074: RAISE OKL_API.G_EXCEPTION_ERROR;
8075: END IF;
8076:
8069: p_stmv_tbl => l_stmv_tbl);
8070:
8071: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8072: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8073: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8074: RAISE OKL_API.G_EXCEPTION_ERROR;
8075: END IF;
8076:
8077: End If;
8070:
8071: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8072: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8073: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8074: RAISE OKL_API.G_EXCEPTION_ERROR;
8075: END IF;
8076:
8077: End If;
8078: x_return_status := G_RET_STS_UNEXP_ERROR;
8075: END IF;
8076:
8077: End If;
8078: x_return_status := G_RET_STS_UNEXP_ERROR;
8079: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8080:
8081: WHEN OTHERS THEN
8082:
8083: i := 0;
8098: x_msg_count => x_msg_count,
8099: x_msg_data => x_msg_data,
8100: p_stmv_tbl => l_stmv_tbl);
8101:
8102: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8103: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8104: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8105: RAISE OKL_API.G_EXCEPTION_ERROR;
8106: END IF;
8099: x_msg_data => x_msg_data,
8100: p_stmv_tbl => l_stmv_tbl);
8101:
8102: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8103: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8104: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8105: RAISE OKL_API.G_EXCEPTION_ERROR;
8106: END IF;
8107:
8100: p_stmv_tbl => l_stmv_tbl);
8101:
8102: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8103: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8104: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8105: RAISE OKL_API.G_EXCEPTION_ERROR;
8106: END IF;
8107:
8108: End If;
8101:
8102: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8103: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8104: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8105: RAISE OKL_API.G_EXCEPTION_ERROR;
8106: END IF;
8107:
8108: End If;
8109: x_return_status := G_RET_STS_UNEXP_ERROR;
8106: END IF;
8107:
8108: End If;
8109: x_return_status := G_RET_STS_UNEXP_ERROR;
8110: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8111:
8112: End target_parameter;
8113:
8114: ---------------------------------------------------------------------------
8342: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8343: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
8344: END IF;
8345: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
8346: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8347: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
8348: RAISE OKL_API.G_EXCEPTION_ERROR;
8349: END IF;
8350:
8344: END IF;
8345: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
8346: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8347: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
8348: RAISE OKL_API.G_EXCEPTION_ERROR;
8349: END IF;
8350:
8351: OPEN l_hdr_csr;
8352: FETCH l_hdr_csr INTO l_hdr_rec;
8401: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8402: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' l_principal_balance ' || l_principal_balance
8403: || ' l_accumulated_int '||l_accumulated_int|| x_return_status);
8404: END IF;
8405: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8406: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8407: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8408: RAISE OKL_API.G_EXCEPTION_ERROR;
8409: END IF;
8402: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' l_principal_balance ' || l_principal_balance
8403: || ' l_accumulated_int '||l_accumulated_int|| x_return_status);
8404: END IF;
8405: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8406: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8407: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8408: RAISE OKL_API.G_EXCEPTION_ERROR;
8409: END IF;
8410:
8403: || ' l_accumulated_int '||l_accumulated_int|| x_return_status);
8404: END IF;
8405: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8406: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8407: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8408: RAISE OKL_API.G_EXCEPTION_ERROR;
8409: END IF;
8410:
8411: l_npv := l_npv - NVL(l_principal_balance, 0);
8404: END IF;
8405: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8406: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8407: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8408: RAISE OKL_API.G_EXCEPTION_ERROR;
8409: END IF;
8410:
8411: l_npv := l_npv - NVL(l_principal_balance, 0);
8412:
8416: p_end_date => p_pay_start_date,
8417: p_arrears => 'N',
8418: x_return_status => lx_return_status);
8419:
8420: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8421: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8422: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8423: RAISE OKL_API.G_EXCEPTION_ERROR;
8424: END IF;
8417: p_arrears => 'N',
8418: x_return_status => lx_return_status);
8419:
8420: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8421: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8422: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8423: RAISE OKL_API.G_EXCEPTION_ERROR;
8424: END IF;
8425:
8418: x_return_status => lx_return_status);
8419:
8420: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8421: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8422: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8423: RAISE OKL_API.G_EXCEPTION_ERROR;
8424: END IF;
8425:
8426: l_periods := l_days_in_future / l_dpp;
8419:
8420: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8421: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8422: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8423: RAISE OKL_API.G_EXCEPTION_ERROR;
8424: END IF;
8425:
8426: l_periods := l_days_in_future / l_dpp;
8427: l_npv := l_npv + l_accumulated_int / POWER((1 + l_iir/l_ppy), l_periods);
8446: x_return_status => x_return_status,
8447: x_msg_count => x_msg_count,
8448: x_msg_data => x_msg_data);
8449:
8450: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8451: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8452: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
8453: RAISE OKL_API.G_EXCEPTION_ERROR;
8454: END IF; */
8447: x_msg_count => x_msg_count,
8448: x_msg_data => x_msg_data);
8449:
8450: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8451: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8452: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
8453: RAISE OKL_API.G_EXCEPTION_ERROR;
8454: END IF; */
8455: -- end djanaswa
8448: x_msg_data => x_msg_data);
8449:
8450: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8451: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8452: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
8453: RAISE OKL_API.G_EXCEPTION_ERROR;
8454: END IF; */
8455: -- end djanaswa
8456:
8449:
8450: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8451: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8452: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
8453: RAISE OKL_API.G_EXCEPTION_ERROR;
8454: END IF; */
8455: -- end djanaswa
8456:
8457:
8468: p_end_date => lx_selv_tbl(i).stream_element_date,
8469: p_arrears => p_arrears_yn,
8470: x_return_status => lx_return_status);
8471:
8472: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8473: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8474: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8475: RAISE OKL_API.G_EXCEPTION_ERROR;
8476: END IF;
8469: p_arrears => p_arrears_yn,
8470: x_return_status => lx_return_status);
8471:
8472: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8473: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8474: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8475: RAISE OKL_API.G_EXCEPTION_ERROR;
8476: END IF;
8477:
8470: x_return_status => lx_return_status);
8471:
8472: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8473: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8474: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8475: RAISE OKL_API.G_EXCEPTION_ERROR;
8476: END IF;
8477:
8478: l_periods := l_days_in_future / l_dpp;
8471:
8472: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8473: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8474: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8475: RAISE OKL_API.G_EXCEPTION_ERROR;
8476: END IF;
8477:
8478: l_periods := l_days_in_future / l_dpp;
8479: l_term := l_term + 1 / POWER((1 + l_iir/l_ppy), l_periods);
8496:
8497: END IF;
8498: EXCEPTION
8499:
8500: WHEN OKL_API.G_EXCEPTION_ERROR THEN
8501:
8502: x_return_status := G_RET_STS_ERROR;
8503:
8504: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8500: WHEN OKL_API.G_EXCEPTION_ERROR THEN
8501:
8502: x_return_status := G_RET_STS_ERROR;
8503:
8504: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8505:
8506: x_return_status := G_RET_STS_UNEXP_ERROR;
8507:
8508: WHEN OTHERS THEN
8506: x_return_status := G_RET_STS_UNEXP_ERROR;
8507:
8508: WHEN OTHERS THEN
8509:
8510: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
8511: p_msg_name => G_DB_ERROR,
8512: p_token1 => G_PROG_NAME_TOKEN,
8513: p_token1_value => l_prog_name,
8514: p_token2 => G_SQLCODE_TOKEN,
8947: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8948: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
8949: END IF;
8950: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
8951: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8952: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
8953: RAISE OKL_API.G_EXCEPTION_ERROR;
8954: END IF;
8955: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8949: END IF;
8950: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
8951: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8952: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
8953: RAISE OKL_API.G_EXCEPTION_ERROR;
8954: END IF;
8955: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8956: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' Computing IIR on the date ' || p_start_Date );
8957: END IF;
9000: p_end_date => l_hdr_inflow.cf_date,
9001: p_arrears => l_hdr_inflow.cf_arrear,
9002: x_return_status => lx_return_status);
9003:
9004: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9005: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9006: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9007: RAISE OKL_API.G_EXCEPTION_ERROR;
9008: END IF;
9001: p_arrears => l_hdr_inflow.cf_arrear,
9002: x_return_status => lx_return_status);
9003:
9004: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9005: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9006: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9007: RAISE OKL_API.G_EXCEPTION_ERROR;
9008: END IF;
9009: END LOOP;
9002: x_return_status => lx_return_status);
9003:
9004: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9005: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9006: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9007: RAISE OKL_API.G_EXCEPTION_ERROR;
9008: END IF;
9009: END LOOP;
9010: -- Third
9003:
9004: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9005: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9006: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9007: RAISE OKL_API.G_EXCEPTION_ERROR;
9008: END IF;
9009: END LOOP;
9010: -- Third
9011: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9025: p_end_date => l_inflow.cf_date,
9026: p_arrears => l_inflow.cf_arrear,
9027: x_return_status => lx_return_status);
9028:
9029: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9030: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9031: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9032: RAISE OKL_API.G_EXCEPTION_ERROR;
9033: END IF;
9026: p_arrears => l_inflow.cf_arrear,
9027: x_return_status => lx_return_status);
9028:
9029: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9030: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9031: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9032: RAISE OKL_API.G_EXCEPTION_ERROR;
9033: END IF;
9034: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9027: x_return_status => lx_return_status);
9028:
9029: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9030: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9031: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9032: RAISE OKL_API.G_EXCEPTION_ERROR;
9033: END IF;
9034: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9035: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || inflow_tbl(n).cf_date || '| ' || inflow_tbl(n).cf_days || ' | ' || inflow_tbl(n).cf_amount ||' | ' ||
9028:
9029: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9030: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9031: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9032: RAISE OKL_API.G_EXCEPTION_ERROR;
9033: END IF;
9034: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9035: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || inflow_tbl(n).cf_date || '| ' || inflow_tbl(n).cf_days || ' | ' || inflow_tbl(n).cf_amount ||' | ' ||
9036: inflow_tbl(n).cf_dpp || ' | ' || inflow_tbl(n).cf_ppy );
9061: p_end_date => l_fee_inflow.cf_date,
9062: p_arrears => l_fee_inflow.cf_arrear,
9063: x_return_status => lx_return_status);
9064:
9065: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9066: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9067: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9068: RAISE OKL_API.G_EXCEPTION_ERROR;
9069: END IF;
9062: p_arrears => l_fee_inflow.cf_arrear,
9063: x_return_status => lx_return_status);
9064:
9065: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9066: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9067: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9068: RAISE OKL_API.G_EXCEPTION_ERROR;
9069: END IF;
9070:
9063: x_return_status => lx_return_status);
9064:
9065: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9066: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9067: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9068: RAISE OKL_API.G_EXCEPTION_ERROR;
9069: END IF;
9070:
9071: END IF;
9064:
9065: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9066: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9067: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9068: RAISE OKL_API.G_EXCEPTION_ERROR;
9069: END IF;
9070:
9071: END IF;
9072: -- Added for approximation
9091: p_days_in_year => l_day_convention_year,
9092: p_end_date => l_asset_rv.date_terminated,
9093: p_arrears => 'Y',
9094: x_return_status => lx_return_status);
9095: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9096: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9097: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9098: RAISE OKL_API.G_EXCEPTION_ERROR;
9099: END IF;
9092: p_end_date => l_asset_rv.date_terminated,
9093: p_arrears => 'Y',
9094: x_return_status => lx_return_status);
9095: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9096: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9097: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9098: RAISE OKL_API.G_EXCEPTION_ERROR;
9099: END IF;
9100: ELSE
9093: p_arrears => 'Y',
9094: x_return_status => lx_return_status);
9095: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9096: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9097: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9098: RAISE OKL_API.G_EXCEPTION_ERROR;
9099: END IF;
9100: ELSE
9101: rv_tbl(p).cf_amount := l_asset_rv.cf_amount;
9094: x_return_status => lx_return_status);
9095: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9096: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9097: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9098: RAISE OKL_API.G_EXCEPTION_ERROR;
9099: END IF;
9100: ELSE
9101: rv_tbl(p).cf_amount := l_asset_rv.cf_amount;
9102: rv_tbl(p).cf_date := l_end_date;
9107: p_end_date => l_end_date,
9108: p_arrears => 'Y',
9109: x_return_status => lx_return_status);
9110:
9111: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9112: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9113: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9114: RAISE OKL_API.G_EXCEPTION_ERROR;
9115: END IF;
9108: p_arrears => 'Y',
9109: x_return_status => lx_return_status);
9110:
9111: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9112: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9113: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9114: RAISE OKL_API.G_EXCEPTION_ERROR;
9115: END IF;
9116:
9109: x_return_status => lx_return_status);
9110:
9111: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9112: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9113: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9114: RAISE OKL_API.G_EXCEPTION_ERROR;
9115: END IF;
9116:
9117: END IF;
9110:
9111: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9112: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9113: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9114: RAISE OKL_API.G_EXCEPTION_ERROR;
9115: END IF;
9116:
9117: END IF;
9118: rv_tbl(p).cf_dpp := l_asset_rv.days_per_period;
9149: p_end_date => l_outflow.start_date,
9150: p_arrears => 'N',
9151: x_return_status => lx_return_status);
9152:
9153: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9154: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9155: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9156: RAISE OKL_API.G_EXCEPTION_ERROR;
9157: END IF;
9150: p_arrears => 'N',
9151: x_return_status => lx_return_status);
9152:
9153: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9154: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9155: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9156: RAISE OKL_API.G_EXCEPTION_ERROR;
9157: END IF;
9158:
9151: x_return_status => lx_return_status);
9152:
9153: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9154: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9155: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9156: RAISE OKL_API.G_EXCEPTION_ERROR;
9157: END IF;
9158:
9159: END IF;
9152:
9153: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9154: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9155: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9156: RAISE OKL_API.G_EXCEPTION_ERROR;
9157: END IF;
9158:
9159: END IF;
9160:
9187: p_days_in_year => l_day_convention_year,
9188: p_end_date => outflow_tbl(q).cf_date,
9189: p_arrears => 'N',
9190: x_return_status => lx_return_status);
9191: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9192: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9193: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9194: RAISE OKL_API.G_EXCEPTION_ERROR;
9195: END IF;
9188: p_end_date => outflow_tbl(q).cf_date,
9189: p_arrears => 'N',
9190: x_return_status => lx_return_status);
9191: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9192: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9193: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9194: RAISE OKL_API.G_EXCEPTION_ERROR;
9195: END IF;
9196: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9189: p_arrears => 'N',
9190: x_return_status => lx_return_status);
9191: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9192: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9193: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9194: RAISE OKL_API.G_EXCEPTION_ERROR;
9195: END IF;
9196: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9197: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || outflow_tbl(q).cf_date || '| ' || outflow_tbl(q).cf_days || ' | ' ||
9190: x_return_status => lx_return_status);
9191: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9192: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9193: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9194: RAISE OKL_API.G_EXCEPTION_ERROR;
9195: END IF;
9196: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9197: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || outflow_tbl(q).cf_date || '| ' || outflow_tbl(q).cf_days || ' | ' ||
9198: outflow_tbl(q).cf_amount ||' | ' || outflow_tbl(q).cf_dpp || ' | ' || outflow_tbl(q).cf_ppy );
9214: p_days_in_year => l_day_convention_year,
9215: p_end_date => p_start_date,
9216: p_arrears => 'N',
9217: x_return_status => lx_return_status);
9218: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9219: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9220: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9221: RAISE OKL_API.G_EXCEPTION_ERROR;
9222: END IF;
9215: p_end_date => p_start_date,
9216: p_arrears => 'N',
9217: x_return_status => lx_return_status);
9218: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9219: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9220: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9221: RAISE OKL_API.G_EXCEPTION_ERROR;
9222: END IF;
9223: outflow_tbl(q).cf_days := -1 * outflow_tbl(q).cf_days;
9216: p_arrears => 'N',
9217: x_return_status => lx_return_status);
9218: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9219: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9220: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9221: RAISE OKL_API.G_EXCEPTION_ERROR;
9222: END IF;
9223: outflow_tbl(q).cf_days := -1 * outflow_tbl(q).cf_days;
9224: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9217: x_return_status => lx_return_status);
9218: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9219: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9220: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9221: RAISE OKL_API.G_EXCEPTION_ERROR;
9222: END IF;
9223: outflow_tbl(q).cf_days := -1 * outflow_tbl(q).cf_days;
9224: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9225: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || outflow_tbl(q).cf_date || '| ' || outflow_tbl(q).cf_days || ' | ' ||
9237: x_msg_count => lx_msg_count,
9238: p_asset_cle_id => l_outflow.id,
9239: x_subsidy_amount=> l_subsidy_amount);
9240:
9241: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9242: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9243: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9244: RAISE OKL_API.G_EXCEPTION_ERROR;
9245: END IF;
9238: p_asset_cle_id => l_outflow.id,
9239: x_subsidy_amount=> l_subsidy_amount);
9240:
9241: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9242: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9243: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9244: RAISE OKL_API.G_EXCEPTION_ERROR;
9245: END IF;
9246:
9239: x_subsidy_amount=> l_subsidy_amount);
9240:
9241: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9242: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9243: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9244: RAISE OKL_API.G_EXCEPTION_ERROR;
9245: END IF;
9246:
9247: subsidies_tbl(1).cf_amount := nvl(subsidies_tbl(1).cf_amount, 0) + nvl(l_subsidy_amount,0);
9240:
9241: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9242: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9243: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9244: RAISE OKL_API.G_EXCEPTION_ERROR;
9245: END IF;
9246:
9247: subsidies_tbl(1).cf_amount := nvl(subsidies_tbl(1).cf_amount, 0) + nvl(l_subsidy_amount,0);
9248:
9263: p_end_date => p_start_date,
9264: p_arrears => 'N',
9265: x_return_status => lx_return_status);
9266:
9267: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9268: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9269: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9270: RAISE OKL_API.G_EXCEPTION_ERROR;
9271: END IF;
9264: p_arrears => 'N',
9265: x_return_status => lx_return_status);
9266:
9267: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9268: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9269: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9270: RAISE OKL_API.G_EXCEPTION_ERROR;
9271: END IF;
9272: -- Subsidies End
9265: x_return_status => lx_return_status);
9266:
9267: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9268: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9269: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9270: RAISE OKL_API.G_EXCEPTION_ERROR;
9271: END IF;
9272: -- Subsidies End
9273:
9266:
9267: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9268: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9269: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9270: RAISE OKL_API.G_EXCEPTION_ERROR;
9271: END IF;
9272: -- Subsidies End
9273:
9274: End if;
9293: p_end_date => rec_exp_tbl(s).cf_date,
9294: p_arrears => 'N',
9295: x_return_status => lx_return_status);
9296:
9297: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9298: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9299: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9300: RAISE OKL_API.G_EXCEPTION_ERROR;
9301: END IF;
9294: p_arrears => 'N',
9295: x_return_status => lx_return_status);
9296:
9297: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9298: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9299: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9300: RAISE OKL_API.G_EXCEPTION_ERROR;
9301: END IF;
9302:
9295: x_return_status => lx_return_status);
9296:
9297: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9298: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9299: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9300: RAISE OKL_API.G_EXCEPTION_ERROR;
9301: END IF;
9302:
9303: END LOOP;
9296:
9297: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9298: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9299: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9300: RAISE OKL_API.G_EXCEPTION_ERROR;
9301: END IF;
9302:
9303: END LOOP;
9304:
9327: -- print( l_prog_name, 'INFLOWS ON OR BEFORE TIME ZERO '||l_adv_payment);
9328:
9329: IF l_adv_payment >= l_time_zero_cost THEN
9330:
9331: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9332: p_msg_name => 'OKL_IRR_CALC_INF_LOOP',
9333: p_token1 => 'ADV_AMOUNT',
9334: p_token1_value => l_adv_payment,
9335: p_token2 => 'CAPITAL_AMOUNT',
9334: p_token1_value => l_adv_payment,
9335: p_token2 => 'CAPITAL_AMOUNT',
9336: p_token2_value => l_time_zero_cost);
9337:
9338: RAISE OKL_API.G_EXCEPTION_ERROR;
9339:
9340: END IF;
9341:
9342: SELECT currency_code
9399: l_periods := l_days_in_future / l_cf_dpp;
9400:
9401: IF (l_periods < 1) AND (l_iir/l_cf_ppy <= -1) THEN
9402:
9403: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9404: p_msg_name => 'OKL_IRR_ZERO_DIV');
9405:
9406: RAISE OKL_API.G_EXCEPTION_ERROR;
9407:
9402:
9403: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9404: p_msg_name => 'OKL_IRR_ZERO_DIV');
9405:
9406: RAISE OKL_API.G_EXCEPTION_ERROR;
9407:
9408: END IF;
9409:
9410: l_npv := l_npv + (l_cf_amount / POWER((1 + l_iir/l_cf_ppy), l_periods));
9443: l_periods := l_days_in_future / l_cf_dpp;
9444:
9445: IF (l_periods < 1) AND (l_iir/l_cf_ppy <= -1) THEN
9446:
9447: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9448: p_msg_name => 'OKL_IRR_ZERO_DIV');
9449:
9450: RAISE OKL_API.G_EXCEPTION_ERROR;
9451:
9446:
9447: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9448: p_msg_name => 'OKL_IRR_ZERO_DIV');
9449:
9450: RAISE OKL_API.G_EXCEPTION_ERROR;
9451:
9452: END IF;
9453:
9454: l_npv := l_npv + (l_cf_amount / POWER((1 + l_iir/l_cf_ppy), l_periods));
9474: p_end_date => l_deposit_date,
9475: p_arrears => l_cf_arrear,
9476: x_return_status => lx_return_status);
9477:
9478: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9479: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9480: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9481: RAISE OKL_API.G_EXCEPTION_ERROR;
9482: END IF;
9475: p_arrears => l_cf_arrear,
9476: x_return_status => lx_return_status);
9477:
9478: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9479: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9480: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9481: RAISE OKL_API.G_EXCEPTION_ERROR;
9482: END IF;
9483:
9476: x_return_status => lx_return_status);
9477:
9478: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9479: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9480: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9481: RAISE OKL_API.G_EXCEPTION_ERROR;
9482: END IF;
9483:
9484: ELSE
9477:
9478: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9479: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9480: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9481: RAISE OKL_API.G_EXCEPTION_ERROR;
9482: END IF;
9483:
9484: ELSE
9485:
9489: p_end_date => l_end_date,
9490: p_arrears => l_cf_arrear,
9491: x_return_status => lx_return_status);
9492:
9493: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9494: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9495: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9496: RAISE OKL_API.G_EXCEPTION_ERROR;
9497: END IF;
9490: p_arrears => l_cf_arrear,
9491: x_return_status => lx_return_status);
9492:
9493: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9494: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9495: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9496: RAISE OKL_API.G_EXCEPTION_ERROR;
9497: END IF;
9498:
9491: x_return_status => lx_return_status);
9492:
9493: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9494: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9495: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9496: RAISE OKL_API.G_EXCEPTION_ERROR;
9497: END IF;
9498:
9499: END IF;
9492:
9493: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9494: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9495: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9496: RAISE OKL_API.G_EXCEPTION_ERROR;
9497: END IF;
9498:
9499: END IF;
9500:
9534: l_periods := l_days_in_future / l_cf_dpp;
9535:
9536: IF (l_periods < 1) AND (l_iir/l_cf_ppy <= -1) THEN
9537:
9538: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9539: p_msg_name => 'OKL_IRR_ZERO_DIV');
9540:
9541: RAISE OKL_API.G_EXCEPTION_ERROR;
9542:
9537:
9538: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9539: p_msg_name => 'OKL_IRR_ZERO_DIV');
9540:
9541: RAISE OKL_API.G_EXCEPTION_ERROR;
9542:
9543: END IF;
9544:
9545: l_npv := l_npv + (l_cf_amount / POWER((1 + l_iir/l_cf_ppy), l_periods));
9563: p_end_date => l_deposit_date,
9564: p_arrears => l_cf_arrear,
9565: x_return_status => lx_return_status);
9566:
9567: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9568: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9569: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9570: RAISE OKL_API.G_EXCEPTION_ERROR;
9571: END IF;
9564: p_arrears => l_cf_arrear,
9565: x_return_status => lx_return_status);
9566:
9567: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9568: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9569: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9570: RAISE OKL_API.G_EXCEPTION_ERROR;
9571: END IF;
9572:
9565: x_return_status => lx_return_status);
9566:
9567: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9568: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9569: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9570: RAISE OKL_API.G_EXCEPTION_ERROR;
9571: END IF;
9572:
9573: ELSE
9566:
9567: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9568: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9569: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9570: RAISE OKL_API.G_EXCEPTION_ERROR;
9571: END IF;
9572:
9573: ELSE
9574:
9578: p_end_date => l_end_date,
9579: p_arrears => l_cf_arrear,
9580: x_return_status => lx_return_status);
9581:
9582: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9583: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9584: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9585: RAISE OKL_API.G_EXCEPTION_ERROR;
9586: END IF;
9579: p_arrears => l_cf_arrear,
9580: x_return_status => lx_return_status);
9581:
9582: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9583: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9584: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9585: RAISE OKL_API.G_EXCEPTION_ERROR;
9586: END IF;
9587:
9580: x_return_status => lx_return_status);
9581:
9582: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9583: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9584: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9585: RAISE OKL_API.G_EXCEPTION_ERROR;
9586: END IF;
9587:
9588: END IF;
9581:
9582: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9583: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9584: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9585: RAISE OKL_API.G_EXCEPTION_ERROR;
9586: END IF;
9587:
9588: END IF;
9589:
9622: l_periods := l_days_in_future / l_cf_dpp;
9623:
9624: IF (l_periods < 1) AND (l_iir/l_cf_ppy <= -1) THEN
9625:
9626: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9627: p_msg_name => 'OKL_IRR_ZERO_DIV');
9628:
9629: RAISE OKL_API.G_EXCEPTION_ERROR;
9630:
9625:
9626: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9627: p_msg_name => 'OKL_IRR_ZERO_DIV');
9628:
9629: RAISE OKL_API.G_EXCEPTION_ERROR;
9630:
9631: END IF;
9632:
9633: l_npv := l_npv + (l_cf_amount / POWER((1 + l_iir/l_cf_ppy), l_periods));
9653: l_periods := l_days_in_future / l_cf_dpp;
9654:
9655: IF (l_periods < 1) AND (l_iir/l_cf_ppy <= -1) THEN
9656:
9657: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9658: p_msg_name => 'OKL_IRR_ZERO_DIV');
9659:
9660: RAISE OKL_API.G_EXCEPTION_ERROR;
9661:
9656:
9657: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9658: p_msg_name => 'OKL_IRR_ZERO_DIV');
9659:
9660: RAISE OKL_API.G_EXCEPTION_ERROR;
9661:
9662: END IF;
9663:
9664: l_npv := l_npv + (l_cf_amount / POWER((1 + l_iir/l_cf_ppy), l_periods));
9685: l_days_in_future := outflow_tbl(q).cf_days;
9686: l_periods := l_days_in_future / l_cf_dpp;
9687: IF (l_periods < 1) AND (l_iir/l_cf_ppy <= -1)
9688: THEN
9689: OKL_API.SET_MESSAGE (
9690: p_app_name => G_APP_NAME,
9691: p_msg_name => 'OKL_IRR_ZERO_DIV');
9692: RAISE OKL_API.G_EXCEPTION_ERROR;
9693: END IF;
9688: THEN
9689: OKL_API.SET_MESSAGE (
9690: p_app_name => G_APP_NAME,
9691: p_msg_name => 'OKL_IRR_ZERO_DIV');
9692: RAISE OKL_API.G_EXCEPTION_ERROR;
9693: END IF;
9694: l_npv := l_npv + (l_cf_amount / POWER((1 + l_iir/l_cf_ppy), l_periods));
9695: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9696: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || TO_CHAR(a, '99')||' '|| TO_CHAR(l_cf_date, 'DD-MON-YYYY')||' '||
9722: l_periods := l_days_in_future / l_cf_dpp;
9723:
9724: IF (l_periods < 1) AND (l_iir/l_cf_ppy <= -1) THEN
9725:
9726: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9727: p_msg_name => 'OKL_IRR_ZERO_DIV');
9728:
9729: RAISE OKL_API.G_EXCEPTION_ERROR;
9730:
9725:
9726: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9727: p_msg_name => 'OKL_IRR_ZERO_DIV');
9728:
9729: RAISE OKL_API.G_EXCEPTION_ERROR;
9730:
9731: END IF;
9732:
9733: l_npv := l_npv + (l_cf_amount / POWER((1 + l_iir/l_cf_ppy), l_periods));
9859:
9860: END IF;
9861: IF ABS(l_iir) > l_iir_limit THEN
9862:
9863: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9864: p_msg_name => 'OKL_IIR_CALC_IIR_LIMIT',
9865: p_token1 => 'IIR_LIMIT',
9866: p_token1_value => l_iir_limit*100);
9867:
9864: p_msg_name => 'OKL_IIR_CALC_IIR_LIMIT',
9865: p_token1 => 'IIR_LIMIT',
9866: p_token1_value => l_iir_limit*100);
9867:
9868: RAISE OKL_API.G_EXCEPTION_ERROR;
9869:
9870: END IF;
9871:
9872: l_prev_incr_sign := SIGN(l_increment);
9879:
9880: END IF;
9881: EXCEPTION
9882:
9883: WHEN OKL_API.G_EXCEPTION_ERROR THEN
9884:
9885: x_return_status := G_RET_STS_ERROR;
9886:
9887: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9883: WHEN OKL_API.G_EXCEPTION_ERROR THEN
9884:
9885: x_return_status := G_RET_STS_ERROR;
9886:
9887: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9888:
9889: x_return_status := G_RET_STS_UNEXP_ERROR;
9890:
9891: WHEN OTHERS THEN
9889: x_return_status := G_RET_STS_UNEXP_ERROR;
9890:
9891: WHEN OTHERS THEN
9892:
9893: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9894: p_msg_name => G_DB_ERROR,
9895: p_token1 => G_PROG_NAME_TOKEN,
9896: p_token1_value => l_prog_name,
9897: p_token2 => G_SQLCODE_TOKEN,
10143: END IF;
10144: For i in p_pay_tbl.FIRST..p_pay_tbl.LAST
10145: LOOP
10146: IF ( (p_pay_tbl(i).amount IS NULL) AND (p_pay_tbl(i).stub_amount IS NULL ) ) Then
10147: OKL_API.set_message(p_app_name => G_APP_NAME,
10148: p_msg_name => 'OKL_PE_MISSING_PMNT');
10149: RAISE OKL_API.G_EXCEPTION_ERROR;
10150: End If;
10151: END LOOP;
10145: LOOP
10146: IF ( (p_pay_tbl(i).amount IS NULL) AND (p_pay_tbl(i).stub_amount IS NULL ) ) Then
10147: OKL_API.set_message(p_app_name => G_APP_NAME,
10148: p_msg_name => 'OKL_PE_MISSING_PMNT');
10149: RAISE OKL_API.G_EXCEPTION_ERROR;
10150: End If;
10151: END LOOP;
10152:
10153: For i in p_pay_tbl.FIRST..p_pay_tbl.LAST
10176: x_return_status => x_return_status,
10177: x_primary_sty_id => l_rent_strm_id,
10178: x_primary_sty_name => l_rent_strm_name);
10179: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
10180: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10181: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
10182: RAISE OKL_API.G_EXCEPTION_ERROR;
10183: END IF;
10184: -- Bug 4626837 : End
10178: x_primary_sty_name => l_rent_strm_name);
10179: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
10180: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10181: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
10182: RAISE OKL_API.G_EXCEPTION_ERROR;
10183: END IF;
10184: -- Bug 4626837 : End
10185: OKL_STREAM_GENERATOR_PVT.generate_cash_flows(
10186: p_api_version => p_api_version,
10197: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10198: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'generate_cash_flows ' || x_return_status );
10199:
10200: END IF;
10201: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10202: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10203: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10204: RAISE OKL_API.G_EXCEPTION_ERROR;
10205: END IF;
10198: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'generate_cash_flows ' || x_return_status );
10199:
10200: END IF;
10201: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10202: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10203: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10204: RAISE OKL_API.G_EXCEPTION_ERROR;
10205: END IF;
10206:
10199:
10200: END IF;
10201: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10202: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10203: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10204: RAISE OKL_API.G_EXCEPTION_ERROR;
10205: END IF;
10206:
10207: OPEN c_subs;
10200: END IF;
10201: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10202: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10203: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10204: RAISE OKL_API.G_EXCEPTION_ERROR;
10205: END IF;
10206:
10207: OPEN c_subs;
10208: FETCH c_subs INTO l_subsidies_yn;
10219:
10220: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10221: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' get_asset_oec ' || to_char( l_capital_cost)|| x_return_status);
10222: END IF;
10223: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10224: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10225: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10226: RAISE OKL_API.G_EXCEPTION_ERROR;
10227: END IF;
10220: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10221: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' get_asset_oec ' || to_char( l_capital_cost)|| x_return_status);
10222: END IF;
10223: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10224: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10225: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10226: RAISE OKL_API.G_EXCEPTION_ERROR;
10227: END IF;
10228:
10221: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' get_asset_oec ' || to_char( l_capital_cost)|| x_return_status);
10222: END IF;
10223: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10224: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10225: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10226: RAISE OKL_API.G_EXCEPTION_ERROR;
10227: END IF;
10228:
10229: Okl_la_stream_pvt.get_so_residual_value(p_khr_id,
10222: END IF;
10223: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10224: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10225: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10226: RAISE OKL_API.G_EXCEPTION_ERROR;
10227: END IF;
10228:
10229: Okl_la_stream_pvt.get_so_residual_value(p_khr_id,
10230: p_kle_id,
10235:
10236: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10237: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' get_residual_value ' || to_char( l_residual_value )|| x_return_status);
10238: END IF;
10239: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10240: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10241: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10242: RAISE OKL_API.G_EXCEPTION_ERROR;
10243: END IF;
10236: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10237: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' get_residual_value ' || to_char( l_residual_value )|| x_return_status);
10238: END IF;
10239: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10240: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10241: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10242: RAISE OKL_API.G_EXCEPTION_ERROR;
10243: END IF;
10244:
10237: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' get_residual_value ' || to_char( l_residual_value )|| x_return_status);
10238: END IF;
10239: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10240: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10241: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10242: RAISE OKL_API.G_EXCEPTION_ERROR;
10243: END IF;
10244:
10245: --If ( p_rate_type = 'PRE_TAX_IRR' ) Then calcualte pre_tax_irr
10238: END IF;
10239: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10240: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10241: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10242: RAISE OKL_API.G_EXCEPTION_ERROR;
10243: END IF;
10244:
10245: --If ( p_rate_type = 'PRE_TAX_IRR' ) Then calcualte pre_tax_irr
10246:
10291: x_msg_count => x_msg_count,
10292: x_msg_data => x_msg_data);
10293:
10294:
10295: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10296: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10297: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10298: RAISE OKL_API.G_EXCEPTION_ERROR;
10299: END IF;
10292: x_msg_data => x_msg_data);
10293:
10294:
10295: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10296: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10297: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10298: RAISE OKL_API.G_EXCEPTION_ERROR;
10299: END IF;
10300:
10293:
10294:
10295: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10296: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10297: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10298: RAISE OKL_API.G_EXCEPTION_ERROR;
10299: END IF;
10300:
10301: End If;
10294:
10295: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10296: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10297: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10298: RAISE OKL_API.G_EXCEPTION_ERROR;
10299: END IF;
10300:
10301: End If;
10302:
10337: x_msg_count => x_msg_count,
10338: x_msg_data => x_msg_data);
10339:
10340:
10341: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10342: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10343: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10344: RAISE OKL_API.G_EXCEPTION_ERROR;
10345: END IF;
10338: x_msg_data => x_msg_data);
10339:
10340:
10341: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10342: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10343: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10344: RAISE OKL_API.G_EXCEPTION_ERROR;
10345: END IF;
10346:
10339:
10340:
10341: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10342: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10343: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10344: RAISE OKL_API.G_EXCEPTION_ERROR;
10345: END IF;
10346:
10347: End If;
10340:
10341: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10342: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10343: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10344: RAISE OKL_API.G_EXCEPTION_ERROR;
10345: END IF;
10346:
10347: End If;
10348:
10376:
10377: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10378: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || to_char( l_rate)|| x_return_status);
10379: END IF;
10380: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10381: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10382: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10383: RAISE OKL_API.G_EXCEPTION_ERROR;
10384: END IF;
10377: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10378: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || to_char( l_rate)|| x_return_status);
10379: END IF;
10380: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10381: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10382: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10383: RAISE OKL_API.G_EXCEPTION_ERROR;
10384: END IF;
10385:
10378: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || to_char( l_rate)|| x_return_status);
10379: END IF;
10380: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10381: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10382: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10383: RAISE OKL_API.G_EXCEPTION_ERROR;
10384: END IF;
10385:
10386: l_rates.PRE_TAX_IRR := l_rate * 100.00;
10379: END IF;
10380: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10381: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10382: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10383: RAISE OKL_API.G_EXCEPTION_ERROR;
10384: END IF;
10385:
10386: l_rates.PRE_TAX_IRR := l_rate * 100.00;
10387:
10403:
10404: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10405: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || x_return_status );
10406: END IF;
10407: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10408: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10409: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10410: RAISE OKL_API.G_EXCEPTION_ERROR;
10411: END IF;
10404: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10405: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || x_return_status );
10406: END IF;
10407: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10408: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10409: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10410: RAISE OKL_API.G_EXCEPTION_ERROR;
10411: END IF;
10412:
10405: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || x_return_status );
10406: END IF;
10407: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10408: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10409: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10410: RAISE OKL_API.G_EXCEPTION_ERROR;
10411: END IF;
10412:
10413: l_rates.SUB_PRE_TAX_IRR := l_rate * 100.00;
10406: END IF;
10407: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10408: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10409: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10410: RAISE OKL_API.G_EXCEPTION_ERROR;
10411: END IF;
10412:
10413: l_rates.SUB_PRE_TAX_IRR := l_rate * 100.00;
10414:
10438:
10439: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10440: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10441: END IF;
10442: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10443: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10444: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10445: RAISE OKL_API.G_EXCEPTION_ERROR;
10446: END IF;
10439: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10440: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10441: END IF;
10442: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10443: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10444: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10445: RAISE OKL_API.G_EXCEPTION_ERROR;
10446: END IF;
10447:
10440: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10441: END IF;
10442: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10443: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10444: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10445: RAISE OKL_API.G_EXCEPTION_ERROR;
10446: END IF;
10447:
10448: l_rates.SUB_IMPL_INTEREST_RATE := l_rate * 100.00;
10441: END IF;
10442: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10443: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10444: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10445: RAISE OKL_API.G_EXCEPTION_ERROR;
10446: END IF;
10447:
10448: l_rates.SUB_IMPL_INTEREST_RATE := l_rate * 100.00;
10449:
10469:
10470: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10471: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10472: END IF;
10473: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10474: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10475: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10476: RAISE OKL_API.G_EXCEPTION_ERROR;
10477: END IF;
10470: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10471: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10472: END IF;
10473: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10474: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10475: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10476: RAISE OKL_API.G_EXCEPTION_ERROR;
10477: END IF;
10478:
10471: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10472: END IF;
10473: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10474: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10475: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10476: RAISE OKL_API.G_EXCEPTION_ERROR;
10477: END IF;
10478:
10479:
10472: END IF;
10473: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10474: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10475: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10476: RAISE OKL_API.G_EXCEPTION_ERROR;
10477: END IF;
10478:
10479:
10480: l_rates.IMPLICIT_INTEREST_RATE := l_rate * 100.00;
10505:
10506: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10507: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10508: END IF;
10509: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10510: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10511: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10512: RAISE OKL_API.G_EXCEPTION_ERROR;
10513: END IF;
10506: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10507: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10508: END IF;
10509: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10510: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10511: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10512: RAISE OKL_API.G_EXCEPTION_ERROR;
10513: END IF;
10514:
10507: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10508: END IF;
10509: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10510: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10511: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10512: RAISE OKL_API.G_EXCEPTION_ERROR;
10513: END IF;
10514:
10515: l_rates.PRE_TAX_YIELD := l_rate * 100.00;
10508: END IF;
10509: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10510: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10511: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10512: RAISE OKL_API.G_EXCEPTION_ERROR;
10513: END IF;
10514:
10515: l_rates.PRE_TAX_YIELD := l_rate * 100.00;
10516:
10539:
10540: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10541: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10542: END IF;
10543: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10544: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10545: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10546: RAISE OKL_API.G_EXCEPTION_ERROR;
10547: END IF;
10540: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10541: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10542: END IF;
10543: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10544: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10545: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10546: RAISE OKL_API.G_EXCEPTION_ERROR;
10547: END IF;
10548:
10541: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10542: END IF;
10543: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10544: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10545: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10546: RAISE OKL_API.G_EXCEPTION_ERROR;
10547: END IF;
10548:
10549: l_rates.SUB_PRE_TAX_YIELD := l_rate * 100.00;
10542: END IF;
10543: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10544: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10545: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10546: RAISE OKL_API.G_EXCEPTION_ERROR;
10547: END IF;
10548:
10549: l_rates.SUB_PRE_TAX_YIELD := l_rate * 100.00;
10550:
10576: x_msg_count => x_msg_count,
10577: x_msg_data => x_msg_data,
10578: p_stmv_tbl => l_stmv_tbl);
10579:
10580: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10581: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10582: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10583: RAISE OKL_API.G_EXCEPTION_ERROR;
10584: END IF;
10577: x_msg_data => x_msg_data,
10578: p_stmv_tbl => l_stmv_tbl);
10579:
10580: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10581: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10582: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10583: RAISE OKL_API.G_EXCEPTION_ERROR;
10584: END IF;
10585:
10578: p_stmv_tbl => l_stmv_tbl);
10579:
10580: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10581: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10582: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10583: RAISE OKL_API.G_EXCEPTION_ERROR;
10584: END IF;
10585:
10586: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10579:
10580: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10581: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10582: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10583: RAISE OKL_API.G_EXCEPTION_ERROR;
10584: END IF;
10585:
10586: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10587: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' DONE '|| x_return_status);
10611: x_return_status => x_return_status,
10612: x_msg_count => x_msg_count,
10613: x_msg_data => x_msg_data);
10614:
10615: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10616: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10617: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10618: RAISE OKL_API.G_EXCEPTION_ERROR;
10619: END IF;
10612: x_msg_count => x_msg_count,
10613: x_msg_data => x_msg_data);
10614:
10615: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10616: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10617: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10618: RAISE OKL_API.G_EXCEPTION_ERROR;
10619: END IF;
10620:
10613: x_msg_data => x_msg_data);
10614:
10615: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10616: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10617: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10618: RAISE OKL_API.G_EXCEPTION_ERROR;
10619: END IF;
10620:
10621: Exit;
10614:
10615: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10616: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10617: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10618: RAISE OKL_API.G_EXCEPTION_ERROR;
10619: END IF;
10620:
10621: Exit;
10622:
10628:
10629: END IF;
10630: EXCEPTION
10631:
10632: WHEN OKL_API.G_EXCEPTION_ERROR THEN
10633:
10634: i := 0;
10635: FOR l_strms_rec in l_strms_csr
10636: LOOP
10649: x_msg_count => x_msg_count,
10650: x_msg_data => x_msg_data,
10651: p_stmv_tbl => l_stmv_tbl);
10652:
10653: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10654: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10655: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10656: RAISE OKL_API.G_EXCEPTION_ERROR;
10657: END IF;
10650: x_msg_data => x_msg_data,
10651: p_stmv_tbl => l_stmv_tbl);
10652:
10653: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10654: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10655: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10656: RAISE OKL_API.G_EXCEPTION_ERROR;
10657: END IF;
10658:
10651: p_stmv_tbl => l_stmv_tbl);
10652:
10653: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10654: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10655: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10656: RAISE OKL_API.G_EXCEPTION_ERROR;
10657: END IF;
10658:
10659: End If;
10652:
10653: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10654: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10655: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10656: RAISE OKL_API.G_EXCEPTION_ERROR;
10657: END IF;
10658:
10659: End If;
10660:
10659: End If;
10660:
10661: x_return_status := G_RET_STS_ERROR;
10662:
10663: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10664:
10665: i := 0;
10666: FOR l_strms_rec in l_strms_csr
10667: LOOP
10680: x_msg_count => x_msg_count,
10681: x_msg_data => x_msg_data,
10682: p_stmv_tbl => l_stmv_tbl);
10683:
10684: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10685: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10686: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10687: RAISE OKL_API.G_EXCEPTION_ERROR;
10688: END IF;
10681: x_msg_data => x_msg_data,
10682: p_stmv_tbl => l_stmv_tbl);
10683:
10684: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10685: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10686: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10687: RAISE OKL_API.G_EXCEPTION_ERROR;
10688: END IF;
10689:
10682: p_stmv_tbl => l_stmv_tbl);
10683:
10684: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10685: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10686: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10687: RAISE OKL_API.G_EXCEPTION_ERROR;
10688: END IF;
10689:
10690: End If;
10683:
10684: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10685: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10686: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10687: RAISE OKL_API.G_EXCEPTION_ERROR;
10688: END IF;
10689:
10690: End If;
10691:
10711: x_msg_count => x_msg_count,
10712: x_msg_data => x_msg_data,
10713: p_stmv_tbl => l_stmv_tbl);
10714:
10715: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10716: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10717: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10718: RAISE OKL_API.G_EXCEPTION_ERROR;
10719: END IF;
10712: x_msg_data => x_msg_data,
10713: p_stmv_tbl => l_stmv_tbl);
10714:
10715: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10716: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10717: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10718: RAISE OKL_API.G_EXCEPTION_ERROR;
10719: END IF;
10720:
10713: p_stmv_tbl => l_stmv_tbl);
10714:
10715: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10716: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10717: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10718: RAISE OKL_API.G_EXCEPTION_ERROR;
10719: END IF;
10720:
10721: End If;
10714:
10715: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10716: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10717: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10718: RAISE OKL_API.G_EXCEPTION_ERROR;
10719: END IF;
10720:
10721: End If;
10722:
10719: END IF;
10720:
10721: End If;
10722:
10723: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
10724: p_msg_name => G_DB_ERROR,
10725: p_token1 => G_PROG_NAME_TOKEN,
10726: p_token1_value => l_prog_name,
10727: p_token2 => G_SQLCODE_TOKEN,
10749: -- End of comments
10750:
10751: PROCEDURE get_payment_after_ppd(
10752: p_api_version IN NUMBER,
10753: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
10754: x_return_status OUT NOCOPY VARCHAR2,
10755: x_msg_count OUT NOCOPY NUMBER,
10756: x_msg_data OUT NOCOPY VARCHAR2,
10757: p_khr_id IN NUMBER,
10819: IF (G_DEBUG_ENABLED = 'Y') THEN
10820: G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
10821: END IF;
10822:
10823: x_return_status := OKL_API.G_RET_STS_SUCCESS;
10824: -- Call start_activity to create savepoint, check compatibility
10825: -- and initialize message list
10826: x_return_status := okl_api.start_activity (
10827: l_api_name
10822:
10823: x_return_status := OKL_API.G_RET_STS_SUCCESS;
10824: -- Call start_activity to create savepoint, check compatibility
10825: -- and initialize message list
10826: x_return_status := okl_api.start_activity (
10827: l_api_name
10828: ,p_init_msg_list
10829: ,'_PVT'
10830: ,x_return_status);
10828: ,p_init_msg_list
10829: ,'_PVT'
10830: ,x_return_status);
10831: -- Check if activity started successfully
10832: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10833: RAISE okl_api.g_exception_unexpected_error;
10834: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10835: RAISE okl_api.g_exception_error;
10836: END IF;
10829: ,'_PVT'
10830: ,x_return_status);
10831: -- Check if activity started successfully
10832: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10833: RAISE okl_api.g_exception_unexpected_error;
10834: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10835: RAISE okl_api.g_exception_error;
10836: END IF;
10837: -- Fetch the day convention ..
10830: ,x_return_status);
10831: -- Check if activity started successfully
10832: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10833: RAISE okl_api.g_exception_unexpected_error;
10834: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10835: RAISE okl_api.g_exception_error;
10836: END IF;
10837: -- Fetch the day convention ..
10838: OKL_PRICING_UTILS_PVT.get_day_convention(
10831: -- Check if activity started successfully
10832: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10833: RAISE okl_api.g_exception_unexpected_error;
10834: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10835: RAISE okl_api.g_exception_error;
10836: END IF;
10837: -- Fetch the day convention ..
10838: OKL_PRICING_UTILS_PVT.get_day_convention(
10839: p_id => p_khr_id,
10844: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10845: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, 'get_payment_after_ppd Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
10846: END IF;
10847: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
10848: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10849: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
10850: RAISE OKL_API.G_EXCEPTION_ERROR;
10851: END IF;
10852:
10846: END IF;
10847: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
10848: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10849: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
10850: RAISE OKL_API.G_EXCEPTION_ERROR;
10851: END IF;
10852:
10853: OPEN c_hdr_csr(p_khr_id => p_khr_id);
10854: FETCH c_hdr_csr INTO lv_currency_code;
10852:
10853: OPEN c_hdr_csr(p_khr_id => p_khr_id);
10854: FETCH c_hdr_csr INTO lv_currency_code;
10855: IF c_hdr_csr%NOTFOUND THEN
10856: okl_api.set_message(p_app_name => G_APP_NAME,
10857: p_msg_name => G_LLA_NO_MATCHING_RECORD,
10858: p_token1 => G_COL_NAME_TOKEN,
10859: p_token1_value => 'Currency Code');
10860: RAISE okl_api.g_exception_error;
10856: okl_api.set_message(p_app_name => G_APP_NAME,
10857: p_msg_name => G_LLA_NO_MATCHING_RECORD,
10858: p_token1 => G_COL_NAME_TOKEN,
10859: p_token1_value => 'Currency Code');
10860: RAISE okl_api.g_exception_error;
10861: END IF;
10862: CLOSE c_hdr_csr;
10863:
10864: -- To get the ratio of the existing payment
10866: -- ppd.
10867:
10868: FOR i IN l_pay_level.FIRST..l_pay_level.LAST LOOP
10869: IF l_pay_level(i).amount <> 0 AND
10870: l_pay_level(i).amount <> okl_api.g_miss_num THEN
10871: l_first_payment := l_pay_level(i).amount;
10872: END IF;
10873: EXIT;
10874: END LOOP;
10875:
10876: l_start_date := l_pay_level(l_pay_level.FIRST).start_date;
10877: FOR i IN l_pay_level.FIRST..l_pay_level.LAST LOOP
10878: IF l_pay_level(i).amount <> 0 AND
10879: l_pay_level(i).amount <> okl_api.g_miss_num THEN
10880: l_pay_level(i).ratio := l_pay_level(i).amount/l_first_payment;
10881: l_no_of_periods := l_no_of_periods + l_pay_level(i).periods;
10882:
10883: END IF;
10916: x_return_status => x_return_status,
10917: x_msg_count => x_msg_count,
10918: x_msg_data => x_msg_data,
10919: p_recurrence_date => l_recurrence_date);
10920: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10921: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10922: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10923: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10924: END IF;
10917: x_msg_count => x_msg_count,
10918: x_msg_data => x_msg_data,
10919: p_recurrence_date => l_recurrence_date);
10920: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10921: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10922: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10923: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10924: END IF;
10925:
10918: x_msg_data => x_msg_data,
10919: p_recurrence_date => l_recurrence_date);
10920: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10921: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10922: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10923: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10924: END IF;
10925:
10926:
10919: p_recurrence_date => l_recurrence_date);
10920: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10921: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10922: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10923: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10924: END IF;
10925:
10926:
10927:
10934: p_end_date => l_selv_tbl(j).stream_element_date,
10935: p_arrears => l_pay_level(i).arrears_yn,
10936: x_return_status => x_return_status);
10937:
10938: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10939: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10940: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10941: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10942: END IF;
10935: p_arrears => l_pay_level(i).arrears_yn,
10936: x_return_status => x_return_status);
10937:
10938: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10939: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10940: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10941: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10942: END IF;
10943:
10936: x_return_status => x_return_status);
10937:
10938: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10939: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10940: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10941: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10942: END IF;
10943:
10944:
10937:
10938: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10939: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10940: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10941: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10942: END IF;
10943:
10944:
10945: l_cash_flow_tbl(k).cf_days := ln_int_ppd_days;
10959:
10960: END LOOP;
10961:
10962: IF (l_pay_level(l_pay_level.FIRST).start_date IS NOT NULL OR
10963: l_pay_level(l_pay_level.FIRST).start_date <> okl_api.g_miss_date) AND
10964: (p_ppd_date IS NOT NULL OR
10965: p_ppd_date <> okl_api.g_miss_date) AND
10966: l_pay_level(l_pay_level.FIRST).start_date > p_ppd_date THEN
10967: l_intrm_days := OKL_PRICING_UTILS_PVT.get_day_count(
10961:
10962: IF (l_pay_level(l_pay_level.FIRST).start_date IS NOT NULL OR
10963: l_pay_level(l_pay_level.FIRST).start_date <> okl_api.g_miss_date) AND
10964: (p_ppd_date IS NOT NULL OR
10965: p_ppd_date <> okl_api.g_miss_date) AND
10966: l_pay_level(l_pay_level.FIRST).start_date > p_ppd_date THEN
10967: l_intrm_days := OKL_PRICING_UTILS_PVT.get_day_count(
10968: p_start_date => p_ppd_date,
10969: p_days_in_month => l_day_convention_month,
10970: p_days_in_year => l_day_convention_year,
10971: p_end_date => l_pay_level(l_pay_level.FIRST).start_date,
10972: p_arrears => 'N',
10973: x_return_status => x_return_status);
10974: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10975: RAISE okl_api.g_exception_unexpected_error;
10976: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10977: RAISE okl_api.g_exception_error;
10978: END IF;
10971: p_end_date => l_pay_level(l_pay_level.FIRST).start_date,
10972: p_arrears => 'N',
10973: x_return_status => x_return_status);
10974: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10975: RAISE okl_api.g_exception_unexpected_error;
10976: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10977: RAISE okl_api.g_exception_error;
10978: END IF;
10979: ln_intrm_int := (p_ppd_amt * l_intrm_days * p_rate)/(100 * 360);
10972: p_arrears => 'N',
10973: x_return_status => x_return_status);
10974: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10975: RAISE okl_api.g_exception_unexpected_error;
10976: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10977: RAISE okl_api.g_exception_error;
10978: END IF;
10979: ln_intrm_int := (p_ppd_amt * l_intrm_days * p_rate)/(100 * 360);
10980: END IF;
10973: x_return_status => x_return_status);
10974: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10975: RAISE okl_api.g_exception_unexpected_error;
10976: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10977: RAISE okl_api.g_exception_error;
10978: END IF;
10979: ln_intrm_int := (p_ppd_amt * l_intrm_days * p_rate)/(100 * 360);
10980: END IF;
10981:
11061: l_prev_diff_sign := SIGN(l_diff);
11062: l_prev_diff := l_diff;
11063: END LOOP;
11064:
11065: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
11066: RAISE okl_api.g_exception_unexpected_error;
11067: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
11068: RAISE okl_api.g_exception_error;
11069: END IF;
11062: l_prev_diff := l_diff;
11063: END LOOP;
11064:
11065: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
11066: RAISE okl_api.g_exception_unexpected_error;
11067: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
11068: RAISE okl_api.g_exception_error;
11069: END IF;
11070: x_pay_level := lx_pay_level;
11063: END LOOP;
11064:
11065: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
11066: RAISE okl_api.g_exception_unexpected_error;
11067: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
11068: RAISE okl_api.g_exception_error;
11069: END IF;
11070: x_pay_level := lx_pay_level;
11071:
11064:
11065: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
11066: RAISE okl_api.g_exception_unexpected_error;
11067: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
11068: RAISE okl_api.g_exception_error;
11069: END IF;
11070: x_pay_level := lx_pay_level;
11071:
11072:
11071:
11072:
11073:
11074:
11075: okl_api.end_activity(x_msg_count => x_msg_count,
11076: x_msg_data => x_msg_data);
11077: EXCEPTION
11078: WHEN okl_api.g_exception_error THEN
11079: IF c_hdr_csr%ISOPEN THEN
11074:
11075: okl_api.end_activity(x_msg_count => x_msg_count,
11076: x_msg_data => x_msg_data);
11077: EXCEPTION
11078: WHEN okl_api.g_exception_error THEN
11079: IF c_hdr_csr%ISOPEN THEN
11080: CLOSE c_hdr_csr;
11081: END IF;
11082: x_return_status := okl_api.handle_exceptions(
11078: WHEN okl_api.g_exception_error THEN
11079: IF c_hdr_csr%ISOPEN THEN
11080: CLOSE c_hdr_csr;
11081: END IF;
11082: x_return_status := okl_api.handle_exceptions(
11083: l_api_name,
11084: g_pkg_name,
11085: 'OKL_API.G_RET_STS_ERROR',
11086: x_msg_count,
11081: END IF;
11082: x_return_status := okl_api.handle_exceptions(
11083: l_api_name,
11084: g_pkg_name,
11085: 'OKL_API.G_RET_STS_ERROR',
11086: x_msg_count,
11087: x_msg_data,
11088: '_PVT');
11089: WHEN okl_api.g_exception_unexpected_error THEN
11085: 'OKL_API.G_RET_STS_ERROR',
11086: x_msg_count,
11087: x_msg_data,
11088: '_PVT');
11089: WHEN okl_api.g_exception_unexpected_error THEN
11090: IF c_hdr_csr%ISOPEN THEN
11091: CLOSE c_hdr_csr;
11092: END IF;
11093:
11090: IF c_hdr_csr%ISOPEN THEN
11091: CLOSE c_hdr_csr;
11092: END IF;
11093:
11094: x_return_status :=okl_api.handle_exceptions(
11095: l_api_name,
11096: g_pkg_name,
11097: 'OKL_API.G_RET_STS_UNEXP_ERROR',
11098: x_msg_count,
11093:
11094: x_return_status :=okl_api.handle_exceptions(
11095: l_api_name,
11096: g_pkg_name,
11097: 'OKL_API.G_RET_STS_UNEXP_ERROR',
11098: x_msg_count,
11099: x_msg_data,
11100: '_PVT');
11101: WHEN OTHERS THEN
11102:
11103: IF c_hdr_csr%ISOPEN THEN
11104: CLOSE c_hdr_csr;
11105: END IF;
11106: x_return_status :=okl_api.handle_exceptions(
11107: l_api_name,
11108: g_pkg_name,
11109: 'OTHERS',
11110: x_msg_count,
11263: p_process_flag => OKL_VARIABLE_INTEREST_PVT.G_INTEREST_CALCULATION_BASIS,
11264: x_interest_rate_tbl =>interest_rate_tbl);
11265:
11266: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
11267: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11268: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
11269: RAISE OKL_API.G_EXCEPTION_ERROR;
11270: END IF;
11271: -- print( l_prog_name, 'interest_rate_tbl.COUNT:' || interest_rate_tbl.COUNT );
11265:
11266: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
11267: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11268: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
11269: RAISE OKL_API.G_EXCEPTION_ERROR;
11270: END IF;
11271: -- print( l_prog_name, 'interest_rate_tbl.COUNT:' || interest_rate_tbl.COUNT );
11272: -- print( l_prog_name, 'interest_rate_tbl(1).rate:' || interest_rate_tbl(1).rate );
11273: if interest_rate_tbl.COUNT = 0 THEN
11270: END IF;
11271: -- print( l_prog_name, 'interest_rate_tbl.COUNT:' || interest_rate_tbl.COUNT );
11272: -- print( l_prog_name, 'interest_rate_tbl(1).rate:' || interest_rate_tbl(1).rate );
11273: if interest_rate_tbl.COUNT = 0 THEN
11274: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11275: END IF;
11276:
11277: IF interest_rate_tbl(1).rate = 0 THEN
11278: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11274: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11275: END IF;
11276:
11277: IF interest_rate_tbl(1).rate = 0 THEN
11278: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11279: END IF;
11280:
11281: l_iir:=interest_rate_tbl(1).rate;
11282: x_interest_rate:=l_iir;
11305: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11306: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
11307: END IF;
11308: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
11309: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11310: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
11311: RAISE OKL_API.G_EXCEPTION_ERROR;
11312: END IF;
11313:
11307: END IF;
11308: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
11309: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11310: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
11311: RAISE OKL_API.G_EXCEPTION_ERROR;
11312: END IF;
11313:
11314: OPEN c_rent_slls;
11315: FETCH c_rent_slls INTO l_rent_sll;
11337: p_end_date => l_rent_flow.se_date,
11338: p_arrears => l_rent_flow.se_arrears,
11339: x_return_status => lx_return_status);
11340:
11341: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
11342: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11343: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
11344: RAISE OKL_API.G_EXCEPTION_ERROR;
11345: END IF;
11338: p_arrears => l_rent_flow.se_arrears,
11339: x_return_status => lx_return_status);
11340:
11341: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
11342: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11343: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
11344: RAISE OKL_API.G_EXCEPTION_ERROR;
11345: END IF;
11346:
11339: x_return_status => lx_return_status);
11340:
11341: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
11342: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11343: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
11344: RAISE OKL_API.G_EXCEPTION_ERROR;
11345: END IF;
11346:
11347: if ( l_rent_flow.stream_type_purpose = 'UNSCHEDULED_PRINCIPAL_PAYMENT') then
11340:
11341: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
11342: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11343: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
11344: RAISE OKL_API.G_EXCEPTION_ERROR;
11345: END IF;
11346:
11347: if ( l_rent_flow.stream_type_purpose = 'UNSCHEDULED_PRINCIPAL_PAYMENT') then
11348: asset_rents(k).se_purpose := 'P';
11438: print( l_prog_name, 'end' );
11439:
11440: EXCEPTION
11441:
11442: WHEN OKL_API.G_EXCEPTION_ERROR THEN
11443:
11444: x_return_status := G_RET_STS_ERROR;
11445:
11446: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
11442: WHEN OKL_API.G_EXCEPTION_ERROR THEN
11443:
11444: x_return_status := G_RET_STS_ERROR;
11445:
11446: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
11447:
11448: x_return_status := G_RET_STS_UNEXP_ERROR;
11449:
11450: WHEN OTHERS THEN
11448: x_return_status := G_RET_STS_UNEXP_ERROR;
11449:
11450: WHEN OTHERS THEN
11451:
11452: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
11453: p_msg_name => G_DB_ERROR,
11454: p_token1 => G_PROG_NAME_TOKEN,
11455: p_token1_value => l_prog_name,
11456: p_token2 => G_SQLCODE_TOKEN,