186:
187: BEGIN
188:
189: -- Initialize API return status to success
190: x_return_status := FND_API.G_RET_STS_SUCCESS;
191:
192: IF (p_parent_lot_number IS NOT NULL) THEN
193: OPEN c_item_parentlot;
194: FETCH c_item_parentlot INTO l_dummy;
212: EXCEPTION
213:
214: WHEN ITEM_PARENTLOT_NOT_FOUND THEN
215: gmd_api_pub.log_message('GMD_ITEM_PARENTLOT_NOT_FOUND');
216: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
217: x_return_status := FND_API.G_RET_STS_ERROR ;
218: WHEN ITEM_LOT_NOT_FOUND THEN
219: gmd_api_pub.log_message('GMD_ITEM_LOT_NOT_FOUND');
220: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
213:
214: WHEN ITEM_PARENTLOT_NOT_FOUND THEN
215: gmd_api_pub.log_message('GMD_ITEM_PARENTLOT_NOT_FOUND');
216: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
217: x_return_status := FND_API.G_RET_STS_ERROR ;
218: WHEN ITEM_LOT_NOT_FOUND THEN
219: gmd_api_pub.log_message('GMD_ITEM_LOT_NOT_FOUND');
220: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
221: x_return_status := FND_API.G_RET_STS_ERROR ;
216: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
217: x_return_status := FND_API.G_RET_STS_ERROR ;
218: WHEN ITEM_LOT_NOT_FOUND THEN
219: gmd_api_pub.log_message('GMD_ITEM_LOT_NOT_FOUND');
220: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
221: x_return_status := FND_API.G_RET_STS_ERROR ;
222: WHEN OTHERS THEN
223: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_parentlot_lot','ERROR', SUBSTR(SQLERRM,1,100));
224: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
217: x_return_status := FND_API.G_RET_STS_ERROR ;
218: WHEN ITEM_LOT_NOT_FOUND THEN
219: gmd_api_pub.log_message('GMD_ITEM_LOT_NOT_FOUND');
220: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
221: x_return_status := FND_API.G_RET_STS_ERROR ;
222: WHEN OTHERS THEN
223: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_parentlot_lot','ERROR', SUBSTR(SQLERRM,1,100));
224: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
225: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
220: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
221: x_return_status := FND_API.G_RET_STS_ERROR ;
222: WHEN OTHERS THEN
223: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_parentlot_lot','ERROR', SUBSTR(SQLERRM,1,100));
224: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
225: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
226: END validate_parentlot_lot;
227:
228: /*=============================================================================
221: x_return_status := FND_API.G_RET_STS_ERROR ;
222: WHEN OTHERS THEN
223: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_parentlot_lot','ERROR', SUBSTR(SQLERRM,1,100));
224: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
225: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
226: END validate_parentlot_lot;
227:
228: /*=============================================================================
229: Procedure to validate the lpn value.
269:
270: BEGIN
271:
272: -- Initialize API return status to success
273: x_return_status := FND_API.G_RET_STS_SUCCESS;
274:
275: IF (x_lpn_id IS NOT NULL) THEN
276: OPEN c_item_lpn_id;
277: FETCH c_item_lpn_id INTO x_lpn_id, x_lpn;
293: EXCEPTION
294:
295: WHEN ITEM_LPN_NOT_FOUND THEN
296: gmd_api_pub.log_message('GMD_ITEM_LPN_NOT_FOUND');
297: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
298: x_return_status := FND_API.G_RET_STS_ERROR ;
299: WHEN OTHERS THEN
300: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_lpn','ERROR', SUBSTR(SQLERRM,1,100));
301: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
294:
295: WHEN ITEM_LPN_NOT_FOUND THEN
296: gmd_api_pub.log_message('GMD_ITEM_LPN_NOT_FOUND');
297: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
298: x_return_status := FND_API.G_RET_STS_ERROR ;
299: WHEN OTHERS THEN
300: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_lpn','ERROR', SUBSTR(SQLERRM,1,100));
301: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
302: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
297: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
298: x_return_status := FND_API.G_RET_STS_ERROR ;
299: WHEN OTHERS THEN
300: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_lpn','ERROR', SUBSTR(SQLERRM,1,100));
301: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
302: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
303: END validate_lpn;
304:
305: /*=============================================================================
298: x_return_status := FND_API.G_RET_STS_ERROR ;
299: WHEN OTHERS THEN
300: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_lpn','ERROR', SUBSTR(SQLERRM,1,100));
301: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
302: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
303: END validate_lpn;
304:
305: /*=============================================================================
306: Procedure to validate the reason_code
324:
325: BEGIN
326:
327: -- Initialize API return status to success
328: x_return_status := FND_API.G_RET_STS_SUCCESS; --Bug#5752786
329: IF p_reason_code IS NOT NULL THEN
330: OPEN c_reason_code;
331: FETCH c_reason_code INTO x_reason_id;
332: IF c_reason_code%NOTFOUND THEN
338: EXCEPTION
339:
340: WHEN INVALID_REASON_CODE THEN
341: gmd_api_pub.log_message('GMD_INVALID_REASON_CODE');
342: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
343: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
344: WHEN OTHERS THEN
345: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_reason_code','ERROR', SUBSTR(SQLERRM,1,100));
346: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
339:
340: WHEN INVALID_REASON_CODE THEN
341: gmd_api_pub.log_message('GMD_INVALID_REASON_CODE');
342: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
343: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
344: WHEN OTHERS THEN
345: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_reason_code','ERROR', SUBSTR(SQLERRM,1,100));
346: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
347: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
342: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
343: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
344: WHEN OTHERS THEN
345: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_reason_code','ERROR', SUBSTR(SQLERRM,1,100));
346: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
347: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
348:
349: END validate_reason_code;
350:
343: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
344: WHEN OTHERS THEN
345: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_reason_code','ERROR', SUBSTR(SQLERRM,1,100));
346: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
347: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
348:
349: END validate_reason_code;
350:
351: /*=============================================================================
428:
429: BEGIN
430:
431: -- Initialize API return status to success
432: x_return_status := FND_API.G_RET_STS_SUCCESS;
433:
434: IF p_is_lot = 'Y' THEN
435: OPEN cr_lot_status;
436: FETCH cr_lot_status INTO l_dummy1,l_dummy;
451:
452: EXCEPTION
453: WHEN INVALID_LOT_STATUS THEN
454: gmd_api_pub.log_message('GMD_INVALID_LOT_STATUS');
455: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
456: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
457: WHEN INVALID_GRADE THEN
458: gmd_api_pub.log_message('GMD_INVALID_GRADE');
459: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
452: EXCEPTION
453: WHEN INVALID_LOT_STATUS THEN
454: gmd_api_pub.log_message('GMD_INVALID_LOT_STATUS');
455: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
456: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
457: WHEN INVALID_GRADE THEN
458: gmd_api_pub.log_message('GMD_INVALID_GRADE');
459: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
460: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
455: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
456: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
457: WHEN INVALID_GRADE THEN
458: gmd_api_pub.log_message('GMD_INVALID_GRADE');
459: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
460: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
461: WHEN OTHERS THEN
462: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_lot_grade_status','ERROR', SUBSTR(SQLERRM,1,100));
463: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
456: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
457: WHEN INVALID_GRADE THEN
458: gmd_api_pub.log_message('GMD_INVALID_GRADE');
459: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
460: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
461: WHEN OTHERS THEN
462: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_lot_grade_status','ERROR', SUBSTR(SQLERRM,1,100));
463: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
464: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
459: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
460: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
461: WHEN OTHERS THEN
462: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_lot_grade_status','ERROR', SUBSTR(SQLERRM,1,100));
463: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
464: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
465:
466: END validate_lot_grade_status;
467:
460: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
461: WHEN OTHERS THEN
462: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.validate_lot_grade_status','ERROR', SUBSTR(SQLERRM,1,100));
463: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
464: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
465:
466: END validate_lot_grade_status;
467:
468: /*=============================================================================
477: ) IS
478:
479: l_msg_count NUMBER :=0;
480: l_message_data VARCHAR2(2000);
481: l_return_status VARCHAR2(1):=FND_API.G_RET_STS_SUCCESS;
482:
483: quality_config GMD_QUALITY_CONFIG%ROWTYPE;
484:
485: l_non_accept_w_spec NUMBER(5);
631: BEGIN
632: l_pos :='000';
633:
634: -- Initialize API return status to success
635: x_return_status := FND_API.G_RET_STS_SUCCESS;
636:
637: IF p_update_disp_rec.sample_id IS NOT NULL THEN
638: OPEN c_get_smpl_org_id;
639: FETCH c_get_smpl_org_id INTO l_organization_id;
779:
780: EXCEPTION
781: WHEN INVALID_ORG_PARAM THEN
782: gmd_api_pub.log_message('GMD_QM_ORG_PARAMETER');
783: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
784: x_return_status := FND_API.G_RET_STS_ERROR ;
785: WHEN INVALID_DISPOSITION THEN
786: gmd_api_pub.log_message('GMD_SAMPLE_DISPOSITION_INVALID');
787: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
780: EXCEPTION
781: WHEN INVALID_ORG_PARAM THEN
782: gmd_api_pub.log_message('GMD_QM_ORG_PARAMETER');
783: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
784: x_return_status := FND_API.G_RET_STS_ERROR ;
785: WHEN INVALID_DISPOSITION THEN
786: gmd_api_pub.log_message('GMD_SAMPLE_DISPOSITION_INVALID');
787: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
788: x_return_status := FND_API.G_RET_STS_ERROR ;
783: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
784: x_return_status := FND_API.G_RET_STS_ERROR ;
785: WHEN INVALID_DISPOSITION THEN
786: gmd_api_pub.log_message('GMD_SAMPLE_DISPOSITION_INVALID');
787: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
788: x_return_status := FND_API.G_RET_STS_ERROR ;
789: WHEN NO_TESTS_CMP THEN
790: gmd_api_pub.log_message('GMD_QM_NO_CMPS_RSLT');
791: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
784: x_return_status := FND_API.G_RET_STS_ERROR ;
785: WHEN INVALID_DISPOSITION THEN
786: gmd_api_pub.log_message('GMD_SAMPLE_DISPOSITION_INVALID');
787: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
788: x_return_status := FND_API.G_RET_STS_ERROR ;
789: WHEN NO_TESTS_CMP THEN
790: gmd_api_pub.log_message('GMD_QM_NO_CMPS_RSLT');
791: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
792: x_return_status := FND_API.G_RET_STS_ERROR ;
787: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
788: x_return_status := FND_API.G_RET_STS_ERROR ;
789: WHEN NO_TESTS_CMP THEN
790: gmd_api_pub.log_message('GMD_QM_NO_CMPS_RSLT');
791: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
792: x_return_status := FND_API.G_RET_STS_ERROR ;
793: WHEN INVALID_PARAMETERS THEN
794: gmd_api_pub.log_message('GMD_INVALID_PARAMETERS');
795: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
788: x_return_status := FND_API.G_RET_STS_ERROR ;
789: WHEN NO_TESTS_CMP THEN
790: gmd_api_pub.log_message('GMD_QM_NO_CMPS_RSLT');
791: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
792: x_return_status := FND_API.G_RET_STS_ERROR ;
793: WHEN INVALID_PARAMETERS THEN
794: gmd_api_pub.log_message('GMD_INVALID_PARAMETERS');
795: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
796: x_return_status := FND_API.G_RET_STS_ERROR ;
791: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
792: x_return_status := FND_API.G_RET_STS_ERROR ;
793: WHEN INVALID_PARAMETERS THEN
794: gmd_api_pub.log_message('GMD_INVALID_PARAMETERS');
795: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
796: x_return_status := FND_API.G_RET_STS_ERROR ;
797: WHEN FND_API.G_EXC_ERROR THEN
798: x_return_status := FND_API.G_RET_STS_ERROR ;
799: WHEN OTHERS THEN
792: x_return_status := FND_API.G_RET_STS_ERROR ;
793: WHEN INVALID_PARAMETERS THEN
794: gmd_api_pub.log_message('GMD_INVALID_PARAMETERS');
795: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
796: x_return_status := FND_API.G_RET_STS_ERROR ;
797: WHEN FND_API.G_EXC_ERROR THEN
798: x_return_status := FND_API.G_RET_STS_ERROR ;
799: WHEN OTHERS THEN
800: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.Validate_disp','ERROR', SUBSTR(SQLERRM,1,100),'POSITION',l_pos);
793: WHEN INVALID_PARAMETERS THEN
794: gmd_api_pub.log_message('GMD_INVALID_PARAMETERS');
795: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
796: x_return_status := FND_API.G_RET_STS_ERROR ;
797: WHEN FND_API.G_EXC_ERROR THEN
798: x_return_status := FND_API.G_RET_STS_ERROR ;
799: WHEN OTHERS THEN
800: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.Validate_disp','ERROR', SUBSTR(SQLERRM,1,100),'POSITION',l_pos);
801: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
794: gmd_api_pub.log_message('GMD_INVALID_PARAMETERS');
795: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
796: x_return_status := FND_API.G_RET_STS_ERROR ;
797: WHEN FND_API.G_EXC_ERROR THEN
798: x_return_status := FND_API.G_RET_STS_ERROR ;
799: WHEN OTHERS THEN
800: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.Validate_disp','ERROR', SUBSTR(SQLERRM,1,100),'POSITION',l_pos);
801: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
802: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
797: WHEN FND_API.G_EXC_ERROR THEN
798: x_return_status := FND_API.G_RET_STS_ERROR ;
799: WHEN OTHERS THEN
800: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.Validate_disp','ERROR', SUBSTR(SQLERRM,1,100),'POSITION',l_pos);
801: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
802: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
803:
804: END Validate_disp;
805:
798: x_return_status := FND_API.G_RET_STS_ERROR ;
799: WHEN OTHERS THEN
800: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.Validate_disp','ERROR', SUBSTR(SQLERRM,1,100),'POSITION',l_pos);
801: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
802: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
803:
804: END Validate_disp;
805:
806:
810: disposition of the sample/group.
811: =============================================================================*/
812: PROCEDURE change_disposition (
813: p_api_version IN NUMBER
814: ,p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
815: ,p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
816: ,p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL
817: ,p_change_disp_rec IN CHANGE_DISP_REC
818: ,x_return_status OUT NOCOPY VARCHAR2
811: =============================================================================*/
812: PROCEDURE change_disposition (
813: p_api_version IN NUMBER
814: ,p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
815: ,p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
816: ,p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL
817: ,p_change_disp_rec IN CHANGE_DISP_REC
818: ,x_return_status OUT NOCOPY VARCHAR2
819: ,x_msg_count OUT NOCOPY NUMBER
812: PROCEDURE change_disposition (
813: p_api_version IN NUMBER
814: ,p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
815: ,p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
816: ,p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL
817: ,p_change_disp_rec IN CHANGE_DISP_REC
818: ,x_return_status OUT NOCOPY VARCHAR2
819: ,x_msg_count OUT NOCOPY NUMBER
820: ,x_msg_data OUT NOCOPY VARCHAR2
823: l_api_name CONSTANT VARCHAR2 (30) := 'CHANGE_DISPOSITION';
824: l_api_version CONSTANT NUMBER := 1.0;
825: l_msg_count NUMBER :=0;
826: l_message_data VARCHAR2(2000);
827: l_return_status VARCHAR2(1):=FND_API.G_RET_STS_SUCCESS;
828: l_pos VARCHAR2(5);
829: l_update_disp_rec GMD_SAMPLES_GRP.update_disp_rec;
830: l_change_rec GMD_SAMPLES_GRP.update_change_disp_rec;
831: l_sample_req_cnt NUMBER;
954: gmd_debug.put_line('Entered Procedure GMD_DISP_PUB.change_disposition');
955: END IF;
956:
957: -- Initialize API return status to success
958: x_return_status := FND_API.G_RET_STS_SUCCESS;
959:
960: l_pos := '000';
961: l_update_disp_rec.sample_id := p_change_disp_rec.sample_id;
962: l_update_disp_rec.sampling_event_id := p_change_disp_rec.sampling_event_id;
1012: IF p_change_disp_rec.to_disposition NOT IN ('4A','5AV','6RJ') THEN --correct error should be initialized
1013: IF (l_debug = 'Y') THEN
1014: gmd_debug.put_line('Not a Valid To Disposition');
1015: END IF;
1016: RAISE FND_API.G_EXC_ERROR;
1017: END IF;
1018:
1019: IF l_update_disp_rec.sample_id IS NOT NULL THEN
1020:
1086: IF (l_return_status <> 'S') THEN
1087: IF (l_debug = 'Y') THEN
1088: gmd_debug.put_line('Entered Lot/Sublot is not Valid ');
1089: END IF;
1090: RAISE FND_API.G_EXC_ERROR;
1091: ELSE
1092: UPDATE GMD_SAMPLES
1093: SET parent_lot_number = p_change_disp_rec.parent_lot_number,
1094: lot_number = p_change_disp_rec.lot_number
1137: IF (l_return_status <> 'S') THEN
1138: IF (l_debug = 'Y') THEN
1139: gmd_debug.put_line('Entered LPN is not Valid ');
1140: END IF;
1141: RAISE FND_API.G_EXC_ERROR;
1142: ELSE
1143: UPDATE GMD_SAMPLES
1144: SET lpn_id = l_lpn_id
1145: WHERE sample_id = l_update_disp_rec.sample_id ;
1209: IF (l_return_status <> 'S') THEN
1210: IF (l_debug = 'Y') THEN
1211: gmd_debug.put_line('Entered Lot/Sublot is not Valid ');
1212: END IF;
1213: RAISE FND_API.G_EXC_ERROR;
1214: ELSE
1215: UPDATE GMD_SAMPLES
1216: SET parent_lot_number = p_change_disp_rec.parent_lot_number,
1217: lot_number = p_change_disp_rec.lot_number
1258: IF (l_return_status <> 'S') THEN
1259: IF (l_debug = 'Y') THEN
1260: gmd_debug.put_line('Entered LPN is not Valid ');
1261: END IF;
1262: RAISE FND_API.G_EXC_ERROR;
1263: ELSE
1264: UPDATE GMD_SAMPLES
1265: SET lpn_id = l_lpn_id
1266: WHERE sampling_event_id = l_update_disp_rec.sampling_event_id;
1297: IF l_return_status <> 'S' THEN
1298: IF (l_debug = 'Y') THEN
1299: gmd_debug.put_line('Not a Valid Reason Code ');
1300: END IF;
1301: RAISE FND_API.G_EXC_ERROR;
1302: END IF;
1303: END IF;
1304:
1305: IF (l_update_disp_rec.no_of_samples_for_event = 1 OR l_update_disp_rec.composite_spec_disp_id IS NOT NULL) THEN
1368: IF (l_return_status <> 'S') THEN
1369: IF (l_debug = 'Y') THEN
1370: gmd_debug.put_line('Lot Status is not valid ');
1371: END IF;
1372: RAISE FND_API.G_EXC_ERROR;
1373: END IF;
1374:
1375: SELECT status_id INTO l_to_lot_status_id
1376: FROM mtl_material_statuses
1401: IF (l_return_status <> 'S') THEN
1402: IF (l_debug = 'Y') THEN
1403: gmd_debug.put_line('Grade is not valid ');
1404: END IF;
1405: RAISE FND_API.G_EXC_ERROR;
1406: END IF;
1407: END IF;
1408: END IF; -- grade_control_flag = Y
1409: END IF; -- lot_number is NOT NULL
1438: IF (l_return_status <> 'S') THEN
1439: IF (l_debug = 'Y') THEN
1440: gmd_debug.put_line('Entered to Disposition is not Valid');
1441: END IF;
1442: RAISE FND_API.G_EXC_ERROR;
1443: END IF;
1444:
1445: GMD_DISP_GRP.update_sample_comp_disp
1446: ( p_update_disp_rec => l_update_disp_rec
1453: IF (l_debug = 'Y') THEN
1454: gmd_debug.put_line('Could not change the Disposition of Sample/Group');
1455: END IF;
1456: x_msg_data := l_message_data;
1457: RAISE FND_API.G_EXC_ERROR;
1458: ELSIF l_to_lot_status_id IS NOT NULL THEN
1459: Gmd_Disp_Grp.update_lot_grade_batch (
1460: p_sample_id => l_update_disp_rec.sample_id
1461: , p_composite_spec_disp_id => l_update_disp_rec.composite_spec_disp_id
1474: IF (l_debug = 'Y') THEN
1475: gmd_debug.put_line('Could not change the lot status/grade');
1476: END IF;
1477: x_msg_data := l_message_data;
1478: RAISE FND_API.G_EXC_ERROR;
1479: END IF;
1480: END IF;
1481:
1482: -- Standard Check of p_commit.
1479: END IF;
1480: END IF;
1481:
1482: -- Standard Check of p_commit.
1483: IF FND_API.to_boolean(p_commit)
1484: THEN
1485: COMMIT WORK;
1486: END IF;
1487:
1487:
1488: EXCEPTION
1489: WHEN INVALID_PARAMETERS THEN
1490: gmd_api_pub.log_message('GMD_INVALID_PARAMETERS');
1491: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1492: x_return_status := FND_API.G_RET_STS_ERROR ;
1493: WHEN LOT_MUST_BE_SPECIFIED THEN
1494: gmd_api_pub.log_message('GMD_QM_NO_DELAYED_LOT');
1495: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1488: EXCEPTION
1489: WHEN INVALID_PARAMETERS THEN
1490: gmd_api_pub.log_message('GMD_INVALID_PARAMETERS');
1491: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1492: x_return_status := FND_API.G_RET_STS_ERROR ;
1493: WHEN LOT_MUST_BE_SPECIFIED THEN
1494: gmd_api_pub.log_message('GMD_QM_NO_DELAYED_LOT');
1495: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1496: x_return_status := FND_API.G_RET_STS_ERROR ;
1491: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1492: x_return_status := FND_API.G_RET_STS_ERROR ;
1493: WHEN LOT_MUST_BE_SPECIFIED THEN
1494: gmd_api_pub.log_message('GMD_QM_NO_DELAYED_LOT');
1495: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1496: x_return_status := FND_API.G_RET_STS_ERROR ;
1497: WHEN INVALID_DISPOSITION THEN
1498: gmd_api_pub.log_message('GMD_SAMPLE_DISPOSITION_INVALID');
1499: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1492: x_return_status := FND_API.G_RET_STS_ERROR ;
1493: WHEN LOT_MUST_BE_SPECIFIED THEN
1494: gmd_api_pub.log_message('GMD_QM_NO_DELAYED_LOT');
1495: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1496: x_return_status := FND_API.G_RET_STS_ERROR ;
1497: WHEN INVALID_DISPOSITION THEN
1498: gmd_api_pub.log_message('GMD_SAMPLE_DISPOSITION_INVALID');
1499: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1500: x_return_status := FND_API.G_RET_STS_ERROR ;
1495: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1496: x_return_status := FND_API.G_RET_STS_ERROR ;
1497: WHEN INVALID_DISPOSITION THEN
1498: gmd_api_pub.log_message('GMD_SAMPLE_DISPOSITION_INVALID');
1499: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1500: x_return_status := FND_API.G_RET_STS_ERROR ;
1501: WHEN INVALID_SAMPLE THEN
1502: gmd_api_pub.log_message('GMD_QM_INVALID_SAMPLE');
1503: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1496: x_return_status := FND_API.G_RET_STS_ERROR ;
1497: WHEN INVALID_DISPOSITION THEN
1498: gmd_api_pub.log_message('GMD_SAMPLE_DISPOSITION_INVALID');
1499: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1500: x_return_status := FND_API.G_RET_STS_ERROR ;
1501: WHEN INVALID_SAMPLE THEN
1502: gmd_api_pub.log_message('GMD_QM_INVALID_SAMPLE');
1503: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1504: x_return_status := FND_API.G_RET_STS_ERROR ;
1499: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1500: x_return_status := FND_API.G_RET_STS_ERROR ;
1501: WHEN INVALID_SAMPLE THEN
1502: gmd_api_pub.log_message('GMD_QM_INVALID_SAMPLE');
1503: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1504: x_return_status := FND_API.G_RET_STS_ERROR ;
1505: WHEN GMD_QC_LESS_LOT_DATE THEN
1506: gmd_api_pub.log_message('GMD_QC_LESS_LOT_DATE');
1507: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1500: x_return_status := FND_API.G_RET_STS_ERROR ;
1501: WHEN INVALID_SAMPLE THEN
1502: gmd_api_pub.log_message('GMD_QM_INVALID_SAMPLE');
1503: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1504: x_return_status := FND_API.G_RET_STS_ERROR ;
1505: WHEN GMD_QC_LESS_LOT_DATE THEN
1506: gmd_api_pub.log_message('GMD_QC_LESS_LOT_DATE');
1507: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1508: x_return_status := FND_API.G_RET_STS_ERROR ;
1503: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1504: x_return_status := FND_API.G_RET_STS_ERROR ;
1505: WHEN GMD_QC_LESS_LOT_DATE THEN
1506: gmd_api_pub.log_message('GMD_QC_LESS_LOT_DATE');
1507: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1508: x_return_status := FND_API.G_RET_STS_ERROR ;
1509: WHEN FND_API.G_EXC_ERROR THEN
1510: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1511: x_return_status := FND_API.G_RET_STS_ERROR ;
1504: x_return_status := FND_API.G_RET_STS_ERROR ;
1505: WHEN GMD_QC_LESS_LOT_DATE THEN
1506: gmd_api_pub.log_message('GMD_QC_LESS_LOT_DATE');
1507: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1508: x_return_status := FND_API.G_RET_STS_ERROR ;
1509: WHEN FND_API.G_EXC_ERROR THEN
1510: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1511: x_return_status := FND_API.G_RET_STS_ERROR ;
1512: WHEN OTHERS THEN
1505: WHEN GMD_QC_LESS_LOT_DATE THEN
1506: gmd_api_pub.log_message('GMD_QC_LESS_LOT_DATE');
1507: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1508: x_return_status := FND_API.G_RET_STS_ERROR ;
1509: WHEN FND_API.G_EXC_ERROR THEN
1510: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1511: x_return_status := FND_API.G_RET_STS_ERROR ;
1512: WHEN OTHERS THEN
1513: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.change_disposition','ERROR', SUBSTR(SQLERRM,1,100),'POSITION',l_pos);
1506: gmd_api_pub.log_message('GMD_QC_LESS_LOT_DATE');
1507: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1508: x_return_status := FND_API.G_RET_STS_ERROR ;
1509: WHEN FND_API.G_EXC_ERROR THEN
1510: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1511: x_return_status := FND_API.G_RET_STS_ERROR ;
1512: WHEN OTHERS THEN
1513: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.change_disposition','ERROR', SUBSTR(SQLERRM,1,100),'POSITION',l_pos);
1514: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1507: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1508: x_return_status := FND_API.G_RET_STS_ERROR ;
1509: WHEN FND_API.G_EXC_ERROR THEN
1510: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1511: x_return_status := FND_API.G_RET_STS_ERROR ;
1512: WHEN OTHERS THEN
1513: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.change_disposition','ERROR', SUBSTR(SQLERRM,1,100),'POSITION',l_pos);
1514: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1515: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1510: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1511: x_return_status := FND_API.G_RET_STS_ERROR ;
1512: WHEN OTHERS THEN
1513: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.change_disposition','ERROR', SUBSTR(SQLERRM,1,100),'POSITION',l_pos);
1514: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1515: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1516:
1517: END change_disposition;
1518:
1511: x_return_status := FND_API.G_RET_STS_ERROR ;
1512: WHEN OTHERS THEN
1513: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_DISP_PUB.change_disposition','ERROR', SUBSTR(SQLERRM,1,100),'POSITION',l_pos);
1514: x_msg_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1515: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1516:
1517: END change_disposition;
1518:
1519: END gmd_disp_pub;