1322: p_base_currencies(i),
1323: p_contra_currencies(i));
1324: FETCH get_default_curve_fx INTO v_curve_code;
1325: if (get_default_curve_fx%notfound) then
1326: FND_MESSAGE.SET_NAME('QRM','QRM_CALC_NO_DEFAULT_CURVE_ERR');
1327: FND_MESSAGE.SET_TOKEN('CCY',p_base_currencies(i)||'/'||
1328: p_contra_currencies(i));
1329: raise e_no_rate_curve;
1330: else
1323: p_contra_currencies(i));
1324: FETCH get_default_curve_fx INTO v_curve_code;
1325: if (get_default_curve_fx%notfound) then
1326: FND_MESSAGE.SET_NAME('QRM','QRM_CALC_NO_DEFAULT_CURVE_ERR');
1327: FND_MESSAGE.SET_TOKEN('CCY',p_base_currencies(i)||'/'||
1328: p_contra_currencies(i));
1329: raise e_no_rate_curve;
1330: else
1331: v_curve_codes_table(i) := v_curve_code;
1338: (p_curve_types(i) = 'IRVOL')) then
1339: OPEN get_default_curve(p_curve_types(i),p_base_currencies(i));
1340: FETCH get_default_curve INTO v_curve_code;
1341: if (get_default_curve%notfound) then
1342: FND_MESSAGE.SET_NAME('QRM','QRM_CALC_NO_DEFAULT_CURVE_ERR');
1343: FND_MESSAGE.SET_TOKEN('CCY',p_base_currencies(i));
1344: raise e_no_rate_curve;
1345: else
1346: v_curve_codes_table(i) := v_curve_code;
1339: OPEN get_default_curve(p_curve_types(i),p_base_currencies(i));
1340: FETCH get_default_curve INTO v_curve_code;
1341: if (get_default_curve%notfound) then
1342: FND_MESSAGE.SET_NAME('QRM','QRM_CALC_NO_DEFAULT_CURVE_ERR');
1343: FND_MESSAGE.SET_TOKEN('CCY',p_base_currencies(i));
1344: raise e_no_rate_curve;
1345: else
1346: v_curve_codes_table(i) := v_curve_code;
1347: end if;
1524: end if;
1525: end if;
1526: ----------------------------------------------------------
1527: else
1528: FND_MESSAGE.SET_NAME('QRM','QRM_CALC_NO_DEFAULT_SPOT_ERR');
1529: FND_MESSAGE.SET_TOKEN('CCY',p_base_currencies(1));
1530: raise e_no_spot_rates;
1531: end if;
1532: CLOSE get_fx_spot_rates;
1525: end if;
1526: ----------------------------------------------------------
1527: else
1528: FND_MESSAGE.SET_NAME('QRM','QRM_CALC_NO_DEFAULT_SPOT_ERR');
1529: FND_MESSAGE.SET_TOKEN('CCY',p_base_currencies(1));
1530: raise e_no_spot_rates;
1531: end if;
1532: CLOSE get_fx_spot_rates;
1533: IF (g_proc_level>=g_debug_level) THEN
1614:
1615: EXCEPTION
1616: WHEN xtr_market_data_p.e_mdcs_no_data_found THEN
1617: if (v_rate_type = 'Y') then
1618: FND_MESSAGE.SET_NAME('QRM','QRM_CALC_NO_DEFAULT_INT_ERR');
1619: FND_MESSAGE.SET_TOKEN('CURVE',v_curve);
1620: IF (g_ERROR_level>=g_debug_level) THEN --BUG 3236479
1621: xtr_risk_debug_pkg.dlog('EXCEPTION','QRM-CALC_NO_DEFAULT_INT_ERR',
1622: 'QRM_CALCULATORS_P.GET_RATES_FROM_CURVE',G_ERROR_LEVEL);
1615: EXCEPTION
1616: WHEN xtr_market_data_p.e_mdcs_no_data_found THEN
1617: if (v_rate_type = 'Y') then
1618: FND_MESSAGE.SET_NAME('QRM','QRM_CALC_NO_DEFAULT_INT_ERR');
1619: FND_MESSAGE.SET_TOKEN('CURVE',v_curve);
1620: IF (g_ERROR_level>=g_debug_level) THEN --BUG 3236479
1621: xtr_risk_debug_pkg.dlog('EXCEPTION','QRM-CALC_NO_DEFAULT_INT_ERR',
1622: 'QRM_CALCULATORS_P.GET_RATES_FROM_CURVE',G_ERROR_LEVEL);
1623: END IF;
1622: 'QRM_CALCULATORS_P.GET_RATES_FROM_CURVE',G_ERROR_LEVEL);
1623: END IF;
1624: raise e_no_int_rates;
1625: else
1626: FND_MESSAGE.SET_NAME('QRM','QRM_CALC_NO_DEFAULT_VOL_ERR');
1627: FND_MESSAGE.SET_TOKEN('CURVE',v_curve);
1628: IF (g_ERROR_level>=g_debug_level) THEN --BUG 3236479
1629: xtr_risk_debug_pkg.dlog('EXCEPTION','E_NO_VOL_RATES',
1630: 'QRM_CALCULATORS_P.GET_RATES_FROM_CURVES',G_ERROR_LEVEL);
1623: END IF;
1624: raise e_no_int_rates;
1625: else
1626: FND_MESSAGE.SET_NAME('QRM','QRM_CALC_NO_DEFAULT_VOL_ERR');
1627: FND_MESSAGE.SET_TOKEN('CURVE',v_curve);
1628: IF (g_ERROR_level>=g_debug_level) THEN --BUG 3236479
1629: xtr_risk_debug_pkg.dlog('EXCEPTION','E_NO_VOL_RATES',
1630: 'QRM_CALCULATORS_P.GET_RATES_FROM_CURVES',G_ERROR_LEVEL);
1631: END IF;
1781: elsif (p_ccy_b = 'USD') then
1782: p_quote_bases(1) := 'B';
1783: end if;
1784: else
1785: FND_MESSAGE.SET_NAME('QRM','QRM_CALC_NO_DEFAULT_SPOT_ERR');
1786: FND_MESSAGE.SET_TOKEN('CCY',p_base_currency);
1787: raise e_no_spot_rates;
1788: end if;
1789: CLOSE get_quote_basis;
1782: p_quote_bases(1) := 'B';
1783: end if;
1784: else
1785: FND_MESSAGE.SET_NAME('QRM','QRM_CALC_NO_DEFAULT_SPOT_ERR');
1786: FND_MESSAGE.SET_TOKEN('CCY',p_base_currency);
1787: raise e_no_spot_rates;
1788: end if;
1789: CLOSE get_quote_basis;
1790: OPEN get_quote_basis(p_contra_currency);
1795: elsif (p_ccy_b = 'USD') then
1796: p_quote_bases(2) := 'B';
1797: end if;
1798: else
1799: FND_MESSAGE.SET_NAME('QRM','QRM_CALC_NO_DEFAULT_SPOT_ERR');
1800: FND_MESSAGE.SET_TOKEN('CCY',p_contra_currency);
1801: raise e_no_spot_rates;
1802: end if;
1803: CLOSE get_quote_basis;
1796: p_quote_bases(2) := 'B';
1797: end if;
1798: else
1799: FND_MESSAGE.SET_NAME('QRM','QRM_CALC_NO_DEFAULT_SPOT_ERR');
1800: FND_MESSAGE.SET_TOKEN('CCY',p_contra_currency);
1801: raise e_no_spot_rates;
1802: end if;
1803: CLOSE get_quote_basis;
1804: end if;