The following lines contain the word 'select', 'insert', 'update' or 'delete':
c_PRICE_UPDATE_TOLERANCE CONSTANT VARCHAR2(30) := 'PRICE_UPDATE_TOLERANCE';
D_price_update_tol_ge_zero CONSTANT VARCHAR2(100) :=
PO_LOG.get_subprogram_base(D_PACKAGE_BASE,'price_update_tol_ge_zero');
PROCEDURE price_update_tol_ge_zero(
p_header_id_tbl IN PO_TBL_NUMBER
, p_price_update_tol_tbl IN PO_TBL_NUMBER
, x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
, x_result_type OUT NOCOPY VARCHAR2
)
IS
BEGIN
PO_VALIDATION_HELPER.greater_or_equal_zero(
p_calling_module => D_price_update_tol_ge_zero
, p_null_allowed_flag => PO_CORE_S.g_parameter_YES
, p_value_tbl => p_price_update_tol_tbl
, p_entity_id_tbl => p_header_id_tbl
, p_entity_type => c_entity_type_HEADER
, p_column_name => c_PRICE_UPDATE_TOLERANCE
, p_message_name => PO_MESSAGE_S.PO_ALL_ENTER_VALUE_GE_ZERO
, x_results => x_results
, x_result_type => x_result_type
);
END price_update_tol_ge_zero;
INSERT INTO PO_VALIDATION_RESULTS_GT
( result_set_id
, result_type
, entity_type
, entity_id
, column_name
, column_val
, message_name
)
SELECT
x_result_set_id
, PO_VALIDATIONS.c_result_type_WARNING
, c_entity_type_HEADER
, p_header_id_tbl(i)
, c_VENDOR_ID
, TO_CHAR(p_vendor_id_tbl(i))
, PO_MESSAGE_S.PO_PO_VENDOR_ON_HOLD
FROM
PO_VENDORS SUPPLIER
WHERE
SUPPLIER.vendor_id = p_vendor_id_tbl(i)
AND SUPPLIER.hold_flag = 'Y'
;
SELECT
BOOKS.currency_code
INTO
l_func_currency_code
FROM
FINANCIALS_SYSTEM_PARAMS_ALL FIN_PARAMS
, GL_SETS_OF_BOOKS BOOKS
WHERE
FIN_PARAMS.org_id = p_org_id_tbl(i)
AND BOOKS.set_of_books_id = FIN_PARAMS.set_of_books_id
;
, p_column_val_selector => PO_VALIDATION_HELPER.c_END_DATE
, p_message_name => PO_MESSAGE_S.PO_ALL_DATE_BETWEEN_START_END
, x_results => x_results
, x_result_type => x_result_type
);
INSERT INTO PO_VALIDATION_RESULTS_GT
( result_set_id
, entity_type
, entity_id
, column_name
, column_val
, message_name
)
SELECT
x_result_set_id
, c_entity_type_HEADER
, p_header_id_tbl(i)
, c_START_DATE
, TO_CHAR(p_start_date_tbl(i))
, PO_MESSAGE_S.PO_CONTRACT_ST_LT_REF_CR --- Bug 5548899
FROM DUAL
WHERE
p_type_lookup_code_tbl(i) = c_BLANKET
AND EXISTS
( SELECT NULL
FROM
PO_LINES_ALL ORDER_LINE
WHERE
ORDER_LINE.from_header_id = p_header_id_tbl(i)
AND p_start_date_tbl(i) > ORDER_LINE.creation_date
)
;
INSERT INTO PO_VALIDATION_RESULTS_GT
( result_set_id
, entity_type
, entity_id
, column_name
, column_val
, message_name
)
SELECT
x_result_set_id
, c_entity_type_HEADER
, p_header_id_tbl(i)
, c_END_DATE
, TO_CHAR(p_end_date_tbl(i))
, PO_MESSAGE_S.PO_CONTRACT_ST_GT_REF_CR --- Bug 5548899
FROM DUAL
WHERE
p_type_lookup_code_tbl(i) = c_BLANKET
AND EXISTS
( SELECT NULL
FROM
PO_LINES_ALL ORDER_LINE
WHERE
ORDER_LINE.from_header_id = p_header_id_tbl(i)
AND p_end_date_tbl(i) < TRUNC(ORDER_LINE.creation_date)
)
;
INSERT INTO PO_VALIDATION_RESULTS_GT
( result_set_id
, entity_type
, entity_id
, column_name
, column_val
, message_name
)
SELECT
x_result_set_id
, c_entity_type_HEADER
, p_header_id_tbl(i)
, c_START_DATE
, TO_CHAR(p_start_date_tbl(i))
, PO_MESSAGE_S.PO_CONTRACT_ST_LT_REF_CR
FROM DUAL
WHERE
p_type_lookup_code_tbl(i) = c_CONTRACT
AND EXISTS
( SELECT NULL
FROM
PO_LINES_ALL ORDER_LINE
, PO_HEADERS_ALL ORDER_HEADER
WHERE
ORDER_LINE.contract_id = p_header_id_tbl(i)
AND TRUNC(p_start_date_tbl(i)) > ORDER_LINE.creation_date
AND ORDER_HEADER.po_header_id = ORDER_LINE.po_header_id
AND ORDER_HEADER.approved_date IS NOT NULL
AND NVL(ORDER_HEADER.closed_code,'X') <> c_FINALLY_CLOSED
AND NVL(ORDER_HEADER.cancel_flag,'N') <> 'Y'
)
;
INSERT INTO PO_VALIDATION_RESULTS_GT
( result_set_id
, entity_type
, entity_id
, column_name
, column_val
, message_name
)
SELECT
x_result_set_id
, c_entity_type_HEADER
, p_header_id_tbl(i)
, c_END_DATE
, TO_CHAR(p_end_date_tbl(i))
, PO_MESSAGE_S.PO_CONTRACT_ST_GT_REF_CR
FROM DUAL
WHERE
p_type_lookup_code_tbl(i) = c_CONTRACT
AND EXISTS
( SELECT NULL
FROM
PO_LINES_ALL ORDER_LINE
, PO_HEADERS_ALL ORDER_HEADER
WHERE
ORDER_LINE.contract_id = p_header_id_tbl(i)
AND p_end_date_tbl(i) < TRUNC(ORDER_LINE.creation_date)
AND ORDER_HEADER.po_header_id = ORDER_LINE.po_header_id
AND ORDER_HEADER.approved_date IS NOT NULL
AND NVL(ORDER_HEADER.closed_code,'X') <> c_FINALLY_CLOSED
AND NVL(ORDER_HEADER.cancel_flag,'N') <> 'Y'
)
;
INSERT INTO PO_SESSION_GT
( key
, num1
, num2
, char1
)
VALUES
( l_data_key
, p_header_id_tbl(i)
, p_org_id_tbl(i)
, p_segment1_tbl(i)
)
;
SELECT
num1
, char1
BULK COLLECT INTO
l_header_id_tbl
, l_segment1_tbl
FROM
PO_SESSION_GT SES
, PO_SYSTEM_PARAMETERS_ALL PARAMS
WHERE
SES.key = l_data_key
AND SES.num2 = PARAMS.org_id
AND PARAMS.manual_po_num_type = c_NUMERIC
;
INSERT INTO PO_SESSION_GT
( key
, num1
, num2
, index_char1
, char2
)
SELECT
l_data_key
, p_header_id_tbl(i)
, p_org_id_tbl(i)
, p_segment1_tbl(i)
, p_type_lookup_code_tbl(i)
FROM
PO_SYSTEM_PARAMETERS_ALL PARAMS
WHERE
PARAMS.org_id = p_org_id_tbl(i)
AND PARAMS.user_defined_po_num_code = c_MANUAL
AND p_segment1_tbl(i) IS NOT NULL
AND NOT EXISTS
( SELECT NULL
FROM PO_HEADERS_ALL SAVED_HEADER
WHERE SAVED_HEADER.po_header_id = p_header_id_tbl(i)
)
;
UPDATE PO_SESSION_GT SES
SET index_char2 = 'X'
WHERE
SES.key = l_data_key
AND
(
-- Check for currently existing documents.
EXISTS
( SELECT NULL
FROM PO_HEADERS_ALL HEADER
WHERE
HEADER.org_id = SES.num2
AND HEADER.segment1 = SES.index_char1
AND HEADER.type_lookup_code IN (c_STANDARD,c_PLANNED,c_CONTRACT,c_BLANKET)
AND HEADER.po_header_id <> SES.num1
)
OR
-- Check for previously purged documents.
EXISTS
( SELECT NULL
FROM PO_HISTORY_POS_ALL DELETED_HEADER
WHERE
DELETED_HEADER.org_id = SES.num2
AND DELETED_HEADER.segment1 = SES.index_char1
AND DELETED_HEADER.type_lookup_code IN (c_STANDARD,c_PLANNED,c_CONTRACT,c_BLANKET)
)
OR
-- Check for other in-memory documents.
EXISTS
( SELECT NULL
FROM PO_SESSION_GT UNSAVED_DATA
WHERE
UNSAVED_DATA.key = l_data_key
AND UNSAVED_DATA.num2 = SES.num2 -- org_id
AND UNSAVED_DATA.index_char1 = SES.index_char1 -- segment1
AND UNSAVED_DATA.num1 <> SES.num1 -- po_header_id
)
)
;
SELECT
SES.num1
, SES.num2
, SES.index_char1
, SES.index_char2
BULK COLLECT INTO
l_header_id_tbl
, l_org_id_tbl
, l_segment1_tbl
, l_nonunique_tbl
FROM
PO_SESSION_GT SES
WHERE
SES.key = l_data_key
AND
( SES.index_char2 = 'X'
OR
(
l_check_sourcing_flag = 'I'
AND SES.char2 IN (c_STANDARD,c_BLANKET)
)
)
;
INSERT INTO PO_ONLINE_REPORT_TEXT_GT
( online_report_id
, last_update_login
, last_updated_by
, last_update_date
, created_by
, creation_date
, line_num
, shipment_num
, distribution_num
, sequence
, message_name
, text_line
)
SELECT
p_online_report_id
, p_login_id
, p_user_id
, SYSDATE
, p_user_id
, SYSDATE
, LINE.line_num
, 0
, 0
, x_sequence + rownum
, l_message_name
, SUBSTR(l_linemsg || c_delim || TO_CHAR(LINE.line_num) || c_delim
|| l_text,1,240)
FROM
PO_LINES_GT LINE
, PO_HEADERS_GT HEADER
WHERE
LINE.expiration_date < HEADER.start_date
OR LINE.expiration_date > HEADER.end_date
;
INSERT INTO PO_ONLINE_REPORT_TEXT_GT
( online_report_id
, last_update_login
, last_updated_by
, last_update_date
, created_by
, creation_date
, line_num
, shipment_num
, distribution_num
, sequence
, message_name
, text_line
)
SELECT
p_online_report_id
, p_login_id
, p_user_id
, SYSDATE
, p_user_id
, SYSDATE
, LINE.line_num
, PRICE_BREAK.shipment_num
, 0
, x_sequence + rownum
, l_message_name
, SUBSTR(l_linemsg || c_delim || TO_CHAR(LINE.line_num) || c_delim
|| TO_CHAR(PRICE_BREAK.shipment_num) -- TODO: Need token from PM
|| l_text,1,240)
FROM
PO_LINE_LOCATIONS_ALL PRICE_BREAK
, PO_LINES_GT LINE
, PO_HEADERS_GT HEADER
WHERE
PRICE_BREAK.po_line_id = LINE.po_line_id
AND PRICE_BREAK.start_date > HEADER.end_date
;
INSERT INTO PO_ONLINE_REPORT_TEXT_GT
( online_report_id
, last_update_login
, last_updated_by
, last_update_date
, created_by
, creation_date
, line_num
, shipment_num
, distribution_num
, sequence
, message_name
, text_line
)
SELECT
p_online_report_id
, p_login_id
, p_user_id
, SYSDATE
, p_user_id
, SYSDATE
, LINE.line_num
, PRICE_BREAK.shipment_num
, 0
, x_sequence + rownum
, l_message_name
, SUBSTR(l_linemsg || c_delim || TO_CHAR(LINE.line_num) || c_delim
|| TO_CHAR(PRICE_BREAK.shipment_num) -- TODO: Need token from PM
|| l_text,1,240)
FROM
PO_LINE_LOCATIONS_ALL PRICE_BREAK
, PO_LINES_GT LINE
, PO_HEADERS_GT HEADER
WHERE
PRICE_BREAK.po_line_id = LINE.po_line_id
AND PRICE_BREAK.start_date < HEADER.start_date
;
INSERT INTO PO_ONLINE_REPORT_TEXT_GT
( online_report_id
, last_update_login
, last_updated_by
, last_update_date
, created_by
, creation_date
, line_num
, shipment_num
, distribution_num
, sequence
, message_name
, text_line
)
SELECT
p_online_report_id
, p_login_id
, p_user_id
, SYSDATE
, p_user_id
, SYSDATE
, LINE.line_num
, PRICE_BREAK.shipment_num
, 0
, x_sequence + rownum
, l_message_name
, SUBSTR(l_linemsg || c_delim || TO_CHAR(LINE.line_num) || c_delim
|| TO_CHAR(PRICE_BREAK.shipment_num) -- TODO: Need token from PM
|| l_text,1,240)
FROM
PO_LINE_LOCATIONS_ALL PRICE_BREAK
, PO_LINES_GT LINE
, PO_HEADERS_GT HEADER
WHERE
PRICE_BREAK.po_line_id = LINE.po_line_id
AND PRICE_BREAK.end_date > HEADER.end_date
;
INSERT INTO PO_ONLINE_REPORT_TEXT_GT
( online_report_id
, last_update_login
, last_updated_by
, last_update_date
, created_by
, creation_date
, line_num
, shipment_num
, distribution_num
, sequence
, message_name
, text_line
)
SELECT
p_online_report_id
, p_login_id
, p_user_id
, SYSDATE
, p_user_id
, SYSDATE
, LINE.line_num
, PRICE_BREAK.shipment_num
, 0
, x_sequence + rownum
, l_message_name
, SUBSTR(l_linemsg || c_delim || TO_CHAR(LINE.line_num) || c_delim
|| TO_CHAR(PRICE_BREAK.shipment_num) -- TODO: Need token from PM
|| l_text,1,240)
FROM
PO_LINE_LOCATIONS_ALL PRICE_BREAK
, PO_LINES_GT LINE
, PO_HEADERS_GT HEADER
WHERE
PRICE_BREAK.po_line_id = LINE.po_line_id
AND PRICE_BREAK.end_date < HEADER.start_date
;
INSERT INTO PO_VALIDATION_RESULTS_GT
( result_set_id
, entity_type
, entity_id
, message_name
, column_name
)
SELECT
x_result_set_id
, c_entity_type_HEADER
, p_header_id_tbl(i)
, PO_MESSAGE_S.PO_ALL_NOT_NULL
, c_SEGMENT1
FROM
PO_SYSTEM_PARAMETERS_ALL
WHERE
org_id = p_org_id_tbl(i)
AND USER_DEFINED_PO_NUM_CODE = c_MANUAL
AND p_segment1_tbl(i) IS NULL;