The following lines contain the word 'select', 'insert', 'update' or 'delete':
g_max_line_num_tbl.DELETE;
g_max_shipment_num_tbl.DELETE;
g_max_dist_num_tbl.DELETE;
g_max_price_diff_num_tbl.DELETE;
SELECT quotation_class_code
INTO l_quotation_class_code
FROM po_document_types
WHERE document_type_code = PO_PDOI_CONSTANTS.g_DOC_TYPE_QUOTATION
AND document_subtype = p_doc_subtype;
INSERT INTO po_session_gt(key, num1, num2)
SELECT l_key,
p_po_header_id_tbl(i),
v.max_line_num
FROM (SELECT max(line_num) AS max_line_num
FROM po_lines_all
WHERE po_header_id = p_po_header_id_tbl(i)) v
WHERE v.max_line_num IS NOT NULL;
INSERT INTO po_session_gt(key, num1, num2)
SELECT l_key,
p_po_header_id_tbl(i),
v.max_line_num
FROM (SELECT max(line_num) AS max_line_num
FROM po_lines_draft_all draft_lines
WHERE draft_id = p_draft_id_tbl(i)
AND po_header_id = p_po_header_id_tbl(i)) v
WHERE v.max_line_num IS NOT NULL;
INSERT INTO po_session_gt(key, num1, num2)
SELECT l_key,
p_po_header_id_tbl(i),
v.max_line_num
FROM (SELECT /*+ INDEX(intf_headers PO_HEADERS_INTERFACE_N5) */ -- Added as 9799280 fix
max(intf_lines.line_num) AS max_line_num
FROM po_lines_interface intf_lines,
po_headers_interface intf_headers
WHERE intf_lines.interface_header_id = intf_headers.interface_header_id
AND intf_lines.processing_id = PO_PDOI_PARAMS.g_processing_id
AND intf_headers.processing_round_num = PO_PDOI_PARAMS.g_current_round_num
AND intf_headers.processing_id = PO_PDOI_PARAMS.g_processing_id
AND intf_headers.po_header_id IS NOT NULL AND p_po_header_id_tbl(i) IS NOT NULL -- Added as part of 9799280 to handle & avoid NULL cases
AND intf_headers.po_header_id = p_po_header_id_tbl(i)) v
WHERE v.max_line_num IS NOT NULL;
DELETE FROM po_session_gt
WHERE key = l_key
RETURNING num1, num2 BULK COLLECT INTO l_po_header_id_tbl, l_max_line_num_tbl;
SELECT po_lines_s.nextval
INTO l_next_po_line_id
FROM DUAL;
INSERT INTO po_session_gt(key, num1)
SELECT l_key,
l_index_tbl(i)
FROM po_lines_draft_all
WHERE po_header_id = p_po_header_id_tbl(i)
AND draft_id = p_draft_id_tbl(i)
AND line_num = p_line_num_tbl(i);
INSERT INTO po_session_gt(key, num1)
SELECT l_key,
l_index_tbl(i)
FROM po_lines_all
WHERE po_header_id = p_po_header_id_tbl(i)
AND line_num = p_line_num_tbl(i);
INSERT INTO po_session_gt(key, num1)
SELECT l_key,
l_index_tbl(i)
FROM po_lines_interface intf_lines,
po_headers_interface intf_headers
WHERE intf_lines.interface_header_id = intf_headers.interface_header_id
AND intf_lines.processing_id = PO_PDOI_PARAMS.g_processing_id
AND intf_headers.processing_round_num =
PO_PDOI_PARAMS.g_current_round_num
AND intf_headers.po_header_id = p_po_header_id_tbl(i)
AND intf_lines.interface_line_id < p_intf_line_id_tbl(i)
AND intf_lines.interface_line_id >= p_intf_line_id_tbl(1)
AND intf_lines.line_num = p_line_num_tbl(i)
AND intf_headers.po_header_id IS NOT NULL AND p_po_header_id_tbl(i) IS NOT NULL; -- Added as 9799280 fix to handle & avoid NULL cases.
DELETE FROM po_session_gt
WHERE key = l_key
RETURNING num1 BULK COLLECT INTO l_index_tbl;
INSERT INTO po_session_gt(key, num1, num2)
SELECT l_key,
p_po_line_id_tbl(i),
v.max_shipment_num
FROM (SELECT max(shipment_num) AS max_shipment_num
FROM po_line_locations_all
WHERE po_line_id = p_po_line_id_tbl(i)) v
WHERE v.max_shipment_num IS NOT NULL;
INSERT INTO po_session_gt(key, num1, num2)
SELECT l_key,
p_po_line_id_tbl(i),
v.max_shipment_num
FROM (SELECT max(shipment_num) AS max_shipment_num
FROM po_line_locations_draft_all
WHERE draft_id = p_draft_id_tbl(i)
AND po_line_id = p_po_line_id_tbl(i)
AND NVL(delete_flag, 'N') = 'N') v
WHERE v.max_shipment_num IS NOT NULL;
INSERT INTO po_session_gt(key, num1, num2)
SELECT l_key,
p_po_line_id_tbl(i),
v.max_shipment_num
FROM (SELECT /*+ INDEX(intf_lines PO_LINES_INTERFACE_N8) */
max(intf_locs.shipment_num) AS max_shipment_num
FROM po_line_locations_interface intf_locs,
po_lines_interface intf_lines,
po_headers_interface intf_headers
WHERE intf_locs.interface_line_id = intf_lines.interface_line_id
AND intf_lines.interface_header_id = intf_headers.interface_header_id
AND intf_locs.processing_id = PO_PDOI_PARAMS.g_processing_id
AND intf_headers.processing_round_num =
PO_PDOI_PARAMS.g_current_round_num
AND intf_lines.po_line_id = p_po_line_id_tbl(i)
AND intf_lines.po_line_id IS NOT NULL AND p_po_line_id_tbl(i) IS NOT NULL ) v
WHERE v.max_shipment_num IS NOT NULL;
DELETE FROM po_session_gt
WHERE key = l_key
RETURNING num1, num2 BULK COLLECT INTO l_po_line_id_tbl, l_max_shipment_num_tbl;
SELECT po_line_locations_s.nextval
INTO l_next_line_loc_id
FROM DUAL;
INSERT INTO po_session_gt(key, num1)
SELECT l_key,
l_index_tbl(i)
FROM po_line_locations_draft_all
WHERE po_line_id = p_po_line_id_tbl(i)
AND draft_id = p_draft_id_tbl(i)
AND shipment_type = 'STANDARD'
AND shipment_num = p_shipment_num_tbl(i);
INSERT INTO po_session_gt(key, num1)
SELECT l_key,
l_index_tbl(i)
FROM po_line_locations_interface intf_locs,
po_lines_interface intf_lines,
po_headers_interface intf_headers
WHERE intf_locs.interface_line_id = intf_lines.interface_line_id
AND intf_lines.interface_header_id = intf_headers.interface_header_id
AND intf_locs.processing_id = PO_PDOI_PARAMS.g_processing_id
AND intf_headers.processing_round_num =
PO_PDOI_PARAMS.g_current_round_num
AND intf_lines.po_line_id = p_po_line_id_tbl(i)
AND intf_locs.interface_line_location_id < p_intf_line_loc_id_tbl(i)
AND intf_locs.interface_line_location_id >= p_intf_line_loc_id_tbl(1)
AND intf_locs.shipment_num = p_shipment_num_tbl(i)
AND NVL(intf_locs.shipment_type, 'STANDARD') = 'STANDARD'
AND intf_lines.po_line_id IS NOT NULL AND p_po_line_id_tbl(i) IS NOT NULL;
DELETE FROM po_session_gt
WHERE key = l_key
RETURNING num1 BULK COLLECT INTO l_index_tbl;
INSERT INTO po_session_gt(key, num1, num2)
SELECT l_key,
p_line_loc_id_tbl(i),
v.max_dist_num
FROM (SELECT max(distribution_num) AS max_dist_num
FROM po_distributions_draft_all
WHERE draft_id = p_draft_id_tbl(i)
AND line_location_id = p_line_loc_id_tbl(i)) v
WHERE v.max_dist_num IS NOT NULL;
INSERT INTO po_session_gt(key, num1, num2)
SELECT l_key,
p_line_loc_id_tbl(i),
v.max_dist_num
FROM (SELECT /*+ leading(intf_locs) INDEX(intf_locs PO_LINE_LOCATIONS_INTERFACE_N4) */
max(intf_dists.distribution_num) AS max_dist_num
FROM po_distributions_interface intf_dists,
po_line_locations_interface intf_locs,
po_headers_interface intf_headers
WHERE intf_dists.interface_line_location_id =
intf_locs.interface_line_location_id
AND intf_locs.interface_header_id = intf_headers.interface_header_id
AND intf_dists.processing_id = PO_PDOI_PARAMS.g_processing_id
AND intf_headers.processing_round_num =
PO_PDOI_PARAMS.g_current_round_num
AND intf_locs.line_location_id = p_line_loc_id_tbl(i)) v
WHERE v.max_dist_num IS NOT NULL;
DELETE FROM po_session_gt
WHERE key = l_key
RETURNING num1, num2 BULK COLLECT INTO l_line_loc_id_tbl, l_max_dist_num_tbl;
SELECT po_distributions_s.nextval
INTO l_next_dist_id
FROM DUAL;
INSERT INTO po_session_gt(key, num1)
SELECT l_key,
l_index_tbl(i)
FROM po_distributions_draft_all
WHERE line_location_id = p_line_loc_id_tbl(i)
AND draft_id = p_draft_id_tbl(i)
AND distribution_num = p_dist_num_tbl(i);
INSERT INTO po_session_gt(key, num1)
SELECT /*+ LEADING(intf_locs) */ l_key,
l_index_tbl(i)
FROM po_distributions_interface intf_dists,
po_line_locations_interface intf_locs,
po_headers_interface intf_headers
WHERE intf_dists.interface_line_location_id =
intf_locs.interface_line_location_id
AND intf_locs.interface_header_id = intf_headers.interface_header_id
AND intf_dists.processing_id = PO_PDOI_PARAMS.g_processing_id
AND intf_headers.processing_round_num =
PO_PDOI_PARAMS.g_current_round_num
AND intf_locs.line_location_id = p_line_loc_id_tbl(i)
AND intf_dists.interface_distribution_id < p_intf_dist_id_tbl(i)
AND intf_dists.interface_distribution_id >= p_intf_dist_id_tbl(1)
AND intf_dists.distribution_num = p_dist_num_tbl(i);
DELETE FROM po_session_gt
WHERE key = l_key
RETURNING num1 BULK COLLECT INTO l_index_tbl;
INSERT INTO po_session_gt(key, char1, num1, num2)
SELECT l_key,
p_entity_type_tbl(i),
p_entity_id_tbl(i),
v.max_price_diff_num
FROM (SELECT max(price_differential_num) AS max_price_diff_num
FROM po_price_diff_draft
WHERE draft_id = p_draft_id_tbl(i)
AND entity_type = p_entity_type_tbl(i)
AND entity_id = p_entity_id_tbl(i)) v
WHERE v.max_price_diff_num IS NOT NULL;
INSERT INTO po_session_gt(key, char1, num1, num2)
SELECT l_key,
p_entity_type_tbl(i),
p_entity_id_tbl(i),
v.max_price_diff_num
FROM (SELECT max(price_differential_num) AS max_price_diff_num
FROM po_price_differentials
WHERE entity_type = p_entity_type_tbl(i)
AND entity_id = p_entity_id_tbl(i)) v
WHERE v.max_price_diff_num IS NOT NULL;
DELETE FROM po_session_gt
WHERE key = l_key
RETURNING char1, num1, num2 BULK COLLECT INTO
l_entity_type_tbl, l_entity_id_tbl, l_max_price_diff_num_tbl;
INSERT INTO po_session_gt(key, num1)
SELECT l_key,
l_index_tbl(i)
FROM po_price_diff_draft
WHERE entity_type = p_entity_type_tbl(i)
AND entity_id = p_entity_id_tbl(i)
AND draft_id = p_draft_id_tbl(i)
AND price_differential_num = p_price_diff_num_tbl(i);
INSERT INTO po_session_gt(key, num1)
SELECT l_key,
l_index_tbl(i)
FROM po_price_differentials
WHERE entity_type = p_entity_type_tbl(i)
AND entity_id = p_entity_id_tbl(i)
AND price_differential_num = p_price_diff_num_tbl(i);
DELETE FROM po_session_gt
WHERE key = l_key
RETURNING num1 BULK COLLECT INTO l_index_tbl;
x_last_update_date_tbl IN OUT NOCOPY PO_TBL_DATE,
x_last_updated_by_tbl IN OUT NOCOPY PO_TBL_NUMBER,
x_last_update_login_tbl IN OUT NOCOPY PO_TBL_NUMBER,
x_creation_date_tbl IN OUT NOCOPY PO_TBL_DATE,
x_created_by_tbl IN OUT NOCOPY PO_TBL_NUMBER,
x_request_id_tbl IN OUT NOCOPY PO_TBL_NUMBER,
x_program_application_id_tbl IN OUT NOCOPY PO_TBL_NUMBER,
x_program_id_tbl IN OUT NOCOPY PO_TBL_NUMBER,
x_program_update_date_tbl IN OUT NOCOPY PO_TBL_DATE
) IS
d_api_name CONSTANT VARCHAR2(30) := 'default_who_columns';
FOR i IN 1..x_last_update_date_tbl.COUNT
LOOP
x_last_update_date_tbl(i) := NVL(x_last_update_date_tbl(i), sysdate);
x_last_updated_by_tbl(i) := NVL(x_last_updated_by_tbl(i), FND_GLOBAL.user_id);
x_last_update_login_tbl(i) := NVL(x_last_update_login_tbl(i), FND_GLOBAL.login_id);
x_program_update_date_tbl(i) := NVL(x_program_update_date_tbl(i), sysdate);
SELECT po_items_interface_sets_s.nextval
INTO l_next_set_process_id
FROM DUAL;
SELECT precision
INTO l_precision
FROM fnd_currencies
WHERE currency_code = p_currency_code;