174: /* user passed more parameters than needed by global data elements,
175: * even though context is passed as null. hence error out
176: */
177: --DBMS_output.put_line('more params passed than needed');
178: fnd_message.set_name('FND', 'FLEX-INVALID CONTEXT');
179: fnd_message.set_token('CONTEXT', 'NULL');
180: fnd_message.set_token('ROUTINE', 'inv_uom_api_pub');
181: fnd_msg_pub.ADD;
182: RAISE fnd_api.g_exc_error;
175: * even though context is passed as null. hence error out
176: */
177: --DBMS_output.put_line('more params passed than needed');
178: fnd_message.set_name('FND', 'FLEX-INVALID CONTEXT');
179: fnd_message.set_token('CONTEXT', 'NULL');
180: fnd_message.set_token('ROUTINE', 'inv_uom_api_pub');
181: fnd_msg_pub.ADD;
182: RAISE fnd_api.g_exc_error;
183: END IF;
176: */
177: --DBMS_output.put_line('more params passed than needed');
178: fnd_message.set_name('FND', 'FLEX-INVALID CONTEXT');
179: fnd_message.set_token('CONTEXT', 'NULL');
180: fnd_message.set_token('ROUTINE', 'inv_uom_api_pub');
181: fnd_msg_pub.ADD;
182: RAISE fnd_api.g_exc_error;
183: END IF;
184:
197: IF ((p_attributes_tbl.EXISTS(col) AND p_attributes_tbl(col) = fnd_api.g_miss_char) OR
198: NOT p_attributes_tbl.EXISTS(col))
199: THEN
200: --DBMS_output.put_line('y r we here');
201: fnd_message.set_name('INV', 'INV_REQ_SEG_MISS');
202: fnd_message.set_token('SEGMENT', l_segments_dr.segment_name(i));
203: fnd_msg_pub.ADD;
204: RAISE fnd_api.g_exc_error;
205: END IF;
198: NOT p_attributes_tbl.EXISTS(col))
199: THEN
200: --DBMS_output.put_line('y r we here');
201: fnd_message.set_name('INV', 'INV_REQ_SEG_MISS');
202: fnd_message.set_token('SEGMENT', l_segments_dr.segment_name(i));
203: fnd_msg_pub.ADD;
204: RAISE fnd_api.g_exc_error;
205: END IF;
206: ELSE
278: --DBMS_output.put_line('col is ' || col);
279: IF ((p_attributes_tbl.EXISTS(col) AND p_attributes_tbl(col) IS NULL) OR
280: NOT p_attributes_tbl.EXISTS(col))
281: THEN
282: fnd_message.set_name('INV', 'INV_REQ_SEG_MISS');
283: fnd_message.set_token('SEGMENT', l_segments_dr.segment_name(i));
284: fnd_msg_pub.ADD;
285: RAISE fnd_api.g_exc_error;
286: --DBMS_output.put_line('Req segment is not populated');
279: IF ((p_attributes_tbl.EXISTS(col) AND p_attributes_tbl(col) IS NULL) OR
280: NOT p_attributes_tbl.EXISTS(col))
281: THEN
282: fnd_message.set_name('INV', 'INV_REQ_SEG_MISS');
283: fnd_message.set_token('SEGMENT', l_segments_dr.segment_name(i));
284: fnd_msg_pub.ADD;
285: RAISE fnd_api.g_exc_error;
286: --DBMS_output.put_line('Req segment is not populated');
287: END IF;
354:
355: --DBMS_output.put_line('Here are the error messages: ');
356: WHILE e < 5001
357: AND SUBSTR(error_msg, s, e) IS NOT NULL LOOP
358: fnd_message.set_name('INV', 'INV_FND_GENERIC_MSG');
359: fnd_message.set_token('MSG', SUBSTR(error_msg, s, e));
360: FND_MSG_PUB.ADD;
361:
362: s := s + 200;
355: --DBMS_output.put_line('Here are the error messages: ');
356: WHILE e < 5001
357: AND SUBSTR(error_msg, s, e) IS NOT NULL LOOP
358: fnd_message.set_name('INV', 'INV_FND_GENERIC_MSG');
359: fnd_message.set_token('MSG', SUBSTR(error_msg, s, e));
360: FND_MSG_PUB.ADD;
361:
362: s := s + 200;
363: e := e + 200;
534: IF (L_DEBUG = 1) THEN
535: INV_LOG_UTIL.TRACE('Uom class exists:', 'inv_uom_api_pub', '9');
536: END IF;
537:
538: FND_MESSAGE.SET_NAME('INV', 'INV_DUP');
539: FND_MESSAGE.SET_TOKEN('VALUE1', P_UOM_CLASS);
540: FND_MSG_PUB.ADD;
541: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
542:
535: INV_LOG_UTIL.TRACE('Uom class exists:', 'inv_uom_api_pub', '9');
536: END IF;
537:
538: FND_MESSAGE.SET_NAME('INV', 'INV_DUP');
539: FND_MESSAGE.SET_TOKEN('VALUE1', P_UOM_CLASS);
540: FND_MSG_PUB.ADD;
541: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
542:
543: RAISE FND_API.G_EXC_ERROR;
552:
553:
554: IF P_DISABLE_DATE IS NOT NULL AND TRUNC(P_DISABLE_DATE) < TRUNC(SYSDATE) THEN
555:
556: FND_MESSAGE.SET_NAME('INV', 'INV_DISABLE_DATE');
557: FND_MSG_PUB.ADD;
558: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
559: RAISE FND_API.G_EXC_ERROR;
560:
562:
563: -- Validating p_base_unit_of_measure and p_base_uom_code
564: IF (P_BASE_UNIT_OF_MEASURE IS NULL OR P_BASE_UOM_CODE IS NULL) THEN
565:
566: -- FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
567: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
568: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_BASE_UNIT_OF_MEASURE OR P_BASE_UOM_CODE');
569: FND_MSG_PUB.ADD;
570:
563: -- Validating p_base_unit_of_measure and p_base_uom_code
564: IF (P_BASE_UNIT_OF_MEASURE IS NULL OR P_BASE_UOM_CODE IS NULL) THEN
565:
566: -- FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
567: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
568: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_BASE_UNIT_OF_MEASURE OR P_BASE_UOM_CODE');
569: FND_MSG_PUB.ADD;
570:
571: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
564: IF (P_BASE_UNIT_OF_MEASURE IS NULL OR P_BASE_UOM_CODE IS NULL) THEN
565:
566: -- FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
567: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
568: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_BASE_UNIT_OF_MEASURE OR P_BASE_UOM_CODE');
569: FND_MSG_PUB.ADD;
570:
571: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
572: RAISE FND_API.G_EXC_ERROR;
581: IF (L_DEBUG = 1) THEN
582: INV_LOG_UTIL.TRACE('UOM code exceeds its length 3 ', 'inv_uom_api_pub', '9');
583: END IF;
584:
585: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
586: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_BASE_UOM_CODE');
587: FND_MSG_PUB.ADD;
588:
589: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
582: INV_LOG_UTIL.TRACE('UOM code exceeds its length 3 ', 'inv_uom_api_pub', '9');
583: END IF;
584:
585: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
586: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_BASE_UOM_CODE');
587: FND_MSG_PUB.ADD;
588:
589: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
590: RAISE FND_API.G_EXC_ERROR;
612: INV_LOG_UTIL.TRACE('l_uom_code:' || L_UOM_CODE, 'inv_uom_api_pub', '9');
613: END IF;
614:
615: IF ( L_UNIT_OF_MEASURE IS NOT NULL) THEN
616: FND_MESSAGE.SET_NAME('INV', 'INV_UNIT_EXISTS');
617: FND_MESSAGE.SET_TOKEN('VALUE1', L_UNIT_OF_MEASURE);
618: FND_MSG_PUB.ADD;
619: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
620: RAISE FND_API.G_EXC_ERROR;
613: END IF;
614:
615: IF ( L_UNIT_OF_MEASURE IS NOT NULL) THEN
616: FND_MESSAGE.SET_NAME('INV', 'INV_UNIT_EXISTS');
617: FND_MESSAGE.SET_TOKEN('VALUE1', L_UNIT_OF_MEASURE);
618: FND_MSG_PUB.ADD;
619: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
620: RAISE FND_API.G_EXC_ERROR;
621: -- Already unit of measure and uom code exists with some other class exists.
637:
638:
639: IF ( L_UOM_CODE IS NOT NULL) THEN
640:
641: FND_MESSAGE.SET_NAME('INV', 'INV_UNIT_EXISTS');
642: FND_MESSAGE.SET_TOKEN('VALUE1', L_UOM_CODE);
643: FND_MSG_PUB.ADD;
644: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
645: RAISE FND_API.G_EXC_ERROR;
638:
639: IF ( L_UOM_CODE IS NOT NULL) THEN
640:
641: FND_MESSAGE.SET_NAME('INV', 'INV_UNIT_EXISTS');
642: FND_MESSAGE.SET_TOKEN('VALUE1', L_UOM_CODE);
643: FND_MSG_PUB.ADD;
644: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
645: RAISE FND_API.G_EXC_ERROR;
646: -- Already unit of measure and uom code exists with some other class exists.
664: IF (L_DEBUG = 1) THEN
665: INV_LOG_UTIL.TRACE('UOM Class does not exists', 'inv_uom_api_pub', '9');
666: END IF;
667:
668: -- FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND'); -- added now
669: -- FND_MSG_PUB.ADD;
670: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
671: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_UOM_CLASS');
672: FND_MSG_PUB.ADD;
666: END IF;
667:
668: -- FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND'); -- added now
669: -- FND_MSG_PUB.ADD;
670: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
671: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_UOM_CLASS');
672: FND_MSG_PUB.ADD;
673:
674: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
667:
668: -- FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND'); -- added now
669: -- FND_MSG_PUB.ADD;
670: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
671: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_UOM_CLASS');
672: FND_MSG_PUB.ADD;
673:
674: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
675: RAISE fnd_api.g_exc_error;
690: IF (L_DEBUG = 1) THEN
691: INV_LOG_UTIL.TRACE('UOM code exceeds its length 3 ', 'inv_uom_api_pub', '9');
692: END IF;
693:
694: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
695: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_BASE_UOM_CODE');
696: FND_MSG_PUB.ADD;
697:
698: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
691: INV_LOG_UTIL.TRACE('UOM code exceeds its length 3 ', 'inv_uom_api_pub', '9');
692: END IF;
693:
694: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
695: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_BASE_UOM_CODE');
696: FND_MSG_PUB.ADD;
697:
698: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
699: RAISE FND_API.G_EXC_ERROR;
709: IF (L_DEBUG = 1) THEN
710: INV_LOG_UTIL.TRACE('Disable date is past date', 'inv_uom_api_pub', '9');
711: END IF;
712:
713: FND_MESSAGE.SET_NAME('INV', 'INV_DISABLE_DATE');
714: FND_MSG_PUB.ADD;
715: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
716: RAISE FND_API.G_EXC_ERROR;
717:
719:
720: -- Validating p_base_unit_of_measure and p_base_uom_code
721: IF (P_BASE_UNIT_OF_MEASURE IS NULL OR P_BASE_UOM_CODE IS NULL) THEN
722:
723: -- FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
724: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
725: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_BASE_UNIT_OF_MEASURE OR P_BASE_UOM_CODE');
726: FND_MSG_PUB.ADD;
727:
720: -- Validating p_base_unit_of_measure and p_base_uom_code
721: IF (P_BASE_UNIT_OF_MEASURE IS NULL OR P_BASE_UOM_CODE IS NULL) THEN
722:
723: -- FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
724: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
725: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_BASE_UNIT_OF_MEASURE OR P_BASE_UOM_CODE');
726: FND_MSG_PUB.ADD;
727:
728: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
721: IF (P_BASE_UNIT_OF_MEASURE IS NULL OR P_BASE_UOM_CODE IS NULL) THEN
722:
723: -- FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
724: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
725: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_BASE_UNIT_OF_MEASURE OR P_BASE_UOM_CODE');
726: FND_MSG_PUB.ADD;
727:
728: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
729: RAISE FND_API.G_EXC_ERROR;
742: AND UOM_CODE = P_BASE_UOM_CODE ;
743:
744: EXCEPTION
745: WHEN NO_DATA_FOUND THEN
746: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_COMB_MSG');
747: -- FND_MESSAGE.SET_TOKEN('UOM', 'P_UOM_CODE'); -- added now
748: FND_MSG_PUB.ADD;
749: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
750: RAISE FND_API.G_EXC_ERROR;
743:
744: EXCEPTION
745: WHEN NO_DATA_FOUND THEN
746: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_COMB_MSG');
747: -- FND_MESSAGE.SET_TOKEN('UOM', 'P_UOM_CODE'); -- added now
748: FND_MSG_PUB.ADD;
749: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
750: RAISE FND_API.G_EXC_ERROR;
751: END ;
756: END IF;
757:
758: IF ( L_UNIT_OF_MEASURE IS NULL OR L_UOM_CODE IS NULL) THEN
759: -- DBMS_OUTPUT.PUT_LINE('unit of measure already exists');
760: FND_MESSAGE.SET_NAME('INV', 'INV_UNIT_EXISTS');
761: FND_MESSAGE.SET_TOKEN('VALUE1', L_UNIT_OF_MEASURE);
762: FND_MSG_PUB.ADD;
763: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
764: RAISE FND_API.G_EXC_ERROR;
757:
758: IF ( L_UNIT_OF_MEASURE IS NULL OR L_UOM_CODE IS NULL) THEN
759: -- DBMS_OUTPUT.PUT_LINE('unit of measure already exists');
760: FND_MESSAGE.SET_NAME('INV', 'INV_UNIT_EXISTS');
761: FND_MESSAGE.SET_TOKEN('VALUE1', L_UNIT_OF_MEASURE);
762: FND_MSG_PUB.ADD;
763: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
764: RAISE FND_API.G_EXC_ERROR;
765: -- Already unit of measure and uom code exists with some other class exists.
768: END IF; -- end of p_action_type = 'U'
769:
770: IF p_action_type NOT IN('U', 'I') THEN
771:
772: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
773: fnd_message.set_token('VALUE1', 'p_action_type');
774: FND_MSG_PUB.ADD;
775:
776: RAISE L_INVALID_OBJECT_TYPE;
769:
770: IF p_action_type NOT IN('U', 'I') THEN
771:
772: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
773: fnd_message.set_token('VALUE1', 'p_action_type');
774: FND_MSG_PUB.ADD;
775:
776: RAISE L_INVALID_OBJECT_TYPE;
777:
1367:
1368: -- The unit of measure and uom code are not base uom.
1369: ELSE
1370:
1371: -- FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
1372: -- FND_MSG_PUB.ADD;
1373: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
1374: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_UOM_CLASS');
1375: FND_MSG_PUB.ADD;
1369: ELSE
1370:
1371: -- FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
1372: -- FND_MSG_PUB.ADD;
1373: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
1374: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_UOM_CLASS');
1375: FND_MSG_PUB.ADD;
1376: L_BASE_UOM_FLAG := 'Y';
1377: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1370:
1371: -- FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
1372: -- FND_MSG_PUB.ADD;
1373: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
1374: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_UOM_CLASS');
1375: FND_MSG_PUB.ADD;
1376: L_BASE_UOM_FLAG := 'Y';
1377: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1378: RAISE FND_API.G_EXC_ERROR;
1388: IF (L_DEBUG = 1) THEN
1389: INV_LOG_UTIL.TRACE('UOM code exceeds its length 3 ', 'inv_uom_api_pub', '9');
1390: END IF;
1391:
1392: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
1393: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_UOM_CODE');
1394: FND_MSG_PUB.ADD;
1395:
1396: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1389: INV_LOG_UTIL.TRACE('UOM code exceeds its length 3 ', 'inv_uom_api_pub', '9');
1390: END IF;
1391:
1392: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
1393: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_UOM_CODE');
1394: FND_MSG_PUB.ADD;
1395:
1396: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1397: RAISE FND_API.G_EXC_ERROR;
1404: IF p_action_type = 'U' THEN
1405:
1406: IF P_UNIT_OF_MEASURE IS NULL THEN
1407:
1408: FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
1409: FND_MESSAGE.SET_TOKEN('UOM', 'P_UNIT_OF_MEASURE'); -- added now
1410: FND_MSG_PUB.ADD;
1411: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1412: RAISE FND_API.G_EXC_ERROR;
1405:
1406: IF P_UNIT_OF_MEASURE IS NULL THEN
1407:
1408: FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
1409: FND_MESSAGE.SET_TOKEN('UOM', 'P_UNIT_OF_MEASURE'); -- added now
1410: FND_MSG_PUB.ADD;
1411: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1412: RAISE FND_API.G_EXC_ERROR;
1413: -- The unit of measure and base uom code for this uom class need to be passed.
1415: END IF;
1416:
1417: IF P_UOM_CODE IS NULL THEN
1418:
1419: FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
1420: FND_MESSAGE.SET_TOKEN('UOM', 'P_UOM_CODE'); -- added now
1421: FND_MSG_PUB.ADD;
1422: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1423: RAISE FND_API.G_EXC_ERROR;
1416:
1417: IF P_UOM_CODE IS NULL THEN
1418:
1419: FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
1420: FND_MESSAGE.SET_TOKEN('UOM', 'P_UOM_CODE'); -- added now
1421: FND_MSG_PUB.ADD;
1422: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1423: RAISE FND_API.G_EXC_ERROR;
1424: -- The unit of measure and base uom code for this uom class need to be passed.
1427:
1428:
1429: IF P_DISABLE_DATE IS NOT NULL AND TRUNC(P_DISABLE_DATE) < TRUNC(SYSDATE) THEN
1430:
1431: FND_MESSAGE.SET_NAME('INV', 'INV_DISABLE_DATE');
1432: FND_MSG_PUB.ADD;
1433: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1434: RAISE FND_API.G_EXC_ERROR;
1435:
1446: OR UOM_CODE = P_UOM_CODE) ;
1447:
1448: EXCEPTION
1449: WHEN NO_DATA_FOUND THEN
1450: FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
1451: -- FND_MESSAGE.SET_TOKEN('UOM', 'P_UOM_CODE'); -- added now
1452: FND_MSG_PUB.ADD;
1453: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1454: RAISE FND_API.G_EXC_ERROR;
1447:
1448: EXCEPTION
1449: WHEN NO_DATA_FOUND THEN
1450: FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
1451: -- FND_MESSAGE.SET_TOKEN('UOM', 'P_UOM_CODE'); -- added now
1452: FND_MSG_PUB.ADD;
1453: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1454: RAISE FND_API.G_EXC_ERROR;
1455: END ;
1467: WHERE UOM_CLASS = P_UOM_CLASS
1468: and NVL(DISABLE_DATE, TRUNC(SYSDATE) + 1) > TRUNC(SYSDATE);
1469: EXCEPTION
1470: WHEN NO_DATA_FOUND THEN
1471: FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
1472: FND_MSG_PUB.ADD;
1473: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1474: RAISE fnd_api.g_exc_error;
1475:
1478:
1479: -- Validating p_base_unit_of_measure and p_uom_code
1480: IF P_UNIT_OF_MEASURE IS NULL THEN
1481:
1482: FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
1483: FND_MESSAGE.SET_TOKEN('UOM', 'P_UNIT_OF_MEASURE'); -- added now
1484: FND_MSG_PUB.ADD;
1485: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1486: RAISE FND_API.G_EXC_ERROR;
1479: -- Validating p_base_unit_of_measure and p_uom_code
1480: IF P_UNIT_OF_MEASURE IS NULL THEN
1481:
1482: FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
1483: FND_MESSAGE.SET_TOKEN('UOM', 'P_UNIT_OF_MEASURE'); -- added now
1484: FND_MSG_PUB.ADD;
1485: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1486: RAISE FND_API.G_EXC_ERROR;
1487: -- The unit of measure and base uom code for this uom class need to be passed.
1489: END IF;
1490:
1491: IF P_UOM_CODE IS NULL THEN
1492:
1493: FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
1494: FND_MESSAGE.SET_TOKEN('UOM', 'P_UOM_CODE'); -- added now
1495: FND_MSG_PUB.ADD;
1496: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1497: RAISE FND_API.G_EXC_ERROR;
1490:
1491: IF P_UOM_CODE IS NULL THEN
1492:
1493: FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
1494: FND_MESSAGE.SET_TOKEN('UOM', 'P_UOM_CODE'); -- added now
1495: FND_MSG_PUB.ADD;
1496: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1497: RAISE FND_API.G_EXC_ERROR;
1498: -- The unit of measure and base uom code for this uom class need to be passed.
1501:
1502:
1503: IF P_DISABLE_DATE IS NOT NULL AND TRUNC(P_DISABLE_DATE) < TRUNC(SYSDATE) THEN
1504:
1505: FND_MESSAGE.SET_NAME('INV', 'INV_DISABLE_DATE');
1506: FND_MSG_PUB.ADD;
1507: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1508: RAISE FND_API.G_EXC_ERROR;
1509:
1532: IF L_UNIT_OF_MEASURE IS NOT NULL OR L_UOM_CODE IS NOT NULL THEN
1533:
1534: --DBMS_OUTPUT.PUT_LINE('Raising exception');
1535:
1536: FND_MESSAGE.SET_NAME('INV', 'INV_UNIT_EXISTS');
1537: FND_MESSAGE.SET_TOKEN('VALUE1', L_UNIT_OF_MEASURE);
1538: FND_MSG_PUB.ADD;
1539: RAISE FND_API.G_EXC_ERROR;
1540:
1533:
1534: --DBMS_OUTPUT.PUT_LINE('Raising exception');
1535:
1536: FND_MESSAGE.SET_NAME('INV', 'INV_UNIT_EXISTS');
1537: FND_MESSAGE.SET_TOKEN('VALUE1', L_UNIT_OF_MEASURE);
1538: FND_MSG_PUB.ADD;
1539: RAISE FND_API.G_EXC_ERROR;
1540:
1541: --fnd_message.raise_error;
1537: FND_MESSAGE.SET_TOKEN('VALUE1', L_UNIT_OF_MEASURE);
1538: FND_MSG_PUB.ADD;
1539: RAISE FND_API.G_EXC_ERROR;
1540:
1541: --fnd_message.raise_error;
1542: -- Already unit of measure and uom code exists with some other class exists.
1543:
1544: END IF;
1545: -- end of Validating p_unit_of_measure and p_uom_code
1716: X_LAST_UPDATE_LOGIN => L_LOGINID
1717: );
1718: ELSE
1719:
1720: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
1721: fnd_message.set_token('VALUE1', 'p_action_type');
1722: FND_MSG_PUB.ADD;
1723: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1724:
1717: );
1718: ELSE
1719:
1720: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
1721: fnd_message.set_token('VALUE1', 'p_action_type');
1722: FND_MSG_PUB.ADD;
1723: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1724:
1725: RAISE L_INVALID_OBJECT_TYPE;
2019: BEGIN
2020:
2021: IF (P_UOM_RATE IS NULL) THEN
2022:
2023: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_CONVRATE_REQUIRED');
2024: FND_MSG_PUB.ADD;
2025: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2026: RAISE L_INVALID_UOM_RATE;
2027:
2028: END IF;
2029:
2030: IF (P_UOM_RATE <= 0) THEN
2031:
2032: FND_MESSAGE.SET_NAME('INV', 'INV_NEG_CONV');
2033: FND_MSG_PUB.ADD;
2034: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2035: RAISE L_INVALID_UOM_RATE;
2036:
2041: IF (L_DEBUG = 1) THEN
2042: INV_LOG_UTIL.TRACE('Disable date is past date', 'inv_uom_api_pub', '9');
2043: END IF;
2044:
2045: FND_MESSAGE.SET_NAME('INV', 'INV_DISABLE_DATE');
2046: FND_MSG_PUB.ADD;
2047: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2048: RAISE FND_API.G_EXC_ERROR;
2049:
2071: END IF;
2072:
2073: if l_qr > 0 then
2074:
2075: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_RSV_EXIST');
2076: FND_MSG_PUB.ADD;
2077: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2078: RAISE FND_API.G_EXC_ERROR;
2079: end if;
2178: IF (L_DEBUG = 1) THEN
2179: INV_LOG_UTIL.TRACE('Conversion already exists', 'inv_uom_api_pub', '9');
2180: END IF;
2181:
2182: FND_MESSAGE.SET_NAME('INV', 'INV_CONV_EXISTS');
2183: FND_MESSAGE.SET_TOKEN('VALUE1', P_FROM_UOM_CODE);
2184: fnd_message.set_token('VALUE2', P_TO_UOM_CODE);
2185: FND_MSG_PUB.ADD;
2186:
2179: INV_LOG_UTIL.TRACE('Conversion already exists', 'inv_uom_api_pub', '9');
2180: END IF;
2181:
2182: FND_MESSAGE.SET_NAME('INV', 'INV_CONV_EXISTS');
2183: FND_MESSAGE.SET_TOKEN('VALUE1', P_FROM_UOM_CODE);
2184: fnd_message.set_token('VALUE2', P_TO_UOM_CODE);
2185: FND_MSG_PUB.ADD;
2186:
2187: RAISE L_CONVERSION_EXISTS_EXC;
2180: END IF;
2181:
2182: FND_MESSAGE.SET_NAME('INV', 'INV_CONV_EXISTS');
2183: FND_MESSAGE.SET_TOKEN('VALUE1', P_FROM_UOM_CODE);
2184: fnd_message.set_token('VALUE2', P_TO_UOM_CODE);
2185: FND_MSG_PUB.ADD;
2186:
2187: RAISE L_CONVERSION_EXISTS_EXC;
2188: ELSIF X_RETURN_STATUS <> 'S' THEN
2263: END;
2264:
2265: ELSE
2266:
2267: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
2268: FND_MESSAGE.SET_TOKEN('VALUE1', 'p_action_type');
2269: FND_MSG_PUB.ADD;
2270: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2271:
2264:
2265: ELSE
2266:
2267: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
2268: FND_MESSAGE.SET_TOKEN('VALUE1', 'p_action_type');
2269: FND_MSG_PUB.ADD;
2270: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2271:
2272: RAISE L_INVALID_OBJECT;
2281: FROM MTL_PARAMETERS
2282: WHERE ORGANIZATION_ID = P_ORG_ID;
2283: EXCEPTION
2284: WHEN OTHERS THEN
2285: FND_MESSAGE.SET_NAME('INV', 'INV_INT_ORGCODE');
2286: FND_MSG_PUB.ADD;
2287: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2288: RAISE FND_API.G_EXC_ERROR;
2289: END;
2299: WHERE inventory_item_id = p_item_id
2300: AND organization_id = p_org_id;
2301: EXCEPTION
2302: WHEN OTHERS THEN
2303: FND_MESSAGE.SET_NAME('INV', 'INV_INT_ITMCODE');
2304: FND_MSG_PUB.ADD;
2305: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2306: RAISE FND_API.G_EXC_ERROR;
2307:
2359: AND base_uom_flag = 'Y'
2360: AND NVL(disable_date, TRUNC(SYSDATE) + 1) > TRUNC(SYSDATE);
2361: EXCEPTION
2362: WHEN NO_DATA_FOUND THEN
2363: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_BASE_UOM');
2364: fnd_message.set_token('UOM', P_FROM_UOM_CODE);
2365: FND_MSG_PUB.ADD;
2366: RAISE L_INVALID_BASE_UOM;
2367: END ;
2360: AND NVL(disable_date, TRUNC(SYSDATE) + 1) > TRUNC(SYSDATE);
2361: EXCEPTION
2362: WHEN NO_DATA_FOUND THEN
2363: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_BASE_UOM');
2364: fnd_message.set_token('UOM', P_FROM_UOM_CODE);
2365: FND_MSG_PUB.ADD;
2366: RAISE L_INVALID_BASE_UOM;
2367: END ;
2368:
2384: IF (L_DEBUG = 1) THEN
2385: INV_LOG_UTIL.TRACE('From UOM code is not belongs to item primary uom code', 'inv_uom_api_pub', '9');
2386: END IF;
2387:
2388: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_ITEM_BASE');
2389: FND_MESSAGE.SET_TOKEN('VALUE', P_FROM_UOM_CODE);
2390: FND_MSG_PUB.ADD;
2391: raise l_invalid_base_uom;
2392: END;
2385: INV_LOG_UTIL.TRACE('From UOM code is not belongs to item primary uom code', 'inv_uom_api_pub', '9');
2386: END IF;
2387:
2388: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_ITEM_BASE');
2389: FND_MESSAGE.SET_TOKEN('VALUE', P_FROM_UOM_CODE);
2390: FND_MSG_PUB.ADD;
2391: raise l_invalid_base_uom;
2392: END;
2393:
2399: AND BASE_UOM_FLAG = 'Y'
2400: AND NVL(disable_date, TRUNC(SYSDATE) + 1) > TRUNC(SYSDATE);
2401: EXCEPTION
2402: WHEN NO_DATA_FOUND THEN
2403: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_BASE_UOM');
2404: FND_MESSAGE.SET_TOKEN('UOM', P_TO_UOM_CODE);
2405: FND_MSG_PUB.ADD;
2406: RAISE L_INVALID_BASE_UOM;
2407: -- passed p_base_uom_code is not assosiated with any other uom class.
2400: AND NVL(disable_date, TRUNC(SYSDATE) + 1) > TRUNC(SYSDATE);
2401: EXCEPTION
2402: WHEN NO_DATA_FOUND THEN
2403: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_BASE_UOM');
2404: FND_MESSAGE.SET_TOKEN('UOM', P_TO_UOM_CODE);
2405: FND_MSG_PUB.ADD;
2406: RAISE L_INVALID_BASE_UOM;
2407: -- passed p_base_uom_code is not assosiated with any other uom class.
2408: END ;
2422: INV_LOG_UTIL.TRACE('l_shelf_life_code:' || l_shelf_life_code, 'inv_uom_api_pub', '9');
2423: END IF;
2424:
2425: IF( v_lot_control_code = 1 ) THEN
2426: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_LOT_CTL_ERROR');
2427: FND_MSG_PUB.ADD;
2428: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2429: FND_MESSAGE.RAISE_ERROR;
2430: END IF;
2425: IF( v_lot_control_code = 1 ) THEN
2426: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_LOT_CTL_ERROR');
2427: FND_MSG_PUB.ADD;
2428: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2429: FND_MESSAGE.RAISE_ERROR;
2430: END IF;
2431:
2432: END;
2433:
2443: AND inventory_item_id = p_item_id
2444: AND organization_id = p_org_id;
2445: EXCEPTION
2446: WHEN NO_DATA_FOUND THEN
2447: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_LOT_INVALID');
2448: FND_MSG_PUB.ADD;
2449: RAISE FND_API.G_EXC_ERROR;
2450: END ;
2451:
2466: WHEN NO_DATA_FOUND THEN
2467: IF (L_DEBUG = 1) THEN
2468: INV_LOG_UTIL.TRACE('Lot expired' , 'inv_uom_api_pub', '9');
2469: END IF;
2470: FND_MESSAGE.SET_NAME('INV', 'INV_LOT_EXPIRED');
2471: FND_MSG_PUB.ADD;
2472: RAISE FND_API.G_EXC_ERROR;
2473: END;
2474:
2501: INV_LOG_UTIL.TRACE('l_count:'||l_count, 'inv_uom_api_pub', '9');
2502: END IF;
2503:
2504: IF (l_count > 0) THEN
2505: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_UOM_INUSE');
2506: FND_MSG_PUB.ADD;
2507: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2508: FND_MESSAGE.RAISE_ERROR;
2509: END IF;
2504: IF (l_count > 0) THEN
2505: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_UOM_INUSE');
2506: FND_MSG_PUB.ADD;
2507: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2508: FND_MESSAGE.RAISE_ERROR;
2509: END IF;
2510: -- End of Check if the lot uom conversion already present.
2511: -- From and to UOM cannot be the same.
2512:
2510: -- End of Check if the lot uom conversion already present.
2511: -- From and to UOM cannot be the same.
2512:
2513: IF (p_from_uom_code = p_to_uom_code) THEN
2514: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_UOM_FROMTO_ERROR');
2515: FND_MSG_PUB.ADD;
2516: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2517: fnd_message.raise_error;
2518: END IF;
2513: IF (p_from_uom_code = p_to_uom_code) THEN
2514: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_UOM_FROMTO_ERROR');
2515: FND_MSG_PUB.ADD;
2516: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2517: fnd_message.raise_error;
2518: END IF;
2519: -- End of From and to UOM cannot be the same.
2520: -- Check if item is lot controlled.
2521:
2545: IF (L_DEBUG = 1) THEN
2546: INV_LOG_UTIL.TRACE('Invalid object type', 'inv_uom_api_pub', '9');
2547: END IF;
2548:
2549: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
2550: fnd_message.set_token('VALUE1', 'p_action_type');
2551: FND_MSG_PUB.ADD;
2552: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2553:
2546: INV_LOG_UTIL.TRACE('Invalid object type', 'inv_uom_api_pub', '9');
2547: END IF;
2548:
2549: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
2550: fnd_message.set_token('VALUE1', 'p_action_type');
2551: FND_MSG_PUB.ADD;
2552: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2553:
2554: RAISE L_INVALID_OBJECT;
2566: AND NVL(DISABLE_DATE, SYSDATE+1) > SYSDATE;
2567:
2568: EXCEPTION
2569: when no_data_found then
2570: FND_MESSAGE.SET_NAME('INV', 'INV_INT_REACODE');
2571: FND_MSG_PUB.ADD;
2572:
2573: IF (L_DEBUG = 1) THEN
2574: INV_LOG_UTIL.TRACE('NO data found for the reason id:'||P_REASON_ID, 'inv_uom_api_pub', '9');
2588: IF (L_DEBUG = 1) THEN
2589: INV_LOG_UTIL.TRACE('Invalid Update type ', 'inv_uom_api_pub', '9');
2590: END IF;
2591:
2592: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_UPDATETYPE_INVALID');
2593: FND_MSG_PUB.ADD;
2594:
2595: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2596: -- fnd_message.raise_error;
2592: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_UPDATETYPE_INVALID');
2593: FND_MSG_PUB.ADD;
2594:
2595: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2596: -- fnd_message.raise_error;
2597: RAISE FND_API.G_EXC_ERROR;
2598:
2599: END IF;
2600: -- check for object_type 1,2-----
2602: IF (P_UPDATE_TYPE IN (1, 2)) THEN
2603:
2604: IF (L_TRACKING_QUANTITY_IND <> 'PS') THEN
2605:
2606: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_TYPE0_ERROR');
2607: FND_MSG_PUB.ADD;
2608:
2609: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2610: FND_MESSAGE.RAISE_ERROR;
2606: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_TYPE0_ERROR');
2607: FND_MSG_PUB.ADD;
2608:
2609: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2610: FND_MESSAGE.RAISE_ERROR;
2611: -- Error if the item is not Dual Fixed or dual default.
2612: ELSIF (L_SECONDARY_DEF_IND NOT IN ('F', 'D')) THEN
2613:
2614: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_TYPE3_ERROR');
2610: FND_MESSAGE.RAISE_ERROR;
2611: -- Error if the item is not Dual Fixed or dual default.
2612: ELSIF (L_SECONDARY_DEF_IND NOT IN ('F', 'D')) THEN
2613:
2614: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_TYPE3_ERROR');
2615: FND_MSG_PUB.ADD;
2616:
2617: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2618: FND_MESSAGE.RAISE_ERROR;
2614: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_TYPE3_ERROR');
2615: FND_MSG_PUB.ADD;
2616:
2617: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2618: FND_MESSAGE.RAISE_ERROR;
2619:
2620: END IF;
2621: -- END IF;
2622:
2635: INV_LOG_UTIL.TRACE(' INV_LOTCONV_NON_BATCH ', 'inv_uom_api_pub', '9');
2636: END IF;
2637:
2638: CLOSE GET_NON_BATCH_TXNS;
2639: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_NON_BATCH');
2640: FND_MSG_PUB.ADD;
2641:
2642: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2643: RAISE FND_API.G_EXC_ERROR;
2685: --If the second batch is not a parent batch.
2686: IF (X_LAST_BATCH_ID <> X_BATCH_ID AND X_PHANTOM_ID IS NULL) THEN
2687:
2688: CLOSE GET_BATCH_INFO;
2689: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_MULT_BATCHES');
2690: FND_MSG_PUB.ADD;
2691:
2692: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2693: FND_MESSAGE.RAISE_ERROR;
2689: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_MULT_BATCHES');
2690: FND_MSG_PUB.ADD;
2691:
2692: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2693: FND_MESSAGE.RAISE_ERROR;
2694:
2695: END IF;
2696:
2697: -- Phantom product will be an ingredient in the parent batch
2698: IF (X_LINE_TYPE IN (1, 2) OR (X_LINE_TYPE = - 1 AND X_PHANTOM_ID = X_LAST_BATCH_ID)) THEN
2699: NULL;
2700: ELSE
2701: CLOSE GET_BATCH_INFO;
2702: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_INGREDIENT');
2703: FND_MSG_PUB.ADD;
2704:
2705: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2706: FND_MESSAGE.RAISE_ERROR;
2702: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_INGREDIENT');
2703: FND_MSG_PUB.ADD;
2704:
2705: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2706: FND_MESSAGE.RAISE_ERROR;
2707:
2708: END IF;
2709:
2710: IF (L_DEBUG = 1) THEN
2712: END IF;
2713:
2714: IF (X_OPM_COSTED_FLAG IS NULL) THEN
2715:
2716: FND_MESSAGE.SET_NAME('INV','INV_LOTCONV_INDITEM_COSTED');
2717: FND_MSG_PUB.ADD;
2718: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2719: FND_MESSAGE.RAISE_ERROR;
2720:
2715:
2716: FND_MESSAGE.SET_NAME('INV','INV_LOTCONV_INDITEM_COSTED');
2717: FND_MSG_PUB.ADD;
2718: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2719: FND_MESSAGE.RAISE_ERROR;
2720:
2721: END IF ;
2722:
2723: END IF;
2729: -- Conversion cannot be changed if no batches are associated with this item/lot.
2730:
2731: IF (X_ROW_COUNT = 0) THEN
2732:
2733: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_NO_BATCHES');
2734: FND_MSG_PUB.ADD;
2735:
2736: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2737: FND_MESSAGE.RAISE_ERROR;
2733: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_NO_BATCHES');
2734: FND_MSG_PUB.ADD;
2735:
2736: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2737: FND_MESSAGE.RAISE_ERROR;
2738:
2739: END IF;
2740: -- Conversion can be updated only if batch status is WIP or Completed.
2741:
2742: IF (X_BATCH_STATUS IN (2, 3)) THEN
2743: -- DBMS_OUTPUT.PUT_LINE('X_BATCH_STATUS:'||X_BATCH_STATUS||' ..Do nothing..');
2744: NULL;
2745: ELSE
2746: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_INVALID_BATCH_STS');
2747: FND_MSG_PUB.ADD;
2748:
2749: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2750: FND_MESSAGE.RAISE_ERROR;
2746: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_INVALID_BATCH_STS');
2747: FND_MSG_PUB.ADD;
2748:
2749: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2750: FND_MESSAGE.RAISE_ERROR;
2751:
2752: END IF;
2753:
2754: -- Primary qty can get affected only when conv is changed for batch detail uom.
2781: -- Raise error if dtl_um class is not same as primary or secondary uom class.
2782: IF l_from_uom_class <> x_uom_class THEN
2783: IF x_uom_class <> x_sec_uom_class THEN
2784: CLOSE GET_MATL_LINES;
2785: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_UPD_WRNG_DTLUM_CLS');
2786: FND_MSG_PUB.ADD;
2787: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2788: RAISE FND_API.G_EXC_ERROR;
2789:
2798:
2799:
2800: IF (L_TRACKING_QUANTITY_IND = 'P') THEN
2801:
2802: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_TYPE_NOT_ALLOWED');
2803: FND_MSG_PUB.ADD;
2804:
2805: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2806: FND_MESSAGE.RAISE_ERROR;
2802: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_TYPE_NOT_ALLOWED');
2803: FND_MSG_PUB.ADD;
2804:
2805: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2806: FND_MESSAGE.RAISE_ERROR;
2807:
2808: END IF;
2809:
2810: END IF; --- added
2849: END IF;
2850:
2851: IF (X_CALC_QTY = - 99999) THEN
2852:
2853: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_CONV_FUNC');
2854: FND_MSG_PUB.ADD;
2855:
2856: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2857: FND_MESSAGE.RAISE_ERROR;
2853: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_CONV_FUNC');
2854: FND_MSG_PUB.ADD;
2855:
2856: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2857: FND_MESSAGE.RAISE_ERROR;
2858:
2859: ELSE
2860: NEW_SECONDARY_QTY := X_CALC_QTY;
2861:
2872: END IF;
2873:
2874: IF (X_CALC_QTY = - 99999) THEN
2875:
2876: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_CONV_FUNC');
2877: FND_MSG_PUB.ADD;
2878:
2879: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2880: FND_MESSAGE.RAISE_ERROR;
2876: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_CONV_FUNC');
2877: FND_MSG_PUB.ADD;
2878:
2879: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
2880: FND_MESSAGE.RAISE_ERROR;
2881:
2882: ELSE
2883: NEW_PRIMARY_QTY := X_CALC_QTY;
2884:
2997:
2998: FOR I IN 1..L_MSG_COUNT LOOP
2999: L_MSG_DATA := FND_MSG_PUB.GET(I, 'F');
3000: FND_MSG_PUB.ADD;
3001: FND_MESSAGE.RAISE_ERROR;
3002: END LOOP;
3003:
3004: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
3005:
3006: END IF;
3007:
3008: IF (L_QR > 0) THEN
3009:
3010: FND_MESSAGE.SET_NAME('INV', 'INV_LOTCONV_RSV_EXIST');
3011: FND_MSG_PUB.ADD;
3012: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
3013: RAISE FND_API.G_EXC_ERROR;
3014:
3055: END;
3056:
3057: ELSIF P_ONHAND_UPDATE NOT IN (1, 2) THEN
3058:
3059: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
3060: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_ONHAND_UPDATE');
3061: FND_MSG_PUB.ADD;
3062:
3063: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
3056:
3057: ELSIF P_ONHAND_UPDATE NOT IN (1, 2) THEN
3058:
3059: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_PARAMETER_TYPE');
3060: FND_MESSAGE.SET_TOKEN('VALUE1', 'P_ONHAND_UPDATE');
3061: FND_MSG_PUB.ADD;
3062:
3063: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
3064:
3141: FOR I IN 1..l_msg_count
3142: LOOP
3143: L_MSG_DATA := FND_MSG_PUB.GET(I, 'F');
3144: FND_MSG_PUB.ADD;
3145: fnd_message.raise_error;
3146: END LOOP;
3147:
3148: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
3149:
3182: X_MSG_DATA := FND_MSG_PUB.GET(X_MSG_COUNT, 'F');
3183:
3184: /* WHEN L_INVALID_LOT THEN
3185:
3186: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_LOT_INVALID');
3187: FND_MSG_PUB.ADD;
3188: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
3189: FND_MSG_PUB.COUNT_AND_GET
3190: ( P_COUNT => X_MSG_COUNT
3194: X_MSG_DATA := FND_MSG_PUB.GET(X_MSG_COUNT, 'F');
3195: */
3196: WHEN L_LOT_CONV_NOT_EXISTS THEN
3197:
3198: FND_MESSAGE.SET_NAME('INV', 'INV_NO_CONVERSIONS');
3199: FND_MSG_PUB.ADD;
3200: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
3201:
3202: FND_MSG_PUB.COUNT_AND_GET
3208: -- X_MSG_DATA := 'Lot Conversion does not exists';
3209:
3210: WHEN L_PENDING_TRAN_EXISTS THEN
3211:
3212: FND_MESSAGE.SET_NAME('GMI', 'GMI_LOTCONV_PENDING_EXIST');
3213: FND_MSG_PUB.ADD;
3214: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
3215: FND_MSG_PUB.COUNT_AND_GET
3216: ( P_COUNT => X_MSG_COUNT
3222: WHEN L_INVALID_UOM_RATE THEN
3223:
3224: ROLLBACK;
3225: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
3226: FND_MESSAGE.SET_NAME('INV', 'INV_NEG_CONV');
3227: FND_MSG_PUB.ADD;
3228: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
3229: FND_MSG_PUB.COUNT_AND_GET
3230: ( P_COUNT => X_MSG_COUNT
3256: );
3257:
3258: WHEN L_INVALID_UOM_EXC THEN
3259:
3260: FND_MESSAGE.SET_NAME('INV', 'INV_UOM_NOTFOUND');
3261: FND_MSG_PUB.ADD;
3262: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
3263: FND_MSG_PUB.COUNT_AND_GET
3264: ( P_COUNT => X_MSG_COUNT
3277: X_MSG_DATA := FND_MSG_PUB.GET(X_MSG_COUNT, 'F');
3278:
3279: WHEN L_INVALID_ITEM_EXC THEN
3280:
3281: FND_MESSAGE.SET_NAME('INV', 'INV_INVALID_ITEM');
3282: FND_MSG_PUB.ADD;
3283: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
3284: FND_MSG_PUB.COUNT_AND_GET
3285: ( P_COUNT => X_MSG_COUNT
3287: );
3288:
3289: WHEN L_UOM_FROMTO_EXC THEN
3290:
3291: FND_MESSAGE.SET_NAME('INV', 'INV_LOTC_UOM_FROMTO_ERROR');
3292: FND_MSG_PUB.ADD;
3293: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
3294: FND_MSG_PUB.COUNT_AND_GET
3295: ( P_COUNT => X_MSG_COUNT
3298: X_MSG_DATA := FND_MSG_PUB.GET(X_MSG_COUNT, 'F');
3299:
3300: WHEN L_CONV_NOT_EXISTS THEN
3301:
3302: FND_MESSAGE.SET_NAME('INV', 'INV_NO_CONVERSIONS');
3303: FND_MSG_PUB.ADD;
3304: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
3305:
3306: FND_MSG_PUB.COUNT_AND_GET