The following lines contain the word 'select', 'insert', 'update' or 'delete':
PROCEDURE process_update_lines_in_group
(
p_group_num IN NUMBER,
x_lines IN OUT NOCOPY PO_PDOI_TYPES.lines_rec_type
);
l_headers.intf_id_index_tbl.DELETE;
PO_PDOI_MOVE_TO_DRAFT_TABS_PVT.insert_headers
(
p_headers => l_headers
);
l_rej_intf_header_id_tbl.DELETE;
DELETE FROM po_line_locations_interface
WHERE process_code = PO_PDOI_CONSTANTS.g_PROCESS_CODE_OBSOLETE
AND processing_id = PO_PDOI_PARAMS.g_processing_id;
select interface_header_id
into PO_PDOI_PARAMS.g_request.interface_header_id
from po_headers_interface
where processing_id = PO_PDOI_PARAMS.g_processing_id
and processing_round_num = 1;
l_lines.intf_id_index_tbl.DELETE;
PO_PDOI_MOVE_TO_DRAFT_TABS_PVT.insert_lines
(
x_lines => l_lines
);
PO_PDOI_LINE_PROCESS_PVT.update_line_intf_tbl
(
x_lines => l_lines
);
l_rej_intf_line_id_tbl.DELETE;
SELECT interface_line_id
BULK COLLECT INTO l_rej_intf_line_id_tbl
FROM po_lines_interface intf_line1
WHERE price_break_flag = 'Y'
AND processing_id = PO_PDOI_PARAMS.g_processing_id
AND EXISTS(
SELECT 'Y'
FROM po_lines_interface intf_line2
WHERE intf_line1.interface_header_id = intf_line2.interface_header_id
AND intf_line1.po_line_id = intf_line2.po_line_id
AND NVL(intf_line2.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_PENDING)
= PO_PDOI_CONSTANTS.g_PROCESS_CODE_REJECTED
AND NVL(intf_line2.price_break_flag, 'N') = 'N');
UPDATE po_lines_interface intf_line1
SET intf_line1.process_code = PO_PDOI_CONSTANTS.g_PROCESS_CODE_NOTIFIED
WHERE intf_line1.processing_id = PO_PDOI_PARAMS.g_processing_id
AND intf_line1.price_break_flag = 'Y'
AND EXISTS(
SELECT 'Y'
FROM po_lines_interface intf_line2
WHERE intf_line2.interface_header_id = intf_line1.interface_header_id
AND intf_line2.po_line_id = intf_line1.po_line_id
AND NVL(intf_line2.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_PENDING)
= PO_PDOI_CONSTANTS.g_PROCESS_CODE_NOTIFIED
AND NVL(intf_line2.price_break_flag, 'N') = 'N');
l_update_lines PO_PDOI_TYPES.lines_rec_type;
l_create_lines and l_update_lines inside the procedure*/
l_null_lines PO_PDOI_TYPES.lines_rec_type;
/* null the l_create_lines and l_update_lines
before calling split lines procedure in the inner loop*/
l_create_lines := l_null_lines;
l_update_lines := l_null_lines;
l_lines.intf_id_index_tbl.DELETE;
x_update_lines => l_update_lines
);
process_update_lines_in_group
(
p_group_num => l_group_num,
x_lines => l_update_lines
);
SELECT v.interface_line_id
BULK COLLECT INTO l_rej_intf_line_id_tbl
FROM po_lines_interface intf_line1,
(SELECT intf_line2.interface_line_id, max(intf_line3.interface_line_id) AS match_intf_line_id
FROM po_lines_interface intf_line2, po_lines_interface intf_line3,
po_headers_interface intf_headers
WHERE intf_line2.interface_header_id = intf_headers.interface_header_id
AND intf_headers.processing_id = PO_PDOI_PARAMS.g_processing_id
AND intf_headers.processing_round_num = PO_PDOI_PARAMS.g_current_round_num
AND intf_line2.price_break_flag = 'Y'
AND intf_line2.processing_id = PO_PDOI_PARAMS.g_processing_id
AND intf_line2.interface_header_id = intf_line3.interface_header_id
AND intf_line2.po_line_id = intf_line3.po_line_id
AND NVL(intf_line3.price_break_flag, 'N') = 'N'
AND intf_line3.interface_line_id < intf_line2.interface_line_id
GROUP BY intf_line2.interface_line_id) v
WHERE intf_line1.interface_line_id = v.match_intf_line_id
AND NVL(intf_line1.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_PENDING)
= PO_PDOI_CONSTANTS.g_PROCESS_CODE_REJECTED;
SELECT v.interface_line_id
BULK COLLECT INTO l_notified_intf_line_id_tbl
FROM po_lines_interface intf_line1,
(SELECT intf_line2.interface_line_id, max(intf_line3.interface_line_id) AS match_intf_line_id
FROM po_lines_interface intf_line2, po_lines_interface intf_line3,
po_headers_interface intf_headers
WHERE intf_line2.interface_header_id = intf_headers.interface_header_id
AND intf_headers.processing_id = PO_PDOI_PARAMS.g_processing_id
AND intf_headers.processing_round_num = PO_PDOI_PARAMS.g_current_round_num
AND intf_line2.price_break_flag = 'Y'
AND intf_line2.processing_id = PO_PDOI_PARAMS.g_processing_id
AND intf_line2.interface_header_id = intf_line3.interface_header_id
AND intf_line2.po_line_id = intf_line3.po_line_id
AND NVL(intf_line3.price_break_flag, 'N') = 'N'
AND intf_line3.interface_line_id < intf_line2.interface_line_id
GROUP BY intf_line2.interface_line_id) v
WHERE intf_line1.interface_line_id = v.match_intf_line_id
AND NVL(intf_line1.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_PENDING)
= PO_PDOI_CONSTANTS.g_PROCESS_CODE_NOTIFIED;
UPDATE po_lines_interface
SET process_code = PO_PDOI_CONSTANTS.g_PROCESS_CODE_NOTIFIED
WHERE interface_line_id = l_notified_intf_line_id_tbl(i);
PO_PDOI_MOVE_TO_DRAFT_TABS_PVT.insert_lines
(
x_lines => x_lines
);
PO_PDOI_LINE_PROCESS_PVT.update_line_intf_tbl
(
x_lines => x_lines
);
l_rej_intf_line_id_tbl.DELETE;
UPDATE po_lines_all
SET expiration_date = TRUNC(sysdate - 1)
WHERE po_line_id = p_expire_line_id_tbl(i);
PROCEDURE process_update_lines_in_group
(
p_group_num IN NUMBER,
x_lines IN OUT NOCOPY PO_PDOI_TYPES.lines_rec_type
) IS
d_api_name CONSTANT VARCHAR2(30) := 'process_update_lines_in_group';
PO_PDOI_LINE_PROCESS_PVT.derive_lines_for_update
(
x_lines => x_lines
);
PO_PDOI_LINE_PROCESS_PVT.default_lines_for_update
(
x_lines => x_lines
);
p_action => 'UPDATE',
x_lines => x_lines
);
PO_PDOI_MOVE_TO_DRAFT_TABS_PVT.update_lines
(
x_lines => x_lines
);
PO_PDOI_LINE_PROCESS_PVT.update_line_intf_tbl
(
x_lines => x_lines
);
l_rej_intf_line_id_tbl.DELETE;
END process_update_lines_in_group;
l_line_locs.intf_id_index_tbl.DELETE;
PO_PDOI_MOVE_TO_DRAFT_TABS_PVT.insert_line_locs
(
p_line_locs => l_line_locs
);
PO_PDOI_LINE_LOC_PROCESS_PVT.update_line_loc_interface
(
p_intf_line_loc_id_tbl => l_line_locs.intf_line_loc_id_tbl,
p_line_loc_id_tbl => l_line_locs.line_loc_id_tbl,
p_error_flag_tbl => l_line_locs.error_flag_tbl
);
l_rej_intf_line_loc_id_tbl.DELETE;
PO_PDOI_LINE_LOC_PROCESS_PVT.update_amount_quantity_on_line
(
p_po_line_id_tbl => l_processed_line_id_tbl,
p_draft_id_tbl => l_processed_draft_id_tbl
);
PO_PDOI_LINE_LOC_PROCESS_PVT.delete_exist_price_breaks
(
p_po_line_id_tbl => l_processed_line_id_tbl,
p_draft_id_tbl => l_processed_draft_id_tbl
);
PO_PDOI_MOVE_TO_DRAFT_TABS_PVT.insert_dists
(
p_dists => l_dists
);
l_rej_intf_dist_id_tbl.DELETE;
UPDATE po_distributions_interface
SET process_code = PO_PDOI_CONSTANTS.g_PROCESS_CODE_ACCEPTED
WHERE interface_distribution_id = l_dists.intf_dist_id_tbl(i)
AND l_dists.error_flag_tbl(i) = FND_API.g_FALSE;
PO_PDOI_MOVE_TO_DRAFT_TABS_PVT.insert_price_diffs
(
p_price_diffs => l_price_diffs
);
l_rej_intf_price_diff_id_tbl.DELETE;
UPDATE po_price_diff_interface
SET process_code = PO_PDOI_CONSTANTS.g_PROCESS_CODE_ACCEPTED
WHERE price_diff_interface_id = l_price_diffs.intf_price_diff_id_tbl(i)
AND l_price_diffs.error_flag_tbl(i) = FND_API.g_FALSE;
UPDATE po_attr_values_interface
SET process_code = PO_PDOI_CONSTANTS.g_PROCESS_CODE_ACCEPTED
WHERE interface_attr_values_id = l_attr_values.intf_attr_values_id_tbl(i)
AND l_attr_values.error_flag_tbl(i) = FND_API.g_FALSE;
UPDATE po_attr_values_tlp_interface
SET process_code = PO_PDOI_CONSTANTS.g_PROCESS_CODE_ACCEPTED
WHERE interface_attr_values_tlp_id = l_attr_values_tlp.intf_attr_values_tlp_id_tbl(i)
AND l_attr_values_tlp.error_flag_tbl(i) = FND_API.g_FALSE;