[Home] [Help]
155: from gmd_quality_config
156: where organization_id = l_samples_rec.organization_id;
157:
158: l_sample gmd_samples%rowtype;
159: test_ids gmd_api_pub.number_tab;
160: add_rslt_tab_out gmd_api_pub.gmd_results_tab;
161: add_spec_tab_out gmd_api_pub.gmd_spec_results_tab;
162:
163: -- 14635099 end
156: where organization_id = l_samples_rec.organization_id;
157:
158: l_sample gmd_samples%rowtype;
159: test_ids gmd_api_pub.number_tab;
160: add_rslt_tab_out gmd_api_pub.gmd_results_tab;
161: add_spec_tab_out gmd_api_pub.gmd_spec_results_tab;
162:
163: -- 14635099 end
164:
157:
158: l_sample gmd_samples%rowtype;
159: test_ids gmd_api_pub.number_tab;
160: add_rslt_tab_out gmd_api_pub.gmd_results_tab;
161: add_spec_tab_out gmd_api_pub.gmd_spec_results_tab;
162:
163: -- 14635099 end
164:
165:
223: ,x_user_id => l_user_id);
224:
225: IF NVL(l_user_id, -1) < 0
226: THEN
227: GMD_API_PUB.Log_Message('GMD_INVALID_USER_NAME',
228: 'l_user_name', p_user_name);
229:
230: RAISE FND_API.G_EXC_ERROR;
231: ELSE
229:
230: RAISE FND_API.G_EXC_ERROR;
231: ELSE
232: -- Added below for BUG 2711643. Hverddin
233: GMD_API_PUB.SET_USER_CONTEXT(p_user_id => l_user_id,
234: x_return_status => l_return_status);
235:
236: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
237: RAISE FND_API.G_EXC_ERROR;
246: CLOSE cur_get_appl_id;
247:
248: OPEN check_resp_lab_access(l_results_row.organization_id,l_application_id);
249: IF check_resp_lab_access%NOTFOUND THEN
250: GMD_API_PUB.Log_Message('GMD_RESP_LAB_NOACCESS');
251: CLOSE check_resp_lab_access;
252: RAISE FND_API.G_EXC_ERROR;
253: END IF;
254: CLOSE check_resp_lab_access;
320:
321:
322: -- Validate that Result Record is Not deleted
323: IF l_results_row.delete_mark = 1 THEN
324: GMD_API_PUB.Log_Message('GMD_RESULT_DELETED');
325: RAISE FND_API.G_EXC_ERROR;
326: END IF;
327:
328: -- If values have been populated for this result then
333: -- test if one has already been recorded just as in the form
334: /* IF l_results_row.result_value_num IS NOT NULL OR
335: l_results_row.result_value_char IS NOT NULL THEN
336: -- Result values have been recorded for this Result
337: GMD_API_PUB.Log_Message('GMD_RESULT_RECORDED',
338: 'l_ORGN_CODE', l_samples_rec.orgn_code,
339: 'l_SAMPLE_NO', l_samples_rec.sample_no,
340: 'l_TEST', l_tests_rec.test_code);
341: RAISE FND_API.G_EXC_ERROR;
365: l_samples_rec.sample_id);
366: FETCH c_get_event_spec INTO l_event_spec_disp_id, l_sample_disp, l_spec_id,
367: l_samples_req, l_samples_act;
368: IF c_get_event_spec%NOTFOUND THEN
369: GMD_API_PUB.Log_Message('GMD_NO_SPEC_EVENT_FOUND',
370: 'SPEC_ID', l_spec_id,
371: 'SAMP_EVENT', l_samples_rec.sampling_event_id);
372: RAISE FND_API.G_EXC_ERROR;
373: CLOSE c_get_event_spec;
381: , x_rslt_tbl => l_rslt_tbl
382: , x_return_status => l_return_status);
383:
384: IF (l_return_Status <> 'S') THEN
385: GMD_API_PUB.Log_Message('GMD_EXP_RES_DISALLOWED');
386: RAISE FND_API.G_EXC_ERROR;
387: END IF;
388: --RLNAGARA Bug5076736 end
389:
392:
393: -- Check that the result_value is Numeric
394: IF NOT GMD_RESULTS_GRP.is_value_numeric
395: ( p_char_number => p_results_rec.result_value) THEN
396: GMD_API_PUB.Log_Message('GMD_RESULT_VAL_NUM_REQD');
397: RAISE FND_API.G_EXC_ERROR;
398: END IF;
399:
400: -- l_result_value_num := p_results_rec.result_value;
402:
403: ELSIF l_tests_rec.test_type in ( 'T','V','U') THEN
404:
405: IF p_results_rec.result_value is NULL THEN
406: GMD_API_PUB.Log_Message('GMD_RESULT_VAL_CHAR_REQD');
407: RAISE FND_API.G_EXC_ERROR;
408: END IF;
409:
410: l_validate_res.result := p_results_rec.result_value;
420: l_samples_rec.sample_id);
421: FETCH c_get_event_spec INTO l_event_spec_disp_id, l_sample_disp, l_spec_id,
422: l_samples_req, l_samples_act;
423: IF c_get_event_spec%NOTFOUND THEN
424: GMD_API_PUB.Log_Message('GMD_NO_SPEC_EVENT_FOUND',
425: 'SPEC_ID', l_spec_id,
426: 'SAMP_EVENT', l_samples_rec.sampling_event_id);
427: RAISE FND_API.G_EXC_ERROR;
428: CLOSE c_get_event_spec;
435:
436: -- Results cannot be updated if the disposition is changed to one of these below
437: IF l_sample_disp in ('0RT', '4A', '5AV', '6RJ', '7CN')
438: THEN
439: GMD_API_PUB.Log_Message('GMD_SAMPLE_DISP_INVALID',
440: 'l_SAMPLE_DISP', l_sample_disp);
441: RAISE FND_API.G_EXC_ERROR;
442: END IF;
443:
446: --Commented the following code. No need to check the sample disposition.
447: /*
448: --== SHOULD THIS BE THE SAMPLE OR SAMPLE EVENT DISP
449: IF l_sample_disp NOT IN ('1P','2I') THEN
450: GMD_API_PUB.Log_Message('GMD_SAMPLE_DISP_INVALID',
451: 'l_SAMPLE_DISP', l_sample_disp);
452: RAISE FND_API.G_EXC_ERROR;
453: END IF;
454: */
535: l_tests_rec.test_id);
536: FETCH c_get_result_num INTO l_validate_res.result_num;
537: IF c_get_result_num%NOTFOUND THEN
538: CLOSE c_get_result_num;
539: GMD_API_PUB.Log_Message('GMD_RESULT_CHAR_NOTFOUND');
540: RAISE FND_API.G_EXC_ERROR;
541: END IF;
542: CLOSE c_get_result_num;
543: END IF;
554: FROM gmd_samples
555: WHERE sample_id = p_results_rec.reserve_sample_id;
556: EXCEPTION
557: WHEN NO_DATA_FOUND THEN
558: GMD_API_PUB.Log_Message('GMD_INVALID_RESERVE_SMPL');
559: RAISE FND_API.G_EXC_ERROR;
560: END;
561:
562: IF (l_samples_rec.sampling_event_id <> l_reserve_sampling_event_id) THEN
559: RAISE FND_API.G_EXC_ERROR;
560: END;
561:
562: IF (l_samples_rec.sampling_event_id <> l_reserve_sampling_event_id) THEN
563: GMD_API_PUB.Log_Message('GMD_INVALID_RESERVE_SMPL');
564: RAISE FND_API.G_EXC_ERROR;
565: END IF;
566: END IF;
567: --==================================================
584: l_results_row.consumed_qty := p_results_rec.consumed_qty;
585: END IF;
586:
587: IF (NVL(l_results_row.consumed_qty, 0) < 0) THEN
588: GMD_API_PUB.Log_Message('GMD_QM_NEGATIVE_QTY');
589: RAISE FND_API.G_EXC_ERROR;
590: --END IF; Bug 3468300: added else statement
591: ELSIF (( NVL(l_results_row.consumed_qty, 0) <> 0 )
592: AND (NVL(l_results_row.test_uom, '0') = '0' )) THEN
595: l_results_row.test_uom := p_results_rec.test_qty_uom; /*NSRIVAST, INVCONV*/
596: END IF;
597:
598: IF ( NVL(l_results_row.test_uom, '0') = '0' ) THEN
599: GMD_API_PUB.Log_Message('GMD_QM_TEST_UOM');
600: RAISE FND_API.G_EXC_ERROR;
601: END IF;
602: END IF;
603:
692: l_samples_rec.sample_id);
693: FETCH c_get_event_spec INTO l_event_spec_disp_id, l_sample_disp, l_spec_id,
694: l_samples_req, l_samples_act;
695: IF c_get_event_spec%NOTFOUND THEN
696: GMD_API_PUB.Log_Message('GMD_NO_SPEC_EVENT_FOUND',
697: 'SPEC_ID', l_spec_id,
698: 'SAMP_EVENT', l_samples_rec.sampling_event_id);
699: RAISE FND_API.G_EXC_ERROR;
700: CLOSE c_get_event_spec;
924:
925: IF (c_sample_event%NOTFOUND)
926: THEN
927: CLOSE c_sample_event;
928: GMD_API_PUB.Log_Message('GMD_NO_SPEC_EVENT_FOUND',
929: 'EVENT_SPEC_DISP_ID', l_event_spec_disp_id);
930: RAISE FND_API.G_EXC_ERROR;
931: END IF;
932: CLOSE c_sample_event;
1006: , p_commit IN VARCHAR2
1007: , p_validation_level IN NUMBER
1008: , p_user_name IN VARCHAR2
1009: , p_sample_rec IN GMD_SAMPLES%ROWTYPE
1010: , p_test_id_tab IN GMD_API_PUB.number_tab
1011: , p_event_spec_disp_id IN NUMBER
1012: , x_results_tab OUT NOCOPY GMD_API_PUB.gmd_results_tab
1013: , x_spec_results_tab OUT NOCOPY GMD_API_PUB.gmd_spec_results_tab
1014: , x_return_status OUT NOCOPY VARCHAR2
1008: , p_user_name IN VARCHAR2
1009: , p_sample_rec IN GMD_SAMPLES%ROWTYPE
1010: , p_test_id_tab IN GMD_API_PUB.number_tab
1011: , p_event_spec_disp_id IN NUMBER
1012: , x_results_tab OUT NOCOPY GMD_API_PUB.gmd_results_tab
1013: , x_spec_results_tab OUT NOCOPY GMD_API_PUB.gmd_spec_results_tab
1014: , x_return_status OUT NOCOPY VARCHAR2
1015: , x_msg_count OUT NOCOPY NUMBER
1016: , x_msg_data OUT NOCOPY VARCHAR2
1009: , p_sample_rec IN GMD_SAMPLES%ROWTYPE
1010: , p_test_id_tab IN GMD_API_PUB.number_tab
1011: , p_event_spec_disp_id IN NUMBER
1012: , x_results_tab OUT NOCOPY GMD_API_PUB.gmd_results_tab
1013: , x_spec_results_tab OUT NOCOPY GMD_API_PUB.gmd_spec_results_tab
1014: , x_return_status OUT NOCOPY VARCHAR2
1015: , x_msg_count OUT NOCOPY NUMBER
1016: , x_msg_data OUT NOCOPY VARCHAR2
1017: )
1020: l_api_version CONSTANT NUMBER := 2.0;
1021: l_msg_count NUMBER :=0;
1022: l_msg_data VARCHAR2(2000);
1023: l_return_status VARCHAR2(1):=FND_API.G_RET_STS_SUCCESS;
1024: l_results_tab GMD_API_PUB.gmd_results_tab;
1025: l_spec_results_tab GMD_API_PUB.gmd_spec_results_tab;
1026: l_spec_results_row GMD_SPEC_RESULTS%ROWTYPE;
1027: l_user_id NUMBER(15);
1028: l_date DATE := SYSDATE;
1021: l_msg_count NUMBER :=0;
1022: l_msg_data VARCHAR2(2000);
1023: l_return_status VARCHAR2(1):=FND_API.G_RET_STS_SUCCESS;
1024: l_results_tab GMD_API_PUB.gmd_results_tab;
1025: l_spec_results_tab GMD_API_PUB.gmd_spec_results_tab;
1026: l_spec_results_row GMD_SPEC_RESULTS%ROWTYPE;
1027: l_user_id NUMBER(15);
1028: l_date DATE := SYSDATE;
1029: l_event_spec_disp_id NUMBER;
1072: ,x_user_id => l_user_id);
1073:
1074: IF NVL(l_user_id, -1) < 0
1075: THEN
1076: GMD_API_PUB.Log_Message('GMD_INVALID_USER_NAME',
1077: 'l_user_name', p_user_name);
1078:
1079: RAISE FND_API.G_EXC_ERROR;
1080: END IF;
1087: IF ( p_sample_rec.sample_id is NULL) THEN
1088: -- Validate that composite keys are present
1089:
1090: IF ( p_sample_rec.sample_no is NULL) THEN
1091: GMD_API_PUB.Log_Message('GMD_SAMPLE_NUMBER_REQD');
1092: RAISE FND_API.G_EXC_ERROR;
1093: END IF;
1094:
1095: IF ( p_sample_rec.orgn_code is NULL) THEN
1092: RAISE FND_API.G_EXC_ERROR;
1093: END IF;
1094:
1095: IF ( p_sample_rec.orgn_code is NULL) THEN
1096: GMD_API_PUB.Log_Message('GMD_SAMPLE_ORGN_CODE_REQD');
1097: RAISE FND_API.G_EXC_ERROR;
1098: END IF;
1099:
1100: END IF; -- Key Sample values Present
1102:
1103: -- Validate that test id's are present
1104:
1105: IF ( p_test_id_tab.COUNT < 1 ) THEN
1106: GMD_API_PUB.Log_Message('GMD_TEST_ID_TABLE_EMPTY');
1107: RAISE FND_API.G_EXC_ERROR;
1108: END IF;
1109:
1110: -- Validate event spec disp id is present and valid
1109:
1110: -- Validate event spec disp id is present and valid
1111:
1112: IF ( p_event_spec_disp_id is NULL) THEN
1113: GMD_API_PUB.Log_Message('GMD_EVENT_SPEC_DISP_NULL');
1114: RAISE FND_API.G_EXC_ERROR;
1115: END IF;
1116:
1117: -- Validate that the event_spec_disp_id is Valid
1118:
1119: OPEN c_check_event_spec(p_event_spec_disp_id);
1120: FETCH c_check_event_spec INTO l_event_spec_exists;
1121: IF c_check_event_spec%NOTFOUND THEN
1122: GMD_API_PUB.Log_Message('GMD_EVENT_SPEC_NOTFOUND',
1123: 'event_disp', p_event_spec_disp_id);
1124: RAISE FND_API.G_EXC_ERROR;
1125: CLOSE c_check_event_spec;
1126: END IF;
1204: -- Validate Results Record For Result Table Key Fields
1205: -- Bug 3763419 ; add Guaranteed by Manufacturer
1206: IF p_results_rec.result_value IS NULL AND
1207: p_results_rec.eval_ind NOT IN ('4C', '5O', '1Z') THEN
1208: GMD_API_PUB.Log_Message('GMD_RESULT_VALUE_REQ');
1209: RAISE FND_API.G_EXC_ERROR;
1210: END IF;
1211:
1212: --============================
1214: -- be NULL or 'Y'
1215: --============================
1216: IF ( p_results_rec.in_spec IS NOT NULL AND
1217: UPPER(p_results_rec.in_spec) <> 'Y') THEN
1218: GMD_API_PUB.Log_Message('GMD_INVALID_INSPEC_VALUE');
1219: RAISE FND_API.G_EXC_ERROR;
1220: END IF;
1221:
1222: IF p_results_rec.result_id IS NULL THEN
1225: -- Valdate Sample Definition.
1226: --============================
1227: IF ( p_results_rec.sample_id is NULL) THEN
1228: IF ( p_results_rec.sample_no is NULL) THEN
1229: GMD_API_PUB.Log_Message('GMD_SAMPLE_NUMBER_REQD');
1230: RAISE FND_API.G_EXC_ERROR;
1231: END IF;
1232:
1233: IF ( p_results_rec.organization_id is NULL) THEN /*NSRIVAST, INVCONV*/
1230: RAISE FND_API.G_EXC_ERROR;
1231: END IF;
1232:
1233: IF ( p_results_rec.organization_id is NULL) THEN /*NSRIVAST, INVCONV*/
1234: GMD_API_PUB.Log_Message('GMD_SAMPLE_ORGN_CODE_REQD');
1235: RAISE FND_API.G_EXC_ERROR;
1236: END IF;
1237: END IF;
1238:
1240: -- Validate test_code
1241: --============================
1242: IF ( p_results_rec.test_id is NULL) THEN
1243: IF ( p_results_rec.test_code is NULL) THEN
1244: GMD_API_PUB.Log_Message('GMD_TEST_ID_CODE_NULL');
1245: RAISE FND_API.G_EXC_ERROR;
1246: END IF;
1247: END IF;
1248:
1249: --============================
1250: -- Test Replicate Cnt
1251: --============================
1252: IF ( p_results_rec.test_replicate_cnt is NULL) THEN
1253: GMD_API_PUB.Log_Message('GMD_TEST_REP_CNT_REQD');
1254: RAISE FND_API.G_EXC_ERROR;
1255: END IF;
1256:
1257: END IF;
1260: WHEN FND_API.G_EXC_ERROR THEN
1261: x_return_status := FND_API.G_RET_STS_ERROR;
1262: WHEN OTHERS THEN
1263: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1264: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE',
1265: 'GMD_RESULTS_PUB.VALIDATE_INPUT',
1266: 'ERROR',SUBSTR(SQLERRM,1,100),
1267: 'POSITION','010');
1268:
1309: RAISE FND_API.G_EXC_ERROR;
1310: END IF;
1311:
1312: IF x_samples_rec.delete_mark = 1 THEN
1313: GMD_API_PUB.Log_Message('GMD_RECORD_DELETE_MARKED',
1314: 'l_table_name', 'GMD_SAMPLES',
1315: 'l_column_name', 'SAMPLE_ID',
1316: 'l_key_value', x_samples_rec.sample_id);
1317: RAISE FND_API.G_EXC_ERROR;
1321: WHEN FND_API.G_EXC_ERROR THEN
1322: x_return_status := FND_API.G_RET_STS_ERROR;
1323: WHEN OTHERS THEN
1324: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1325: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE',
1326: 'GMD_RESULTS_PUB.GET_RESULT_INFO',
1327: 'ERROR',SUBSTR(SQLERRM,1,100),
1328: 'POSITION','010');
1329: