299: OPEN WORKORDER_CUR(p_x_ahl_mtltxn_rec.WORKORDER_NAME);
300: FETCH WORKORDER_CUR INTO L_WORKDET_REC;
301: IF WORKORDER_CUR%NOTFOUND
302: THEN
303: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WORKORDER');
304: FND_MESSAGE.Set_Token('WORKORDER',p_x_ahl_mtltxn_rec.Workorder_name);
305: FND_MSG_PUB.ADD;
306: x_return_status := Fnd_Api.G_RET_STS_ERROR;
307: ELSIF L_WORKDET_REC.JOB_STATUS_CODE<>'3' AND
300: FETCH WORKORDER_CUR INTO L_WORKDET_REC;
301: IF WORKORDER_CUR%NOTFOUND
302: THEN
303: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WORKORDER');
304: FND_MESSAGE.Set_Token('WORKORDER',p_x_ahl_mtltxn_rec.Workorder_name);
305: FND_MSG_PUB.ADD;
306: x_return_status := Fnd_Api.G_RET_STS_ERROR;
307: ELSIF L_WORKDET_REC.JOB_STATUS_CODE<>'3' AND
308: L_WORKDET_REC.JOB_STATUS_CODE<>'19' AND
308: L_WORKDET_REC.JOB_STATUS_CODE<>'19' AND
309: L_WORKDET_REC.JOB_STATUS_CODE<>'20' AND
310: L_WORKDET_REC.JOB_STATUS_CODE<>'6' AND
311: L_WORKDET_REC.JOB_STATUS_CODE<>'4' THEN
312: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_JOB_STATUS');
313: FND_MESSAGE.Set_Token('STATUS',L_WORKDET_REC.job_status_meaning);
314: FND_MSG_PUB.ADD;
315: x_return_status := Fnd_Api.G_RET_STS_ERROR;
316: ELSE
309: L_WORKDET_REC.JOB_STATUS_CODE<>'20' AND
310: L_WORKDET_REC.JOB_STATUS_CODE<>'6' AND
311: L_WORKDET_REC.JOB_STATUS_CODE<>'4' THEN
312: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_JOB_STATUS');
313: FND_MESSAGE.Set_Token('STATUS',L_WORKDET_REC.job_status_meaning);
314: FND_MSG_PUB.ADD;
315: x_return_status := Fnd_Api.G_RET_STS_ERROR;
316: ELSE
317: p_x_ahl_mtltxn_rec.Workorder_Id :=L_WORKDET_REC.WORKORDER_ID;
321: p_x_ahl_mtltxn_rec.Wip_Entity_Id :=L_WORKDET_REC.WIP_ENTITY_ID;
322: END IF; -- WORKORDER_CUR%NOTFOUND
323: CLOSE WORKORDER_CUR;
324: ELSE -- both Workorder_Id and WORKORDER_NAME are NULLs
325: FND_MESSAGE.Set_Name('AHL','AHL_PRD_NULL_WORKORDER_ID');
326: FND_MSG_PUB.ADD;
327: x_return_status := Fnd_Api.G_RET_STS_ERROR;
328: END IF; -- p_x_ahl_mtltxn_rec.WORKORDER_NAME
329: ELSE -- workorderId is not null.
330: OPEN WORKORDER_ID_CUR(p_x_ahl_mtltxn_rec.Workorder_Id);
331: FETCH WORKORDER_ID_CUR INTO L_WORKDET_ID_REC;
332: IF WORKORDER_ID_CUR%NOTFOUND
333: THEN
334: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WORKORDER');
335: FND_MESSAGE.Set_Token('WORKORDER',p_x_ahl_mtltxn_rec.Workorder_Id);
336: FND_MSG_PUB.ADD;
337: x_return_status := Fnd_Api.G_RET_STS_ERROR;
338: ELSIF L_WORKDET_REC.JOB_STATUS_CODE<>'3' AND -- Released
331: FETCH WORKORDER_ID_CUR INTO L_WORKDET_ID_REC;
332: IF WORKORDER_ID_CUR%NOTFOUND
333: THEN
334: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WORKORDER');
335: FND_MESSAGE.Set_Token('WORKORDER',p_x_ahl_mtltxn_rec.Workorder_Id);
336: FND_MSG_PUB.ADD;
337: x_return_status := Fnd_Api.G_RET_STS_ERROR;
338: ELSIF L_WORKDET_REC.JOB_STATUS_CODE<>'3' AND -- Released
339: L_WORKDET_REC.JOB_STATUS_CODE<>'19' AND -- Parts Hold
340: L_WORKDET_REC.JOB_STATUS_CODE<>'20' AND -- pending deferral
341: L_WORKDET_REC.JOB_STATUS_CODE<>'6' AND -- on hold
342: L_WORKDET_REC.JOB_STATUS_CODE<>'4' -- complete
343: THEN
344: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_JOB_STATUS');
345: FND_MESSAGE.Set_Token('STATUS',L_WORKDET_ID_REC.job_status_meaning);
346: FND_MSG_PUB.ADD;
347: ELSE
348: p_x_ahl_mtltxn_rec.Workorder_Id := L_WORKDET_ID_REC.WORKORDER_ID;
341: L_WORKDET_REC.JOB_STATUS_CODE<>'6' AND -- on hold
342: L_WORKDET_REC.JOB_STATUS_CODE<>'4' -- complete
343: THEN
344: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_JOB_STATUS');
345: FND_MESSAGE.Set_Token('STATUS',L_WORKDET_ID_REC.job_status_meaning);
346: FND_MSG_PUB.ADD;
347: ELSE
348: p_x_ahl_mtltxn_rec.Workorder_Id := L_WORKDET_ID_REC.WORKORDER_ID;
349: p_x_ahl_mtltxn_rec.Workorder_Status := L_WORKDET_ID_REC.JOB_STATUS_MEANING;
356:
357: -- Check for operation sequence number.
358: IF ( p_x_ahl_mtltxn_rec.Operation_Seq_num IS NULL
359: OR p_x_ahl_mtltxn_rec.Operation_Seq_num = FND_API.G_MISS_NUM) THEN
360: FND_MESSAGE.Set_Name('AHL','AHL_PRD_NULL_OPER_SEQ');
361: FND_MSG_PUB.ADD;
362: x_return_status := Fnd_Api.G_RET_STS_ERROR;
363: END IF;
364:
375: END IF;
376: OPEN WIP_JOB_ID_CUR(p_x_ahl_mtltxn_rec.Workorder_Id);
377: FETCH WIP_JOB_ID_CUR INTO p_x_ahl_mtltxn_rec.Wip_Entity_Id,p_x_ahl_mtltxn_rec.Organization_Id ;
378: IF(WIP_JOB_ID_CUR%NOTFOUND) THEN
379: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WIP_ENTITY_WO');
380: FND_MESSAGE.Set_Token('WORKORDER',p_x_ahl_mtltxn_rec.Workorder_Id);
381: FND_MSG_PUB.ADD;
382: x_return_status := Fnd_Api.G_RET_STS_ERROR;
383: END IF;
376: OPEN WIP_JOB_ID_CUR(p_x_ahl_mtltxn_rec.Workorder_Id);
377: FETCH WIP_JOB_ID_CUR INTO p_x_ahl_mtltxn_rec.Wip_Entity_Id,p_x_ahl_mtltxn_rec.Organization_Id ;
378: IF(WIP_JOB_ID_CUR%NOTFOUND) THEN
379: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WIP_ENTITY_WO');
380: FND_MESSAGE.Set_Token('WORKORDER',p_x_ahl_mtltxn_rec.Workorder_Id);
381: FND_MSG_PUB.ADD;
382: x_return_status := Fnd_Api.G_RET_STS_ERROR;
383: END IF;
384: CLOSE WIP_JOB_ID_CUR;
401: OPEN WO_OP_CUR(p_x_ahl_mtltxn_rec.Workorder_Id,
402: p_x_ahl_mtltxn_rec.Operation_Seq_num);
403: FETCH WO_OP_CUR INTO p_x_ahl_mtltxn_rec.Workorder_Operation_Id ;
404: IF(WO_OP_CUR%NOTFOUND) THEN
405: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WO_OP');
406: FND_MESSAGE.Set_Token('WORKORDER',p_x_ahl_mtltxn_rec.Workorder_Id);
407: FND_MESSAGE.Set_Token('OP_SEQUENCE',p_x_ahl_mtltxn_rec.Operation_Seq_num);
408: FND_MSG_PUB.ADD;
409: x_return_status := Fnd_Api.G_RET_STS_ERROR;
402: p_x_ahl_mtltxn_rec.Operation_Seq_num);
403: FETCH WO_OP_CUR INTO p_x_ahl_mtltxn_rec.Workorder_Operation_Id ;
404: IF(WO_OP_CUR%NOTFOUND) THEN
405: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WO_OP');
406: FND_MESSAGE.Set_Token('WORKORDER',p_x_ahl_mtltxn_rec.Workorder_Id);
407: FND_MESSAGE.Set_Token('OP_SEQUENCE',p_x_ahl_mtltxn_rec.Operation_Seq_num);
408: FND_MSG_PUB.ADD;
409: x_return_status := Fnd_Api.G_RET_STS_ERROR;
410: END IF;
403: FETCH WO_OP_CUR INTO p_x_ahl_mtltxn_rec.Workorder_Operation_Id ;
404: IF(WO_OP_CUR%NOTFOUND) THEN
405: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WO_OP');
406: FND_MESSAGE.Set_Token('WORKORDER',p_x_ahl_mtltxn_rec.Workorder_Id);
407: FND_MESSAGE.Set_Token('OP_SEQUENCE',p_x_ahl_mtltxn_rec.Operation_Seq_num);
408: FND_MSG_PUB.ADD;
409: x_return_status := Fnd_Api.G_RET_STS_ERROR;
410: END IF;
411: CLOSE WO_OP_CUR;
421: AHL_DEBUG_PUB.debug('Converting Txn type name['||p_x_ahl_mtltxn_rec.Transaction_Type_Name||']');
422: END IF;
423: IF (p_x_ahl_mtltxn_rec.Transaction_Type_Name IS NULL
424: OR p_x_ahl_mtltxn_rec.Transaction_Type_Name = FND_API.G_MISS_CHAR) THEN
425: FND_MESSAGE.Set_Name('AHL','AHL_PRD_NULL_TXN_TYPE');
426: FND_MSG_PUB.ADD;
427: x_return_status := Fnd_Api.G_RET_STS_ERROR;
428: ELSE
429: OPEN Transaction_Type_Cur(p_x_ahl_mtltxn_rec.Transaction_Type_Name);
428: ELSE
429: OPEN Transaction_Type_Cur(p_x_ahl_mtltxn_rec.Transaction_Type_Name);
430: FETCH Transaction_Type_Cur INTO p_x_ahl_mtltxn_rec.Transaction_Type_Id ;
431: IF(Transaction_Type_Cur%NOTFOUND) THEN
432: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_TXN_TYPE');
433: FND_MESSAGE.Set_Token('TXN_TYPE',p_x_ahl_mtltxn_rec.Transaction_Type_Name);
434: FND_MSG_PUB.ADD;
435: x_return_status := Fnd_Api.G_RET_STS_ERROR;
436: END IF;
429: OPEN Transaction_Type_Cur(p_x_ahl_mtltxn_rec.Transaction_Type_Name);
430: FETCH Transaction_Type_Cur INTO p_x_ahl_mtltxn_rec.Transaction_Type_Id ;
431: IF(Transaction_Type_Cur%NOTFOUND) THEN
432: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_TXN_TYPE');
433: FND_MESSAGE.Set_Token('TXN_TYPE',p_x_ahl_mtltxn_rec.Transaction_Type_Name);
434: FND_MSG_PUB.ADD;
435: x_return_status := Fnd_Api.G_RET_STS_ERROR;
436: END IF;
437: CLOSE Transaction_Type_Cur;
448: END IF;
449:
450: IF (p_x_ahl_mtltxn_rec.Inventory_Item_Segments IS NULL
451: OR p_x_ahl_mtltxn_rec.Inventory_Item_Segments = FND_API.G_MISS_CHAR) THEN
452: FND_MESSAGE.Set_Name('AHL','AHL_PRD_NULL_ITEM');
453: FND_MSG_PUB.ADD;
454: RAISE FND_API.G_EXC_ERROR;
455: ELSE
456: OPEN Item_Cur(p_x_ahl_mtltxn_rec.Organization_Id,
456: OPEN Item_Cur(p_x_ahl_mtltxn_rec.Organization_Id,
457: p_x_ahl_mtltxn_rec.Inventory_Item_Segments);
458: FETCH Item_Cur INTO p_x_ahl_mtltxn_rec.Inventory_Item_Id ;
459: IF(Item_Cur%NOTFOUND) THEN
460: FND_MESSAGE.Set_Name('AHL','AHL_COM_INVALID_ITEM');
461: FND_MESSAGE.Set_Token('FIELD',p_x_ahl_mtltxn_rec.Inventory_Item_Segments);
462: FND_MSG_PUB.ADD;
463: x_return_status := Fnd_Api.G_RET_STS_ERROR;
464: END IF;
457: p_x_ahl_mtltxn_rec.Inventory_Item_Segments);
458: FETCH Item_Cur INTO p_x_ahl_mtltxn_rec.Inventory_Item_Id ;
459: IF(Item_Cur%NOTFOUND) THEN
460: FND_MESSAGE.Set_Name('AHL','AHL_COM_INVALID_ITEM');
461: FND_MESSAGE.Set_Token('FIELD',p_x_ahl_mtltxn_rec.Inventory_Item_Segments);
462: FND_MSG_PUB.ADD;
463: x_return_status := Fnd_Api.G_RET_STS_ERROR;
464: END IF;
465: CLOSE Item_Cur;
485: -- ER 5854712 (if locator not found, it will be created.)
486: /*
487: IF(Location_Cur%NOTFOUND)
488: THEN
489: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOCATION');
490: FND_MESSAGE.Set_Token('LOCATOR',p_x_ahl_mtltxn_rec.Locator_Segments);
491: FND_MSG_PUB.ADD;
492: x_return_status := Fnd_Api.G_RET_STS_ERROR;
493: ELSE
486: /*
487: IF(Location_Cur%NOTFOUND)
488: THEN
489: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOCATION');
490: FND_MESSAGE.Set_Token('LOCATOR',p_x_ahl_mtltxn_rec.Locator_Segments);
491: FND_MSG_PUB.ADD;
492: x_return_status := Fnd_Api.G_RET_STS_ERROR;
493: ELSE
494: */
517: END IF;
518: OPEN Reason_Cur(p_x_ahl_mtltxn_rec.Reason_Name);
519: FETCH Reason_Cur INTO p_x_ahl_mtltxn_rec.Reason_Id ;
520: IF(Reason_Cur%NOTFOUND) THEN
521: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_REASON');
522: FND_MESSAGE.Set_Token('REASON',p_x_ahl_mtltxn_rec.Reason_Name);
523: FND_MSG_PUB.ADD;
524: x_return_status := Fnd_Api.G_RET_STS_ERROR;
525: END IF;
518: OPEN Reason_Cur(p_x_ahl_mtltxn_rec.Reason_Name);
519: FETCH Reason_Cur INTO p_x_ahl_mtltxn_rec.Reason_Id ;
520: IF(Reason_Cur%NOTFOUND) THEN
521: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_REASON');
522: FND_MESSAGE.Set_Token('REASON',p_x_ahl_mtltxn_rec.Reason_Name);
523: FND_MSG_PUB.ADD;
524: x_return_status := Fnd_Api.G_RET_STS_ERROR;
525: END IF;
526: CLOSE Reason_Cur;
546: END IF;
547: OPEN Fnd_Lookups_Cur(p_x_ahl_mtltxn_rec.Problem_Code_Meaning);
548: FETCH Fnd_Lookups_Cur INTO p_x_ahl_mtltxn_rec.Problem_Code ;
549: IF(Fnd_Lookups_Cur%NOTFOUND) THEN
550: FND_MESSAGE.Set_Name('AHL','AHL_PRD_PROBLEM_CODE_INVALID');
551: FND_MESSAGE.Set_Token('CODE',p_x_ahl_mtltxn_rec.Problem_Code_Meaning);
552: FND_MSG_PUB.ADD;
553: x_return_status := Fnd_Api.G_RET_STS_ERROR;
554: END IF;
547: OPEN Fnd_Lookups_Cur(p_x_ahl_mtltxn_rec.Problem_Code_Meaning);
548: FETCH Fnd_Lookups_Cur INTO p_x_ahl_mtltxn_rec.Problem_Code ;
549: IF(Fnd_Lookups_Cur%NOTFOUND) THEN
550: FND_MESSAGE.Set_Name('AHL','AHL_PRD_PROBLEM_CODE_INVALID');
551: FND_MESSAGE.Set_Token('CODE',p_x_ahl_mtltxn_rec.Problem_Code_Meaning);
552: FND_MSG_PUB.ADD;
553: x_return_status := Fnd_Api.G_RET_STS_ERROR;
554: END IF;
555: CLOSE Fnd_Lookups_Cur;
567: OPEN CONDITION_CUR(p_x_ahl_mtltxn_rec.Condition_Desc);
568: FETCH CONDITION_CUR INTO p_x_ahl_mtltxn_rec.Condition;
569:
570: IF(CONDITION_CUR%NOTFOUND) THEN
571: FND_MESSAGE.Set_Name('AHL','AHL_PRD_COND_INVALID');
572: FND_MESSAGE.Set_Token('CODE',p_x_ahl_mtltxn_rec.Condition_Desc);
573: FND_MSG_PUB.ADD;
574: x_return_status := Fnd_Api.G_RET_STS_ERROR;
575: END IF;
568: FETCH CONDITION_CUR INTO p_x_ahl_mtltxn_rec.Condition;
569:
570: IF(CONDITION_CUR%NOTFOUND) THEN
571: FND_MESSAGE.Set_Name('AHL','AHL_PRD_COND_INVALID');
572: FND_MESSAGE.Set_Token('CODE',p_x_ahl_mtltxn_rec.Condition_Desc);
573: FND_MSG_PUB.ADD;
574: x_return_status := Fnd_Api.G_RET_STS_ERROR;
575: END IF;
576:
596: IF(RECEPIENT_CUR%NOTFOUND)
597: THEN
598: IF (p_x_ahl_mtltxn_rec.Transaction_Type_Id = WIP_CONSTANTS.RETCOMP_TYPE)
599: THEN
600: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID2');
601: ELSE
602: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID');
603: END IF;
604: FND_MESSAGE.Set_Token('RECEPIENT',p_x_ahl_mtltxn_rec.RECEPIENT_NAME);
598: IF (p_x_ahl_mtltxn_rec.Transaction_Type_Id = WIP_CONSTANTS.RETCOMP_TYPE)
599: THEN
600: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID2');
601: ELSE
602: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID');
603: END IF;
604: FND_MESSAGE.Set_Token('RECEPIENT',p_x_ahl_mtltxn_rec.RECEPIENT_NAME);
605: FND_MSG_PUB.ADD;
606: x_return_status := Fnd_Api.G_RET_STS_ERROR;
600: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID2');
601: ELSE
602: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID');
603: END IF;
604: FND_MESSAGE.Set_Token('RECEPIENT',p_x_ahl_mtltxn_rec.RECEPIENT_NAME);
605: FND_MSG_PUB.ADD;
606: x_return_status := Fnd_Api.G_RET_STS_ERROR;
607: END IF;
608: CLOSE RECEPIENT_CUR;
618: IF(RECEPIENT_CUR%NOTFOUND)
619: THEN
620: IF (p_x_ahl_mtltxn_rec.Transaction_Type_Id = WIP_CONSTANTS.RETCOMP_TYPE)
621: THEN
622: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID2');
623: ELSE
624: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID');
625: END IF;
626: FND_MESSAGE.Set_Token('RECEPIENT',p_x_ahl_mtltxn_rec.RECEPIENT_NAME);
620: IF (p_x_ahl_mtltxn_rec.Transaction_Type_Id = WIP_CONSTANTS.RETCOMP_TYPE)
621: THEN
622: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID2');
623: ELSE
624: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID');
625: END IF;
626: FND_MESSAGE.Set_Token('RECEPIENT',p_x_ahl_mtltxn_rec.RECEPIENT_NAME);
627: FND_MSG_PUB.ADD;
628: x_return_status := Fnd_Api.G_RET_STS_ERROR;
622: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID2');
623: ELSE
624: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID');
625: END IF;
626: FND_MESSAGE.Set_Token('RECEPIENT',p_x_ahl_mtltxn_rec.RECEPIENT_NAME);
627: FND_MSG_PUB.ADD;
628: x_return_status := Fnd_Api.G_RET_STS_ERROR;
629: ELSE
630: -- if id is available then see if this id is the same as the one retrived from the name.
633: IF(l_recepient_id <> p_x_ahl_mtltxn_rec.RECEPIENT_ID)
634: THEN
635: IF (p_x_ahl_mtltxn_rec.Transaction_Type_Id = WIP_CONSTANTS.RETCOMP_TYPE)
636: THEN
637: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID2');
638: ELSE
639: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID');
640: END IF;
641: FND_MESSAGE.Set_Token('RECEPIENT',p_x_ahl_mtltxn_rec.RECEPIENT_NAME);
635: IF (p_x_ahl_mtltxn_rec.Transaction_Type_Id = WIP_CONSTANTS.RETCOMP_TYPE)
636: THEN
637: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID2');
638: ELSE
639: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID');
640: END IF;
641: FND_MESSAGE.Set_Token('RECEPIENT',p_x_ahl_mtltxn_rec.RECEPIENT_NAME);
642: FND_MSG_PUB.ADD;
643: x_return_status := Fnd_Api.G_RET_STS_ERROR;
637: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID2');
638: ELSE
639: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID');
640: END IF;
641: FND_MESSAGE.Set_Token('RECEPIENT',p_x_ahl_mtltxn_rec.RECEPIENT_NAME);
642: FND_MSG_PUB.ADD;
643: x_return_status := Fnd_Api.G_RET_STS_ERROR;
644: END IF;
645: ELSE
656: IF(NVL(FND_PROFILE.VALUE('AHL_PRD_MTX_RECEPIENT'),'N')='Y')
657: THEN
658: IF (p_x_ahl_mtltxn_rec.Transaction_Type_Id = WIP_CONSTANTS.RETCOMP_TYPE)
659: THEN
660: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_MANDATORY2');
661: ELSE
662: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_MANDATORY');
663: END IF;
664: FND_MSG_PUB.ADD;
658: IF (p_x_ahl_mtltxn_rec.Transaction_Type_Id = WIP_CONSTANTS.RETCOMP_TYPE)
659: THEN
660: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_MANDATORY2');
661: ELSE
662: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_MANDATORY');
663: END IF;
664: FND_MSG_PUB.ADD;
665: x_return_status := Fnd_Api.G_RET_STS_ERROR;
666: ELSE
669: IF DEFAULT_USER_CUR%NOTFOUND
670: THEN
671: IF (p_x_ahl_mtltxn_rec.Transaction_Type_Id = WIP_CONSTANTS.RETCOMP_TYPE)
672: THEN
673: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID2');
674: ELSE
675: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID');
676: END IF;
677: FND_MESSAGE.Set_Token('RECEPIENT',p_x_ahl_mtltxn_rec.RECEPIENT_NAME);
671: IF (p_x_ahl_mtltxn_rec.Transaction_Type_Id = WIP_CONSTANTS.RETCOMP_TYPE)
672: THEN
673: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID2');
674: ELSE
675: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID');
676: END IF;
677: FND_MESSAGE.Set_Token('RECEPIENT',p_x_ahl_mtltxn_rec.RECEPIENT_NAME);
678: FND_MSG_PUB.ADD;
679: x_return_status := Fnd_Api.G_RET_STS_ERROR;
673: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID2');
674: ELSE
675: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTX_PERSON_INVALID');
676: END IF;
677: FND_MESSAGE.Set_Token('RECEPIENT',p_x_ahl_mtltxn_rec.RECEPIENT_NAME);
678: FND_MSG_PUB.ADD;
679: x_return_status := Fnd_Api.G_RET_STS_ERROR;
680: END IF;
681: CLOSE DEFAULT_USER_CUR;
690:
691: END IF;
692: IF (p_x_ahl_mtltxn_rec.Uom_Desc IS NULL
693: OR p_x_ahl_mtltxn_rec.Uom_Desc = FND_API.G_MISS_CHAR) THEN
694: FND_MESSAGE.Set_Name('AHL','AHL_PRD_NULL_UOM');
695: FND_MSG_PUB.ADD;
696: x_return_status := Fnd_Api.G_RET_STS_ERROR;
697: ELSE
698: OPEN Uom_Cur(p_x_ahl_mtltxn_rec.Uom_Desc);
697: ELSE
698: OPEN Uom_Cur(p_x_ahl_mtltxn_rec.Uom_Desc);
699: FETCH Uom_Cur INTO p_x_ahl_mtltxn_rec.Uom ;
700: IF(Uom_Cur%NOTFOUND) THEN
701: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_UOM');
702: FND_MESSAGE.Set_Token('UOM',p_x_ahl_mtltxn_rec.Uom_Desc);
703: FND_MSG_PUB.ADD;
704: x_return_status := Fnd_Api.G_RET_STS_ERROR;
705: END IF;
698: OPEN Uom_Cur(p_x_ahl_mtltxn_rec.Uom_Desc);
699: FETCH Uom_Cur INTO p_x_ahl_mtltxn_rec.Uom ;
700: IF(Uom_Cur%NOTFOUND) THEN
701: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_UOM');
702: FND_MESSAGE.Set_Token('UOM',p_x_ahl_mtltxn_rec.Uom_Desc);
703: FND_MSG_PUB.ADD;
704: x_return_status := Fnd_Api.G_RET_STS_ERROR;
705: END IF;
706: CLOSE Uom_Cur;
903: /*Public api changes: Moved to Convert_Name_To_Id api
904: --Check the context fields
905: IF ( (p_x_ahl_mtltxn_tbl(i).Workorder_Id IS NULL
906: OR p_x_ahl_mtltxn_tbl(i).Workorder_Id = FND_API.G_MISS_NUM)) THEN
907: FND_MESSAGE.Set_Name('AHL','AHL_PRD_NULL_WORKORDER_ID');
908: FND_MSG_PUB.ADD;
909: l_error := true;
910: ELSIF ( p_x_ahl_mtltxn_tbl(i).Operation_Seq_num IS NULL
911: OR p_x_ahl_mtltxn_tbl(i).Operation_Seq_num = FND_API.G_MISS_NUM) THEN
908: FND_MSG_PUB.ADD;
909: l_error := true;
910: ELSIF ( p_x_ahl_mtltxn_tbl(i).Operation_Seq_num IS NULL
911: OR p_x_ahl_mtltxn_tbl(i).Operation_Seq_num = FND_API.G_MISS_NUM) THEN
912: FND_MESSAGE.Set_Name('AHL','AHL_PRD_NULL_OPER_SEQ');
913: FND_MSG_PUB.ADD;
914: l_error := true;
915: ELSE
916: */
1024:
1025: IF (x_return_status = FND_API.G_RET_STS_ERROR
1026: OR x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1027: CLOSE Sch_Mtl_Exists_Cur;
1028: FND_MESSAGE.Set_Name('AHL','AHL_PRD_SCHMTLAPI_ERROR');
1029: FND_MESSAGE.Set_Token('MSG',x_msg_data);
1030: FND_MSG_PUB.ADD;
1031: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1032: END IF;
1025: IF (x_return_status = FND_API.G_RET_STS_ERROR
1026: OR x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1027: CLOSE Sch_Mtl_Exists_Cur;
1028: FND_MESSAGE.Set_Name('AHL','AHL_PRD_SCHMTLAPI_ERROR');
1029: FND_MESSAGE.Set_Token('MSG',x_msg_data);
1030: FND_MSG_PUB.ADD;
1031: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1032: END IF;
1033: --END IF; -- fix for bug# 5499575
1110: IF G_DEBUG='Y' THEN
1111: AHL_DEBUG_PUB.debug('Error in transaction['||l_error_msg||']');
1112: END IF;
1113:
1114: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
1115: FND_MESSAGE.Set_Token('MSG',l_error_msg);
1116: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
1117: FND_MESSAGE.Set_Token('WO_NAME',l_workorder_name);
1118: FND_MSG_PUB.ADD;
1111: AHL_DEBUG_PUB.debug('Error in transaction['||l_error_msg||']');
1112: END IF;
1113:
1114: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
1115: FND_MESSAGE.Set_Token('MSG',l_error_msg);
1116: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
1117: FND_MESSAGE.Set_Token('WO_NAME',l_workorder_name);
1118: FND_MSG_PUB.ADD;
1119: l_error := true;
1112: END IF;
1113:
1114: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
1115: FND_MESSAGE.Set_Token('MSG',l_error_msg);
1116: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
1117: FND_MESSAGE.Set_Token('WO_NAME',l_workorder_name);
1118: FND_MSG_PUB.ADD;
1119: l_error := true;
1120: END IF;
1113:
1114: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
1115: FND_MESSAGE.Set_Token('MSG',l_error_msg);
1116: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
1117: FND_MESSAGE.Set_Token('WO_NAME',l_workorder_name);
1118: FND_MSG_PUB.ADD;
1119: l_error := true;
1120: END IF;
1121: CLOSE Txn_Error_cur;
1158: );
1159:
1160: IF (l_quantity < 0)
1161: THEN
1162: FND_MESSAGE.Set_Name('AHL', 'AHL_PRD_UOMCONVERT_ERROR');
1163: FND_MESSAGE.Set_Token('UOM_FROM', p_x_ahl_mtltxn_tbl(i).uom);
1164: FND_MESSAGE.Set_Token('UOM_TO', l_uom_code);
1165: FND_MSG_PUB.ADD;
1166: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1159:
1160: IF (l_quantity < 0)
1161: THEN
1162: FND_MESSAGE.Set_Name('AHL', 'AHL_PRD_UOMCONVERT_ERROR');
1163: FND_MESSAGE.Set_Token('UOM_FROM', p_x_ahl_mtltxn_tbl(i).uom);
1164: FND_MESSAGE.Set_Token('UOM_TO', l_uom_code);
1165: FND_MSG_PUB.ADD;
1166: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1167: END IF;
1160: IF (l_quantity < 0)
1161: THEN
1162: FND_MESSAGE.Set_Name('AHL', 'AHL_PRD_UOMCONVERT_ERROR');
1163: FND_MESSAGE.Set_Token('UOM_FROM', p_x_ahl_mtltxn_tbl(i).uom);
1164: FND_MESSAGE.Set_Token('UOM_TO', l_uom_code);
1165: FND_MSG_PUB.ADD;
1166: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1167: END IF;
1168: END IF;
1173: p_x_ahl_mtltxn_tbl(i).Inventory_Item_Id);
1174: FETCH Sch_Mtl_Cur INTO l_completed_quantity, l_uom_code, l_object_version_number;
1175:
1176: If(Sch_Mtl_Cur%NOTFOUND) THEN
1177: FND_MESSAGE.Set_Name('AHL','AHL_PRD_SCHMTL_NOTFOUND');
1178: FND_MESSAGE.Set_Token('WO_OP',p_x_ahl_mtltxn_tbl(i).Workorder_operation_Id);
1179: FND_MESSAGE.Set_Token('INV_ITEM',p_x_ahl_mtltxn_tbl(i).Inventory_Item_Id);
1180: FND_MSG_PUB.ADD;
1181: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1174: FETCH Sch_Mtl_Cur INTO l_completed_quantity, l_uom_code, l_object_version_number;
1175:
1176: If(Sch_Mtl_Cur%NOTFOUND) THEN
1177: FND_MESSAGE.Set_Name('AHL','AHL_PRD_SCHMTL_NOTFOUND');
1178: FND_MESSAGE.Set_Token('WO_OP',p_x_ahl_mtltxn_tbl(i).Workorder_operation_Id);
1179: FND_MESSAGE.Set_Token('INV_ITEM',p_x_ahl_mtltxn_tbl(i).Inventory_Item_Id);
1180: FND_MSG_PUB.ADD;
1181: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1182: ELSE
1175:
1176: If(Sch_Mtl_Cur%NOTFOUND) THEN
1177: FND_MESSAGE.Set_Name('AHL','AHL_PRD_SCHMTL_NOTFOUND');
1178: FND_MESSAGE.Set_Token('WO_OP',p_x_ahl_mtltxn_tbl(i).Workorder_operation_Id);
1179: FND_MESSAGE.Set_Token('INV_ITEM',p_x_ahl_mtltxn_tbl(i).Inventory_Item_Id);
1180: FND_MSG_PUB.ADD;
1181: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1182: ELSE
1183:
1277:
1278:
1279: IF (x_return_status = FND_API.G_RET_STS_ERROR
1280: OR x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1281: FND_MESSAGE.Set_Name('AHL','AHL_PRD_AHLMTLTXN_ERROR');
1282: FND_MESSAGE.Set_Token('MSG',x_msg_data);
1283: FND_MSG_PUB.ADD;
1284: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1285: END IF;
1278:
1279: IF (x_return_status = FND_API.G_RET_STS_ERROR
1280: OR x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1281: FND_MESSAGE.Set_Name('AHL','AHL_PRD_AHLMTLTXN_ERROR');
1282: FND_MESSAGE.Set_Token('MSG',x_msg_data);
1283: FND_MSG_PUB.ADD;
1284: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1285: END IF;
1286:
1428: );
1429:
1430: IF ( x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1431: IF ( x_msg_data IS NULL ) THEN
1432: FND_MESSAGE.set_name( 'AHL', 'AHL_PRD_QA_ACTION_UNEXP_ERROR' );
1433: FND_MSG_PUB.add;
1434: RAISE FND_API.G_EXC_ERROR;
1435: END IF;
1436: ELSIF ( x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1629: );
1630: FETCH GET_WO_MTL_TXNS INTO L_COUNTER;
1631: IF L_COUNTER >0
1632: THEN
1633: FND_MESSAGE.Set_Name('AHL','AHL_PRD_DUPLICATE_ITEM');
1634: FND_MESSAGE.Set_Token('INV_ITEM',p_ahl_mtltxn_rec.INVENTORY_ITEM_SEGMENTS);
1635: FND_MSG_PUB.ADD;
1636: END IF;
1637: CLOSE GET_WO_MTL_TXNS;
1630: FETCH GET_WO_MTL_TXNS INTO L_COUNTER;
1631: IF L_COUNTER >0
1632: THEN
1633: FND_MESSAGE.Set_Name('AHL','AHL_PRD_DUPLICATE_ITEM');
1634: FND_MESSAGE.Set_Token('INV_ITEM',p_ahl_mtltxn_rec.INVENTORY_ITEM_SEGMENTS);
1635: FND_MSG_PUB.ADD;
1636: END IF;
1637: CLOSE GET_WO_MTL_TXNS;
1638: END;
1940:
1941: -- Validate transaction type id(should be one of wip conponent issue or return
1942: IF(p_x_ahl_mtltxn_rec.Transaction_Type_Id <> WIP_CONSTANTS.RETCOMP_TYPE AND
1943: p_x_ahl_mtltxn_rec.Transaction_Type_Id <> WIP_CONSTANTS.ISSCOMP_TYPE ) THEN
1944: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_TXNTYPE');
1945: FND_MSG_PUB.ADD;
1946: x_return_status := FND_API.G_RET_STS_ERROR;
1947: END IF;
1948: -- transaction quantity should be +ve always. Negative quantities are not
1951: AHL_DEBUG_PUB.debug('Validating quantity...['||to_Char(p_x_ahl_mtltxn_rec.Quantity)||']');
1952: END IF;
1953:
1954: IF(nvl(p_x_ahl_mtltxn_rec.Quantity,0) <= 0) THEN
1955: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_QTY');
1956: FND_MESSAGE.Set_Token('QUANTITY',p_x_ahl_mtltxn_rec.Quantity);
1957: FND_MSG_PUB.ADD;
1958: x_return_status := FND_API.G_RET_STS_ERROR;
1959: END IF;
1952: END IF;
1953:
1954: IF(nvl(p_x_ahl_mtltxn_rec.Quantity,0) <= 0) THEN
1955: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_QTY');
1956: FND_MESSAGE.Set_Token('QUANTITY',p_x_ahl_mtltxn_rec.Quantity);
1957: FND_MSG_PUB.ADD;
1958: x_return_status := FND_API.G_RET_STS_ERROR;
1959: END IF;
1960:
1974: IF(AHL_WIPJOB_CUR%NOTFOUND) THEN
1975: IF G_DEBUG='Y' THEN
1976: AHL_DEBUG_PUB.debug('JOB validation failed');
1977: END IF;
1978: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WIP_ENTITY');
1979: if(p_x_ahl_mtltxn_rec.Wip_Entity_Id = FND_API.G_MISS_NUM) THEN
1980: p_x_ahl_mtltxn_rec.Wip_Entity_Id := NULL;
1981: END IF;
1982: FND_MESSAGE.Set_Token('WIP_ENTITY',p_x_ahl_mtltxn_rec.Wip_Entity_Id);
1978: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WIP_ENTITY');
1979: if(p_x_ahl_mtltxn_rec.Wip_Entity_Id = FND_API.G_MISS_NUM) THEN
1980: p_x_ahl_mtltxn_rec.Wip_Entity_Id := NULL;
1981: END IF;
1982: FND_MESSAGE.Set_Token('WIP_ENTITY',p_x_ahl_mtltxn_rec.Wip_Entity_Id);
1983: FND_MSG_PUB.ADD;
1984: x_return_status := FND_API.G_RET_STS_ERROR;
1985: CLOSE AHL_WIPJOB_CUR;
1986: RETURN;
1999: IF(l_job_status <> C_JOB_RELEASED
2000: AND l_job_status <> C_JOB_PENDING_QA
2001: AND l_job_status <> C_JOB_COMPLETE
2002: AND l_job_status <> C_JOB_PARTS_HOLD) THEN
2003: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_JOB_STATUS');
2004: FND_MESSAGE.Set_Token('STATUS',l_job_status);
2005: FND_MSG_PUB.ADD;
2006: x_return_status := FND_API.G_RET_STS_ERROR;
2007: END IF;
2000: AND l_job_status <> C_JOB_PENDING_QA
2001: AND l_job_status <> C_JOB_COMPLETE
2002: AND l_job_status <> C_JOB_PARTS_HOLD) THEN
2003: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_JOB_STATUS');
2004: FND_MESSAGE.Set_Token('STATUS',l_job_status);
2005: FND_MSG_PUB.ADD;
2006: x_return_status := FND_API.G_RET_STS_ERROR;
2007: END IF;
2008: END IF;
2019: p_x_ahl_mtltxn_rec.Operation_Seq_Num,
2020: p_x_ahl_mtltxn_rec.Workorder_Operation_Id);
2021: FETCH AHL_WORKORDER_OPER_CUR INTO l_Count;
2022: IF(AHL_WORKORDER_OPER_CUR%NOTFOUND) THEN
2023: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WORKORDER_OP');
2024: FND_MESSAGE.Set_Token('WO',p_x_ahl_mtltxn_rec.Workorder_Id);
2025: FND_MESSAGE.Set_Token('SEQ',p_x_ahl_mtltxn_rec.Operation_Seq_Num);
2026: FND_MESSAGE.Set_Token('OP',p_x_ahl_mtltxn_rec.Workorder_Operation_Id);
2027: FND_MSG_PUB.ADD;
2020: p_x_ahl_mtltxn_rec.Workorder_Operation_Id);
2021: FETCH AHL_WORKORDER_OPER_CUR INTO l_Count;
2022: IF(AHL_WORKORDER_OPER_CUR%NOTFOUND) THEN
2023: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WORKORDER_OP');
2024: FND_MESSAGE.Set_Token('WO',p_x_ahl_mtltxn_rec.Workorder_Id);
2025: FND_MESSAGE.Set_Token('SEQ',p_x_ahl_mtltxn_rec.Operation_Seq_Num);
2026: FND_MESSAGE.Set_Token('OP',p_x_ahl_mtltxn_rec.Workorder_Operation_Id);
2027: FND_MSG_PUB.ADD;
2028: x_return_status := FND_API.G_RET_STS_ERROR;
2021: FETCH AHL_WORKORDER_OPER_CUR INTO l_Count;
2022: IF(AHL_WORKORDER_OPER_CUR%NOTFOUND) THEN
2023: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WORKORDER_OP');
2024: FND_MESSAGE.Set_Token('WO',p_x_ahl_mtltxn_rec.Workorder_Id);
2025: FND_MESSAGE.Set_Token('SEQ',p_x_ahl_mtltxn_rec.Operation_Seq_Num);
2026: FND_MESSAGE.Set_Token('OP',p_x_ahl_mtltxn_rec.Workorder_Operation_Id);
2027: FND_MSG_PUB.ADD;
2028: x_return_status := FND_API.G_RET_STS_ERROR;
2029: END IF;
2022: IF(AHL_WORKORDER_OPER_CUR%NOTFOUND) THEN
2023: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WORKORDER_OP');
2024: FND_MESSAGE.Set_Token('WO',p_x_ahl_mtltxn_rec.Workorder_Id);
2025: FND_MESSAGE.Set_Token('SEQ',p_x_ahl_mtltxn_rec.Operation_Seq_Num);
2026: FND_MESSAGE.Set_Token('OP',p_x_ahl_mtltxn_rec.Workorder_Operation_Id);
2027: FND_MSG_PUB.ADD;
2028: x_return_status := FND_API.G_RET_STS_ERROR;
2029: END IF;
2030: CLOSE AHL_WORKORDER_OPER_CUR;
2055: IF TRANSACTION_DATE_CUR%FOUND
2056: THEN
2057: IF L_SCHED_START_DATE > p_x_ahl_mtltxn_rec.TRANSACTION_DATE
2058: THEN
2059: FND_MESSAGE.Set_Name('AHL','AHL_COM_INVALID_TRANSACTION_DATE');
2060: --FND_MESSAGE.Set_Token('FIELD',p_x_ahl_mtltxn_rec.Inventory_Item_Id);
2061: FND_MSG_PUB.ADD;
2062:
2063: END IF;
2056: THEN
2057: IF L_SCHED_START_DATE > p_x_ahl_mtltxn_rec.TRANSACTION_DATE
2058: THEN
2059: FND_MESSAGE.Set_Name('AHL','AHL_COM_INVALID_TRANSACTION_DATE');
2060: --FND_MESSAGE.Set_Token('FIELD',p_x_ahl_mtltxn_rec.Inventory_Item_Id);
2061: FND_MSG_PUB.ADD;
2062:
2063: END IF;
2064: END IF;
2072: FETCH AHL_ITEM_ID_CUR INTO l_serial_Control, l_lot_control, l_revision_control, l_location_control,
2073: x_eam_item_type_id, l_primary_uom_code,
2074: l_concatenated_segments;
2075: IF(AHL_ITEM_ID_CUR%NOTFOUND) THEN
2076: FND_MESSAGE.Set_Name('AHL','AHL_COM_INVALID_ITEM');
2077: if(p_x_ahl_mtltxn_rec.Inventory_Item_Id = FND_API.G_MISS_NUM) THEN
2078: p_x_ahl_mtltxn_rec.Inventory_Item_Id := NULL;
2079: END IF;
2080: FND_MESSAGE.Set_Token('FIELD',p_x_ahl_mtltxn_rec.Inventory_Item_Id);
2076: FND_MESSAGE.Set_Name('AHL','AHL_COM_INVALID_ITEM');
2077: if(p_x_ahl_mtltxn_rec.Inventory_Item_Id = FND_API.G_MISS_NUM) THEN
2078: p_x_ahl_mtltxn_rec.Inventory_Item_Id := NULL;
2079: END IF;
2080: FND_MESSAGE.Set_Token('FIELD',p_x_ahl_mtltxn_rec.Inventory_Item_Id);
2081: FND_MSG_PUB.ADD;
2082: x_return_status := FND_API.G_RET_STS_ERROR;
2083: CLOSE AHL_ITEM_ID_CUR;
2084: -- Skip the rest of the validations.
2101: p_project_id => l_project_id,
2102: p_task_id => l_project_task_id,
2103: p_project_locator_id => l_project_locator_id);
2104: IF (l_project_locator_id IS NULL) THEN
2105: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOCATOR');
2106: FND_MESSAGE.Set_Token('LOC',l_inv_locator_id);
2107: FND_MSG_PUB.ADD;
2108: RAISE FND_API.G_EXC_ERROR;
2109: ELSE
2102: p_task_id => l_project_task_id,
2103: p_project_locator_id => l_project_locator_id);
2104: IF (l_project_locator_id IS NULL) THEN
2105: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOCATOR');
2106: FND_MESSAGE.Set_Token('LOC',l_inv_locator_id);
2107: FND_MSG_PUB.ADD;
2108: RAISE FND_API.G_EXC_ERROR;
2109: ELSE
2110: p_x_ahl_mtltxn_rec.locator_id := l_project_locator_id;
2111: p_x_ahl_mtltxn_rec.subinventory_name := l_subinventory_code;
2112: END IF;
2113: ELSE
2114: -- move_to_project_flag error.
2115: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MOVEPRJ_FLAG_INVALID');
2116: FND_MSG_PUB.ADD;
2117: END IF;
2118:
2119: END IF; -- p_x_ahl_mtltxn_rec.Locator_Id.move_to_project_flag = 'Y'
2156: -- If the item is of serial controlled check if the serial numebr is null
2157: IF((p_x_ahl_mtltxn_rec.Serial_Number IS NULL
2158: OR p_x_ahl_mtltxn_rec.Serial_Number = FND_API.G_MISS_CHAR)
2159: AND (nvl(l_serial_Control,0) <> nvl(C_NO_SERIAL_CONTROL,0)) ) THEN
2160: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_SRLNUM');
2161: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2162: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2163: FND_MSG_PUB.ADD;
2164: x_return_status := FND_API.G_RET_STS_ERROR;
2157: IF((p_x_ahl_mtltxn_rec.Serial_Number IS NULL
2158: OR p_x_ahl_mtltxn_rec.Serial_Number = FND_API.G_MISS_CHAR)
2159: AND (nvl(l_serial_Control,0) <> nvl(C_NO_SERIAL_CONTROL,0)) ) THEN
2160: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_SRLNUM');
2161: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2162: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2163: FND_MSG_PUB.ADD;
2164: x_return_status := FND_API.G_RET_STS_ERROR;
2165: END IF;
2158: OR p_x_ahl_mtltxn_rec.Serial_Number = FND_API.G_MISS_CHAR)
2159: AND (nvl(l_serial_Control,0) <> nvl(C_NO_SERIAL_CONTROL,0)) ) THEN
2160: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_SRLNUM');
2161: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2162: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2163: FND_MSG_PUB.ADD;
2164: x_return_status := FND_API.G_RET_STS_ERROR;
2165: END IF;
2166:
2166:
2167: IF (p_x_ahl_mtltxn_rec.Serial_Number IS NOT NULL AND
2168: p_x_ahl_mtltxn_rec.Serial_Number <> FND_API.G_MISS_CHAR AND
2169: nvl(l_serial_Control,1) = 1) THEN
2170: FND_MESSAGE.Set_Name('AHL','AHL_PRD_SRLNUM_NOTMAND');
2171: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2172: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2173: FND_MSG_PUB.ADD;
2174: x_return_status := FND_API.G_RET_STS_ERROR;
2167: IF (p_x_ahl_mtltxn_rec.Serial_Number IS NOT NULL AND
2168: p_x_ahl_mtltxn_rec.Serial_Number <> FND_API.G_MISS_CHAR AND
2169: nvl(l_serial_Control,1) = 1) THEN
2170: FND_MESSAGE.Set_Name('AHL','AHL_PRD_SRLNUM_NOTMAND');
2171: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2172: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2173: FND_MSG_PUB.ADD;
2174: x_return_status := FND_API.G_RET_STS_ERROR;
2175: END IF;
2168: p_x_ahl_mtltxn_rec.Serial_Number <> FND_API.G_MISS_CHAR AND
2169: nvl(l_serial_Control,1) = 1) THEN
2170: FND_MESSAGE.Set_Name('AHL','AHL_PRD_SRLNUM_NOTMAND');
2171: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2172: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2173: FND_MSG_PUB.ADD;
2174: x_return_status := FND_API.G_RET_STS_ERROR;
2175: END IF;
2176:
2193: -- validate lookup code.
2194: OPEN create_wo_cur(p_x_ahl_mtltxn_rec.create_wo_option, 'AHL_SR_WO_CREATE_OPTIONS');
2195: FETCH create_wo_cur INTO l_fnd_meaning;
2196: IF (create_wo_cur%NOTFOUND) THEN
2197: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INV_LOOKUP');
2198: FND_MESSAGE.Set_Token('LCODE',p_x_ahl_mtltxn_rec.create_wo_option);
2199: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2200: FND_MSG_PUB.ADD;
2201: x_return_status := FND_API.G_RET_STS_ERROR;
2194: OPEN create_wo_cur(p_x_ahl_mtltxn_rec.create_wo_option, 'AHL_SR_WO_CREATE_OPTIONS');
2195: FETCH create_wo_cur INTO l_fnd_meaning;
2196: IF (create_wo_cur%NOTFOUND) THEN
2197: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INV_LOOKUP');
2198: FND_MESSAGE.Set_Token('LCODE',p_x_ahl_mtltxn_rec.create_wo_option);
2199: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2200: FND_MSG_PUB.ADD;
2201: x_return_status := FND_API.G_RET_STS_ERROR;
2202: END IF;
2195: FETCH create_wo_cur INTO l_fnd_meaning;
2196: IF (create_wo_cur%NOTFOUND) THEN
2197: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INV_LOOKUP');
2198: FND_MESSAGE.Set_Token('LCODE',p_x_ahl_mtltxn_rec.create_wo_option);
2199: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2200: FND_MSG_PUB.ADD;
2201: x_return_status := FND_API.G_RET_STS_ERROR;
2202: END IF;
2203: CLOSE create_wo_cur;
2210: -- Check if create_wo_option is valid based on l_serial_Control.
2211: IF (nvl(l_serial_Control,0) = C_NO_SERIAL_CONTROL ) THEN
2212: -- non-serial.
2213: IF (p_x_ahl_mtltxn_rec.create_wo_option = 'CREATE_WO_NO') THEN
2214: FND_MESSAGE.Set_Name('AHL','AHL_PRD_NONSRL_WO_OPT');
2215: FND_MESSAGE.Set_Token('WO_OPT',l_fnd_meaning);
2216: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2217: FND_MSG_PUB.ADD;
2218: x_return_status := FND_API.G_RET_STS_ERROR;
2211: IF (nvl(l_serial_Control,0) = C_NO_SERIAL_CONTROL ) THEN
2212: -- non-serial.
2213: IF (p_x_ahl_mtltxn_rec.create_wo_option = 'CREATE_WO_NO') THEN
2214: FND_MESSAGE.Set_Name('AHL','AHL_PRD_NONSRL_WO_OPT');
2215: FND_MESSAGE.Set_Token('WO_OPT',l_fnd_meaning);
2216: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2217: FND_MSG_PUB.ADD;
2218: x_return_status := FND_API.G_RET_STS_ERROR;
2219: END IF;
2212: -- non-serial.
2213: IF (p_x_ahl_mtltxn_rec.create_wo_option = 'CREATE_WO_NO') THEN
2214: FND_MESSAGE.Set_Name('AHL','AHL_PRD_NONSRL_WO_OPT');
2215: FND_MESSAGE.Set_Token('WO_OPT',l_fnd_meaning);
2216: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2217: FND_MSG_PUB.ADD;
2218: x_return_status := FND_API.G_RET_STS_ERROR;
2219: END IF;
2220: END IF;
2228: -- If the item is of lot controlled check if the lot number is null
2229: IF((p_x_ahl_mtltxn_rec.Lot_Number IS NULL
2230: OR p_x_ahl_mtltxn_rec.Lot_Number = FND_API.G_MISS_CHAR)
2231: AND (l_lot_Control <> C_NO_LOT_CONTROL) ) THEN
2232: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOT');
2233: FND_MESSAGE.Set_Token('LOT',p_x_ahl_mtltxn_rec.Lot_Number);
2234: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2235: FND_MSG_PUB.ADD;
2236: x_return_status := FND_API.G_RET_STS_ERROR;
2229: IF((p_x_ahl_mtltxn_rec.Lot_Number IS NULL
2230: OR p_x_ahl_mtltxn_rec.Lot_Number = FND_API.G_MISS_CHAR)
2231: AND (l_lot_Control <> C_NO_LOT_CONTROL) ) THEN
2232: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOT');
2233: FND_MESSAGE.Set_Token('LOT',p_x_ahl_mtltxn_rec.Lot_Number);
2234: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2235: FND_MSG_PUB.ADD;
2236: x_return_status := FND_API.G_RET_STS_ERROR;
2237: END IF;
2230: OR p_x_ahl_mtltxn_rec.Lot_Number = FND_API.G_MISS_CHAR)
2231: AND (l_lot_Control <> C_NO_LOT_CONTROL) ) THEN
2232: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOT');
2233: FND_MESSAGE.Set_Token('LOT',p_x_ahl_mtltxn_rec.Lot_Number);
2234: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2235: FND_MSG_PUB.ADD;
2236: x_return_status := FND_API.G_RET_STS_ERROR;
2237: END IF;
2238: -- validate lot number.
2243: p_x_ahl_mtltxn_rec.inventory_item_id,
2244: p_x_ahl_mtltxn_rec.Lot_Number);
2245: FETCH mtl_lot_num_csr INTO l_junk;
2246: IF (mtl_lot_num_csr%NOTFOUND) THEN
2247: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOT');
2248: FND_MESSAGE.Set_Token('LOT',p_x_ahl_mtltxn_rec.Lot_Number);
2249: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2250: FND_MSG_PUB.ADD;
2251: x_return_status := FND_API.G_RET_STS_ERROR;
2244: p_x_ahl_mtltxn_rec.Lot_Number);
2245: FETCH mtl_lot_num_csr INTO l_junk;
2246: IF (mtl_lot_num_csr%NOTFOUND) THEN
2247: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOT');
2248: FND_MESSAGE.Set_Token('LOT',p_x_ahl_mtltxn_rec.Lot_Number);
2249: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2250: FND_MSG_PUB.ADD;
2251: x_return_status := FND_API.G_RET_STS_ERROR;
2252: END IF;
2245: FETCH mtl_lot_num_csr INTO l_junk;
2246: IF (mtl_lot_num_csr%NOTFOUND) THEN
2247: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOT');
2248: FND_MESSAGE.Set_Token('LOT',p_x_ahl_mtltxn_rec.Lot_Number);
2249: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2250: FND_MSG_PUB.ADD;
2251: x_return_status := FND_API.G_RET_STS_ERROR;
2252: END IF;
2253: CLOSE mtl_lot_num_csr;
2256: -- raise error if item is not lot controlled.
2257: IF ((p_x_ahl_mtltxn_rec.Lot_Number IS NOT NULL AND
2258: p_x_ahl_mtltxn_rec.Lot_Number <> FND_API.G_MISS_CHAR)
2259: AND (l_lot_Control = C_NO_LOT_CONTROL) ) THEN
2260: FND_MESSAGE.Set_Name('AHL','AHL_PRD_LOT_NOTNULL');
2261: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2262: FND_MSG_PUB.ADD;
2263: x_return_status := FND_API.G_RET_STS_ERROR;
2264: END IF;
2257: IF ((p_x_ahl_mtltxn_rec.Lot_Number IS NOT NULL AND
2258: p_x_ahl_mtltxn_rec.Lot_Number <> FND_API.G_MISS_CHAR)
2259: AND (l_lot_Control = C_NO_LOT_CONTROL) ) THEN
2260: FND_MESSAGE.Set_Name('AHL','AHL_PRD_LOT_NOTNULL');
2261: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2262: FND_MSG_PUB.ADD;
2263: x_return_status := FND_API.G_RET_STS_ERROR;
2264: END IF;
2265:
2275:
2276: IF(p_x_ahl_mtltxn_rec.Locator_Id IS NULL
2277: OR p_x_ahl_mtltxn_rec.Locator_Id = FND_API.G_MISS_NUM) THEN
2278: IF (l_location_Control <> C_NO_LOCATOR_CONTROL) THEN
2279: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOCATOR');
2280: if(p_x_ahl_mtltxn_rec.Locator_Id = FND_API.G_MISS_NUM) THEN
2281: p_x_ahl_mtltxn_rec.Locator_Id := NULL;
2282: END IF;
2283: FND_MESSAGE.Set_Token('LOC',p_x_ahl_mtltxn_rec.Locator_Id);
2279: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOCATOR');
2280: if(p_x_ahl_mtltxn_rec.Locator_Id = FND_API.G_MISS_NUM) THEN
2281: p_x_ahl_mtltxn_rec.Locator_Id := NULL;
2282: END IF;
2283: FND_MESSAGE.Set_Token('LOC',p_x_ahl_mtltxn_rec.Locator_Id);
2284: FND_MSG_PUB.ADD;
2285: x_return_status := FND_API.G_RET_STS_ERROR;
2286: END IF;
2287: ELSE
2292: p_x_ahl_mtltxn_rec.Locator_Id,
2293: p_x_ahl_mtltxn_rec.Subinventory_Name);
2294: FETCH AHL_LOCATOR_CUR INTO l_Count;
2295: IF(AHL_LOCATOR_CUR%NOTFOUND) THEN
2296: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOCATOR');
2297: if(p_x_ahl_mtltxn_rec.Locator_Id = FND_API.G_MISS_NUM) THEN
2298: p_x_ahl_mtltxn_rec.Locator_Id := NULL;
2299: END IF;
2300: FND_MESSAGE.Set_Token('LOC',p_x_ahl_mtltxn_rec.Locator_Id);
2296: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOCATOR');
2297: if(p_x_ahl_mtltxn_rec.Locator_Id = FND_API.G_MISS_NUM) THEN
2298: p_x_ahl_mtltxn_rec.Locator_Id := NULL;
2299: END IF;
2300: FND_MESSAGE.Set_Token('LOC',p_x_ahl_mtltxn_rec.Locator_Id);
2301: FND_MSG_PUB.ADD;
2302: x_return_status := FND_API.G_RET_STS_ERROR;
2303: END IF;
2304: CLOSE AHL_LOCATOR_CUR;
2314: IF (nvl(l_revision_control, -1) = 2)
2315: THEN
2316: IF (p_x_ahl_mtltxn_rec.Revision IS NULL OR p_x_ahl_mtltxn_rec.Revision = FND_API.G_MISS_CHAR)
2317: THEN
2318: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_REVISION');
2319: FND_MESSAGE.Set_Token('REVISION',p_x_ahl_mtltxn_rec.Revision);
2320: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2321: FND_MSG_PUB.ADD;
2322: x_return_status := FND_API.G_RET_STS_ERROR;
2315: THEN
2316: IF (p_x_ahl_mtltxn_rec.Revision IS NULL OR p_x_ahl_mtltxn_rec.Revision = FND_API.G_MISS_CHAR)
2317: THEN
2318: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_REVISION');
2319: FND_MESSAGE.Set_Token('REVISION',p_x_ahl_mtltxn_rec.Revision);
2320: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2321: FND_MSG_PUB.ADD;
2322: x_return_status := FND_API.G_RET_STS_ERROR;
2323: ELSE
2316: IF (p_x_ahl_mtltxn_rec.Revision IS NULL OR p_x_ahl_mtltxn_rec.Revision = FND_API.G_MISS_CHAR)
2317: THEN
2318: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_REVISION');
2319: FND_MESSAGE.Set_Token('REVISION',p_x_ahl_mtltxn_rec.Revision);
2320: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2321: FND_MSG_PUB.ADD;
2322: x_return_status := FND_API.G_RET_STS_ERROR;
2323: ELSE
2324: OPEN AHL_REVISION_CUR
2329: );
2330: FETCH AHL_REVISION_CUR INTO l_Count;
2331: IF (AHL_REVISION_CUR%NOTFOUND)
2332: THEN
2333: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_REVISION');
2334: FND_MESSAGE.Set_Token('REVISION',p_x_ahl_mtltxn_rec.Revision);
2335: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2336: FND_MSG_PUB.ADD;
2337: x_return_status := FND_API.G_RET_STS_ERROR;
2330: FETCH AHL_REVISION_CUR INTO l_Count;
2331: IF (AHL_REVISION_CUR%NOTFOUND)
2332: THEN
2333: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_REVISION');
2334: FND_MESSAGE.Set_Token('REVISION',p_x_ahl_mtltxn_rec.Revision);
2335: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2336: FND_MSG_PUB.ADD;
2337: x_return_status := FND_API.G_RET_STS_ERROR;
2338: END IF;
2331: IF (AHL_REVISION_CUR%NOTFOUND)
2332: THEN
2333: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_REVISION');
2334: FND_MESSAGE.Set_Token('REVISION',p_x_ahl_mtltxn_rec.Revision);
2335: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2336: FND_MSG_PUB.ADD;
2337: x_return_status := FND_API.G_RET_STS_ERROR;
2338: END IF;
2339: CLOSE AHL_REVISION_CUR;
2340: END IF;
2341: ELSE
2342: IF (p_x_ahl_mtltxn_rec.Revision IS NOT NULL AND p_x_ahl_mtltxn_rec.Revision <> FND_API.G_MISS_CHAR)
2343: THEN
2344: FND_MESSAGE.Set_Name('AHL','AHL_PRD_REVNUM_NOTMAND');
2345: FND_MESSAGE.Set_Token('REV',p_x_ahl_mtltxn_rec.Revision);
2346: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2347: FND_MSG_PUB.ADD;
2348: x_return_status := FND_API.G_RET_STS_ERROR;
2341: ELSE
2342: IF (p_x_ahl_mtltxn_rec.Revision IS NOT NULL AND p_x_ahl_mtltxn_rec.Revision <> FND_API.G_MISS_CHAR)
2343: THEN
2344: FND_MESSAGE.Set_Name('AHL','AHL_PRD_REVNUM_NOTMAND');
2345: FND_MESSAGE.Set_Token('REV',p_x_ahl_mtltxn_rec.Revision);
2346: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2347: FND_MSG_PUB.ADD;
2348: x_return_status := FND_API.G_RET_STS_ERROR;
2349: END IF;
2342: IF (p_x_ahl_mtltxn_rec.Revision IS NOT NULL AND p_x_ahl_mtltxn_rec.Revision <> FND_API.G_MISS_CHAR)
2343: THEN
2344: FND_MESSAGE.Set_Name('AHL','AHL_PRD_REVNUM_NOTMAND');
2345: FND_MESSAGE.Set_Token('REV',p_x_ahl_mtltxn_rec.Revision);
2346: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2347: FND_MSG_PUB.ADD;
2348: x_return_status := FND_API.G_RET_STS_ERROR;
2349: END IF;
2350: END IF;
2355: p_x_ahl_mtltxn_rec.Reason_Id <> FND_API.G_MISS_NUM) THEN
2356: OPEN AHL_REASON_CUR(p_x_ahl_mtltxn_rec.Reason_Id);
2357: FETCH AHL_REASON_CUR INTO l_Count;
2358: IF(AHL_REASON_CUR%NOTFOUND) THEN
2359: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVLD_REASON');
2360: FND_MESSAGE.Set_Token('REASON',p_x_ahl_mtltxn_rec.Revision);
2361: FND_MSG_PUB.ADD;
2362: x_return_status := FND_API.G_RET_STS_ERROR;
2363: END IF;
2356: OPEN AHL_REASON_CUR(p_x_ahl_mtltxn_rec.Reason_Id);
2357: FETCH AHL_REASON_CUR INTO l_Count;
2358: IF(AHL_REASON_CUR%NOTFOUND) THEN
2359: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVLD_REASON');
2360: FND_MESSAGE.Set_Token('REASON',p_x_ahl_mtltxn_rec.Revision);
2361: FND_MSG_PUB.ADD;
2362: x_return_status := FND_API.G_RET_STS_ERROR;
2363: END IF;
2364: CLOSE AHL_REASON_CUR;
2368: --Condition Validation
2369: OPEN Condition_Cur(p_x_ahl_mtltxn_rec.Condition);
2370: FETCH Condition_Cur INTO l_Count;
2371: IF(Condition_Cur%NOTFOUND) THEN
2372: FND_MESSAGE.Set_Name('AHL','AHL_PRD_COND_INVALID');
2373: if(p_x_ahl_mtltxn_rec.Condition = FND_API.G_MISS_NUM) THEN
2374: p_x_ahl_mtltxn_rec.Condition := NULL;
2375: END IF;
2376: FND_MESSAGE.Set_Token('CODE',p_x_ahl_mtltxn_rec.Condition);
2372: FND_MESSAGE.Set_Name('AHL','AHL_PRD_COND_INVALID');
2373: if(p_x_ahl_mtltxn_rec.Condition = FND_API.G_MISS_NUM) THEN
2374: p_x_ahl_mtltxn_rec.Condition := NULL;
2375: END IF;
2376: FND_MESSAGE.Set_Token('CODE',p_x_ahl_mtltxn_rec.Condition);
2377: FND_MSG_PUB.ADD;
2378: x_return_status := FND_API.G_RET_STS_ERROR;
2379: END IF;
2380: CLOSE Condition_Cur;
2430: /*
2431: OPEN CSI_LOCATION_CUR(p_x_ahl_mtltxn_rec.Organization_Id);
2432: FETCH CSI_LOCATION_CUR INTO l_wip_location;
2433: IF(CSI_LOCATION_CUR%NOTFOUND) THEN
2434: FND_MESSAGE.Set_Name('AHL','AHL_PRD_CSI_INSTALL_ERROR');
2435: FND_MSG_PUB.ADD;
2436: x_return_status := FND_API.G_RET_STS_ERROR;
2437: END IF;
2438: CLOSE CSI_LOCATION_CUR;
2529: --, p_x_ahl_mtltxn_rec.Subinventory_Name;
2530: END IF;
2531: EXCEPTION
2532: WHEN NO_DATA_FOUND THEN
2533: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTL_TXN_NOT_ALLOWED');
2534: FND_MSG_PUB.ADD;
2535: x_return_status := FND_API.G_RET_STS_ERROR;
2536: END;
2537: p_x_ahl_mtltxn_rec.Item_Instance_ID := x_Item_Instance_Id;
2578: p_x_ahl_mtltxn_rec.Serial_Number);
2579: --l_wip_location);
2580: FETCH CSI_SER_ITEM_CUR INTO x_Item_Instance_Id;
2581: IF(CSI_SER_ITEM_CUR%NOTFOUND) THEN
2582: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTL_TXN_NOT_ALLOWED');
2583: FND_MSG_PUB.ADD;
2584: x_return_status := FND_API.G_RET_STS_ERROR;
2585: END IF;
2586: CLOSE CSI_SER_ITEM_CUR;
2617:
2618: IF ((l_plan_id is not null) AND
2619: (p_x_ahl_mtltxn_rec.Qa_Collection_Id = FND_API.G_MISS_NUM OR
2620: p_x_ahl_mtltxn_rec.Qa_Collection_Id IS NULL)) THEN
2621: FND_MESSAGE.Set_Name('AHL','AHL_PRD_NO_QA_RESULTS');
2622: FND_MSG_PUB.ADD;
2623: x_return_status := FND_API.G_RET_STS_ERROR;
2624: END IF;
2625: END IF;
2633:
2634: OPEN PROBLEM_CODE_LKUP_CUR(p_x_ahl_mtltxn_rec.Problem_Code) ;
2635: FETCH PROBLEM_CODE_LKUP_CUR INTO l_count;
2636: IF(PROBLEM_CODE_LKUP_CUR%NOTFOUND) THEN
2637: FND_MESSAGE.Set_Name('AHL','AHL_PRD_PROBLEM_CODE_INVALID');
2638: FND_MESSAGE.Set_Token('CODE',p_x_ahl_mtltxn_rec.Problem_Code);
2639: FND_MSG_PUB.ADD;
2640: x_return_status := FND_API.G_RET_STS_ERROR;
2641: END IF;
2634: OPEN PROBLEM_CODE_LKUP_CUR(p_x_ahl_mtltxn_rec.Problem_Code) ;
2635: FETCH PROBLEM_CODE_LKUP_CUR INTO l_count;
2636: IF(PROBLEM_CODE_LKUP_CUR%NOTFOUND) THEN
2637: FND_MESSAGE.Set_Name('AHL','AHL_PRD_PROBLEM_CODE_INVALID');
2638: FND_MESSAGE.Set_Token('CODE',p_x_ahl_mtltxn_rec.Problem_Code);
2639: FND_MSG_PUB.ADD;
2640: x_return_status := FND_API.G_RET_STS_ERROR;
2641: END IF;
2642: CLOSE PROBLEM_CODE_LKUP_CUR;
2652: p_x_ahl_mtltxn_rec.Inventory_Item_Id)) THEN
2653: OPEN CSI_ISSUE_SER_ITEM_CUR( p_x_ahl_mtltxn_rec.Inventory_Item_Id,p_x_ahl_mtltxn_rec.Serial_Number );
2654: FETCH CSI_ISSUE_SER_ITEM_CUR INTO p_x_ahl_mtltxn_rec.Item_Instance_ID;
2655: IF(CSI_ISSUE_SER_ITEM_CUR%NOTFOUND) THEN
2656: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTL_TXN_NOT_ALLOWED');
2657: FND_MSG_PUB.ADD;
2658: x_return_status := FND_API.G_RET_STS_ERROR;
2659: END IF;
2660: CLOSE CSI_ISSUE_SER_ITEM_CUR;
2684: from_name => NULL,
2685: to_name => NULL );
2686:
2687: IF (l_quantity <> 1) THEN
2688: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_ITEM_QTY');
2689: FND_MESSAGE.Set_Token('PRIM_UOM',l_primary_uom_code);
2690: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2691: FND_MSG_PUB.ADD;
2692: x_return_status := FND_API.G_RET_STS_ERROR;
2685: to_name => NULL );
2686:
2687: IF (l_quantity <> 1) THEN
2688: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_ITEM_QTY');
2689: FND_MESSAGE.Set_Token('PRIM_UOM',l_primary_uom_code);
2690: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2691: FND_MSG_PUB.ADD;
2692: x_return_status := FND_API.G_RET_STS_ERROR;
2693: END IF;
2686:
2687: IF (l_quantity <> 1) THEN
2688: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_ITEM_QTY');
2689: FND_MESSAGE.Set_Token('PRIM_UOM',l_primary_uom_code);
2690: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2691: FND_MSG_PUB.ADD;
2692: x_return_status := FND_API.G_RET_STS_ERROR;
2693: END IF;
2694: ELSE
2693: END IF;
2694: ELSE
2695: -- qty in primary uom.
2696: IF (p_x_ahl_mtltxn_rec.Quantity <> 1) THEN
2697: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_ITEM_QTY');
2698: FND_MESSAGE.Set_Token('PRIM_UOM',l_primary_uom_code);
2699: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2700: FND_MSG_PUB.ADD;
2701: x_return_status := FND_API.G_RET_STS_ERROR;
2694: ELSE
2695: -- qty in primary uom.
2696: IF (p_x_ahl_mtltxn_rec.Quantity <> 1) THEN
2697: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_ITEM_QTY');
2698: FND_MESSAGE.Set_Token('PRIM_UOM',l_primary_uom_code);
2699: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2700: FND_MSG_PUB.ADD;
2701: x_return_status := FND_API.G_RET_STS_ERROR;
2702: END IF;
2695: -- qty in primary uom.
2696: IF (p_x_ahl_mtltxn_rec.Quantity <> 1) THEN
2697: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_ITEM_QTY');
2698: FND_MESSAGE.Set_Token('PRIM_UOM',l_primary_uom_code);
2699: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2700: FND_MSG_PUB.ADD;
2701: x_return_status := FND_API.G_RET_STS_ERROR;
2702: END IF;
2703: END IF; -- uom code.
2725:
2726: IF (p_x_ahl_mtltxn_rec.subinventory_Name IS NOT NULL AND
2727: p_x_ahl_mtltxn_rec.subinventory_Name <> FND_API.G_MISS_CHAR AND
2728: p_x_ahl_mtltxn_rec.subinventory_Name <> l_curr_subinventory_code) THEN
2729: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_SUB_CODE');
2730: FND_MESSAGE.Set_Token('CODE',l_curr_subinventory_code);
2731: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2732: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2733: FND_MSG_PUB.ADD;
2726: IF (p_x_ahl_mtltxn_rec.subinventory_Name IS NOT NULL AND
2727: p_x_ahl_mtltxn_rec.subinventory_Name <> FND_API.G_MISS_CHAR AND
2728: p_x_ahl_mtltxn_rec.subinventory_Name <> l_curr_subinventory_code) THEN
2729: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_SUB_CODE');
2730: FND_MESSAGE.Set_Token('CODE',l_curr_subinventory_code);
2731: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2732: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2733: FND_MSG_PUB.ADD;
2734: x_return_status := FND_API.G_RET_STS_ERROR;
2727: p_x_ahl_mtltxn_rec.subinventory_Name <> FND_API.G_MISS_CHAR AND
2728: p_x_ahl_mtltxn_rec.subinventory_Name <> l_curr_subinventory_code) THEN
2729: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_SUB_CODE');
2730: FND_MESSAGE.Set_Token('CODE',l_curr_subinventory_code);
2731: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2732: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2733: FND_MSG_PUB.ADD;
2734: x_return_status := FND_API.G_RET_STS_ERROR;
2735: END IF;
2728: p_x_ahl_mtltxn_rec.subinventory_Name <> l_curr_subinventory_code) THEN
2729: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_SUB_CODE');
2730: FND_MESSAGE.Set_Token('CODE',l_curr_subinventory_code);
2731: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2732: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2733: FND_MSG_PUB.ADD;
2734: x_return_status := FND_API.G_RET_STS_ERROR;
2735: END IF;
2736:
2741: IF (p_x_ahl_mtltxn_rec.locator_id IS NOT NULL AND
2742: p_x_ahl_mtltxn_rec.locator_id <> FND_API.G_MISS_NUM AND
2743: l_curr_locator_id IS NOT NULL AND
2744: p_x_ahl_mtltxn_rec.locator_id <> l_curr_locator_id) THEN
2745: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOC_CODE');
2746: --FND_MESSAGE.Set_Token('CODE',l_curr_locator_id);
2747: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2748: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2749: FND_MSG_PUB.ADD;
2742: p_x_ahl_mtltxn_rec.locator_id <> FND_API.G_MISS_NUM AND
2743: l_curr_locator_id IS NOT NULL AND
2744: p_x_ahl_mtltxn_rec.locator_id <> l_curr_locator_id) THEN
2745: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOC_CODE');
2746: --FND_MESSAGE.Set_Token('CODE',l_curr_locator_id);
2747: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2748: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2749: FND_MSG_PUB.ADD;
2750: x_return_status := FND_API.G_RET_STS_ERROR;
2743: l_curr_locator_id IS NOT NULL AND
2744: p_x_ahl_mtltxn_rec.locator_id <> l_curr_locator_id) THEN
2745: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOC_CODE');
2746: --FND_MESSAGE.Set_Token('CODE',l_curr_locator_id);
2747: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2748: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2749: FND_MSG_PUB.ADD;
2750: x_return_status := FND_API.G_RET_STS_ERROR;
2751: END IF;
2744: p_x_ahl_mtltxn_rec.locator_id <> l_curr_locator_id) THEN
2745: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_LOC_CODE');
2746: --FND_MESSAGE.Set_Token('CODE',l_curr_locator_id);
2747: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2748: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2749: FND_MSG_PUB.ADD;
2750: x_return_status := FND_API.G_RET_STS_ERROR;
2751: END IF;
2752: ELSE
2750: x_return_status := FND_API.G_RET_STS_ERROR;
2751: END IF;
2752: ELSE
2753: -- serial number not found.
2754: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_SRLNUM');
2755: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2756: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2757: FND_MSG_PUB.ADD;
2758: x_return_status := FND_API.G_RET_STS_ERROR;
2751: END IF;
2752: ELSE
2753: -- serial number not found.
2754: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_SRLNUM');
2755: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2756: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2757: FND_MSG_PUB.ADD;
2758: x_return_status := FND_API.G_RET_STS_ERROR;
2759: END IF;
2752: ELSE
2753: -- serial number not found.
2754: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_SRLNUM');
2755: FND_MESSAGE.Set_Token('ITEM',l_concatenated_segments);
2756: FND_MESSAGE.Set_Token('SER',p_x_ahl_mtltxn_rec.Serial_Number);
2757: FND_MSG_PUB.ADD;
2758: x_return_status := FND_API.G_RET_STS_ERROR;
2759: END IF;
2760:
2781:
2782: IF G_DEBUG='Y' THEN
2783: AHL_DEBUG_PUB.debug('Error in txn date');
2784: END IF;
2785: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_TXN_DATE');
2786: FND_MESSAGE.Set_Token('DATE',p_x_ahl_mtltxn_rec.transaction_date);
2787: FND_MSG_PUB.ADD;
2788: x_return_status := FND_API.G_RET_STS_ERROR;
2789: END IF;
2782: IF G_DEBUG='Y' THEN
2783: AHL_DEBUG_PUB.debug('Error in txn date');
2784: END IF;
2785: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_TXN_DATE');
2786: FND_MESSAGE.Set_Token('DATE',p_x_ahl_mtltxn_rec.transaction_date);
2787: FND_MSG_PUB.ADD;
2788: x_return_status := FND_API.G_RET_STS_ERROR;
2789: END IF;
2790:
2794: */
2795: OPEN workorder_released_date_csr(p_x_ahl_mtltxn_rec.Wip_Entity_Id);
2796: FETCH workorder_released_date_csr INTO l_workorder_released_date;
2797: IF(workorder_released_date_csr%NOTFOUND)THEN
2798: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WIP_ENTITY');
2799: IF(p_x_ahl_mtltxn_rec.Wip_Entity_Id = FND_API.G_MISS_NUM) THEN
2800: p_x_ahl_mtltxn_rec.Wip_Entity_Id := NULL;
2801: END IF;
2802: FND_MESSAGE.Set_Token('WIP_ENTITY',p_x_ahl_mtltxn_rec.Wip_Entity_Id);
2798: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WIP_ENTITY');
2799: IF(p_x_ahl_mtltxn_rec.Wip_Entity_Id = FND_API.G_MISS_NUM) THEN
2800: p_x_ahl_mtltxn_rec.Wip_Entity_Id := NULL;
2801: END IF;
2802: FND_MESSAGE.Set_Token('WIP_ENTITY',p_x_ahl_mtltxn_rec.Wip_Entity_Id);
2803: FND_MSG_PUB.ADD;
2804: x_return_status := FND_API.G_RET_STS_ERROR;
2805: ELSE
2806: IF G_DEBUG='Y' THEN
2810: IF(l_workorder_released_date > p_x_ahl_mtltxn_rec.transaction_date)THEN
2811: IF G_DEBUG='Y' THEN
2812: AHL_DEBUG_PUB.debug('release date is greater than transaction date');
2813: END IF;
2814: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_TXN_REL_DT');
2815: FND_MESSAGE.Set_Token('TXNS_DATE',to_char(p_x_ahl_mtltxn_rec.transaction_date,'dd-MON-yyyy hh24:mi:ss'));
2816: FND_MESSAGE.Set_Token('REL_DATE',to_char(l_workorder_released_date,'dd-MON-yyyy hh24:mi:ss'));
2817: FND_MSG_PUB.ADD;
2818: x_return_status := FND_API.G_RET_STS_ERROR;
2811: IF G_DEBUG='Y' THEN
2812: AHL_DEBUG_PUB.debug('release date is greater than transaction date');
2813: END IF;
2814: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_TXN_REL_DT');
2815: FND_MESSAGE.Set_Token('TXNS_DATE',to_char(p_x_ahl_mtltxn_rec.transaction_date,'dd-MON-yyyy hh24:mi:ss'));
2816: FND_MESSAGE.Set_Token('REL_DATE',to_char(l_workorder_released_date,'dd-MON-yyyy hh24:mi:ss'));
2817: FND_MSG_PUB.ADD;
2818: x_return_status := FND_API.G_RET_STS_ERROR;
2819: END IF;
2812: AHL_DEBUG_PUB.debug('release date is greater than transaction date');
2813: END IF;
2814: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_TXN_REL_DT');
2815: FND_MESSAGE.Set_Token('TXNS_DATE',to_char(p_x_ahl_mtltxn_rec.transaction_date,'dd-MON-yyyy hh24:mi:ss'));
2816: FND_MESSAGE.Set_Token('REL_DATE',to_char(l_workorder_released_date,'dd-MON-yyyy hh24:mi:ss'));
2817: FND_MSG_PUB.ADD;
2818: x_return_status := FND_API.G_RET_STS_ERROR;
2819: END IF;
2820: END IF;
2843: p_x_ahl_mtltxn_rec.Revision,
2844: p_x_ahl_mtltxn_rec.Lot_Number);
2845: FETCH disposition_cur INTO l_disposition_id;
2846: IF (disposition_cur%NOTFOUND) THEN
2847: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTL_DISP_INVALID');
2848: FND_MESSAGE.Set_Token('DISP_ID',p_x_ahl_mtltxn_rec.disposition_id);
2849: FND_MSG_PUB.ADD;
2850: x_return_status := FND_API.G_RET_STS_ERROR;
2851: END IF;
2844: p_x_ahl_mtltxn_rec.Lot_Number);
2845: FETCH disposition_cur INTO l_disposition_id;
2846: IF (disposition_cur%NOTFOUND) THEN
2847: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTL_DISP_INVALID');
2848: FND_MESSAGE.Set_Token('DISP_ID',p_x_ahl_mtltxn_rec.disposition_id);
2849: FND_MSG_PUB.ADD;
2850: x_return_status := FND_API.G_RET_STS_ERROR;
2851: END IF;
2852: CLOSE disposition_cur;
3091: IF G_DEBUG='Y' THEN
3092: AHL_DEBUG_PUB.debug('inserted in mmtt..ret_status['||x_return_status||']');
3093: END IF;
3094: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3095: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
3096: FND_MESSAGE.Set_Token('MSG',x_msg_data);
3097: FND_MSG_PUB.ADD;
3098: RAISE FND_API.G_EXC_ERROR;
3099: END IF;
3092: AHL_DEBUG_PUB.debug('inserted in mmtt..ret_status['||x_return_status||']');
3093: END IF;
3094: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3095: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
3096: FND_MESSAGE.Set_Token('MSG',x_msg_data);
3097: FND_MSG_PUB.ADD;
3098: RAISE FND_API.G_EXC_ERROR;
3099: END IF;
3100:
3148: IF G_DEBUG='Y' THEN
3149: AHL_DEBUG_PUB.debug('inserted in mtlt..ret_status['||x_return_status||']');
3150: END IF;
3151: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3152: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
3153: FND_MESSAGE.Set_Token('MSG',x_msg_data);
3154: FND_MSG_PUB.ADD;
3155: RAISE FND_API.G_EXC_ERROR;
3156: END IF;
3149: AHL_DEBUG_PUB.debug('inserted in mtlt..ret_status['||x_return_status||']');
3150: END IF;
3151: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3152: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
3153: FND_MESSAGE.Set_Token('MSG',x_msg_data);
3154: FND_MSG_PUB.ADD;
3155: RAISE FND_API.G_EXC_ERROR;
3156: END IF;
3157: IF G_DEBUG='Y' THEN
3169:
3170: END IF;
3171:
3172: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3173: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
3174: FND_MESSAGE.Set_Token('MSG',x_msg_data);
3175: FND_MSG_PUB.ADD;
3176: RAISE FND_API.G_EXC_ERROR;
3177: END IF;
3170: END IF;
3171:
3172: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3173: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
3174: FND_MESSAGE.Set_Token('MSG',x_msg_data);
3175: FND_MSG_PUB.ADD;
3176: RAISE FND_API.G_EXC_ERROR;
3177: END IF;
3178:
3203: AHL_DEBUG_PUB.debug('inserted in mtlt..ret_status['||x_return_status||']');
3204:
3205: END IF;
3206: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3207: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
3208: FND_MESSAGE.Set_Token('MSG',x_msg_data);
3209: FND_MSG_PUB.ADD;
3210: RAISE FND_API.G_EXC_ERROR;
3211: END IF;
3204:
3205: END IF;
3206: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3207: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
3208: FND_MESSAGE.Set_Token('MSG',x_msg_data);
3209: FND_MSG_PUB.ADD;
3210: RAISE FND_API.G_EXC_ERROR;
3211: END IF;
3212:
3237:
3238: END IF;
3239:
3240: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3241: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
3242: FND_MESSAGE.Set_Token('MSG',x_msg_data);
3243: FND_MSG_PUB.ADD;
3244: RAISE FND_API.G_EXC_ERROR;
3245: END IF;
3238: END IF;
3239:
3240: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3241: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
3242: FND_MESSAGE.Set_Token('MSG',x_msg_data);
3243: FND_MSG_PUB.ADD;
3244: RAISE FND_API.G_EXC_ERROR;
3245: END IF;
3246: END IF;
3325: END IF;
3326: OPEN Workop_Det_Cur( p_mtl_txn_Rec.Workorder_Id);
3327: FETCH Workop_Det_Cur INTO l_Visit_Id,l_visit_task_Id,l_project_id,l_project_Task_id;
3328: IF(Workop_Det_Cur%NOTFOUND) THEN
3329: FND_MESSAGE.Set_Name('AHL','AHL_PRD_INVALID_WO_OP');
3330: FND_MSG_PUB.ADD;
3331: CLOSE Workop_Det_Cur;
3332: RAISE FND_API.G_EXC_ERROR;
3333: END IF;
3344:
3345: OPEN Item_Desc_Cur( p_mtl_txn_Rec.Organization_id, p_mtl_txn_Rec.Inventory_Item_Id);
3346: FETCH Item_Desc_Cur INTO l_Item_Desc;
3347: IF(Item_Desc_Cur%NOTFOUND) THEN
3348: FND_MESSAGE.Set_Name('AHL','AHL_COM_INVALID_ITEM');
3349: FND_MESSAGE.Set_Token('FIELD',p_mtl_txn_Rec.Inventory_Item_Id);
3350: FND_MSG_PUB.ADD;
3351: CLOSE Item_Desc_Cur;
3352: RAISE FND_API.G_EXC_ERROR;
3345: OPEN Item_Desc_Cur( p_mtl_txn_Rec.Organization_id, p_mtl_txn_Rec.Inventory_Item_Id);
3346: FETCH Item_Desc_Cur INTO l_Item_Desc;
3347: IF(Item_Desc_Cur%NOTFOUND) THEN
3348: FND_MESSAGE.Set_Name('AHL','AHL_COM_INVALID_ITEM');
3349: FND_MESSAGE.Set_Token('FIELD',p_mtl_txn_Rec.Inventory_Item_Id);
3350: FND_MSG_PUB.ADD;
3351: CLOSE Item_Desc_Cur;
3352: RAISE FND_API.G_EXC_ERROR;
3353: END IF;
3426: AHL_DEBUG_PUB.debug('x_msg_data['||x_msg_data||']');
3427:
3428: END IF;
3429: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3430: FND_MESSAGE.Set_Name('AHL','AHL_PRD_SCHMTLAPI_ERROR');
3431: FND_MESSAGE.Set_Token('MSG',x_msg_data);
3432: FND_MSG_PUB.ADD;
3433: RAISE FND_API.G_EXC_ERROR;
3434: END IF;
3427:
3428: END IF;
3429: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3430: FND_MESSAGE.Set_Name('AHL','AHL_PRD_SCHMTLAPI_ERROR');
3431: FND_MESSAGE.Set_Token('MSG',x_msg_data);
3432: FND_MSG_PUB.ADD;
3433: RAISE FND_API.G_EXC_ERROR;
3434: END IF;
3435:
3876: AHL_DEBUG_PUB.debug('Exception inserting into mtl_txn interface' || SQLCODE);
3877: AHL_DEBUG_PUB.debug('SQLERRM:' || SQLERRM);
3878:
3879: END IF;
3880: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
3881: FND_MESSAGE.Set_Token('MSG',SQLERRM);
3882: FND_MESSAGE.Set_Token('ITEM',p_x_ahl_mtl_txn_rec.Inventory_Item_Id);
3883: FND_MESSAGE.Set_Token('WO_NAME',p_x_ahl_mtl_txn_rec.workorder_id);
3884: FND_MSG_PUB.ADD;
3877: AHL_DEBUG_PUB.debug('SQLERRM:' || SQLERRM);
3878:
3879: END IF;
3880: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
3881: FND_MESSAGE.Set_Token('MSG',SQLERRM);
3882: FND_MESSAGE.Set_Token('ITEM',p_x_ahl_mtl_txn_rec.Inventory_Item_Id);
3883: FND_MESSAGE.Set_Token('WO_NAME',p_x_ahl_mtl_txn_rec.workorder_id);
3884: FND_MSG_PUB.ADD;
3885: RAISE FND_API.G_EXC_ERROR;
3878:
3879: END IF;
3880: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
3881: FND_MESSAGE.Set_Token('MSG',SQLERRM);
3882: FND_MESSAGE.Set_Token('ITEM',p_x_ahl_mtl_txn_rec.Inventory_Item_Id);
3883: FND_MESSAGE.Set_Token('WO_NAME',p_x_ahl_mtl_txn_rec.workorder_id);
3884: FND_MSG_PUB.ADD;
3885: RAISE FND_API.G_EXC_ERROR;
3886:
3879: END IF;
3880: FND_MESSAGE.Set_Name('AHL','AHL_PRD_MTLTXN_ERROR');
3881: FND_MESSAGE.Set_Token('MSG',SQLERRM);
3882: FND_MESSAGE.Set_Token('ITEM',p_x_ahl_mtl_txn_rec.Inventory_Item_Id);
3883: FND_MESSAGE.Set_Token('WO_NAME',p_x_ahl_mtl_txn_rec.workorder_id);
3884: FND_MSG_PUB.ADD;
3885: RAISE FND_API.G_EXC_ERROR;
3886:
3887: END INSERT_MTL_TXN_INTF;
5474: FOR CLREC IN CL
5475: LOOP
5476: IF CLREC.error_code IS NOT NULL
5477: THEN
5478: FND_MESSAGE.Set_Name('AHL','AHL_COM_GENERIC_ERROR');
5479: FND_MESSAGE.Set_Token('MESSAGE',CLREC.error_code);
5480: FND_MSG_PUB.ADD;
5481: END IF;
5482: END LOOP;
5475: LOOP
5476: IF CLREC.error_code IS NOT NULL
5477: THEN
5478: FND_MESSAGE.Set_Name('AHL','AHL_COM_GENERIC_ERROR');
5479: FND_MESSAGE.Set_Token('MESSAGE',CLREC.error_code);
5480: FND_MSG_PUB.ADD;
5481: END IF;
5482: END LOOP;
5483: end;
5849: , data_set => p_organization_id
5850: );
5851:
5852: IF NOT(l_valid_flag) THEN
5853: FND_MESSAGE.Set_Name('AHL','AHL_INPUT_NUM_LOC_SEGS_INVALID');
5854: FND_MESSAGE.Set_Token('LOC_SEG',p_concat_segs);
5855: FND_MSG_PUB.ADD;
5856: x_return_status := FND_API.G_RET_STS_ERROR;
5857: RETURN;
5850: );
5851:
5852: IF NOT(l_valid_flag) THEN
5853: FND_MESSAGE.Set_Name('AHL','AHL_INPUT_NUM_LOC_SEGS_INVALID');
5854: FND_MESSAGE.Set_Token('LOC_SEG',p_concat_segs);
5855: FND_MSG_PUB.ADD;
5856: x_return_status := FND_API.G_RET_STS_ERROR;
5857: RETURN;
5858: END IF;
5871: AHL_DEBUG_PUB.DEBUG('FND Enabled Segments:' || l_flex_nseg);
5872: AHL_DEBUG_PUB.DEBUG('FND Enabled Segments:' || l_loc_nseg);
5873: END IF;
5874:
5875: FND_MESSAGE.Set_Name('AHL','AHL_INPUT_NUM_LOC_SEGS_INVALID');
5876: FND_MESSAGE.Set_Token('LOC_NUM',l_flex_nseg);
5877: FND_MESSAGE.Set_Token('LOC_SEG',p_concat_segs);
5878: FND_MSG_PUB.ADD;
5879: x_return_status := FND_API.G_RET_STS_ERROR;
5872: AHL_DEBUG_PUB.DEBUG('FND Enabled Segments:' || l_loc_nseg);
5873: END IF;
5874:
5875: FND_MESSAGE.Set_Name('AHL','AHL_INPUT_NUM_LOC_SEGS_INVALID');
5876: FND_MESSAGE.Set_Token('LOC_NUM',l_flex_nseg);
5877: FND_MESSAGE.Set_Token('LOC_SEG',p_concat_segs);
5878: FND_MSG_PUB.ADD;
5879: x_return_status := FND_API.G_RET_STS_ERROR;
5880: RETURN;
5873: END IF;
5874:
5875: FND_MESSAGE.Set_Name('AHL','AHL_INPUT_NUM_LOC_SEGS_INVALID');
5876: FND_MESSAGE.Set_Token('LOC_NUM',l_flex_nseg);
5877: FND_MESSAGE.Set_Token('LOC_SEG',p_concat_segs);
5878: FND_MSG_PUB.ADD;
5879: x_return_status := FND_API.G_RET_STS_ERROR;
5880: RETURN;
5881: END IF;