The following lines contain the word 'select', 'insert', 'update' or 'delete':
This procedure should be called after insert/update
of GMD_QC_TEST_VALUES_TL for test type 'L' but BEFORE
COMMIT.
PARAMETERS: In : p_test_id
OUT : x_min_range - minimum value of the whole range.
x_max_range - maximum value of the whole range.
CHANGE HISTORY: Created 09-JUL-02 MCHANDAK
===========================================================================*/
PROCEDURE CHECK_RANGE_OVERLAP(
p_test_id IN VARCHAR2,
x_min_range OUT NOCOPY NUMBER,
x_max_range OUT NOCOPY NUMBER,
x_return_status OUT NOCOPY VARCHAR2,
x_message_data OUT NOCOPY VARCHAR2) IS
l_progress VARCHAR2(3);
SELECT min_num,max_num
FROM gmd_qc_test_values_b
WHERE test_id = p_test_id
ORDER BY NVL(min_num, -999999999.999999999) ;
SELECT test_type INTO l_test_type
FROM GMD_QC_TESTS_B
WHERE test_id = p_test_id ;
SELECT DISPLAY_LABEL_NUMERIC_RANGE INTO l_test_value_desc
FROM GMD_QC_TEST_VALUES
WHERE test_id = p_test_id
AND p_test_value_num >= nvl(min_num,p_test_value_num)
AND p_test_value_num <= nvl(max_num,p_test_value_num);
SELECT test_value_desc INTO l_test_value_desc
FROM GMD_QC_TEST_VALUES
WHERE test_id = p_test_id
AND text_range_seq = p_test_value_num ;
SELECT test_value_desc INTO l_test_value_desc
FROM GMD_QC_TEST_VALUES
WHERE test_id = p_test_id
AND value_char = p_test_value_char ;
SELECT test_value_desc INTO l_test_value_desc
FROM GMD_QC_TEST_VALUES
WHERE test_id = p_test_id
AND value_char = p_test_value_char ;
not before inserting/deleting into test values table.
PARAMETERS: In : p_test_id
OUT : test_type - test type
display_precision - display precision of the test.
CHANGE HISTORY: Created 09-JUL-02 MCHANDAK
===========================================================================*/
PROCEDURE CHECK_VALID_TEST(
p_test_id IN NUMBER,
x_test_type OUT NOCOPY VARCHAR2,
x_display_precision OUT NOCOPY NUMBER,
x_return_status OUT NOCOPY VARCHAR2,
x_message_data OUT NOCOPY VARCHAR2) IS
l_progress VARCHAR2(3);
l_delete_mark NUMBER(5);
SELECT test_type,display_precision,delete_mark FROM GMD_QC_TESTS_B
WHERE test_id = p_test_id ;
FETCH cr_get_test_type INTO x_test_type,x_display_precision,l_delete_mark;
IF l_delete_mark = 1 THEN
FND_MESSAGE.SET_NAME('GMD','GMD_TEST_DELETED');
SELECT NVL(MAX(text_range_seq),0) + 1 INTO x_qc_test_values_rec.text_range_seq
FROM GMD_QC_TEST_VALUES_B
WHERE test_id = x_qc_test_values_rec.test_id ;
PROCEDURE NAME: validate_before_insert
DESCRIPTION: This procedure validates test values before insert.
PARAMETERS:
CHANGE HISTORY: Created 09-JUL-02 MCHANDAK
===========================================================================*/
PROCEDURE VALIDATE_BEFORE_INSERT(
p_qc_test_values_rec IN GMD_QC_TEST_VALUES%ROWTYPE,
x_qc_test_values_rec OUT NOCOPY GMD_QC_TEST_VALUES%ROWTYPE,
x_return_status OUT NOCOPY VARCHAR2,
x_message_data OUT NOCOPY VARCHAR2) IS
l_progress VARCHAR2(3);
SELECT 'x' FROM GMD_QC_TEST_VALUES_B
WHERE test_id = p_qc_test_values_rec.test_id
AND value_char = p_qc_test_values_rec.value_char ;
FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.VALIDATE_BEFORE_INSERT');
END validate_before_insert;
PROCEDURE NAME: validate_after_insert_all
DESCRIPTION: This procedure updates min_value_num and max_value_num
in test header table and also validates if the range
doesnt overlap.
NOTE : Call after all test values are inserted.
===========================================================================*/
PROCEDURE VALIDATE_AFTER_INSERT_ALL(
p_gmd_qc_tests_rec IN GMD_QC_TESTS%ROWTYPE,
x_gmd_qc_tests_rec OUT NOCOPY GMD_QC_TESTS%ROWTYPE,
x_return_status OUT NOCOPY VARCHAR2,
x_message_data OUT NOCOPY VARCHAR2) IS
l_progress VARCHAR2(3);
SELECT NVL(COUNT(1),0) INTO l_test_values_count
FROM GMD_QC_TEST_VALUES_B
WHERE test_id = x_gmd_qc_tests_rec.test_id ;
UPDATE GMD_QC_TESTS_B
SET min_value_num = l_min_range,
max_value_num = l_max_range
WHERE
test_id = x_gmd_qc_tests_rec.test_id ;
SELECT MIN(text_range_seq),MAX(text_range_seq)
INTO l_min_range,l_max_range
FROM GMD_QC_TEST_VALUES_B
WHERE test_id = x_gmd_qc_tests_rec.test_id;
UPDATE GMD_QC_TESTS_B
SET min_value_num = l_min_range,
max_value_num = l_max_range
WHERE
test_id = x_gmd_qc_tests_rec.test_id ;
FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.VALIDATE_AFTER_INSERT_ALL');
END validate_after_insert_all;
PROCEDURE NAME: validate_before_delete
DESCRIPTION: This procedure checks whether test header is not marked
for purge.
PARAMETERS:
CHANGE HISTORY: Created 09-JUL-02 MCHANDAK
===========================================================================*/
PROCEDURE VALIDATE_BEFORE_DELETE(
p_test_value_id IN NUMBER,
x_return_status OUT NOCOPY VARCHAR2,
x_message_data OUT NOCOPY VARCHAR2) IS
l_progress VARCHAR2(3);
SELECT test_id FROM GMD_QC_TEST_VALUES_B
WHERE test_value_id = p_test_value_id ;
FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.VALIDATE_BEFORE_DELETE');
END VALIDATE_BEFORE_DELETE ;
PROCEDURE VALIDATE_AFTER_DELETE_ALL(
p_gmd_qc_tests_rec IN GMD_QC_TESTS%ROWTYPE,
x_gmd_qc_tests_rec OUT NOCOPY GMD_QC_TESTS%ROWTYPE,
x_return_status OUT NOCOPY VARCHAR2,
x_message_data OUT NOCOPY VARCHAR2) IS
l_progress VARCHAR2(3);
VALIDATE_AFTER_INSERT_ALL(
p_gmd_qc_tests_rec => p_gmd_qc_tests_rec,
x_gmd_qc_tests_rec => x_gmd_qc_tests_rec,
x_return_status => x_return_status,
x_message_data => x_message_data ) ;
FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.VALIDATE_AFTER_DELETE_ALL');
END VALIDATE_AFTER_DELETE_ALL ;
SELECT text_range_seq INTO l_seq
FROM GMD_QC_TEST_VALUES_B
WHERE test_id = p_test_id
AND value_char = p_value_char ;