524: 'p_tax_conversion_type = ' || p_tax_conversion_type||
525: 'p_trx_conversion_type = ' || p_trx_conversion_type);
526: END IF;
527:
528: p_return_status := FND_API.G_RET_STS_SUCCESS;
529:
530: -- Check if both currencies are identical
531: IF ( p_from_currency = p_to_currency ) THEN
532: g_tax_curr_conv_rate_tbl(p_rate_index) := 1;
545: p_from_currency,
546: p_conversion_date,
547: p_return_status,
548: p_error_buffer);
549: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
550: RETURN NULL;
551: END IF;
552:
553: l_from_type := g_currency_tbl(p_from_currency).currency_type;
566: p_to_currency,
567: p_conversion_date,
568: p_return_status,
569: p_error_buffer);
570: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
571: RETURN NULL;
572: END IF;
573:
574: l_to_type := g_currency_tbl(p_to_currency).currency_type;
592: IF g_euro_code IS NULL THEN
593: g_euro_code := get_euro_code(p_return_status,
594: p_error_buffer );
595: END IF;
596: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
597: RETURN NULL;
598: END IF;
599:
600: l_other_rate := get_other_rate(
606: p_return_status,
607: p_error_buffer,
608: p_trx_conversion_date); --Bug7183884
609:
610: IF p_return_status = FND_API.G_RET_STS_SUCCESS THEN
611: -- Get conversion amt by converting EMU -> EURO -> OTHER
612: l_converted_amount := ( p_amount / l_from_rate ) * l_other_rate;
613: g_tax_curr_conv_rate_tbl(p_rate_index) := l_other_rate /l_from_rate;
614: END IF;
635: p_trx_conversion_type,
636: p_return_status,
637: p_error_buffer,
638: p_trx_conversion_date);--Bug7183884
639: IF p_return_status = FND_API.G_RET_STS_SUCCESS THEN
640: l_converted_amount := p_amount * l_other_rate;
641: g_tax_curr_conv_rate_tbl(p_rate_index) := l_other_rate;
642: END IF;
643: END IF;
649: g_euro_code := get_euro_code(p_return_status,
650: p_error_buffer );
651: END IF;
652:
653: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
654: RETURN NULL;
655: END IF;
656: l_other_rate := get_other_rate(
657: p_from_currency,
663: p_error_buffer,
664: p_trx_conversion_date);--Bug7183884
665:
666:
667: IF p_return_status = FND_API.G_RET_STS_SUCCESS THEN
668: -- Get conversion amt by converting OTHER -> EURO -> EMU
669: l_converted_amount := ( p_amount * l_other_rate ) * l_to_rate;
670: g_tax_curr_conv_rate_tbl(p_rate_index) := l_other_rate * l_to_rate;
671: END IF;
680: p_error_buffer,
681: p_trx_conversion_date);--Bug7183884
682:
683:
684: IF p_return_status = FND_API.G_RET_STS_SUCCESS THEN
685: l_converted_amount := p_amount * l_other_rate;
686: g_tax_curr_conv_rate_tbl(p_rate_index) := l_other_rate;
687: END IF;
688: ELSIF ( l_to_type = 'OTHER' ) THEN
696: p_error_buffer ,
697: p_trx_conversion_date);--Bug7183884
698:
699:
700: IF p_return_status = FND_API.G_RET_STS_SUCCESS THEN
701: l_converted_amount := p_amount * l_other_rate;
702: g_tax_curr_conv_rate_tbl(p_rate_index) := l_other_rate;
703: END IF;
704: END IF;
717: RETURN l_converted_amount;
718:
719: EXCEPTION
720: WHEN OTHERS THEN
721: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
722: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
723:
724: IF (g_level_unexpected >= g_current_runtime_level ) THEN
725: FND_LOG.STRING(g_level_unexpected,
830: 'p_currency = ' || p_currency||
831: 'p_eff_date = ' || to_char(p_eff_date, 'DD-MON-YY'));
832: END IF;
833:
834: p_return_status := FND_API.G_RET_STS_SUCCESS;
835:
836: -- Get currency information from FND_CURRENCIES table
837: --Commented for Bug 7519288
838: /* SELECT decode( derive_type,
895: END IF;
896:
897: EXCEPTION
898: WHEN NO_DATA_FOUND THEN
899: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
900: p_error_buffer := 'Currency type and Currency rate not found in FND_CURRENCIES';
901: IF (g_level_unexpected >= g_current_runtime_level ) THEN
902: FND_LOG.STRING(g_level_unexpected,
903: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.get_currency_info',
904: p_error_buffer);
905: END IF;
906:
907: WHEN OTHERS THEN
908: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
909: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
910:
911: IF (g_level_unexpected >= g_current_runtime_level ) THEN
912: FND_LOG.STRING(g_level_unexpected,
962: 'p_tax_conversion_type = ' || p_tax_conversion_type||
963: 'p_trx_conversion_type = ' || p_trx_conversion_type);
964: END IF;
965:
966: p_return_status := FND_API.G_RET_STS_SUCCESS;
967: l_rate := NULL;
968:
969: IF p_tax_conversion_type IS NOT NULL THEN
970: --
1090: p_trx_conversion_date,
1091: p_trx_conversion_type);
1092: FETCH get_rate_info_csr INTO l_rate;
1093: IF get_rate_info_csr%NOTFOUND THEN
1094: p_return_status := FND_API.G_RET_STS_ERROR;
1095:
1096: -- Conversion rate not found in GL_DAILY_RATES
1097: FND_MESSAGE.SET_NAME('ZX','ZX_ROUND_NO_EXCH_RATE');
1098: FND_MESSAGE.SET_TOKEN('FROM_CURRENCY', p_from_currency);
1130:
1131:
1132: EXCEPTION
1133: WHEN OTHERS THEN
1134: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1135: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1136:
1137: IF (g_level_unexpected >= g_current_runtime_level ) THEN
1138: FND_LOG.STRING(g_level_unexpected,
1160: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.get_euro_code.BEGIN',
1161: 'ZX_TDS_TAX_ROUNDING_PKG: get_euro_code(+)');
1162: END IF;
1163:
1164: p_return_status := FND_API.G_RET_STS_SUCCESS;
1165:
1166: -- Get currency code of the EURO currency
1167: SELECT currency_code
1168: INTO euro_code
1180: RETURN( euro_code );
1181:
1182: EXCEPTION
1183: WHEN NO_DATA_FOUND THEN
1184: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1185: p_error_buffer := 'EURO code not found in FND_CURRENCIES';
1186: FND_MESSAGE.SET_NAME('ZX','ZX_UNEXPECTED_ERROR');
1187: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_id IS NOT NULL THEN
1188: ZX_API_PUB.add_msg(
1197: p_error_buffer);
1198: END IF;
1199:
1200: WHEN OTHERS THEN
1201: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1202: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1203:
1204: IF (g_level_unexpected >= g_current_runtime_level ) THEN
1205: FND_LOG.STRING(g_level_unexpected,
1240: 'p_min_acct_unit = ' || to_char(p_min_acct_unit)||
1241: 'p_precision = ' || to_char(p_precision));
1242: END IF;
1243:
1244: p_return_status := FND_API.G_RET_STS_SUCCESS;
1245:
1246: --
1247: -- check if all require info are available for rounding
1248: --
1304: -- Use precision
1305: l_rounded_amt := ROUND(p_amount, p_precision);
1306: END IF;
1307: ELSE
1308: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1309: p_error_buffer := 'Unknown Rounding Rule Code';
1310: END IF;
1311:
1312: IF (g_level_procedure >= g_current_runtime_level ) THEN
1319: RETURN l_rounded_amt;
1320:
1321: EXCEPTION
1322: WHEN ZERO_DIVIDE THEN
1323: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1324: p_error_buffer := 'Minimum Accountable Unit can not be 0';
1325: FND_MESSAGE.SET_NAME('ZX','GENERIC_MESSAGE');
1326: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','round_tax- '|| p_error_buffer);
1327: FND_MSG_PUB.Add;
1331: p_error_buffer);
1332: END IF;
1333:
1334: WHEN OTHERS THEN
1335: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1336: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1337: IF (g_level_unexpected >= g_current_runtime_level ) THEN
1338: FND_LOG.STRING(g_level_unexpected,
1339: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.round_tax',
1368: 'ZX_TDS_TAX_ROUNDING_PKG: det_rounding_level_basis(+)'||
1369: 'Party_Type_Code = ' || p_Party_Type_Code);
1370: END IF;
1371:
1372: p_return_status := FND_API.G_RET_STS_SUCCESS;
1373:
1374: --
1375: -- determine the rounding party type
1376: --
1384: 'BILL_TO_PTY_SITE',
1385: 'BILL_FROM_PTY_SITE') THEN
1386: p_rounding_level_basis := 'SITE';
1387: ELSE
1388: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1389: p_error_buffer := 'Invalid Rounding Level Hierarchy';
1390:
1391: IF (g_level_statement >= g_current_runtime_level ) THEN
1392: FND_LOG.STRING(g_level_statement,
1408: END IF;
1409:
1410: EXCEPTION
1411: WHEN OTHERS THEN
1412: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1413: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1414:
1415: IF (g_level_unexpected >= g_current_runtime_level ) THEN
1416: FND_LOG.STRING(g_level_unexpected,
1464: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.determine_round_level_and_rule.BEGIN',
1465: 'ZX_TDS_TAX_ROUNDING_PKG: determine_round_level_and_rule(+)');
1466: END IF;
1467:
1468: p_return_status := FND_API.G_RET_STS_SUCCESS;
1469:
1470: --
1471: -- determine the rounding party type
1472: --
1475: l_rounding_level_basis,
1476: p_return_status,
1477: p_error_buffer);
1478:
1479: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1480: RETURN;
1481: END IF;
1482:
1483: IF l_rounding_level_basis = 'PARTY' THEN
1541: l_account_site_id := p_bill_third_pty_acct_site_id;
1542: l_site_use_id := p_bill_to_cust_acct_st_use_id;
1543:
1544: ELSE
1545: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1546: p_error_buffer := 'Invalid Rounding Level Hierarchy';
1547:
1548: IF (g_level_statement >= g_current_runtime_level ) THEN
1549: FND_LOG.STRING(g_level_statement,
1591: p_return_status => P_return_status);
1592:
1593: **********/
1594:
1595: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1596: IF (g_level_statement >= g_current_runtime_level ) THEN
1597: FND_LOG.STRING(g_level_statement,
1598: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.determine_round_level_and_rule',
1599: 'Incorrect return_status after calling ' ||
1601:
1602: END IF;
1603: p_rounding_level_code := NULL;
1604: p_rounding_rule_code := NULL;
1605: p_return_status := FND_API.G_RET_STS_SUCCESS;
1606: END IF;
1607:
1608: -- populate rounding_level_code and rounding_rule_code
1609: --
1640: END IF;
1641:
1642: EXCEPTION
1643: WHEN OTHERS THEN
1644: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1645: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1646:
1647: IF (g_level_unexpected >= g_current_runtime_level ) THEN
1648: FND_LOG.STRING(g_level_unexpected,
1694: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.determine_rounding_rule.BEGIN',
1695: 'ZX_TDS_TAX_ROUNDING_PKG: determine_rounding_rule(+)');
1696: END IF;
1697:
1698: p_return_status := FND_API.G_RET_STS_SUCCESS;
1699:
1700: --
1701: -- determine the rounding party type
1702: --
1705: l_rounding_level_basis,
1706: p_return_status,
1707: p_error_buffer);
1708:
1709: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1710: RETURN;
1711: END IF;
1712:
1713: IF l_rounding_level_basis = 'PARTY' THEN
1800: l_site_use_id :=
1801: ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.bill_to_cust_acct_site_use_id(p_trx_line_index);
1802:
1803: ELSE
1804: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1805: p_error_buffer := 'Invalid Rounding Level Hierarchy';
1806:
1807: IF (g_level_statement >= g_current_runtime_level ) THEN
1808: FND_LOG.STRING(g_level_statement,
1831: p_zx_registration_rec => l_registration_rec,
1832: p_ret_record_level => l_ret_record_level,
1833: p_return_status => P_return_status);
1834:
1835: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1836: IF (g_level_error >= g_current_runtime_level ) THEN
1837: FND_LOG.STRING(g_level_error,
1838: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.determine_rounding_rule',
1839: 'Incorrect return_status after calling ' ||
1842: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.determine_rounding_rule',
1843: 'Continue processing ...');
1844: END IF;
1845: p_rounding_rule_code := NULL;
1846: p_return_status := FND_API.G_RET_STS_SUCCESS;
1847: RETURN;
1848: END IF;
1849:
1850: -- populate rounding_rule_code
1875: END IF;
1876:
1877: EXCEPTION
1878: WHEN OTHERS THEN
1879: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1880: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1881:
1882: IF (g_level_unexpected >= g_current_runtime_level ) THEN
1883: FND_LOG.STRING(g_level_unexpected,
1915: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.get_rounding_rule.BEGIN',
1916: 'ZX_TDS_TAX_ROUNDING_PKG: get_rounding_rule(+)');
1917: END IF;
1918:
1919: p_return_status := FND_API.G_RET_STS_SUCCESS;
1920:
1921: IF p_event_class_rec.rounding_level_hier_1_code IS NOT NULL THEN
1922:
1923: determine_rounding_rule(
1931: p_rounding_rule_code,
1932: p_return_status,
1933: p_error_buffer);
1934:
1935: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1936: RETURN;
1937: ELSE
1938: IF p_rounding_rule_code IS NOT NULL THEN
1939: RETURN;
1954: p_rounding_rule_code,
1955: p_return_status,
1956: p_error_buffer);
1957:
1958: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1959: RETURN;
1960: ELSE
1961: IF p_rounding_rule_code IS NOT NULL THEN
1962: RETURN;
1977: p_rounding_rule_code,
1978: p_return_status,
1979: p_error_buffer);
1980:
1981: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1982: RETURN;
1983: ELSE
1984: IF p_rounding_rule_code IS NOT NULL THEN
1985: RETURN;
2000: p_rounding_rule_code,
2001: p_return_status,
2002: p_error_buffer);
2003:
2004: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2005: RETURN;
2006: ELSE
2007: IF p_rounding_rule_code IS NOT NULL THEN
2008: RETURN;
2017: END IF;
2018:
2019: EXCEPTION
2020: WHEN OTHERS THEN
2021: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2022: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
2023:
2024: IF (g_level_unexpected >= g_current_runtime_level ) THEN
2025: FND_LOG.STRING(g_level_unexpected,
2055: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.get_round_level_ptp_id.BEGIN',
2056: 'ZX_TDS_TAX_ROUNDING_PKG: get_round_level_ptp_id(+)');
2057: END IF;
2058:
2059: p_return_status := FND_API.G_RET_STS_SUCCESS;
2060:
2061: --
2062: -- determine the rounding party type
2063: --
2066: l_rounding_level_basis,
2067: p_return_status,
2068: p_error_buffer);
2069:
2070: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2071: RETURN;
2072: END IF;
2073:
2074: IF l_rounding_level_basis = 'PARTY' THEN
2109: END IF;
2110:
2111: EXCEPTION
2112: WHEN OTHERS THEN
2113: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2114: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
2115:
2116: IF (g_level_unexpected >= g_current_runtime_level ) THEN
2117: FND_LOG.STRING(g_level_unexpected,
2218: 'ZX_TDS_TAX_ROUNDING_PKG: get_rounding_level_and_rule(+)');
2219:
2220: END IF;
2221:
2222: p_return_status := FND_API.G_RET_STS_SUCCESS;
2223:
2224: --
2225: -- check if trx_currency_code is available at header level
2226: -- if not, that means trx_currency_code can be different
2240: l_tax_prof_id,
2241: p_return_status,
2242: p_error_buffer);
2243:
2244: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2245: RETURN;
2246: ELSE
2247: IF l_tax_prof_id IS NOT NULL THEN
2248: p_rnd_lvl_party_tax_prof_id := l_tax_prof_id;
2269: l_tax_prof_id,
2270: p_return_status,
2271: p_error_buffer);
2272:
2273: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2274: RETURN;
2275: ELSE
2276: IF l_tax_prof_id IS NOT NULL THEN
2277: p_rnd_lvl_party_tax_prof_id := l_tax_prof_id;
2297: l_tax_prof_id,
2298: p_return_status,
2299: p_error_buffer);
2300:
2301: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2302: RETURN;
2303: ELSE
2304: IF l_tax_prof_id IS NOT NULL THEN
2305: p_rnd_lvl_party_tax_prof_id := l_tax_prof_id;
2325: l_tax_prof_id,
2326: p_return_status,
2327: p_error_buffer);
2328:
2329: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2330: RETURN;
2331: ELSE
2332: IF l_tax_prof_id IS NOT NULL THEN
2333: p_rnd_lvl_party_tax_prof_id := l_tax_prof_id;
2415: l_tax_determine_date,
2416: l_tax_point_date,
2417: p_return_status);
2418:
2419: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2420: IF (g_level_error >= g_current_runtime_level ) THEN
2421: FND_LOG.STRING(g_level_error,
2422: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.get_rounding_level_and_rule',
2423: 'Incorrect return_status after calling ' ||
2456: l_ship_to_cust_acct_st_use_id,
2457: l_bill_to_cust_acct_st_use_id,
2458: l_tax_determine_date );
2459:
2460: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2461: RETURN;
2462: ELSE
2463: IF l_rounding_level_code IS NOT NULL THEN
2464: p_rnd_lvl_party_tax_prof_id := l_tax_prof_id;
2493: l_ship_to_cust_acct_st_use_id,
2494: l_bill_to_cust_acct_st_use_id,
2495: l_tax_determine_date );
2496:
2497: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2498: RETURN;
2499: ELSE
2500: IF (NOT l_rounding_level_found AND
2501: l_rounding_level_code IS NOT NULL) THEN
2532: l_ship_to_cust_acct_st_use_id,
2533: l_bill_to_cust_acct_st_use_id,
2534: l_tax_determine_date );
2535:
2536: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2537: RETURN;
2538: ELSE
2539: IF (NOT l_rounding_level_found AND
2540: l_rounding_level_code IS NOT NULL) THEN
2571: l_ship_to_cust_acct_st_use_id,
2572: l_bill_to_cust_acct_st_use_id,
2573: l_tax_determine_date );
2574:
2575: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2576: RETURN;
2577: ELSE
2578: IF (NOT l_rounding_level_found AND
2579: l_rounding_level_code IS NOT NULL) THEN
2613: END IF;
2614:
2615: EXCEPTION
2616: WHEN OTHERS THEN
2617: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2618: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
2619:
2620: IF (g_level_unexpected >= g_current_runtime_level ) THEN
2621: FND_LOG.STRING(g_level_unexpected,
2648: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.init_header_group.BEGIN',
2649: 'ZX_TDS_TAX_ROUNDING_PKG: init_header_group(+)');
2650: END IF;
2651:
2652: p_return_status := FND_API.G_RET_STS_SUCCESS;
2653:
2654: p_hdr_grp_rec.tax_regime_code := 'X';
2655: p_hdr_grp_rec.tax := 'X';
2656: p_hdr_grp_rec.tax_status_code := 'X';
2712: END IF;
2713:
2714: EXCEPTION
2715: WHEN OTHERS THEN
2716: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2717: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
2718:
2719: IF (g_level_unexpected >= g_current_runtime_level ) THEN
2720: FND_LOG.STRING(g_level_unexpected,
2748: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.determine_header_group.BEGIN',
2749: 'ZX_TDS_TAX_ROUNDING_PKG: determine_header_group(+)');
2750: END IF;
2751:
2752: p_return_status := FND_API.G_RET_STS_SUCCESS;
2753:
2754: -- bug6773534: remove applied_to information from header grouping critera
2755:
2756: IF (NVL(p_prev_hdr_grp_rec.tax_regime_code, 'X') <>
2985: END IF;
2986:
2987: EXCEPTION
2988: WHEN OTHERS THEN
2989: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2990: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
2991: IF (g_level_unexpected >= g_current_runtime_level ) THEN
2992: FND_LOG.STRING(g_level_unexpected,
2993: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.determine_header_group' ,
3026: 'ZX_TDS_TAX_ROUNDING_PKG: get_currency_info_for_rounding(+)'||
3027: 'p_currency_code = ' || p_currency_code);
3028: END IF;
3029:
3030: p_return_status := FND_API.G_RET_STS_SUCCESS;
3031:
3032: --
3033: -- first check if currency info can be obtained from the cache structure
3034: -- if not, call get_currency_info to get it
3055: l_precision,
3056: l_currency_type,
3057: p_return_status,
3058: p_error_buffer);
3059: IF p_return_status = FND_API.G_RET_STS_SUCCESS THEN
3060: g_currency_tbl(p_currency_code).min_acct_unit := l_mau;
3061: g_currency_tbl(p_currency_code).precision := l_precision;
3062: g_currency_tbl(p_currency_code).conversion_rate := l_conversion_rate;
3063: g_currency_tbl(p_currency_code).currency_type := l_currency_type;
3075: END IF;
3076:
3077: EXCEPTION
3078: WHEN OTHERS THEN
3079: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3080: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3081:
3082: IF (g_level_unexpected >= g_current_runtime_level ) THEN
3083: FND_LOG.STRING(g_level_unexpected,
3118: 'ZX_TDS_TAX_ROUNDING_PKG: convert_to_currency(+)'||
3119: 'p_to_curr_conv_rate = ' || to_char(p_to_curr_conv_rate));
3120: END IF;
3121:
3122: p_return_status := FND_API.G_RET_STS_SUCCESS;
3123:
3124: --
3125: -- if currency conversion rate is available, use it, otherwise,
3126: -- check if it exists in cache, if not, call convert_amount to get
3172: l_rate_index,
3173: p_return_status,
3174: p_error_buffer,
3175: p_trx_conversion_date);--Bug7183884
3176: IF p_return_status = FND_API.G_RET_STS_SUCCESS THEN
3177: p_to_curr_conv_rate := g_tax_curr_conv_rate_tbl(l_rate_index);
3178: END IF;
3179: END IF;
3180: END IF;
3189: END IF;
3190:
3191: EXCEPTION
3192: WHEN OTHERS THEN
3193: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3194: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3195:
3196: IF (g_level_unexpected >= g_current_runtime_level ) THEN
3197: FND_LOG.STRING(g_level_unexpected,
3233: to_char(p_unround_amt));
3234:
3235: END IF;
3236:
3237: p_return_status := FND_API.G_RET_STS_SUCCESS;
3238:
3239: --
3240: -- perform rounding for amount in functional currency
3241: --
3248: p_return_status,
3249: p_error_buffer );
3250:
3251:
3252: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3253: --
3254: -- error getting min acct unit and precision
3255: -- return original unround amount to caller
3256: --
3286: RETURN l_round_amt;
3287:
3288: EXCEPTION
3289: WHEN OTHERS THEN
3290: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3291: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3292:
3293: IF (g_level_unexpected >= g_current_runtime_level ) THEN
3294: FND_LOG.STRING(g_level_unexpected,
3333: 'p_tax_curr_conv_rate = ' || to_char(p_tax_curr_conv_rate));
3334:
3335: END IF;
3336:
3337: p_return_status := FND_API.G_RET_STS_SUCCESS;
3338:
3339: --
3340: -- convert tax amt to tax currency
3341: --
3358: 'tax conversion rate = ' || to_char(p_tax_curr_conv_rate)||
3359: 'unround tax amt tax currency = ' || to_char(l_amt_tax_curr));
3360: END IF;
3361:
3362: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3363: RETURN;
3364: END IF;
3365:
3366: --
3382: END IF;
3383:
3384: EXCEPTION
3385: WHEN OTHERS THEN
3386: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3387: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3388:
3389: IF (g_level_unexpected >= g_current_runtime_level ) THEN
3390: FND_LOG.STRING(g_level_unexpected,
3424: 'p_funcl_curr_conv_rate = ' || to_char(p_funcl_curr_conv_rate));
3425:
3426: END IF;
3427:
3428: p_return_status := FND_API.G_RET_STS_SUCCESS;
3429:
3430: l_amt_funcl_curr := p_amt * p_funcl_curr_conv_rate;
3431:
3432: IF l_amt_funcl_curr IS NOT NULL THEN
3435: p_ledger_id,
3436: p_return_status,
3437: p_error_buffer);
3438:
3439: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3440: RETURN;
3441: END IF;
3442:
3443: ELSE
3456: END IF;
3457:
3458: EXCEPTION
3459: WHEN OTHERS THEN
3460: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3461: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3462:
3463: IF (g_level_unexpected >= g_current_runtime_level ) THEN
3464: FND_LOG.STRING(g_level_unexpected,
3510: 'p_tax_curr_conv_rate = ' || to_char(p_tax_curr_conv_rate));
3511:
3512: END IF;
3513:
3514: p_return_status := FND_API.G_RET_STS_SUCCESS;
3515:
3516: IF ZX_TDS_UTILITIES_PKG.g_tax_rate_info_tbl.EXISTS(p_tax_rate_id) THEN
3517: l_rate_type_code :=
3518: ZX_TDS_UTILITIES_PKG.g_tax_rate_info_tbl(p_tax_rate_id).rate_type_code;
3522: p_tax_rate_rec => l_tax_rate_rec,
3523: p_return_status => p_return_status,
3524: p_error_buffer => p_error_buffer);
3525:
3526: IF p_return_status = FND_API.G_RET_STS_SUCCESS THEN
3527: l_rate_type_code := l_tax_rate_rec.rate_type_code;
3528: END IF;
3529: END IF;
3530:
3540: l_amt_tax_curr,
3541: p_return_status,
3542: p_error_buffer,
3543: p_trx_conversion_date); --Bug7183884
3544: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3545: RETURN;
3546: END IF;
3547: ELSIF (p_tax_calculation_formula IS NULL AND p_tax_rate <> 0 ) THEN
3548: l_amt_tax_curr := (p_rounded_amt_tax_curr/p_tax_rate);
3574: END IF;
3575:
3576: EXCEPTION
3577: WHEN OTHERS THEN
3578: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3579: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3580: IF (g_level_unexpected >= g_current_runtime_level ) THEN
3581: FND_LOG.STRING(g_level_unexpected,
3582: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.conv_rnd_taxable_tax_curr',
3619: 'p_funcl_curr_conv_rate = ' || to_char(p_funcl_curr_conv_rate));
3620:
3621: END IF;
3622:
3623: p_return_status := FND_API.G_RET_STS_SUCCESS;
3624:
3625: IF ZX_TDS_UTILITIES_PKG.g_tax_rate_info_tbl.EXISTS(p_tax_rate_id) THEN
3626: l_rate_type_code :=
3627: ZX_TDS_UTILITIES_PKG.g_tax_rate_info_tbl(p_tax_rate_id).rate_type_code;
3631: p_tax_rate_rec => l_tax_rate_rec,
3632: p_return_status => p_return_status,
3633: p_error_buffer => p_error_buffer);
3634:
3635: IF p_return_status = FND_API.G_RET_STS_SUCCESS THEN
3636: l_rate_type_code := l_tax_rate_rec.rate_type_code;
3637: END IF;
3638: END IF;
3639:
3658: p_ledger_id,
3659: p_return_status,
3660: p_error_buffer);
3661:
3662: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3663: RETURN;
3664: END IF;
3665:
3666: ELSE
3681: END IF;
3682:
3683: EXCEPTION
3684: WHEN OTHERS THEN
3685: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3686: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3687:
3688: IF (g_level_unexpected >= g_current_runtime_level ) THEN
3689: FND_LOG.STRING(g_level_unexpected,
3734: 'p_trx_precision = ' || to_char(p_trx_precision)||
3735: 'p_trx_min_acct_unit = ' || to_char(p_trx_min_acct_unit));
3736: END IF;
3737:
3738: p_return_status := FND_API.G_RET_STS_SUCCESS;
3739:
3740: -- Bug 8969799
3741: --
3742: -- perform rounding for taxable amount
3766: p_event_class_mapping_id => p_event_class_mapping_id,
3767: x_product_options_rec => l_zx_proudct_options_rec,
3768: x_return_status => p_return_status);
3769:
3770: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3771: IF (g_level_statement >= g_current_runtime_level ) THEN
3772: FND_LOG.STRING(g_level_statement,
3773: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.round_line_level',
3774: 'p_return_status = ' || p_return_status);
3805: p_return_status,
3806: p_error_buffer);
3807: END IF;
3808:
3809: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3810: RETURN;
3811: END IF;
3812:
3813: -- moved the rounding of taxable amount and prorated total amount
3854: END IF;
3855:
3856: EXCEPTION
3857: WHEN OTHERS THEN
3858: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3859: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3860:
3861: IF (g_level_unexpected >= g_current_runtime_level ) THEN
3862: FND_LOG.STRING(g_level_unexpected,
3900:
3901: --
3902: -- init return status
3903: --
3904: p_return_status := FND_API.G_RET_STS_SUCCESS;
3905:
3906: --
3907: -- check whether it is in the same group of tax for
3908: -- header rounding level. l_same_tax is used for header
3913: l_same_tax,
3914: p_return_status,
3915: p_error_buffer);
3916:
3917: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3918: RETURN;
3919: END IF;
3920:
3921: --
3933: p_ledger_id,
3934: p_return_status,
3935: p_error_buffer);
3936:
3937: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3938: RETURN;
3939: END IF;
3940:
3941: IF (g_level_statement >= g_current_runtime_level ) THEN
3946: END IF;
3947:
3948: EXCEPTION
3949: WHEN OTHERS THEN
3950: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3951: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3952: IF (g_level_unexpected >= g_current_runtime_level ) THEN
3953: FND_LOG.STRING(g_level_unexpected,
3954: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.handle_header_rounding_curr',
3990: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.get_rounding_info.BEGIN',
3991: 'ZX_TDS_TAX_ROUNDING_PKG: get_rounding_info(+)');
3992: END IF;
3993:
3994: p_return_status := FND_API.G_RET_STS_SUCCESS;
3995:
3996: l_tax_id := p_tax_id;
3997:
3998: --
4003: p_tax_id,
4004: p_return_status,
4005: p_error_buffer);
4006:
4007: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4008: IF (g_level_statement >= g_current_runtime_level ) THEN
4009: FND_LOG.STRING(g_level_statement,
4010: 'ZX.PLSQL.ZX_TDS_RULE_BASE_DETM_PVT.rule_base_process',
4011: 'p_return_status = ' || p_return_status ||
4044: p_tax_currency_code,
4045: p_tax_currency_conversion_date,
4046: p_return_status,
4047: p_error_buffer);
4048: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4049: RETURN;
4050: END IF;
4051:
4052: --
4066: p_trx_currency_code,
4067: p_currency_conversion_date,
4068: p_return_status,
4069: p_error_buffer);
4070: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4071: RETURN;
4072: END IF;
4073:
4074: --
4088: END IF;
4089:
4090: EXCEPTION
4091: WHEN OTHERS THEN
4092: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4093: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4094: IF (g_level_unexpected >= g_current_runtime_level ) THEN
4095: FND_LOG.STRING(g_level_unexpected,
4096: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.get_rounding_info',
4130: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.adjust_rounding_diff_curr.BEGIN',
4131: 'ZX_TDS_TAX_ROUNDING_PKG: adjust_rounding_diff_curr(+)');
4132: END IF;
4133:
4134: p_return_status := FND_API.G_RET_STS_SUCCESS;
4135:
4136: l_count := g_hdr_rounding_curr_tbl.COUNT;
4137:
4138: IF (g_level_statement >= g_current_runtime_level ) THEN
4161: g_hdr_rounding_curr_tbl(i).ledger_id,
4162: p_return_status,
4163: p_error_buffer);
4164:
4165: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4166: RETURN;
4167: END IF;
4168:
4169: g_hdr_rounding_curr_tbl(i).rnd_tax_amt_curr :=
4182: g_hdr_rounding_curr_tbl(i).tax_rate),
4183: g_hdr_rounding_info_tbl(i).ledger_id,
4184: p_return_status,
4185: p_error_buffer);
4186: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4187: RETURN;
4188: END IF;
4189: END IF;
4190: END IF; -- total_rec_in_grp > 1
4219: END IF;
4220:
4221: EXCEPTION
4222: WHEN OTHERS THEN
4223: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4224: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4225:
4226: IF (g_level_unexpected >= g_current_runtime_level ) THEN
4227: FND_LOG.STRING(g_level_unexpected,
4271: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.adjust_rounding_diff.BEGIN',
4272: 'ZX_TDS_TAX_ROUNDING_PKG: adjust_rounding_diff(+)');
4273: END IF;
4274:
4275: p_return_status := FND_API.G_RET_STS_SUCCESS;
4276:
4277: l_count := g_hdr_rounding_info_tbl.COUNT;
4278:
4279: IF (g_level_statement >= g_current_runtime_level ) THEN
4300: g_hdr_rounding_info_tbl(i).precision,
4301: p_return_status,
4302: p_error_buffer);
4303:
4304: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4305: RETURN;
4306: END IF;
4307:
4308: IF (g_level_statement >= g_current_runtime_level ) THEN
4354: l_tax_precision,
4355: p_return_status,
4356: p_error_buffer);
4357:
4358: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4359: RETURN;
4360: END IF;
4361:
4362: g_hdr_rounding_info_tbl(i).rnd_tax_amt_tax_curr :=
4376: g_hdr_rounding_info_tbl(i).ledger_id,
4377: p_return_status,
4378: p_error_buffer);
4379:
4380: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4381: RETURN;
4382: END IF;
4383:
4384: g_hdr_rounding_info_tbl(i).rnd_tax_amt_funcl_curr :=
4406: l_tax_min_acct_unit,
4407: l_tax_precision,
4408: p_return_status,
4409: p_error_buffer);
4410: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4411: RETURN;
4412: END IF;
4413:
4414: g_hdr_rounding_info_tbl(i).rnd_taxable_amt_funcl_curr :=
4418: g_hdr_rounding_info_tbl(i).ledger_id,
4419: p_return_status,
4420: p_error_buffer);
4421:
4422: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4423: RETURN;
4424: END IF;
4425: END IF;
4426: END IF; -- g_hdr_rounding_info_tbl(i).mrc_tax_line_flag = 'Y'
4470: END IF;
4471:
4472: EXCEPTION
4473: WHEN OTHERS THEN
4474: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4475: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4476:
4477: IF (g_level_unexpected >= g_current_runtime_level ) THEN
4478: FND_LOG.STRING(g_level_unexpected,
4515:
4516: --
4517: -- init return status
4518: --
4519: p_return_status := FND_API.G_RET_STS_SUCCESS;
4520:
4521: j := g_hdr_rounding_curr_tbl.COUNT;
4522:
4523: IF p_same_tax = 'N' THEN
4569: 'ZX_TDS_TAX_ROUNDING_PKG: update_header_rounding_curr(-)');
4570: END IF;
4571: EXCEPTION
4572: WHEN OTHERS THEN
4573: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4574: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4575:
4576: IF (g_level_unexpected >= g_current_runtime_level ) THEN
4577: FND_LOG.STRING(g_level_unexpected,
4626:
4627: --
4628: -- init return status
4629: --
4630: p_return_status := FND_API.G_RET_STS_SUCCESS;
4631:
4632: j := g_hdr_rounding_info_tbl.COUNT;
4633:
4634: --
4719: 'ZX_TDS_TAX_ROUNDING_PKG: update_header_rounding_info(-)');
4720: END IF;
4721: EXCEPTION
4722: WHEN OTHERS THEN
4723: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4724: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4725:
4726: IF (g_level_unexpected >= g_current_runtime_level ) THEN
4727: FND_LOG.STRING(g_level_unexpected,
4809:
4810: --
4811: -- init return status
4812: --
4813: p_return_status := FND_API.G_RET_STS_SUCCESS;
4814: --
4815: -- get unround amt
4816: --
4817: l_prd_total_tax_amt := p_prd_total_tax_amt;
4835: l_tax_currency_conversion_type,
4836: p_return_status,
4837: p_error_buffer);
4838:
4839: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4840: RETURN;
4841: END IF;
4842:
4843: IF (g_level_statement >= g_current_runtime_level ) THEN
4876: p_unrounded_tax_amt,
4877: p_return_status,
4878: p_error_buffer);
4879:
4880: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4881: RETURN;
4882: END IF;
4883:
4884: --
4897: l_funcl_precision,
4898: p_return_status,
4899: p_error_buffer );
4900:
4901: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4902: RETURN;
4903: END IF;
4904:
4905: IF l_tax_currency_conversion_type IS NULL THEN
4953: p_trx_conversion_date => l_trx_currency_conversion_date);--Bug7183884
4954:
4955: --Bug 7109899
4956:
4957: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4958: RETURN;
4959: END IF;
4960: END IF;
4961: END IF;
4982: p_trx_conversion_date => l_trx_currency_conversion_date); --Bug7183884
4983:
4984: -- Bug 7109899
4985:
4986: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4987: RETURN;
4988: END IF;
4989: END IF;
4990: END IF;
5036: p_return_status,
5037: p_error_buffer,
5038: l_trx_currency_conversion_date);--Bug7183884
5039:
5040: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5041: RETURN;
5042: END IF;
5043: END IF;
5044: END IF;
5089: -- 'Skipping the Preventive Check for currency_conversion_rate in Quote Mode');
5090: -- END IF;
5091: -- ELSIF (l_funcl_currency_code <> p_trx_currency_code) AND p_currency_conversion_rate IS NULL THEN
5092:
5093: -- p_return_status := FND_API.G_RET_STS_ERROR;
5094:
5095: -- FND_MESSAGE.SET_NAME('ZX','ZX_ROUND_NO_EXCH_RATE');
5096: -- FND_MESSAGE.SET_TOKEN('FROM_CURRENCY', p_trx_currency_code);
5097: -- FND_MESSAGE.SET_TOKEN('TO_CURRENCY', l_funcl_currency_code);
5121: p_return_status,
5122: p_error_buffer);
5123:
5124:
5125: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5126: RETURN;
5127: END IF;
5128:
5129: --
5138: p_ledger_id,
5139: p_return_status,
5140: p_error_buffer);
5141:
5142: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5143: RETURN;
5144: END IF;
5145: END IF;
5146:
5182: p_tax_amt_tax_curr,
5183: p_return_status,
5184: p_error_buffer,
5185: l_trx_currency_conversion_date); --Bug7183884
5186: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5187: RETURN;
5188: END IF;
5189: END IF;
5190: --
5201: p_tax_rate_id,
5202: p_tax_amt_funcl_curr,
5203: p_return_status,
5204: p_error_buffer);
5205: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5206: RETURN;
5207: END IF;
5208:
5209: END IF;
5247: l_tax_precision,
5248: p_return_status,
5249: p_error_buffer,
5250: l_trx_currency_conversion_date);--Bug7183884
5251: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5252: RETURN;
5253: END IF;
5254: END IF;
5255: --
5262: p_prd_total_tax_amt_funcl_curr,
5263: p_ledger_id,
5264: p_return_status,
5265: p_error_buffer);
5266: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5267: RETURN;
5268: END IF;
5269: END IF;
5270: END IF;
5278: END IF;
5279:
5280: EXCEPTION
5281: WHEN OTHERS THEN
5282: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5283: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
5284:
5285: IF (g_level_unexpected >= g_current_runtime_level ) THEN
5286: FND_LOG.STRING(g_level_unexpected,
5317: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.process_tax_line_create.BEGIN',
5318: 'ZX_TDS_TAX_ROUNDING_PKG: process_tax_line_create(+)');
5319: END IF;
5320:
5321: p_return_status := FND_API.G_RET_STS_SUCCESS;
5322:
5323: --
5324: -- init sum to 0 for fresh rounding
5325: --
5336: END IF;
5337:
5338: EXCEPTION
5339: WHEN OTHERS THEN
5340: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5341: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
5342: IF (g_level_unexpected >= g_current_runtime_level ) THEN
5343: FND_LOG.STRING(g_level_unexpected,
5344: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.process_tax_line_create',
5504: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.process_tax_line_upd_override.BEGIN',
5505: 'ZX_TDS_TAX_ROUNDING_PKG: process_tax_line_upd_override(+)');
5506: END IF;
5507:
5508: p_return_status := FND_API.G_RET_STS_SUCCESS;
5509:
5510: --
5511: -- this is new group of tax, need to get existing sum amounts
5512: --
5606: END IF;
5607:
5608: EXCEPTION
5609: WHEN OTHERS THEN
5610: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5611: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
5612: IF (g_level_unexpected >= g_current_runtime_level ) THEN
5613: FND_LOG.STRING(g_level_unexpected,
5614: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.process_tax_line_upd_override',
5644: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.chk_mandatory_col_after_round.BEGIN',
5645: 'ZX_TDS_TAX_ROUNDING_PKG: chk_mandatory_col_after_round(+)');
5646: END IF;
5647:
5648: p_return_status := FND_API.G_RET_STS_SUCCESS;
5649:
5650: IF p_tax_amt IS NULL THEN
5651: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5652: p_error_buffer := 'Tax Amount can not be NULL';
5647:
5648: p_return_status := FND_API.G_RET_STS_SUCCESS;
5649:
5650: IF p_tax_amt IS NULL THEN
5651: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5652: p_error_buffer := 'Tax Amount can not be NULL';
5653: FND_MESSAGE.SET_NAME('ZX','ZX_GENERIC_TEXT');
5654: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT',p_error_buffer);
5655: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_id IS NOT NULL THEN
5657: ELSE
5658: FND_MSG_PUB.Add;
5659: END IF;
5660: ELSIF p_taxable_amt IS NULL THEN
5661: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5662: p_error_buffer := 'Taxable Amount can not be NULL';
5663: FND_MESSAGE.SET_NAME('ZX','ZX_GENERIC_TEXT');
5664: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT',p_error_buffer);
5665: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_id IS NOT NULL THEN
5670: END IF;
5671:
5672: IF p_mrc_tax_line_flag = 'N' THEN
5673: IF p_trx_currency_code IS NULL THEN
5674: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5675: p_error_buffer := 'Trx Currency Code can not be NULL';
5676: FND_MESSAGE.SET_NAME('ZX','ZX_GENERIC_TEXT');
5677: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT',p_error_buffer);
5678: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_id IS NOT NULL THEN
5680: ELSE
5681: FND_MSG_PUB.Add;
5682: END IF;
5683: ELSIF p_tax_currency_code IS NULL THEN
5684: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5685: p_error_buffer := 'Tax Currency Code can not be NULL';
5686: FND_MESSAGE.SET_NAME('ZX','ZX_GENERIC_TEXT');
5687: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT',p_error_buffer);
5688: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_id IS NOT NULL THEN
5694: IF p_rate_type_code = 'QUANTITY' THEN
5695: --
5696: -- Bug#5506495- quantity based tax, raise error
5697: --
5698: p_return_status := FND_API.G_RET_STS_ERROR;
5699: FND_MESSAGE.SET_NAME('ZX','ZX_QTY_TAX_NO_EXCHG_RATE_TYPE');
5700: FND_MESSAGE.SET_TOKEN('TAX_CURRENCY', p_tax_currency_code);
5701: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_id IS NOT NULL THEN
5702: ZX_API_PUB.add_msg(ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
5709: IF p_rate_type_code = 'QUANTITY' THEN
5710: --
5711: -- Bug#5506495- quantity based tax, raise error
5712: --
5713: p_return_status := FND_API.G_RET_STS_ERROR;
5714: FND_MESSAGE.SET_NAME('ZX','ZX_QTY_TAX_NO_EXCHG_RATE_TYPE');
5715: FND_MESSAGE.SET_TOKEN('TAX_CURRENCY', p_tax_currency_code);
5716: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_id IS NOT NULL THEN
5717: ZX_API_PUB.add_msg(ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
5733: END IF;
5734:
5735: EXCEPTION
5736: WHEN OTHERS THEN
5737: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5738: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
5739:
5740: IF (g_level_unexpected >= g_current_runtime_level ) THEN
5741: FND_LOG.STRING(g_level_unexpected,
5783: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.update_detail_tax_lines_gt.BEGIN',
5784: 'ZX_TDS_TAX_ROUNDING_PKG: update_detail_tax_lines_gt(+)');
5785: END IF;
5786:
5787: p_return_status := FND_API.G_RET_STS_SUCCESS;
5788:
5789: l_count := p_tax_line_id_tbl.COUNT;
5790:
5791: FORALL i IN 1 .. l_count
5824: END IF;
5825:
5826: EXCEPTION
5827: WHEN OTHERS THEN
5828: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5829: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
5830:
5831: IF (g_level_unexpected >= g_current_runtime_level ) THEN
5832: FND_LOG.STRING(g_level_unexpected,
5872: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.update_zx_lines.BEGIN',
5873: 'ZX_TDS_TAX_ROUNDING_PKG: update_zx_lines(+)');
5874: END IF;
5875:
5876: p_return_status := FND_API.G_RET_STS_SUCCESS;
5877:
5878: l_count := p_tax_line_id_tbl.COUNT;
5879:
5880: -- update zx_lines
5947: END IF;
5948:
5949: EXCEPTION
5950: WHEN OTHERS THEN
5951: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5952: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
5953:
5954: IF (g_level_unexpected >= g_current_runtime_level ) THEN
5955: FND_LOG.STRING(g_level_unexpected,
6264:
6265: --
6266: -- init error buffer and return status
6267: --
6268: p_return_status := FND_API.G_RET_STS_SUCCESS;
6269: p_error_buffer := NULL;
6270:
6271: OPEN get_trx_id_csr;
6272: LOOP
6296: init_header_group(l_prev_hdr_grp_rec,
6297: p_return_status,
6298: p_error_buffer);
6299:
6300: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6301: RETURN;
6302: END IF;
6303:
6304: --
6455: --p_event_class_rec.quote_flag,
6456: p_return_status,
6457: p_error_buffer);
6458:
6459: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6460: EXIT;
6461: END IF;
6462:
6463: IF l_rounding_level_code_tbl(i) = 'HEADER' THEN
6576: l_same_tax,
6577: p_return_status,
6578: p_error_buffer);
6579:
6580: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6581: EXIT;
6582: END IF;
6583:
6584: -- when not in the same rounding group
6594: l_sum_rnd_tax_curr,
6595: l_sum_rnd_funcl_curr,
6596: p_return_status,
6597: p_error_buffer);
6598: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6599: EXIT;
6600: END IF;
6601: ELSIF (p_event_class_rec.tax_event_type_code = 'UPDATE' OR
6602: p_event_class_rec.tax_event_type_code = 'OVERRIDE_TAX') THEN
6608: l_sum_rnd_funcl_curr,
6609: p_event_class_rec,
6610: p_return_status,
6611: p_error_buffer);
6612: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6613: EXIT;
6614: END IF;
6615: END IF;
6616:
6650: l_ledger_id_tbl(i),
6651: p_return_status,
6652: p_error_buffer);
6653:
6654: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6655: EXIT;
6656: END IF;
6657: END IF;
6658: --
6675: p_return_status => p_return_status,
6676: p_error_buffer => p_error_buffer);
6677:
6678:
6679: IF p_return_status = FND_API.G_RET_STS_SUCCESS THEN
6680: l_rate_type_code := l_tax_rate_rec.rate_type_code;
6681: END IF;
6682: END IF;
6683:
6681: END IF;
6682: END IF;
6683:
6684: --Bug 7109899
6685: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6686: EXIT;
6687: END IF;
6688: END IF;
6689:
6698: l_rate_type_code,
6699: p_return_status,
6700: p_error_buffer);
6701:
6702: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6703: EXIT;
6704: END IF;
6705: END IF;
6706:
6707: END LOOP;
6708:
6709: --Bug 7109899
6710:
6711: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6712: RETURN;
6713: END IF;
6714:
6715: --
6737: p_tax_line_id_tbl => l_tax_line_id_tbl,
6738: p_return_status => p_return_status,
6739: p_error_buffer => p_error_buffer);
6740:
6741: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6742: EXIT;
6743: END IF;
6744:
6745: EXIT WHEN get_round_info_csr%NOTFOUND;
6746:
6747: END LOOP;
6748:
6749: CLOSE get_round_info_csr;
6750: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6751: RETURN;
6752: END IF;
6753:
6754: --
6758: --
6759: adjust_rounding_diff(
6760: p_return_status,
6761: p_error_buffer);
6762: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6763: RETURN;
6764: END IF;
6765: END LOOP;
6766:
6772: END IF;
6773:
6774: EXCEPTION
6775: WHEN OTHERS THEN
6776: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6777: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
6778:
6779: IF (g_level_unexpected >= g_current_runtime_level ) THEN
6780: FND_LOG.STRING(g_level_unexpected,
6820:
6821: --
6822: -- init return status
6823: --
6824: p_return_status := FND_API.G_RET_STS_SUCCESS;
6825:
6826: -- convert and round for functional currency
6827: --
6828: IF p_rounded_tax_amt <> 0 THEN
6838: p_conv_rnd_tax_amt_curr,
6839: p_ledger_id,
6840: p_return_status,
6841: p_error_buffer);
6842: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6843: RETURN;
6844: END IF;
6845: END IF;
6846: IF p_rounded_taxable_amt <> 0 THEN
6860: p_tax_rate_id,
6861: p_conv_rnd_tax_amt_curr,
6862: p_return_status,
6863: p_error_buffer);
6864: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6865: RETURN;
6866: END IF;
6867: END IF; -- end functional currency
6868:
6874: END IF;
6875:
6876: EXCEPTION
6877: WHEN OTHERS THEN
6878: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6879: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
6880:
6881: IF (g_level_unexpected >= g_current_runtime_level ) THEN
6882: FND_LOG.STRING(g_level_unexpected,
6966:
6967: --
6968: -- init return status
6969: --
6970: p_return_status := FND_API.G_RET_STS_SUCCESS;
6971:
6972: --
6973: -- get amount columns and other rounding info
6974: --
7028: l_tax_rate_id_tbl(i),
7029: p_return_status,
7030: p_error_buffer);
7031:
7032: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7033: EXIT;
7034: END IF;
7035: END LOOP;
7036:
7033: EXIT;
7034: END IF;
7035: END LOOP;
7036:
7037: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7038: EXIT;
7039: END IF;
7040:
7041: --
7055: l_tax_line_id_tbl,
7056: p_return_status,
7057: p_error_buffer);
7058:
7059: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7060: EXIT;
7061: END IF;
7062:
7063: ELSE
7068: EXIT;
7069: END IF; -- end of count > 0
7070: END LOOP;
7071:
7072: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7073: CLOSE get_round_line_level_curr_csr;
7074: RETURN;
7075: END IF;
7076:
7082: END IF;
7083:
7084: EXCEPTION
7085: WHEN OTHERS THEN
7086: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7087: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
7088: IF get_round_line_level_curr_csr%ISOPEN THEN
7089: CLOSE get_round_line_level_curr_csr;
7090: END IF;
7328:
7329: --
7330: -- init return status
7331: --
7332: p_return_status := FND_API.G_RET_STS_SUCCESS;
7333:
7334: --
7335: -- init header group record
7336: --
7337: init_header_group(l_prev_hdr_grp_rec,
7338: p_return_status,
7339: p_error_buffer);
7340:
7341: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7342: RETURN;
7343: END IF;
7344:
7345: --
7451: l_tax_rate_id_tbl(i),
7452: p_return_status,
7453: p_error_buffer);
7454:
7455: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7456: EXIT;
7457: END IF;
7458: --
7459: -- get header grouping criteria of the current record
7568: l_ledger_id_tbl(i),
7569: p_return_status,
7570: p_error_buffer);
7571:
7572: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7573: EXIT;
7574: END IF;
7575: END LOOP;
7576:
7573: EXIT;
7574: END IF;
7575: END LOOP;
7576:
7577: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7578: EXIT;
7579: END IF;
7580:
7581: --
7595: l_tax_line_id_tbl,
7596: p_return_status,
7597: p_error_buffer);
7598:
7599: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7600: EXIT;
7601: END IF;
7602:
7603: ELSE
7608: EXIT;
7609: END IF; -- end of count > 0
7610: END LOOP;
7611:
7612: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7613: CLOSE get_round_head_level_curr_csr;
7614: RETURN;
7615: END IF;
7616:
7621: --
7622: adjust_rounding_diff_curr
7623: (p_return_status,
7624: p_error_buffer);
7625: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7626: RETURN;
7627: END IF;
7628:
7629: IF (g_level_procedure >= g_current_runtime_level ) THEN
7634: END IF;
7635:
7636: EXCEPTION
7637: WHEN OTHERS THEN
7638: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7639: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
7640: IF get_round_head_level_curr_csr%ISOPEN THEN
7641: CLOSE get_round_head_level_curr_csr;
7642: END IF;
7681:
7682: --
7683: -- init error buffer and return status
7684: --
7685: p_return_status := FND_API.G_RET_STS_SUCCESS;
7686: p_error_buffer := NULL;
7687:
7688:
7689: -- ???????? where to get rounding level if not from zx_lines ????????
7707: p_return_status,
7708: p_error_buffer );
7709: END IF;
7710:
7711: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7712: RETURN;
7713: END IF;
7714:
7715: -- *****************
7729: END IF;
7730:
7731: EXCEPTION
7732: WHEN OTHERS THEN
7733: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7734: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
7735:
7736: IF (g_level_unexpected >= g_current_runtime_level ) THEN
7737: FND_LOG.STRING(g_level_unexpected,
7850:
7851: --
7852: -- init error buffer and return status
7853: --
7854: p_return_status := FND_API.G_RET_STS_SUCCESS;
7855: p_error_buffer := NULL;
7856:
7857: --
7858: -- get unrounded tax amt
7911: l_rounding_lvl_party_type,
7912: p_return_status,
7913: p_error_buffer);
7914:
7915: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7916: RETURN;
7917: END IF;
7918:
7919: -- get rounding info from zx_taxes_b
7971: END IF;
7972:
7973: EXCEPTION
7974: WHEN OTHERS THEN
7975: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7976: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
7977:
7978: FND_MESSAGE.SET_NAME('ZX','ZX_UNEXPECTED_ERROR');
7979: FND_MSG_PUB.Add;
8042: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.Get_Supplier_Site',
8043: 'p_account_id : ' || TO_CHAR(p_account_id));
8044: END IF;
8045:
8046: p_return_status := FND_API.G_RET_STS_SUCCESS;
8047: p_rounding_level_code := NULL;
8048: p_rounding_rule_code := NULL;
8049:
8050:
8188: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.Get_Reg_Site_Uses',
8189: 'p_site_use_id : ' || TO_CHAR(p_site_use_id));
8190: END IF;
8191:
8192: p_return_status := FND_API.G_RET_STS_SUCCESS;
8193: p_rounding_level_code := NULL;
8194: p_rounding_rule_code := NULL;
8195:
8196: IF ZX_GLOBAL_STRUCTURES_PKG.g_cust_site_use_info_tbl.exists(p_site_use_id) then
8300: 'p_account_id : ' || TO_CHAR(p_account_id)) ;
8301:
8302: END IF;
8303:
8304: p_return_status := FND_API.G_RET_STS_SUCCESS;
8305: p_rounding_level_code := NULL;
8306: p_rounding_rule_code := NULL;
8307:
8308: IF ZX_GLOBAL_STRUCTURES_PKG.g_cust_acct_info_tbl.exists(p_account_id) THEN
8392: 'ZX.PLSQL.ZX_TDS_TAX_ROUNDING_PKG.Get_Registration_Party',
8393: 'p_party_tax_profile_id : ' || TO_CHAR(p_party_tax_profile_id)) ;
8394: END IF;
8395:
8396: p_return_status := FND_API.G_RET_STS_SUCCESS;
8397: p_rounding_level_code := NULL;
8398: p_rounding_rule_code := NULL;
8399:
8400:
8485: 'p_site_use_id : ' || TO_CHAR(p_site_use_id));
8486:
8487: END IF;
8488:
8489: p_return_status := FND_API.G_RET_STS_SUCCESS;
8490: p_rounding_level_code := NULL;
8491: p_rounding_rule_code := NULL;
8492:
8493:
8501: ,p_rounding_level_code
8502: ,p_rounding_rule_code
8503: ,p_return_status
8504: );
8505: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8506: RETURN;
8507: End IF;
8508:
8509: ELSIF p_account_type_code = 'CUSTOMER' THEN
8516: ,p_rounding_level_code
8517: ,p_rounding_rule_code
8518: ,p_return_status
8519: );
8520: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8521: RETURN;
8522: END IF;
8523:
8524: -- Get registration account level
8528: ,p_rounding_level_code
8529: ,p_rounding_rule_code
8530: ,p_return_status
8531: );
8532: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8533: RETURN;
8534: END IF;
8535:
8536: END If;
8546: ,p_rounding_rule_code
8547: ,p_return_status
8548: );
8549:
8550: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8551: RETURN;
8552: END IF;
8553:
8554: IF p_rounding_level_code IS NULL THEN
8569: END IF;
8570:
8571: EXCEPTION
8572: WHEN OTHERS THEN
8573: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
8574: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
8575:
8576: IF (g_level_unexpected >= g_current_runtime_level ) THEN
8577: FND_LOG.STRING(g_level_unexpected,
8613: ' p_ledger_id = ' || to_char(p_ledger_id));
8614:
8615: END IF;
8616:
8617: p_return_status := FND_API.G_RET_STS_SUCCESS;
8618:
8619: --
8620: -- get functional currency info
8621: --
8635: (p_ledger_id,
8636: p_return_status,
8637: p_error_buffer );
8638:
8639: IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8640: --
8641: -- error getting min acct unit and precision
8642: -- return original unround amount to caller
8643: --
8663: END IF;
8664:
8665: EXCEPTION
8666: WHEN OTHERS THEN
8667: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
8668: p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
8669:
8670: IF (g_level_unexpected >= g_current_runtime_level ) THEN
8671: FND_LOG.STRING(g_level_unexpected,