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,
1600: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1601: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
1602: END IF;
1603: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
1604: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1605: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
1606: RAISE OKL_API.G_EXCEPTION_ERROR;
1607: END IF;
1608:
1602: END IF;
1603: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
1604: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1605: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
1606: RAISE OKL_API.G_EXCEPTION_ERROR;
1607: END IF;
1608:
1609: If nvl(fee_type_rec.What, 'N') = 'Y' Then
1610:
1621: x_primary_sty_id => l_sty_id,
1622: x_primary_sty_name => l_stream_name);
1623:
1624: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1625: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1626: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1627: RAISE OKL_API.G_EXCEPTION_ERROR;
1628: END IF;
1629: --l_stream_name := 'RENT';
1623:
1624: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1625: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1626: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1627: RAISE OKL_API.G_EXCEPTION_ERROR;
1628: END IF;
1629: --l_stream_name := 'RENT';
1630: End If;
1631:
1642: p_khr_id => p_khr_id,
1643: x_arrears_pay_dates_option => l_arrears_pay_dates_option,
1644: x_return_status => lx_return_status);
1645:
1646: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1647: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1648: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
1649: RAISE OKL_API.G_EXCEPTION_ERROR;
1650: END IF;
1643: x_arrears_pay_dates_option => l_arrears_pay_dates_option,
1644: x_return_status => lx_return_status);
1645:
1646: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1647: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1648: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
1649: RAISE OKL_API.G_EXCEPTION_ERROR;
1650: END IF;
1651: END IF;
1644: x_return_status => lx_return_status);
1645:
1646: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1647: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1648: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
1649: RAISE OKL_API.G_EXCEPTION_ERROR;
1650: END IF;
1651: END IF;
1652: -- Bug 6274342 DJANASWA end
1645:
1646: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1647: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1648: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
1649: RAISE OKL_API.G_EXCEPTION_ERROR;
1650: END IF;
1651: END IF;
1652: -- Bug 6274342 DJANASWA end
1653:
1673: p_end_date => l_rent_flow.se_date,
1674: p_arrears => l_rent_flow.se_arrears,
1675: x_return_status => lx_return_status);
1676:
1677: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1678: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1679: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1680: RAISE OKL_API.G_EXCEPTION_ERROR;
1681: END IF;
1674: p_arrears => l_rent_flow.se_arrears,
1675: x_return_status => lx_return_status);
1676:
1677: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1678: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1679: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1680: RAISE OKL_API.G_EXCEPTION_ERROR;
1681: END IF;
1682:
1675: x_return_status => lx_return_status);
1676:
1677: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1678: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1679: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1680: RAISE OKL_API.G_EXCEPTION_ERROR;
1681: END IF;
1682:
1683: asset_rents(k).se_amount := l_rent_flow.se_amount;
1676:
1677: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1678: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1679: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1680: RAISE OKL_API.G_EXCEPTION_ERROR;
1681: END IF;
1682:
1683: asset_rents(k).se_amount := l_rent_flow.se_amount;
1684: asset_rents(k).se_date := l_rent_flow.se_date;
1712: p_end_date => l_rent_sll.start_date,
1713: p_arrears => 'N',
1714: x_return_status => lx_return_status);
1715:
1716: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1717: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1718: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1719: RAISE OKL_API.G_EXCEPTION_ERROR;
1720: END IF;
1713: p_arrears => 'N',
1714: x_return_status => lx_return_status);
1715:
1716: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1717: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1718: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1719: RAISE OKL_API.G_EXCEPTION_ERROR;
1720: END IF;
1721:
1714: x_return_status => lx_return_status);
1715:
1716: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1717: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1718: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1719: RAISE OKL_API.G_EXCEPTION_ERROR;
1720: END IF;
1721:
1722: -- print( l_prog_name, ' asset rent count ' || to_char(asset_rents.COUNT));
1715:
1716: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1717: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1718: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1719: RAISE OKL_API.G_EXCEPTION_ERROR;
1720: END IF;
1721:
1722: -- print( l_prog_name, ' asset rent count ' || to_char(asset_rents.COUNT));
1723: -- Bug 10207847: Start
1769: p_days_in_year => l_day_convention_year,
1770: p_end_date => l_k_end_date,
1771: p_arrears => 'Y',
1772: x_return_status => lx_return_status);
1773: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1774: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1775: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1776: RAISE OKL_API.G_EXCEPTION_ERROR;
1777: END IF;
1770: p_end_date => l_k_end_date,
1771: p_arrears => 'Y',
1772: x_return_status => lx_return_status);
1773: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1774: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1775: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1776: RAISE OKL_API.G_EXCEPTION_ERROR;
1777: END IF;
1778: l_interest := l_open_book*l_days*l_iir/360;
1771: p_arrears => 'Y',
1772: x_return_status => lx_return_status);
1773: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1774: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1775: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1776: RAISE OKL_API.G_EXCEPTION_ERROR;
1777: END IF;
1778: l_interest := l_open_book*l_days*l_iir/360;
1779: l_principal := l_payment - l_interest;
1772: x_return_status => lx_return_status);
1773: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
1774: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1775: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
1776: RAISE OKL_API.G_EXCEPTION_ERROR;
1777: END IF;
1778: l_interest := l_open_book*l_days*l_iir/360;
1779: l_principal := l_payment - l_interest;
1780: l_close_book := l_open_book - l_principal;
1957: -- print( l_prog_name, ' irr ' || ABS(l_iir) );
1958: -- print( l_prog_name, ' irr limit ' || l_iir_limit );
1959:
1960: If k = 1 then
1961: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1962: p_msg_name => 'OKL_CANNOT_CALC_IIR');
1963: Else
1964: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1965: p_msg_name => 'OKL_IIR_CALC_IIR_LIMIT',
1960: If k = 1 then
1961: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1962: p_msg_name => 'OKL_CANNOT_CALC_IIR');
1963: Else
1964: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1965: p_msg_name => 'OKL_IIR_CALC_IIR_LIMIT',
1966: p_token1 => 'IIR_LIMIT',
1967: p_token1_value => l_iir_limit*100);
1968: End If;
1965: p_msg_name => 'OKL_IIR_CALC_IIR_LIMIT',
1966: p_token1 => 'IIR_LIMIT',
1967: p_token1_value => l_iir_limit*100);
1968: End If;
1969: RAISE OKL_API.G_EXCEPTION_ERROR;
1970: END IF;
1971:
1972: l_prev_incr_sign := SIGN(l_increment);
1973: l_prev_diff_sign := SIGN(l_diff);
2037: p_days_in_year => l_day_convention_year,
2038: x_day_count_method => l_day_count_method,
2039: x_return_status => lx_return_status );
2040: print( l_prog_name, 'After get_days_in_year_and_month ' || lx_return_status);
2041: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2042: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2043: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
2044: RAISE OKL_API.G_EXCEPTION_ERROR;
2045: END IF;
2038: x_day_count_method => l_day_count_method,
2039: x_return_status => lx_return_status );
2040: print( l_prog_name, 'After get_days_in_year_and_month ' || lx_return_status);
2041: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2042: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2043: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
2044: RAISE OKL_API.G_EXCEPTION_ERROR;
2045: END IF;
2046:
2039: x_return_status => lx_return_status );
2040: print( l_prog_name, 'After get_days_in_year_and_month ' || lx_return_status);
2041: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2042: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2043: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
2044: RAISE OKL_API.G_EXCEPTION_ERROR;
2045: END IF;
2046:
2047: -- Prospective Rebooking Enhancement
2040: print( l_prog_name, 'After get_days_in_year_and_month ' || lx_return_status);
2041: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2042: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2043: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
2044: RAISE OKL_API.G_EXCEPTION_ERROR;
2045: END IF;
2046:
2047: -- Prospective Rebooking Enhancement
2048: print( l_prog_name, 'p_prosp_rebook_flag | p_during_rebook_yn' );
2181: ,p_rebook_date => l_rebook_date
2182: ,p_orig_income_streams => l_orig_income_streams
2183: );
2184: print( l_prog_name, 'After okl_pricing_utils_pvt.compute_bk_yield: ' || lx_return_status);
2185: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2186: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2187: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
2188: RAISE OKL_API.G_EXCEPTION_ERROR;
2189: END IF;
2182: ,p_orig_income_streams => l_orig_income_streams
2183: );
2184: print( l_prog_name, 'After okl_pricing_utils_pvt.compute_bk_yield: ' || lx_return_status);
2185: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2186: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2187: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
2188: RAISE OKL_API.G_EXCEPTION_ERROR;
2189: END IF;
2190: print( l_prog_name, 'Computed Booking Yield = ' || x_booking_yield );
2183: );
2184: print( l_prog_name, 'After okl_pricing_utils_pvt.compute_bk_yield: ' || lx_return_status);
2185: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2186: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2187: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
2188: RAISE OKL_API.G_EXCEPTION_ERROR;
2189: END IF;
2190: print( l_prog_name, 'Computed Booking Yield = ' || x_booking_yield );
2191: print( l_prog_name, 'Copying Termination Value Streams ' );
2184: print( l_prog_name, 'After okl_pricing_utils_pvt.compute_bk_yield: ' || lx_return_status);
2185: IF(lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2186: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2187: ELSIF (lx_return_status = OKL_API.G_RET_STS_ERROR) THEN
2188: RAISE OKL_API.G_EXCEPTION_ERROR;
2189: END IF;
2190: print( l_prog_name, 'Computed Booking Yield = ' || x_booking_yield );
2191: print( l_prog_name, 'Copying Termination Value Streams ' );
2192: -- Termination Value Streams: Copy from l_termination_tbl to x_termination_tbl
2223: print( l_prog_name, 'get_loan_amortization: end' );
2224:
2225: EXCEPTION
2226:
2227: WHEN OKL_API.G_EXCEPTION_ERROR THEN
2228:
2229: x_return_status := G_RET_STS_ERROR;
2230:
2231: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2227: WHEN OKL_API.G_EXCEPTION_ERROR THEN
2228:
2229: x_return_status := G_RET_STS_ERROR;
2230:
2231: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2232:
2233: x_return_status := G_RET_STS_UNEXP_ERROR;
2234:
2235: WHEN OTHERS THEN
2233: x_return_status := G_RET_STS_UNEXP_ERROR;
2234:
2235: WHEN OTHERS THEN
2236:
2237: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
2238: p_msg_name => G_DB_ERROR,
2239: p_token1 => G_PROG_NAME_TOKEN,
2240: p_token1_value => l_prog_name,
2241: p_token2 => G_SQLCODE_TOKEN,
2264: -- History : 15-SEP-2003 BAKUHCIB CREATED for Bug# *****
2265: -- End of Comments
2266: ---------------------------------------------------------------------------
2267: PROCEDURE comp_so_bk_yd(p_api_version IN NUMBER,
2268: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2269: x_return_status OUT NOCOPY VARCHAR2,
2270: x_msg_count OUT NOCOPY NUMBER,
2271: x_msg_data OUT NOCOPY VARCHAR2,
2272: p_khr_id IN NUMBER,
2400: END IF;
2401: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2402: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' begin');
2403: END IF;
2404: x_return_status := OKL_API.G_RET_STS_SUCCESS;
2405: -- Call start_activity to create savepoint, check compatibility
2406: -- and initialize message list
2407: x_return_status := OKL_API.START_ACTIVITY (
2408: l_api_name
2403: END IF;
2404: x_return_status := OKL_API.G_RET_STS_SUCCESS;
2405: -- Call start_activity to create savepoint, check compatibility
2406: -- and initialize message list
2407: x_return_status := OKL_API.START_ACTIVITY (
2408: l_api_name
2409: ,p_init_msg_list
2410: ,'_PVT'
2411: ,x_return_status);
2409: ,p_init_msg_list
2410: ,'_PVT'
2411: ,x_return_status);
2412: -- Check if activity started successfully
2413: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2414: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2415: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2416: RAISE OKL_API.G_EXCEPTION_ERROR;
2417: END IF;
2410: ,'_PVT'
2411: ,x_return_status);
2412: -- Check if activity started successfully
2413: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2414: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2415: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2416: RAISE OKL_API.G_EXCEPTION_ERROR;
2417: END IF;
2418: IF p_target <> 'PMNT' THEN
2411: ,x_return_status);
2412: -- Check if activity started successfully
2413: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2414: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2415: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2416: RAISE OKL_API.G_EXCEPTION_ERROR;
2417: END IF;
2418: IF p_target <> 'PMNT' THEN
2419: OKL_API.set_message(p_app_name => G_APP_NAME,
2412: -- Check if activity started successfully
2413: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2414: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2415: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2416: RAISE OKL_API.G_EXCEPTION_ERROR;
2417: END IF;
2418: IF p_target <> 'PMNT' THEN
2419: OKL_API.set_message(p_app_name => G_APP_NAME,
2420: p_msg_name => G_INVALID_VALUE,
2415: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2416: RAISE OKL_API.G_EXCEPTION_ERROR;
2417: END IF;
2418: IF p_target <> 'PMNT' THEN
2419: OKL_API.set_message(p_app_name => G_APP_NAME,
2420: p_msg_name => G_INVALID_VALUE,
2421: p_token1 => G_COL_NAME_TOKEN,
2422: p_token1_value => 'Target');
2423: RAISE OKL_API.G_EXCEPTION_ERROR;
2419: OKL_API.set_message(p_app_name => G_APP_NAME,
2420: p_msg_name => G_INVALID_VALUE,
2421: p_token1 => G_COL_NAME_TOKEN,
2422: p_token1_value => 'Target');
2423: RAISE OKL_API.G_EXCEPTION_ERROR;
2424: END IF;
2425:
2426: OPEN khr_type_csr;
2427: FETCH khr_type_csr INTO khr_type_rec;
2443: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2444: 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 );
2445: END IF;
2446: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
2447: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2448: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
2449: RAISE OKL_API.G_EXCEPTION_ERROR;
2450: END IF;
2451:
2445: END IF;
2446: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
2447: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2448: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
2449: RAISE OKL_API.G_EXCEPTION_ERROR;
2450: END IF;
2451:
2452: -- We are now calucuating Booking Yields
2453: -- Get the SLL payment info for a kle_id and khr_id
2457: p_kle_id => p_kle_id,
2458: p_line_type => l_line_type);
2459: FETCH c_rent_slls INTO l_rent_sll;
2460: IF c_rent_slls%NOTFOUND THEN
2461: OKL_API.set_message(p_app_name => G_APP_NAME,
2462: p_msg_name => G_INVALID_VALUE,
2463: p_token1 => G_COL_NAME_TOKEN,
2464: p_token1_value => 'khr_id/kle_id');
2465: RAISE OKL_API.G_EXCEPTION_ERROR;
2461: OKL_API.set_message(p_app_name => G_APP_NAME,
2462: p_msg_name => G_INVALID_VALUE,
2463: p_token1 => G_COL_NAME_TOKEN,
2464: p_token1_value => 'khr_id/kle_id');
2465: RAISE OKL_API.G_EXCEPTION_ERROR;
2466: END IF;
2467: CLOSE c_rent_slls;
2468: l_start_date := l_rent_sll.START_DATE;
2469:
2483: p_days_in_year => l_day_convention_year,
2484: p_end_date => l_rent_flow.se_date,
2485: p_arrears => l_rent_flow.se_arrears,
2486: x_return_status => x_return_status);
2487: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2488: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2489: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2490: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2491: END IF;
2484: p_end_date => l_rent_flow.se_date,
2485: p_arrears => l_rent_flow.se_arrears,
2486: x_return_status => x_return_status);
2487: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2488: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2489: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2490: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2491: END IF;
2492: asset_rents(k).se_amount := l_rent_flow.se_amount;
2485: p_arrears => l_rent_flow.se_arrears,
2486: x_return_status => x_return_status);
2487: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2488: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2489: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2490: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2491: END IF;
2492: asset_rents(k).se_amount := l_rent_flow.se_amount;
2493: asset_rents(k).se_date := l_rent_flow.se_date;
2486: x_return_status => x_return_status);
2487: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2488: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2489: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2490: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2491: END IF;
2492: asset_rents(k).se_amount := l_rent_flow.se_amount;
2493: asset_rents(k).se_date := l_rent_flow.se_date;
2494: asset_rents(k).se_arrears := l_rent_flow.se_arrears;
2497: IF l_rent_flow.se_arrears = 'Y' THEN
2498: l_start_date := l_start_date + 1;
2499: END IF;
2500: END LOOP;
2501: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2502: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2503: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2504: RAISE OKL_API.G_EXCEPTION_ERROR;
2505: END IF;
2498: l_start_date := l_start_date + 1;
2499: END IF;
2500: END LOOP;
2501: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2502: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2503: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2504: RAISE OKL_API.G_EXCEPTION_ERROR;
2505: END IF;
2506: -- Getting the asset cost
2499: END IF;
2500: END LOOP;
2501: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2502: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2503: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2504: RAISE OKL_API.G_EXCEPTION_ERROR;
2505: END IF;
2506: -- Getting the asset cost
2507: OKL_LA_STREAM_PVT.get_so_asset_oec(
2500: END LOOP;
2501: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2502: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2503: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2504: RAISE OKL_API.G_EXCEPTION_ERROR;
2505: END IF;
2506: -- Getting the asset cost
2507: OKL_LA_STREAM_PVT.get_so_asset_oec(
2508: p_khr_id => p_khr_id,
2510: p_subside_yn => l_subside_yn,
2511: x_return_status => x_return_status,
2512: x_asset_oec => l_asset_cost,
2513: x_start_date => ld_asset_start_date);
2514: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2515: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2516: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2517: RAISE OKL_API.G_EXCEPTION_ERROR;
2518: END IF;
2511: x_return_status => x_return_status,
2512: x_asset_oec => l_asset_cost,
2513: x_start_date => ld_asset_start_date);
2514: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2515: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2516: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2517: RAISE OKL_API.G_EXCEPTION_ERROR;
2518: END IF;
2519: -- Getting the Residual value
2512: x_asset_oec => l_asset_cost,
2513: x_start_date => ld_asset_start_date);
2514: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2515: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2516: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2517: RAISE OKL_API.G_EXCEPTION_ERROR;
2518: END IF;
2519: -- Getting the Residual value
2520: OKL_LA_STREAM_PVT.get_so_residual_value(
2513: x_start_date => ld_asset_start_date);
2514: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2515: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2516: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2517: RAISE OKL_API.G_EXCEPTION_ERROR;
2518: END IF;
2519: -- Getting the Residual value
2520: OKL_LA_STREAM_PVT.get_so_residual_value(
2521: p_khr_id => p_khr_id,
2523: p_subside_yn => l_subside_yn,
2524: x_return_status => x_return_status,
2525: x_residual_value => l_residual_value,
2526: x_start_date => ld_res_start_date);
2527: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2528: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2529: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2530: RAISE OKL_API.G_EXCEPTION_ERROR;
2531: END IF;
2524: x_return_status => x_return_status,
2525: x_residual_value => l_residual_value,
2526: x_start_date => ld_res_start_date);
2527: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2528: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2529: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2530: RAISE OKL_API.G_EXCEPTION_ERROR;
2531: END IF;
2532: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2525: x_residual_value => l_residual_value,
2526: x_start_date => ld_res_start_date);
2527: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2528: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2529: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2530: RAISE OKL_API.G_EXCEPTION_ERROR;
2531: END IF;
2532: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2533: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' cost ' || l_asset_cost || ' residual value ' || l_residual_value);
2526: x_start_date => ld_res_start_date);
2527: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2528: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2529: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2530: RAISE OKL_API.G_EXCEPTION_ERROR;
2531: END IF;
2532: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2533: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' cost ' || l_asset_cost || ' residual value ' || l_residual_value);
2534: END IF;
2565: x_return_status => x_return_status);
2566: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2567: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 5 '||x_return_status);
2568: END IF;
2569: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2570: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2571: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2572: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2573: END IF;
2566: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2567: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 5 '||x_return_status);
2568: END IF;
2569: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2570: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2571: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2572: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2573: END IF;
2574: l_termination_val := l_termination_val*(1 + l_days*l_bk_yield/360);
2567: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 5 '||x_return_status);
2568: END IF;
2569: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2570: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2571: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2572: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2573: END IF;
2574: l_termination_val := l_termination_val*(1 + l_days*l_bk_yield/360);
2575: l_se_date := LAST_DAY(l_start_date);
2568: END IF;
2569: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2570: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2571: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2572: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2573: END IF;
2574: l_termination_val := l_termination_val*(1 + l_days*l_bk_yield/360);
2575: l_se_date := LAST_DAY(l_start_date);
2576: IF TO_CHAR(LAST_DAY(l_se_date), 'DD') = '31' THEN
2587: p_days_in_year => l_day_convention_year,
2588: p_end_date => l_end_date,
2589: p_arrears => l_rent_sll.arrears_yn,
2590: x_return_status => x_return_status);
2591: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2592: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2593: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2594: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2595: END IF;
2588: p_end_date => l_end_date,
2589: p_arrears => l_rent_sll.arrears_yn,
2590: x_return_status => x_return_status);
2591: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2592: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2593: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2594: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2595: END IF;
2596: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2589: p_arrears => l_rent_sll.arrears_yn,
2590: x_return_status => x_return_status);
2591: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2592: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2593: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2594: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2595: END IF;
2596: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2597: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 7 '||x_return_status);
2590: x_return_status => x_return_status);
2591: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2592: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2593: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2594: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2595: END IF;
2596: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2597: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 7 '||x_return_status);
2598: END IF;
2622: x_return_status => x_return_status);
2623: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2624: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' # of days '||to_char(l_days));
2625: END IF;
2626: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2627: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2628: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2629: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2630: END IF;
2623: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2624: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' # of days '||to_char(l_days));
2625: END IF;
2626: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2627: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2628: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2629: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2630: END IF;
2631: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
2624: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' # of days '||to_char(l_days));
2625: END IF;
2626: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2627: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2628: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2629: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2630: END IF;
2631: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
2632: l_days := l_days - 1;
2625: END IF;
2626: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2627: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2628: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2629: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2630: END IF;
2631: IF (l_rent_sll.arrears_yn = 'Y') AND (m = 1) THEN
2632: l_days := l_days - 1;
2633: END IF;
2664: x_return_status => x_return_status);
2665: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2666: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 9 '||x_return_status);
2667: END IF;
2668: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2669: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2670: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2671: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2672: END IF;
2665: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2666: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 9 '||x_return_status);
2667: END IF;
2668: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2669: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2670: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2671: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2672: END IF;
2673: l_termination_val := l_termination_val*(1 + l_days*l_bk_yield/360);
2666: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' Status 9 '||x_return_status);
2667: END IF;
2668: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2669: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2670: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2671: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2672: END IF;
2673: l_termination_val := l_termination_val*(1 + l_days*l_bk_yield/360);
2674: l_termination_val := l_termination_val - asset_rents(k).se_amount;
2667: END IF;
2668: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2669: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
2670: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2671: EXIT WHEN(x_return_status = OKL_API.G_RET_STS_ERROR);
2672: END IF;
2673: l_termination_val := l_termination_val*(1 + l_days*l_bk_yield/360);
2674: l_termination_val := l_termination_val - asset_rents(k).se_amount;
2675: END IF;
2738: l_prev_incr_sign := SIGN(l_increment);
2739: l_prev_diff_sign := SIGN(l_diff);
2740: l_prev_diff := l_diff;
2741: END LOOP;
2742: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2743: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2744: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2745: RAISE OKL_API.G_EXCEPTION_ERROR;
2746: END IF;
2739: l_prev_diff_sign := SIGN(l_diff);
2740: l_prev_diff := l_diff;
2741: END LOOP;
2742: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2743: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2744: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2745: RAISE OKL_API.G_EXCEPTION_ERROR;
2746: END IF;
2747: OKL_API.END_ACTIVITY (x_msg_count,
2740: l_prev_diff := l_diff;
2741: END LOOP;
2742: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2743: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2744: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2745: RAISE OKL_API.G_EXCEPTION_ERROR;
2746: END IF;
2747: OKL_API.END_ACTIVITY (x_msg_count,
2748: x_msg_data );
2741: END LOOP;
2742: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
2743: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2744: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2745: RAISE OKL_API.G_EXCEPTION_ERROR;
2746: END IF;
2747: OKL_API.END_ACTIVITY (x_msg_count,
2748: x_msg_data );
2749: EXCEPTION
2743: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2744: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
2745: RAISE OKL_API.G_EXCEPTION_ERROR;
2746: END IF;
2747: OKL_API.END_ACTIVITY (x_msg_count,
2748: x_msg_data );
2749: EXCEPTION
2750: WHEN OKL_API.G_EXCEPTION_ERROR THEN
2751: IF c_rent_slls%ISOPEN THEN
2746: END IF;
2747: OKL_API.END_ACTIVITY (x_msg_count,
2748: x_msg_data );
2749: EXCEPTION
2750: WHEN OKL_API.G_EXCEPTION_ERROR THEN
2751: IF c_rent_slls%ISOPEN THEN
2752: CLOSE c_rent_slls;
2753: END IF;
2754: IF c_rent_flows%ISOPEN THEN
2753: END IF;
2754: IF c_rent_flows%ISOPEN THEN
2755: CLOSE c_rent_flows;
2756: END IF;
2757: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2758: l_api_name,
2759: G_PKG_NAME,
2760: 'OKL_API.G_RET_STS_ERROR',
2761: x_msg_count,
2756: END IF;
2757: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2758: l_api_name,
2759: G_PKG_NAME,
2760: 'OKL_API.G_RET_STS_ERROR',
2761: x_msg_count,
2762: x_msg_data,
2763: '_PVT');
2764: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2760: 'OKL_API.G_RET_STS_ERROR',
2761: x_msg_count,
2762: x_msg_data,
2763: '_PVT');
2764: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2765: IF c_rent_slls%ISOPEN THEN
2766: CLOSE c_rent_slls;
2767: END IF;
2768: IF c_rent_flows%ISOPEN THEN
2767: END IF;
2768: IF c_rent_flows%ISOPEN THEN
2769: CLOSE c_rent_flows;
2770: END IF;
2771: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2772: l_api_name,
2773: G_PKG_NAME,
2774: 'OKL_API.G_RET_STS_UNEXP_ERROR',
2775: x_msg_count,
2770: END IF;
2771: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2772: l_api_name,
2773: G_PKG_NAME,
2774: 'OKL_API.G_RET_STS_UNEXP_ERROR',
2775: x_msg_count,
2776: x_msg_data,
2777: '_PVT');
2778: WHEN OTHERS THEN
2781: END IF;
2782: IF c_rent_flows%ISOPEN THEN
2783: CLOSE c_rent_flows;
2784: END IF;
2785: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2786: l_api_name,
2787: G_PKG_NAME,
2788: 'OTHERS',
2789: x_msg_count,
2807: -- History : 07-SEP-2003 BAKUHCIB CREATED for Bug# *****
2808: -- End of Comments
2809: ---------------------------------------------------------------------------
2810: PROCEDURE comp_so_pre_tax_irr(p_api_version IN NUMBER,
2811: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2812: x_return_status OUT NOCOPY VARCHAR2,
2813: x_msg_count OUT NOCOPY NUMBER,
2814: x_msg_data OUT NOCOPY VARCHAR2,
2815: p_khr_id IN NUMBER,
3222: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3223: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'begin' );
3224:
3225: END IF;
3226: x_return_status := OKL_API.G_RET_STS_SUCCESS;
3227: -- Call start_activity to create savepoint, check compatibility
3228: -- and initialize message list
3229: x_return_status := OKL_API.START_ACTIVITY (
3230: l_api_name
3225: END IF;
3226: x_return_status := OKL_API.G_RET_STS_SUCCESS;
3227: -- Call start_activity to create savepoint, check compatibility
3228: -- and initialize message list
3229: x_return_status := OKL_API.START_ACTIVITY (
3230: l_api_name
3231: ,p_init_msg_list
3232: ,'_PVT'
3233: ,x_return_status);
3231: ,p_init_msg_list
3232: ,'_PVT'
3233: ,x_return_status);
3234: -- Check if activity started successfully
3235: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3236: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3237: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3238: RAISE OKL_API.G_EXCEPTION_ERROR;
3239: END IF;
3232: ,'_PVT'
3233: ,x_return_status);
3234: -- Check if activity started successfully
3235: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3236: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3237: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3238: RAISE OKL_API.G_EXCEPTION_ERROR;
3239: END IF;
3240: -- check if the target is correctly given
3233: ,x_return_status);
3234: -- Check if activity started successfully
3235: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3236: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3237: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3238: RAISE OKL_API.G_EXCEPTION_ERROR;
3239: END IF;
3240: -- check if the target is correctly given
3241: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3234: -- Check if activity started successfully
3235: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3236: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3237: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3238: RAISE OKL_API.G_EXCEPTION_ERROR;
3239: END IF;
3240: -- check if the target is correctly given
3241: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3242: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'check if the target is correctly given' || ' ' || p_target );
3242: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'check if the target is correctly given' || ' ' || p_target );
3243:
3244: END IF;
3245: IF p_target NOT IN ('RATE','PMNT') THEN
3246: OKL_API.set_message(p_app_name => G_APP_NAME,
3247: p_msg_name => G_INVALID_VALUE,
3248: p_token1 => G_COL_NAME_TOKEN,
3249: p_token1_value => 'Target');
3250: RAISE OKL_API.G_EXCEPTION_ERROR;
3246: OKL_API.set_message(p_app_name => G_APP_NAME,
3247: p_msg_name => G_INVALID_VALUE,
3248: p_token1 => G_COL_NAME_TOKEN,
3249: p_token1_value => 'Target');
3250: RAISE OKL_API.G_EXCEPTION_ERROR;
3251: END IF;
3252:
3253: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3254: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'check if the target is correctly given - done');
3263: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3264: 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 );
3265: END IF;
3266: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
3267: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3268: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
3269: RAISE OKL_API.G_EXCEPTION_ERROR;
3270: END IF;
3271: OPEN get_start_date(P_khr_id => p_khr_id);
3265: END IF;
3266: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
3267: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3268: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
3269: RAISE OKL_API.G_EXCEPTION_ERROR;
3270: END IF;
3271: OPEN get_start_date(P_khr_id => p_khr_id);
3272: FETCH get_start_date INTO l_khr_start_date;
3273: IF get_start_date%NOTFOUND THEN
3270: END IF;
3271: OPEN get_start_date(P_khr_id => p_khr_id);
3272: FETCH get_start_date INTO l_khr_start_date;
3273: IF get_start_date%NOTFOUND THEN
3274: RAISE OKL_API.G_EXCEPTION_ERROR;
3275: END IF;
3276: CLOSE get_start_date;
3277: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3278: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'got start date');
3291: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3292: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec '|| x_return_status);
3293: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec - again '|| x_return_status);
3294: END IF;
3295: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3296: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3297: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3298: RAISE OKL_API.G_EXCEPTION_ERROR;
3299: END IF;
3292: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec '|| x_return_status);
3293: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec - again '|| x_return_status);
3294: END IF;
3295: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3296: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3297: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3298: RAISE OKL_API.G_EXCEPTION_ERROR;
3299: END IF;
3300: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3293: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec - again '|| x_return_status);
3294: END IF;
3295: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3296: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3297: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3298: RAISE OKL_API.G_EXCEPTION_ERROR;
3299: END IF;
3300: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3301: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' l_time_zero '|| x_return_status);
3294: END IF;
3295: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3296: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3297: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3298: RAISE OKL_API.G_EXCEPTION_ERROR;
3299: END IF;
3300: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3301: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' l_time_zero '|| x_return_status);
3302: END IF;
3309: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'before fee cost '|| x_return_status);
3310: END IF;
3311: FOR l_fee_cost IN c_fee_cost(p_khr_id => p_khr_id) LOOP
3312: IF l_fee_cost.start_date IS NOT NULL OR
3313: l_fee_cost.start_date <> OKL_API.G_MISS_DATE THEN
3314: l_time_zero_cost := l_time_zero_cost + l_fee_cost.amount;
3315: END IF;
3316: END LOOP;
3317:
3351: p_days_in_year => l_day_convention_year,
3352: p_end_date => l_inflow.cf_date,
3353: p_arrears => l_inflow.cf_arrear,
3354: x_return_status => x_return_status);
3355: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3356: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3357: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3358: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3359: END IF;
3352: p_end_date => l_inflow.cf_date,
3353: p_arrears => l_inflow.cf_arrear,
3354: x_return_status => x_return_status);
3355: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3356: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3357: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3358: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3359: END IF;
3360: IF (inflow_tbl(n).rate IS NULL OR
3353: p_arrears => l_inflow.cf_arrear,
3354: x_return_status => x_return_status);
3355: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3356: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3357: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3358: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3359: END IF;
3360: IF (inflow_tbl(n).rate IS NULL OR
3361: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3354: x_return_status => x_return_status);
3355: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3356: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3357: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3358: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3359: END IF;
3360: IF (inflow_tbl(n).rate IS NULL OR
3361: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3362: p_target = 'RATE' THEN
3357: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3358: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3359: END IF;
3360: IF (inflow_tbl(n).rate IS NULL OR
3361: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3362: p_target = 'RATE' THEN
3363: OKL_API.set_message(
3364: p_app_name => G_APP_NAME,
3365: p_msg_name => G_INVALID_VALUE,
3359: END IF;
3360: IF (inflow_tbl(n).rate IS NULL OR
3361: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3362: p_target = 'RATE' THEN
3363: OKL_API.set_message(
3364: p_app_name => G_APP_NAME,
3365: p_msg_name => G_INVALID_VALUE,
3366: p_token1 => G_COL_NAME_TOKEN,
3367: p_token1_value => 'Rate');
3364: p_app_name => G_APP_NAME,
3365: p_msg_name => G_INVALID_VALUE,
3366: p_token1 => G_COL_NAME_TOKEN,
3367: p_token1_value => 'Rate');
3368: x_return_status := OKL_API.G_RET_STS_ERROR;
3369: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3370: END IF;
3371: END LOOP;
3372:
3365: p_msg_name => G_INVALID_VALUE,
3366: p_token1 => G_COL_NAME_TOKEN,
3367: p_token1_value => 'Rate');
3368: x_return_status := OKL_API.G_RET_STS_ERROR;
3369: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3370: END IF;
3371: END LOOP;
3372:
3373: FOR l_inflow IN c_fee_inflows(p_khr_id => p_khr_id ) LOOP
3389: p_days_in_year => l_day_convention_year,
3390: p_end_date => l_inflow.cf_date,
3391: p_arrears => l_inflow.cf_arrear,
3392: x_return_status => x_return_status);
3393: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3394: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3395: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3396: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3397: END IF;
3390: p_end_date => l_inflow.cf_date,
3391: p_arrears => l_inflow.cf_arrear,
3392: x_return_status => x_return_status);
3393: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3394: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3395: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3396: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3397: END IF;
3398: IF (inflow_tbl(n).rate IS NULL OR
3391: p_arrears => l_inflow.cf_arrear,
3392: x_return_status => x_return_status);
3393: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3394: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3395: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3396: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3397: END IF;
3398: IF (inflow_tbl(n).rate IS NULL OR
3399: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3392: x_return_status => x_return_status);
3393: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3394: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3395: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3396: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3397: END IF;
3398: IF (inflow_tbl(n).rate IS NULL OR
3399: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3400: p_target = 'RATE' THEN
3395: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3396: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3397: END IF;
3398: IF (inflow_tbl(n).rate IS NULL OR
3399: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3400: p_target = 'RATE' THEN
3401: OKL_API.set_message(
3402: p_app_name => G_APP_NAME,
3403: p_msg_name => G_INVALID_VALUE,
3397: END IF;
3398: IF (inflow_tbl(n).rate IS NULL OR
3399: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
3400: p_target = 'RATE' THEN
3401: OKL_API.set_message(
3402: p_app_name => G_APP_NAME,
3403: p_msg_name => G_INVALID_VALUE,
3404: p_token1 => G_COL_NAME_TOKEN,
3405: p_token1_value => 'Rate');
3402: p_app_name => G_APP_NAME,
3403: p_msg_name => G_INVALID_VALUE,
3404: p_token1 => G_COL_NAME_TOKEN,
3405: p_token1_value => 'Rate');
3406: x_return_status := OKL_API.G_RET_STS_ERROR;
3407: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3408: END IF;
3409:
3410: END LOOP;
3403: p_msg_name => G_INVALID_VALUE,
3404: p_token1 => G_COL_NAME_TOKEN,
3405: p_token1_value => 'Rate');
3406: x_return_status := OKL_API.G_RET_STS_ERROR;
3407: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3408: END IF;
3409:
3410: END LOOP;
3411:
3411:
3412: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3413: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after inflows # ' || n|| x_return_status);
3414: END IF;
3415: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3416: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3417: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3418: RAISE OKL_API.G_EXCEPTION_ERROR;
3419: END IF;
3412: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3413: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after inflows # ' || n|| x_return_status);
3414: END IF;
3415: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3416: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3417: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3418: RAISE OKL_API.G_EXCEPTION_ERROR;
3419: END IF;
3420: -- Collecting the Residual Value amount
3413: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after inflows # ' || n|| x_return_status);
3414: END IF;
3415: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3416: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3417: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3418: RAISE OKL_API.G_EXCEPTION_ERROR;
3419: END IF;
3420: -- Collecting the Residual Value amount
3421: -- Here since the Assets are associated to one so_payment line
3414: END IF;
3415: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3416: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3417: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3418: RAISE OKL_API.G_EXCEPTION_ERROR;
3419: END IF;
3420: -- Collecting the Residual Value amount
3421: -- Here since the Assets are associated to one so_payment line
3422: -- we sum up to get actual residual value , residual value percent
3430: p_subside_yn => l_subside_yn,
3431: x_return_status => x_return_status,
3432: x_residual_value => rv_tbl(p).cf_amount,
3433: x_start_date => ld_res_pay_start_date);
3434: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3435: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3436: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3437: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3438: END IF;
3431: x_return_status => x_return_status,
3432: x_residual_value => rv_tbl(p).cf_amount,
3433: x_start_date => ld_res_pay_start_date);
3434: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3435: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3436: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3437: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3438: END IF;
3439: l_residual_value := rv_tbl(p).cf_amount;
3432: x_residual_value => rv_tbl(p).cf_amount,
3433: x_start_date => ld_res_pay_start_date);
3434: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3435: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3436: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3437: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3438: END IF;
3439: l_residual_value := rv_tbl(p).cf_amount;
3440: rv_tbl(p).cf_date := l_asset_rv.end_date;
3433: x_start_date => ld_res_pay_start_date);
3434: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3435: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3436: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3437: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3438: END IF;
3439: l_residual_value := rv_tbl(p).cf_amount;
3440: rv_tbl(p).cf_date := l_asset_rv.end_date;
3441: rv_tbl(p).cf_dpp := l_asset_rv.days_per_period;
3443: OKL_PRICING_PVT.get_rate(p_khr_id => p_khr_id,
3444: p_date => rv_tbl(p).cf_date,
3445: x_rate => rv_tbl(p).rate,
3446: x_return_status => x_return_status);
3447: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3448: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3449: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3450: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3451: END IF;
3444: p_date => rv_tbl(p).cf_date,
3445: x_rate => rv_tbl(p).rate,
3446: x_return_status => x_return_status);
3447: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3448: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3449: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3450: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3451: END IF;
3452: IF (rv_tbl(p).rate IS NULL OR
3445: x_rate => rv_tbl(p).rate,
3446: x_return_status => x_return_status);
3447: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3448: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3449: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3450: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3451: END IF;
3452: IF (rv_tbl(p).rate IS NULL OR
3453: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
3446: x_return_status => x_return_status);
3447: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3448: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3449: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3450: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3451: END IF;
3452: IF (rv_tbl(p).rate IS NULL OR
3453: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
3454: p_target = 'RATE' THEN
3449: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3450: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3451: END IF;
3452: IF (rv_tbl(p).rate IS NULL OR
3453: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
3454: p_target = 'RATE' THEN
3455: OKL_API.set_message(
3456: p_app_name => G_APP_NAME,
3457: p_msg_name => G_INVALID_VALUE,
3451: END IF;
3452: IF (rv_tbl(p).rate IS NULL OR
3453: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
3454: p_target = 'RATE' THEN
3455: OKL_API.set_message(
3456: p_app_name => G_APP_NAME,
3457: p_msg_name => G_INVALID_VALUE,
3458: p_token1 => G_COL_NAME_TOKEN,
3459: p_token1_value => 'Rate');
3456: p_app_name => G_APP_NAME,
3457: p_msg_name => G_INVALID_VALUE,
3458: p_token1 => G_COL_NAME_TOKEN,
3459: p_token1_value => 'Rate');
3460: x_return_status := OKL_API.G_RET_STS_ERROR;
3461: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3462: END IF;
3463: rv_tbl(p).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3464: p_start_date => ld_res_pay_start_date,
3457: p_msg_name => G_INVALID_VALUE,
3458: p_token1 => G_COL_NAME_TOKEN,
3459: p_token1_value => 'Rate');
3460: x_return_status := OKL_API.G_RET_STS_ERROR;
3461: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3462: END IF;
3463: rv_tbl(p).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3464: p_start_date => ld_res_pay_start_date,
3465: p_days_in_month => l_day_convention_month,
3466: p_days_in_year => l_day_convention_year,
3467: p_end_date => rv_tbl(p).cf_date,
3468: p_arrears => 'Y',
3469: x_return_status => x_return_status);
3470: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3471: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3472: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3473: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3474: END IF;
3467: p_end_date => rv_tbl(p).cf_date,
3468: p_arrears => 'Y',
3469: x_return_status => x_return_status);
3470: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3471: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3472: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3473: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3474: END IF;
3475: END LOOP;
3468: p_arrears => 'Y',
3469: x_return_status => x_return_status);
3470: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3471: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3472: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3473: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3474: END IF;
3475: END LOOP;
3476: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3469: x_return_status => x_return_status);
3470: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3471: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3472: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3473: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3474: END IF;
3475: END LOOP;
3476: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3477: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
3475: END LOOP;
3476: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3477: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
3478: END IF;
3479: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3480: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3481: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3482: RAISE OKL_API.G_EXCEPTION_ERROR;
3483: END IF;
3476: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3477: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
3478: END IF;
3479: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3480: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3481: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3482: RAISE OKL_API.G_EXCEPTION_ERROR;
3483: END IF;
3484: -- Collecting the Outflow amounts of Fee
3477: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
3478: END IF;
3479: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3480: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3481: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3482: RAISE OKL_API.G_EXCEPTION_ERROR;
3483: END IF;
3484: -- Collecting the Outflow amounts of Fee
3485: -- Here the fee are attached to the contract header
3478: END IF;
3479: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3480: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3481: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3482: RAISE OKL_API.G_EXCEPTION_ERROR;
3483: END IF;
3484: -- Collecting the Outflow amounts of Fee
3485: -- Here the fee are attached to the contract header
3486: -- We do not include, security deposit fee, capiatlized fees, Pass through fee
3495: OKL_PRICING_PVT.get_rate(p_khr_id => p_khr_id,
3496: p_date => outflow_tbl(q).cf_date,
3497: x_rate => outflow_tbl(q).rate,
3498: x_return_status => x_return_status);
3499: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3500: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3501: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3502: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3503: END IF;
3496: p_date => outflow_tbl(q).cf_date,
3497: x_rate => outflow_tbl(q).rate,
3498: x_return_status => x_return_status);
3499: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3500: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3501: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3502: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3503: END IF;
3504: IF (outflow_tbl(q).rate IS NULL OR
3497: x_rate => outflow_tbl(q).rate,
3498: x_return_status => x_return_status);
3499: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3500: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3501: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3502: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3503: END IF;
3504: IF (outflow_tbl(q).rate IS NULL OR
3505: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3498: x_return_status => x_return_status);
3499: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3500: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3501: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3502: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3503: END IF;
3504: IF (outflow_tbl(q).rate IS NULL OR
3505: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3506: p_target = 'RATE' THEN
3501: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3502: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3503: END IF;
3504: IF (outflow_tbl(q).rate IS NULL OR
3505: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3506: p_target = 'RATE' THEN
3507: OKL_API.set_message(
3508: p_app_name => G_APP_NAME,
3509: p_msg_name => G_INVALID_VALUE,
3503: END IF;
3504: IF (outflow_tbl(q).rate IS NULL OR
3505: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3506: p_target = 'RATE' THEN
3507: OKL_API.set_message(
3508: p_app_name => G_APP_NAME,
3509: p_msg_name => G_INVALID_VALUE,
3510: p_token1 => G_COL_NAME_TOKEN,
3511: p_token1_value => 'Rate');
3508: p_app_name => G_APP_NAME,
3509: p_msg_name => G_INVALID_VALUE,
3510: p_token1 => G_COL_NAME_TOKEN,
3511: p_token1_value => 'Rate');
3512: x_return_status := OKL_API.G_RET_STS_ERROR;
3513: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3514: END IF;
3515: outflow_tbl(q).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3516: p_start_date => l_outflow.start_date,
3509: p_msg_name => G_INVALID_VALUE,
3510: p_token1 => G_COL_NAME_TOKEN,
3511: p_token1_value => 'Rate');
3512: x_return_status := OKL_API.G_RET_STS_ERROR;
3513: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3514: END IF;
3515: outflow_tbl(q).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3516: p_start_date => l_outflow.start_date,
3517: p_days_in_month => l_day_convention_month,
3518: p_days_in_year => l_day_convention_year,
3519: p_end_date => l_outflow.start_date,
3520: p_arrears => 'N',
3521: x_return_status => x_return_status);
3522: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3523: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3524: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3525: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3526: END IF;
3519: p_end_date => l_outflow.start_date,
3520: p_arrears => 'N',
3521: x_return_status => x_return_status);
3522: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3523: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3524: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3525: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3526: END IF;
3527: END IF;
3520: p_arrears => 'N',
3521: x_return_status => x_return_status);
3522: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3523: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3524: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3525: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3526: END IF;
3527: END IF;
3528: END LOOP;
3521: x_return_status => x_return_status);
3522: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3523: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3524: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3525: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3526: END IF;
3527: END IF;
3528: END LOOP;
3529: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3528: END LOOP;
3529: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3530: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after outflows ' || q|| x_return_status);
3531: END IF;
3532: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3533: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3534: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3535: RAISE OKL_API.G_EXCEPTION_ERROR;
3536: END IF;
3529: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3530: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after outflows ' || q|| x_return_status);
3531: END IF;
3532: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3533: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3534: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3535: RAISE OKL_API.G_EXCEPTION_ERROR;
3536: END IF;
3537: -- Collecting the Outflow amounts of asset
3530: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after outflows ' || q|| x_return_status);
3531: END IF;
3532: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3533: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3534: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3535: RAISE OKL_API.G_EXCEPTION_ERROR;
3536: END IF;
3537: -- Collecting the Outflow amounts of asset
3538: -- Since we are summing up to the so_payment line
3531: END IF;
3532: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3533: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3534: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3535: RAISE OKL_API.G_EXCEPTION_ERROR;
3536: END IF;
3537: -- Collecting the Outflow amounts of asset
3538: -- Since we are summing up to the so_payment line
3539: -- We would have one asset cost
3545: p_subside_yn => l_subside_yn,
3546: x_return_status => x_return_status,
3547: x_asset_oec => outflow_tbl(q).cf_amount,
3548: x_start_date => ld_asset_start_date);
3549: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3550: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3551: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3552: RAISE OKL_API.G_EXCEPTION_ERROR;
3553: END IF;
3546: x_return_status => x_return_status,
3547: x_asset_oec => outflow_tbl(q).cf_amount,
3548: x_start_date => ld_asset_start_date);
3549: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3550: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3551: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3552: RAISE OKL_API.G_EXCEPTION_ERROR;
3553: END IF;
3554: outflow_tbl(q).cf_amount := -(outflow_tbl(q).cf_amount);
3547: x_asset_oec => outflow_tbl(q).cf_amount,
3548: x_start_date => ld_asset_start_date);
3549: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3550: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3551: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3552: RAISE OKL_API.G_EXCEPTION_ERROR;
3553: END IF;
3554: outflow_tbl(q).cf_amount := -(outflow_tbl(q).cf_amount);
3555: outflow_tbl(q).cf_date := ld_asset_start_date;
3548: x_start_date => ld_asset_start_date);
3549: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3550: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3551: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3552: RAISE OKL_API.G_EXCEPTION_ERROR;
3553: END IF;
3554: outflow_tbl(q).cf_amount := -(outflow_tbl(q).cf_amount);
3555: outflow_tbl(q).cf_date := ld_asset_start_date;
3556: outflow_tbl(q).cf_dpp := 1;
3558: OKL_PRICING_PVT.get_rate(p_khr_id => p_khr_id,
3559: p_date => outflow_tbl(q).cf_date,
3560: x_rate => outflow_tbl(q).rate,
3561: x_return_status => x_return_status);
3562: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3563: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3564: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3565: RAISE OKL_API.G_EXCEPTION_ERROR;
3566: END IF;
3559: p_date => outflow_tbl(q).cf_date,
3560: x_rate => outflow_tbl(q).rate,
3561: x_return_status => x_return_status);
3562: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3563: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3564: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3565: RAISE OKL_API.G_EXCEPTION_ERROR;
3566: END IF;
3567: IF (outflow_tbl(q).rate IS NULL OR
3560: x_rate => outflow_tbl(q).rate,
3561: x_return_status => x_return_status);
3562: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3563: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3564: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3565: RAISE OKL_API.G_EXCEPTION_ERROR;
3566: END IF;
3567: IF (outflow_tbl(q).rate IS NULL OR
3568: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3561: x_return_status => x_return_status);
3562: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3563: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3564: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3565: RAISE OKL_API.G_EXCEPTION_ERROR;
3566: END IF;
3567: IF (outflow_tbl(q).rate IS NULL OR
3568: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3569: p_target = 'RATE' THEN
3564: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3565: RAISE OKL_API.G_EXCEPTION_ERROR;
3566: END IF;
3567: IF (outflow_tbl(q).rate IS NULL OR
3568: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3569: p_target = 'RATE' THEN
3570: OKL_API.set_message(
3571: p_app_name => G_APP_NAME,
3572: p_msg_name => G_INVALID_VALUE,
3566: END IF;
3567: IF (outflow_tbl(q).rate IS NULL OR
3568: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
3569: p_target = 'RATE' THEN
3570: OKL_API.set_message(
3571: p_app_name => G_APP_NAME,
3572: p_msg_name => G_INVALID_VALUE,
3573: p_token1 => G_COL_NAME_TOKEN,
3574: p_token1_value => 'Rate');
3571: p_app_name => G_APP_NAME,
3572: p_msg_name => G_INVALID_VALUE,
3573: p_token1 => G_COL_NAME_TOKEN,
3574: p_token1_value => 'Rate');
3575: x_return_status := OKL_API.G_RET_STS_ERROR;
3576: RAISE OKL_API.G_EXCEPTION_ERROR;
3577: END IF;
3578: outflow_tbl(q).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3579: p_start_date => ld_asset_start_date,
3572: p_msg_name => G_INVALID_VALUE,
3573: p_token1 => G_COL_NAME_TOKEN,
3574: p_token1_value => 'Rate');
3575: x_return_status := OKL_API.G_RET_STS_ERROR;
3576: RAISE OKL_API.G_EXCEPTION_ERROR;
3577: END IF;
3578: outflow_tbl(q).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3579: p_start_date => ld_asset_start_date,
3580: p_days_in_month => l_day_convention_month,
3581: p_days_in_year => l_day_convention_year,
3582: p_end_date => ld_asset_start_date,
3583: p_arrears => 'N',
3584: x_return_status => x_return_status);
3585: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3586: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3587: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3588: RAISE OKL_API.G_EXCEPTION_ERROR;
3589: END IF;
3582: p_end_date => ld_asset_start_date,
3583: p_arrears => 'N',
3584: x_return_status => x_return_status);
3585: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3586: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3587: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3588: RAISE OKL_API.G_EXCEPTION_ERROR;
3589: END IF;
3590: END IF;
3583: p_arrears => 'N',
3584: x_return_status => x_return_status);
3585: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3586: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3587: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3588: RAISE OKL_API.G_EXCEPTION_ERROR;
3589: END IF;
3590: END IF;
3591: -- Collecting Pass-through Amounts
3584: x_return_status => x_return_status);
3585: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3586: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3587: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3588: RAISE OKL_API.G_EXCEPTION_ERROR;
3589: END IF;
3590: END IF;
3591: -- Collecting Pass-through Amounts
3592: FOR l_pass_th IN c_pass_th(p_khr_id => p_khr_id) LOOP
3600: pass_th_tbl(r).cf_dpp := l_pass_th.days_per_period;
3601: pass_th_tbl(r).cf_ppy := l_pass_th.periods_per_year;
3602: pass_th_tbl(r).rate := l_pass_th.rate;
3603: IF (pass_th_tbl(r).rate IS NULL OR
3604: pass_th_tbl(r).rate = OKL_API.G_MISS_NUM) AND
3605: p_target = 'RATE' THEN
3606: OKL_API.set_message(
3607: p_app_name => G_APP_NAME,
3608: p_msg_name => G_INVALID_VALUE,
3602: pass_th_tbl(r).rate := l_pass_th.rate;
3603: IF (pass_th_tbl(r).rate IS NULL OR
3604: pass_th_tbl(r).rate = OKL_API.G_MISS_NUM) AND
3605: p_target = 'RATE' THEN
3606: OKL_API.set_message(
3607: p_app_name => G_APP_NAME,
3608: p_msg_name => G_INVALID_VALUE,
3609: p_token1 => G_COL_NAME_TOKEN,
3610: p_token1_value => 'Rate');
3607: p_app_name => G_APP_NAME,
3608: p_msg_name => G_INVALID_VALUE,
3609: p_token1 => G_COL_NAME_TOKEN,
3610: p_token1_value => 'Rate');
3611: x_return_status := OKL_API.G_RET_STS_ERROR;
3612: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3613: END IF;
3614: pass_th_tbl(r).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3615: p_start_date => l_pass_th.start_date,
3608: p_msg_name => G_INVALID_VALUE,
3609: p_token1 => G_COL_NAME_TOKEN,
3610: p_token1_value => 'Rate');
3611: x_return_status := OKL_API.G_RET_STS_ERROR;
3612: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3613: END IF;
3614: pass_th_tbl(r).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3615: p_start_date => l_pass_th.start_date,
3616: p_days_in_month => l_day_convention_month,
3618: p_end_date => l_pass_th.cf_date,
3619: p_arrears => l_pass_th.arrears_yn,
3620: --l_pass_th.cf_arrear,
3621: x_return_status => x_return_status);
3622: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3623: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3624: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3625: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3626: END IF;
3619: p_arrears => l_pass_th.arrears_yn,
3620: --l_pass_th.cf_arrear,
3621: x_return_status => x_return_status);
3622: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3623: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3624: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3625: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3626: END IF;
3627:
3620: --l_pass_th.cf_arrear,
3621: x_return_status => x_return_status);
3622: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3623: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3624: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3625: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3626: END IF;
3627:
3628: END If;
3621: x_return_status => x_return_status);
3622: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3623: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3624: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3625: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3626: END IF;
3627:
3628: END If;
3629:
3627:
3628: END If;
3629:
3630: END LOOP;
3631: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3632: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3633: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3634: RAISE OKL_API.G_EXCEPTION_ERROR;
3635: END IF;
3628: END If;
3629:
3630: END LOOP;
3631: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3632: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3633: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3634: RAISE OKL_API.G_EXCEPTION_ERROR;
3635: END IF;
3636: -- Collecting Reccuring Amounts
3629:
3630: END LOOP;
3631: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3632: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3633: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3634: RAISE OKL_API.G_EXCEPTION_ERROR;
3635: END IF;
3636: -- Collecting Reccuring Amounts
3637: FOR l_rec_exp IN c_rec_exp(p_khr_id => p_khr_id) LOOP
3630: END LOOP;
3631: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3632: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3633: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3634: RAISE OKL_API.G_EXCEPTION_ERROR;
3635: END IF;
3636: -- Collecting Reccuring Amounts
3637: FOR l_rec_exp IN c_rec_exp(p_khr_id => p_khr_id) LOOP
3638: FOR s1 in 1..l_rec_exp.periods LOOP
3644: OKL_PRICING_PVT.get_rate(p_khr_id => p_khr_id,
3645: p_date =>l_rec_exp.start_date,
3646: x_rate => rec_exp_tbl(s).rate,
3647: x_return_status => x_return_status);
3648: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3649: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3650: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3651: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3652: END IF;
3645: p_date =>l_rec_exp.start_date,
3646: x_rate => rec_exp_tbl(s).rate,
3647: x_return_status => x_return_status);
3648: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3649: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3650: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3651: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3652: END IF;
3653: IF (rec_exp_tbl(s).rate IS NULL OR
3646: x_rate => rec_exp_tbl(s).rate,
3647: x_return_status => x_return_status);
3648: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3649: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3650: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3651: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3652: END IF;
3653: IF (rec_exp_tbl(s).rate IS NULL OR
3654: rec_exp_tbl(s).rate = OKL_API.G_MISS_NUM) AND
3647: x_return_status => x_return_status);
3648: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3649: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3650: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3651: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3652: END IF;
3653: IF (rec_exp_tbl(s).rate IS NULL OR
3654: rec_exp_tbl(s).rate = OKL_API.G_MISS_NUM) AND
3655: p_target = 'RATE' THEN
3650: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3651: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3652: END IF;
3653: IF (rec_exp_tbl(s).rate IS NULL OR
3654: rec_exp_tbl(s).rate = OKL_API.G_MISS_NUM) AND
3655: p_target = 'RATE' THEN
3656: OKL_API.set_message(
3657: p_app_name => G_APP_NAME,
3658: p_msg_name => G_INVALID_VALUE,
3652: END IF;
3653: IF (rec_exp_tbl(s).rate IS NULL OR
3654: rec_exp_tbl(s).rate = OKL_API.G_MISS_NUM) AND
3655: p_target = 'RATE' THEN
3656: OKL_API.set_message(
3657: p_app_name => G_APP_NAME,
3658: p_msg_name => G_INVALID_VALUE,
3659: p_token1 => G_COL_NAME_TOKEN,
3660: p_token1_value => 'Rate');
3657: p_app_name => G_APP_NAME,
3658: p_msg_name => G_INVALID_VALUE,
3659: p_token1 => G_COL_NAME_TOKEN,
3660: p_token1_value => 'Rate');
3661: x_return_status := OKL_API.G_RET_STS_ERROR;
3662: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3663: END IF;
3664: rec_exp_tbl(s).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3665: p_start_date => l_rec_exp.start_date,
3658: p_msg_name => G_INVALID_VALUE,
3659: p_token1 => G_COL_NAME_TOKEN,
3660: p_token1_value => 'Rate');
3661: x_return_status := OKL_API.G_RET_STS_ERROR;
3662: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3663: END IF;
3664: rec_exp_tbl(s).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
3665: p_start_date => l_rec_exp.start_date,
3666: p_days_in_month => l_day_convention_month,
3667: p_days_in_year => l_day_convention_year,
3668: p_end_date => rec_exp_tbl(s).cf_date,
3669: p_arrears => 'N',
3670: x_return_status => x_return_status);
3671: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3672: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3673: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3674: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3675: END IF;
3668: p_end_date => rec_exp_tbl(s).cf_date,
3669: p_arrears => 'N',
3670: x_return_status => x_return_status);
3671: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3672: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3673: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3674: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3675: END IF;
3676: END LOOP;
3669: p_arrears => 'N',
3670: x_return_status => x_return_status);
3671: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3672: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3673: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3674: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3675: END IF;
3676: END LOOP;
3677: END LOOP;
3670: x_return_status => x_return_status);
3671: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3672: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
3673: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3674: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3675: END IF;
3676: END LOOP;
3677: END LOOP;
3678: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3677: END LOOP;
3678: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3679: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after expenses '|| x_return_status);
3680: END IF;
3681: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3682: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3683: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3684: RAISE OKL_API.G_EXCEPTION_ERROR;
3685: END IF;
3678: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3679: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after expenses '|| x_return_status);
3680: END IF;
3681: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3682: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3683: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3684: RAISE OKL_API.G_EXCEPTION_ERROR;
3685: END IF;
3686: -- Validating Sum of all the inflow do not exceed the Total Time zero cost
3679: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after expenses '|| x_return_status);
3680: END IF;
3681: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3682: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3683: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3684: RAISE OKL_API.G_EXCEPTION_ERROR;
3685: END IF;
3686: -- Validating Sum of all the inflow do not exceed the Total Time zero cost
3687: IF n > 0 THEN
3680: END IF;
3681: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3682: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3683: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3684: RAISE OKL_API.G_EXCEPTION_ERROR;
3685: END IF;
3686: -- Validating Sum of all the inflow do not exceed the Total Time zero cost
3687: IF n > 0 THEN
3688: FOR n1 IN inflow_tbl.FIRST..inflow_tbl.LAST LOOP
3698: END IF;
3699: END LOOP;
3700: END IF;
3701: IF l_adv_payment >= l_time_zero_cost THEN
3702: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3703: p_msg_name => 'OKL_IRR_CALC_INF_LOOP',
3704: p_token1 => 'ADV_AMOUNT',
3705: p_token1_value => l_adv_payment,
3706: p_token2 => 'CAPITAL_AMOUNT',
3704: p_token1 => 'ADV_AMOUNT',
3705: p_token1_value => l_adv_payment,
3706: p_token2 => 'CAPITAL_AMOUNT',
3707: p_token2_value => l_time_zero_cost);
3708: RAISE OKL_API.G_EXCEPTION_ERROR;
3709: END IF;
3710: -- To get the Currency code and Precision
3711: OPEN get_curr_code_pre(p_khr_id => p_khr_id);
3712: FETCH get_curr_code_pre INTO l_precision;
3710: -- To get the Currency code and Precision
3711: OPEN get_curr_code_pre(p_khr_id => p_khr_id);
3712: FETCH get_curr_code_pre INTO l_precision;
3713: IF get_curr_code_pre%NOTFOUND THEN
3714: OKL_API.set_message(p_app_name => G_APP_NAME,
3715: p_msg_name => G_REQUIRED_VALUE,
3716: p_token1 => G_COL_NAME_TOKEN,
3717: p_token1_value => 'Currency Code ');
3718: RAISE OKL_API.G_EXCEPTION_ERROR;
3714: OKL_API.set_message(p_app_name => G_APP_NAME,
3715: p_msg_name => G_REQUIRED_VALUE,
3716: p_token1 => G_COL_NAME_TOKEN,
3717: p_token1_value => 'Currency Code ');
3718: RAISE OKL_API.G_EXCEPTION_ERROR;
3719: END IF;
3720: CLOSE get_curr_code_pre;
3721: -- Setting the IRR limit
3722: l_irr_limit := ROUND(NVL(ABS(fnd_profile.value('OKL_PRE_TAX_IRR_LIMIT')), 1000), 0)/100;
3748: l_cf_date := outflow_tbl(w).cf_date;
3749: l_days_in_future := outflow_tbl(w).cf_days;
3750: l_periods := l_days_in_future / l_cf_dpp;
3751: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
3752: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3753: p_msg_name => 'OKL_IRR_ZERO_DIV');
3754: x_return_status := OKL_API.G_RET_STS_ERROR;
3755: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3756: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide outflows '|| x_return_status);
3750: l_periods := l_days_in_future / l_cf_dpp;
3751: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
3752: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3753: p_msg_name => 'OKL_IRR_ZERO_DIV');
3754: x_return_status := OKL_API.G_RET_STS_ERROR;
3755: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3756: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide outflows '|| x_return_status);
3757: END IF;
3758: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3754: x_return_status := OKL_API.G_RET_STS_ERROR;
3755: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3756: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide outflows '|| x_return_status);
3757: END IF;
3758: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3759: END IF;
3760: IF p_target = 'RATE' THEN
3761: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + outflow_tbl(w).rate/(l_cf_ppy*100)), l_periods));
3762: ELSIF p_target = 'PMNT' THEN
3780: l_days_in_future := pass_th_tbl(v).cf_days;
3781: l_periods := l_days_in_future / l_cf_dpp;
3782: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
3783: --IF (l_irr/l_cf_ppy = -1) THEN
3784: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3785: p_msg_name => 'OKL_IRR_ZERO_DIV');
3786: x_return_status := OKL_API.G_RET_STS_ERROR;
3787: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3788: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide passthru '|| x_return_status);
3782: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
3783: --IF (l_irr/l_cf_ppy = -1) THEN
3784: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3785: p_msg_name => 'OKL_IRR_ZERO_DIV');
3786: x_return_status := OKL_API.G_RET_STS_ERROR;
3787: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3788: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide passthru '|| x_return_status);
3789: END IF;
3790: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3786: x_return_status := OKL_API.G_RET_STS_ERROR;
3787: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3788: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide passthru '|| x_return_status);
3789: END IF;
3790: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3791: END IF;
3792:
3793: IF p_target = 'RATE' THEN
3794: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + pass_th_tbl(v).rate/(l_cf_ppy*100)), l_periods));
3813: l_cf_date := rec_exp_tbl(t).cf_date;
3814: l_days_in_future := rec_exp_tbl(t).cf_days;
3815: l_periods := l_days_in_future / l_cf_dpp;
3816: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
3817: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3818: p_msg_name => 'OKL_IRR_ZERO_DIV');
3819: x_return_status := OKL_API.G_RET_STS_ERROR;
3820: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3821: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide expenses '|| x_return_status);
3815: l_periods := l_days_in_future / l_cf_dpp;
3816: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
3817: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3818: p_msg_name => 'OKL_IRR_ZERO_DIV');
3819: x_return_status := OKL_API.G_RET_STS_ERROR;
3820: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3821: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide expenses '|| x_return_status);
3822: END IF;
3823: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3819: x_return_status := OKL_API.G_RET_STS_ERROR;
3820: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3821: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide expenses '|| x_return_status);
3822: END IF;
3823: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3824: END IF;
3825: IF p_target = 'RATE' THEN
3826: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + rec_exp_tbl(t).rate/(l_cf_ppy*100)), l_periods));
3827: ELSIF p_target = 'PMNT' THEN
3843: l_cf_date := rv_tbl(z).cf_date;
3844: l_days_in_future := rv_tbl(z).cf_days;
3845: l_periods := l_days_in_future / l_cf_dpp;
3846: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
3847: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3848: p_msg_name => 'OKL_IRR_ZERO_DIV');
3849: x_return_status := OKL_API.G_RET_STS_ERROR;
3850: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3851: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide rvs '|| x_return_status);
3845: l_periods := l_days_in_future / l_cf_dpp;
3846: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
3847: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3848: p_msg_name => 'OKL_IRR_ZERO_DIV');
3849: x_return_status := OKL_API.G_RET_STS_ERROR;
3850: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3851: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide rvs '|| x_return_status);
3852: END IF;
3853: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3849: x_return_status := OKL_API.G_RET_STS_ERROR;
3850: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3851: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide rvs '|| x_return_status);
3852: END IF;
3853: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3854: END IF;
3855: IF p_target = 'RATE' THEN
3856: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + rv_tbl(z).rate/(l_cf_ppy*100)), l_periods));
3857: ELSIF p_target = 'PMNT' THEN
3875: p_end_date => l_security_deposit.cf_date,
3876: p_arrears => 'N' ,
3877: x_return_status => x_return_status);
3878:
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: p_arrears => 'N' ,
3877: x_return_status => x_return_status);
3878:
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:
3877: x_return_status => x_return_status);
3878:
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:
3885: l_periods := l_days_in_future / l_security_deposit.days_per_period;
3878:
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:
3885: l_periods := l_days_in_future / l_security_deposit.days_per_period;
3886: IF p_target = 'RATE' THEN
3897: p_end_date => l_security_deposit.end_date,
3898: p_arrears => 'N' ,
3899: x_return_status => x_return_status);
3900:
3901: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3902: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3903: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3904: RAISE OKL_API.G_EXCEPTION_ERROR;
3905: END IF;
3898: p_arrears => 'N' ,
3899: x_return_status => x_return_status);
3900:
3901: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3902: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3903: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3904: RAISE OKL_API.G_EXCEPTION_ERROR;
3905: END IF;
3906:
3899: x_return_status => x_return_status);
3900:
3901: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3902: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3903: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3904: RAISE OKL_API.G_EXCEPTION_ERROR;
3905: END IF;
3906:
3907: l_periods := l_days_in_future / l_security_deposit.days_per_period;
3900:
3901: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
3902: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3903: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
3904: RAISE OKL_API.G_EXCEPTION_ERROR;
3905: END IF;
3906:
3907: l_periods := l_days_in_future / l_security_deposit.days_per_period;
3908: IF p_target = 'RATE' THEN
3935: ELSIF inflow_tbl(y).miss_amt = 'N' THEN
3936: l_cf_amount := inflow_tbl(y).cf_amount;
3937: l_cf_date := inflow_tbl(y).cf_date;
3938: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
3939: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3940: p_msg_name => 'OKL_IRR_ZERO_DIV');
3941: x_return_status := OKL_API.G_RET_STS_ERROR;
3942: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3943: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
3937: l_cf_date := inflow_tbl(y).cf_date;
3938: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
3939: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3940: p_msg_name => 'OKL_IRR_ZERO_DIV');
3941: x_return_status := OKL_API.G_RET_STS_ERROR;
3942: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3943: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
3944: END IF;
3945: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3941: x_return_status := OKL_API.G_RET_STS_ERROR;
3942: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3943: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
3944: END IF;
3945: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3946: END IF;
3947: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + inflow_tbl(y).rate/(l_cf_ppy*100)), l_periods));
3948: END IF;
3949: END LOOP;
3953: END IF;
3954: If (l_term <> 0 ) Then
3955: l_payment_inflow := (-1 * l_npv_pay ) / l_term;
3956: else
3957: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3958: p_msg_name => 'OKL_IRR_ZERO_DIV');
3959: x_return_status := OKL_API.G_RET_STS_ERROR;
3960: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3961: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
3955: l_payment_inflow := (-1 * l_npv_pay ) / l_term;
3956: else
3957: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3958: p_msg_name => 'OKL_IRR_ZERO_DIV');
3959: x_return_status := OKL_API.G_RET_STS_ERROR;
3960: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3961: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
3962: END IF;
3963: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3959: x_return_status := OKL_API.G_RET_STS_ERROR;
3960: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3961: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
3962: END IF;
3963: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3964: end if;
3965:
3966: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3967: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' l_npv_pay ' || l_npv_pay );
3987: l_cf_date := inflow_tbl(y).cf_date;
3988: l_days_in_future := inflow_tbl(y).cf_days;
3989: l_periods := l_days_in_future / l_cf_dpp;
3990: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
3991: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3992: p_msg_name => 'OKL_IRR_ZERO_DIV');
3993: x_return_status := OKL_API.G_RET_STS_ERROR;
3994: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3995: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
3989: l_periods := l_days_in_future / l_cf_dpp;
3990: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
3991: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
3992: p_msg_name => 'OKL_IRR_ZERO_DIV');
3993: x_return_status := OKL_API.G_RET_STS_ERROR;
3994: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3995: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
3996: END IF;
3997: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3993: x_return_status := OKL_API.G_RET_STS_ERROR;
3994: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3995: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
3996: END IF;
3997: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
3998: END IF;
3999: IF p_target = 'RATE' THEN
4000: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + inflow_tbl(y).rate/(l_cf_ppy*100)), l_periods));
4001: ELSIF p_target = 'PMNT' THEN
4080: END IF;
4081: END IF;
4082: l_irr := l_irr + l_increment_rate;
4083: IF ABS(l_irr) > l_irr_limit THEN
4084: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4085: p_msg_name => 'OKL_IRR_CALC_IRR_LIMIT',
4086: p_token1 => 'IRR_LIMIT',
4087: p_token1_value => l_irr_limit*100);
4088: x_return_status := OKL_API.G_RET_STS_ERROR;
4084: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
4085: p_msg_name => 'OKL_IRR_CALC_IRR_LIMIT',
4086: p_token1 => 'IRR_LIMIT',
4087: p_token1_value => l_irr_limit*100);
4088: x_return_status := OKL_API.G_RET_STS_ERROR;
4089: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4090: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' 100000% '|| x_return_status);
4091: END IF;
4092: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4088: x_return_status := OKL_API.G_RET_STS_ERROR;
4089: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4090: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' 100000% '|| x_return_status);
4091: END IF;
4092: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
4093: END IF;
4094: l_prev_incr_sign_rate := SIGN(l_increment_rate);
4095: l_prev_npv_sign_rate := SIGN(l_npv_rate);
4096: l_prev_npv_rate := l_npv_rate;
4095: l_prev_npv_sign_rate := SIGN(l_npv_rate);
4096: l_prev_npv_rate := l_npv_rate;
4097: END IF;
4098: END LOOP;
4099: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4100: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4101: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4102: RAISE OKL_API.G_EXCEPTION_ERROR;
4103: END IF;
4096: l_prev_npv_rate := l_npv_rate;
4097: END IF;
4098: END LOOP;
4099: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4100: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4101: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4102: RAISE OKL_API.G_EXCEPTION_ERROR;
4103: END IF;
4104: OKL_API.END_ACTIVITY (x_msg_count,
4097: END IF;
4098: END LOOP;
4099: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4100: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4101: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4102: RAISE OKL_API.G_EXCEPTION_ERROR;
4103: END IF;
4104: OKL_API.END_ACTIVITY (x_msg_count,
4105: x_msg_data );
4098: END LOOP;
4099: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4100: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4101: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4102: RAISE OKL_API.G_EXCEPTION_ERROR;
4103: END IF;
4104: OKL_API.END_ACTIVITY (x_msg_count,
4105: x_msg_data );
4106: EXCEPTION
4100: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4101: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
4102: RAISE OKL_API.G_EXCEPTION_ERROR;
4103: END IF;
4104: OKL_API.END_ACTIVITY (x_msg_count,
4105: x_msg_data );
4106: EXCEPTION
4107: WHEN OKL_API.G_EXCEPTION_ERROR THEN
4108: IF get_curr_code_pre%ISOPEN THEN
4103: END IF;
4104: OKL_API.END_ACTIVITY (x_msg_count,
4105: x_msg_data );
4106: EXCEPTION
4107: WHEN OKL_API.G_EXCEPTION_ERROR THEN
4108: IF get_curr_code_pre%ISOPEN THEN
4109: CLOSE get_curr_code_pre;
4110: END IF;
4111: IF c_rec_exp%ISOPEN THEN
4125: END IF;
4126: IF get_start_date%ISOPEN THEN
4127: CLOSE get_start_date;
4128: END IF;
4129: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4130: l_api_name,
4131: G_PKG_NAME,
4132: 'OKL_API.G_RET_STS_ERROR',
4133: x_msg_count,
4128: END IF;
4129: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4130: l_api_name,
4131: G_PKG_NAME,
4132: 'OKL_API.G_RET_STS_ERROR',
4133: x_msg_count,
4134: x_msg_data,
4135: '_PVT');
4136: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4132: 'OKL_API.G_RET_STS_ERROR',
4133: x_msg_count,
4134: x_msg_data,
4135: '_PVT');
4136: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4137: IF get_curr_code_pre%ISOPEN THEN
4138: CLOSE get_curr_code_pre;
4139: END IF;
4140: IF c_rec_exp%ISOPEN THEN
4154: END IF;
4155: IF get_start_date%ISOPEN THEN
4156: CLOSE get_start_date;
4157: END IF;
4158: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
4159: l_api_name,
4160: G_PKG_NAME,
4161: 'OKL_API.G_RET_STS_UNEXP_ERROR',
4162: x_msg_count,
4157: END IF;
4158: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
4159: l_api_name,
4160: G_PKG_NAME,
4161: 'OKL_API.G_RET_STS_UNEXP_ERROR',
4162: x_msg_count,
4163: x_msg_data,
4164: '_PVT');
4165: WHEN OTHERS THEN
4183: END IF;
4184: IF get_start_date%ISOPEN THEN
4185: CLOSE get_start_date;
4186: END IF;
4187: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
4188: l_api_name,
4189: G_PKG_NAME,
4190: 'OTHERS',
4191: x_msg_count,
4656: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4657: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
4658: END IF;
4659: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
4660: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4661: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
4662: RAISE OKL_API.G_EXCEPTION_ERROR;
4663: END IF;
4664: FOR l_asset_cost IN c_asset_cost LOOP
4658: END IF;
4659: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
4660: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4661: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
4662: RAISE OKL_API.G_EXCEPTION_ERROR;
4663: END IF;
4664: FOR l_asset_cost IN c_asset_cost LOOP
4665:
4666: --Modified IF clause by rgooty for bug 7577105
4712: p_end_date => l_hdr_inflow.cf_date,
4713: p_arrears => l_hdr_inflow.cf_arrear,
4714: x_return_status => lx_return_status);
4715:
4716: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4717: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4718: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4719: RAISE OKL_API.G_EXCEPTION_ERROR;
4720: END IF;
4713: p_arrears => l_hdr_inflow.cf_arrear,
4714: x_return_status => lx_return_status);
4715:
4716: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4717: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4718: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4719: RAISE OKL_API.G_EXCEPTION_ERROR;
4720: END IF;
4721: -- Added for approximation
4714: x_return_status => lx_return_status);
4715:
4716: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4717: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4718: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4719: RAISE OKL_API.G_EXCEPTION_ERROR;
4720: END IF;
4721: -- Added for approximation
4722: G_TOT_INFLOW_AMT := G_TOT_INFLOW_AMT + l_hdr_inflow.cf_amount;
4715:
4716: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4717: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4718: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4719: RAISE OKL_API.G_EXCEPTION_ERROR;
4720: END IF;
4721: -- Added for approximation
4722: G_TOT_INFLOW_AMT := G_TOT_INFLOW_AMT + l_hdr_inflow.cf_amount;
4723: --print( 'Header Inflows amount ' || l_hdr_inflow.cf_amount );
4749: p_end_date => l_inflow.cf_date,
4750: p_arrears => l_inflow.cf_arrear,
4751: x_return_status => lx_return_status);
4752:
4753: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4754: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4755: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4756: RAISE OKL_API.G_EXCEPTION_ERROR;
4757: END IF;
4750: p_arrears => l_inflow.cf_arrear,
4751: x_return_status => lx_return_status);
4752:
4753: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4754: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4755: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4756: RAISE OKL_API.G_EXCEPTION_ERROR;
4757: END IF;
4758:
4751: x_return_status => lx_return_status);
4752:
4753: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4754: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4755: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4756: RAISE OKL_API.G_EXCEPTION_ERROR;
4757: END IF;
4758:
4759: END IF;
4752:
4753: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4754: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4755: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4756: RAISE OKL_API.G_EXCEPTION_ERROR;
4757: END IF;
4758:
4759: END IF;
4760: -- Added for approximation
4779: p_end_date => l_asset_rv.date_terminated,
4780: p_arrears => 'Y',
4781: x_return_status => lx_return_status);
4782:
4783: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4784: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4785: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4786: RAISE OKL_API.G_EXCEPTION_ERROR;
4787: END IF;
4780: p_arrears => 'Y',
4781: x_return_status => lx_return_status);
4782:
4783: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4784: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4785: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4786: RAISE OKL_API.G_EXCEPTION_ERROR;
4787: END IF;
4788:
4781: x_return_status => lx_return_status);
4782:
4783: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4784: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4785: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4786: RAISE OKL_API.G_EXCEPTION_ERROR;
4787: END IF;
4788:
4789: Else
4782:
4783: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4784: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4785: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4786: RAISE OKL_API.G_EXCEPTION_ERROR;
4787: END IF;
4788:
4789: Else
4790: rv_tbl(p).cf_amount := l_asset_rv.cf_amount;
4796: p_end_date => l_end_date,
4797: p_arrears => 'Y',
4798: x_return_status => lx_return_status);
4799:
4800: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4801: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4802: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4803: RAISE OKL_API.G_EXCEPTION_ERROR;
4804: END IF;
4797: p_arrears => 'Y',
4798: x_return_status => lx_return_status);
4799:
4800: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4801: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4802: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4803: RAISE OKL_API.G_EXCEPTION_ERROR;
4804: END IF;
4805:
4798: x_return_status => lx_return_status);
4799:
4800: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4801: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4802: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4803: RAISE OKL_API.G_EXCEPTION_ERROR;
4804: END IF;
4805:
4806: End If;
4799:
4800: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4801: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4802: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4803: RAISE OKL_API.G_EXCEPTION_ERROR;
4804: END IF;
4805:
4806: End If;
4807:
4832: p_end_date => l_outflow.start_date,
4833: p_arrears => 'N',
4834: x_return_status => lx_return_status);
4835:
4836: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4837: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4838: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4839: RAISE OKL_API.G_EXCEPTION_ERROR;
4840: END IF;
4833: p_arrears => 'N',
4834: x_return_status => lx_return_status);
4835:
4836: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4837: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4838: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4839: RAISE OKL_API.G_EXCEPTION_ERROR;
4840: END IF;
4841:
4834: x_return_status => lx_return_status);
4835:
4836: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4837: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4838: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4839: RAISE OKL_API.G_EXCEPTION_ERROR;
4840: END IF;
4841:
4842: END IF;
4835:
4836: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4837: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4838: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4839: RAISE OKL_API.G_EXCEPTION_ERROR;
4840: END IF;
4841:
4842: END IF;
4843:
4870: p_days_in_year => l_day_convention_year,
4871: p_end_date => outflow_tbl(q).cf_date,
4872: p_arrears => 'N',
4873: x_return_status => lx_return_status);
4874: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4875: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4876: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4877: RAISE OKL_API.G_EXCEPTION_ERROR;
4878: END IF;
4871: p_end_date => outflow_tbl(q).cf_date,
4872: p_arrears => 'N',
4873: x_return_status => lx_return_status);
4874: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4875: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4876: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4877: RAISE OKL_API.G_EXCEPTION_ERROR;
4878: END IF;
4879: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4872: p_arrears => 'N',
4873: x_return_status => lx_return_status);
4874: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4875: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4876: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4877: RAISE OKL_API.G_EXCEPTION_ERROR;
4878: END IF;
4879: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4880: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || outflow_tbl(q).cf_date || '| ' || outflow_tbl(q).cf_days || ' | ' ||
4873: x_return_status => lx_return_status);
4874: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4875: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4876: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4877: RAISE OKL_API.G_EXCEPTION_ERROR;
4878: END IF;
4879: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4880: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || outflow_tbl(q).cf_date || '| ' || outflow_tbl(q).cf_days || ' | ' ||
4881: outflow_tbl(q).cf_amount ||' | ' || outflow_tbl(q).cf_dpp || ' | ' || outflow_tbl(q).cf_ppy );
4898: p_days_in_year => l_day_convention_year,
4899: p_end_date => p_start_date,
4900: p_arrears => 'N',
4901: x_return_status => lx_return_status);
4902: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4903: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4904: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4905: RAISE OKL_API.G_EXCEPTION_ERROR;
4906: END IF;
4899: p_end_date => p_start_date,
4900: p_arrears => 'N',
4901: x_return_status => lx_return_status);
4902: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4903: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4904: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4905: RAISE OKL_API.G_EXCEPTION_ERROR;
4906: END IF;
4907: outflow_tbl(q).cf_days := -1 * outflow_tbl(q).cf_days;
4900: p_arrears => 'N',
4901: x_return_status => lx_return_status);
4902: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4903: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4904: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4905: RAISE OKL_API.G_EXCEPTION_ERROR;
4906: END IF;
4907: outflow_tbl(q).cf_days := -1 * outflow_tbl(q).cf_days;
4908: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4901: x_return_status => lx_return_status);
4902: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4903: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4904: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4905: RAISE OKL_API.G_EXCEPTION_ERROR;
4906: END IF;
4907: outflow_tbl(q).cf_days := -1 * outflow_tbl(q).cf_days;
4908: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4909: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || outflow_tbl(q).cf_date || '| ' || outflow_tbl(q).cf_days || ' | ' ||
4921: x_msg_count => lx_msg_count,
4922: p_asset_cle_id => l_outflow.id,
4923: x_subsidy_amount=> l_subsidy_amount);
4924:
4925: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4926: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4927: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4928: RAISE OKL_API.G_EXCEPTION_ERROR;
4929: END IF;
4922: p_asset_cle_id => l_outflow.id,
4923: x_subsidy_amount=> l_subsidy_amount);
4924:
4925: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4926: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4927: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4928: RAISE OKL_API.G_EXCEPTION_ERROR;
4929: END IF;
4930:
4923: x_subsidy_amount=> l_subsidy_amount);
4924:
4925: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4926: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4927: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4928: RAISE OKL_API.G_EXCEPTION_ERROR;
4929: END IF;
4930:
4931: subsidies_tbl(1).cf_amount := nvl(subsidies_tbl(1).cf_amount, 0) + nvl(l_subsidy_amount,0);
4924:
4925: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4926: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4927: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4928: RAISE OKL_API.G_EXCEPTION_ERROR;
4929: END IF;
4930:
4931: subsidies_tbl(1).cf_amount := nvl(subsidies_tbl(1).cf_amount, 0) + nvl(l_subsidy_amount,0);
4932:
4946: p_end_date => p_start_date,
4947: p_arrears => 'N',
4948: x_return_status => lx_return_status);
4949:
4950: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4951: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4952: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4953: RAISE OKL_API.G_EXCEPTION_ERROR;
4954: END IF;
4947: p_arrears => 'N',
4948: x_return_status => lx_return_status);
4949:
4950: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4951: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4952: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4953: RAISE OKL_API.G_EXCEPTION_ERROR;
4954: END IF;
4955: -- Subsidies End
4948: x_return_status => lx_return_status);
4949:
4950: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4951: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4952: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4953: RAISE OKL_API.G_EXCEPTION_ERROR;
4954: END IF;
4955: -- Subsidies End
4956:
4949:
4950: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4951: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4952: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
4953: RAISE OKL_API.G_EXCEPTION_ERROR;
4954: END IF;
4955: -- Subsidies End
4956:
4957: End if;
5029: p_end_date => l_pass_th.cf_date,
5030: p_arrears => l_pass_th.cf_arrear,
5031: x_return_status => lx_return_status);
5032:
5033: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5034: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5035: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5036: RAISE OKL_API.G_EXCEPTION_ERROR;
5037: END IF;
5030: p_arrears => l_pass_th.cf_arrear,
5031: x_return_status => lx_return_status);
5032:
5033: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5034: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5035: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5036: RAISE OKL_API.G_EXCEPTION_ERROR;
5037: END IF;
5038:
5031: x_return_status => lx_return_status);
5032:
5033: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5034: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5035: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5036: RAISE OKL_API.G_EXCEPTION_ERROR;
5037: END IF;
5038:
5039: END LOOP;
5032:
5033: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5034: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5035: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5036: RAISE OKL_API.G_EXCEPTION_ERROR;
5037: END IF;
5038:
5039: END LOOP;
5040: -- print( l_prog_name, ' pass thru ' || r );
5056: p_end_date => rec_exp_tbl(s).cf_date,
5057: p_arrears => 'N',
5058: x_return_status => lx_return_status);
5059:
5060: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5061: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5062: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5063: RAISE OKL_API.G_EXCEPTION_ERROR;
5064: END IF;
5057: p_arrears => 'N',
5058: x_return_status => lx_return_status);
5059:
5060: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5061: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5062: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5063: RAISE OKL_API.G_EXCEPTION_ERROR;
5064: END IF;
5065:
5058: x_return_status => lx_return_status);
5059:
5060: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5061: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5062: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5063: RAISE OKL_API.G_EXCEPTION_ERROR;
5064: END IF;
5065:
5066: END LOOP;
5059:
5060: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5061: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5062: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5063: RAISE OKL_API.G_EXCEPTION_ERROR;
5064: END IF;
5065:
5066: END LOOP;
5067:
5101: --Commented by RGOOTY for bug 7577105
5102: /*
5103: IF l_adv_payment >= l_time_zero_cost THEN
5104:
5105: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5106: p_msg_name => 'OKL_IRR_CALC_INF_LOOP',
5107: p_token1 => 'ADV_AMOUNT',
5108: p_token1_value => l_adv_payment,
5109: p_token2 => 'CAPITAL_AMOUNT',
5108: p_token1_value => l_adv_payment,
5109: p_token2 => 'CAPITAL_AMOUNT',
5110: p_token2_value => l_time_zero_cost);
5111:
5112: RAISE OKL_API.G_EXCEPTION_ERROR;
5113:
5114: END IF; */
5115:
5116: SELECT currency_code
5195: l_periods := l_days_in_future / l_cf_dpp;
5196:
5197: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5198:
5199: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5200: p_msg_name => 'OKL_IRR_ZERO_DIV');
5201:
5202: RAISE OKL_API.G_EXCEPTION_ERROR;
5203:
5198:
5199: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5200: p_msg_name => 'OKL_IRR_ZERO_DIV');
5201:
5202: RAISE OKL_API.G_EXCEPTION_ERROR;
5203:
5204: END IF;
5205:
5206: l_npv := l_npv + (l_cf_amount / POWER((1 + l_irr/l_cf_ppy), l_periods));
5240: l_periods := l_days_in_future / l_cf_dpp;
5241:
5242: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5243:
5244: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5245: p_msg_name => 'OKL_IRR_ZERO_DIV');
5246:
5247: RAISE OKL_API.G_EXCEPTION_ERROR;
5248:
5243:
5244: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5245: p_msg_name => 'OKL_IRR_ZERO_DIV');
5246:
5247: RAISE OKL_API.G_EXCEPTION_ERROR;
5248:
5249: END IF;
5250:
5251: l_npv := l_npv + (l_cf_amount / POWER((1 + l_irr/l_cf_ppy), l_periods));
5286: l_periods := l_days_in_future / l_cf_dpp;
5287:
5288: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5289:
5290: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5291: p_msg_name => 'OKL_IRR_ZERO_DIV');
5292:
5293: RAISE OKL_API.G_EXCEPTION_ERROR;
5294:
5289:
5290: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5291: p_msg_name => 'OKL_IRR_ZERO_DIV');
5292:
5293: RAISE OKL_API.G_EXCEPTION_ERROR;
5294:
5295: END IF;
5296:
5297: l_npv := l_npv + (l_cf_amount / POWER((1 + l_irr/l_cf_ppy), l_periods));
5332: l_periods := l_days_in_future / l_cf_dpp;
5333:
5334: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5335:
5336: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5337: p_msg_name => 'OKL_IRR_ZERO_DIV');
5338:
5339: RAISE OKL_API.G_EXCEPTION_ERROR;
5340:
5335:
5336: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5337: p_msg_name => 'OKL_IRR_ZERO_DIV');
5338:
5339: RAISE OKL_API.G_EXCEPTION_ERROR;
5340:
5341: END IF;
5342:
5343: l_npv := l_npv + (l_cf_amount / POWER((1 + l_irr/l_cf_ppy), l_periods));
5377: l_periods := l_days_in_future / l_cf_dpp;
5378:
5379: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5380:
5381: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5382: p_msg_name => 'OKL_IRR_ZERO_DIV');
5383:
5384: RAISE OKL_API.G_EXCEPTION_ERROR;
5385:
5380:
5381: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5382: p_msg_name => 'OKL_IRR_ZERO_DIV');
5383:
5384: RAISE OKL_API.G_EXCEPTION_ERROR;
5385:
5386: END IF;
5387:
5388: l_npv := l_npv + (l_cf_amount / POWER((1 + l_irr/l_cf_ppy), l_periods));
5408: p_end_date => l_deposit_date,
5409: p_arrears => l_cf_arrear,
5410: x_return_status => lx_return_status);
5411:
5412: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5413: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5414: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5415: RAISE OKL_API.G_EXCEPTION_ERROR;
5416: END IF;
5409: p_arrears => l_cf_arrear,
5410: x_return_status => lx_return_status);
5411:
5412: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5413: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5414: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5415: RAISE OKL_API.G_EXCEPTION_ERROR;
5416: END IF;
5417:
5410: x_return_status => lx_return_status);
5411:
5412: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5413: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5414: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5415: RAISE OKL_API.G_EXCEPTION_ERROR;
5416: END IF;
5417:
5418: ELSE
5411:
5412: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5413: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5414: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5415: RAISE OKL_API.G_EXCEPTION_ERROR;
5416: END IF;
5417:
5418: ELSE
5419:
5423: p_end_date => l_end_date,
5424: p_arrears => l_cf_arrear,
5425: x_return_status => lx_return_status);
5426:
5427: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5428: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5429: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5430: RAISE OKL_API.G_EXCEPTION_ERROR;
5431: END IF;
5424: p_arrears => l_cf_arrear,
5425: x_return_status => lx_return_status);
5426:
5427: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5428: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5429: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5430: RAISE OKL_API.G_EXCEPTION_ERROR;
5431: END IF;
5432:
5425: x_return_status => lx_return_status);
5426:
5427: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5428: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5429: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5430: RAISE OKL_API.G_EXCEPTION_ERROR;
5431: END IF;
5432:
5433: END IF;
5426:
5427: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5428: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5429: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5430: RAISE OKL_API.G_EXCEPTION_ERROR;
5431: END IF;
5432:
5433: END IF;
5434:
5469: l_periods := l_days_in_future / l_cf_dpp;
5470:
5471: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5472:
5473: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5474: p_msg_name => 'OKL_IRR_ZERO_DIV');
5475:
5476: RAISE OKL_API.G_EXCEPTION_ERROR;
5477:
5472:
5473: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5474: p_msg_name => 'OKL_IRR_ZERO_DIV');
5475:
5476: RAISE OKL_API.G_EXCEPTION_ERROR;
5477:
5478: END IF;
5479:
5480:
5505: p_end_date => l_deposit_date,
5506: p_arrears => l_cf_arrear,
5507: x_return_status => lx_return_status);
5508:
5509: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5510: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5511: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5512: RAISE OKL_API.G_EXCEPTION_ERROR;
5513: END IF;
5506: p_arrears => l_cf_arrear,
5507: x_return_status => lx_return_status);
5508:
5509: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5510: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5511: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5512: RAISE OKL_API.G_EXCEPTION_ERROR;
5513: END IF;
5514:
5507: x_return_status => lx_return_status);
5508:
5509: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5510: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5511: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5512: RAISE OKL_API.G_EXCEPTION_ERROR;
5513: END IF;
5514:
5515: ELSE
5508:
5509: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5510: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5511: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5512: RAISE OKL_API.G_EXCEPTION_ERROR;
5513: END IF;
5514:
5515: ELSE
5516:
5520: p_end_date => l_end_date,
5521: p_arrears => l_cf_arrear,
5522: x_return_status => lx_return_status);
5523:
5524: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5525: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5526: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5527: RAISE OKL_API.G_EXCEPTION_ERROR;
5528: END IF;
5521: p_arrears => l_cf_arrear,
5522: x_return_status => lx_return_status);
5523:
5524: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5525: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5526: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5527: RAISE OKL_API.G_EXCEPTION_ERROR;
5528: END IF;
5529:
5522: x_return_status => lx_return_status);
5523:
5524: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5525: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5526: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5527: RAISE OKL_API.G_EXCEPTION_ERROR;
5528: END IF;
5529:
5530: END IF;
5523:
5524: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5525: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5526: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
5527: RAISE OKL_API.G_EXCEPTION_ERROR;
5528: END IF;
5529:
5530: END IF;
5531:
5566: l_periods := l_days_in_future / l_cf_dpp;
5567:
5568: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5569:
5570: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5571: p_msg_name => 'OKL_IRR_ZERO_DIV');
5572:
5573: RAISE OKL_API.G_EXCEPTION_ERROR;
5574:
5569:
5570: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5571: p_msg_name => 'OKL_IRR_ZERO_DIV');
5572:
5573: RAISE OKL_API.G_EXCEPTION_ERROR;
5574:
5575: END IF;
5576:
5577: l_npv := l_npv + (l_cf_amount / POWER((1 + l_irr/l_cf_ppy), l_periods));
5598: l_periods := l_days_in_future / l_cf_dpp;
5599:
5600: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
5601:
5602: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5603: p_msg_name => 'OKL_IRR_ZERO_DIV');
5604:
5605: RAISE OKL_API.G_EXCEPTION_ERROR;
5606:
5601:
5602: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5603: p_msg_name => 'OKL_IRR_ZERO_DIV');
5604:
5605: RAISE OKL_API.G_EXCEPTION_ERROR;
5606:
5607: END IF;
5608:
5609: l_npv := l_npv + (l_cf_amount / POWER((1 + l_irr/l_cf_ppy), l_periods));
5730: */
5731:
5732: IF ABS(l_irr) > l_irr_limit THEN
5733:
5734: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5735: p_msg_name => 'OKL_IRR_CALC_IRR_LIMIT',
5736: p_token1 => 'IRR_LIMIT',
5737: p_token1_value => l_irr_limit*100);
5738:
5735: p_msg_name => 'OKL_IRR_CALC_IRR_LIMIT',
5736: p_token1 => 'IRR_LIMIT',
5737: p_token1_value => l_irr_limit*100);
5738:
5739: RAISE OKL_API.G_EXCEPTION_ERROR;
5740:
5741: END IF;
5742:
5743: l_prev_incr_sign := SIGN(l_increment);
5749: -- print( l_prog_name, 'end' );
5750:
5751: EXCEPTION
5752:
5753: WHEN OKL_API.G_EXCEPTION_ERROR THEN
5754:
5755: x_return_status := G_RET_STS_ERROR;
5756:
5757: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5753: WHEN OKL_API.G_EXCEPTION_ERROR THEN
5754:
5755: x_return_status := G_RET_STS_ERROR;
5756:
5757: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5758:
5759: x_return_status := G_RET_STS_UNEXP_ERROR;
5760:
5761: WHEN OTHERS THEN
5759: x_return_status := G_RET_STS_UNEXP_ERROR;
5760:
5761: WHEN OTHERS THEN
5762:
5763: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
5764: p_msg_name => G_DB_ERROR,
5765: p_token1 => G_PROG_NAME_TOKEN,
5766: p_token1_value => l_prog_name,
5767: p_token2 => G_SQLCODE_TOKEN,
5976: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
5977: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
5978: END IF;
5979: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
5980: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5981: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
5982: RAISE OKL_API.G_EXCEPTION_ERROR;
5983: END IF;
5984:
5978: END IF;
5979: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
5980: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5981: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
5982: RAISE OKL_API.G_EXCEPTION_ERROR;
5983: END IF;
5984:
5985: OPEN c_hdr;
5986: FETCH c_hdr INTO l_hdr;
6008: p_end_date => l_rent_flow.se_date,
6009: p_arrears => l_rent_flow.se_arrears,
6010: x_return_status => lx_return_status);
6011:
6012: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6013: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6014: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6015: RAISE OKL_API.G_EXCEPTION_ERROR;
6016: END IF;
6009: p_arrears => l_rent_flow.se_arrears,
6010: x_return_status => lx_return_status);
6011:
6012: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6013: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6014: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6015: RAISE OKL_API.G_EXCEPTION_ERROR;
6016: END IF;
6017:
6010: x_return_status => lx_return_status);
6011:
6012: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6013: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6014: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6015: RAISE OKL_API.G_EXCEPTION_ERROR;
6016: END IF;
6017:
6018: asset_rents(k).se_amount := l_rent_flow.se_amount;
6011:
6012: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6013: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6014: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6015: RAISE OKL_API.G_EXCEPTION_ERROR;
6016: END IF;
6017:
6018: asset_rents(k).se_amount := l_rent_flow.se_amount;
6019: asset_rents(k).se_date := l_rent_flow.se_date;
6033: p_end_date => l_rent_sll.start_date,
6034: p_arrears => 'N',
6035: x_return_status => lx_return_status);
6036:
6037: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6038: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6039: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6040: RAISE OKL_API.G_EXCEPTION_ERROR;
6041: END IF;
6034: p_arrears => 'N',
6035: x_return_status => lx_return_status);
6036:
6037: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6038: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6039: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6040: RAISE OKL_API.G_EXCEPTION_ERROR;
6041: END IF;
6042:
6035: x_return_status => lx_return_status);
6036:
6037: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6038: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6039: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6040: RAISE OKL_API.G_EXCEPTION_ERROR;
6041: END IF;
6042:
6043: l_additional_parameters(0).name := 'TERMINATED_LINES_YN';
6036:
6037: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6038: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6039: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6040: RAISE OKL_API.G_EXCEPTION_ERROR;
6041: END IF;
6042:
6043: l_additional_parameters(0).name := 'TERMINATED_LINES_YN';
6044: l_additional_parameters(0).value := 'Y';
6059: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6060: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' cap amount ' || l_investment);
6061:
6062: END IF;
6063: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6064: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6065: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6066: RAISE OKL_API.G_EXCEPTION_ERROR;
6067: END IF;
6060: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' cap amount ' || l_investment);
6061:
6062: END IF;
6063: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6064: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6065: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6066: RAISE OKL_API.G_EXCEPTION_ERROR;
6067: END IF;
6068:
6061:
6062: END IF;
6063: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6064: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6065: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6066: RAISE OKL_API.G_EXCEPTION_ERROR;
6067: END IF;
6068:
6069: l_investment := l_investment - p_ppd_amount;
6062: END IF;
6063: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6064: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6065: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
6066: RAISE OKL_API.G_EXCEPTION_ERROR;
6067: END IF;
6068:
6069: l_investment := l_investment - p_ppd_amount;
6070:
6218:
6219: END IF;
6220: EXCEPTION
6221:
6222: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6223:
6224: x_return_status := G_RET_STS_ERROR;
6225:
6226: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6222: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6223:
6224: x_return_status := G_RET_STS_ERROR;
6225:
6226: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6227:
6228: x_return_status := G_RET_STS_UNEXP_ERROR;
6229:
6230: WHEN OTHERS THEN
6228: x_return_status := G_RET_STS_UNEXP_ERROR;
6229:
6230: WHEN OTHERS THEN
6231:
6232: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6233: p_msg_name => G_DB_ERROR,
6234: p_token1 => G_PROG_NAME_TOKEN,
6235: p_token1_value => l_prog_name,
6236: p_token2 => G_SQLCODE_TOKEN,
6242:
6243: END target_pay_down;
6244:
6245: PROCEDURE comp_so_iir(p_api_version IN NUMBER,
6246: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
6247: x_return_status OUT NOCOPY VARCHAR2,
6248: x_msg_count OUT NOCOPY NUMBER,
6249: x_msg_data OUT NOCOPY VARCHAR2,
6250: p_khr_id IN NUMBER,
6436: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6437: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'begin' );
6438:
6439: END IF;
6440: x_return_status := OKL_API.G_RET_STS_SUCCESS;
6441: -- Call start_activity to create savepoint, check compatibility
6442: -- and initialize message list
6443: x_return_status := OKL_API.START_ACTIVITY (
6444: l_api_name
6439: END IF;
6440: x_return_status := OKL_API.G_RET_STS_SUCCESS;
6441: -- Call start_activity to create savepoint, check compatibility
6442: -- and initialize message list
6443: x_return_status := OKL_API.START_ACTIVITY (
6444: l_api_name
6445: ,p_init_msg_list
6446: ,'_PVT'
6447: ,x_return_status);
6445: ,p_init_msg_list
6446: ,'_PVT'
6447: ,x_return_status);
6448: -- Check if activity started successfully
6449: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6450: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6451: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6452: RAISE OKL_API.G_EXCEPTION_ERROR;
6453: END IF;
6446: ,'_PVT'
6447: ,x_return_status);
6448: -- Check if activity started successfully
6449: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6450: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6451: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6452: RAISE OKL_API.G_EXCEPTION_ERROR;
6453: END IF;
6454: -- check if the target is correctly given
6447: ,x_return_status);
6448: -- Check if activity started successfully
6449: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6450: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6451: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6452: RAISE OKL_API.G_EXCEPTION_ERROR;
6453: END IF;
6454: -- check if the target is correctly given
6455: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6448: -- Check if activity started successfully
6449: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6450: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6451: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
6452: RAISE OKL_API.G_EXCEPTION_ERROR;
6453: END IF;
6454: -- check if the target is correctly given
6455: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6456: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'check if the target is correctly given' || ' ' || p_target );
6466: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6467: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, 'comp_so_iir Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
6468: END IF;
6469: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
6470: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6471: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
6472: RAISE OKL_API.G_EXCEPTION_ERROR;
6473: END IF;
6474:
6468: END IF;
6469: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
6470: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6471: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
6472: RAISE OKL_API.G_EXCEPTION_ERROR;
6473: END IF;
6474:
6475: IF p_target NOT IN ('RATE','PMNT') THEN
6476: OKL_API.set_message(p_app_name => G_APP_NAME,
6472: RAISE OKL_API.G_EXCEPTION_ERROR;
6473: END IF;
6474:
6475: IF p_target NOT IN ('RATE','PMNT') THEN
6476: OKL_API.set_message(p_app_name => G_APP_NAME,
6477: p_msg_name => G_INVALID_VALUE,
6478: p_token1 => G_COL_NAME_TOKEN,
6479: p_token1_value => 'Target');
6480: RAISE OKL_API.G_EXCEPTION_ERROR;
6476: OKL_API.set_message(p_app_name => G_APP_NAME,
6477: p_msg_name => G_INVALID_VALUE,
6478: p_token1 => G_COL_NAME_TOKEN,
6479: p_token1_value => 'Target');
6480: RAISE OKL_API.G_EXCEPTION_ERROR;
6481: END IF;
6482:
6483: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6484: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'check if the target is correctly given - done');
6486: END IF;
6487: OPEN get_start_date(P_khr_id => p_khr_id);
6488: FETCH get_start_date INTO l_khr_start_date;
6489: IF get_start_date%NOTFOUND THEN
6490: RAISE OKL_API.G_EXCEPTION_ERROR;
6491: END IF;
6492: CLOSE get_start_date;
6493: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6494: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'got start date');
6506: x_start_date => ld_asset_start_date);
6507: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6508: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec ' || l_cost|| x_return_status);
6509: END IF;
6510: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6511: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6512: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6513: RAISE OKL_API.G_EXCEPTION_ERROR;
6514: END IF;
6507: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6508: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec ' || l_cost|| x_return_status);
6509: END IF;
6510: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6511: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6512: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6513: RAISE OKL_API.G_EXCEPTION_ERROR;
6514: END IF;
6515: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6508: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' get_so_asset_oec ' || l_cost|| x_return_status);
6509: END IF;
6510: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6511: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6512: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6513: RAISE OKL_API.G_EXCEPTION_ERROR;
6514: END IF;
6515: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6516: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' l_time_zero '|| x_return_status);
6509: END IF;
6510: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6511: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6512: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6513: RAISE OKL_API.G_EXCEPTION_ERROR;
6514: END IF;
6515: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6516: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' l_time_zero '|| x_return_status);
6517: END IF;
6550: p_days_in_year => l_day_convention_year,
6551: p_end_date => l_inflow.cf_date,
6552: p_arrears => l_inflow.cf_arrear,
6553: x_return_status => x_return_status);
6554: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6555: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6556: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6557: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6558: END IF;
6551: p_end_date => l_inflow.cf_date,
6552: p_arrears => l_inflow.cf_arrear,
6553: x_return_status => x_return_status);
6554: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6555: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6556: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6557: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6558: END IF;
6559: IF (inflow_tbl(n).rate IS NULL OR
6552: p_arrears => l_inflow.cf_arrear,
6553: x_return_status => x_return_status);
6554: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6555: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6556: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6557: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6558: END IF;
6559: IF (inflow_tbl(n).rate IS NULL OR
6560: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
6553: x_return_status => x_return_status);
6554: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6555: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6556: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6557: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6558: END IF;
6559: IF (inflow_tbl(n).rate IS NULL OR
6560: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
6561: p_target = 'RATE' THEN
6556: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6557: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6558: END IF;
6559: IF (inflow_tbl(n).rate IS NULL OR
6560: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
6561: p_target = 'RATE' THEN
6562: OKL_API.set_message(
6563: p_app_name => G_APP_NAME,
6564: p_msg_name => G_INVALID_VALUE,
6558: END IF;
6559: IF (inflow_tbl(n).rate IS NULL OR
6560: inflow_tbl(n).rate = OKL_API.G_MISS_NUM) AND
6561: p_target = 'RATE' THEN
6562: OKL_API.set_message(
6563: p_app_name => G_APP_NAME,
6564: p_msg_name => G_INVALID_VALUE,
6565: p_token1 => G_COL_NAME_TOKEN,
6566: p_token1_value => 'Rate');
6563: p_app_name => G_APP_NAME,
6564: p_msg_name => G_INVALID_VALUE,
6565: p_token1 => G_COL_NAME_TOKEN,
6566: p_token1_value => 'Rate');
6567: x_return_status := OKL_API.G_RET_STS_ERROR;
6568: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6569: END IF;
6570: END LOOP;
6571:
6564: p_msg_name => G_INVALID_VALUE,
6565: p_token1 => G_COL_NAME_TOKEN,
6566: p_token1_value => 'Rate');
6567: x_return_status := OKL_API.G_RET_STS_ERROR;
6568: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6569: END IF;
6570: END LOOP;
6571:
6572: -- Collecting the Residual Value amount
6582: p_subside_yn => l_subside_yn,
6583: x_return_status => x_return_status,
6584: x_residual_value => rv_tbl(p).cf_amount,
6585: x_start_date => ld_res_pay_start_date);
6586: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6587: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6588: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6589: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6590: END IF;
6583: x_return_status => x_return_status,
6584: x_residual_value => rv_tbl(p).cf_amount,
6585: x_start_date => ld_res_pay_start_date);
6586: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6587: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6588: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6589: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6590: END IF;
6591: l_residual_value := rv_tbl(p).cf_amount;
6584: x_residual_value => rv_tbl(p).cf_amount,
6585: x_start_date => ld_res_pay_start_date);
6586: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6587: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6588: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6589: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6590: END IF;
6591: l_residual_value := rv_tbl(p).cf_amount;
6592: rv_tbl(p).cf_date := l_asset_rv.end_date;
6585: x_start_date => ld_res_pay_start_date);
6586: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6587: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6588: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6589: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6590: END IF;
6591: l_residual_value := rv_tbl(p).cf_amount;
6592: rv_tbl(p).cf_date := l_asset_rv.end_date;
6593: rv_tbl(p).cf_dpp := l_asset_rv.days_per_period;
6595: OKL_PRICING_PVT.get_rate(p_khr_id => p_khr_id,
6596: p_date => rv_tbl(p).cf_date,
6597: x_rate => rv_tbl(p).rate,
6598: x_return_status => x_return_status);
6599: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6600: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6601: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6602: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6603: END IF;
6596: p_date => rv_tbl(p).cf_date,
6597: x_rate => rv_tbl(p).rate,
6598: x_return_status => x_return_status);
6599: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6600: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6601: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6602: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6603: END IF;
6604: IF (rv_tbl(p).rate IS NULL OR
6597: x_rate => rv_tbl(p).rate,
6598: x_return_status => x_return_status);
6599: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6600: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6601: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6602: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6603: END IF;
6604: IF (rv_tbl(p).rate IS NULL OR
6605: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
6598: x_return_status => x_return_status);
6599: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6600: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6601: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6602: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6603: END IF;
6604: IF (rv_tbl(p).rate IS NULL OR
6605: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
6606: p_target = 'RATE' THEN
6601: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6602: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6603: END IF;
6604: IF (rv_tbl(p).rate IS NULL OR
6605: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
6606: p_target = 'RATE' THEN
6607: OKL_API.set_message(
6608: p_app_name => G_APP_NAME,
6609: p_msg_name => G_INVALID_VALUE,
6603: END IF;
6604: IF (rv_tbl(p).rate IS NULL OR
6605: rv_tbl(p).rate = OKL_API.G_MISS_NUM) AND
6606: p_target = 'RATE' THEN
6607: OKL_API.set_message(
6608: p_app_name => G_APP_NAME,
6609: p_msg_name => G_INVALID_VALUE,
6610: p_token1 => G_COL_NAME_TOKEN,
6611: p_token1_value => 'Rate');
6608: p_app_name => G_APP_NAME,
6609: p_msg_name => G_INVALID_VALUE,
6610: p_token1 => G_COL_NAME_TOKEN,
6611: p_token1_value => 'Rate');
6612: x_return_status := OKL_API.G_RET_STS_ERROR;
6613: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6614: END IF;
6615: rv_tbl(p).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
6616: p_start_date => ld_res_pay_start_date,
6609: p_msg_name => G_INVALID_VALUE,
6610: p_token1 => G_COL_NAME_TOKEN,
6611: p_token1_value => 'Rate');
6612: x_return_status := OKL_API.G_RET_STS_ERROR;
6613: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6614: END IF;
6615: rv_tbl(p).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
6616: p_start_date => ld_res_pay_start_date,
6617: p_days_in_month => l_day_convention_month,
6618: p_days_in_year => l_day_convention_year,
6619: p_end_date => rv_tbl(p).cf_date,
6620: p_arrears => 'Y',
6621: x_return_status => x_return_status);
6622: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6623: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6624: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6625: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6626: END IF;
6619: p_end_date => rv_tbl(p).cf_date,
6620: p_arrears => 'Y',
6621: x_return_status => x_return_status);
6622: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6623: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6624: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6625: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6626: END IF;
6627: END LOOP;
6620: p_arrears => 'Y',
6621: x_return_status => x_return_status);
6622: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6623: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6624: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6625: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6626: END IF;
6627: END LOOP;
6628: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6621: x_return_status => x_return_status);
6622: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6623: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR);
6624: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6625: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6626: END IF;
6627: END LOOP;
6628: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6629: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
6627: END LOOP;
6628: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6629: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
6630: END IF;
6631: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6632: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6633: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6634: RAISE OKL_API.G_EXCEPTION_ERROR;
6635: END IF;
6628: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6629: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
6630: END IF;
6631: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6632: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6633: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6634: RAISE OKL_API.G_EXCEPTION_ERROR;
6635: END IF;
6636: -- Collecting the Outflow amounts of asset
6629: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || 'after residual values #' || p|| x_return_status);
6630: END IF;
6631: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6632: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6633: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6634: RAISE OKL_API.G_EXCEPTION_ERROR;
6635: END IF;
6636: -- Collecting the Outflow amounts of asset
6637: -- Since we are summing up to the so_payment line
6630: END IF;
6631: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6632: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6633: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6634: RAISE OKL_API.G_EXCEPTION_ERROR;
6635: END IF;
6636: -- Collecting the Outflow amounts of asset
6637: -- Since we are summing up to the so_payment line
6638: -- We would have one asset cost
6644: p_subside_yn => l_subside_yn,
6645: x_return_status => x_return_status,
6646: x_asset_oec => outflow_tbl(q).cf_amount,
6647: x_start_date => ld_asset_start_date);
6648: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6649: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6650: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6651: RAISE OKL_API.G_EXCEPTION_ERROR;
6652: END IF;
6645: x_return_status => x_return_status,
6646: x_asset_oec => outflow_tbl(q).cf_amount,
6647: x_start_date => ld_asset_start_date);
6648: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6649: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6650: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6651: RAISE OKL_API.G_EXCEPTION_ERROR;
6652: END IF;
6653: outflow_tbl(q).cf_amount := -(outflow_tbl(q).cf_amount);
6646: x_asset_oec => outflow_tbl(q).cf_amount,
6647: x_start_date => ld_asset_start_date);
6648: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6649: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6650: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6651: RAISE OKL_API.G_EXCEPTION_ERROR;
6652: END IF;
6653: outflow_tbl(q).cf_amount := -(outflow_tbl(q).cf_amount);
6654: outflow_tbl(q).cf_date := ld_asset_start_date;
6647: x_start_date => ld_asset_start_date);
6648: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6649: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6650: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6651: RAISE OKL_API.G_EXCEPTION_ERROR;
6652: END IF;
6653: outflow_tbl(q).cf_amount := -(outflow_tbl(q).cf_amount);
6654: outflow_tbl(q).cf_date := ld_asset_start_date;
6655: outflow_tbl(q).cf_dpp := 1;
6657: OKL_PRICING_PVT.get_rate(p_khr_id => p_khr_id,
6658: p_date => outflow_tbl(q).cf_date,
6659: x_rate => outflow_tbl(q).rate,
6660: x_return_status => x_return_status);
6661: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6662: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6663: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6664: RAISE OKL_API.G_EXCEPTION_ERROR;
6665: END IF;
6658: p_date => outflow_tbl(q).cf_date,
6659: x_rate => outflow_tbl(q).rate,
6660: x_return_status => x_return_status);
6661: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6662: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6663: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6664: RAISE OKL_API.G_EXCEPTION_ERROR;
6665: END IF;
6666: IF (outflow_tbl(q).rate IS NULL OR
6659: x_rate => outflow_tbl(q).rate,
6660: x_return_status => x_return_status);
6661: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6662: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6663: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6664: RAISE OKL_API.G_EXCEPTION_ERROR;
6665: END IF;
6666: IF (outflow_tbl(q).rate IS NULL OR
6667: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
6660: x_return_status => x_return_status);
6661: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6662: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6663: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6664: RAISE OKL_API.G_EXCEPTION_ERROR;
6665: END IF;
6666: IF (outflow_tbl(q).rate IS NULL OR
6667: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
6668: p_target = 'RATE' THEN
6663: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6664: RAISE OKL_API.G_EXCEPTION_ERROR;
6665: END IF;
6666: IF (outflow_tbl(q).rate IS NULL OR
6667: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
6668: p_target = 'RATE' THEN
6669: OKL_API.set_message(
6670: p_app_name => G_APP_NAME,
6671: p_msg_name => G_INVALID_VALUE,
6665: END IF;
6666: IF (outflow_tbl(q).rate IS NULL OR
6667: outflow_tbl(q).rate = OKL_API.G_MISS_NUM) AND
6668: p_target = 'RATE' THEN
6669: OKL_API.set_message(
6670: p_app_name => G_APP_NAME,
6671: p_msg_name => G_INVALID_VALUE,
6672: p_token1 => G_COL_NAME_TOKEN,
6673: p_token1_value => 'Rate');
6670: p_app_name => G_APP_NAME,
6671: p_msg_name => G_INVALID_VALUE,
6672: p_token1 => G_COL_NAME_TOKEN,
6673: p_token1_value => 'Rate');
6674: x_return_status := OKL_API.G_RET_STS_ERROR;
6675: RAISE OKL_API.G_EXCEPTION_ERROR;
6676: END IF;
6677: outflow_tbl(q).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
6678: p_start_date => ld_asset_start_date,
6671: p_msg_name => G_INVALID_VALUE,
6672: p_token1 => G_COL_NAME_TOKEN,
6673: p_token1_value => 'Rate');
6674: x_return_status := OKL_API.G_RET_STS_ERROR;
6675: RAISE OKL_API.G_EXCEPTION_ERROR;
6676: END IF;
6677: outflow_tbl(q).cf_days := OKL_PRICING_UTILS_PVT.get_day_count(
6678: p_start_date => ld_asset_start_date,
6679: p_days_in_month => l_day_convention_month,
6680: p_days_in_year => l_day_convention_year,
6681: p_end_date => ld_asset_start_date,
6682: p_arrears => 'N',
6683: x_return_status => x_return_status);
6684: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6685: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6686: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6687: RAISE OKL_API.G_EXCEPTION_ERROR;
6688: END IF;
6681: p_end_date => ld_asset_start_date,
6682: p_arrears => 'N',
6683: x_return_status => x_return_status);
6684: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6685: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6686: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6687: RAISE OKL_API.G_EXCEPTION_ERROR;
6688: END IF;
6689: END IF;
6682: p_arrears => 'N',
6683: x_return_status => x_return_status);
6684: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6685: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6686: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6687: RAISE OKL_API.G_EXCEPTION_ERROR;
6688: END IF;
6689: END IF;
6690:
6683: x_return_status => x_return_status);
6684: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6685: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6686: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6687: RAISE OKL_API.G_EXCEPTION_ERROR;
6688: END IF;
6689: END IF;
6690:
6691: -- Validating Sum of all the inflow do not exceed the Total Time zero cost
6703: END IF;
6704: END LOOP;
6705: END IF;
6706: IF l_adv_payment >= l_time_zero_cost THEN
6707: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6708: p_msg_name => 'OKL_IRR_CALC_INF_LOOP',
6709: p_token1 => 'ADV_AMOUNT',
6710: p_token1_value => l_adv_payment,
6711: p_token2 => 'CAPITAL_AMOUNT',
6709: p_token1 => 'ADV_AMOUNT',
6710: p_token1_value => l_adv_payment,
6711: p_token2 => 'CAPITAL_AMOUNT',
6712: p_token2_value => l_time_zero_cost);
6713: RAISE OKL_API.G_EXCEPTION_ERROR;
6714: END IF;
6715: -- To get the Currency code and Precision
6716: OPEN get_curr_code_pre(p_khr_id => p_khr_id);
6717: FETCH get_curr_code_pre INTO l_precision;
6715: -- To get the Currency code and Precision
6716: OPEN get_curr_code_pre(p_khr_id => p_khr_id);
6717: FETCH get_curr_code_pre INTO l_precision;
6718: IF get_curr_code_pre%NOTFOUND THEN
6719: OKL_API.set_message(p_app_name => G_APP_NAME,
6720: p_msg_name => G_REQUIRED_VALUE,
6721: p_token1 => G_COL_NAME_TOKEN,
6722: p_token1_value => 'Currency Code ');
6723: RAISE OKL_API.G_EXCEPTION_ERROR;
6719: OKL_API.set_message(p_app_name => G_APP_NAME,
6720: p_msg_name => G_REQUIRED_VALUE,
6721: p_token1 => G_COL_NAME_TOKEN,
6722: p_token1_value => 'Currency Code ');
6723: RAISE OKL_API.G_EXCEPTION_ERROR;
6724: END IF;
6725: CLOSE get_curr_code_pre;
6726:
6727: -- Setting the IRR limit
6750: l_cf_date := rv_tbl(z).cf_date;
6751: l_days_in_future := rv_tbl(z).cf_days;
6752: l_periods := l_days_in_future / l_cf_dpp;
6753: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
6754: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6755: p_msg_name => 'OKL_IRR_ZERO_DIV');
6756: x_return_status := OKL_API.G_RET_STS_ERROR;
6757: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6758: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide rvs '|| x_return_status);
6752: l_periods := l_days_in_future / l_cf_dpp;
6753: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
6754: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6755: p_msg_name => 'OKL_IRR_ZERO_DIV');
6756: x_return_status := OKL_API.G_RET_STS_ERROR;
6757: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6758: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide rvs '|| x_return_status);
6759: END IF;
6760: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6756: x_return_status := OKL_API.G_RET_STS_ERROR;
6757: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6758: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide rvs '|| x_return_status);
6759: END IF;
6760: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6761: END IF;
6762: IF p_target = 'RATE' THEN
6763: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + rv_tbl(z).rate/(l_cf_ppy*100)), l_periods));
6764: ELSIF p_target = 'PMNT' THEN
6783: ELSIF inflow_tbl(y).miss_amt = 'N' THEN
6784: l_cf_amount := inflow_tbl(y).cf_amount;
6785: l_cf_date := inflow_tbl(y).cf_date;
6786: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
6787: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6788: p_msg_name => 'OKL_IRR_ZERO_DIV');
6789: x_return_status := OKL_API.G_RET_STS_ERROR;
6790: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6791: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
6785: l_cf_date := inflow_tbl(y).cf_date;
6786: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
6787: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6788: p_msg_name => 'OKL_IRR_ZERO_DIV');
6789: x_return_status := OKL_API.G_RET_STS_ERROR;
6790: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6791: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
6792: END IF;
6793: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6789: x_return_status := OKL_API.G_RET_STS_ERROR;
6790: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6791: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
6792: END IF;
6793: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6794: END IF;
6795: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + inflow_tbl(y).rate/(l_cf_ppy*100)), l_periods));
6796: END IF;
6797: END LOOP;
6798:
6799: If (l_term <> 0 ) Then
6800: l_payment_inflow := (-1 * l_npv_pay ) / l_term;
6801: else
6802: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6803: p_msg_name => 'OKL_IRR_ZERO_DIV');
6804: x_return_status := OKL_API.G_RET_STS_ERROR;
6805: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6806: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
6800: l_payment_inflow := (-1 * l_npv_pay ) / l_term;
6801: else
6802: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6803: p_msg_name => 'OKL_IRR_ZERO_DIV');
6804: x_return_status := OKL_API.G_RET_STS_ERROR;
6805: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6806: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
6807: END IF;
6808: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6804: x_return_status := OKL_API.G_RET_STS_ERROR;
6805: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6806: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
6807: END IF;
6808: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6809: end if;
6810:
6811: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6812: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' l_npv_pay ' || l_npv_pay );
6828: l_cf_date := inflow_tbl(y).cf_date;
6829: l_days_in_future := inflow_tbl(y).cf_days;
6830: l_periods := l_days_in_future / l_cf_dpp;
6831: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
6832: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6833: p_msg_name => 'OKL_IRR_ZERO_DIV');
6834: x_return_status := OKL_API.G_RET_STS_ERROR;
6835: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6836: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
6830: l_periods := l_days_in_future / l_cf_dpp;
6831: IF (l_periods < 1) AND (l_irr/l_cf_ppy <= -1) THEN
6832: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6833: p_msg_name => 'OKL_IRR_ZERO_DIV');
6834: x_return_status := OKL_API.G_RET_STS_ERROR;
6835: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6836: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
6837: END IF;
6838: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6834: x_return_status := OKL_API.G_RET_STS_ERROR;
6835: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6836: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' ZERO divide indlows '|| x_return_status);
6837: END IF;
6838: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6839: END IF;
6840: IF p_target = 'RATE' THEN
6841: l_npv_pay := l_npv_pay + (l_cf_amount / POWER((1 + inflow_tbl(y).rate/(l_cf_ppy*100)), l_periods));
6842: ELSIF p_target = 'PMNT' THEN
6921: END IF;
6922: END IF;
6923: l_irr := l_irr + l_increment_rate;
6924: IF ABS(l_irr) > l_irr_limit THEN
6925: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6926: p_msg_name => 'OKL_IRR_CALC_IRR_LIMIT',
6927: p_token1 => 'IRR_LIMIT',
6928: p_token1_value => l_irr_limit*100);
6929: x_return_status := OKL_API.G_RET_STS_ERROR;
6925: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
6926: p_msg_name => 'OKL_IRR_CALC_IRR_LIMIT',
6927: p_token1 => 'IRR_LIMIT',
6928: p_token1_value => l_irr_limit*100);
6929: x_return_status := OKL_API.G_RET_STS_ERROR;
6930: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6931: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' 100000% '|| x_return_status);
6932: END IF;
6933: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6929: x_return_status := OKL_API.G_RET_STS_ERROR;
6930: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
6931: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_api_name || ' 100000% '|| x_return_status);
6932: END IF;
6933: EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
6934: END IF;
6935: l_prev_incr_sign_rate := SIGN(l_increment_rate);
6936: l_prev_npv_sign_rate := SIGN(l_npv_rate);
6937: l_prev_npv_rate := l_npv_rate;
6936: l_prev_npv_sign_rate := SIGN(l_npv_rate);
6937: l_prev_npv_rate := l_npv_rate;
6938: END IF;
6939: END LOOP;
6940: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6941: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6942: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6943: RAISE OKL_API.G_EXCEPTION_ERROR;
6944: END IF;
6937: l_prev_npv_rate := l_npv_rate;
6938: END IF;
6939: END LOOP;
6940: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6941: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6942: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6943: RAISE OKL_API.G_EXCEPTION_ERROR;
6944: END IF;
6945: OKL_API.END_ACTIVITY (x_msg_count,
6938: END IF;
6939: END LOOP;
6940: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6941: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6942: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6943: RAISE OKL_API.G_EXCEPTION_ERROR;
6944: END IF;
6945: OKL_API.END_ACTIVITY (x_msg_count,
6946: x_msg_data );
6939: END LOOP;
6940: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
6941: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6942: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6943: RAISE OKL_API.G_EXCEPTION_ERROR;
6944: END IF;
6945: OKL_API.END_ACTIVITY (x_msg_count,
6946: x_msg_data );
6947: EXCEPTION
6941: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6942: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
6943: RAISE OKL_API.G_EXCEPTION_ERROR;
6944: END IF;
6945: OKL_API.END_ACTIVITY (x_msg_count,
6946: x_msg_data );
6947: EXCEPTION
6948: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6949: IF get_curr_code_pre%ISOPEN THEN
6944: END IF;
6945: OKL_API.END_ACTIVITY (x_msg_count,
6946: x_msg_data );
6947: EXCEPTION
6948: WHEN OKL_API.G_EXCEPTION_ERROR THEN
6949: IF get_curr_code_pre%ISOPEN THEN
6950: CLOSE get_curr_code_pre;
6951: END IF;
6952: IF c_asset_rvs%ISOPEN THEN
6957: END IF;
6958: IF get_start_date%ISOPEN THEN
6959: CLOSE get_start_date;
6960: END IF;
6961: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6962: l_api_name,
6963: G_PKG_NAME,
6964: 'OKL_API.G_RET_STS_ERROR',
6965: x_msg_count,
6960: END IF;
6961: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6962: l_api_name,
6963: G_PKG_NAME,
6964: 'OKL_API.G_RET_STS_ERROR',
6965: x_msg_count,
6966: x_msg_data,
6967: '_PVT');
6968: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6964: 'OKL_API.G_RET_STS_ERROR',
6965: x_msg_count,
6966: x_msg_data,
6967: '_PVT');
6968: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6969: IF get_curr_code_pre%ISOPEN THEN
6970: CLOSE get_curr_code_pre;
6971: END IF;
6972: IF c_asset_rvs%ISOPEN THEN
6977: END IF;
6978: IF get_start_date%ISOPEN THEN
6979: CLOSE get_start_date;
6980: END IF;
6981: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
6982: l_api_name,
6983: G_PKG_NAME,
6984: 'OKL_API.G_RET_STS_UNEXP_ERROR',
6985: x_msg_count,
6980: END IF;
6981: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
6982: l_api_name,
6983: G_PKG_NAME,
6984: 'OKL_API.G_RET_STS_UNEXP_ERROR',
6985: x_msg_count,
6986: x_msg_data,
6987: '_PVT');
6988: WHEN OTHERS THEN
6997: END IF;
6998: IF get_start_date%ISOPEN THEN
6999: CLOSE get_start_date;
7000: END IF;
7001: x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
7002: l_api_name,
7003: G_PKG_NAME,
7004: 'OTHERS',
7005: x_msg_count,
7241:
7242: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7243: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'validate payments ' || x_return_status );
7244: END IF;
7245: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7246: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7247: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7248: RAISE OKL_API.G_EXCEPTION_ERROR;
7249: END IF;
7242: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7243: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'validate payments ' || x_return_status );
7244: END IF;
7245: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7246: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7247: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7248: RAISE OKL_API.G_EXCEPTION_ERROR;
7249: END IF;
7250: -- Bug 4626837: Start
7243: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'validate payments ' || x_return_status );
7244: END IF;
7245: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7246: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7247: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7248: RAISE OKL_API.G_EXCEPTION_ERROR;
7249: END IF;
7250: -- Bug 4626837: Start
7251: --Fetch the Stream Type ID based on the purpose instead of the name
7244: END IF;
7245: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7246: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7247: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7248: RAISE OKL_API.G_EXCEPTION_ERROR;
7249: END IF;
7250: -- Bug 4626837: Start
7251: --Fetch the Stream Type ID based on the purpose instead of the name
7252: OKL_ISG_UTILS_PVT.get_primary_stream_type(
7256: x_return_status => x_return_status,
7257: x_primary_sty_id => l_rent_strm_id,
7258: x_primary_sty_name => l_rent_strm_name);
7259: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
7260: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7261: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
7262: RAISE OKL_API.G_EXCEPTION_ERROR;
7263: END IF;
7264: -- Bug 4626837: End
7258: x_primary_sty_name => l_rent_strm_name);
7259: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
7260: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7261: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
7262: RAISE OKL_API.G_EXCEPTION_ERROR;
7263: END IF;
7264: -- Bug 4626837: End
7265: OKL_STREAM_GENERATOR_PVT.generate_cash_flows(
7266: p_api_version => p_api_version,
7277: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7278: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'generate_cash_flows ' || x_return_status );
7279:
7280: END IF;
7281: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7282: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7283: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7284: RAISE OKL_API.G_EXCEPTION_ERROR;
7285: END IF;
7278: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'generate_cash_flows ' || x_return_status );
7279:
7280: END IF;
7281: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7282: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7283: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7284: RAISE OKL_API.G_EXCEPTION_ERROR;
7285: END IF;
7286:
7279:
7280: END IF;
7281: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7282: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7283: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7284: RAISE OKL_API.G_EXCEPTION_ERROR;
7285: END IF;
7286:
7287:
7280: END IF;
7281: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7282: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7283: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7284: RAISE OKL_API.G_EXCEPTION_ERROR;
7285: END IF;
7286:
7287:
7288: OPEN c_subs;
7303:
7304: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7305: 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);
7306: END IF;
7307: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7308: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7309: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7310: RAISE OKL_API.G_EXCEPTION_ERROR;
7311: END IF;
7304: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7305: 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);
7306: END IF;
7307: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7308: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7309: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7310: RAISE OKL_API.G_EXCEPTION_ERROR;
7311: END IF;
7312:
7305: 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);
7306: END IF;
7307: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7308: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7309: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7310: RAISE OKL_API.G_EXCEPTION_ERROR;
7311: END IF;
7312:
7313: Okl_la_stream_pvt.get_so_residual_value(p_khr_id,
7306: END IF;
7307: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7308: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7309: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7310: RAISE OKL_API.G_EXCEPTION_ERROR;
7311: END IF;
7312:
7313: Okl_la_stream_pvt.get_so_residual_value(p_khr_id,
7314: p_kle_id,
7319:
7320: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7321: 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);
7322: END IF;
7323: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7324: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7325: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7326: RAISE OKL_API.G_EXCEPTION_ERROR;
7327: END IF;
7320: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7321: 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);
7322: END IF;
7323: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7324: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7325: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7326: RAISE OKL_API.G_EXCEPTION_ERROR;
7327: END IF;
7328:
7321: 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);
7322: END IF;
7323: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7324: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7325: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7326: RAISE OKL_API.G_EXCEPTION_ERROR;
7327: END IF;
7328:
7329: If ( p_rate_type = 'PRE_TAX_IRR' ) Then
7322: END IF;
7323: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7324: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7325: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7326: RAISE OKL_API.G_EXCEPTION_ERROR;
7327: END IF;
7328:
7329: If ( p_rate_type = 'PRE_TAX_IRR' ) Then
7330:
7384: x_msg_count => x_msg_count,
7385: x_msg_data => x_msg_data);
7386:
7387:
7388: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7389: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7390: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7391: RAISE OKL_API.G_EXCEPTION_ERROR;
7392: END IF;
7385: x_msg_data => x_msg_data);
7386:
7387:
7388: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7389: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7390: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7391: RAISE OKL_API.G_EXCEPTION_ERROR;
7392: END IF;
7393:
7386:
7387:
7388: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7389: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7390: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7391: RAISE OKL_API.G_EXCEPTION_ERROR;
7392: END IF;
7393:
7394: End If;
7387:
7388: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7389: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7390: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7391: RAISE OKL_API.G_EXCEPTION_ERROR;
7392: END IF;
7393:
7394: End If;
7395:
7435: x_msg_count => x_msg_count,
7436: x_msg_data => x_msg_data);
7437:
7438:
7439: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7440: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7441: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7442: RAISE OKL_API.G_EXCEPTION_ERROR;
7443: END IF;
7436: x_msg_data => x_msg_data);
7437:
7438:
7439: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7440: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7441: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7442: RAISE OKL_API.G_EXCEPTION_ERROR;
7443: END IF;
7444:
7437:
7438:
7439: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7440: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7441: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7442: RAISE OKL_API.G_EXCEPTION_ERROR;
7443: END IF;
7444:
7445: End If;
7438:
7439: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7440: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7441: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7442: RAISE OKL_API.G_EXCEPTION_ERROR;
7443: END IF;
7444:
7445: End If;
7446:
7475:
7476: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7477: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || x_return_status );
7478: END IF;
7479: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7480: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7481: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7482: RAISE OKL_API.G_EXCEPTION_ERROR;
7483: END IF;
7476: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7477: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || x_return_status );
7478: END IF;
7479: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7480: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7481: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7482: RAISE OKL_API.G_EXCEPTION_ERROR;
7483: END IF;
7484:
7477: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || x_return_status );
7478: END IF;
7479: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7480: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7481: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7482: RAISE OKL_API.G_EXCEPTION_ERROR;
7483: END IF;
7484:
7485: ElsIf ( p_rate_type = 'IMPL_INTEREST_RATE' ) Then
7478: END IF;
7479: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7480: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7481: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7482: RAISE OKL_API.G_EXCEPTION_ERROR;
7483: END IF;
7484:
7485: ElsIf ( p_rate_type = 'IMPL_INTEREST_RATE' ) Then
7486:
7504:
7505: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7506: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
7507: END IF;
7508: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7509: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7510: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7511: RAISE OKL_API.G_EXCEPTION_ERROR;
7512: END IF;
7505: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7506: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
7507: END IF;
7508: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7509: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7510: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7511: RAISE OKL_API.G_EXCEPTION_ERROR;
7512: END IF;
7513:
7506: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
7507: END IF;
7508: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7509: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7510: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7511: RAISE OKL_API.G_EXCEPTION_ERROR;
7512: END IF;
7513:
7514: ElsIf ( p_rate_type = 'PRE_TAX_YIELD' ) Then
7507: END IF;
7508: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7509: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7510: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7511: RAISE OKL_API.G_EXCEPTION_ERROR;
7512: END IF;
7513:
7514: ElsIf ( p_rate_type = 'PRE_TAX_YIELD' ) Then
7515: -- Same as Booking Yield whenever there is no interim cost. for SO there are no interim cost
7534:
7535: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7536: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
7537: END IF;
7538: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7539: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7540: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7541: RAISE OKL_API.G_EXCEPTION_ERROR;
7542: END IF;
7535: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7536: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
7537: END IF;
7538: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7539: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7540: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7541: RAISE OKL_API.G_EXCEPTION_ERROR;
7542: END IF;
7543:
7536: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
7537: END IF;
7538: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7539: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7540: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7541: RAISE OKL_API.G_EXCEPTION_ERROR;
7542: END IF;
7543:
7544: Else
7537: END IF;
7538: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
7539: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7540: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
7541: RAISE OKL_API.G_EXCEPTION_ERROR;
7542: END IF;
7543:
7544: Else
7545:
7542: END IF;
7543:
7544: Else
7545:
7546: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7547: p_msg_name => 'OKL_INVALID_RATE_TYPE',
7548: p_token1 => 'RATE_TYPE',
7549: p_token1_value => p_rate_type);
7550:
7547: p_msg_name => 'OKL_INVALID_RATE_TYPE',
7548: p_token1 => 'RATE_TYPE',
7549: p_token1_value => p_rate_type);
7550:
7551: x_return_status := OKL_API.G_RET_STS_ERROR;
7552: RAISE OKL_API.G_EXCEPTION_ERROR;
7553:
7554: End If;
7555:
7548: p_token1 => 'RATE_TYPE',
7549: p_token1_value => p_rate_type);
7550:
7551: x_return_status := OKL_API.G_RET_STS_ERROR;
7552: RAISE OKL_API.G_EXCEPTION_ERROR;
7553:
7554: End If;
7555:
7556: If (p_target_param = 'RATE') AND (l_payment < 0 ) THen
7554: End If;
7555:
7556: If (p_target_param = 'RATE') AND (l_payment < 0 ) THen
7557:
7558: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7559: p_msg_name => 'OKL_LLAP_CANNOT_PRICE');
7560: x_return_status := OKL_API.G_RET_STS_ERROR;
7561: RAISE OKL_API.G_EXCEPTION_ERROR;
7562:
7556: If (p_target_param = 'RATE') AND (l_payment < 0 ) THen
7557:
7558: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7559: p_msg_name => 'OKL_LLAP_CANNOT_PRICE');
7560: x_return_status := OKL_API.G_RET_STS_ERROR;
7561: RAISE OKL_API.G_EXCEPTION_ERROR;
7562:
7563: End If;
7564:
7557:
7558: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
7559: p_msg_name => 'OKL_LLAP_CANNOT_PRICE');
7560: x_return_status := OKL_API.G_RET_STS_ERROR;
7561: RAISE OKL_API.G_EXCEPTION_ERROR;
7562:
7563: End If;
7564:
7565: FOR i in l_pay_tbl.FIRST..l_pay_tbl.LAST
7607: x_msg_count => x_msg_count,
7608: x_msg_data => x_msg_data,
7609: p_stmv_tbl => l_stmv_tbl);
7610:
7611: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7612: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7613: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7614: RAISE OKL_API.G_EXCEPTION_ERROR;
7615: END IF;
7608: x_msg_data => x_msg_data,
7609: p_stmv_tbl => l_stmv_tbl);
7610:
7611: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7612: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7613: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7614: RAISE OKL_API.G_EXCEPTION_ERROR;
7615: END IF;
7616:
7609: p_stmv_tbl => l_stmv_tbl);
7610:
7611: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7612: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7613: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7614: RAISE OKL_API.G_EXCEPTION_ERROR;
7615: END IF;
7616:
7617: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7610:
7611: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7612: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7613: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7614: RAISE OKL_API.G_EXCEPTION_ERROR;
7615: END IF;
7616:
7617: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7618: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' DONE '|| x_return_status);
7625:
7626: END IF;
7627: EXCEPTION
7628:
7629: WHEN OKL_API.G_EXCEPTION_ERROR THEN
7630:
7631: i := 0;
7632: FOR l_strms_rec in l_strms_csr
7633: LOOP
7646: x_msg_count => x_msg_count,
7647: x_msg_data => x_msg_data,
7648: p_stmv_tbl => l_stmv_tbl);
7649:
7650: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7651: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7652: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7653: RAISE OKL_API.G_EXCEPTION_ERROR;
7654: END IF;
7647: x_msg_data => x_msg_data,
7648: p_stmv_tbl => l_stmv_tbl);
7649:
7650: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7651: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7652: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7653: RAISE OKL_API.G_EXCEPTION_ERROR;
7654: END IF;
7655:
7648: p_stmv_tbl => l_stmv_tbl);
7649:
7650: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7651: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7652: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7653: RAISE OKL_API.G_EXCEPTION_ERROR;
7654: END IF;
7655:
7656: End If;
7649:
7650: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7651: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7652: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7653: RAISE OKL_API.G_EXCEPTION_ERROR;
7654: END IF;
7655:
7656: End If;
7657: x_return_status := G_RET_STS_ERROR;
7654: END IF;
7655:
7656: End If;
7657: x_return_status := G_RET_STS_ERROR;
7658: RAISE OKL_API.G_EXCEPTION_ERROR;
7659:
7660: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
7661:
7662: i := 0;
7656: End If;
7657: x_return_status := G_RET_STS_ERROR;
7658: RAISE OKL_API.G_EXCEPTION_ERROR;
7659:
7660: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
7661:
7662: i := 0;
7663: FOR l_strms_rec in l_strms_csr
7664: LOOP
7677: x_msg_count => x_msg_count,
7678: x_msg_data => x_msg_data,
7679: p_stmv_tbl => l_stmv_tbl);
7680:
7681: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7682: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7683: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7684: RAISE OKL_API.G_EXCEPTION_ERROR;
7685: END IF;
7678: x_msg_data => x_msg_data,
7679: p_stmv_tbl => l_stmv_tbl);
7680:
7681: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7682: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7683: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7684: RAISE OKL_API.G_EXCEPTION_ERROR;
7685: END IF;
7686:
7679: p_stmv_tbl => l_stmv_tbl);
7680:
7681: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7682: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7683: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7684: RAISE OKL_API.G_EXCEPTION_ERROR;
7685: END IF;
7686:
7687: End If;
7680:
7681: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7682: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7683: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7684: RAISE OKL_API.G_EXCEPTION_ERROR;
7685: END IF;
7686:
7687: End If;
7688: x_return_status := G_RET_STS_UNEXP_ERROR;
7685: END IF;
7686:
7687: End If;
7688: x_return_status := G_RET_STS_UNEXP_ERROR;
7689: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7690:
7691: WHEN OTHERS THEN
7692:
7693: i := 0;
7708: x_msg_count => x_msg_count,
7709: x_msg_data => x_msg_data,
7710: p_stmv_tbl => l_stmv_tbl);
7711:
7712: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7713: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7714: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7715: RAISE OKL_API.G_EXCEPTION_ERROR;
7716: END IF;
7709: x_msg_data => x_msg_data,
7710: p_stmv_tbl => l_stmv_tbl);
7711:
7712: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7713: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7714: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7715: RAISE OKL_API.G_EXCEPTION_ERROR;
7716: END IF;
7717:
7710: p_stmv_tbl => l_stmv_tbl);
7711:
7712: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7713: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7714: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7715: RAISE OKL_API.G_EXCEPTION_ERROR;
7716: END IF;
7717:
7718: End If;
7711:
7712: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7713: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7714: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7715: RAISE OKL_API.G_EXCEPTION_ERROR;
7716: END IF;
7717:
7718: End If;
7719: x_return_status := G_RET_STS_UNEXP_ERROR;
7716: END IF;
7717:
7718: End If;
7719: x_return_status := G_RET_STS_UNEXP_ERROR;
7720: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7721:
7722: End target_parameter;
7723:
7724: ---------------------------------------------------------------------------
7952: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7953: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
7954: END IF;
7955: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
7956: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7957: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
7958: RAISE OKL_API.G_EXCEPTION_ERROR;
7959: END IF;
7960:
7954: END IF;
7955: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
7956: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7957: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
7958: RAISE OKL_API.G_EXCEPTION_ERROR;
7959: END IF;
7960:
7961: OPEN l_hdr_csr;
7962: FETCH l_hdr_csr INTO l_hdr_rec;
8011: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8012: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' l_principal_balance ' || l_principal_balance
8013: || ' l_accumulated_int '||l_accumulated_int|| x_return_status);
8014: END IF;
8015: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8016: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8017: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8018: RAISE OKL_API.G_EXCEPTION_ERROR;
8019: END IF;
8012: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' l_principal_balance ' || l_principal_balance
8013: || ' l_accumulated_int '||l_accumulated_int|| x_return_status);
8014: END IF;
8015: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8016: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8017: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8018: RAISE OKL_API.G_EXCEPTION_ERROR;
8019: END IF;
8020:
8013: || ' l_accumulated_int '||l_accumulated_int|| x_return_status);
8014: END IF;
8015: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8016: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8017: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8018: RAISE OKL_API.G_EXCEPTION_ERROR;
8019: END IF;
8020:
8021: l_npv := l_npv - NVL(l_principal_balance, 0);
8014: END IF;
8015: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8016: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8017: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8018: RAISE OKL_API.G_EXCEPTION_ERROR;
8019: END IF;
8020:
8021: l_npv := l_npv - NVL(l_principal_balance, 0);
8022:
8026: p_end_date => p_pay_start_date,
8027: p_arrears => 'N',
8028: x_return_status => lx_return_status);
8029:
8030: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8031: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8032: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8033: RAISE OKL_API.G_EXCEPTION_ERROR;
8034: END IF;
8027: p_arrears => 'N',
8028: x_return_status => lx_return_status);
8029:
8030: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8031: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8032: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8033: RAISE OKL_API.G_EXCEPTION_ERROR;
8034: END IF;
8035:
8028: x_return_status => lx_return_status);
8029:
8030: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8031: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8032: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8033: RAISE OKL_API.G_EXCEPTION_ERROR;
8034: END IF;
8035:
8036: l_periods := l_days_in_future / l_dpp;
8029:
8030: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8031: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8032: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8033: RAISE OKL_API.G_EXCEPTION_ERROR;
8034: END IF;
8035:
8036: l_periods := l_days_in_future / l_dpp;
8037: l_npv := l_npv + l_accumulated_int / POWER((1 + l_iir/l_ppy), l_periods);
8056: x_return_status => x_return_status,
8057: x_msg_count => x_msg_count,
8058: x_msg_data => x_msg_data);
8059:
8060: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8061: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8062: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
8063: RAISE OKL_API.G_EXCEPTION_ERROR;
8064: END IF; */
8057: x_msg_count => x_msg_count,
8058: x_msg_data => x_msg_data);
8059:
8060: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8061: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8062: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
8063: RAISE OKL_API.G_EXCEPTION_ERROR;
8064: END IF; */
8065: -- end djanaswa
8058: x_msg_data => x_msg_data);
8059:
8060: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8061: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8062: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
8063: RAISE OKL_API.G_EXCEPTION_ERROR;
8064: END IF; */
8065: -- end djanaswa
8066:
8059:
8060: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8061: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8062: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
8063: RAISE OKL_API.G_EXCEPTION_ERROR;
8064: END IF; */
8065: -- end djanaswa
8066:
8067:
8078: p_end_date => lx_selv_tbl(i).stream_element_date,
8079: p_arrears => p_arrears_yn,
8080: x_return_status => lx_return_status);
8081:
8082: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8083: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8084: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8085: RAISE OKL_API.G_EXCEPTION_ERROR;
8086: END IF;
8079: p_arrears => p_arrears_yn,
8080: x_return_status => lx_return_status);
8081:
8082: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8083: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8084: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8085: RAISE OKL_API.G_EXCEPTION_ERROR;
8086: END IF;
8087:
8080: x_return_status => lx_return_status);
8081:
8082: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8083: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8084: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8085: RAISE OKL_API.G_EXCEPTION_ERROR;
8086: END IF;
8087:
8088: l_periods := l_days_in_future / l_dpp;
8081:
8082: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8083: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8084: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8085: RAISE OKL_API.G_EXCEPTION_ERROR;
8086: END IF;
8087:
8088: l_periods := l_days_in_future / l_dpp;
8089: l_term := l_term + 1 / POWER((1 + l_iir/l_ppy), l_periods);
8106:
8107: END IF;
8108: EXCEPTION
8109:
8110: WHEN OKL_API.G_EXCEPTION_ERROR THEN
8111:
8112: x_return_status := G_RET_STS_ERROR;
8113:
8114: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8110: WHEN OKL_API.G_EXCEPTION_ERROR THEN
8111:
8112: x_return_status := G_RET_STS_ERROR;
8113:
8114: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8115:
8116: x_return_status := G_RET_STS_UNEXP_ERROR;
8117:
8118: WHEN OTHERS THEN
8116: x_return_status := G_RET_STS_UNEXP_ERROR;
8117:
8118: WHEN OTHERS THEN
8119:
8120: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
8121: p_msg_name => G_DB_ERROR,
8122: p_token1 => G_PROG_NAME_TOKEN,
8123: p_token1_value => l_prog_name,
8124: p_token2 => G_SQLCODE_TOKEN,
8557: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8558: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
8559: END IF;
8560: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
8561: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8562: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
8563: RAISE OKL_API.G_EXCEPTION_ERROR;
8564: END IF;
8565: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8559: END IF;
8560: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
8561: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8562: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
8563: RAISE OKL_API.G_EXCEPTION_ERROR;
8564: END IF;
8565: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8566: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' Computing IIR on the date ' || p_start_Date );
8567: END IF;
8612: p_end_date => l_hdr_inflow.cf_date,
8613: p_arrears => l_hdr_inflow.cf_arrear,
8614: x_return_status => lx_return_status);
8615:
8616: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8617: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8618: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8619: RAISE OKL_API.G_EXCEPTION_ERROR;
8620: END IF;
8613: p_arrears => l_hdr_inflow.cf_arrear,
8614: x_return_status => lx_return_status);
8615:
8616: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8617: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8618: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8619: RAISE OKL_API.G_EXCEPTION_ERROR;
8620: END IF;
8621: END LOOP;
8614: x_return_status => lx_return_status);
8615:
8616: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8617: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8618: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8619: RAISE OKL_API.G_EXCEPTION_ERROR;
8620: END IF;
8621: END LOOP;
8622: -- Third
8615:
8616: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8617: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8618: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8619: RAISE OKL_API.G_EXCEPTION_ERROR;
8620: END IF;
8621: END LOOP;
8622: -- Third
8623: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8637: p_end_date => l_inflow.cf_date,
8638: p_arrears => l_inflow.cf_arrear,
8639: x_return_status => lx_return_status);
8640:
8641: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8642: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8643: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8644: RAISE OKL_API.G_EXCEPTION_ERROR;
8645: END IF;
8638: p_arrears => l_inflow.cf_arrear,
8639: x_return_status => lx_return_status);
8640:
8641: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8642: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8643: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8644: RAISE OKL_API.G_EXCEPTION_ERROR;
8645: END IF;
8646: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8639: x_return_status => lx_return_status);
8640:
8641: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8642: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8643: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8644: RAISE OKL_API.G_EXCEPTION_ERROR;
8645: END IF;
8646: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8647: 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 ||' | ' ||
8640:
8641: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8642: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8643: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8644: RAISE OKL_API.G_EXCEPTION_ERROR;
8645: END IF;
8646: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8647: 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 ||' | ' ||
8648: inflow_tbl(n).cf_dpp || ' | ' || inflow_tbl(n).cf_ppy );
8673: p_end_date => l_fee_inflow.cf_date,
8674: p_arrears => l_fee_inflow.cf_arrear,
8675: x_return_status => lx_return_status);
8676:
8677: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8678: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8679: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8680: RAISE OKL_API.G_EXCEPTION_ERROR;
8681: END IF;
8674: p_arrears => l_fee_inflow.cf_arrear,
8675: x_return_status => lx_return_status);
8676:
8677: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8678: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8679: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8680: RAISE OKL_API.G_EXCEPTION_ERROR;
8681: END IF;
8682:
8675: x_return_status => lx_return_status);
8676:
8677: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8678: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8679: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8680: RAISE OKL_API.G_EXCEPTION_ERROR;
8681: END IF;
8682:
8683: END IF;
8676:
8677: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8678: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8679: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8680: RAISE OKL_API.G_EXCEPTION_ERROR;
8681: END IF;
8682:
8683: END IF;
8684: -- Added for approximation
8703: p_days_in_year => l_day_convention_year,
8704: p_end_date => l_asset_rv.date_terminated,
8705: p_arrears => 'Y',
8706: x_return_status => lx_return_status);
8707: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8708: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8709: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8710: RAISE OKL_API.G_EXCEPTION_ERROR;
8711: END IF;
8704: p_end_date => l_asset_rv.date_terminated,
8705: p_arrears => 'Y',
8706: x_return_status => lx_return_status);
8707: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8708: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8709: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8710: RAISE OKL_API.G_EXCEPTION_ERROR;
8711: END IF;
8712: ELSE
8705: p_arrears => 'Y',
8706: x_return_status => lx_return_status);
8707: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8708: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8709: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8710: RAISE OKL_API.G_EXCEPTION_ERROR;
8711: END IF;
8712: ELSE
8713: rv_tbl(p).cf_amount := l_asset_rv.cf_amount;
8706: x_return_status => lx_return_status);
8707: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8708: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8709: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8710: RAISE OKL_API.G_EXCEPTION_ERROR;
8711: END IF;
8712: ELSE
8713: rv_tbl(p).cf_amount := l_asset_rv.cf_amount;
8714: rv_tbl(p).cf_date := l_end_date;
8719: p_end_date => l_end_date,
8720: p_arrears => 'Y',
8721: x_return_status => lx_return_status);
8722:
8723: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8724: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8725: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8726: RAISE OKL_API.G_EXCEPTION_ERROR;
8727: END IF;
8720: p_arrears => 'Y',
8721: x_return_status => lx_return_status);
8722:
8723: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8724: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8725: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8726: RAISE OKL_API.G_EXCEPTION_ERROR;
8727: END IF;
8728:
8721: x_return_status => lx_return_status);
8722:
8723: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8724: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8725: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8726: RAISE OKL_API.G_EXCEPTION_ERROR;
8727: END IF;
8728:
8729: END IF;
8722:
8723: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8724: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8725: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8726: RAISE OKL_API.G_EXCEPTION_ERROR;
8727: END IF;
8728:
8729: END IF;
8730: rv_tbl(p).cf_dpp := l_asset_rv.days_per_period;
8761: p_end_date => l_outflow.start_date,
8762: p_arrears => 'N',
8763: x_return_status => lx_return_status);
8764:
8765: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8766: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8767: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8768: RAISE OKL_API.G_EXCEPTION_ERROR;
8769: END IF;
8762: p_arrears => 'N',
8763: x_return_status => lx_return_status);
8764:
8765: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8766: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8767: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8768: RAISE OKL_API.G_EXCEPTION_ERROR;
8769: END IF;
8770:
8763: x_return_status => lx_return_status);
8764:
8765: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8766: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8767: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8768: RAISE OKL_API.G_EXCEPTION_ERROR;
8769: END IF;
8770:
8771: END IF;
8764:
8765: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8766: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8767: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8768: RAISE OKL_API.G_EXCEPTION_ERROR;
8769: END IF;
8770:
8771: END IF;
8772:
8799: p_days_in_year => l_day_convention_year,
8800: p_end_date => outflow_tbl(q).cf_date,
8801: p_arrears => 'N',
8802: x_return_status => lx_return_status);
8803: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8804: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8805: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8806: RAISE OKL_API.G_EXCEPTION_ERROR;
8807: END IF;
8800: p_end_date => outflow_tbl(q).cf_date,
8801: p_arrears => 'N',
8802: x_return_status => lx_return_status);
8803: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8804: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8805: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8806: RAISE OKL_API.G_EXCEPTION_ERROR;
8807: END IF;
8808: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8801: p_arrears => 'N',
8802: x_return_status => lx_return_status);
8803: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8804: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8805: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8806: RAISE OKL_API.G_EXCEPTION_ERROR;
8807: END IF;
8808: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8809: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || outflow_tbl(q).cf_date || '| ' || outflow_tbl(q).cf_days || ' | ' ||
8802: x_return_status => lx_return_status);
8803: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8804: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8805: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8806: RAISE OKL_API.G_EXCEPTION_ERROR;
8807: END IF;
8808: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8809: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || outflow_tbl(q).cf_date || '| ' || outflow_tbl(q).cf_days || ' | ' ||
8810: outflow_tbl(q).cf_amount ||' | ' || outflow_tbl(q).cf_dpp || ' | ' || outflow_tbl(q).cf_ppy );
8827: p_days_in_year => l_day_convention_year,
8828: p_end_date => p_start_date,
8829: p_arrears => 'N',
8830: x_return_status => lx_return_status);
8831: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8832: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8833: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8834: RAISE OKL_API.G_EXCEPTION_ERROR;
8835: END IF;
8828: p_end_date => p_start_date,
8829: p_arrears => 'N',
8830: x_return_status => lx_return_status);
8831: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8832: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8833: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8834: RAISE OKL_API.G_EXCEPTION_ERROR;
8835: END IF;
8836: outflow_tbl(q).cf_days := -1 * outflow_tbl(q).cf_days;
8829: p_arrears => 'N',
8830: x_return_status => lx_return_status);
8831: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8832: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8833: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8834: RAISE OKL_API.G_EXCEPTION_ERROR;
8835: END IF;
8836: outflow_tbl(q).cf_days := -1 * outflow_tbl(q).cf_days;
8837: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8830: x_return_status => lx_return_status);
8831: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8832: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8833: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8834: RAISE OKL_API.G_EXCEPTION_ERROR;
8835: END IF;
8836: outflow_tbl(q).cf_days := -1 * outflow_tbl(q).cf_days;
8837: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8838: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || outflow_tbl(q).cf_date || '| ' || outflow_tbl(q).cf_days || ' | ' ||
8850: x_msg_count => lx_msg_count,
8851: p_asset_cle_id => l_outflow.id,
8852: x_subsidy_amount=> l_subsidy_amount);
8853:
8854: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8855: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8856: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8857: RAISE OKL_API.G_EXCEPTION_ERROR;
8858: END IF;
8851: p_asset_cle_id => l_outflow.id,
8852: x_subsidy_amount=> l_subsidy_amount);
8853:
8854: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8855: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8856: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8857: RAISE OKL_API.G_EXCEPTION_ERROR;
8858: END IF;
8859:
8852: x_subsidy_amount=> l_subsidy_amount);
8853:
8854: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8855: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8856: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8857: RAISE OKL_API.G_EXCEPTION_ERROR;
8858: END IF;
8859:
8860: subsidies_tbl(1).cf_amount := nvl(subsidies_tbl(1).cf_amount, 0) + nvl(l_subsidy_amount,0);
8853:
8854: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8855: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8856: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8857: RAISE OKL_API.G_EXCEPTION_ERROR;
8858: END IF;
8859:
8860: subsidies_tbl(1).cf_amount := nvl(subsidies_tbl(1).cf_amount, 0) + nvl(l_subsidy_amount,0);
8861:
8876: p_end_date => p_start_date,
8877: p_arrears => 'N',
8878: x_return_status => lx_return_status);
8879:
8880: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8881: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8882: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8883: RAISE OKL_API.G_EXCEPTION_ERROR;
8884: END IF;
8877: p_arrears => 'N',
8878: x_return_status => lx_return_status);
8879:
8880: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8881: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8882: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8883: RAISE OKL_API.G_EXCEPTION_ERROR;
8884: END IF;
8885: -- Subsidies End
8878: x_return_status => lx_return_status);
8879:
8880: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8881: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8882: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8883: RAISE OKL_API.G_EXCEPTION_ERROR;
8884: END IF;
8885: -- Subsidies End
8886:
8879:
8880: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8881: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8882: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8883: RAISE OKL_API.G_EXCEPTION_ERROR;
8884: END IF;
8885: -- Subsidies End
8886:
8887: End if;
8906: p_end_date => rec_exp_tbl(s).cf_date,
8907: p_arrears => 'N',
8908: x_return_status => lx_return_status);
8909:
8910: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8911: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8912: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8913: RAISE OKL_API.G_EXCEPTION_ERROR;
8914: END IF;
8907: p_arrears => 'N',
8908: x_return_status => lx_return_status);
8909:
8910: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8911: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8912: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8913: RAISE OKL_API.G_EXCEPTION_ERROR;
8914: END IF;
8915:
8908: x_return_status => lx_return_status);
8909:
8910: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8911: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8912: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8913: RAISE OKL_API.G_EXCEPTION_ERROR;
8914: END IF;
8915:
8916: END LOOP;
8909:
8910: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
8911: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8912: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
8913: RAISE OKL_API.G_EXCEPTION_ERROR;
8914: END IF;
8915:
8916: END LOOP;
8917:
8942: --Commented by RGOOTY for bug 7577105
8943: /*
8944: IF l_adv_payment >= l_time_zero_cost THEN
8945:
8946: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
8947: p_msg_name => 'OKL_IRR_CALC_INF_LOOP',
8948: p_token1 => 'ADV_AMOUNT',
8949: p_token1_value => l_adv_payment,
8950: p_token2 => 'CAPITAL_AMOUNT',
8949: p_token1_value => l_adv_payment,
8950: p_token2 => 'CAPITAL_AMOUNT',
8951: p_token2_value => l_time_zero_cost);
8952:
8953: RAISE OKL_API.G_EXCEPTION_ERROR;
8954:
8955: END IF; */
8956:
8957: SELECT currency_code
9014: l_periods := l_days_in_future / l_cf_dpp;
9015:
9016: IF (l_periods < 1) AND (l_iir/l_cf_ppy <= -1) THEN
9017:
9018: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9019: p_msg_name => 'OKL_IRR_ZERO_DIV');
9020:
9021: RAISE OKL_API.G_EXCEPTION_ERROR;
9022:
9017:
9018: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9019: p_msg_name => 'OKL_IRR_ZERO_DIV');
9020:
9021: RAISE OKL_API.G_EXCEPTION_ERROR;
9022:
9023: END IF;
9024:
9025: l_npv := l_npv + (l_cf_amount / POWER((1 + l_iir/l_cf_ppy), l_periods));
9058: l_periods := l_days_in_future / l_cf_dpp;
9059:
9060: IF (l_periods < 1) AND (l_iir/l_cf_ppy <= -1) THEN
9061:
9062: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9063: p_msg_name => 'OKL_IRR_ZERO_DIV');
9064:
9065: RAISE OKL_API.G_EXCEPTION_ERROR;
9066:
9061:
9062: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9063: p_msg_name => 'OKL_IRR_ZERO_DIV');
9064:
9065: RAISE OKL_API.G_EXCEPTION_ERROR;
9066:
9067: END IF;
9068:
9069: l_npv := l_npv + (l_cf_amount / POWER((1 + l_iir/l_cf_ppy), l_periods));
9089: p_end_date => l_deposit_date,
9090: p_arrears => l_cf_arrear,
9091: x_return_status => lx_return_status);
9092:
9093: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9094: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9095: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9096: RAISE OKL_API.G_EXCEPTION_ERROR;
9097: END IF;
9090: p_arrears => l_cf_arrear,
9091: x_return_status => lx_return_status);
9092:
9093: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9094: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9095: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9096: RAISE OKL_API.G_EXCEPTION_ERROR;
9097: END IF;
9098:
9091: x_return_status => lx_return_status);
9092:
9093: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9094: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9095: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9096: RAISE OKL_API.G_EXCEPTION_ERROR;
9097: END IF;
9098:
9099: ELSE
9092:
9093: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9094: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9095: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9096: RAISE OKL_API.G_EXCEPTION_ERROR;
9097: END IF;
9098:
9099: ELSE
9100:
9104: p_end_date => l_end_date,
9105: p_arrears => l_cf_arrear,
9106: x_return_status => lx_return_status);
9107:
9108: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9109: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9110: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9111: RAISE OKL_API.G_EXCEPTION_ERROR;
9112: END IF;
9105: p_arrears => l_cf_arrear,
9106: x_return_status => lx_return_status);
9107:
9108: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9109: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9110: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9111: RAISE OKL_API.G_EXCEPTION_ERROR;
9112: END IF;
9113:
9106: x_return_status => lx_return_status);
9107:
9108: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9109: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9110: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9111: RAISE OKL_API.G_EXCEPTION_ERROR;
9112: END IF;
9113:
9114: END IF;
9107:
9108: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9109: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9110: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9111: RAISE OKL_API.G_EXCEPTION_ERROR;
9112: END IF;
9113:
9114: END IF;
9115:
9149: l_periods := l_days_in_future / l_cf_dpp;
9150:
9151: IF (l_periods < 1) AND (l_iir/l_cf_ppy <= -1) THEN
9152:
9153: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9154: p_msg_name => 'OKL_IRR_ZERO_DIV');
9155:
9156: RAISE OKL_API.G_EXCEPTION_ERROR;
9157:
9152:
9153: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9154: p_msg_name => 'OKL_IRR_ZERO_DIV');
9155:
9156: RAISE OKL_API.G_EXCEPTION_ERROR;
9157:
9158: END IF;
9159:
9160: l_npv := l_npv + (l_cf_amount / POWER((1 + l_iir/l_cf_ppy), l_periods));
9178: p_end_date => l_deposit_date,
9179: p_arrears => l_cf_arrear,
9180: x_return_status => lx_return_status);
9181:
9182: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9183: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9184: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9185: RAISE OKL_API.G_EXCEPTION_ERROR;
9186: END IF;
9179: p_arrears => l_cf_arrear,
9180: x_return_status => lx_return_status);
9181:
9182: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9183: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9184: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9185: RAISE OKL_API.G_EXCEPTION_ERROR;
9186: END IF;
9187:
9180: x_return_status => lx_return_status);
9181:
9182: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9183: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9184: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9185: RAISE OKL_API.G_EXCEPTION_ERROR;
9186: END IF;
9187:
9188: ELSE
9181:
9182: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9183: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9184: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9185: RAISE OKL_API.G_EXCEPTION_ERROR;
9186: END IF;
9187:
9188: ELSE
9189:
9193: p_end_date => l_end_date,
9194: p_arrears => l_cf_arrear,
9195: x_return_status => lx_return_status);
9196:
9197: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9198: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9199: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9200: RAISE OKL_API.G_EXCEPTION_ERROR;
9201: END IF;
9194: p_arrears => l_cf_arrear,
9195: x_return_status => lx_return_status);
9196:
9197: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9198: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9199: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9200: RAISE OKL_API.G_EXCEPTION_ERROR;
9201: END IF;
9202:
9195: x_return_status => lx_return_status);
9196:
9197: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9198: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9199: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9200: RAISE OKL_API.G_EXCEPTION_ERROR;
9201: END IF;
9202:
9203: END IF;
9196:
9197: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9198: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9199: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
9200: RAISE OKL_API.G_EXCEPTION_ERROR;
9201: END IF;
9202:
9203: END IF;
9204:
9237: l_periods := l_days_in_future / l_cf_dpp;
9238:
9239: IF (l_periods < 1) AND (l_iir/l_cf_ppy <= -1) THEN
9240:
9241: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9242: p_msg_name => 'OKL_IRR_ZERO_DIV');
9243:
9244: RAISE OKL_API.G_EXCEPTION_ERROR;
9245:
9240:
9241: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9242: p_msg_name => 'OKL_IRR_ZERO_DIV');
9243:
9244: RAISE OKL_API.G_EXCEPTION_ERROR;
9245:
9246: END IF;
9247:
9248: l_npv := l_npv + (l_cf_amount / POWER((1 + l_iir/l_cf_ppy), l_periods));
9268: l_periods := l_days_in_future / l_cf_dpp;
9269:
9270: IF (l_periods < 1) AND (l_iir/l_cf_ppy <= -1) THEN
9271:
9272: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9273: p_msg_name => 'OKL_IRR_ZERO_DIV');
9274:
9275: RAISE OKL_API.G_EXCEPTION_ERROR;
9276:
9271:
9272: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9273: p_msg_name => 'OKL_IRR_ZERO_DIV');
9274:
9275: RAISE OKL_API.G_EXCEPTION_ERROR;
9276:
9277: END IF;
9278:
9279: l_npv := l_npv + (l_cf_amount / POWER((1 + l_iir/l_cf_ppy), l_periods));
9300: l_days_in_future := outflow_tbl(q).cf_days;
9301: l_periods := l_days_in_future / l_cf_dpp;
9302: IF (l_periods < 1) AND (l_iir/l_cf_ppy <= -1)
9303: THEN
9304: OKL_API.SET_MESSAGE (
9305: p_app_name => G_APP_NAME,
9306: p_msg_name => 'OKL_IRR_ZERO_DIV');
9307: RAISE OKL_API.G_EXCEPTION_ERROR;
9308: END IF;
9303: THEN
9304: OKL_API.SET_MESSAGE (
9305: p_app_name => G_APP_NAME,
9306: p_msg_name => 'OKL_IRR_ZERO_DIV');
9307: RAISE OKL_API.G_EXCEPTION_ERROR;
9308: END IF;
9309: l_npv := l_npv + (l_cf_amount / POWER((1 + l_iir/l_cf_ppy), l_periods));
9310: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9311: 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')||' '||
9337: l_periods := l_days_in_future / l_cf_dpp;
9338:
9339: IF (l_periods < 1) AND (l_iir/l_cf_ppy <= -1) THEN
9340:
9341: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9342: p_msg_name => 'OKL_IRR_ZERO_DIV');
9343:
9344: RAISE OKL_API.G_EXCEPTION_ERROR;
9345:
9340:
9341: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9342: p_msg_name => 'OKL_IRR_ZERO_DIV');
9343:
9344: RAISE OKL_API.G_EXCEPTION_ERROR;
9345:
9346: END IF;
9347:
9348: l_npv := l_npv + (l_cf_amount / POWER((1 + l_iir/l_cf_ppy), l_periods));
9474:
9475: END IF;
9476: IF ABS(l_iir) > l_iir_limit THEN
9477:
9478: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9479: p_msg_name => 'OKL_IIR_CALC_IIR_LIMIT',
9480: p_token1 => 'IIR_LIMIT',
9481: p_token1_value => l_iir_limit*100);
9482:
9479: p_msg_name => 'OKL_IIR_CALC_IIR_LIMIT',
9480: p_token1 => 'IIR_LIMIT',
9481: p_token1_value => l_iir_limit*100);
9482:
9483: RAISE OKL_API.G_EXCEPTION_ERROR;
9484:
9485: END IF;
9486:
9487: l_prev_incr_sign := SIGN(l_increment);
9494:
9495: END IF;
9496: EXCEPTION
9497:
9498: WHEN OKL_API.G_EXCEPTION_ERROR THEN
9499:
9500: x_return_status := G_RET_STS_ERROR;
9501:
9502: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9498: WHEN OKL_API.G_EXCEPTION_ERROR THEN
9499:
9500: x_return_status := G_RET_STS_ERROR;
9501:
9502: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9503:
9504: x_return_status := G_RET_STS_UNEXP_ERROR;
9505:
9506: WHEN OTHERS THEN
9504: x_return_status := G_RET_STS_UNEXP_ERROR;
9505:
9506: WHEN OTHERS THEN
9507:
9508: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
9509: p_msg_name => G_DB_ERROR,
9510: p_token1 => G_PROG_NAME_TOKEN,
9511: p_token1_value => l_prog_name,
9512: p_token2 => G_SQLCODE_TOKEN,
9758: END IF;
9759: For i in p_pay_tbl.FIRST..p_pay_tbl.LAST
9760: LOOP
9761: IF ( (p_pay_tbl(i).amount IS NULL) AND (p_pay_tbl(i).stub_amount IS NULL ) ) Then
9762: OKL_API.set_message(p_app_name => G_APP_NAME,
9763: p_msg_name => 'OKL_PE_MISSING_PMNT');
9764: RAISE OKL_API.G_EXCEPTION_ERROR;
9765: End If;
9766: END LOOP;
9760: LOOP
9761: IF ( (p_pay_tbl(i).amount IS NULL) AND (p_pay_tbl(i).stub_amount IS NULL ) ) Then
9762: OKL_API.set_message(p_app_name => G_APP_NAME,
9763: p_msg_name => 'OKL_PE_MISSING_PMNT');
9764: RAISE OKL_API.G_EXCEPTION_ERROR;
9765: End If;
9766: END LOOP;
9767:
9768: For i in p_pay_tbl.FIRST..p_pay_tbl.LAST
9791: x_return_status => x_return_status,
9792: x_primary_sty_id => l_rent_strm_id,
9793: x_primary_sty_name => l_rent_strm_name);
9794: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
9795: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9796: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
9797: RAISE OKL_API.G_EXCEPTION_ERROR;
9798: END IF;
9799: -- Bug 4626837 : End
9793: x_primary_sty_name => l_rent_strm_name);
9794: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
9795: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9796: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
9797: RAISE OKL_API.G_EXCEPTION_ERROR;
9798: END IF;
9799: -- Bug 4626837 : End
9800: OKL_STREAM_GENERATOR_PVT.generate_cash_flows(
9801: p_api_version => p_api_version,
9812: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9813: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'generate_cash_flows ' || x_return_status );
9814:
9815: END IF;
9816: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9817: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9818: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9819: RAISE OKL_API.G_EXCEPTION_ERROR;
9820: END IF;
9813: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'generate_cash_flows ' || x_return_status );
9814:
9815: END IF;
9816: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9817: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9818: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9819: RAISE OKL_API.G_EXCEPTION_ERROR;
9820: END IF;
9821:
9814:
9815: END IF;
9816: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9817: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9818: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9819: RAISE OKL_API.G_EXCEPTION_ERROR;
9820: END IF;
9821:
9822: OPEN c_subs;
9815: END IF;
9816: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9817: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9818: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9819: RAISE OKL_API.G_EXCEPTION_ERROR;
9820: END IF;
9821:
9822: OPEN c_subs;
9823: FETCH c_subs INTO l_subsidies_yn;
9834:
9835: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9836: 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);
9837: END IF;
9838: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9839: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9840: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9841: RAISE OKL_API.G_EXCEPTION_ERROR;
9842: END IF;
9835: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9836: 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);
9837: END IF;
9838: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9839: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9840: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9841: RAISE OKL_API.G_EXCEPTION_ERROR;
9842: END IF;
9843:
9836: 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);
9837: END IF;
9838: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9839: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9840: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9841: RAISE OKL_API.G_EXCEPTION_ERROR;
9842: END IF;
9843:
9844: Okl_la_stream_pvt.get_so_residual_value(p_khr_id,
9837: END IF;
9838: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9839: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9840: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9841: RAISE OKL_API.G_EXCEPTION_ERROR;
9842: END IF;
9843:
9844: Okl_la_stream_pvt.get_so_residual_value(p_khr_id,
9845: p_kle_id,
9850:
9851: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9852: 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);
9853: END IF;
9854: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9855: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9856: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9857: RAISE OKL_API.G_EXCEPTION_ERROR;
9858: END IF;
9851: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9852: 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);
9853: END IF;
9854: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9855: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9856: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9857: RAISE OKL_API.G_EXCEPTION_ERROR;
9858: END IF;
9859:
9852: 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);
9853: END IF;
9854: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9855: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9856: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9857: RAISE OKL_API.G_EXCEPTION_ERROR;
9858: END IF;
9859:
9860: --If ( p_rate_type = 'PRE_TAX_IRR' ) Then calcualte pre_tax_irr
9853: END IF;
9854: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9855: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9856: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9857: RAISE OKL_API.G_EXCEPTION_ERROR;
9858: END IF;
9859:
9860: --If ( p_rate_type = 'PRE_TAX_IRR' ) Then calcualte pre_tax_irr
9861:
9906: x_msg_count => x_msg_count,
9907: x_msg_data => x_msg_data);
9908:
9909:
9910: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9911: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9912: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9913: RAISE OKL_API.G_EXCEPTION_ERROR;
9914: END IF;
9907: x_msg_data => x_msg_data);
9908:
9909:
9910: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9911: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9912: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9913: RAISE OKL_API.G_EXCEPTION_ERROR;
9914: END IF;
9915:
9908:
9909:
9910: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9911: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9912: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9913: RAISE OKL_API.G_EXCEPTION_ERROR;
9914: END IF;
9915:
9916: End If;
9909:
9910: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9911: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9912: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9913: RAISE OKL_API.G_EXCEPTION_ERROR;
9914: END IF;
9915:
9916: End If;
9917:
9952: x_msg_count => x_msg_count,
9953: x_msg_data => x_msg_data);
9954:
9955:
9956: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9957: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9958: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9959: RAISE OKL_API.G_EXCEPTION_ERROR;
9960: END IF;
9953: x_msg_data => x_msg_data);
9954:
9955:
9956: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9957: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9958: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9959: RAISE OKL_API.G_EXCEPTION_ERROR;
9960: END IF;
9961:
9954:
9955:
9956: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9957: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9958: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9959: RAISE OKL_API.G_EXCEPTION_ERROR;
9960: END IF;
9961:
9962: End If;
9955:
9956: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9957: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9958: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9959: RAISE OKL_API.G_EXCEPTION_ERROR;
9960: END IF;
9961:
9962: End If;
9963:
9991:
9992: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9993: 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);
9994: END IF;
9995: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9996: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9997: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9998: RAISE OKL_API.G_EXCEPTION_ERROR;
9999: END IF;
9992: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9993: 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);
9994: END IF;
9995: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9996: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9997: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9998: RAISE OKL_API.G_EXCEPTION_ERROR;
9999: END IF;
10000:
9993: 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);
9994: END IF;
9995: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9996: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9997: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9998: RAISE OKL_API.G_EXCEPTION_ERROR;
9999: END IF;
10000:
10001: l_rates.PRE_TAX_IRR := l_rate * 100.00;
9994: END IF;
9995: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9996: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9997: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
9998: RAISE OKL_API.G_EXCEPTION_ERROR;
9999: END IF;
10000:
10001: l_rates.PRE_TAX_IRR := l_rate * 100.00;
10002:
10018:
10019: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10020: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || x_return_status );
10021: END IF;
10022: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10023: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10024: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10025: RAISE OKL_API.G_EXCEPTION_ERROR;
10026: END IF;
10019: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10020: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || x_return_status );
10021: END IF;
10022: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10023: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10024: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10025: RAISE OKL_API.G_EXCEPTION_ERROR;
10026: END IF;
10027:
10020: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_pre_tax_irr ' || x_return_status );
10021: END IF;
10022: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10023: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10024: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10025: RAISE OKL_API.G_EXCEPTION_ERROR;
10026: END IF;
10027:
10028: l_rates.SUB_PRE_TAX_IRR := l_rate * 100.00;
10021: END IF;
10022: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10023: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10024: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10025: RAISE OKL_API.G_EXCEPTION_ERROR;
10026: END IF;
10027:
10028: l_rates.SUB_PRE_TAX_IRR := l_rate * 100.00;
10029:
10053:
10054: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10055: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10056: END IF;
10057: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10058: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10059: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10060: RAISE OKL_API.G_EXCEPTION_ERROR;
10061: END IF;
10054: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10055: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10056: END IF;
10057: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10058: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10059: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10060: RAISE OKL_API.G_EXCEPTION_ERROR;
10061: END IF;
10062:
10055: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10056: END IF;
10057: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10058: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10059: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10060: RAISE OKL_API.G_EXCEPTION_ERROR;
10061: END IF;
10062:
10063: l_rates.SUB_IMPL_INTEREST_RATE := l_rate * 100.00;
10056: END IF;
10057: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10058: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10059: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10060: RAISE OKL_API.G_EXCEPTION_ERROR;
10061: END IF;
10062:
10063: l_rates.SUB_IMPL_INTEREST_RATE := l_rate * 100.00;
10064:
10084:
10085: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10086: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10087: END IF;
10088: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10089: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10090: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10091: RAISE OKL_API.G_EXCEPTION_ERROR;
10092: END IF;
10085: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10086: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10087: END IF;
10088: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10089: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10090: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10091: RAISE OKL_API.G_EXCEPTION_ERROR;
10092: END IF;
10093:
10086: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10087: END IF;
10088: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10089: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10090: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10091: RAISE OKL_API.G_EXCEPTION_ERROR;
10092: END IF;
10093:
10094:
10087: END IF;
10088: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10089: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10090: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10091: RAISE OKL_API.G_EXCEPTION_ERROR;
10092: END IF;
10093:
10094:
10095: l_rates.IMPLICIT_INTEREST_RATE := l_rate * 100.00;
10120:
10121: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10122: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10123: END IF;
10124: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10125: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10126: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10127: RAISE OKL_API.G_EXCEPTION_ERROR;
10128: END IF;
10121: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10122: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10123: END IF;
10124: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10125: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10126: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10127: RAISE OKL_API.G_EXCEPTION_ERROR;
10128: END IF;
10129:
10122: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10123: END IF;
10124: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10125: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10126: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10127: RAISE OKL_API.G_EXCEPTION_ERROR;
10128: END IF;
10129:
10130: l_rates.PRE_TAX_YIELD := l_rate * 100.00;
10123: END IF;
10124: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10125: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10126: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10127: RAISE OKL_API.G_EXCEPTION_ERROR;
10128: END IF;
10129:
10130: l_rates.PRE_TAX_YIELD := l_rate * 100.00;
10131:
10154:
10155: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10156: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10157: END IF;
10158: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10159: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10160: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10161: RAISE OKL_API.G_EXCEPTION_ERROR;
10162: END IF;
10155: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10156: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10157: END IF;
10158: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10159: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10160: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10161: RAISE OKL_API.G_EXCEPTION_ERROR;
10162: END IF;
10163:
10156: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'comp_so_iir ' || x_return_status );
10157: END IF;
10158: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10159: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10160: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10161: RAISE OKL_API.G_EXCEPTION_ERROR;
10162: END IF;
10163:
10164: l_rates.SUB_PRE_TAX_YIELD := l_rate * 100.00;
10157: END IF;
10158: IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10159: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10160: ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
10161: RAISE OKL_API.G_EXCEPTION_ERROR;
10162: END IF;
10163:
10164: l_rates.SUB_PRE_TAX_YIELD := l_rate * 100.00;
10165:
10191: x_msg_count => x_msg_count,
10192: x_msg_data => x_msg_data,
10193: p_stmv_tbl => l_stmv_tbl);
10194:
10195: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10196: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10197: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10198: RAISE OKL_API.G_EXCEPTION_ERROR;
10199: END IF;
10192: x_msg_data => x_msg_data,
10193: p_stmv_tbl => l_stmv_tbl);
10194:
10195: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10196: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10197: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10198: RAISE OKL_API.G_EXCEPTION_ERROR;
10199: END IF;
10200:
10193: p_stmv_tbl => l_stmv_tbl);
10194:
10195: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10196: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10197: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10198: RAISE OKL_API.G_EXCEPTION_ERROR;
10199: END IF;
10200:
10201: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10194:
10195: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10196: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10197: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10198: RAISE OKL_API.G_EXCEPTION_ERROR;
10199: END IF;
10200:
10201: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10202: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || ' DONE '|| x_return_status);
10233: x_return_status => x_return_status,
10234: x_msg_count => x_msg_count,
10235: x_msg_data => x_msg_data);
10236:
10237: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10238: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10239: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10240: RAISE OKL_API.G_EXCEPTION_ERROR;
10241: END IF;
10234: x_msg_count => x_msg_count,
10235: x_msg_data => x_msg_data);
10236:
10237: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10238: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10239: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10240: RAISE OKL_API.G_EXCEPTION_ERROR;
10241: END IF;
10242:
10235: x_msg_data => x_msg_data);
10236:
10237: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10238: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10239: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10240: RAISE OKL_API.G_EXCEPTION_ERROR;
10241: END IF;
10242:
10243: Exit;
10236:
10237: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10238: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10239: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10240: RAISE OKL_API.G_EXCEPTION_ERROR;
10241: END IF;
10242:
10243: Exit;
10244:
10250:
10251: END IF;
10252: EXCEPTION
10253:
10254: WHEN OKL_API.G_EXCEPTION_ERROR THEN
10255:
10256: i := 0;
10257: FOR l_strms_rec in l_strms_csr
10258: LOOP
10271: x_msg_count => x_msg_count,
10272: x_msg_data => x_msg_data,
10273: p_stmv_tbl => l_stmv_tbl);
10274:
10275: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10276: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10277: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10278: RAISE OKL_API.G_EXCEPTION_ERROR;
10279: END IF;
10272: x_msg_data => x_msg_data,
10273: p_stmv_tbl => l_stmv_tbl);
10274:
10275: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10276: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10277: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10278: RAISE OKL_API.G_EXCEPTION_ERROR;
10279: END IF;
10280:
10273: p_stmv_tbl => l_stmv_tbl);
10274:
10275: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10276: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10277: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10278: RAISE OKL_API.G_EXCEPTION_ERROR;
10279: END IF;
10280:
10281: End If;
10274:
10275: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10276: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10277: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10278: RAISE OKL_API.G_EXCEPTION_ERROR;
10279: END IF;
10280:
10281: End If;
10282:
10281: End If;
10282:
10283: x_return_status := G_RET_STS_ERROR;
10284:
10285: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10286:
10287: i := 0;
10288: FOR l_strms_rec in l_strms_csr
10289: LOOP
10302: x_msg_count => x_msg_count,
10303: x_msg_data => x_msg_data,
10304: p_stmv_tbl => l_stmv_tbl);
10305:
10306: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10307: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10308: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10309: RAISE OKL_API.G_EXCEPTION_ERROR;
10310: END IF;
10303: x_msg_data => x_msg_data,
10304: p_stmv_tbl => l_stmv_tbl);
10305:
10306: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10307: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10308: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10309: RAISE OKL_API.G_EXCEPTION_ERROR;
10310: END IF;
10311:
10304: p_stmv_tbl => l_stmv_tbl);
10305:
10306: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10307: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10308: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10309: RAISE OKL_API.G_EXCEPTION_ERROR;
10310: END IF;
10311:
10312: End If;
10305:
10306: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10307: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10308: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10309: RAISE OKL_API.G_EXCEPTION_ERROR;
10310: END IF;
10311:
10312: End If;
10313:
10333: x_msg_count => x_msg_count,
10334: x_msg_data => x_msg_data,
10335: p_stmv_tbl => l_stmv_tbl);
10336:
10337: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10338: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10339: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10340: RAISE OKL_API.G_EXCEPTION_ERROR;
10341: END IF;
10334: x_msg_data => x_msg_data,
10335: p_stmv_tbl => l_stmv_tbl);
10336:
10337: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10338: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10339: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10340: RAISE OKL_API.G_EXCEPTION_ERROR;
10341: END IF;
10342:
10335: p_stmv_tbl => l_stmv_tbl);
10336:
10337: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10338: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10339: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10340: RAISE OKL_API.G_EXCEPTION_ERROR;
10341: END IF;
10342:
10343: End If;
10336:
10337: IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10338: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10339: ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
10340: RAISE OKL_API.G_EXCEPTION_ERROR;
10341: END IF;
10342:
10343: End If;
10344:
10341: END IF;
10342:
10343: End If;
10344:
10345: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
10346: p_msg_name => G_DB_ERROR,
10347: p_token1 => G_PROG_NAME_TOKEN,
10348: p_token1_value => l_prog_name,
10349: p_token2 => G_SQLCODE_TOKEN,
10371: -- End of comments
10372:
10373: PROCEDURE get_payment_after_ppd(
10374: p_api_version IN NUMBER,
10375: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
10376: x_return_status OUT NOCOPY VARCHAR2,
10377: x_msg_count OUT NOCOPY NUMBER,
10378: x_msg_data OUT NOCOPY VARCHAR2,
10379: p_khr_id IN NUMBER,
10441: IF (G_DEBUG_ENABLED = 'Y') THEN
10442: G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
10443: END IF;
10444:
10445: x_return_status := OKL_API.G_RET_STS_SUCCESS;
10446: -- Call start_activity to create savepoint, check compatibility
10447: -- and initialize message list
10448: x_return_status := okl_api.start_activity (
10449: l_api_name
10444:
10445: x_return_status := OKL_API.G_RET_STS_SUCCESS;
10446: -- Call start_activity to create savepoint, check compatibility
10447: -- and initialize message list
10448: x_return_status := okl_api.start_activity (
10449: l_api_name
10450: ,p_init_msg_list
10451: ,'_PVT'
10452: ,x_return_status);
10450: ,p_init_msg_list
10451: ,'_PVT'
10452: ,x_return_status);
10453: -- Check if activity started successfully
10454: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10455: RAISE okl_api.g_exception_unexpected_error;
10456: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10457: RAISE okl_api.g_exception_error;
10458: END IF;
10451: ,'_PVT'
10452: ,x_return_status);
10453: -- Check if activity started successfully
10454: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10455: RAISE okl_api.g_exception_unexpected_error;
10456: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10457: RAISE okl_api.g_exception_error;
10458: END IF;
10459: -- Fetch the day convention ..
10452: ,x_return_status);
10453: -- Check if activity started successfully
10454: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10455: RAISE okl_api.g_exception_unexpected_error;
10456: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10457: RAISE okl_api.g_exception_error;
10458: END IF;
10459: -- Fetch the day convention ..
10460: OKL_PRICING_UTILS_PVT.get_day_convention(
10453: -- Check if activity started successfully
10454: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10455: RAISE okl_api.g_exception_unexpected_error;
10456: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10457: RAISE okl_api.g_exception_error;
10458: END IF;
10459: -- Fetch the day convention ..
10460: OKL_PRICING_UTILS_PVT.get_day_convention(
10461: p_id => p_khr_id,
10466: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10467: 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 );
10468: END IF;
10469: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
10470: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10471: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
10472: RAISE OKL_API.G_EXCEPTION_ERROR;
10473: END IF;
10474:
10468: END IF;
10469: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
10470: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10471: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
10472: RAISE OKL_API.G_EXCEPTION_ERROR;
10473: END IF;
10474:
10475: OPEN c_hdr_csr(p_khr_id => p_khr_id);
10476: FETCH c_hdr_csr INTO lv_currency_code;
10474:
10475: OPEN c_hdr_csr(p_khr_id => p_khr_id);
10476: FETCH c_hdr_csr INTO lv_currency_code;
10477: IF c_hdr_csr%NOTFOUND THEN
10478: okl_api.set_message(p_app_name => G_APP_NAME,
10479: p_msg_name => G_LLA_NO_MATCHING_RECORD,
10480: p_token1 => G_COL_NAME_TOKEN,
10481: p_token1_value => 'Currency Code');
10482: RAISE okl_api.g_exception_error;
10478: okl_api.set_message(p_app_name => G_APP_NAME,
10479: p_msg_name => G_LLA_NO_MATCHING_RECORD,
10480: p_token1 => G_COL_NAME_TOKEN,
10481: p_token1_value => 'Currency Code');
10482: RAISE okl_api.g_exception_error;
10483: END IF;
10484: CLOSE c_hdr_csr;
10485:
10486: -- To get the ratio of the existing payment
10488: -- ppd.
10489:
10490: FOR i IN l_pay_level.FIRST..l_pay_level.LAST LOOP
10491: IF l_pay_level(i).amount <> 0 AND
10492: l_pay_level(i).amount <> okl_api.g_miss_num THEN
10493: l_first_payment := l_pay_level(i).amount;
10494: END IF;
10495: EXIT;
10496: END LOOP;
10497:
10498: l_start_date := l_pay_level(l_pay_level.FIRST).start_date;
10499: FOR i IN l_pay_level.FIRST..l_pay_level.LAST LOOP
10500: IF l_pay_level(i).amount <> 0 AND
10501: l_pay_level(i).amount <> okl_api.g_miss_num THEN
10502: l_pay_level(i).ratio := l_pay_level(i).amount/l_first_payment;
10503: l_no_of_periods := l_no_of_periods + l_pay_level(i).periods;
10504:
10505: END IF;
10538: x_return_status => x_return_status,
10539: x_msg_count => x_msg_count,
10540: x_msg_data => x_msg_data,
10541: p_recurrence_date => l_recurrence_date);
10542: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10543: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10544: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10545: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10546: END IF;
10539: x_msg_count => x_msg_count,
10540: x_msg_data => x_msg_data,
10541: p_recurrence_date => l_recurrence_date);
10542: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10543: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10544: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10545: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10546: END IF;
10547:
10540: x_msg_data => x_msg_data,
10541: p_recurrence_date => l_recurrence_date);
10542: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10543: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10544: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10545: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10546: END IF;
10547:
10548:
10541: p_recurrence_date => l_recurrence_date);
10542: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10543: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10544: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10545: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10546: END IF;
10547:
10548:
10549:
10556: p_end_date => l_selv_tbl(j).stream_element_date,
10557: p_arrears => l_pay_level(i).arrears_yn,
10558: x_return_status => x_return_status);
10559:
10560: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10561: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10562: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10563: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10564: END IF;
10557: p_arrears => l_pay_level(i).arrears_yn,
10558: x_return_status => x_return_status);
10559:
10560: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10561: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10562: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10563: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10564: END IF;
10565:
10558: x_return_status => x_return_status);
10559:
10560: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10561: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10562: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10563: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10564: END IF;
10565:
10566:
10559:
10560: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10561: EXIT WHEN(x_return_status = okl_api.g_ret_sts_unexp_error);
10562: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10563: EXIT WHEN(x_return_status = okl_api.g_ret_sts_error);
10564: END IF;
10565:
10566:
10567: l_cash_flow_tbl(k).cf_days := ln_int_ppd_days;
10581:
10582: END LOOP;
10583:
10584: IF (l_pay_level(l_pay_level.FIRST).start_date IS NOT NULL OR
10585: l_pay_level(l_pay_level.FIRST).start_date <> okl_api.g_miss_date) AND
10586: (p_ppd_date IS NOT NULL OR
10587: p_ppd_date <> okl_api.g_miss_date) AND
10588: l_pay_level(l_pay_level.FIRST).start_date > p_ppd_date THEN
10589: l_intrm_days := OKL_PRICING_UTILS_PVT.get_day_count(
10583:
10584: IF (l_pay_level(l_pay_level.FIRST).start_date IS NOT NULL OR
10585: l_pay_level(l_pay_level.FIRST).start_date <> okl_api.g_miss_date) AND
10586: (p_ppd_date IS NOT NULL OR
10587: p_ppd_date <> okl_api.g_miss_date) AND
10588: l_pay_level(l_pay_level.FIRST).start_date > p_ppd_date THEN
10589: l_intrm_days := OKL_PRICING_UTILS_PVT.get_day_count(
10590: p_start_date => p_ppd_date,
10591: p_days_in_month => l_day_convention_month,
10592: p_days_in_year => l_day_convention_year,
10593: p_end_date => l_pay_level(l_pay_level.FIRST).start_date,
10594: p_arrears => 'N',
10595: x_return_status => x_return_status);
10596: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10597: RAISE okl_api.g_exception_unexpected_error;
10598: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10599: RAISE okl_api.g_exception_error;
10600: END IF;
10593: p_end_date => l_pay_level(l_pay_level.FIRST).start_date,
10594: p_arrears => 'N',
10595: x_return_status => x_return_status);
10596: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10597: RAISE okl_api.g_exception_unexpected_error;
10598: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10599: RAISE okl_api.g_exception_error;
10600: END IF;
10601: ln_intrm_int := (p_ppd_amt * l_intrm_days * p_rate)/(100 * 360);
10594: p_arrears => 'N',
10595: x_return_status => x_return_status);
10596: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10597: RAISE okl_api.g_exception_unexpected_error;
10598: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10599: RAISE okl_api.g_exception_error;
10600: END IF;
10601: ln_intrm_int := (p_ppd_amt * l_intrm_days * p_rate)/(100 * 360);
10602: END IF;
10595: x_return_status => x_return_status);
10596: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10597: RAISE okl_api.g_exception_unexpected_error;
10598: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10599: RAISE okl_api.g_exception_error;
10600: END IF;
10601: ln_intrm_int := (p_ppd_amt * l_intrm_days * p_rate)/(100 * 360);
10602: END IF;
10603:
10683: l_prev_diff_sign := SIGN(l_diff);
10684: l_prev_diff := l_diff;
10685: END LOOP;
10686:
10687: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10688: RAISE okl_api.g_exception_unexpected_error;
10689: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10690: RAISE okl_api.g_exception_error;
10691: END IF;
10684: l_prev_diff := l_diff;
10685: END LOOP;
10686:
10687: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10688: RAISE okl_api.g_exception_unexpected_error;
10689: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10690: RAISE okl_api.g_exception_error;
10691: END IF;
10692: x_pay_level := lx_pay_level;
10685: END LOOP;
10686:
10687: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10688: RAISE okl_api.g_exception_unexpected_error;
10689: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10690: RAISE okl_api.g_exception_error;
10691: END IF;
10692: x_pay_level := lx_pay_level;
10693:
10686:
10687: IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
10688: RAISE okl_api.g_exception_unexpected_error;
10689: ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
10690: RAISE okl_api.g_exception_error;
10691: END IF;
10692: x_pay_level := lx_pay_level;
10693:
10694:
10693:
10694:
10695:
10696:
10697: okl_api.end_activity(x_msg_count => x_msg_count,
10698: x_msg_data => x_msg_data);
10699: EXCEPTION
10700: WHEN okl_api.g_exception_error THEN
10701: IF c_hdr_csr%ISOPEN THEN
10696:
10697: okl_api.end_activity(x_msg_count => x_msg_count,
10698: x_msg_data => x_msg_data);
10699: EXCEPTION
10700: WHEN okl_api.g_exception_error THEN
10701: IF c_hdr_csr%ISOPEN THEN
10702: CLOSE c_hdr_csr;
10703: END IF;
10704: x_return_status := okl_api.handle_exceptions(
10700: WHEN okl_api.g_exception_error THEN
10701: IF c_hdr_csr%ISOPEN THEN
10702: CLOSE c_hdr_csr;
10703: END IF;
10704: x_return_status := okl_api.handle_exceptions(
10705: l_api_name,
10706: g_pkg_name,
10707: 'OKL_API.G_RET_STS_ERROR',
10708: x_msg_count,
10703: END IF;
10704: x_return_status := okl_api.handle_exceptions(
10705: l_api_name,
10706: g_pkg_name,
10707: 'OKL_API.G_RET_STS_ERROR',
10708: x_msg_count,
10709: x_msg_data,
10710: '_PVT');
10711: WHEN okl_api.g_exception_unexpected_error THEN
10707: 'OKL_API.G_RET_STS_ERROR',
10708: x_msg_count,
10709: x_msg_data,
10710: '_PVT');
10711: WHEN okl_api.g_exception_unexpected_error THEN
10712: IF c_hdr_csr%ISOPEN THEN
10713: CLOSE c_hdr_csr;
10714: END IF;
10715:
10712: IF c_hdr_csr%ISOPEN THEN
10713: CLOSE c_hdr_csr;
10714: END IF;
10715:
10716: x_return_status :=okl_api.handle_exceptions(
10717: l_api_name,
10718: g_pkg_name,
10719: 'OKL_API.G_RET_STS_UNEXP_ERROR',
10720: x_msg_count,
10715:
10716: x_return_status :=okl_api.handle_exceptions(
10717: l_api_name,
10718: g_pkg_name,
10719: 'OKL_API.G_RET_STS_UNEXP_ERROR',
10720: x_msg_count,
10721: x_msg_data,
10722: '_PVT');
10723: WHEN OTHERS THEN
10724:
10725: IF c_hdr_csr%ISOPEN THEN
10726: CLOSE c_hdr_csr;
10727: END IF;
10728: x_return_status :=okl_api.handle_exceptions(
10729: l_api_name,
10730: g_pkg_name,
10731: 'OTHERS',
10732: x_msg_count,
10885: p_process_flag => OKL_VARIABLE_INTEREST_PVT.G_INTEREST_CALCULATION_BASIS,
10886: x_interest_rate_tbl =>interest_rate_tbl);
10887:
10888: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
10889: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10890: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
10891: RAISE OKL_API.G_EXCEPTION_ERROR;
10892: END IF;
10893: -- print( l_prog_name, 'interest_rate_tbl.COUNT:' || interest_rate_tbl.COUNT );
10887:
10888: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
10889: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10890: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
10891: RAISE OKL_API.G_EXCEPTION_ERROR;
10892: END IF;
10893: -- print( l_prog_name, 'interest_rate_tbl.COUNT:' || interest_rate_tbl.COUNT );
10894: -- print( l_prog_name, 'interest_rate_tbl(1).rate:' || interest_rate_tbl(1).rate );
10895: if interest_rate_tbl.COUNT = 0 THEN
10892: END IF;
10893: -- print( l_prog_name, 'interest_rate_tbl.COUNT:' || interest_rate_tbl.COUNT );
10894: -- print( l_prog_name, 'interest_rate_tbl(1).rate:' || interest_rate_tbl(1).rate );
10895: if interest_rate_tbl.COUNT = 0 THEN
10896: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10897: END IF;
10898:
10899: IF interest_rate_tbl(1).rate = 0 THEN
10900: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10896: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10897: END IF;
10898:
10899: IF interest_rate_tbl(1).rate = 0 THEN
10900: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10901: END IF;
10902:
10903: l_iir:=interest_rate_tbl(1).rate;
10904: x_interest_rate:=l_iir;
10927: IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10928: OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, l_prog_name || 'Month / Year = ' || l_day_convention_month || '/' || l_day_convention_year );
10929: END IF;
10930: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
10931: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10932: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
10933: RAISE OKL_API.G_EXCEPTION_ERROR;
10934: END IF;
10935:
10929: END IF;
10930: IF (lx_return_status = G_RET_STS_UNEXP_ERROR) THEN
10931: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10932: ELSIF (lx_return_status = G_RET_STS_ERROR) THEN
10933: RAISE OKL_API.G_EXCEPTION_ERROR;
10934: END IF;
10935:
10936: OPEN c_rent_slls;
10937: FETCH c_rent_slls INTO l_rent_sll;
10959: p_end_date => l_rent_flow.se_date,
10960: p_arrears => l_rent_flow.se_arrears,
10961: x_return_status => lx_return_status);
10962:
10963: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10964: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10965: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
10966: RAISE OKL_API.G_EXCEPTION_ERROR;
10967: END IF;
10960: p_arrears => l_rent_flow.se_arrears,
10961: x_return_status => lx_return_status);
10962:
10963: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10964: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10965: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
10966: RAISE OKL_API.G_EXCEPTION_ERROR;
10967: END IF;
10968:
10961: x_return_status => lx_return_status);
10962:
10963: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10964: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10965: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
10966: RAISE OKL_API.G_EXCEPTION_ERROR;
10967: END IF;
10968:
10969: if ( l_rent_flow.stream_type_purpose = 'UNSCHEDULED_PRINCIPAL_PAYMENT') then
10962:
10963: IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10964: RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10965: ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
10966: RAISE OKL_API.G_EXCEPTION_ERROR;
10967: END IF;
10968:
10969: if ( l_rent_flow.stream_type_purpose = 'UNSCHEDULED_PRINCIPAL_PAYMENT') then
10970: asset_rents(k).se_purpose := 'P';
11060: print( l_prog_name, 'end' );
11061:
11062: EXCEPTION
11063:
11064: WHEN OKL_API.G_EXCEPTION_ERROR THEN
11065:
11066: x_return_status := G_RET_STS_ERROR;
11067:
11068: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
11064: WHEN OKL_API.G_EXCEPTION_ERROR THEN
11065:
11066: x_return_status := G_RET_STS_ERROR;
11067:
11068: WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
11069:
11070: x_return_status := G_RET_STS_UNEXP_ERROR;
11071:
11072: WHEN OTHERS THEN
11070: x_return_status := G_RET_STS_UNEXP_ERROR;
11071:
11072: WHEN OTHERS THEN
11073:
11074: OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
11075: p_msg_name => G_DB_ERROR,
11076: p_token1 => G_PROG_NAME_TOKEN,
11077: p_token1_value => l_prog_name,
11078: p_token2 => G_SQLCODE_TOKEN,