13: -- 02/21/2002 feliu fixed bug 2231003.
14: -- 10/28/2002 feliu Change for 11.5.9
15: -- 10/28/2002 feliu added budget_request_approval for non_approval budget request.
16: -- 05/09/2003 feliu use bind variable for dynamic sql.
17: -- 12/14/2003 kdass changed table name from ams_temp_eligibility to ozf_temp_eligibility
18: -- 01/29/2004 kdass fix bug 3402233 -- removed the check for debug level for the messages.
19: -- 02/03/2004 kdass fix bug 3380548 -- added new procedure revert_approved_request
20: -- 02/12/2004 kdass fix bug 3436425 -- removed raise and exit statements from conc_validate_offer_budget
21: -- 02/23/2004 kdass fix bug 3457111 -- modified the cursor query c_check_items in check_product_market_strict
662: x_valid_flag OUT NOCOPY VARCHAR2)
663: IS
664: CURSOR c_check_items IS
665: SELECT 1
666: FROM ozf_temp_eligibility offr
667: WHERE object_type = 'OFFR'
668: AND offr.eligibility_id > 0
669: AND (
670: (NOT EXISTS
668: AND offr.eligibility_id > 0
669: AND (
670: (NOT EXISTS
671: (SELECT 1
672: FROM ozf_temp_eligibility fund
673: WHERE fund.object_type = 'FUND'
674: AND fund.exclude_flag = 'N'
675: AND fund.eligibility_id > 0
676: AND fund.eligibility_id = offr.eligibility_id))
676: AND fund.eligibility_id = offr.eligibility_id))
677: OR
678: (EXISTS
679: (SELECT 1
680: FROM ozf_temp_eligibility fund
681: WHERE fund.object_type = 'FUND'
682: AND fund.exclude_flag = 'Y'
683: AND fund.eligibility_id > 0
684: AND fund.eligibility_id = offr.eligibility_id))
685: );
686:
687: CURSOR c_check_exclude_items IS
688: SELECT 1
689: FROM ozf_temp_eligibility fund
690: WHERE fund.object_type = 'FUND'
691: AND exclude_flag = 'Y'
692: AND fund.eligibility_id > 0
693: AND EXISTS
691: AND exclude_flag = 'Y'
692: AND fund.eligibility_id > 0
693: AND EXISTS
694: (SELECT 1
695: FROM ozf_temp_eligibility offr
696: WHERE offr.object_type = 'OFFR'
697: AND offr.eligibility_id > 0
698: AND offr.eligibility_id = fund.eligibility_id);
699:
743: x_valid_flag OUT NOCOPY VARCHAR2)
744: IS
745: CURSOR c_check_exclude_items IS
746: SELECT 1
747: FROM ozf_temp_eligibility offr
748: WHERE object_type = 'OFFR'
749: AND offr.eligibility_id > 0
750: AND NOT EXISTS
751: (SELECT 1
748: WHERE object_type = 'OFFR'
749: AND offr.eligibility_id > 0
750: AND NOT EXISTS
751: (SELECT 1
752: FROM ozf_temp_eligibility fund
753: WHERE offr.eligibility_id = fund.eligibility_id
754: AND fund.object_type = 'FUND'
755: AND fund.eligibility_id > 0
756: AND fund.exclude_flag = 'Y');
756: AND fund.exclude_flag = 'Y');
757:
758: CURSOR c_check_items IS
759: SELECT 1
760: FROM ozf_temp_eligibility offr, ozf_temp_eligibility fund
761: WHERE offr.object_type = 'OFFR'
762: AND fund.eligibility_id > 0
763: AND offr.eligibility_id > 0
764: AND fund.object_type = 'FUND'
835: x_exclude_prod := FALSE;
836: SAVEPOINT denorm_product_for_one_budget;
837:
838: FND_DSQL.init;
839: FND_DSQL.add_text('INSERT INTO ozf_temp_eligibility(object_type, exclude_flag, eligibility_id) ');
840: FND_DSQL.add_text('SELECT ''FUND'', ''N'', product_id FROM (');
841: -- Get all product qualifiers for 'FUND'
842: OPEN c_get_products(p_budget_id, 'FUND', 'N');
843: LOOP
888: l_ignore := DBMS_SQL.execute(l_denorm_csr);
889: END IF;
890:
891: FND_DSQL.init;
892: FND_DSQL.add_text('INSERT INTO ozf_temp_eligibility(object_type, exclude_flag, eligibility_id) ');
893: FND_DSQL.add_text('SELECT ''FUND'', ''Y'', product_id FROM (');
894: -- for exclude product of FUND.
895:
896: OPEN c_get_products(p_budget_id,'FUND','Y');
989: x_exclude_mark := FALSE;
990: SAVEPOINT denorm_market_for_one_budget;
991:
992: FND_DSQL.init;
993: FND_DSQL.add_text('INSERT INTO ozf_temp_eligibility(object_type, exclude_flag, eligibility_id) ');
994: FND_DSQL.add_text('SELECT ''FUND'', ''N'', party_id FROM (');
995:
996: OPEN c_get_budget_market_qualifiers('N');
997:
1074: --dbms_output.put_line(l_ignore);
1075: END IF;
1076:
1077: FND_DSQL.init;
1078: FND_DSQL.add_text('INSERT INTO ozf_temp_eligibility(object_type, exclude_flag, eligibility_id) ');
1079: FND_DSQL.add_text('SELECT ''FUND'', ''Y'', party_id FROM (');
1080:
1081: OPEN c_get_budget_market_qualifiers('Y');
1082: -- Get all excluded market qualifiers for 'FUND'
1214: AND excluded_flag = p_excluded_flag;
1215:
1216: CURSOR c_count_offer_prod IS
1217: SELECT count(*)
1218: FROM ozf_temp_eligibility
1219: WHERE object_type = 'OFFR';
1220:
1221: BEGIN
1222:
1222:
1223: x_return_status := fnd_api.G_RET_STS_SUCCESS;
1224: x_valid_flag := fnd_api.G_TRUE;
1225:
1226: EXECUTE IMMEDIATE 'DELETE FROM ozf_temp_eligibility';
1227:
1228: denorm_product_for_one_budget (
1229: p_budget_id => p_actbudget_id,
1230: x_budget_prod => l_budget_prod,
1248: END IF;
1249:
1250:
1251: FND_DSQL.init;
1252: FND_DSQL.add_text('INSERT INTO ozf_temp_eligibility(object_type, exclude_flag, eligibility_id) ');
1253: FND_DSQL.add_text('SELECT ''OFFR'', ''N'', product_id FROM (' );
1254: IF p_offer_type IN ('LUMPSUM', 'SCAN_DATA') THEN
1255: OPEN c_get_products(p_object_id,'OFFR','N');
1256: LOOP
1443:
1444: x_return_status := fnd_api.G_RET_STS_SUCCESS;
1445: x_valid_flag := fnd_api.G_TRUE;
1446:
1447: EXECUTE IMMEDIATE 'DELETE FROM ozf_temp_eligibility';
1448:
1449: FND_DSQL.init;
1450: FND_DSQL.add_text('INSERT INTO ozf_temp_eligibility(object_type, exclude_flag, eligibility_id) ');
1451: FND_DSQL.add_text('SELECT ''FUND'', ''N'', product_id FROM (');
1446:
1447: EXECUTE IMMEDIATE 'DELETE FROM ozf_temp_eligibility';
1448:
1449: FND_DSQL.init;
1450: FND_DSQL.add_text('INSERT INTO ozf_temp_eligibility(object_type, exclude_flag, eligibility_id) ');
1451: FND_DSQL.add_text('SELECT ''FUND'', ''N'', product_id FROM (');
1452: -- Get all product qualifiers for 'FUND'
1453: OPEN c_get_budget_products('N');
1454: LOOP
1499: --dbms_output.put_line(l_ignore);
1500: END IF;
1501:
1502: FND_DSQL.init;
1503: FND_DSQL.add_text('INSERT INTO ozf_temp_eligibility(object_type, exclude_flag, eligibility_id) ');
1504: FND_DSQL.add_text('SELECT ''FUND'', ''Y'', product_id FROM (');
1505: -- for exclude product of FUND.
1506:
1507: OPEN c_get_budget_products('Y');
1564: l_exclude_only := TRUE;
1565: END IF;
1566:
1567: FND_DSQL.init;
1568: FND_DSQL.add_text('INSERT INTO ozf_temp_eligibility(object_type, exclude_flag, eligibility_id) ');
1569: FND_DSQL.add_text('SELECT ''OFFR'', ''N'', product_id FROM (' );
1570: IF p_offer_type IN ('LUMPSUM', 'SCAN_DATA') THEN
1571: OPEN c_get_offer_products;
1572: LOOP
1747: set org id since for customer bill to, denorm query on org-striped table ra_addresses party,ra_site_uses
1748: */
1749: set_budget_org(p_budget_id => p_actbudget_id);
1750:
1751: EXECUTE IMMEDIATE 'DELETE FROM ozf_temp_eligibility';
1752:
1753: denorm_market_for_one_budget (
1754: p_budget_id => p_actbudget_id,
1755: x_budget_mark => l_budget_mark,
1780: FETCH c_get_offer_customer INTO l_offer_type, l_offer_qualifier_id;
1781: CLOSE c_get_offer_customer;
1782:
1783: FND_DSQL.init;
1784: FND_DSQL.add_text('INSERT INTO ozf_temp_eligibility(object_type, exclude_flag, eligibility_id) ');
1785: FND_DSQL.add_text('SELECT ''OFFR'', ''N'', party_id FROM (' );
1786:
1787: IF l_offer_type IN ('LUMPSUM', 'SCAN_DATA') THEN
1788: -- for lumpsum and scandata, market eligibility can be only one customer
1962: set org id since for customer bill to, denorm query on org-striped table ra_addresses party,ra_site_uses
1963: */
1964: --set_budget_org(p_budget_id => p_actbudget_id);
1965:
1966: EXECUTE IMMEDIATE 'DELETE FROM ozf_temp_eligibility';
1967:
1968: FND_DSQL.init;
1969: FND_DSQL.add_text('INSERT INTO ozf_temp_eligibility(object_type, exclude_flag, eligibility_id) ');
1970: FND_DSQL.add_text('SELECT ''FUND'', ''N'', party_id FROM (');
1965:
1966: EXECUTE IMMEDIATE 'DELETE FROM ozf_temp_eligibility';
1967:
1968: FND_DSQL.init;
1969: FND_DSQL.add_text('INSERT INTO ozf_temp_eligibility(object_type, exclude_flag, eligibility_id) ');
1970: FND_DSQL.add_text('SELECT ''FUND'', ''N'', party_id FROM (');
1971:
1972: OPEN c_get_budget_market_qualifiers('N');
1973:
2049: --dbms_output.put_line(l_ignore);
2050: END IF;
2051:
2052: FND_DSQL.init;
2053: FND_DSQL.add_text('INSERT INTO ozf_temp_eligibility(object_type, exclude_flag, eligibility_id) ');
2054: FND_DSQL.add_text('SELECT ''FUND'', ''Y'', party_id FROM (');
2055:
2056: OPEN c_get_budget_market_qualifiers('Y');
2057: -- Get all excluded market qualifiers for 'FUND'
2148: FETCH c_get_offer_customer INTO l_offer_type, l_offer_qualifier_id;
2149: CLOSE c_get_offer_customer;
2150:
2151: FND_DSQL.init;
2152: FND_DSQL.add_text('INSERT INTO ozf_temp_eligibility(object_type, exclude_flag, eligibility_id) ');
2153: FND_DSQL.add_text('SELECT ''OFFR'', ''N'', party_id FROM (' );
2154:
2155: IF l_offer_type IN ('LUMPSUM', 'SCAN_DATA') THEN
2156: -- for lumpsum and scandata, market eligibility can be only one customer
2252: -- validate whether a budget is qualified to fund an offer in terms of
2253: -- market and product eligibility
2254: -- History
2255: -- Created yzhao 01/22/2002
2256: -- CREATE GLOBAL TEMPORARY TABLE ozf_temp_eligibility(
2257: -- OBJECT_TYPE VARCHAR2(30),
2258: -- ELIGIBILITY_ID NUMBER,
2259: -- EXCLUDE_FLAG VARCHAR2(1))
2260: -- ON COMMIT DELETE ROWS;
2606: SELECT 1
2607: FROM dual
2608: WHERE (EXISTS
2609: (SELECT 1
2610: FROM ozf_temp_eligibility
2611: WHERE object_type = 'FUND'
2612: AND exclude_flag = 'N'
2613: AND eligibility_id = p_item_id))
2614: AND (
2613: AND eligibility_id = p_item_id))
2614: AND (
2615: NOT EXISTS
2616: (SELECT 1
2617: FROM ozf_temp_eligibility
2618: WHERE object_type = 'FUND'
2619: AND exclude_flag = 'Y'
2620: AND eligibility_id = p_item_id));
2621:
2620: AND eligibility_id = p_item_id));
2621:
2622: CURSOR c_check_exclude_items(p_item_id NUMBER) IS
2623: SELECT 1
2624: FROM ozf_temp_eligibility
2625: WHERE object_type = 'FUND'
2626: AND exclude_flag = 'Y'
2627: AND eligibility_id = p_item_id;
2628:
2642: OPEN c_get_party_id;
2643: FETCH c_get_party_id INTO l_party_id;
2644: CLOSE c_get_party_id;
2645:
2646: EXECUTE IMMEDIATE 'DELETE FROM ozf_temp_eligibility';
2647:
2648: denorm_market_for_one_budget (
2649: p_budget_id => p_budget_id,
2650: x_budget_mark => l_budget_mark,
2699: END IF;
2700:
2701: l_temp_id := null;
2702: l_qualify_flag := false;
2703: EXECUTE IMMEDIATE 'DELETE FROM ozf_temp_eligibility';
2704:
2705: denorm_product_for_one_budget (
2706: p_budget_id => p_budget_id,
2707: x_budget_prod => l_budget_mark,